openapi: 3.2.0 info: title: Svix Webhook API description: 'Welcome to the Svix API documentation! Useful links: [Homepage](https://www.svix.com) | [Support email](mailto:support+docs@svix.com) | [Blog](https://www.svix.com/blog/) | [Slack Community](https://www.svix.com/slack/) # Introduction This is the reference documentation and schemas for the [Svix webhook service](https://www.svix.com) API. For tutorials and other documentation please refer to [the documentation](https://docs.svix.com). ## Main concepts In Svix you have four important entities you will be interacting with: - `messages`: these are the webhooks being sent. They can have contents and a few other properties. - `application`: this is where `messages` are sent to. Usually you want to create one application for each user on your platform. - `endpoint`: endpoints are the URLs messages will be sent to. Each application can have multiple `endpoints` and each message sent to that application will be sent to all of them (unless they are not subscribed to the sent event type). - `event-type`: event types are identifiers denoting the type of the message being sent. Event types are primarily used to decide which events are sent to which endpoint. ## Authentication Get your authentication token (`AUTH_TOKEN`) from the [Svix dashboard](https://dashboard.svix.com) and use it as part of the `Authorization` header as such: `Authorization: Bearer ${AUTH_TOKEN}`. For more information on authentication, please refer to the [authentication token docs](https://docs.svix.com/api-keys). ## Code samples The code samples assume you already have the respective libraries installed and you know how to use them. For the latest information on how to do that, please refer to [the documentation](https://docs.svix.com/). ## Idempotency Svix supports [idempotency](https://en.wikipedia.org/wiki/Idempotence) for safely retrying requests without accidentally performing the same operation twice. This is useful when an API call is disrupted in transit and you do not receive a response. To perform an idempotent request, pass the idempotency key in the `Idempotency-Key` header to the request. The idempotency key should be a unique value generated by the client. You can create the key in however way you like, though we suggest using UUID v4, or any other string with enough entropy to avoid collisions. Your idempotency key should not begin with the string `auto_`, which is reserved for internal use by the client libraries. Svix''s idempotency works by saving the resulting status code and body of the first request made for any given idempotency key for any successful request. Subsequent requests with the same key return the same result for a period of up to 12 hours. Please note that idempotency is only supported for `POST` requests. ## Cross-Origin Resource Sharing This API features Cross-Origin Resource Sharing (CORS) implemented in compliance with [W3C spec](https://www.w3.org/TR/cors/). And that allows cross-domain communication from the browser. All responses have a wildcard same-origin which makes them completely public and accessible to everyone, including any code on any site. ' version: 1.922.0 x-logo: url: https://www.svix.com/static/img/brand-padded.svg altText: Svix Logo servers: - url: https://api.eu.svix.com description: The Svix EU region - url: https://api.us.svix.com description: The Svix US region - url: https://api.ca.svix.com description: The Svix Canada region - url: https://api.au.svix.com description: The Svix Australia region - url: https://api.in.svix.com description: The Svix India region tags: - name: Webhook description: The webhooks the Svix service sends to notify you of events. paths: {} webhooks: endpoint.created: post: tags: - Webhook summary: endpoint.created description: Sent when an endpoint is created. operationId: endpoint.created requestBody: content: application/json: schema: $ref: '#/components/schemas/EndpointCreatedEvent' example: data: appId: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 appUid: unique-app-identifier endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 endpointUid: unique-endpoint-identifier type: endpoint.created responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully x-svix-group-name: dispatch endpoint.deleted: post: tags: - Webhook summary: endpoint.deleted description: Sent when an endpoint is deleted. operationId: endpoint.deleted requestBody: content: application/json: schema: $ref: '#/components/schemas/EndpointDeletedEvent' example: data: appId: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 appUid: unique-app-identifier endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 endpointUid: unique-endpoint-identifier type: endpoint.deleted responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully x-svix-group-name: dispatch endpoint.disabled: post: tags: - Webhook summary: endpoint.disabled description: Sent when an endpoint has been automatically disabled after continuous failures, or manually via an API call. operationId: endpoint.disabled requestBody: content: application/json: schema: $ref: '#/components/schemas/EndpointDisabledEvent' example: data: appId: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 appUid: unique-app-identifier endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 endpointUid: unique-endpoint-identifier failSince: '2022-11-06T15:04:05Z' trigger: automatic type: endpoint.disabled responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully x-svix-group-name: dispatch endpoint.enabled: post: tags: - Webhook summary: endpoint.enabled description: Sent when an endpoint has been enabled. operationId: endpoint.enabled requestBody: content: application/json: schema: $ref: '#/components/schemas/EndpointEnabledEvent' example: data: appId: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 appUid: unique-app-identifier endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 endpointUid: unique-endpoint-identifier type: endpoint.enabled responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully x-svix-group-name: dispatch endpoint.updated: post: tags: - Webhook summary: endpoint.updated description: Sent when an endpoint is updated. operationId: endpoint.updated requestBody: content: application/json: schema: $ref: '#/components/schemas/EndpointUpdatedEvent' example: data: appId: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 appUid: unique-app-identifier endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 endpointUid: unique-endpoint-identifier type: endpoint.updated responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully x-svix-group-name: dispatch message.attempt.exhausted: post: tags: - Webhook summary: message.attempt.exhausted description: Sent when a message delivery has failed (all of the retry attempts have been exhausted). operationId: message.attempt.exhausted requestBody: content: application/json: schema: $ref: '#/components/schemas/MessageAttemptExhaustedEvent' example: data: appId: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 appUid: unique-app-identifier msgId: msg_1srOrx2ZWZBpBUvZwXKQmoEYga2 msgEventId: unique-msg-identifier endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 lastAttempt: id: atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2 responseStatusCode: 500 timestamp: '2022-11-06T15:04:05Z' type: message.attempt.exhausted responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully x-svix-group-name: dispatch message.attempt.failing: post: tags: - Webhook summary: message.attempt.failing description: 'Sent after a message has been failing for a few times. It''s sent on the fourth failure. It complements `message.attempt.exhausted` which is sent after the last failure.' operationId: message.attempt.failing requestBody: content: application/json: schema: $ref: '#/components/schemas/MessageAttemptFailingEvent' example: data: appId: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 appUid: unique-app-identifier msgId: msg_1srOrx2ZWZBpBUvZwXKQmoEYga2 msgEventId: unique-msg-identifier endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 lastAttempt: id: atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2 responseStatusCode: 500 timestamp: '2022-11-06T15:04:05Z' type: message.attempt.failing responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully x-svix-group-name: dispatch message.attempt.recovered: post: tags: - Webhook summary: message.attempt.recovered description: Sent on a successful dispatch after an earlier failure op webhook has already been sent. operationId: message.attempt.recovered requestBody: content: application/json: schema: $ref: '#/components/schemas/MessageAttemptRecoveredEvent' example: data: appId: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 appUid: unique-app-identifier msgId: msg_1srOrx2ZWZBpBUvZwXKQmoEYga2 msgEventId: unique-msg-identifier endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 lastAttempt: id: atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2 responseStatusCode: 200 timestamp: '2022-11-06T15:04:05Z' type: message.attempt.recovered responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully x-svix-group-name: dispatch background_task.finished: post: tags: - Webhook summary: background_task.finished description: Sent when a background task is finished. operationId: background_task.finished requestBody: content: application/json: schema: $ref: '#/components/schemas/BackgroundTaskFinishedEvent' example: data: taskId: qtask_1srOrx2ZWZBpBUvZwXKQmoEYga2 task: application.stats status: finished data: appStats: - messageDestinations: 343 appId: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 appUid: null type: background_task.finished responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully ingest.endpoint.disabled: post: tags: - Webhook summary: ingest.endpoint.disabled description: Sent when an ingest endpoint has been automatically disabled after continuous failures, or manually via an API call. operationId: ingest.endpoint.disabled requestBody: content: application/json: schema: $ref: '#/components/schemas/IngestEndpointDisabledEvent' example: data: sourceId: src_30HT9jb8WZXKVWIO44ZDr endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 endpointUid: unique-endpoint-identifier failSince: '2022-11-06T15:04:05Z' trigger: automatic type: ingest.endpoint.disabled responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully ingest.message.attempt.exhausted: post: tags: - Webhook summary: ingest.message.attempt.exhausted description: Sent when a message delivery has failed (all of the retry attempts have been exhausted). operationId: ingest.message.attempt.exhausted requestBody: content: application/json: schema: $ref: '#/components/schemas/IngestMessageAttemptExhaustedEvent' example: data: sourceId: src_30HT9jb8WZXKVWIO44ZDr msgId: msg_1srOrx2ZWZBpBUvZwXKQmoEYga2 msgEventId: unique-msg-identifier endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 lastAttempt: id: atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2 responseStatusCode: 500 timestamp: '2022-11-06T15:04:05Z' type: ingest.message.attempt.exhausted responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully ingest.message.attempt.failing: post: tags: - Webhook summary: ingest.message.attempt.failing description: 'Sent after a message has been failing for a few times. It''s sent on the fourth failure. It complements `ingest.message.attempt.exhausted` which is sent after the last failure.' operationId: ingest.message.attempt.failing requestBody: content: application/json: schema: $ref: '#/components/schemas/IngestMessageAttemptFailingEvent' example: data: sourceId: src_30HT9jb8WZXKVWIO44ZDr msgId: msg_1srOrx2ZWZBpBUvZwXKQmoEYga2 msgEventId: unique-msg-identifier endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 lastAttempt: id: atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2 responseStatusCode: 500 timestamp: '2022-11-06T15:04:05Z' type: ingest.message.attempt.failing responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully ingest.message.attempt.recovered: post: tags: - Webhook summary: ingest.message.attempt.recovered description: Sent on a successful dispatch after an earlier failure op webhook has already been sent. operationId: ingest.message.attempt.recovered requestBody: content: application/json: schema: $ref: '#/components/schemas/IngestMessageAttemptRecoveredEvent' example: data: sourceId: src_30HT9jb8WZXKVWIO44ZDr msgId: msg_1srOrx2ZWZBpBUvZwXKQmoEYga2 msgEventId: unique-msg-identifier endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 lastAttempt: id: atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2 responseStatusCode: 200 timestamp: '2022-11-06T15:04:05Z' type: ingest.message.attempt.recovered responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully message.attempt.log: post: tags: - Webhook summary: message.attempt.log description: Sent after message attempts are made. Contains metadata about message attempts and their results. In order to reduce the frequency of webhooks, these are sent in batches periodically. operationId: message.attempt.log requestBody: content: application/json: schema: $ref: '#/components/schemas/MessageAttemptLogEvent' example: data: - orgId: env_1srOrx2ZWZBpBUvZwXKQmoEYga2 appId: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 appUid: unique-app-identifier endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 msgId: msg_1srOrx2ZWZBpBUvZwXKQmoEYga2 msgEventId: unique-msg-identifier msgCreated: '2022-11-06T15:04:05Z' attemptStart: '2022-11-06T15:04:06Z' attemptEnd: '2022-11-06T15:04:07Z' attemptId: atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2 responseStatusCode: 200 attemptCount: 1 status: 0 eventType: user.signup type: message.attempt.log responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully x-svix-group-name: dispatch x-svix-feature-flags: - attempt_log x-internal: true components: schemas: IngestMessageAttemptExhaustedEvent: description: Sent when a message delivery has failed (all of the retry attempts have been exhausted). type: object properties: data: $ref: '#/components/schemas/IngestMessageAttemptExhaustedEventData' type: type: string default: ingest.message.attempt.exhausted enum: - ingest.message.attempt.exhausted required: - data - type IngestMessageAttemptExhaustedEventData: description: Sent when a message delivery has failed (all of the retry attempts have been exhausted) as a "ingest.message.attempt.exhausted" type, after it's failed four times as a "ingest.message.attempt.failing" event, or after it's recovered as a "ingest.message.attempt.recovered" event. type: object properties: sourceId: description: The Source's ID. type: string maxLength: 26 minLength: 25 pattern: ^src_[A-Za-z0-9]{21,22}$ example: src_2yZwUhtgs5Ai8T9yRQJXA msgId: description: The Message's ID. type: string maxLength: 31 minLength: 31 pattern: ^msg_[A-Za-z0-9]{27}$ example: msg_1srOrx2ZWZBpBUvZwXKQmoEYga2 msgEventId: description: The Message's UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier nullable: true endpointId: description: The Endpoint's ID. type: string maxLength: 30 minLength: 30 pattern: ^ep_[A-Za-z0-9]{27}$ example: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 lastAttempt: $ref: '#/components/schemas/MessageAttemptFailedData' required: - endpointId - lastAttempt - msgId - sourceId MessageAttemptExhaustedEventData: description: Sent when a message delivery has failed (all of the retry attempts have been exhausted) as a "message.attempt.exhausted" type or after it's failed four times as a "message.attempt.failing" event. type: object properties: appId: description: The Application's ID. type: string maxLength: 31 minLength: 31 pattern: ^app_[A-Za-z0-9]{27}$ example: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 appUid: description: The Application's UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier nullable: true msgId: description: The Message's ID. type: string maxLength: 31 minLength: 31 pattern: ^msg_[A-Za-z0-9]{27}$ example: msg_1srOrx2ZWZBpBUvZwXKQmoEYga2 msgEventId: description: The Message's UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier nullable: true endpointId: description: The Endpoint's ID. type: string maxLength: 30 minLength: 30 pattern: ^ep_[A-Za-z0-9]{27}$ example: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 lastAttempt: $ref: '#/components/schemas/MessageAttemptFailedData' required: - appId - endpointId - lastAttempt - msgId ApplicationStatsOut: type: object properties: messageDestinations: type: integer format: int64 appId: description: The Application's ID. type: string maxLength: 31 minLength: 31 pattern: ^app_[A-Za-z0-9]{27}$ example: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 appUid: description: The Application's UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier nullable: true required: - appId - messageDestinations EndpointDeletedEventData: description: Sent when an endpoint is created, updated, or deleted type: object properties: appId: description: The Application's ID. type: string maxLength: 31 minLength: 31 pattern: ^app_[A-Za-z0-9]{27}$ example: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 appUid: description: The Application's UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier nullable: true endpointId: description: The Endpoint's ID. type: string maxLength: 30 minLength: 30 pattern: ^ep_[A-Za-z0-9]{27}$ example: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 endpointUid: description: The Endpoint's UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier nullable: true required: - appId - endpointId MessageAttemptLogEvent: description: Sent after message attempts are made. Contains metadata about message attempts and their results. In order to reduce the frequency of webhooks, these are sent in batches periodically. type: object properties: data: type: array items: $ref: '#/components/schemas/MessageAttemptLog' type: type: string default: message.attempt.log enum: - message.attempt.log required: - data - type MessageAttemptFailingEventData: description: Sent when a message delivery has failed (all of the retry attempts have been exhausted) as a "message.attempt.exhausted" type or after it's failed four times as a "message.attempt.failing" event. type: object properties: appId: description: The Application's ID. type: string maxLength: 31 minLength: 31 pattern: ^app_[A-Za-z0-9]{27}$ example: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 appUid: description: The Application's UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier nullable: true msgId: description: The Message's ID. type: string maxLength: 31 minLength: 31 pattern: ^msg_[A-Za-z0-9]{27}$ example: msg_1srOrx2ZWZBpBUvZwXKQmoEYga2 msgEventId: description: The Message's UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier nullable: true endpointId: description: The Endpoint's ID. type: string maxLength: 30 minLength: 30 pattern: ^ep_[A-Za-z0-9]{27}$ example: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 lastAttempt: $ref: '#/components/schemas/MessageAttemptFailedData' required: - appId - endpointId - lastAttempt - msgId EndpointDisabledEvent: description: Sent when an endpoint has been automatically disabled after continuous failures, or manually via an API call. type: object properties: data: $ref: '#/components/schemas/EndpointDisabledEventData' type: type: string default: endpoint.disabled enum: - endpoint.disabled required: - data - type IngestMessageAttemptRecoveredEvent: description: Sent on a successful dispatch after an earlier failure op webhook has already been sent. type: object properties: data: $ref: '#/components/schemas/IngestMessageAttemptRecoveredEventData' type: type: string default: ingest.message.attempt.recovered enum: - ingest.message.attempt.recovered required: - data - type IngestEndpointDisabledEvent: description: Sent when an ingest endpoint has been automatically disabled after continuous failures, or manually via an API call. type: object properties: data: $ref: '#/components/schemas/IngestEndpointDisabledEventData' type: type: string default: ingest.endpoint.disabled enum: - ingest.endpoint.disabled required: - data - type MessageAttemptRecoveredEvent: description: Sent on a successful dispatch after an earlier failure op webhook has already been sent. type: object properties: data: $ref: '#/components/schemas/MessageAttemptRecoveredEventData' type: type: string default: message.attempt.recovered enum: - message.attempt.recovered required: - data - type Data: anyOf: - type: object properties: messages_sent: type: integer format: uint minimum: 0.0 endp_id: description: The Endpoint's ID. type: string maxLength: 30 minLength: 30 pattern: ^ep_[A-Za-z0-9]{27}$ example: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 nullable: true cur_batch_start: type: string format: date-time nullable: true since: type: string format: date-time nullable: true until: type: string format: date-time nullable: true required: - messages_sent - type: object properties: messages_sent: type: integer format: uint minimum: 0.0 endp_id: description: The Endpoint's ID. type: string maxLength: 30 minLength: 30 pattern: ^ep_[A-Za-z0-9]{27}$ example: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 nullable: true cur_batch_start: type: string format: date-time nullable: true since: type: string format: date-time nullable: true until: type: string format: date-time nullable: true required: - messages_sent - type: object properties: app_stats: type: array items: $ref: '#/components/schemas/ApplicationStatsOut' required: - app_stats - type: object properties: messages_created: type: array items: $ref: '#/components/schemas/ApplicationMessageIdPair' messages_failed: type: array items: $ref: '#/components/schemas/ApplicationMessageFailure' required: - messages_created - messages_failed - type: object properties: event_types: type: array items: $ref: '#/components/schemas/AggregatedEventTypes' required: - event_types - type: object properties: messages_purged: type: integer format: uint minimum: 0.0 required: - messages_purged - type: object properties: messages_sent: type: integer format: uint minimum: 0.0 endp_id: description: The Endpoint's ID. type: string maxLength: 30 minLength: 30 pattern: ^ep_[A-Za-z0-9]{27}$ example: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 nullable: true cur_batch_start: type: string format: date-time nullable: true since: type: string format: date-time nullable: true until: type: string format: date-time nullable: true required: - messages_sent MessageAttemptExhaustedEvent: description: Sent when a message delivery has failed (all of the retry attempts have been exhausted). type: object properties: data: $ref: '#/components/schemas/MessageAttemptExhaustedEventData' type: type: string default: message.attempt.exhausted enum: - message.attempt.exhausted required: - data - type EndpointUpdatedEventData: description: Sent when an endpoint is created, updated, or deleted type: object properties: appId: description: The Application's ID. type: string maxLength: 31 minLength: 31 pattern: ^app_[A-Za-z0-9]{27}$ example: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 appUid: description: The Application's UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier nullable: true endpointId: description: The Endpoint's ID. type: string maxLength: 30 minLength: 30 pattern: ^ep_[A-Za-z0-9]{27}$ example: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 endpointUid: description: The Endpoint's UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier nullable: true required: - appId - endpointId ApplicationMessageIdPair: type: object properties: appId: description: The Application's ID. type: string maxLength: 31 minLength: 31 pattern: ^app_[A-Za-z0-9]{27}$ example: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 msgId: description: The Message's ID. type: string maxLength: 31 minLength: 31 pattern: ^msg_[A-Za-z0-9]{27}$ example: msg_1srOrx2ZWZBpBUvZwXKQmoEYga2 required: - appId - msgId EndpointDeletedEvent: description: Sent when an endpoint is deleted. type: object properties: data: $ref: '#/components/schemas/EndpointDeletedEventData' type: type: string default: endpoint.deleted enum: - endpoint.deleted required: - data - type BackgroundTaskStatus: type: string enum: - running - finished - failed EndpointUpdatedEvent: description: Sent when an endpoint is updated. type: object properties: data: $ref: '#/components/schemas/EndpointUpdatedEventData' type: type: string default: endpoint.updated enum: - endpoint.updated required: - data - type EndpointEnabledEventData: description: Sent when an endpoint has been enabled. type: object properties: appId: description: The Application's ID. type: string maxLength: 31 minLength: 31 pattern: ^app_[A-Za-z0-9]{27}$ example: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 appUid: description: The Application's UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier nullable: true endpointId: description: The Endpoint's ID. type: string maxLength: 30 minLength: 30 pattern: ^ep_[A-Za-z0-9]{27}$ example: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 endpointUid: description: The Endpoint's UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier nullable: true required: - appId - endpointId IngestEndpointDisabledEventData: description: Sent when an ingest endpoint has been automatically disabled after continuous failures, or manually via an API call. type: object properties: sourceId: description: The Source's ID. type: string maxLength: 26 minLength: 25 pattern: ^src_[A-Za-z0-9]{21,22}$ example: src_2yZwUhtgs5Ai8T9yRQJXA endpointId: description: The Endpoint's ID. type: string maxLength: 30 minLength: 30 pattern: ^ep_[A-Za-z0-9]{27}$ example: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 endpointUid: description: The Endpoint's UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier nullable: true failSince: type: string format: date-time nullable: true trigger: default: automatic $ref: '#/components/schemas/EndpointDisabledTrigger' required: - endpointId - sourceId HttpAttemptTimes: type: object properties: start: type: string format: date-time end: type: string format: date-time required: - end - start MessageStatus: title: MessageStatus description: 'The sending status of the message: - Success = 0 - Pending = 1 - Fail = 2 - Sending = 3 - Canceled = 4' type: integer enum: - 0 - 1 - 2 - 3 - 4 x-enum-varnames: - Success - Pending - Fail - Sending - Canceled EndpointDisabledTrigger: type: string enum: - manual - automatic BackgroundTaskFinishedEvent2: type: object properties: taskId: description: The QueueBackgroundTask's ID. type: string maxLength: 33 minLength: 33 pattern: ^qtask_[A-Za-z0-9]{27}$ example: qtask_1srOrx2ZWZBpBUvZwXKQmoEYga2 task: $ref: '#/components/schemas/BackgroundTaskType' status: $ref: '#/components/schemas/BackgroundTaskStatus' data: $ref: '#/components/schemas/Data' required: - data - status - task - taskId BackgroundTaskType: type: string enum: - endpoint.replay - endpoint.recover - application.stats - message.broadcast - sdk.generate - event-type.aggregate - application.purge_content - endpoint.bulk-replay EndpointEnabledEvent: description: Sent when an endpoint has been enabled. type: object properties: data: $ref: '#/components/schemas/EndpointEnabledEventData' type: type: string default: endpoint.enabled enum: - endpoint.enabled required: - data - type EndpointCreatedEventData: description: Sent when an endpoint is created, updated, or deleted type: object properties: appId: description: The Application's ID. type: string maxLength: 31 minLength: 31 pattern: ^app_[A-Za-z0-9]{27}$ example: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 appUid: description: The Application's UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier nullable: true endpointId: description: The Endpoint's ID. type: string maxLength: 30 minLength: 30 pattern: ^ep_[A-Za-z0-9]{27}$ example: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 endpointUid: description: The Endpoint's UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier nullable: true required: - appId - endpointId MessageAttemptLog: type: object properties: orgId: description: The Environment's ID. type: string maxLength: 31 minLength: 31 pattern: ^org_[A-Za-z0-9]{27}$ example: org_1srOrx2ZWZBpBUvZwXKQmoEYga2 appId: description: The Application's ID. type: string maxLength: 31 minLength: 31 pattern: ^app_[A-Za-z0-9]{27}$ example: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 appUid: description: The Application's UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier nullable: true endpointId: description: The Endpoint's ID. type: string maxLength: 30 minLength: 30 pattern: ^ep_[A-Za-z0-9]{27}$ example: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 msgId: description: The Message's ID. type: string maxLength: 31 minLength: 31 pattern: ^msg_[A-Za-z0-9]{27}$ example: msg_1srOrx2ZWZBpBUvZwXKQmoEYga2 msgEventId: description: The Message's UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier nullable: true msgCreated: type: string format: date-time attemptStart: type: string format: date-time attemptEnd: type: string format: date-time attemptId: description: The MessageAttempt's ID. type: string maxLength: 33 minLength: 33 pattern: ^atmpt_[A-Za-z0-9]{27}$ example: atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2 responseStatusCode: type: integer format: int16 attemptCount: type: integer format: uint16 minimum: 0.0 status: $ref: '#/components/schemas/MessageStatus' eventType: description: The event type's name type: string maxLength: 256 pattern: ^[a-zA-Z0-9\-_.]+$ example: user.signup nullable: true httpTimes: $ref: '#/components/schemas/HttpAttemptTimes' nullable: true required: - appId - attemptCount - attemptEnd - attemptId - attemptStart - endpointId - msgCreated - msgId - orgId - responseStatusCode - status IngestMessageAttemptRecoveredEventData: description: Sent when a message delivery has failed (all of the retry attempts have been exhausted) as a "ingest.message.attempt.exhausted" type, after it's failed four times as a "ingest.message.attempt.failing" event, or after it's recovered as a "ingest.message.attempt.recovered" event. type: object properties: sourceId: description: The Source's ID. type: string maxLength: 26 minLength: 25 pattern: ^src_[A-Za-z0-9]{21,22}$ example: src_2yZwUhtgs5Ai8T9yRQJXA msgId: description: The Message's ID. type: string maxLength: 31 minLength: 31 pattern: ^msg_[A-Za-z0-9]{27}$ example: msg_1srOrx2ZWZBpBUvZwXKQmoEYga2 msgEventId: description: The Message's UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier nullable: true endpointId: description: The Endpoint's ID. type: string maxLength: 30 minLength: 30 pattern: ^ep_[A-Za-z0-9]{27}$ example: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 lastAttempt: $ref: '#/components/schemas/MessageAttemptFailedData' required: - endpointId - lastAttempt - msgId - sourceId EndpointDisabledEventData: description: Sent when an endpoint has been automatically disabled after continuous failures, or manually via an API call. type: object properties: appId: description: The Application's ID. type: string maxLength: 31 minLength: 31 pattern: ^app_[A-Za-z0-9]{27}$ example: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 appUid: description: The Application's UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier nullable: true endpointId: description: The Endpoint's ID. type: string maxLength: 30 minLength: 30 pattern: ^ep_[A-Za-z0-9]{27}$ example: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 endpointUid: description: The Endpoint's UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier nullable: true failSince: type: string format: date-time nullable: true trigger: default: automatic $ref: '#/components/schemas/EndpointDisabledTrigger' required: - appId - endpointId ApplicationMessageFailure: type: object properties: appId: description: The Application's ID. type: string maxLength: 31 minLength: 31 pattern: ^app_[A-Za-z0-9]{27}$ example: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 reason: type: string required: - appId - reason IngestMessageAttemptFailingEvent: description: 'Sent after a message has been failing for a few times. It''s sent on the fourth failure. It complements `ingest.message.attempt.exhausted` which is sent after the last failure.' type: object properties: data: $ref: '#/components/schemas/IngestMessageAttemptFailingEventData' type: type: string default: ingest.message.attempt.failing enum: - ingest.message.attempt.failing required: - data - type MessageAttemptFailingEvent: description: 'Sent after a message has been failing for a few times. It''s sent on the fourth failure. It complements `message.attempt.exhausted` which is sent after the last failure.' type: object properties: data: $ref: '#/components/schemas/MessageAttemptFailingEventData' type: type: string default: message.attempt.failing enum: - message.attempt.failing required: - data - type EndpointCreatedEvent: description: Sent when an endpoint is created. type: object properties: data: $ref: '#/components/schemas/EndpointCreatedEventData' type: type: string default: endpoint.created enum: - endpoint.created required: - data - type AggregatedEventTypes: type: object properties: appId: description: The Application's ID. type: string maxLength: 31 minLength: 31 pattern: ^app_[A-Za-z0-9]{27}$ example: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 explicitlySubscribedEventTypes: type: array items: description: The event type's name type: string maxLength: 256 pattern: ^[a-zA-Z0-9\-_.]+$ example: user.signup uniqueItems: true hasCatchAllEndpoint: type: boolean required: - appId - explicitlySubscribedEventTypes - hasCatchAllEndpoint BackgroundTaskFinishedEvent: description: Sent when a background task is finished. type: object properties: data: $ref: '#/components/schemas/BackgroundTaskFinishedEvent2' type: type: string default: background_task.finished enum: - background_task.finished required: - data - type MessageAttemptFailedData: type: object properties: id: description: The MessageAttempt's ID. type: string maxLength: 33 minLength: 33 pattern: ^atmpt_[A-Za-z0-9]{27}$ example: atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2 responseStatusCode: type: integer format: int16 timestamp: type: string format: date-time required: - id - responseStatusCode - timestamp MessageAttemptRecoveredEventData: description: Sent when a message delivery has failed (all of the retry attempts have been exhausted) as a "message.attempt.exhausted" type or after it's failed four times as a "message.attempt.failing" event. type: object properties: appId: description: The Application's ID. type: string maxLength: 31 minLength: 31 pattern: ^app_[A-Za-z0-9]{27}$ example: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 appUid: description: The Application's UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier nullable: true msgId: description: The Message's ID. type: string maxLength: 31 minLength: 31 pattern: ^msg_[A-Za-z0-9]{27}$ example: msg_1srOrx2ZWZBpBUvZwXKQmoEYga2 msgEventId: description: The Message's UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier nullable: true endpointId: description: The Endpoint's ID. type: string maxLength: 30 minLength: 30 pattern: ^ep_[A-Za-z0-9]{27}$ example: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 lastAttempt: $ref: '#/components/schemas/MessageAttemptFailedData' required: - appId - endpointId - lastAttempt - msgId IngestMessageAttemptFailingEventData: description: Sent when a message delivery has failed (all of the retry attempts have been exhausted) as a "ingest.message.attempt.exhausted" type, after it's failed four times as a "ingest.message.attempt.failing" event, or after it's recovered as a "ingest.message.attempt.recovered" event. type: object properties: sourceId: description: The Source's ID. type: string maxLength: 26 minLength: 25 pattern: ^src_[A-Za-z0-9]{21,22}$ example: src_2yZwUhtgs5Ai8T9yRQJXA msgId: description: The Message's ID. type: string maxLength: 31 minLength: 31 pattern: ^msg_[A-Za-z0-9]{27}$ example: msg_1srOrx2ZWZBpBUvZwXKQmoEYga2 msgEventId: description: The Message's UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier nullable: true endpointId: description: The Endpoint's ID. type: string maxLength: 30 minLength: 30 pattern: ^ep_[A-Za-z0-9]{27}$ example: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 lastAttempt: $ref: '#/components/schemas/MessageAttemptFailedData' required: - endpointId - lastAttempt - msgId - sourceId securitySchemes: HTTPBearer: type: http scheme: bearer description: HTTP Bearer token passed in the `Authorization` header x-tagGroups: - name: General tags: - Background Task - Environment - name: Dispatch tags: - Application - Event Type - Authentication - Endpoint - Message - Message Attempt - Integration - Connector - name: Stream tags: - Stream - Sink - Event - Stream Event Type - Stream Authentication - name: Ingest tags: - Ingest Source - Ingest Endpoint - name: Operational Webhooks tags: - Webhook - Webhook Endpoint - name: Statistics tags: - Statistics - name: Utility tags: - Health x-webhooks: endpoint.created: post: tags: - Webhook summary: endpoint.created description: Sent when an endpoint is created. operationId: endpoint.created requestBody: content: application/json: schema: $ref: '#/components/schemas/EndpointCreatedEvent' example: data: appId: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 appUid: unique-app-identifier endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 endpointUid: unique-endpoint-identifier type: endpoint.created responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully x-svix-group-name: dispatch endpoint.deleted: post: tags: - Webhook summary: endpoint.deleted description: Sent when an endpoint is deleted. operationId: endpoint.deleted requestBody: content: application/json: schema: $ref: '#/components/schemas/EndpointDeletedEvent' example: data: appId: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 appUid: unique-app-identifier endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 endpointUid: unique-endpoint-identifier type: endpoint.deleted responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully x-svix-group-name: dispatch endpoint.disabled: post: tags: - Webhook summary: endpoint.disabled description: Sent when an endpoint has been automatically disabled after continuous failures, or manually via an API call. operationId: endpoint.disabled requestBody: content: application/json: schema: $ref: '#/components/schemas/EndpointDisabledEvent' example: data: appId: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 appUid: unique-app-identifier endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 endpointUid: unique-endpoint-identifier failSince: '2022-11-06T15:04:05Z' trigger: automatic type: endpoint.disabled responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully x-svix-group-name: dispatch endpoint.enabled: post: tags: - Webhook summary: endpoint.enabled description: Sent when an endpoint has been enabled. operationId: endpoint.enabled requestBody: content: application/json: schema: $ref: '#/components/schemas/EndpointEnabledEvent' example: data: appId: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 appUid: unique-app-identifier endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 endpointUid: unique-endpoint-identifier type: endpoint.enabled responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully x-svix-group-name: dispatch endpoint.updated: post: tags: - Webhook summary: endpoint.updated description: Sent when an endpoint is updated. operationId: endpoint.updated requestBody: content: application/json: schema: $ref: '#/components/schemas/EndpointUpdatedEvent' example: data: appId: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 appUid: unique-app-identifier endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 endpointUid: unique-endpoint-identifier type: endpoint.updated responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully x-svix-group-name: dispatch message.attempt.exhausted: post: tags: - Webhook summary: message.attempt.exhausted description: Sent when a message delivery has failed (all of the retry attempts have been exhausted). operationId: message.attempt.exhausted requestBody: content: application/json: schema: $ref: '#/components/schemas/MessageAttemptExhaustedEvent' example: data: appId: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 appUid: unique-app-identifier msgId: msg_1srOrx2ZWZBpBUvZwXKQmoEYga2 msgEventId: unique-msg-identifier endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 lastAttempt: id: atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2 responseStatusCode: 500 timestamp: '2022-11-06T15:04:05Z' type: message.attempt.exhausted responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully x-svix-group-name: dispatch message.attempt.failing: post: tags: - Webhook summary: message.attempt.failing description: 'Sent after a message has been failing for a few times. It''s sent on the fourth failure. It complements `message.attempt.exhausted` which is sent after the last failure.' operationId: message.attempt.failing requestBody: content: application/json: schema: $ref: '#/components/schemas/MessageAttemptFailingEvent' example: data: appId: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 appUid: unique-app-identifier msgId: msg_1srOrx2ZWZBpBUvZwXKQmoEYga2 msgEventId: unique-msg-identifier endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 lastAttempt: id: atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2 responseStatusCode: 500 timestamp: '2022-11-06T15:04:05Z' type: message.attempt.failing responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully x-svix-group-name: dispatch message.attempt.recovered: post: tags: - Webhook summary: message.attempt.recovered description: Sent on a successful dispatch after an earlier failure op webhook has already been sent. operationId: message.attempt.recovered requestBody: content: application/json: schema: $ref: '#/components/schemas/MessageAttemptRecoveredEvent' example: data: appId: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 appUid: unique-app-identifier msgId: msg_1srOrx2ZWZBpBUvZwXKQmoEYga2 msgEventId: unique-msg-identifier endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 lastAttempt: id: atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2 responseStatusCode: 200 timestamp: '2022-11-06T15:04:05Z' type: message.attempt.recovered responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully x-svix-group-name: dispatch background_task.finished: post: tags: - Webhook summary: background_task.finished description: Sent when a background task is finished. operationId: background_task.finished requestBody: content: application/json: schema: $ref: '#/components/schemas/BackgroundTaskFinishedEvent' example: data: taskId: qtask_1srOrx2ZWZBpBUvZwXKQmoEYga2 task: application.stats status: finished data: appStats: - messageDestinations: 343 appId: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 appUid: null type: background_task.finished responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully ingest.endpoint.disabled: post: tags: - Webhook summary: ingest.endpoint.disabled description: Sent when an ingest endpoint has been automatically disabled after continuous failures, or manually via an API call. operationId: ingest.endpoint.disabled requestBody: content: application/json: schema: $ref: '#/components/schemas/IngestEndpointDisabledEvent' example: data: sourceId: src_30HT9jb8WZXKVWIO44ZDr endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 endpointUid: unique-endpoint-identifier failSince: '2022-11-06T15:04:05Z' trigger: automatic type: ingest.endpoint.disabled responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully ingest.message.attempt.exhausted: post: tags: - Webhook summary: ingest.message.attempt.exhausted description: Sent when a message delivery has failed (all of the retry attempts have been exhausted). operationId: ingest.message.attempt.exhausted requestBody: content: application/json: schema: $ref: '#/components/schemas/IngestMessageAttemptExhaustedEvent' example: data: sourceId: src_30HT9jb8WZXKVWIO44ZDr msgId: msg_1srOrx2ZWZBpBUvZwXKQmoEYga2 msgEventId: unique-msg-identifier endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 lastAttempt: id: atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2 responseStatusCode: 500 timestamp: '2022-11-06T15:04:05Z' type: ingest.message.attempt.exhausted responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully ingest.message.attempt.failing: post: tags: - Webhook summary: ingest.message.attempt.failing description: 'Sent after a message has been failing for a few times. It''s sent on the fourth failure. It complements `ingest.message.attempt.exhausted` which is sent after the last failure.' operationId: ingest.message.attempt.failing requestBody: content: application/json: schema: $ref: '#/components/schemas/IngestMessageAttemptFailingEvent' example: data: sourceId: src_30HT9jb8WZXKVWIO44ZDr msgId: msg_1srOrx2ZWZBpBUvZwXKQmoEYga2 msgEventId: unique-msg-identifier endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 lastAttempt: id: atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2 responseStatusCode: 500 timestamp: '2022-11-06T15:04:05Z' type: ingest.message.attempt.failing responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully ingest.message.attempt.recovered: post: tags: - Webhook summary: ingest.message.attempt.recovered description: Sent on a successful dispatch after an earlier failure op webhook has already been sent. operationId: ingest.message.attempt.recovered requestBody: content: application/json: schema: $ref: '#/components/schemas/IngestMessageAttemptRecoveredEvent' example: data: sourceId: src_30HT9jb8WZXKVWIO44ZDr msgId: msg_1srOrx2ZWZBpBUvZwXKQmoEYga2 msgEventId: unique-msg-identifier endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 lastAttempt: id: atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2 responseStatusCode: 200 timestamp: '2022-11-06T15:04:05Z' type: ingest.message.attempt.recovered responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully message.attempt.log: post: tags: - Webhook summary: message.attempt.log description: Sent after message attempts are made. Contains metadata about message attempts and their results. In order to reduce the frequency of webhooks, these are sent in batches periodically. operationId: message.attempt.log requestBody: content: application/json: schema: $ref: '#/components/schemas/MessageAttemptLogEvent' example: data: - orgId: env_1srOrx2ZWZBpBUvZwXKQmoEYga2 appId: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 appUid: unique-app-identifier endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 msgId: msg_1srOrx2ZWZBpBUvZwXKQmoEYga2 msgEventId: unique-msg-identifier msgCreated: '2022-11-06T15:04:05Z' attemptStart: '2022-11-06T15:04:06Z' attemptEnd: '2022-11-06T15:04:07Z' attemptId: atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2 responseStatusCode: 200 attemptCount: 1 status: 0 eventType: user.signup type: message.attempt.log responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully x-svix-group-name: dispatch x-svix-feature-flags: - attempt_log x-internal: true