Documentation Index

Fetch the complete documentation index at: https://docs.thrivelearning.com/llms.txt

Use this file to discover all available pages before exploring further.

Query stored outbound webhook events

Prev Next
Get
/webhook-events

Retrieves outbound webhook events dispatched for the tenant so subscribers can recover events they may have missed (for example while their endpoint was unavailable). Events are retained for 7 days. The time filters (createdFrom / createdTo) apply to when the event was ingested/dispatched, not the event's own timestamp. When no createdFrom is supplied, the last 24 hours are returned.

The set of available event types and subscription keys is documented at https://docs.thrivelearning.com/apidocs/webhooks — new event types may be added over time, so treat eventType as an open set.

Security
HTTP
Type basic

HTTP Basic authentication using your Tenant ID and API secret.

  • Username is the Tenant ID (i.e. eu-west-2_AbcdEfghI)
  • Password is the API secret you would have received.

You can also authenticate using OAuth 2.0 client credentials (oauth2 security scheme) instead of Basic auth.

OAuth

OAuth 2.0 client credentials authentication.

Use the following token endpoints (replace :tenantId with your Tenant ID):

  • Public API access tokens

    • Staging: https://public.api.learnstaging.link/oauth2/token/:tenantId
    • Production: https://public.api.learn.link/oauth2/token/:tenantId
    • Staging MEA: https://public.api.meastaging.learn.tech/oauth2/token/:tenantId
    • Production MEA: https://public.api.mea.learn.tech/oauth2/token/:tenantId
  • Webhooks access tokens

    • Staging: https://user.api.learnstaging.link/oauth2/token/:tenantId
    • Production: https://user.api.learn.link/oauth2/token/:tenantId
    • Staging MEA: https://user.api.meastaging.learn.tech/oauth2/token/:tenantId
    • Production MEA: https://user.api.mea.learn.tech/oauth2/token/:tenantId

All access tokens must be sent using the Authorization: Bearer <access_token> header.

Scopes

For API access (non-webhooks), the following scopes are available:

  • api/all – Full read and write access to the API.
  • api/read – Read-only access to the API.
  • api/write – Write access to the API.

For webhooks, the following scopes are available:

  • api/webhooks – Access to webhook functionality.
  • api/all – Full read and write access to the API, including webhooks.

Tokens must include appropriate scopes for the endpoints you wish to call.

FlowClient Credentials
Token URLhttps://public.api.learn.link/oauth2/token/:tenantId
Query parameters
page
integer

Page number for pagination

Minimum1.0
Default1
Example1
perPage
integer

Number of records per page

Minimum1.0
Maximum1000.0
Default100
Example100
eventType
string

Filter by mapped webhook event type (e.g. content.completed, post.posted). See the full list at https://docs.thrivelearning.com/apidocs/webhooks

Examplecontent.completed
subscriptionKey
string

Filter by tenant subscription config key. See the available subscriptions at https://docs.thrivelearning.com/apidocs/webhooks

Examplecompletion_subscription
deliveryStatus
string

Filter by webhook delivery outcome

Valid values[ "delivered", "failed" ]
Examplefailed
createdFrom
string (date-time)

Return events ingested at or after this ISO 8601 timestamp. Defaults to 24 hours ago when omitted.

Example2026-07-13T00:00:00Z
createdTo
string (date-time)

Return events ingested at or before this ISO 8601 timestamp.

Example2026-07-14T00:00:00Z
Responses
200

Successful response

{
  "pagination": {
    "totalResults": 42,
    "totalPages": 1,
    "pageNumber": 1,
    "perPage": 100
  },
  "results": [
    {
      "id": "64b6f4a8c2e4a1b9d3f2c4a1",
      "messageId": "a1b2c3d4-0000-0000-0000-000000000001",
      "eventType": "content.completed",
      "subscriptionKey": "completion_subscription",
      "deliveryStatus": "delivered",
      "payload": {
        "eventType": "content.completed",
        "tenantId": "eu-west-2_ABC",
        "user": {
          "id": "64020a781a211b0011216214"
        },
        "content": {
          "id": "64020a781a211b0011216213"
        }
      },
      "timestamp": "2026-07-14T14:58:23.621Z",
      "createdAt": "2026-07-14T14:58:23.700Z"
    }
  ]
}
Expand All
object
pagination
object
totalResults
integer
totalPages
integer
pageNumber
integer
perPage
integer
results
Array of object
object
id
string
messageId
string
eventType
string
subscriptionKey
string
deliveryStatus
string
Valid values[ "delivered", "failed" ]
payload
object
timestamp
string (date-time)
createdAt
string (date-time)
401

Unauthorized

object

Unauthorized

status
number
Example401.0
error
string
ExampleUnauthorized
message
string
422

Unprocessable Content

object

Unprocessable Content

status
number
Example422.0
error
string
ExampleUnprocessable Content
message
string #deprecatedtemplate# #additional-property-template#
OneOf
string
string
object
object