Query structured spec data via REST or MCP. Get exactly what your agent needs.
https://api.eu.svix.com
https://api.us.svix.com
/api/v1/app
List of all the organization’s applications.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| limit | query | optional | integer | Limit the number of returned items |
| iterator | query | optional | string | The iterator returned from a prior invocation |
| order | query | optional | The sorting order of the returned items |
Bad request
Unauthorized
Forbidden
Not Found
Conflict
Validation Error
Too Many Requests
GET /api/v1/app
/api/v1/app/{app_id}
Get an application.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| app_id | path | required | string | The app’s ID or UID |
Bad request
Unauthorized
Forbidden
Not Found
Conflict
Validation Error
Too Many Requests
GET /api/v1/app/{app_id}
/api/v1/background-task
List background tasks executed in the past 90 days.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| status | query | optional | Filter the response based on the status |
|
| task | query | optional | Filter the response based on the type |
|
| limit | query | optional | integer | Limit the number of returned items |
| iterator | query | optional | string | The iterator returned from a prior invocation |
| order | query | optional | The sorting order of the returned items |
Bad request
Unauthorized
Forbidden
Not Found
Conflict
Validation Error
Too Many Requests
GET /api/v1/background-task
/api/v1/background-task/{task_id}
Get a background task by ID.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| task_id | path | required | string | — |
Bad request
Unauthorized
Forbidden
Not Found
Conflict
Validation Error
Too Many Requests
GET /api/v1/background-task/{task_id}
/api/v1/app/{app_id}/endpoint
List the application’s endpoints.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| app_id | path | required | string | The app’s ID or UID |
| limit | query | optional | integer | Limit the number of returned items |
| iterator | query | optional | string | The iterator returned from a prior invocation |
| order | query | optional | The sorting order of the returned items |
Bad request
Unauthorized
Forbidden
Not Found
Conflict
Validation Error
Too Many Requests
GET /api/v1/app/{app_id}/endpoint
/api/v1/app/{app_id}/endpoint/{endpoint_id}
Get an endpoint.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| app_id | path | required | string | The app’s ID or UID |
| endpoint_id | path | required | string | The ep’s ID or UID |
Bad request
Unauthorized
Forbidden
Not Found
Conflict
Validation Error
Too Many Requests
GET /api/v1/app/{app_id}/endpoint/{endpoint_id}
/api/v1/app/{app_id}/endpoint/{endpoint_id}/headers
Get the additional headers to be sent with the webhook
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| app_id | path | required | string | The app’s ID or UID |
| endpoint_id | path | required | string | The ep’s ID or UID |
Bad request
Unauthorized
Forbidden
Not Found
Conflict
Validation Error
Too Many Requests
GET /api/v1/app/{app_id}/endpoint/{endpoint_id}/headers
/api/v1/app/{app_id}/endpoint/{endpoint_id}/secret
Get the endpoint’s signing secret.
This is used to verify the authenticity of the webhook.
For more information please refer to the consuming webhooks docs.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| app_id | path | required | string | The app’s ID or UID |
| endpoint_id | path | required | string | The ep’s ID or UID |
Bad request
Unauthorized
Forbidden
Not Found
Conflict
Validation Error
Too Many Requests
GET /api/v1/app/{app_id}/endpoint/{endpoint_id}/secret
/api/v1/app/{app_id}/endpoint/{endpoint_id}/stats
Get basic statistics for the endpoint.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| app_id | path | required | string | The app’s ID or UID |
| endpoint_id | path | required | string | The ep’s ID or UID |
| since | query | optional | string | Filter the range to data starting from this date |
| until | query | optional | string | Filter the range to data ending by this date |
Bad request
Unauthorized
Forbidden
Not Found
Conflict
Validation Error
Too Many Requests
GET /api/v1/app/{app_id}/endpoint/{endpoint_id}/stats
/api/v1/app/{app_id}/endpoint/{endpoint_id}/transformation
Get the transformation code associated with this endpoint
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| app_id | path | required | string | The app’s ID or UID |
| endpoint_id | path | required | string | The ep’s ID or UID |
Bad request
Unauthorized
Forbidden
Not Found
Conflict
Validation Error
Too Many Requests
GET /api/v1/app/{app_id}/endpoint/{endpoint_id}/transformation
/api/v1/event-type
Return the list of event types.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| limit | query | optional | integer | Limit the number of returned items |
| iterator | query | optional | string | The iterator returned from a prior invocation |
| order | query | optional | The sorting order of the returned items |
|
| include_archived | query | optional | boolean | When |
| with_content | query | optional | boolean | When |
Bad request
Unauthorized
Forbidden
Not Found
Conflict
Validation Error
Too Many Requests
GET /api/v1/event-type
/api/v1/event-type/{event_type_name}
Get an event type.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| event_type_name | path | required | string | The event type’s name |
Bad request
Unauthorized
Forbidden
Not Found
Conflict
Validation Error
Too Many Requests
GET /api/v1/event-type/{event_type_name}
/api/v1/health
Verify the API server is up and running.
no content
Bad request
Unauthorized
Forbidden
Not Found
Conflict
Validation Error
Too Many Requests
GET /api/v1/health
/api/v1/app/{app_id}/integration
List the application’s integrations.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| app_id | path | required | string | The app’s ID or UID |
| limit | query | optional | integer | Limit the number of returned items |
| iterator | query | optional | string | The iterator returned from a prior invocation |
| order | query | optional | The sorting order of the returned items |
Bad request
Unauthorized
Forbidden
Not Found
Conflict
Validation Error
Too Many Requests
GET /api/v1/app/{app_id}/integration
/api/v1/app/{app_id}/integration/{integ_id}
Get an integration.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| app_id | path | required | string | The app’s ID or UID |
| integ_id | path | required | string | The integ’s ID |
Bad request
Unauthorized
Forbidden
Not Found
Conflict
Validation Error
Too Many Requests
GET /api/v1/app/{app_id}/integration/{integ_id}
/api/v1/app/{app_id}/msg
List all of the application’s messages.
The before and after parameters let you filter all items created before or after a certain date. These can be used alongside an iterator to paginate over results
within a certain window.
Note that by default this endpoint is limited to retrieving 90 days’ worth of data
relative to now or, if an iterator is provided, 90 days before/after the time indicated
by the iterator ID. If you require data beyond those time ranges, you will need to explicitly
set the before or after parameter as appropriate.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| app_id | path | required | string | The app’s ID or UID |
| limit | query | optional | integer | Limit the number of returned items |
| iterator | query | optional | string | The iterator returned from a prior invocation |
| channel | query | optional | string | Filter response based on the channel |
| before | query | optional | string | Only include items created before a certain date |
| after | query | optional | string | Only include items created after a certain date |
| with_content | query | optional | boolean | When |
| tag | query | optional | string | Filter messages matching the provided tag |
| event_types | query | optional | array | Filter response based on the event type |
Bad request
Unauthorized
Forbidden
Not Found
Conflict
Validation Error
Too Many Requests
GET /api/v1/app/{app_id}/msg
/api/v1/app/{app_id}/msg/{msg_id}
Get a message by its ID or eventID.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| app_id | path | required | string | The app’s ID or UID |
| msg_id | path | required | string | The msg’s ID or UID |
| with_content | query | optional | boolean | When |
Bad request
Unauthorized
Forbidden
Not Found
Conflict
Validation Error
Too Many Requests
GET /api/v1/app/{app_id}/msg/{msg_id}
/api/v1/app/{app_id}/attempt/endpoint/{endpoint_id}
List attempts by endpoint id
Note that by default this endpoint is limited to retrieving 90 days’ worth of data
relative to now or, if an iterator is provided, 90 days before/after the time indicated
by the iterator ID. If you require data beyond those time ranges, you will need to explicitly
set the before or after parameter as appropriate.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| limit | query | optional | integer | Limit the number of returned items |
| iterator | query | optional | string | The iterator returned from a prior invocation |
| status | query | optional | Filter response based on the delivery status |
|
| status_code_class | query | optional | Filter response based on the HTTP status code |
|
| channel | query | optional | string | Filter response based on the channel |
| tag | query | optional | string | Filter response based on the tag |
| before | query | optional | string | Only include items created before a certain date |
| after | query | optional | string | Only include items created after a certain date |
| with_content | query | optional | boolean | When |
| with_msg | query | optional | boolean | When |
| event_types | query | optional | array | Filter response based on the event type |
| app_id | path | required | string | The app’s ID or UID |
| endpoint_id | path | required | string | The ep’s ID or UID |
Bad request
Unauthorized
Forbidden
Not Found
Conflict
Validation Error
Too Many Requests
GET /api/v1/app/{app_id}/attempt/endpoint/{endpoint_id}
/api/v1/app/{app_id}/attempt/msg/{msg_id}
List attempts by message id
Note that by default this endpoint is limited to retrieving 90 days’ worth of data
relative to now or, if an iterator is provided, 90 days before/after the time indicated
by the iterator ID. If you require data beyond those time ranges, you will need to explicitly
set the before or after parameter as appropriate.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| limit | query | optional | integer | Limit the number of returned items |
| iterator | query | optional | string | The iterator returned from a prior invocation |
| status | query | optional | Filter response based on the delivery status |
|
| status_code_class | query | optional | Filter response based on the HTTP status code |
|
| channel | query | optional | string | Filter response based on the channel |
| tag | query | optional | string | Filter response based on the tag |
| endpoint_id | query | optional | string | Filter the attempts based on the attempted endpoint |
| before | query | optional | string | Only include items created before a certain date |
| after | query | optional | string | Only include items created after a certain date |
| with_content | query | optional | boolean | When |
| app_id | path | required | string | The app’s ID or UID |
| msg_id | path | required | string | The msg’s ID or UID |
| event_types | query | optional | array | Filter response based on the event type |
Bad request
Unauthorized
Forbidden
Not Found
Conflict
Validation Error
Too Many Requests
GET /api/v1/app/{app_id}/attempt/msg/{msg_id}
/api/v1/app/{app_id}/endpoint/{endpoint_id}/msg
List messages for a particular endpoint. Additionally includes metadata about the latest message attempt.
The before parameter lets you filter all items created before a certain date and is ignored if an iterator is passed.
Note that by default this endpoint is limited to retrieving 90 days’ worth of data
relative to now or, if an iterator is provided, 90 days before/after the time indicated
by the iterator ID. If you require data beyond those time ranges, you will need to explicitly
set the before or after parameter as appropriate.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| limit | query | optional | integer | Limit the number of returned items |
| iterator | query | optional | string | The iterator returned from a prior invocation |
| channel | query | optional | string | Filter response based on the channel |
| tag | query | optional | string | Filter response based on the message tags |
| status | query | optional | Filter response based on the delivery status |
|
| before | query | optional | string | Only include items created before a certain date |
| after | query | optional | string | Only include items created after a certain date |
| with_content | query | optional | boolean | When |
| app_id | path | required | string | The app’s ID or UID |
| endpoint_id | path | required | string | The ep’s ID or UID |
| event_types | query | optional | array | Filter response based on the event type |
Bad request
Unauthorized
Forbidden
Not Found
Conflict
Validation Error
Too Many Requests
GET /api/v1/app/{app_id}/endpoint/{endpoint_id}/msg
/api/v1/app/{app_id}/msg/{msg_id}/attempt/{attempt_id}
msg_id: Use a message id or a message eventId
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| app_id | path | required | string | The app’s ID or UID |
| msg_id | path | required | string | The msg’s ID or UID |
| attempt_id | path | required | string | The attempt’s ID |
Bad request
Unauthorized
Forbidden
Not Found
Conflict
Validation Error
Too Many Requests
GET /api/v1/app/{app_id}/msg/{msg_id}/attempt/{attempt_id}
/api/v1/app/{app_id}/msg/{msg_id}/endpoint
List endpoints attempted by a given message. Additionally includes metadata about the latest message attempt.
By default, endpoints are listed in ascending order by ID.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| limit | query | optional | integer | Limit the number of returned items |
| iterator | query | optional | string | The iterator returned from a prior invocation |
| app_id | path | required | string | The app’s ID or UID |
| msg_id | path | required | string | The msg’s ID or UID |
Bad request
Unauthorized
Forbidden
Not Found
Conflict
Validation Error
Too Many Requests
GET /api/v1/app/{app_id}/msg/{msg_id}/endpoint
AggregateEventTypesOut
{
"type": "object",
"required": [
"id",
"status",
"task"
],
"properties": {
"id": {
"type": "string"
},
"task": {
"$ref": "#/components/schemas/BackgroundTaskType"
},
"status": {
"$ref": "#/components/schemas/BackgroundTaskStatus"
}
}
}
AppPortalAccessIn
{
"type": "object",
"properties": {
"expiry": {
"type": "integer",
"format": "uint64",
"default": 604800,
"maximum": 604800,
"minimum": 3600,
"nullable": true,
"description": "How long the token will be valid for, in seconds. Valid values are between 1 hour and 7 days. The default is 7 days."
},
"featureFlags": {
"type": "array",
"items": {
"type": "string",
"example": "cool-new-feature",
"pattern": "^[a-zA-Z0-9\\-_.]+$",
"maxLength": 256
},
"example": [],
"description": "The set of feature flags the created token will have access to.",
"uniqueItems": true
}
}
}
AppPortalAccessOut
{
"type": "object",
"required": [
"token",
"url"
],
"properties": {
"url": {
"type": "string",
"format": "uri",
"example": "https://app.svix.com/login#key=eyJhcHBJZCI6ICJhcHBfMXRSdFl",
"maxLength": 65536,
"minLength": 1
},
"token": {
"type": "string",
"example": "appsk_kV3ts5tKPNJN4Dl25cMTfUNdmabxbX0O"
}
}
}
AppUsageStatsIn
{
"type": "object",
"required": [
"since",
"until"
],
"properties": {
"since": {
"type": "string",
"format": "date-time"
},
"until": {
"type": "string",
"format": "date-time"
},
"appIds": {
"type": "array",
"items": {
"type": "string",
"example": "unique-app-identifier",
"pattern": "^[a-zA-Z0-9\\-_.]+$",
"maxLength": 256,
"minLength": 1,
"description": "The app's ID or UID"
},
"nullable": true,
"uniqueItems": true
}
}
}
AppUsageStatsOut
{
"type": "object",
"required": [
"id",
"status",
"task"
],
"properties": {
"id": {
"type": "string"
},
"task": {
"$ref": "#/components/schemas/BackgroundTaskType"
},
"status": {
"$ref": "#/components/schemas/BackgroundTaskStatus"
}
}
}
ApplicationIn
{
"type": "object",
"required": [
"name"
],
"properties": {
"uid": {
"type": "string",
"example": "unique-app-identifier",
"pattern": "^[a-zA-Z0-9\\-_.]+$",
"nullable": true,
"maxLength": 256,
"minLength": 1,
"description": "Optional unique identifier for the application"
},
"name": {
"type": "string",
"example": "My first application",
"minLength": 1
},
"metadata": {
"type": "object",
"default": {},
"additionalProperties": {
"type": "string"
}
},
"rateLimit": {
"type": "integer",
"format": "uint16",
"minimum": 1,
"nullable": true
}
}
}
ApplicationOut
{
"type": "object",
"required": [
"createdAt",
"id",
"metadata",
"name",
"updatedAt"
],
"properties": {
"id": {
"type": "string",
"example": "app_1srOrx2ZWZBpBUvZwXKQmoEYga2",
"description": "The app's ID"
},
"uid": {
"type": "string",
"example": "unique-app-identifier",
"pattern": "^[a-zA-Z0-9\\-_.]+$",
"nullable": true,
"maxLength": 256,
"minLength": 1,
"description": "The app's UID"
},
"name": {
"type": "string",
"example": "My first application"
},
"metadata": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"rateLimit": {
"type": "integer",
"format": "uint16",
"minimum": 0,
"nullable": true
},
"updatedAt": {
"type": "string",
"format": "date-time"
}
}
}
ApplicationPatch
{
"type": "object",
"properties": {
"uid": {
"type": "string",
"example": "unique-app-identifier",
"pattern": "^[a-zA-Z0-9\\-_.]+$",
"nullable": true,
"maxLength": 256,
"minLength": 1,
"description": "The app's UID"
},
"name": {
"type": "string"
},
"metadata": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"rateLimit": {
"type": "integer",
"format": "uint16",
"minimum": 0,
"nullable": true
}
}
}
ApplicationTokenExpireIn
{
"type": "object",
"properties": {
"expiry": {
"type": "integer",
"format": "int64",
"example": 60,
"maximum": 259200,
"minimum": 0,
"nullable": true,
"description": "How many seconds until the old key is expired."
}
}
}
BackgroundTaskData
{
"type": "object"
}
BackgroundTaskOut
{
"type": "object",
"required": [
"data",
"id",
"status",
"task"
],
"properties": {
"id": {
"type": "string"
},
"data": {
"$ref": "#/components/schemas/BackgroundTaskData"
},
"task": {
"$ref": "#/components/schemas/BackgroundTaskType"
},
"status": {
"$ref": "#/components/schemas/BackgroundTaskStatus"
}
}
}
BackgroundTaskStatus
{
"enum": [
"running",
"finished",
"failed"
],
"type": "string"
}
BackgroundTaskType
{
"enum": [
"endpoint.replay",
"endpoint.recover",
"application.stats",
"message.broadcast",
"sdk.generate",
"event-type.aggregate"
],
"type": "string"
}
BorderRadiusConfig
{
"type": "object",
"properties": {
"card": {
"$ref": "#/components/schemas/BorderRadiusEnum",
"nullable": true
},
"input": {
"$ref": "#/components/schemas/BorderRadiusEnum",
"nullable": true
},
"button": {
"$ref": "#/components/schemas/BorderRadiusEnum",
"nullable": true
}
}
}
BorderRadiusEnum
{
"enum": [
"none",
"lg",
"md",
"sm",
"full"
],
"type": "string"
}
CompletionChoice
{
"type": "object",
"required": [
"finish_reason",
"index",
"message"
],
"properties": {
"index": {
"type": "integer",
"format": "int64"
},
"message": {
"$ref": "#/components/schemas/CompletionMessage"
},
"finish_reason": {
"type": "string"
}
}
}
CompletionMessage
{
"type": "object",
"required": [
"content",
"role"
],
"properties": {
"role": {
"type": "string"
},
"content": {
"type": "string"
}
}
}
CustomColorPalette
{
"type": "object",
"properties": {
"primary": {
"type": "string",
"format": "color",
"nullable": true
},
"textDanger": {
"type": "string",
"format": "color",
"nullable": true
},
"textPrimary": {
"type": "string",
"format": "color",
"nullable": true
},
"buttonPrimary": {
"type": "string",
"format": "color",
"nullable": true
},
"backgroundHover": {
"type": "string",
"format": "color",
"nullable": true
},
"navigationAccent": {
"type": "string",
"format": "color",
"nullable": true
},
"backgroundPrimary": {
"type": "string",
"format": "color",
"nullable": true
},
"interactiveAccent": {
"type": "string",
"format": "color",
"nullable": true
},
"backgroundSecondary": {
"type": "string",
"format": "color",
"nullable": true
}
}
}
CustomThemeOverride
{
"type": "object",
"properties": {
"fontSize": {
"$ref": "#/components/schemas/FontSizeConfig",
"nullable": true
},
"borderRadius": {
"$ref": "#/components/schemas/BorderRadiusConfig",
"nullable": true
}
}
}
DashboardAccessOut
{
"type": "object",
"required": [
"token",
"url"
],
"properties": {
"url": {
"type": "string",
"format": "uri",
"example": "https://app.svix.com/login#key=eyJhcHBJZCI6ICJhcHBfMXRSdFl",
"maxLength": 65536,
"minLength": 1
},
"token": {
"type": "string",
"example": "appsk_kV3ts5tKPNJN4Dl25cMTfUNdmabxbX0O"
}
}
}
Duration
{
"type": "object",
"required": [
"nanos",
"secs"
],
"properties": {
"secs": {
"type": "integer",
"format": "uint64",
"minimum": 0
},
"nanos": {
"type": "integer",
"format": "uint32",
"minimum": 0
}
}
}
EndpointCreatedEvent
{
"type": "object",
"required": [
"data",
"type"
],
"properties": {
"data": {
"$ref": "#/components/schemas/EndpointCreatedEventData"
},
"type": {
"enum": [
"endpoint.created"
],
"type": "string",
"default": "endpoint.created"
}
},
"description": "Sent when an endpoint is created."
}
EndpointCreatedEventData
{
"type": "object",
"required": [
"appId",
"endpointId"
],
"properties": {
"appId": {
"type": "string",
"example": "app_1srOrx2ZWZBpBUvZwXKQmoEYga2",
"description": "The app's ID"
},
"appUid": {
"type": "string",
"example": "unique-app-identifier",
"pattern": "^[a-zA-Z0-9\\-_.]+$",
"nullable": true,
"maxLength": 256,
"minLength": 1,
"description": "The app's UID"
},
"endpointId": {
"type": "string",
"example": "ep_1srOrx2ZWZBpBUvZwXKQmoEYga2",
"description": "The ep's ID"
},
"endpointUid": {
"type": "string",
"example": "unique-ep-identifier",
"pattern": "^[a-zA-Z0-9\\-_.]+$",
"nullable": true,
"maxLength": 256,
"minLength": 1,
"description": "The ep's UID"
}
}
}
EndpointDeletedEvent
{
"type": "object",
"required": [
"data",
"type"
],
"properties": {
"data": {
"$ref": "#/components/schemas/EndpointDeletedEventData"
},
"type": {
"enum": [
"endpoint.deleted"
],
"type": "string",
"default": "endpoint.deleted"
}
},
"description": "Sent when an endpoint is deleted."
}
EndpointDeletedEventData
{
"type": "object",
"required": [
"appId",
"endpointId"
],
"properties": {
"appId": {
"type": "string",
"example": "app_1srOrx2ZWZBpBUvZwXKQmoEYga2",
"description": "The app's ID"
},
"appUid": {
"type": "string",
"example": "unique-app-identifier",
"pattern": "^[a-zA-Z0-9\\-_.]+$",
"nullable": true,
"maxLength": 256,
"minLength": 1,
"description": "The app's UID"
},
"endpointId": {
"type": "string",
"example": "ep_1srOrx2ZWZBpBUvZwXKQmoEYga2",
"description": "The ep's ID"
},
"endpointUid": {
"type": "string",
"example": "unique-ep-identifier",
"pattern": "^[a-zA-Z0-9\\-_.]+$",
"nullable": true,
"maxLength": 256,
"minLength": 1,
"description": "The ep's UID"
}
}
}
EndpointDisabledEvent
{
"type": "object",
"required": [
"data",
"type"
],
"properties": {
"data": {
"$ref": "#/components/schemas/EndpointDisabledEventData"
},
"type": {
"enum": [
"endpoint.disabled"
],
"type": "string",
"default": "endpoint.disabled"
}
},
"description": "Sent when an endpoint has been automatically disabled after continuous failures."
}
EndpointDisabledEventData
{
"type": "object",
"required": [
"appId",
"endpointId",
"failSince"
],
"properties": {
"appId": {
"type": "string",
"example": "app_1srOrx2ZWZBpBUvZwXKQmoEYga2",
"description": "The app's ID"
},
"appUid": {
"type": "string",
"example": "unique-app-identifier",
"pattern": "^[a-zA-Z0-9\\-_.]+$",
"nullable": true,
"maxLength": 256,
"minLength": 1,
"description": "The app's UID"
},
"failSince": {
"type": "string",
"format": "date-time"
},
"endpointId": {
"type": "string",
"example": "ep_1srOrx2ZWZBpBUvZwXKQmoEYga2",
"description": "The ep's ID"
},
"endpointUid": {
"type": "string",
"example": "unique-ep-identifier",
"pattern": "^[a-zA-Z0-9\\-_.]+$",
"nullable": true,
"maxLength": 256,
"minLength": 1,
"description": "The ep's UID"
}
},
"description": "Sent when an endpoint has been automatically disabled after continuous failures."
}
EndpointHeadersIn
{
"type": "object",
"required": [
"headers"
],
"properties": {
"headers": {
"type": "object",
"example": {
"X-Foobar": "Bar",
"X-Example": "123"
},
"additionalProperties": {
"type": "string"
}
}
}
}
EndpointHeadersOut
{
"type": "object",
"required": [
"headers",
"sensitive"
],
"properties": {
"headers": {
"type": "object",
"example": {
"X-Foobar": "Bar",
"X-Example": "123"
},
"additionalProperties": {
"type": "string"
}
},
"sensitive": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"Authorization"
],
"uniqueItems": true
}
},
"description": "The value of the headers is returned in the `headers` field.\n\nSensitive headers that have been redacted are returned in the sensitive field."
}
EndpointHeadersPatchIn
{
"type": "object",
"required": [
"headers"
],
"properties": {
"headers": {
"type": "object",
"example": {
"X-Foobar": "Bar",
"X-Example": "123"
},
"additionalProperties": {
"type": "string",
"nullable": true
}
}
}
}
EndpointIn
{
"type": "object",
"required": [
"url"
],
"properties": {
"uid": {
"type": "string",
"example": "unique-ep-identifier",
"pattern": "^[a-zA-Z0-9\\-_.]+$",
"nullable": true,
"maxLength": 256,
"minLength": 1,
"description": "Optional unique identifier for the endpoint"
},
"url": {
"type": "string",
"format": "uri",
"example": "https://example.com/webhook/",
"maxLength": 65536,
"minLength": 1
},
"secret": {
"type": "string",
"example": "whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD",
"pattern": "^(whsec_)?[a-zA-Z0-9+/=]{32,100}$",
"nullable": true,
"description": "The endpoint's verification secret. If `null` is passed, a secret is automatically generated. Format: `base64` encoded random bytes optionally prefixed with `whsec_`. Recommended size: 24."
},
"version": {
"type": "integer",
"format": "uint16",
"default": 1,
"example": 1,
"minimum": 1,
"nullable": true,
"deprecated": true
},
"channels": {
"type": "array",
"items": {
"type": "string",
"example": "project_1337",
"pattern": "^[a-zA-Z0-9\\-_.]+$",
"maxLength": 128
},
"example": [
"project_123",
"group_2"
],
"maxItems": 10,
"minItems": 1,
"nullable": true,
"description": "List of message channels this endpoint listens to (omit for all)",
"uniqueItems": true
},
"disabled": {
"type": "boolean",
"default": false,
"example": false
},
"metadata": {
"type": "object",
"default": {},
"additionalProperties": {
"type": "string"
}
},
"rateLimit": {
"type": "integer",
"format": "uint16",
"minimum": 1,
"nullable": true
},
"description": {
"type": "string",
"default": "",
"example": "An example endpoint name"
},
"filterTypes": {
"type": "array",
"items": {
"type": "string",
"example": "user.signup",
"pattern": "^[a-zA-Z0-9\\-_.]+$",
"maxLength": 256,
"description": "The event type's name"
},
"example": [
"user.signup",
"user.deleted"
],
"minItems": 1,
"nullable": true,
"uniqueItems": true
}
}
}
EndpointMessageOut
{
"type": "object",
"required": [
"eventType",
"id",
"payload",
"status",
"timestamp"
],
"properties": {
"id": {
"type": "string",
"example": "msg_1srOrx2ZWZBpBUvZwXKQmoEYga2",
"description": "The msg's ID"
},
"tags": {
"type": "array",
"items": {
"type": "string",
"example": "project_1337",
"pattern": "^[a-zA-Z0-9\\-_.]+$",
"maxLength": 128
},
"nullable": true,
"uniqueItems": true
},
"status": {
"$ref": "#/components/schemas/MessageStatus"
},
"eventId": {
"type": "string",
"example": "unique-msg-identifier",
"pattern": "^[a-zA-Z0-9\\-_.]+$",
"nullable": true,
"maxLength": 256,
"minLength": 1,
"description": "Optional unique identifier for the message"
},
"payload": {
"type": "object",
"example": {
"type": "user.created",
"email": "test@example.com",
"username": "test_user"
}
},
"channels": {
"type": "array",
"items": {
"type": "string",
"example": "project_1337",
"pattern": "^[a-zA-Z0-9\\-_.]+$",
"maxLength": 128
},
"example": [
"project_123",
"group_2"
],
"maxItems": 5,
"minItems": 1,
"nullable": true,
"description": "List of free-form identifiers that endpoints can filter by",
"uniqueItems": true
},
"eventType": {
"type": "string",
"example": "user.signup",
"pattern": "^[a-zA-Z0-9\\-_.]+$",
"maxLength": 256,
"description": "The event type's name"
},
"timestamp": {
"type": "string",
"format": "date-time"
},
"nextAttempt": {
"type": "string",
"format": "date-time",
"nullable": true
}
},
"description": "A model containing information on a given message plus additional fields on the last attempt for that message."
}
EndpointOut
{
"type": "object",
"required": [
"createdAt",
"description",
"id",
"metadata",
"updatedAt",
"url",
"version"
],
"properties": {
"id": {
"type": "string",
"example": "ep_1srOrx2ZWZBpBUvZwXKQmoEYga2",
"description": "The ep's ID"
},
"uid": {
"type": "string",
"example": "unique-ep-identifier",
"pattern": "^[a-zA-Z0-9\\-_.]+$",
"nullable": true,
"maxLength": 256,
"minLength": 1,
"description": "Optional unique identifier for the endpoint"
},
"url": {
"type": "string",
"format": "uri",
"example": "https://example.com/webhook/",
"maxLength": 65536,
"minLength": 1
},
"version": {
"type": "integer",
"format": "int32",
"example": 1,
"minimum": 1,
"deprecated": true
},
"channels": {
"type": "array",
"items": {
"type": "string",
"example": "project_1337",
"pattern": "^[a-zA-Z0-9\\-_.]+$",
"maxLength": 128
},
"example": [
"project_123",
"group_2"
],
"maxItems": 10,
"minItems": 1,
"nullable": true,
"description": "List of message channels this endpoint listens to (omit for all)",
"uniqueItems": true
},
"disabled": {
"type": "boolean",
"default": false,
"example": false
},
"metadata": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"rateLimit": {
"type": "integer",
"format": "uint16",
"minimum": 0,
"nullable": true
},
"updatedAt": {
"type": "string",
"format": "date-time"
},
"description": {
"type": "string",
"description": "An example endpoint name"
},
"filterTypes": {
"type": "array",
"items": {
"type": "string",
"example": "user.signup",
"pattern": "^[a-zA-Z0-9\\-_.]+$",
"maxLength": 256,
"description": "The event type's name"
},
"example": [
"user.signup",
"user.deleted"
],
"minItems": 1,
"nullable": true,
"uniqueItems": true
}
}
}
EndpointPatch
{
"type": "object",
"properties": {
"uid": {
"type": "string",
"example": "unique-ep-identifier",
"pattern": "^[a-zA-Z0-9\\-_.]+$",
"nullable": true,
"maxLength": 256,
"minLength": 1,
"description": "The ep's UID"
},
"url": {
"type": "string",
"format": "uri"
},
"secret": {
"type": "string",
"example": "whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD",
"pattern": "^(whsec_)?[a-zA-Z0-9+/=]{32,100}$",
"nullable": true,
"description": "The endpoint's verification secret. If `null` is passed, a secret is automatically generated. Format: `base64` encoded random bytes optionally prefixed with `whsec_`. Recommended size: 24."
},
"version": {
"type": "integer",
"format": "uint16",
"example": 1,
"minimum": 1,
"deprecated": true
},
"channels": {
"type": "array",
"items": {
"type": "string",
"example": "project_1337",
"pattern": "^[a-zA-Z0-9\\-_.]+$",
"maxLength": 128
},
"nullable": true,
"uniqueItems": true
},
"disabled": {
"type": "boolean"
},
"metadata": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"rateLimit": {
"type": "integer",
"format": "uint16",
"minimum": 0,
"nullable": true
},
"description": {
"type": "string"
},
"filterTypes": {
"type": "array",
"items": {
"type": "string",
"example": "user.signup",
"pattern": "^[a-zA-Z0-9\\-_.]+$",
"maxLength": 256,
"description": "The event type's name"
},
"nullable": true,
"uniqueItems": true
}
}
}
EndpointSecretOut
{
"type": "object",
"required": [
"key"
],
"properties": {
"key": {
"type": "string",
"example": "whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD",
"pattern": "^(whsec_)?[a-zA-Z0-9+/=]{32,100}$",
"description": "The endpoint's verification secret. If `null` is passed, a secret is automatically generated. Format: `base64` encoded random bytes optionally prefixed with `whsec_`. Recommended size: 24."
}
}
}
EndpointSecretRotateIn
{
"type": "object",
"properties": {
"key": {
"type": "string",
"default": null,
"example": "whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD",
"pattern": "^(whsec_)?[a-zA-Z0-9+/=]{32,100}$",
"nullable": true,
"description": "The endpoint's verification secret. If `null` is passed, a secret is automatically generated. Format: `base64` encoded random bytes optionally prefixed with `whsec_`. Recommended size: 24."
}
}
}
EndpointStats
{
"type": "object",
"required": [
"fail",
"pending",
"sending",
"success"
],
"properties": {
"fail": {
"type": "integer",
"format": "int64"
},
"pending": {
"type": "integer",
"format": "int64"
},
"sending": {
"type": "integer",
"format": "int64"
},
"success": {
"type": "integer",
"format": "int64"
}
}
}
EndpointTransformationIn
{
"type": "object",
"properties": {
"code": {
"type": "string",
"nullable": true,
"maxLength": 51200,
"minLength": 10
},
"enabled": {
"type": "boolean"
}
}
}
EndpointTransformationOut
{
"type": "object",
"properties": {
"code": {
"type": "string",
"nullable": true,
"maxLength": 51200,
"minLength": 10
},
"enabled": {
"type": "boolean",
"default": false
}
}
}
EndpointTransformationSimulateIn
{
"type": "object",
"required": [
"code",
"eventType",
"payload"
],
"properties": {
"code": {
"type": "string",
"maxLength": 51200,
"minLength": 10
},
"payload": {
"type": "object"
},
"channels": {
"type": "array",
"items": {
"type": "string",
"example": "project_1337",
"pattern": "^[a-zA-Z0-9\\-_.]+$",
"maxLength": 128
},
"nullable": true,
"uniqueItems": true
},
"eventType": {
"type": "string",
"example": "user.signup",
"pattern": "^[a-zA-Z0-9\\-_.]+$",
"maxLength": 256,
"description": "The event type's name"
}
}
}
EndpointTransformationSimulateOut
{
"type": "object",
"required": [
"payload",
"url"
],
"properties": {
"url": {
"type": "string",
"format": "uri",
"maxLength": 65536,
"minLength": 1
},
"method": {
"$ref": "#/components/schemas/TransformationHttpMethod",
"nullable": true
},
"payload": {
"type": "string"
}
}
}
EndpointUpdate
{
"type": "object",
"required": [
"url"
],
"properties": {
"uid": {
"type": "string",
"example": "unique-ep-identifier",
"pattern": "^[a-zA-Z0-9\\-_.]+$",
"nullable": true,
"maxLength": 256,
"minLength": 1,
"description": "Optional unique identifier for the endpoint"
},
"url": {
"type": "string",
"format": "uri",
"example": "https://example.com/webhook/",
"maxLength": 65536,
"minLength": 1
},
"version": {
"type": "integer",
"format": "uint16",
"default": 1,
"example": 1,
"minimum": 1,
"nullable": true,
"deprecated": true
},
"channels": {
"type": "array",
"items": {
"type": "string",
"example": "project_1337",
"pattern": "^[a-zA-Z0-9\\-_.]+$",
"maxLength": 128
},
"example": [
"project_123",
"group_2"
],
"maxItems": 10,
"minItems": 1,
"nullable": true,
"description": "List of message channels this endpoint listens to (omit for all)",
"uniqueItems": true
},
"disabled": {
"type": "boolean",
"default": false,
"example": false
},
"metadata": {
"type": "object",
"default": {},
"additionalProperties": {
"type": "string"
}
},
"rateLimit": {
"type": "integer",
"format": "uint16",
"minimum": 1,
"nullable": true
},
"description": {
"type": "string",
"default": "",
"example": "An example endpoint name"
},
"filterTypes": {
"type": "array",
"items": {
"type": "string",
"example": "user.signup",
"pattern": "^[a-zA-Z0-9\\-_.]+$",
"maxLength": 256,
"description": "The event type's name"
},
"example": [
"user.signup",
"user.deleted"
],
"minItems": 1,
"nullable": true,
"uniqueItems": true
}
}
}
EndpointUpdatedEvent
{
"type": "object",
"required": [
"data",
"type"
],
"properties": {
"data": {
"$ref": "#/components/schemas/EndpointUpdatedEventData"
},
"type": {
"enum": [
"endpoint.updated"
],
"type": "string",
"default": "endpoint.updated"
}
},
"description": "Sent when an endpoint is updated."
}
EndpointUpdatedEventData
{
"type": "object",
"required": [
"appId",
"endpointId"
],
"properties": {
"appId": {
"type": "string",
"example": "app_1srOrx2ZWZBpBUvZwXKQmoEYga2",
"description": "The app's ID"
},
"appUid": {
"type": "string",
"example": "unique-app-identifier",
"pattern": "^[a-zA-Z0-9\\-_.]+$",
"nullable": true,
"maxLength": 256,
"minLength": 1,
"description": "The app's UID"
},
"endpointId": {
"type": "string",
"example": "ep_1srOrx2ZWZBpBUvZwXKQmoEYga2",
"description": "The ep's ID"
},
"endpointUid": {
"type": "string",
"example": "unique-ep-identifier",
"pattern": "^[a-zA-Z0-9\\-_.]+$",
"nullable": true,
"maxLength": 256,
"minLength": 1,
"description": "The ep's UID"
}
}
}
EnvironmentIn
{
"type": "object",
"required": [
"createdAt",
"version"
],
"properties": {
"version": {
"type": "integer",
"format": "int"
},
"settings": {
"$ref": "#/components/schemas/SettingsIn",
"nullable": true
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"eventTypes": {
"type": "array",
"items": {
"$ref": "#/components/schemas/EventTypeIn"
},
"nullable": true
}
}
}
EnvironmentOut
{
"type": "object",
"required": [
"createdAt",
"eventTypes"
],
"properties": {
"version": {
"type": "integer",
"format": "int",
"default": 1
},
"settings": {
"$ref": "#/components/schemas/SettingsOut",
"nullable": true
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"eventTypes": {
"type": "array",
"items": {
"$ref": "#/components/schemas/EventTypeOut"
}
}
}
}
EnvironmentSettingsOut
{
"type": "object",
"properties": {
"customColor": {
"type": "string",
"format": "color",
"nullable": true
},
"displayName": {
"type": "string",
"nullable": true
},
"customLogoUrl": {
"type": "string",
"format": "uri",
"nullable": true,
"maxLength": 65536,
"minLength": 1
},
"enableChannels": {
"type": "boolean",
"default": false
},
"showUseSvixPlay": {
"type": "boolean",
"default": true
},
"colorPaletteDark": {
"$ref": "#/components/schemas/CustomColorPalette",
"nullable": true
},
"customFontFamily": {
"type": "string",
"example": "Open Sans",
"pattern": "^[a-zA-Z0-9\\-_ ]+$",
"nullable": true
},
"colorPaletteLight": {
"$ref": "#/components/schemas/CustomColorPalette",
"nullable": true
},
"enableMessageTags": {
"type": "boolean",
"default": false
},
"customFontFamilyUrl": {
"type": "string",
"format": "uri",
"nullable": true,
"maxLength": 65536,
"minLength": 1
},
"customThemeOverride": {
"$ref": "#/components/schemas/CustomThemeOverride",
"nullable": true
},
"enableTransformations": {
"type": "boolean",
"default": false
},
"enableIntegrationManagement": {
"type": "boolean",
"default": false
}
}
}
EventExampleIn
{
"type": "object",
"required": [
"eventType"
],
"properties": {
"eventType": {
"type": "string",
"example": "user.signup",
"pattern": "^[a-zA-Z0-9\\-_.]+$",
"maxLength": 256,
"description": "The event type's name"
}
}
}
EventTypeImportOpenApiIn
{
"type": "object",
"properties": {
"spec": {
"type": "object",
"example": {
"info": {
"title": "Webhook Example",
"version": "1.0.0"
},
"openapi": "3.1.0",
"webhooks": {
"pet.new": {
"post": {
"responses": {
"200": {
"description": "Return a 200 status to indicate that the data was received successfully"
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"tag": {
"type": "string"
},
"name": {
"type": "string"
}
}
}
}
},
"description": "Information about a new pet in the system"
}
}
}
}
},
"nullable": true,
"description": "A pre-parsed JSON spec.",
"additionalProperties": {
"type": "object"
}
},
"specRaw": {
"type": "string",
"example": {
"info": {
"title": "Webhook Example",
"version": "1.0.0"
},
"openapi": "3.1.0",
"webhooks": {
"pet.new": {
"post": {
"responses": {
"200": {
"description": "Return a 200 status to indicate that the data was received successfully"
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"tag": {
"type": "string"
},
"name": {
"type": "string"
}
}
}
}
},
"description": "Information about a new pet in the system"
}
}
}
}
},
"nullable": true,
"description": "A string, parsed by the server as YAML or JSON."
}
},
"description": "Import a list of event types from webhooks defined in an OpenAPI spec.\n\nThe OpenAPI spec can be specified as either `spec` given the spec as a JSON object, or as `specRaw` (a `string`) which will be parsed as YAML or JSON by the server. Sending neither or both is invalid, resulting in a `400` **Bad Request**."
}
EventTypeImportOpenApiOut
{
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"$ref": "#/components/schemas/EventTypeImportOpenApiOutData"
}
}
}