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/{app_id}
Update an application.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| app_id | path | required | string | The app's ID or UID |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApplicationIn"
}
}
},
"required": true
}
PUT /api/v1/app/{app_id}
/api/v1/app/{app_id}/endpoint/{endpoint_id}
Update 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 |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EndpointUpdate"
}
}
},
"required": true
}
PUT /api/v1/app/{app_id}/endpoint/{endpoint_id}
/api/v1/app/{app_id}/endpoint/{endpoint_id}/headers
Set 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 |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EndpointHeadersIn"
}
}
},
"required": true
}
PUT /api/v1/app/{app_id}/endpoint/{endpoint_id}/headers
/api/v1/event-type/{event_type_name}
Update an event type.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| event_type_name | path | required | string | The event type's name |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EventTypeUpdate"
}
}
},
"required": true
}
PUT /api/v1/event-type/{event_type_name}
/api/v1/app/{app_id}/integration/{integ_id}
Update 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 |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/IntegrationUpdate"
}
}
},
"required": true
}
PUT /api/v1/app/{app_id}/integration/{integ_id}
/api/v1/stats/usage/event-types
Creates a background task to calculate the listed event types for all apps in the organization. Note that this endpoint is asynchronous. You will need to poll the `Get Background Task` endpoint to retrieve the results of the operation.
PUT /api/v1/stats/usage/event-types
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"
}
}
}
EventTypeImportOpenApiOutData
{
"type": "object",
"required": [
"modified"
],
"properties": {
"modified": {
"type": "array",
"items": {
"type": "string",
"example": "user.signup",
"pattern": "^[a-zA-Z0-9\\-_.]+$",
"maxLength": 256,
"description": "The event type's name"
}
}
}
}
EventTypeIn
{
"type": "object",
"required": [
"description",
"name"
],
"properties": {
"name": {
"type": "string",
"example": "user.signup",
"pattern": "^[a-zA-Z0-9\\-_.]+$",
"maxLength": 256,
"description": "The event type's name"
},
"schemas": {
"type": "object",
"example": {
"1": {
"type": "object",
"title": "Invoice Paid Event",
"required": [
"invoiceId",
"userId"
],
"properties": {
"userId": {
"type": "string",
"description": "The user id"
},
"invoiceId": {
"type": "string",
"description": "The invoice id"
}
},
"description": "An invoice was paid by a user"
}
},
"nullable": true,
"description": "The schema for the event type for a specific version as a JSON schema.",
"additionalProperties": {
"type": "object"
}
},
"archived": {
"type": "boolean",
"default": false,
"example": false
},
"description": {
"type": "string",
"example": "A user has signed up"
},
"featureFlag": {
"type": "string",
"example": "cool-new-feature",
"pattern": "^[a-zA-Z0-9\\-_.]+$",
"nullable": true,
"maxLength": 256
}
}
}
EventTypeOut
{
"type": "object",
"required": [
"createdAt",
"description",
"name",
"updatedAt"
],
"properties": {
"name": {
"type": "string",
"example": "user.signup",
"pattern": "^[a-zA-Z0-9\\-_.]+$",
"maxLength": 256,
"description": "The event type's name"
},
"schemas": {
"type": "object",
"example": {
"1": {
"type": "object",
"title": "Invoice Paid Event",
"required": [
"invoiceId",
"userId"
],
"properties": {
"userId": {
"type": "string",
"description": "The user id"
},
"invoiceId": {
"type": "string",
"description": "The invoice id"
}
},
"description": "An invoice was paid by a user"
}
},
"nullable": true,
"description": "The schema for the event type for a specific version as a JSON schema.",
"additionalProperties": {
"type": "object"
}
},
"archived": {
"type": "boolean",
"default": false,
"example": false
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
},
"description": {
"type": "string",
"example": "A user has signed up"
},
"featureFlag": {
"type": "string",
"example": "cool-new-feature",
"pattern": "^[a-zA-Z0-9\\-_.]+$",
"nullable": true,
"maxLength": 256
}
}
}
EventTypePatch
{
"type": "object",
"properties": {
"schemas": {
"type": "object",
"example": {
"type": "object",
"title": "Invoice Paid Event",
"required": [
"invoiceId",
"userId"
],
"properties": {
"userId": {
"type": "string",
"description": "The user id"
},
"invoiceId": {
"type": "string",
"description": "The invoice id"
}
},
"description": "An invoice was paid by a user"
},
"nullable": true,
"additionalProperties": {
"type": "object"
}
},
"archived": {
"type": "boolean"
},
"description": {
"type": "string"
},
"featureFlag": {
"type": "string",
"example": "cool-new-feature",
"pattern": "^[a-zA-Z0-9\\-_.]+$",
"nullable": true,
"maxLength": 256
}
}
}
EventTypeUpdate
{
"type": "object",
"required": [
"description"
],
"properties": {
"schemas": {
"type": "object",
"example": {
"1": {
"type": "object",
"title": "Invoice Paid Event",
"required": [
"invoiceId",
"userId"
],
"properties": {
"userId": {
"type": "string",
"description": "The user id"
},
"invoiceId": {
"type": "string",
"description": "The invoice id"
}
},
"description": "An invoice was paid by a user"
}
},
"nullable": true,
"description": "The schema for the event type for a specific version as a JSON schema.",
"additionalProperties": {
"type": "object"
}
},
"archived": {
"type": "boolean",
"default": false,
"example": false
},
"description": {
"type": "string",
"example": "A user has signed up"
},
"featureFlag": {
"type": "string",
"example": "cool-new-feature",
"pattern": "^[a-zA-Z0-9\\-_.]+$",
"nullable": true,
"maxLength": 256
}
}
}
ExportEventTypeOut
{
"type": "object",
"required": [
"id",
"status",
"task"
],
"properties": {
"id": {
"type": "string"
},
"task": {
"$ref": "#/components/schemas/BackgroundTaskType"
},
"status": {
"$ref": "#/components/schemas/BackgroundTaskStatus"
}
}
}
FontSizeConfig
{
"type": "object",
"properties": {
"base": {
"type": "integer",
"format": "uint16",
"minimum": 0,
"nullable": true
}
}
}
GenerateIn
{
"type": "object",
"required": [
"prompt"
],
"properties": {
"prompt": {
"type": "string"
}
}
}
GenerateOut
{
"type": "object",
"required": [
"choices",
"created",
"id",
"model",
"object"
],
"properties": {
"id": {
"type": "string"
},
"model": {
"type": "string"
},
"object": {
"type": "string"
},
"choices": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CompletionChoice"
}
},
"created": {
"type": "integer",
"format": "int64"
}
}
}
HTTPValidationError
{
"type": "object",
"required": [
"detail"
],
"properties": {
"detail": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ValidationError"
}
}
}
}
HttpErrorOut
{
"type": "object",
"title": "HttpError",
"required": [
"code",
"detail"
],
"properties": {
"code": {
"type": "string"
},
"detail": {
"type": "string"
}
}
}
InboundPathParams
{
"type": "object",
"required": [
"app_id",
"inbound_token"
],
"properties": {
"app_id": {
"type": "string",
"example": "unique-app-identifier",
"pattern": "^[a-zA-Z0-9\\-_.]+$",
"maxLength": 256,
"minLength": 1,
"description": "The app's ID or UID"
},
"inbound_token": {
"type": "string"
}
}
}
IntegrationIn
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"example": "Example Integration"
}
}
}
IntegrationKeyOut
{
"type": "object",
"required": [
"key"
],
"properties": {
"key": {
"type": "string",
"example": "integsk_kV3ts5tKPNJN4Dl25cMTfUNdmabxbX0O"
}
}
}
IntegrationOut
{
"type": "object",
"required": [
"createdAt",
"id",
"name",
"updatedAt"
],
"properties": {
"id": {
"type": "string",
"example": "integ_1srOrx2ZWZBpBUvZwXKQmoEYga2",
"description": "The integ's ID"
},
"name": {
"type": "string",
"example": "Example Integration"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
}
}
}
IntegrationUpdate
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"example": "Example Integration"
}
}
}
ListResponse_ApplicationOut_
{
"type": "object",
"required": [
"data",
"done"
],
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ApplicationOut"
}
},
"done": {
"type": "boolean"
},
"iterator": {
"type": "string",
"example": "iterator",
"nullable": true
},
"prevIterator": {
"type": "string",
"example": "-iterator",
"nullable": true
}
}
}
ListResponse_BackgroundTaskOut_
{
"type": "object",
"required": [
"data",
"done"
],
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BackgroundTaskOut"
}
},
"done": {
"type": "boolean"
},
"iterator": {
"type": "string",
"example": "iterator",
"nullable": true
},
"prevIterator": {
"type": "string",
"example": "-iterator",
"nullable": true
}
}
}
ListResponse_EndpointMessageOut_
{
"type": "object",
"required": [
"data",
"done"
],
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/EndpointMessageOut"
}
},
"done": {
"type": "boolean"
},
"iterator": {
"type": "string",
"example": "iterator",
"nullable": true
},
"prevIterator": {
"type": "string",
"example": "-iterator",
"nullable": true
}
}
}
ListResponse_EndpointOut_
{
"type": "object",
"required": [
"data",
"done"
],
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/EndpointOut"
}
},
"done": {
"type": "boolean"
},
"iterator": {
"type": "string",
"example": "iterator",
"nullable": true
},
"prevIterator": {
"type": "string",
"example": "-iterator",
"nullable": true
}
}
}
ListResponse_EventTypeOut_
{
"type": "object",
"required": [
"data",
"done"
],
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/EventTypeOut"
}
},
"done": {
"type": "boolean"
},
"iterator": {
"type": "string",
"example": "iterator",
"nullable": true
},
"prevIterator": {
"type": "string",
"example": "-iterator",
"nullable": true
}
}
}
ListResponse_IntegrationOut_
{
"type": "object",
"required": [
"data",
"done"
],
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IntegrationOut"
}
},
"done": {
"type": "boolean"
},
"iterator": {
"type": "string",
"example": "iterator",
"nullable": true
},
"prevIterator": {
"type": "string",
"example": "-iterator",
"nullable": true
}
}
}
ListResponse_MessageAttemptEndpointOut_
{
"type": "object",
"required": [
"data",
"done"
],
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/MessageAttemptEndpointOut"
}
},
"done": {
"type": "boolean"
},
"iterator": {
"type": "string",
"example": "iterator",
"nullable": true
},
"prevIterator": {
"type": "string",
"example": "-iterator",
"nullable": true
}
}
}
ListResponse_MessageAttemptOut_
{
"type": "object",
"required": [
"data",
"done"
],
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/MessageAttemptOut"
}
},
"done": {
"type": "boolean"
},
"iterator": {
"type": "string",
"example": "iterator",
"nullable": true
},
"prevIterator": {
"type": "string",
"example": "-iterator",
"nullable": true
}
}
}
ListResponse_MessageEndpointOut_
{
"type": "object",
"required": [
"data",
"done"
],
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/MessageEndpointOut"
}
},
"done": {
"type": "boolean"
},
"iterator": {
"type": "string",
"example": "iterator",
"nullable": true
},
"prevIterator": {
"type": "string",
"example": "-iterator",
"nullable": true
}
}
}
ListResponse_MessageOut_
{
"type": "object",
"required": [
"data",
"done"
],
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/MessageOut"
}
},
"done": {
"type": "boolean"
},
"iterator": {
"type": "string",
"example": "iterator",
"nullable": true
},
"prevIterator": {
"type": "string",
"example": "-iterator",
"nullable": true
}
}
}
ListResponse_TemplateOut_
{
"type": "object",
"required": [
"data",
"done"
],
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TemplateOut"
}
},
"done": {
"type": "boolean"
},
"iterator": {
"type": "string",
"example": "iterator",
"nullable": true
},
"prevIterator": {
"type": "string",
"example": "-iterator",
"nullable": true
}
}
}
MessageAttemptEndpointOut
{
"type": "object",
"required": [
"endpointId",
"id",
"msgId",
"response",
"responseStatusCode",
"status",
"timestamp",
"triggerType",
"url"
],
"properties": {
"id": {
"type": "string",
"example": "atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2",
"description": "The attempt's ID"
},
"msg": {
"$ref": "#/components/schemas/MessageOut",
"nullable": true
},
"url": {
"type": "string",
"format": "uri",
"example": "https://example.com/webhook/",
"maxLength": 65536,
"minLength": 1
},
"msgId": {
"type": "string",
"example": "msg_1srOrx2ZWZBpBUvZwXKQmoEYga2",
"description": "The msg's ID"
},
"status": {
"$ref": "#/components/schemas/MessageStatus"
},
"response": {
"type": "string",
"example": "{}"
},
"timestamp": {
"type": "string",
"format": "date-time"
},
"endpointId": {
"type": "string",
"example": "ep_1srOrx2ZWZBpBUvZwXKQmoEYga2",
"description": "The ep's ID"
},
"triggerType": {
"$ref": "#/components/schemas/MessageAttemptTriggerType"
},
"responseStatusCode": {
"type": "integer",
"format": "int16",
"example": 200
}
}
}
MessageAttemptExhaustedEvent
{
"type": "object",
"required": [
"data",
"type"
],
"properties": {
"data": {
"$ref": "#/components/schemas/MessageAttemptExhaustedEventData"
},
"type": {
"enum": [
"message.attempt.exhausted"
],
"type": "string",
"default": "message.attempt.exhausted"
}
},
"description": "Sent when a message delivery has failed (all of the retry attempts have been exhausted)."
}
MessageAttemptExhaustedEventData
{
"type": "object",
"required": [
"appId",
"endpointId",
"lastAttempt",
"msgId"
],
"properties": {
"appId": {
"type": "string",
"example": "app_1srOrx2ZWZBpBUvZwXKQmoEYga2",
"description": "The app's ID"
},
"msgId": {
"type": "string",
"example": "msg_1srOrx2ZWZBpBUvZwXKQmoEYga2",
"description": "The msg'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"
},
"msgEventId": {
"type": "string",
"example": "unique-msg-identifier",
"pattern": "^[a-zA-Z0-9\\-_.]+$",
"nullable": true,
"maxLength": 256,
"minLength": 1,
"description": "The msg's UID"
},
"lastAttempt": {
"$ref": "#/components/schemas/MessageAttemptFailedData"
}
},
"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."
}
MessageAttemptFailedData
{
"type": "object",
"required": [
"id",
"responseStatusCode",
"timestamp"
],
"properties": {
"id": {
"type": "string",
"example": "atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2",
"description": "The attempt's ID"
},
"timestamp": {
"type": "string",
"format": "date-time"
},
"responseStatusCode": {
"type": "integer",
"format": "int16"
}
}
}
MessageAttemptFailingEvent
{
"type": "object",
"required": [
"data",
"type"
],
"properties": {
"data": {
"$ref": "#/components/schemas/MessageAttemptFailingEventData"
},
"type": {
"enum": [
"message.attempt.failing"
],
"type": "string",
"default": "message.attempt.failing"
}
},
"description": "Sent after a message has been failing for a few times.\nIt's sent on the fourth failure. It complements `message.attempt.exhausted` which is sent after the last failure."
}
MessageAttemptFailingEventData
{
"type": "object",
"required": [
"appId",
"endpointId",
"lastAttempt",
"msgId"
],
"properties": {
"appId": {
"type": "string",
"example": "app_1srOrx2ZWZBpBUvZwXKQmoEYga2",
"description": "The app's ID"
},
"msgId": {
"type": "string",
"example": "msg_1srOrx2ZWZBpBUvZwXKQmoEYga2",
"description": "The msg'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"
},
"msgEventId": {
"type": "string",
"example": "unique-msg-identifier",
"pattern": "^[a-zA-Z0-9\\-_.]+$",
"nullable": true,
"maxLength": 256,
"minLength": 1,
"description": "The msg's UID"
},
"lastAttempt": {
"$ref": "#/components/schemas/MessageAttemptFailedData"
}
},
"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."
}
MessageAttemptHeadersOut
{
"type": "object",
"required": [
"sensitive",
"sentHeaders"
],
"properties": {
"sensitive": {
"type": "array",
"items": {
"type": "string"
},
"uniqueItems": true
},
"sentHeaders": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"responseHeaders": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 2,
"minItems": 2
},
"nullable": true
}
}
}
MessageAttemptOut
{
"type": "object",
"required": [
"endpointId",
"id",
"msgId",
"response",
"responseStatusCode",
"status",
"timestamp",
"triggerType",
"url"
],
"properties": {
"id": {
"type": "string",
"example": "atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2",
"description": "The attempt's ID"
},
"msg": {
"$ref": "#/components/schemas/MessageOut",
"nullable": true
},
"url": {
"type": "string",
"format": "uri",
"example": "https://example.com/webhook/",
"maxLength": 65536,
"minLength": 1
},
"msgId": {
"type": "string",
"example": "msg_1srOrx2ZWZBpBUvZwXKQmoEYga2",
"description": "The msg's ID"
},
"status": {
"$ref": "#/components/schemas/MessageStatus"
},
"response": {
"type": "string",
"example": "{}"
},
"timestamp": {
"type": "string",
"format": "date-time"
},
"endpointId": {
"type": "string",
"example": "ep_1srOrx2ZWZBpBUvZwXKQmoEYga2",
"description": "The ep's ID"
},
"triggerType": {
"$ref": "#/components/schemas/MessageAttemptTriggerType"
},
"responseStatusCode": {
"type": "integer",
"format": "int16",
"example": 200
}
}
}
MessageAttemptRecoveredEvent
{
"type": "object",
"required": [
"data",
"type"
],
"properties": {
"data": {
"$ref": "#/components/schemas/MessageAttemptRecoveredEventData"
},
"type": {
"enum": [
"message.attempt.recovered"
],
"type": "string",
"default": "message.attempt.recovered"
}
},
"description": "Sent on a successful dispatch after an earlier failure op webhook has already been sent."
}
MessageAttemptRecoveredEventData
{
"type": "object",
"required": [
"appId",
"endpointId",
"lastAttempt",
"msgId"
],
"properties": {
"appId": {
"type": "string",
"example": "app_1srOrx2ZWZBpBUvZwXKQmoEYga2",
"description": "The app's ID"
},
"msgId": {
"type": "string",
"example": "msg_1srOrx2ZWZBpBUvZwXKQmoEYga2",
"description": "The msg'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"
},
"msgEventId": {
"type": "string",
"example": "unique-msg-identifier",
"pattern": "^[a-zA-Z0-9\\-_.]+$",
"nullable": true,
"maxLength": 256,
"minLength": 1,
"description": "The msg's UID"
},
"lastAttempt": {
"$ref": "#/components/schemas/MessageAttemptFailedData"
}
},
"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."
}
MessageAttemptTriggerType
{
"enum": [
0,
1
],
"type": "integer",
"title": "MessageAttemptTriggerType",
"description": "The reason an attempt was made:\n- Scheduled = 0\n- Manual = 1",
"x-enum-varnames": [
"Scheduled",
"Manual"
]
}
MessageBroadcastIn
{
"type": "object",
"required": [
"eventType",
"payload"
],
"properties": {
"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"
},
"payloadRetentionPeriod": {
"type": "integer",
"format": "int64",
"default": 90,
"example": 90,
"maximum": 90,
"minimum": 5
}
}
}
MessageBroadcastOut
{
"type": "object",
"required": [
"id",
"status",
"task"
],
"properties": {
"id": {
"type": "string"
},
"task": {
"$ref": "#/components/schemas/BackgroundTaskType"
},
"status": {
"$ref": "#/components/schemas/BackgroundTaskStatus"
}
}
}
MessageEndpointOut
{
"type": "object",
"required": [
"createdAt",
"description",
"id",
"status",
"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
},
"status": {
"$ref": "#/components/schemas/MessageStatus"
},
"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
},
"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
},
"nextAttempt": {
"type": "string",
"format": "date-time",
"nullable": true
}
}
}
MessageIn
{
"type": "object",
"required": [
"eventType",
"payload"
],
"properties": {
"tags": {
"type": "array",
"items": {
"type": "string",
"example": "project_1337",
"pattern": "^[a-zA-Z0-9\\-_.]+$",
"maxLength": 128
},
"example": [
"my_tag",
"other"
],
"maxItems": 5,
"minItems": 1,
"nullable": true,
"description": "List of free-form tags that can be filtered by when listing messages",
"uniqueItems": true
},
"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"
},
"application": {
"$ref": "#/components/schemas/ApplicationIn",
"nullable": true,
"description": "Optionally creates a new application alongside the message. If the application id or uid that is used in the path already exists, this argument is ignored."
},
"transformationsParams": {
"type": "object",
"nullable": true,
"description": "Extra parameters to pass to Transformations (for future use)"
},
"payloadRetentionPeriod": {
"type": "integer",
"format": "int64",
"default": 90,
"example": 90,
"maximum": 90,
"minimum": 5
}
}
}
MessageOut
{
"type": "object",
"required": [
"eventType",
"id",
"payload",
"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
},
"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"
}
}
}
MessageRawPayloadOut
{
"type": "object",
"required": [
"payload"
],
"properties": {
"payload": {
"type": "string",
"example": "{\"email\":\"test@example.com\",\"type\":\"user.created\",\"username\":\"test_user\"}"
}
}
}
MessageStatus
{
"enum": [
0,
1,
2,
3
],
"type": "integer",
"title": "MessageStatus",
"description": "The sending status of the message:\n- Success = 0\n- Pending = 1\n- Fail = 2\n- Sending = 3",
"x-enum-varnames": [
"Success",
"Pending",
"Fail",
"Sending"
]
}
MessageStreamOut
{
"type": "object",
"required": [
"data",
"done",
"iterator"
],
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/MessageOut"
}
},
"done": {
"type": "boolean"
},
"iterator": {
"type": "string"
}
}
}
OauthPayloadIn
{
"type": "object",
"required": [
"code",
"redirectUri"
],
"properties": {
"code": {
"type": "string"
},
"redirectUri": {
"type": "string"
}
}
}
OauthPayloadOut
{
"type": "object",
"properties": {
"error": {
"type": "string",
"nullable": true
},
"channel": {
"type": "string",
"nullable": true
},
"incomingWebhookUrl": {
"type": "string",
"format": "uri",
"nullable": true
}
}
}
OneTimeTokenIn
{
"type": "object",
"required": [
"oneTimeToken"
],
"properties": {
"oneTimeToken": {
"type": "string"
}
}
}
OneTimeTokenOut
{
"type": "object",
"required": [
"token"
],
"properties": {
"token": {
"type": "string"
}
}
}
Ordering
{
"enum": [
"ascending",
"descending"
],
"type": "string",
"description": "Defines the ordering in a listing of results."
}
RecoverIn
{
"type": "object",
"required": [
"since"
],
"properties": {
"since": {
"type": "string",
"format": "date-time"
},
"until": {
"type": "string",
"format": "date-time",
"nullable": true
}
}
}
RecoverOut
{
"type": "object",
"required": [
"id",
"status",
"task"
],
"properties": {
"id": {
"type": "string"
},
"task": {
"$ref": "#/components/schemas/BackgroundTaskType"
},
"status": {
"$ref": "#/components/schemas/BackgroundTaskStatus"
}
}
}
ReplayIn
{
"type": "object",
"required": [
"since"
],
"properties": {
"since": {
"type": "string",
"format": "date-time"
},
"until": {
"type": "string",
"format": "date-time",
"nullable": true
}
}
}
ReplayOut
{
"type": "object",
"required": [
"id",
"status",
"task"
],
"properties": {
"id": {
"type": "string"
},
"task": {
"$ref": "#/components/schemas/BackgroundTaskType"
},
"status": {
"$ref": "#/components/schemas/BackgroundTaskStatus"
}
}
}
RetrySchedule
{
"type": "array",
"items": {
"$ref": "#/components/schemas/Duration"
}
}
RetryScheduleInOut
{
"type": "object",
"properties": {
"retrySchedule": {
"$ref": "#/components/schemas/RetrySchedule",
"nullable": true
}
}
}
RotatedUrlOut
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string"
}
}
}
SettingsIn
{
"type": "object",
"properties": {
"readOnly": {
"type": "boolean",
"default": false
},
"customColor": {
"type": "string",
"format": "color",
"nullable": true
},
"displayName": {
"type": "string",
"nullable": true
},
"enforceHttps": {
"type": "boolean",
"default": 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
},
"customBaseFontSize": {
"type": "integer",
"format": "int",
"nullable": true
},
"customFontFamilyUrl": {
"type": "string",
"format": "uri",
"nullable": true,
"maxLength": 65536,
"minLength": 1
},
"customThemeOverride": {
"$ref": "#/components/schemas/CustomThemeOverride",
"nullable": true
},
"enableTransformations": {
"type": "boolean",
"default": false
},
"eventCatalogPublished": {
"type": "boolean",
"default": false
},
"disableEndpointOnFailure": {
"type": "boolean",
"default": true
},
"enableIntegrationManagement": {
"type": "boolean",
"default": false
}
}
}
SettingsOut
{
"type": "object",
"properties": {
"readOnly": {
"type": "boolean",
"default": false
},
"customColor": {
"type": "string",
"format": "color",
"nullable": true
},
"displayName": {
"type": "string",
"nullable": true
},
"enforceHttps": {
"type": "boolean",
"default": 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
},
"customBaseFontSize": {
"type": "integer",
"format": "int",
"nullable": true
},
"customFontFamilyUrl": {
"type": "string",
"format": "uri",
"nullable": true,
"maxLength": 65536,
"minLength": 1
},
"customThemeOverride": {
"$ref": "#/components/schemas/CustomThemeOverride",
"nullable": true
},
"enableTransformations": {
"type": "boolean",
"default": false
},
"eventCatalogPublished": {
"type": "boolean",
"default": false
},
"disableEndpointOnFailure": {
"type": "boolean",
"default": true
},
"enableIntegrationManagement": {
"type": "boolean",
"default": false
}
}
}
StatusCodeClass
{
"enum": [
0,
100,
200,
300,
400,
500
],
"type": "integer",
"title": "StatusCodeClass",
"description": "The different classes of HTTP status codes:\n- CodeNone = 0\n- Code1xx = 100\n- Code2xx = 200\n- Code3xx = 300\n- Code4xx = 400\n- Code5xx = 500",
"x-enum-varnames": [
"CodeNone",
"Code1xx",
"Code2xx",
"Code3xx",
"Code4xx",
"Code5xx"
]
}
TemplateIn
{
"type": "object",
"required": [
"logo",
"name",
"transformation"
],
"properties": {
"kind": {
"$ref": "#/components/schemas/TransformationTemplateKind",
"default": "Custom"
},
"logo": {
"type": "string",
"format": "uri"
},
"name": {
"type": "string"
},
"description": {
"type": "string",
"default": ""
},
"featureFlag": {
"type": "string",
"example": "cool-new-feature",
"pattern": "^[a-zA-Z0-9\\-_.]+$",
"nullable": true,
"maxLength": 256
},
"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
},
"instructions": {
"type": "string",
"default": ""
},
"transformation": {
"type": "string",
"maxLength": 51200,
"minLength": 10
},
"instructionsLink": {
"type": "string",
"format": "uri",
"default": null,
"nullable": true
}
}
}
TemplateOut
{
"type": "object",
"required": [
"createdAt",
"description",
"id",
"instructions",
"kind",
"logo",
"name",
"orgId",
"transformation",
"updatedAt"
],
"properties": {
"id": {
"type": "string"
},
"kind": {
"$ref": "#/components/schemas/TransformationTemplateKind"
},
"logo": {
"type": "string",
"format": "uri"
},
"name": {
"type": "string"
},
"orgId": {
"type": "string"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
},
"description": {
"type": "string"
},
"featureFlag": {
"type": "string",
"example": "cool-new-feature",
"pattern": "^[a-zA-Z0-9\\-_.]+$",
"nullable": true,
"maxLength": 256
},
"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
},
"instructions": {
"type": "string"
},
"transformation": {
"type": "string"
},
"instructionsLink": {
"type": "string",
"format": "uri",
"nullable": true
}
}
}
TemplatePatch
{
"type": "object",
"properties": {
"kind": {
"$ref": "#/components/schemas/TransformationTemplateKind"
},
"logo": {
"type": "string",
"format": "uri"
},
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"featureFlag": {
"type": "string",
"example": "cool-new-feature",
"pattern": "^[a-zA-Z0-9\\-_.]+$",
"nullable": true,
"maxLength": 256
},
"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
},
"instructions": {
"type": "string"
},
"transformation": {
"type": "string",
"maxLength": 51200,
"minLength": 10
},
"instructionsLink": {
"type": "string",
"format": "uri",
"nullable": true
}
}
}
TemplateUpdate
{
"type": "object",
"required": [
"logo",
"transformation"
],
"properties": {
"kind": {
"$ref": "#/components/schemas/TransformationTemplateKind",
"default": "Custom"
},
"logo": {
"type": "string",
"format": "uri"
},
"name": {
"type": "string",
"default": ""
},
"description": {
"type": "string",
"default": ""
},
"featureFlag": {
"type": "string",
"example": "cool-new-feature",
"pattern": "^[a-zA-Z0-9\\-_.]+$",
"nullable": true,
"maxLength": 256
},
"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
},
"instructions": {
"type": "string",
"default": ""
},
"transformation": {
"type": "string",
"maxLength": 51200,
"minLength": 10
},
"instructionsLink": {
"type": "string",
"format": "uri",
"nullable": true
}
}
}
TransformationHttpMethod
{
"enum": [
"POST",
"PUT"
],
"type": "string"
}
TransformationSimulateIn
{
"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"
}
}
}
TransformationSimulateOut
{
"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"
}
}
}
TransformationTemplateKind
{
"enum": [
"Custom",
"CustomerIO",
"Discord",
"Hubspot",
"Inngest",
"Salesforce",
"Segment",
"Slack",
"Teams",
"TriggerDev",
"Windmill",
"Zapier"
],
"type": "string"
}
ValidationError
{
"type": "object",
"required": [
"loc",
"msg",
"type"
],
"properties": {
"loc": {
"type": "array",
"items": {
"type": "string"
},
"description": "The location as a [`Vec`] of [`String`]s -- often in the form `[\"body\", \"field_name\"]`, `[\"query\", \"field_name\"]`, etc. They may, however, be arbitrarily deep."
},
"msg": {
"type": "string",
"description": "The message accompanying the validation error item."
},
"type": {
"type": "string",
"description": "The type of error, often \"type_error\" or \"value_error\", but sometimes with more context like as \"value_error.number.not_ge\""
}
},
"description": "Validation errors have their own schema to provide context for invalid requests eg. mismatched types and out of bounds values. There may be any number of these per 422 UNPROCESSABLE ENTITY error."
}