Svix

Webhooks as a service

docs.svix.com/api ↗
Version
1.21.0
OpenAPI
3.0.3
Endpoints
59
Schemas
120
Updated
3 days ago
Infrastructure webhooks infrastructure events
Use this API in your AI agent

Query structured spec data via REST or MCP. Get exactly what your agent needs.

Get API Key

Server URLs

https://api.eu.svix.com
https://api.us.svix.com

Authentication

bearer

Endpoints

Clear filters

Application 1 endpoints

POST /api/v1/app

Create a new application.

operationId: Application_createNewApplication

Parameters

Name In Required Type Description
get_if_exists query optional boolean Get an existing application, or create a new one if doesn't exist. It's two separate functions in the libs.
idempotency-key header optional string The request's idempotency key

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/ApplicationIn"
      }
    }
  },
  "required": true
}

Responses

200
201
400 Bad request
401 Unauthorized
403 Forbidden
404 Not Found
409 Conflict
422 Validation Error
429 Too Many Requests
POST /api/v1/app

Authentication 3 endpoints

POST /api/v1/auth/app-portal-access/{app_id}

Use this function to get magic links (and authentication codes) for connecting your users to the Consumer Application Portal.

operationId: Authentication_generateMagicLinks

Parameters

Name In Required Type Description
app_id path required string The app's ID or UID
idempotency-key header optional string The request's idempotency key

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/AppPortalAccessIn"
      }
    }
  },
  "required": true
}

Responses

200
400 Bad request
401 Unauthorized
403 Forbidden
404 Not Found
409 Conflict
422 Validation Error
429 Too Many Requests
POST /api/v1/auth/app-portal-access/{app_id}
POST /api/v1/auth/app/{app_id}/expire-all

Expire all of the tokens associated with a specific Application

operationId: Authentication_expireAllTokens

Parameters

Name In Required Type Description
app_id path required string The app's ID or UID
idempotency-key header optional string The request's idempotency key

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/ApplicationTokenExpireIn"
      }
    }
  },
  "required": true
}

Responses

204 no content
400 Bad request
401 Unauthorized
403 Forbidden
404 Not Found
409 Conflict
422 Validation Error
429 Too Many Requests
POST /api/v1/auth/app/{app_id}/expire-all
POST /api/v1/auth/logout

Logout an app token. Trying to log out other tokens will fail.

operationId: Authentication_logoutToken

Parameters

Name In Required Type Description
idempotency-key header optional string The request's idempotency key

Responses

204 no content
400 Bad request
401 Unauthorized
403 Forbidden
404 Not Found
409 Conflict
422 Validation Error
429 Too Many Requests
POST /api/v1/auth/logout

Endpoint 5 endpoints

POST /api/v1/app/{app_id}/endpoint

Create a new endpoint for the application. When `secret` is `null` the secret is automatically generated (recommended)

operationId: Endpoint_createOrUpdate

Parameters

Name In Required Type Description
app_id path required string The app's ID or UID
idempotency-key header optional string The request's idempotency key

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/EndpointIn"
      }
    }
  },
  "required": true
}

Responses

201
400 Bad request
401 Unauthorized
403 Forbidden
404 Not Found
409 Conflict
422 Validation Error
429 Too Many Requests
POST /api/v1/app/{app_id}/endpoint
POST /api/v1/app/{app_id}/endpoint/{endpoint_id}/recover

Resend all failed messages since a given time.

operationId: Endpoint_resendFailedMessages

Parameters

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
idempotency-key header optional string The request's idempotency key

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/RecoverIn"
      }
    }
  },
  "required": true
}

Responses

202
400 Bad request
401 Unauthorized
403 Forbidden
404 Not Found
409 Conflict
422 Validation Error
429 Too Many Requests
POST /api/v1/app/{app_id}/endpoint/{endpoint_id}/recover
POST /api/v1/app/{app_id}/endpoint/{endpoint_id}/replay-missing

Replays messages to the endpoint. Only messages that were created after `since` will be sent. Messages that were previously sent to the endpoint are not resent.

operationId: Endpoint_replayMissingWebhooks

Parameters

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
idempotency-key header optional string The request's idempotency key

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/ReplayIn"
      }
    }
  },
  "required": true
}

Responses

202
400 Bad request
401 Unauthorized
403 Forbidden
404 Not Found
409 Conflict
422 Validation Error
429 Too Many Requests
POST /api/v1/app/{app_id}/endpoint/{endpoint_id}/replay-missing
POST /api/v1/app/{app_id}/endpoint/{endpoint_id}/secret/rotate

Rotates the endpoint's signing secret. The previous secret will be valid for the next 24 hours.

operationId: Endpoint_rotateSecret

Parameters

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
idempotency-key header optional string The request's idempotency key

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/EndpointSecretRotateIn"
      }
    }
  },
  "required": true
}

Responses

204 no content
400 Bad request
401 Unauthorized
403 Forbidden
404 Not Found
409 Conflict
422 Validation Error
429 Too Many Requests
POST /api/v1/app/{app_id}/endpoint/{endpoint_id}/secret/rotate
POST /api/v1/app/{app_id}/endpoint/{endpoint_id}/send-example

Send an example message for event

operationId: Endpoint_sendExampleMessageType

Parameters

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
idempotency-key header optional string The request's idempotency key

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/EventExampleIn"
      }
    }
  },
  "required": true
}

Responses

202
400 Bad request
401 Unauthorized
403 Forbidden
404 Not Found
409 Conflict
422 Validation Error
429 Too Many Requests
POST /api/v1/app/{app_id}/endpoint/{endpoint_id}/send-example

Event type 2 endpoints

POST /api/v1/event-type

Create new or unarchive existing event type. Unarchiving an event type will allow endpoints to filter on it and messages to be sent with it. Endpoints filtering on the event type before archival will continue to filter on it. This operation does not preserve the description and schemas.

operationId: EventType_createOrUpdate

Parameters

Name In Required Type Description
idempotency-key header optional string The request's idempotency key

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/EventTypeIn"
      }
    }
  },
  "required": true
}

Responses

201
400 Bad request
401 Unauthorized
403 Forbidden
404 Not Found
409 Conflict
422 Validation Error
429 Too Many Requests
POST /api/v1/event-type
POST /api/v1/event-type/import/openapi

Given an OpenAPI spec, create new or update existing event types. If an existing `archived` event type is updated, it will be unarchived. The importer will convert all webhooks found in the either the `webhooks` or `x-webhooks` top-level.

operationId: EventType_importFromOpenapi

Parameters

Name In Required Type Description
idempotency-key header optional string The request's idempotency key

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/EventTypeImportOpenApiIn"
      }
    }
  },
  "required": true,
  "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**."
}

Responses

200
400 Bad request
401 Unauthorized
403 Forbidden
404 Not Found
409 Conflict
422 Validation Error
429 Too Many Requests
POST /api/v1/event-type/import/openapi

Integration 2 endpoints

POST /api/v1/app/{app_id}/integration

Create an integration.

operationId: Integration_createNewIntegration

Parameters

Name In Required Type Description
app_id path required string The app's ID or UID
idempotency-key header optional string The request's idempotency key

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/IntegrationIn"
      }
    }
  },
  "required": true
}

Responses

201
400 Bad request
401 Unauthorized
403 Forbidden
404 Not Found
409 Conflict
422 Validation Error
429 Too Many Requests
POST /api/v1/app/{app_id}/integration
POST /api/v1/app/{app_id}/integration/{integ_id}/key/rotate

Rotate the integration's key. The previous key will be immediately revoked.

operationId: Integration_rotateKey

Parameters

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
idempotency-key header optional string The request's idempotency key

Responses

200
400 Bad request
401 Unauthorized
403 Forbidden
404 Not Found
409 Conflict
422 Validation Error
429 Too Many Requests
POST /api/v1/app/{app_id}/integration/{integ_id}/key/rotate

Message 1 endpoints

POST /api/v1/app/{app_id}/msg

Creates a new message and dispatches it to all of the application's endpoints. The `eventId` is an optional custom unique ID. It's verified to be unique only up to a day, after that no verification will be made. If a message with the same `eventId` already exists for any application in your environment, a 409 conflict error will be returned. The `eventType` indicates the type and schema of the event. All messages of a certain `eventType` are expected to have the same schema. Endpoints can choose to only listen to specific event types. Messages can also have `channels`, which similar to event types let endpoints filter by them. Unlike event types, messages can have multiple channels, and channels don't imply a specific message content or schema. The `payload` property is the webhook's body (the actual webhook message). Svix supports payload sizes of up to ~350kb, though it's generally a good idea to keep webhook payloads small, probably no larger than 40kb.

operationId: Message_createNewMsg

Parameters

Name In Required Type Description
app_id path required string The app's ID or UID
with_content query optional boolean When `true` message payloads are included in the response
idempotency-key header optional string The request's idempotency key

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/MessageIn"
      }
    }
  },
  "required": true
}

Responses

202
400 Bad request
401 Unauthorized
403 Forbidden
404 Not Found
409 Conflict
413 Payload too large
422 Validation Error
429 Too Many Requests
POST /api/v1/app/{app_id}/msg

Message attempt 1 endpoints

POST /api/v1/app/{app_id}/msg/{msg_id}/endpoint/{endpoint_id}/resend

Resend a message to the specified endpoint.

operationId: MessageAttempt_resendWebhook

Parameters

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
endpoint_id path required string The ep's ID or UID
idempotency-key header optional string The request's idempotency key

Responses

202 no content
400 Bad request
401 Unauthorized
403 Forbidden
404 Not Found
409 Conflict
422 Validation Error
429 Too Many Requests
POST /api/v1/app/{app_id}/msg/{msg_id}/endpoint/{endpoint_id}/resend

Statistics 1 endpoints

POST /api/v1/stats/usage/app

Creates a background task to calculate the message destinations for all applications in the environment. Note that this endpoint is asynchronous. You will need to poll the `Get Background Task` endpoint to retrieve the results of the operation.

operationId: Statistics_calculateMessageDestinationsForApps

Parameters

Name In Required Type Description
idempotency-key header optional string The request's idempotency key

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/AppUsageStatsIn"
      }
    }
  },
  "required": true
}

Responses

202
400 Bad request
401 Unauthorized
403 Forbidden
404 Not Found
409 Conflict
422 Validation Error
429 Too Many Requests
POST /api/v1/stats/usage/app

Schemas

object AggregateEventTypesOut
{
  "type": "object",
  "required": [
    "id",
    "status",
    "task"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "task": {
      "$ref": "#/components/schemas/BackgroundTaskType"
    },
    "status": {
      "$ref": "#/components/schemas/BackgroundTaskStatus"
    }
  }
}
object 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
    }
  }
}
object 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"
    }
  }
}
object 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
    }
  }
}
object AppUsageStatsOut
{
  "type": "object",
  "required": [
    "id",
    "status",
    "task"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "task": {
      "$ref": "#/components/schemas/BackgroundTaskType"
    },
    "status": {
      "$ref": "#/components/schemas/BackgroundTaskStatus"
    }
  }
}
object 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
    }
  }
}
object 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"
    }
  }
}
object 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
    }
  }
}
object 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."
    }
  }
}
object BackgroundTaskData
{
  "type": "object"
}
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"
    }
  }
}
string BackgroundTaskStatus
{
  "enum": [
    "running",
    "finished",
    "failed"
  ],
  "type": "string"
}
string BackgroundTaskType
{
  "enum": [
    "endpoint.replay",
    "endpoint.recover",
    "application.stats",
    "message.broadcast",
    "sdk.generate",
    "event-type.aggregate"
  ],
  "type": "string"
}
object 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
    }
  }
}
string BorderRadiusEnum
{
  "enum": [
    "none",
    "lg",
    "md",
    "sm",
    "full"
  ],
  "type": "string"
}
object CompletionChoice
{
  "type": "object",
  "required": [
    "finish_reason",
    "index",
    "message"
  ],
  "properties": {
    "index": {
      "type": "integer",
      "format": "int64"
    },
    "message": {
      "$ref": "#/components/schemas/CompletionMessage"
    },
    "finish_reason": {
      "type": "string"
    }
  }
}
object CompletionMessage
{
  "type": "object",
  "required": [
    "content",
    "role"
  ],
  "properties": {
    "role": {
      "type": "string"
    },
    "content": {
      "type": "string"
    }
  }
}
object 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
    }
  }
}
object CustomThemeOverride
{
  "type": "object",
  "properties": {
    "fontSize": {
      "$ref": "#/components/schemas/FontSizeConfig",
      "nullable": true
    },
    "borderRadius": {
      "$ref": "#/components/schemas/BorderRadiusConfig",
      "nullable": true
    }
  }
}
object 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"
    }
  }
}
object Duration
{
  "type": "object",
  "required": [
    "nanos",
    "secs"
  ],
  "properties": {
    "secs": {
      "type": "integer",
      "format": "uint64",
      "minimum": 0
    },
    "nanos": {
      "type": "integer",
      "format": "uint32",
      "minimum": 0
    }
  }
}
object 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."
}
object 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"
    }
  }
}
object 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."
}
object 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"
    }
  }
}
object 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."
}
object 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."
}
object EndpointHeadersIn
{
  "type": "object",
  "required": [
    "headers"
  ],
  "properties": {
    "headers": {
      "type": "object",
      "example": {
        "X-Foobar": "Bar",
        "X-Example": "123"
      },
      "additionalProperties": {
        "type": "string"
      }
    }
  }
}
object 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."
}
object EndpointHeadersPatchIn
{
  "type": "object",
  "required": [
    "headers"
  ],
  "properties": {
    "headers": {
      "type": "object",
      "example": {
        "X-Foobar": "Bar",
        "X-Example": "123"
      },
      "additionalProperties": {
        "type": "string",
        "nullable": true
      }
    }
  }
}
object 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
    }
  }
}
object 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."
}
object 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
    }
  }
}
object 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
    }
  }
}
object 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."
    }
  }
}
object 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."
    }
  }
}
object 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"
    }
  }
}
object EndpointTransformationIn
{
  "type": "object",
  "properties": {
    "code": {
      "type": "string",
      "nullable": true,
      "maxLength": 51200,
      "minLength": 10
    },
    "enabled": {
      "type": "boolean"
    }
  }
}
object EndpointTransformationOut
{
  "type": "object",
  "properties": {
    "code": {
      "type": "string",
      "nullable": true,
      "maxLength": 51200,
      "minLength": 10
    },
    "enabled": {
      "type": "boolean",
      "default": false
    }
  }
}
object 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"
    }
  }
}
object 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"
    }
  }
}
object 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
    }
  }
}
object 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."
}
object 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"
    }
  }
}
object 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
    }
  }
}
object 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"
      }
    }
  }
}
object 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
    }
  }
}
object 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"
    }
  }
}
object 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**."
}
object EventTypeImportOpenApiOut
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/EventTypeImportOpenApiOutData"
    }
  }
}
object 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"
      }
    }
  }
}
object 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
    }
  }
}
object 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
    }
  }
}
object 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
    }
  }
}
object 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
    }
  }
}
object ExportEventTypeOut
{
  "type": "object",
  "required": [
    "id",
    "status",
    "task"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "task": {
      "$ref": "#/components/schemas/BackgroundTaskType"
    },
    "status": {
      "$ref": "#/components/schemas/BackgroundTaskStatus"
    }
  }
}
object FontSizeConfig
{
  "type": "object",
  "properties": {
    "base": {
      "type": "integer",
      "format": "uint16",
      "minimum": 0,
      "nullable": true
    }
  }
}
object GenerateIn
{
  "type": "object",
  "required": [
    "prompt"
  ],
  "properties": {
    "prompt": {
      "type": "string"
    }
  }
}
object 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"
    }
  }
}
object HTTPValidationError
{
  "type": "object",
  "required": [
    "detail"
  ],
  "properties": {
    "detail": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ValidationError"
      }
    }
  }
}
object HttpErrorOut
{
  "type": "object",
  "title": "HttpError",
  "required": [
    "code",
    "detail"
  ],
  "properties": {
    "code": {
      "type": "string"
    },
    "detail": {
      "type": "string"
    }
  }
}
object 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"
    }
  }
}
object IntegrationIn
{
  "type": "object",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "example": "Example Integration"
    }
  }
}
object IntegrationKeyOut
{
  "type": "object",
  "required": [
    "key"
  ],
  "properties": {
    "key": {
      "type": "string",
      "example": "integsk_kV3ts5tKPNJN4Dl25cMTfUNdmabxbX0O"
    }
  }
}
object 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"
    }
  }
}
object IntegrationUpdate
{
  "type": "object",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "example": "Example Integration"
    }
  }
}
object 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
    }
  }
}
object 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
    }
  }
}
object 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
    }
  }
}
object 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
    }
  }
}
object 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
    }
  }
}
object 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
    }
  }
}
object 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
    }
  }
}
object 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
    }
  }
}
object 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
    }
  }
}
object 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
    }
  }
}
object 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
    }
  }
}
object 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
    }
  }
}
object 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)."
}
object 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."
}
object 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"
    }
  }
}
object 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."
}
object 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."
}
object 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
    }
  }
}
object 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
    }
  }
}
object 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."
}
object 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."
}
integer 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"
  ]
}
object 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
    }
  }
}
object MessageBroadcastOut
{
  "type": "object",
  "required": [
    "id",
    "status",
    "task"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "task": {
      "$ref": "#/components/schemas/BackgroundTaskType"
    },
    "status": {
      "$ref": "#/components/schemas/BackgroundTaskStatus"
    }
  }
}
object 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
    }
  }
}
object 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
    }
  }
}
object 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"
    }
  }
}
object MessageRawPayloadOut
{
  "type": "object",
  "required": [
    "payload"
  ],
  "properties": {
    "payload": {
      "type": "string",
      "example": "{\"email\":\"test@example.com\",\"type\":\"user.created\",\"username\":\"test_user\"}"
    }
  }
}
integer 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"
  ]
}
object MessageStreamOut
{
  "type": "object",
  "required": [
    "data",
    "done",
    "iterator"
  ],
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/MessageOut"
      }
    },
    "done": {
      "type": "boolean"
    },
    "iterator": {
      "type": "string"
    }
  }
}
object OauthPayloadIn
{
  "type": "object",
  "required": [
    "code",
    "redirectUri"
  ],
  "properties": {
    "code": {
      "type": "string"
    },
    "redirectUri": {
      "type": "string"
    }
  }
}
object OauthPayloadOut
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string",
      "nullable": true
    },
    "channel": {
      "type": "string",
      "nullable": true
    },
    "incomingWebhookUrl": {
      "type": "string",
      "format": "uri",
      "nullable": true
    }
  }
}
object OneTimeTokenIn
{
  "type": "object",
  "required": [
    "oneTimeToken"
  ],
  "properties": {
    "oneTimeToken": {
      "type": "string"
    }
  }
}
object OneTimeTokenOut
{
  "type": "object",
  "required": [
    "token"
  ],
  "properties": {
    "token": {
      "type": "string"
    }
  }
}
string Ordering
{
  "enum": [
    "ascending",
    "descending"
  ],
  "type": "string",
  "description": "Defines the ordering in a listing of results."
}
object RecoverIn
{
  "type": "object",
  "required": [
    "since"
  ],
  "properties": {
    "since": {
      "type": "string",
      "format": "date-time"
    },
    "until": {
      "type": "string",
      "format": "date-time",
      "nullable": true
    }
  }
}
object RecoverOut
{
  "type": "object",
  "required": [
    "id",
    "status",
    "task"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "task": {
      "$ref": "#/components/schemas/BackgroundTaskType"
    },
    "status": {
      "$ref": "#/components/schemas/BackgroundTaskStatus"
    }
  }
}
object ReplayIn
{
  "type": "object",
  "required": [
    "since"
  ],
  "properties": {
    "since": {
      "type": "string",
      "format": "date-time"
    },
    "until": {
      "type": "string",
      "format": "date-time",
      "nullable": true
    }
  }
}
object ReplayOut
{
  "type": "object",
  "required": [
    "id",
    "status",
    "task"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "task": {
      "$ref": "#/components/schemas/BackgroundTaskType"
    },
    "status": {
      "$ref": "#/components/schemas/BackgroundTaskStatus"
    }
  }
}
array RetrySchedule
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/Duration"
  }
}
object RetryScheduleInOut
{
  "type": "object",
  "properties": {
    "retrySchedule": {
      "$ref": "#/components/schemas/RetrySchedule",
      "nullable": true
    }
  }
}
object RotatedUrlOut
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string"
    }
  }
}
object 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
    }
  }
}
object 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
    }
  }
}
integer 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"
  ]
}
object 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
    }
  }
}
object 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
    }
  }
}
object 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
    }
  }
}
object 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
    }
  }
}
string TransformationHttpMethod
{
  "enum": [
    "POST",
    "PUT"
  ],
  "type": "string"
}
object 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"
    }
  }
}
object 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"
    }
  }
}
string TransformationTemplateKind
{
  "enum": [
    "Custom",
    "CustomerIO",
    "Discord",
    "Hubspot",
    "Inngest",
    "Salesforce",
    "Segment",
    "Slack",
    "Teams",
    "TriggerDev",
    "Windmill",
    "Zapier"
  ],
  "type": "string"
}
object 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."
}