openapi: 3.1.0 info: title: Svix Application Endpoint API description: 'Welcome to the Svix API documentation! Useful links: [Homepage](https://www.svix.com) | [Support email](mailto:support+docs@svix.com) | [Blog](https://www.svix.com/blog/) | [Slack Community](https://www.svix.com/slack/) # Introduction This is the reference documentation and schemas for the [Svix webhook service](https://www.svix.com) API. For tutorials and other documentation please refer to [the documentation](https://docs.svix.com). ## Main concepts In Svix you have four important entities you will be interacting with: - `messages`: these are the webhooks being sent. They can have contents and a few other properties. - `application`: this is where `messages` are sent to. Usually you want to create one application for each user on your platform. - `endpoint`: endpoints are the URLs messages will be sent to. Each application can have multiple `endpoints` and each message sent to that application will be sent to all of them (unless they are not subscribed to the sent event type). - `event-type`: event types are identifiers denoting the type of the message being sent. Event types are primarily used to decide which events are sent to which endpoint. ## Authentication Get your authentication token (`AUTH_TOKEN`) from the [Svix dashboard](https://dashboard.svix.com) and use it as part of the `Authorization` header as such: `Authorization: Bearer ${AUTH_TOKEN}`. For more information on authentication, please refer to the [authentication token docs](https://docs.svix.com/api-keys). ## Code samples The code samples assume you already have the respective libraries installed and you know how to use them. For the latest information on how to do that, please refer to [the documentation](https://docs.svix.com/). ## Idempotency Svix supports [idempotency](https://en.wikipedia.org/wiki/Idempotence) for safely retrying requests without accidentally performing the same operation twice. This is useful when an API call is disrupted in transit and you do not receive a response. To perform an idempotent request, pass the idempotency key in the `Idempotency-Key` header to the request. The idempotency key should be a unique value generated by the client. You can create the key in however way you like, though we suggest using UUID v4, or any other string with enough entropy to avoid collisions. Your idempotency key should not begin with the string `auto_`, which is reserved for internal use by the client libraries. Svix''s idempotency works by saving the resulting status code and body of the first request made for any given idempotency key for any successful request. Subsequent requests with the same key return the same result for a period of up to 12 hours. Please note that idempotency is only supported for `POST` requests. ## Cross-Origin Resource Sharing This API features Cross-Origin Resource Sharing (CORS) implemented in compliance with [W3C spec](https://www.w3.org/TR/cors/). And that allows cross-domain communication from the browser. All responses have a wildcard same-origin which makes them completely public and accessible to everyone, including any code on any site. ' version: 1.84.0 x-logo: altText: Svix Logo url: https://www.svix.com/static/img/brand-padded.svg servers: - url: https://api.eu.svix.com/ description: The Svix EU region - url: https://api.us.svix.com/ description: The Svix US region - url: https://api.ca.svix.com/ description: The Svix Canada region - url: https://api.au.svix.com/ description: The Svix Australia region - url: https://api.in.svix.com/ description: The Svix India region tags: - name: Endpoint description: Endpoints are the URLs messages will be sent to. Each application can have up to 50 endpoints and each message sent to that application will be sent to all of them (unless they are not subscribed to the sent event type). paths: /api/v1/app/{app_id}/endpoint: get: tags: - Endpoint summary: List Endpoints description: List the application's endpoints. operationId: v1.endpoint.list parameters: - in: path name: app_id description: The Application's ID or UID. required: true schema: description: The Application's ID or UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier style: simple - in: query name: limit description: Limit the number of returned items schema: description: Limit the number of returned items type: integer format: uint64 maximum: 250.0 minimum: 1.0 style: form - in: query name: iterator description: The iterator returned from a prior invocation schema: description: The iterator returned from a prior invocation type: string maxLength: 30 minLength: 30 pattern: ^ep_[A-Za-z0-9]{27}$ nullable: true example: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 style: form - in: query name: order description: The sorting order of the returned items schema: description: The sorting order of the returned items $ref: '#/components/schemas/Ordering' nullable: true style: form responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/ListResponse_EndpointOut_' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' '429': description: Too Many Requests content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' security: - HTTPBearer: [] x-codeSamples: - label: JavaScript lang: TypeScript source: const response = await svix.endpoint.list("app_1srOrx2ZWZBpBUvZwXKQmoEYga2"); - label: TypeScript lang: TypeScript source: const response = await svix.endpoint.list("app_1srOrx2ZWZBpBUvZwXKQmoEYga2"); - label: Python lang: Python source: "response = svix.endpoint.list(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n)" - label: Python (Async) lang: Python source: "response = await svix.endpoint.list(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n)" - label: Go lang: Go source: response, err := svix.Endpoint.List(ctx, "app_1srOrx2ZWZBpBUvZwXKQmoEYga2", nil) - label: Kotlin lang: Kotlin source: val response = svix.endpoint.list("app_1srOrx2ZWZBpBUvZwXKQmoEYga2") - label: Java lang: Java source: var response = svix.getEndpoint().list("app_1srOrx2ZWZBpBUvZwXKQmoEYga2"); - label: Ruby lang: Ruby source: response = svix.endpoint.list("app_1srOrx2ZWZBpBUvZwXKQmoEYga2") - label: Rust lang: Rust source: "let response = svix\n .endpoint()\n .list(\"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\".to_string(), None)\n .await?;" - label: C# lang: C# source: var response = svix.Endpoint.List("app_1srOrx2ZWZBpBUvZwXKQmoEYga2"); - label: PHP lang: PHP source: "$response = $svix->endpoint->list(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\"\n);" - label: CLI lang: Shell source: svix endpoint list "app_1srOrx2ZWZBpBUvZwXKQmoEYga2" - label: cURL lang: Shell source: "curl -X 'GET' \\\n 'https://api.eu.svix.com/api/v1/app/app_1srOrx2ZWZBpBUvZwXKQmoEYga2/endpoint' \\\n -H 'Authorization: Bearer AUTH_TOKEN' \\\n -H 'Accept: application/json'" post: tags: - Endpoint summary: Create Endpoint description: 'Create a new endpoint for the application. When `secret` is `null` the secret is automatically generated (recommended).' operationId: v1.endpoint.create parameters: - in: path name: app_id description: The Application's ID or UID. required: true schema: description: The Application's ID or UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier style: simple - in: header name: idempotency-key description: The request's idempotency key schema: type: string style: simple - in: header name: idempotency-key description: The request's idempotency key schema: type: string style: simple requestBody: content: application/json: schema: $ref: '#/components/schemas/EndpointIn' required: true responses: '201': description: '' content: application/json: schema: $ref: '#/components/schemas/EndpointOut' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' '429': description: Too Many Requests content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' security: - HTTPBearer: [] x-codeSamples: - label: JavaScript lang: TypeScript source: "const response = await svix.endpoint.create(\"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\", {\n channels: [\"project_123\", \"group_2\"],\n description: \"An example endpoint name\",\n disabled: true,\n filterTypes: [\"user.signup\", \"user.deleted\"],\n headers: { \"X-Example\": \"123\", \"X-Foobar\": \"Bar\" },\n metadata: {},\n secret: \"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\",\n throttleRate: 1,\n uid: \"unique-identifier\",\n url: \"https://example.com/webhook/\",\n});" - label: TypeScript lang: TypeScript source: "const response = await svix.endpoint.create(\"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\", {\n channels: [\"project_123\", \"group_2\"],\n description: \"An example endpoint name\",\n disabled: true,\n filterTypes: [\"user.signup\", \"user.deleted\"],\n headers: { \"X-Example\": \"123\", \"X-Foobar\": \"Bar\" },\n metadata: {},\n secret: \"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\",\n throttleRate: 1,\n uid: \"unique-identifier\",\n url: \"https://example.com/webhook/\",\n});" - label: Python lang: Python source: "response = svix.endpoint.create(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n EndpointIn(\n channels=[\n \"project_123\",\n \"group_2\",\n ],\n description=\"An example endpoint name\",\n disabled=True,\n filter_types=[\n \"user.signup\",\n \"user.deleted\",\n ],\n headers={\"X-Example\": \"123\", \"X-Foobar\": \"Bar\"},\n metadata={},\n secret=\"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\",\n throttle_rate=1,\n uid=\"unique-identifier\",\n url=\"https://example.com/webhook/\",\n ),\n)" - label: Python (Async) lang: Python source: "response = await svix.endpoint.create(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n EndpointIn(\n channels=[\n \"project_123\",\n \"group_2\",\n ],\n description=\"An example endpoint name\",\n disabled=True,\n filter_types=[\n \"user.signup\",\n \"user.deleted\",\n ],\n headers={\"X-Example\": \"123\", \"X-Foobar\": \"Bar\"},\n metadata={},\n secret=\"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\",\n throttle_rate=1,\n uid=\"unique-identifier\",\n url=\"https://example.com/webhook/\",\n ),\n)" - label: Go lang: Go source: "response, err := svix.Endpoint.Create(\n\tctx,\n\t\"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n\tEndpointIn{\n\t\tChannels: []string{\"project_123\", \"group_2\"},\n\t\tDescription: new(\"An example endpoint name\"),\n\t\tDisabled: new(true),\n\t\tFilterTypes: []string{\"user.signup\", \"user.deleted\"},\n\t\tHeaders: &map[string]string{\"X-Example\": \"123\", \"X-Foobar\": \"Bar\"},\n\t\tMetadata: nil,\n\t\tSecret: new(\"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\"),\n\t\tThrottleRate: new(uint16(1)),\n\t\tUid: new(\"unique-identifier\"),\n\t\tUrl: \"https://example.com/webhook/\",\n\t},\n\tnil,\n)" - label: Kotlin lang: Kotlin source: "val response =\n svix.endpoint.create(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n EndpointIn(\n channels = setOf(\"project_123\", \"group_2\"),\n description = \"An example endpoint name\",\n disabled = true,\n filterTypes = setOf(\"user.signup\", \"user.deleted\"),\n headers = mapOf(\"X-Example\" to \"123\", \"X-Foobar\" to \"Bar\"),\n metadata = mapOf(),\n secret = \"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\",\n throttleRate = 1u,\n uid = \"unique-identifier\",\n url = \"https://example.com/webhook/\",\n ),\n )" - label: Java lang: Java source: "var response = svix.getEndpoint()\n .create(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n new EndpointIn()\n .channels(Set.of(\"project_123\", \"group_2\"))\n .description(\"An example endpoint name\")\n .disabled(true)\n .filterTypes(Set.of(\"user.signup\", \"user.deleted\"))\n .headers(Map.ofEntries(Map.entry(\"X-Example\", \"123\"), Map.entry(\"X-Foobar\", \"Bar\")))\n .metadata(Map.of())\n .secret(\"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\")\n .throttleRate(1L)\n .uid(\"unique-identifier\")\n .url(URI.create(\"https://example.com/webhook/\")));" - label: Ruby lang: Ruby source: "response = svix\n .endpoint\n .create(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n {\n channels: [\"project_123\", \"group_2\"],\n description: \"An example endpoint name\",\n disabled: true,\n filterTypes: [\"user.signup\", \"user.deleted\"],\n headers: {:\"X-Example\" => \"123\", :\"X-Foobar\" => \"Bar\"},\n metadata: {},\n secret: \"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\",\n throttleRate: 1,\n uid: \"unique-identifier\",\n url: \"https://example.com/webhook/\"\n }\n )" - label: Rust lang: Rust source: "let response = svix\n .endpoint()\n .create(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\".to_string(),\n EndpointIn {\n channels: Some(vec![\"project_123\".to_string(), \"group_2\".to_string()]),\n description: Some(\"An example endpoint name\".to_string()),\n disabled: Some(true),\n filter_types: Some(\n vec![\"user.signup\".to_string(), \"user.deleted\".to_string()],\n ),\n headers: Some(\n HashMap::from([\n (\"X-Example\".to_string(), \"123\".to_string()),\n (\"X-Foobar\".to_string(), \"Bar\".to_string()),\n ]),\n ),\n metadata: Some(HashMap::new()),\n secret: Some(\"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\".to_string()),\n throttle_rate: Some(1),\n uid: Some(\"unique-identifier\".to_string()),\n url: \"https://example.com/webhook/\".to_string(),\n },\n None,\n )\n .await?;" - label: C# lang: C# source: "var response = svix.Endpoint.Create(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n new EndpointIn\n {\n Channels = [\"project_123\", \"group_2\"],\n Description = \"An example endpoint name\",\n Disabled = true,\n FilterTypes = [\"user.signup\", \"user.deleted\"],\n Headers = new() { { \"X-Example\", \"123\" }, { \"X-Foobar\", \"Bar\" } },\n Metadata = [],\n Secret = \"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\",\n ThrottleRate = 1,\n Uid = \"unique-identifier\",\n Url = \"https://example.com/webhook/\",\n }\n);" - label: PHP lang: PHP source: "$response = $svix->endpoint->create(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n EndpointIn::create(\n url: \"https://example.com/webhook/\"\n )\n ->withChannels([\"project_123\",\"group_2\"])\n ->withDescription(\"An example endpoint name\")\n ->withDisabled(true)\n ->withFilterTypes([\"user.signup\",\"user.deleted\"])\n ->withHeaders([\"X-Example\" => \"123\", \"X-Foobar\" => \"Bar\"])\n ->withMetadata([])\n ->withSecret(\"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\")\n ->withThrottleRate(1)\n ->withUid(\"unique-identifier\")\n);" - label: CLI lang: Shell source: "svix endpoint create \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\" '{\n \"channels\": [\n \"project_123\",\n \"group_2\"\n ],\n \"description\": \"An example endpoint name\",\n \"disabled\": true,\n \"filterTypes\": [\n \"user.signup\",\n \"user.deleted\"\n ],\n \"headers\": {\n \"X-Example\": \"123\",\n \"X-Foobar\": \"Bar\"\n },\n \"metadata\": {},\n \"secret\": \"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\",\n \"throttleRate\": 1,\n \"uid\": \"unique-identifier\",\n \"url\": \"https://example.com/webhook/\"\n }'" - label: cURL lang: Shell source: "curl -X 'POST' \\\n 'https://api.eu.svix.com/api/v1/app/app_1srOrx2ZWZBpBUvZwXKQmoEYga2/endpoint' \\\n -H 'Authorization: Bearer AUTH_TOKEN' \\\n -H 'Accept: application/json' \\\n -H 'Content-Type: application/json' \\\n -d '{\n \"channels\": [\n \"project_123\",\n \"group_2\"\n ],\n \"description\": \"An example endpoint name\",\n \"disabled\": true,\n \"filterTypes\": [\n \"user.signup\",\n \"user.deleted\"\n ],\n \"headers\": {\n \"X-Example\": \"123\",\n \"X-Foobar\": \"Bar\"\n },\n \"metadata\": {},\n \"secret\": \"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\",\n \"throttleRate\": 1,\n \"uid\": \"unique-identifier\",\n \"url\": \"https://example.com/webhook/\"\n }'" /api/v1/app/{app_id}/endpoint/{endpoint_id}: get: tags: - Endpoint summary: Get Endpoint description: Get an endpoint. operationId: v1.endpoint.get parameters: - in: path name: app_id description: The Application's ID or UID. required: true schema: description: The Application's ID or UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier style: simple - in: path name: endpoint_id description: The Endpoint's ID or UID. required: true schema: description: The Endpoint's ID or UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier style: simple responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/EndpointOut' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' '429': description: Too Many Requests content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' security: - HTTPBearer: [] x-codeSamples: - label: JavaScript lang: TypeScript source: "const response = await svix.endpoint.get(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\"\n);" - label: TypeScript lang: TypeScript source: "const response = await svix.endpoint.get(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\"\n);" - label: Python lang: Python source: "response = svix.endpoint.get(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n)" - label: Python (Async) lang: Python source: "response = await svix.endpoint.get(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n)" - label: Go lang: Go source: "response, err := svix.Endpoint.Get(\n\tctx,\n\t\"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n\t\"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n)" - label: Kotlin lang: Kotlin source: "val response =\n svix.endpoint.get(\"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\", \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\")" - label: Java lang: Java source: "var response =\n svix.getEndpoint().get(\"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\", \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\");" - label: Ruby lang: Ruby source: response = svix.endpoint.get("app_1srOrx2ZWZBpBUvZwXKQmoEYga2", "ep_33ZIBDmz66FcPG35FnsbM6Ie4X1") - label: Rust lang: Rust source: "let response = svix\n .endpoint()\n .get(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\".to_string(),\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\".to_string(),\n )\n .await?;" - label: C# lang: C# source: "var response = svix.Endpoint.Get(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\"\n);" - label: PHP lang: PHP source: "$response = $svix->endpoint->get(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\"\n);" - label: CLI lang: Shell source: svix endpoint get "app_1srOrx2ZWZBpBUvZwXKQmoEYga2" "ep_33ZIBDmz66FcPG35FnsbM6Ie4X1" - label: cURL lang: Shell source: "curl -X 'GET' \\\n 'https://api.eu.svix.com/api/v1/app/app_1srOrx2ZWZBpBUvZwXKQmoEYga2/endpoint/ep_33ZIBDmz66FcPG35FnsbM6Ie4X1' \\\n -H 'Authorization: Bearer AUTH_TOKEN' \\\n -H 'Accept: application/json'" put: tags: - Endpoint summary: Update Endpoint description: Update an endpoint. operationId: v1.endpoint.update parameters: - in: path name: app_id description: The Application's ID or UID. required: true schema: description: The Application's ID or UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier style: simple - in: path name: endpoint_id description: The Endpoint's ID or UID. required: true schema: description: The Endpoint's ID or UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier style: simple requestBody: content: application/json: schema: $ref: '#/components/schemas/EndpointUpdate' required: true responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/EndpointOut' '201': description: '' content: application/json: schema: $ref: '#/components/schemas/EndpointOut' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' '429': description: Too Many Requests content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' security: - HTTPBearer: [] x-codeSamples: - label: JavaScript lang: TypeScript source: "const response = await svix.endpoint.update(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n {\n channels: [\"project_123\", \"group_2\"],\n description: \"An example endpoint name\",\n disabled: true,\n filterTypes: [\"user.signup\", \"user.deleted\"],\n metadata: {},\n throttleRate: 1,\n uid: \"unique-identifier\",\n url: \"https://example.com/webhook/\",\n }\n);" - label: TypeScript lang: TypeScript source: "const response = await svix.endpoint.update(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n {\n channels: [\"project_123\", \"group_2\"],\n description: \"An example endpoint name\",\n disabled: true,\n filterTypes: [\"user.signup\", \"user.deleted\"],\n metadata: {},\n throttleRate: 1,\n uid: \"unique-identifier\",\n url: \"https://example.com/webhook/\",\n }\n);" - label: Python lang: Python source: "response = svix.endpoint.update(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n EndpointUpdate(\n channels=[\n \"project_123\",\n \"group_2\",\n ],\n description=\"An example endpoint name\",\n disabled=True,\n filter_types=[\n \"user.signup\",\n \"user.deleted\",\n ],\n metadata={},\n throttle_rate=1,\n uid=\"unique-identifier\",\n url=\"https://example.com/webhook/\",\n ),\n)" - label: Python (Async) lang: Python source: "response = await svix.endpoint.update(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n EndpointUpdate(\n channels=[\n \"project_123\",\n \"group_2\",\n ],\n description=\"An example endpoint name\",\n disabled=True,\n filter_types=[\n \"user.signup\",\n \"user.deleted\",\n ],\n metadata={},\n throttle_rate=1,\n uid=\"unique-identifier\",\n url=\"https://example.com/webhook/\",\n ),\n)" - label: Go lang: Go source: "response, err := svix.Endpoint.Update(\n\tctx,\n\t\"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n\t\"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n\tEndpointUpdate{\n\t\tChannels: []string{\"project_123\", \"group_2\"},\n\t\tDescription: new(\"An example endpoint name\"),\n\t\tDisabled: new(true),\n\t\tFilterTypes: []string{\"user.signup\", \"user.deleted\"},\n\t\tMetadata: nil,\n\t\tThrottleRate: new(uint16(1)),\n\t\tUid: new(\"unique-identifier\"),\n\t\tUrl: \"https://example.com/webhook/\",\n\t},\n)" - label: Kotlin lang: Kotlin source: "val response =\n svix.endpoint.update(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n EndpointUpdate(\n channels = setOf(\"project_123\", \"group_2\"),\n description = \"An example endpoint name\",\n disabled = true,\n filterTypes = setOf(\"user.signup\", \"user.deleted\"),\n metadata = mapOf(),\n throttleRate = 1u,\n uid = \"unique-identifier\",\n url = \"https://example.com/webhook/\",\n ),\n )" - label: Java lang: Java source: "var response = svix.getEndpoint()\n .update(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n new EndpointUpdate()\n .channels(Set.of(\"project_123\", \"group_2\"))\n .description(\"An example endpoint name\")\n .disabled(true)\n .filterTypes(Set.of(\"user.signup\", \"user.deleted\"))\n .metadata(Map.of())\n .throttleRate(1L)\n .uid(\"unique-identifier\")\n .url(URI.create(\"https://example.com/webhook/\")));" - label: Ruby lang: Ruby source: "response = svix\n .endpoint\n .update(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n {\n channels: [\"project_123\", \"group_2\"],\n description: \"An example endpoint name\",\n disabled: true,\n filterTypes: [\"user.signup\", \"user.deleted\"],\n metadata: {},\n throttleRate: 1,\n uid: \"unique-identifier\",\n url: \"https://example.com/webhook/\"\n }\n )" - label: Rust lang: Rust source: "let response = svix\n .endpoint()\n .update(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\".to_string(),\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\".to_string(),\n EndpointUpdate {\n channels: Some(vec![\"project_123\".to_string(), \"group_2\".to_string()]),\n description: Some(\"An example endpoint name\".to_string()),\n disabled: Some(true),\n filter_types: Some(\n vec![\"user.signup\".to_string(), \"user.deleted\".to_string()],\n ),\n metadata: Some(HashMap::new()),\n throttle_rate: Some(1),\n uid: Some(\"unique-identifier\".to_string()),\n url: \"https://example.com/webhook/\".to_string(),\n },\n )\n .await?;" - label: C# lang: C# source: "var response = svix.Endpoint.Update(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n new EndpointUpdate\n {\n Channels = [\"project_123\", \"group_2\"],\n Description = \"An example endpoint name\",\n Disabled = true,\n FilterTypes = [\"user.signup\", \"user.deleted\"],\n Metadata = [],\n ThrottleRate = 1,\n Uid = \"unique-identifier\",\n Url = \"https://example.com/webhook/\",\n }\n);" - label: PHP lang: PHP source: "$response = $svix->endpoint->update(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n EndpointUpdate::create(\n url: \"https://example.com/webhook/\"\n )\n ->withChannels([\"project_123\",\"group_2\"])\n ->withDescription(\"An example endpoint name\")\n ->withDisabled(true)\n ->withFilterTypes([\"user.signup\",\"user.deleted\"])\n ->withMetadata([])\n ->withThrottleRate(1)\n ->withUid(\"unique-identifier\")\n);" - label: CLI lang: Shell source: "svix endpoint update \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\" \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\" '{\n \"channels\": [\n \"project_123\",\n \"group_2\"\n ],\n \"description\": \"An example endpoint name\",\n \"disabled\": true,\n \"filterTypes\": [\n \"user.signup\",\n \"user.deleted\"\n ],\n \"metadata\": {},\n \"throttleRate\": 1,\n \"uid\": \"unique-identifier\",\n \"url\": \"https://example.com/webhook/\"\n }'" - label: cURL lang: Shell source: "curl -X 'PUT' \\\n 'https://api.eu.svix.com/api/v1/app/app_1srOrx2ZWZBpBUvZwXKQmoEYga2/endpoint/ep_33ZIBDmz66FcPG35FnsbM6Ie4X1' \\\n -H 'Authorization: Bearer AUTH_TOKEN' \\\n -H 'Accept: application/json' \\\n -H 'Content-Type: application/json' \\\n -d '{\n \"channels\": [\n \"project_123\",\n \"group_2\"\n ],\n \"description\": \"An example endpoint name\",\n \"disabled\": true,\n \"filterTypes\": [\n \"user.signup\",\n \"user.deleted\"\n ],\n \"metadata\": {},\n \"throttleRate\": 1,\n \"uid\": \"unique-identifier\",\n \"url\": \"https://example.com/webhook/\"\n }'" delete: tags: - Endpoint summary: Delete Endpoint description: Delete an endpoint. operationId: v1.endpoint.delete parameters: - in: path name: app_id description: The Application's ID or UID. required: true schema: description: The Application's ID or UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier style: simple - in: path name: endpoint_id description: The Endpoint's ID or UID. required: true schema: description: The Endpoint's ID or UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier style: simple responses: '204': description: no content '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' '429': description: Too Many Requests content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' security: - HTTPBearer: [] x-codeSamples: - label: JavaScript lang: TypeScript source: "await svix.endpoint.delete(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\"\n);" - label: TypeScript lang: TypeScript source: "await svix.endpoint.delete(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\"\n);" - label: Python lang: Python source: "svix.endpoint.delete(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n)" - label: Python (Async) lang: Python source: "await svix.endpoint.delete(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n)" - label: Go lang: Go source: "err := svix.Endpoint.Delete(\n\tctx,\n\t\"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n\t\"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n)" - label: Kotlin lang: Kotlin source: "svix.endpoint.delete(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n)" - label: Java lang: Java source: svix.getEndpoint().delete("app_1srOrx2ZWZBpBUvZwXKQmoEYga2", "ep_33ZIBDmz66FcPG35FnsbM6Ie4X1"); - label: Ruby lang: Ruby source: response = svix.endpoint.delete("app_1srOrx2ZWZBpBUvZwXKQmoEYga2", "ep_33ZIBDmz66FcPG35FnsbM6Ie4X1") - label: Rust lang: Rust source: "svix.endpoint()\n .delete(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\".to_string(),\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\".to_string(),\n )\n .await?;" - label: C# lang: C# source: "var response = svix.Endpoint.Delete(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\"\n);" - label: PHP lang: PHP source: "$svix->endpoint->delete(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\"\n);" - label: CLI lang: Shell source: svix endpoint delete "app_1srOrx2ZWZBpBUvZwXKQmoEYga2" "ep_33ZIBDmz66FcPG35FnsbM6Ie4X1" - label: cURL lang: Shell source: "curl -X 'DELETE' \\\n 'https://api.eu.svix.com/api/v1/app/app_1srOrx2ZWZBpBUvZwXKQmoEYga2/endpoint/ep_33ZIBDmz66FcPG35FnsbM6Ie4X1' \\\n -H 'Authorization: Bearer AUTH_TOKEN'" patch: tags: - Endpoint summary: Patch Endpoint description: Partially update an endpoint. operationId: v1.endpoint.patch parameters: - in: path name: app_id description: The Application's ID or UID. required: true schema: description: The Application's ID or UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier style: simple - in: path name: endpoint_id description: The Endpoint's ID or UID. required: true schema: description: The Endpoint's ID or UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier style: simple requestBody: content: application/json: schema: $ref: '#/components/schemas/EndpointPatch' required: true responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/EndpointOut' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' '429': description: Too Many Requests content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' security: - HTTPBearer: [] x-codeSamples: - label: JavaScript lang: TypeScript source: "const response = await svix.endpoint.patch(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n {\n channels: [],\n description: \"sample string\",\n disabled: true,\n filterTypes: [],\n metadata: {},\n throttleRate: 1,\n uid: \"unique-identifier\",\n url: \"sample string\",\n }\n);" - label: TypeScript lang: TypeScript source: "const response = await svix.endpoint.patch(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n {\n channels: [],\n description: \"sample string\",\n disabled: true,\n filterTypes: [],\n metadata: {},\n throttleRate: 1,\n uid: \"unique-identifier\",\n url: \"sample string\",\n }\n);" - label: Python lang: Python source: "response = svix.endpoint.patch(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n EndpointPatch(\n channels=[],\n description=\"sample string\",\n disabled=True,\n filter_types=[],\n metadata={},\n throttle_rate=1,\n uid=\"unique-identifier\",\n url=\"sample string\",\n ),\n)" - label: Python (Async) lang: Python source: "response = await svix.endpoint.patch(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n EndpointPatch(\n channels=[],\n description=\"sample string\",\n disabled=True,\n filter_types=[],\n metadata={},\n throttle_rate=1,\n uid=\"unique-identifier\",\n url=\"sample string\",\n ),\n)" - label: Go lang: Go source: "response, err := svix.Endpoint.Patch(\n\tctx,\n\t\"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n\t\"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n\tEndpointPatch{\n\t\tChannels: NewNullable([]string{}),\n\t\tDescription: new(\"sample string\"),\n\t\tDisabled: new(true),\n\t\tFilterTypes: NewNullable([]string{}),\n\t\tMetadata: nil,\n\t\tThrottleRate: NewNullable(uint16(1)),\n\t\tUid: NewNullable(\"unique-identifier\"),\n\t\tUrl: new(\"sample string\"),\n\t},\n)" - label: Kotlin lang: Kotlin source: "val response =\n svix.endpoint.patch(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n EndpointPatch(\n channels = MaybeUnset.Present(setOf()),\n description = \"sample string\",\n disabled = true,\n filterTypes = MaybeUnset.Present(setOf()),\n metadata = mapOf(),\n throttleRate = MaybeUnset.Present(1u),\n uid = MaybeUnset.Present(\"unique-identifier\"),\n url = \"https://example.com/\",\n ),\n )" - label: Java lang: Java source: "var response = svix.getEndpoint()\n .patch(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n new EndpointPatch()\n .channels(Set.of())\n .description(\"sample string\")\n .disabled(true)\n .filterTypes(Set.of())\n .metadata(Map.of())\n .throttleRate(1L)\n .uid(\"unique-identifier\")\n .url(URI.create(\"https://example.com/\")));" - label: Ruby lang: Ruby source: "response = svix\n .endpoint\n .patch(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n {\n channels: [],\n description: \"sample string\",\n disabled: true,\n filterTypes: [],\n metadata: {},\n throttleRate: 1,\n uid: \"unique-identifier\",\n url: \"sample string\"\n }\n )" - label: Rust lang: Rust source: "let response = svix\n .endpoint()\n .patch(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\".to_string(),\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\".to_string(),\n EndpointPatch {\n channels: js_option::JsOption::Some(vec![]),\n description: Some(\"sample string\".to_string()),\n disabled: Some(true),\n filter_types: js_option::JsOption::Some(vec![]),\n metadata: Some(HashMap::new()),\n throttle_rate: js_option::JsOption::Some(1),\n uid: js_option::JsOption::Some(\"unique-identifier\".to_string()),\n url: Some(\"sample string\".to_string()),\n },\n )\n .await?;" - label: C# lang: C# source: "var response = svix.Endpoint.Patch(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n new EndpointPatch\n {\n Channels = MaybeUnset?>.Set([]),\n Description = \"sample string\",\n Disabled = true,\n FilterTypes = MaybeUnset?>.Set([]),\n Metadata = [],\n ThrottleRate = 1,\n Uid = \"unique-identifier\",\n Url = \"sample string\",\n }\n);" - label: PHP lang: PHP source: "$response = $svix->endpoint->patch(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n EndpointPatch::create()\n ->withChannels([])\n ->withDescription(\"sample string\")\n ->withDisabled(true)\n ->withFilterTypes([])\n ->withMetadata([])\n ->withThrottleRate(1)\n ->withUid(\"unique-identifier\")\n ->withUrl(\"sample string\")\n);" - label: CLI lang: Shell source: "svix endpoint patch \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\" \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\" '{\n \"channels\": [],\n \"description\": \"sample string\",\n \"disabled\": true,\n \"filterTypes\": [],\n \"metadata\": {},\n \"throttleRate\": 1,\n \"uid\": \"unique-identifier\",\n \"url\": \"sample string\"\n }'" - label: cURL lang: Shell source: "curl -X 'PATCH' \\\n 'https://api.eu.svix.com/api/v1/app/app_1srOrx2ZWZBpBUvZwXKQmoEYga2/endpoint/ep_33ZIBDmz66FcPG35FnsbM6Ie4X1' \\\n -H 'Authorization: Bearer AUTH_TOKEN' \\\n -H 'Accept: application/json' \\\n -H 'Content-Type: application/json' \\\n -d '{\n \"channels\": [],\n \"description\": \"sample string\",\n \"disabled\": true,\n \"filterTypes\": [],\n \"metadata\": {},\n \"throttleRate\": 1,\n \"uid\": \"unique-identifier\",\n \"url\": \"sample string\"\n }'" /api/v1/app/{app_id}/endpoint/{endpoint_id}/bulk-replay: post: tags: - Endpoint summary: Bulk Replay Messages description: "Bulk replay messages sent to the endpoint.\n\nOnly messages that were created after `since` will be sent.\nThis will replay both successful, and failed messages\n\nA completed task will return a payload like the following:\n```json\n{\n \"id\": \"qtask_33qen93MNuelBAq1T9G7eHLJRsF\",\n \"status\": \"finished\",\n \"task\": \"endpoint.bulk-replay\",\n \"data\": {\n \"messagesSent\": 2\n }\n}\n```" operationId: v1.endpoint.bulk-replay parameters: - in: path name: app_id description: The Application's ID or UID. required: true schema: description: The Application's ID or UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier style: simple - in: path name: endpoint_id description: The Endpoint's ID or UID. required: true schema: description: The Endpoint's ID or UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier style: simple - in: header name: idempotency-key description: The request's idempotency key schema: type: string style: simple - in: header name: idempotency-key description: The request's idempotency key schema: type: string style: simple requestBody: content: application/json: schema: $ref: '#/components/schemas/BulkReplayIn' required: true responses: '202': description: '' content: application/json: schema: $ref: '#/components/schemas/ReplayOut' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' '429': description: Too Many Requests content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' security: - HTTPBearer: [] x-codeSamples: - label: JavaScript lang: TypeScript source: "const response = await svix.endpoint.bulkReplay(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n {\n channel: \"project_1337\",\n eventTypes: [],\n since: new Date(\"2025-10-02T20:28:42+00:00\"),\n status: MessageStatus.Success,\n statusCodeClass: StatusCodeClass.CodeNone,\n tag: \"project_1337\",\n until: new Date(\"2025-10-02T20:28:42+00:00\"),\n }\n);" - label: TypeScript lang: TypeScript source: "const response = await svix.endpoint.bulkReplay(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n {\n channel: \"project_1337\",\n eventTypes: [],\n since: new Date(\"2025-10-02T20:28:42+00:00\"),\n status: MessageStatus.Success,\n statusCodeClass: StatusCodeClass.CodeNone,\n tag: \"project_1337\",\n until: new Date(\"2025-10-02T20:28:42+00:00\"),\n }\n);" - label: Python lang: Python source: "response = svix.endpoint.bulk_replay(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n BulkReplayIn(\n channel=\"project_1337\",\n event_types=[],\n since=datetime.fromisoformat(\"2025-10-02T20:28:42+00:00\"),\n status=MessageStatus.SUCCESS,\n status_code_class=StatusCodeClass.CODE_NONE,\n tag=\"project_1337\",\n until=datetime.fromisoformat(\"2025-10-02T20:28:42+00:00\"),\n ),\n)" - label: Python (Async) lang: Python source: "response = await svix.endpoint.bulk_replay(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n BulkReplayIn(\n channel=\"project_1337\",\n event_types=[],\n since=datetime.fromisoformat(\"2025-10-02T20:28:42+00:00\"),\n status=MessageStatus.SUCCESS,\n status_code_class=StatusCodeClass.CODE_NONE,\n tag=\"project_1337\",\n until=datetime.fromisoformat(\"2025-10-02T20:28:42+00:00\"),\n ),\n)" - label: Go lang: Go source: "response, err := svix.Endpoint.BulkReplay(\n\tctx,\n\t\"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n\t\"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n\tBulkReplayIn{\n\t\tChannel: new(\"project_1337\"),\n\t\tEventTypes: []string{},\n\t\tSince: time.Date(2025, 10, 2, 20, 28, 42, 0, time.UTC),\n\t\tStatus: new(MESSAGESTATUS_SUCCESS),\n\t\tStatusCodeClass: new(STATUSCODECLASS_CODE_NONE),\n\t\tTag: new(\"project_1337\"),\n\t\tUntil: new(time.Date(2025, 10, 2, 20, 28, 42, 0, time.UTC)),\n\t},\n\tnil,\n)" - label: Kotlin lang: Kotlin source: "val response =\n svix.endpoint.bulkReplay(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n BulkReplayIn(\n channel = \"project_1337\",\n eventTypes = setOf(),\n since = Instant.parse(\"2025-10-02T20:28:42+00:00\"),\n status = MessageStatus.SUCCESS,\n statusCodeClass = StatusCodeClass.CODE_NONE,\n tag = \"project_1337\",\n until = Instant.parse(\"2025-10-02T20:28:42+00:00\"),\n ),\n )" - label: Java lang: Java source: "var response = svix.getEndpoint()\n .bulkReplay(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n new BulkReplayIn()\n .channel(\"project_1337\")\n .eventTypes(Set.of())\n .since(OffsetDateTime.parse(\"2025-10-02T20:28:42+00:00\"))\n .status(MessageStatus.SUCCESS)\n .statusCodeClass(StatusCodeClass.CODE_NONE)\n .tag(\"project_1337\")\n .until(OffsetDateTime.parse(\"2025-10-02T20:28:42+00:00\")));" - label: Ruby lang: Ruby source: "response = svix\n .endpoint\n .bulk_replay(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n {\n channel: \"project_1337\",\n eventTypes: [],\n since: \"2025-10-02T20:28:42+00:00\",\n status: MessageStatus::SUCCESS,\n statusCodeClass: StatusCodeClass::CODE_NONE,\n tag: \"project_1337\",\n until: \"2025-10-02T20:28:42+00:00\"\n }\n )" - label: Rust lang: Rust source: "let response = svix\n .endpoint()\n .bulk_replay(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\".to_string(),\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\".to_string(),\n BulkReplayIn {\n channel: Some(\"project_1337\".to_string()),\n event_types: Some(vec![]),\n since: \"2025-10-02T20:28:42+00:00\".to_string(),\n status: Some(MessageStatus::Success),\n status_code_class: Some(StatusCodeClass::CodeNone),\n tag: Some(\"project_1337\".to_string()),\n until: Some(\"2025-10-02T20:28:42+00:00\".to_string()),\n },\n None,\n )\n .await?;" - label: C# lang: C# source: "var response = svix.Endpoint.BulkReplay(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n new BulkReplayIn\n {\n Channel = \"project_1337\",\n EventTypes = [],\n Since = DateTime.Parse(\"2025-10-02T20:28:42+00:00\"),\n Status = MessageStatus.Success,\n StatusCodeClass = StatusCodeClass.CodeNone,\n Tag = \"project_1337\",\n Until = DateTime.Parse(\"2025-10-02T20:28:42+00:00\"),\n }\n);" - label: PHP lang: PHP source: "$response = $svix->endpoint->bulkReplay(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n BulkReplayIn::create(\n since: new DateTimeImmutable(\"2025-10-02T20:28:42+00:00\")\n )\n ->withChannel(\"project_1337\")\n ->withEventTypes([])\n ->withStatus(MessageStatus::SUCCESS)\n ->withStatusCodeClass(StatusCodeClass::CODE_NONE)\n ->withTag(\"project_1337\")\n ->withUntil(new DateTimeImmutable(\"2025-10-02T20:28:42+00:00\"))\n);" - label: CLI lang: Shell source: "svix endpoint bulk-replay \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\" \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\" '{\n \"channel\": \"project_1337\",\n \"eventTypes\": [],\n \"since\": \"2025-10-02T20:28:42+00:00\",\n \"status\": 0,\n \"statusCodeClass\": 0,\n \"tag\": \"project_1337\",\n \"until\": \"2025-10-02T20:28:42+00:00\"\n }'" - label: cURL lang: Shell source: "curl -X 'POST' \\\n 'https://api.eu.svix.com/api/v1/app/app_1srOrx2ZWZBpBUvZwXKQmoEYga2/endpoint/ep_33ZIBDmz66FcPG35FnsbM6Ie4X1/bulk-replay' \\\n -H 'Authorization: Bearer AUTH_TOKEN' \\\n -H 'Accept: application/json' \\\n -H 'Content-Type: application/json' \\\n -d '{\n \"channel\": \"project_1337\",\n \"eventTypes\": [],\n \"since\": \"2025-10-02T20:28:42+00:00\",\n \"status\": 0,\n \"statusCodeClass\": 0,\n \"tag\": \"project_1337\",\n \"until\": \"2025-10-02T20:28:42+00:00\"\n }'" /api/v1/app/{app_id}/endpoint/{endpoint_id}/headers: get: tags: - Endpoint summary: Get Endpoint Headers description: Get the additional headers to be sent with the webhook. operationId: v1.endpoint.get-headers parameters: - in: path name: app_id description: The Application's ID or UID. required: true schema: description: The Application's ID or UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier style: simple - in: path name: endpoint_id description: The Endpoint's ID or UID. required: true schema: description: The Endpoint's ID or UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier style: simple responses: '200': description: 'The value of the headers is returned in the `headers` field. Sensitive headers that have been redacted are returned in the sensitive field.' content: application/json: schema: $ref: '#/components/schemas/EndpointHeadersOut' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' '429': description: Too Many Requests content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' security: - HTTPBearer: [] x-codeSamples: - label: JavaScript lang: TypeScript source: "const response = await svix.endpoint.getHeaders(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\"\n);" - label: TypeScript lang: TypeScript source: "const response = await svix.endpoint.getHeaders(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\"\n);" - label: Python lang: Python source: "response = svix.endpoint.get_headers(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n)" - label: Python (Async) lang: Python source: "response = await svix.endpoint.get_headers(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n)" - label: Go lang: Go source: "response, err := svix.Endpoint.GetHeaders(\n\tctx,\n\t\"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n\t\"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n)" - label: Kotlin lang: Kotlin source: "val response =\n svix.endpoint.getHeaders(\"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\", \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\")" - label: Java lang: Java source: "var response = svix.getEndpoint()\n .getHeaders(\"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\", \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\");" - label: Ruby lang: Ruby source: response = svix.endpoint.get_headers("app_1srOrx2ZWZBpBUvZwXKQmoEYga2", "ep_33ZIBDmz66FcPG35FnsbM6Ie4X1") - label: Rust lang: Rust source: "let response = svix\n .endpoint()\n .get_headers(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\".to_string(),\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\".to_string(),\n )\n .await?;" - label: C# lang: C# source: "var response = svix.Endpoint.GetHeaders(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\"\n);" - label: PHP lang: PHP source: "$response = $svix->endpoint->getHeaders(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\"\n);" - label: CLI lang: Shell source: svix endpoint get-headers "app_1srOrx2ZWZBpBUvZwXKQmoEYga2" "ep_33ZIBDmz66FcPG35FnsbM6Ie4X1" - label: cURL lang: Shell source: "curl -X 'GET' \\\n 'https://api.eu.svix.com/api/v1/app/app_1srOrx2ZWZBpBUvZwXKQmoEYga2/endpoint/ep_33ZIBDmz66FcPG35FnsbM6Ie4X1/headers' \\\n -H 'Authorization: Bearer AUTH_TOKEN' \\\n -H 'Accept: application/json'" put: tags: - Endpoint summary: Update Endpoint Headers description: Set the additional headers to be sent with the webhook. operationId: v1.endpoint.update-headers parameters: - in: path name: app_id description: The Application's ID or UID. required: true schema: description: The Application's ID or UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier style: simple - in: path name: endpoint_id description: The Endpoint's ID or UID. required: true schema: description: The Endpoint's ID or UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier style: simple requestBody: content: application/json: schema: $ref: '#/components/schemas/EndpointHeadersIn' required: true responses: '204': description: no content '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' '429': description: Too Many Requests content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' security: - HTTPBearer: [] x-codeSamples: - label: JavaScript lang: TypeScript source: "await svix.endpoint.updateHeaders(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n {\n headers: { \"X-Example\": \"123\", \"X-Foobar\": \"Bar\" },\n }\n);" - label: TypeScript lang: TypeScript source: "await svix.endpoint.updateHeaders(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n {\n headers: { \"X-Example\": \"123\", \"X-Foobar\": \"Bar\" },\n }\n);" - label: Python lang: Python source: "svix.endpoint.update_headers(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n EndpointHeadersIn(\n headers={\"X-Example\": \"123\", \"X-Foobar\": \"Bar\"},\n ),\n)" - label: Python (Async) lang: Python source: "await svix.endpoint.update_headers(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n EndpointHeadersIn(\n headers={\"X-Example\": \"123\", \"X-Foobar\": \"Bar\"},\n ),\n)" - label: Go lang: Go source: "err := svix.Endpoint.UpdateHeaders(\n\tctx,\n\t\"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n\t\"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n\tEndpointHeadersIn{Headers: map[string]string{\"X-Example\": \"123\", \"X-Foobar\": \"Bar\"}},\n)" - label: Kotlin lang: Kotlin source: "svix.endpoint.updateHeaders(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n EndpointHeadersIn(headers = mapOf(\"X-Example\" to \"123\", \"X-Foobar\" to \"Bar\")),\n)" - label: Java lang: Java source: "svix.getEndpoint()\n .updateHeaders(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n new EndpointHeadersIn()\n .headers(\n Map.ofEntries(Map.entry(\"X-Example\", \"123\"), Map.entry(\"X-Foobar\", \"Bar\"))));" - label: Ruby lang: Ruby source: "response = svix\n .endpoint\n .update_headers(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n {headers: {:\"X-Example\" => \"123\", :\"X-Foobar\" => \"Bar\"}}\n )" - label: Rust lang: Rust source: "svix.endpoint()\n .update_headers(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\".to_string(),\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\".to_string(),\n EndpointHeadersIn {\n headers: HashMap::from([\n (\"X-Example\".to_string(), \"123\".to_string()),\n (\"X-Foobar\".to_string(), \"Bar\".to_string()),\n ]),\n },\n )\n .await?;" - label: C# lang: C# source: "var response = svix.Endpoint.UpdateHeaders(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n new EndpointHeadersIn\n {\n Headers = new() { { \"X-Example\", \"123\" }, { \"X-Foobar\", \"Bar\" } },\n }\n);" - label: PHP lang: PHP source: "$svix->endpoint->updateHeaders(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n EndpointHeadersIn::create(\n headers: [\"X-Example\" => \"123\", \"X-Foobar\" => \"Bar\"]\n )\n\n);" - label: CLI lang: Shell source: "svix endpoint update-headers \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\" \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\" '{\n \"headers\": {\n \"X-Example\": \"123\",\n \"X-Foobar\": \"Bar\"\n }\n }'" - label: cURL lang: Shell source: "curl -X 'PUT' \\\n 'https://api.eu.svix.com/api/v1/app/app_1srOrx2ZWZBpBUvZwXKQmoEYga2/endpoint/ep_33ZIBDmz66FcPG35FnsbM6Ie4X1/headers' \\\n -H 'Authorization: Bearer AUTH_TOKEN' \\\n -H 'Content-Type: application/json' \\\n -d '{\n \"headers\": {\n \"X-Example\": \"123\",\n \"X-Foobar\": \"Bar\"\n }\n }'" patch: tags: - Endpoint summary: Patch Endpoint Headers description: Partially set the additional headers to be sent with the webhook. operationId: v1.endpoint.patch-headers parameters: - in: path name: app_id description: The Application's ID or UID. required: true schema: description: The Application's ID or UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier style: simple - in: path name: endpoint_id description: The Endpoint's ID or UID. required: true schema: description: The Endpoint's ID or UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier style: simple requestBody: content: application/json: schema: $ref: '#/components/schemas/EndpointHeadersPatchIn' required: true responses: '204': description: no content '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' '429': description: Too Many Requests content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' security: - HTTPBearer: [] x-codeSamples: - label: JavaScript lang: TypeScript source: "await svix.endpoint.patchHeaders(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n {\n deleteHeaders: [],\n headers: { \"X-Example\": \"123\", \"X-Foobar\": \"Bar\" },\n }\n);" - label: TypeScript lang: TypeScript source: "await svix.endpoint.patchHeaders(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n {\n deleteHeaders: [],\n headers: { \"X-Example\": \"123\", \"X-Foobar\": \"Bar\" },\n }\n);" - label: Python lang: Python source: "svix.endpoint.patch_headers(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n EndpointHeadersPatchIn(\n delete_headers=[],\n headers={\"X-Example\": \"123\", \"X-Foobar\": \"Bar\"},\n ),\n)" - label: Python (Async) lang: Python source: "await svix.endpoint.patch_headers(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n EndpointHeadersPatchIn(\n delete_headers=[],\n headers={\"X-Example\": \"123\", \"X-Foobar\": \"Bar\"},\n ),\n)" - label: Go lang: Go source: "err := svix.Endpoint.PatchHeaders(\n\tctx,\n\t\"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n\t\"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n\tEndpointHeadersPatchIn{\n\t\tDeleteHeaders: []string{},\n\t\tHeaders: map[string]string{\"X-Example\": \"123\", \"X-Foobar\": \"Bar\"},\n\t},\n)" - label: Kotlin lang: Kotlin source: "svix.endpoint.patchHeaders(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n EndpointHeadersPatchIn(\n deleteHeaders = listOf(),\n headers = mapOf(\"X-Example\" to \"123\", \"X-Foobar\" to \"Bar\"),\n ),\n)" - label: Java lang: Java source: "svix.getEndpoint()\n .patchHeaders(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n new EndpointHeadersPatchIn()\n .deleteHeaders(List.of())\n .headers(\n Map.ofEntries(Map.entry(\"X-Example\", \"123\"), Map.entry(\"X-Foobar\", \"Bar\"))));" - label: Ruby lang: Ruby source: "response = svix\n .endpoint\n .patch_headers(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n {deleteHeaders: [], headers: {:\"X-Example\" => \"123\", :\"X-Foobar\" => \"Bar\"}}\n )" - label: Rust lang: Rust source: "svix.endpoint()\n .patch_headers(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\".to_string(),\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\".to_string(),\n EndpointHeadersPatchIn {\n delete_headers: Some(vec![]),\n headers: HashMap::from([\n (\"X-Example\".to_string(), \"123\".to_string()),\n (\"X-Foobar\".to_string(), \"Bar\".to_string()),\n ]),\n },\n )\n .await?;" - label: C# lang: C# source: "var response = svix.Endpoint.PatchHeaders(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n new EndpointHeadersPatchIn\n {\n DeleteHeaders = [],\n Headers = new() { { \"X-Example\", \"123\" }, { \"X-Foobar\", \"Bar\" } },\n }\n);" - label: PHP lang: PHP source: "$svix->endpoint->patchHeaders(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n EndpointHeadersPatchIn::create(\n headers: [\"X-Example\" => \"123\", \"X-Foobar\" => \"Bar\"]\n )\n ->withDeleteHeaders([])\n);" - label: CLI lang: Shell source: "svix endpoint patch-headers \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\" \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\" '{\n \"deleteHeaders\": [],\n \"headers\": {\n \"X-Example\": \"123\",\n \"X-Foobar\": \"Bar\"\n }\n }'" - label: cURL lang: Shell source: "curl -X 'PATCH' \\\n 'https://api.eu.svix.com/api/v1/app/app_1srOrx2ZWZBpBUvZwXKQmoEYga2/endpoint/ep_33ZIBDmz66FcPG35FnsbM6Ie4X1/headers' \\\n -H 'Authorization: Bearer AUTH_TOKEN' \\\n -H 'Content-Type: application/json' \\\n -d '{\n \"deleteHeaders\": [],\n \"headers\": {\n \"X-Example\": \"123\",\n \"X-Foobar\": \"Bar\"\n }\n }'" /api/v1/app/{app_id}/endpoint/{endpoint_id}/recover: post: tags: - Endpoint summary: Recover Failed Webhooks description: "Resend all failed messages since a given time.\n\nMessages that were sent successfully, even if failed initially, are not resent.\n\nA completed task will return a payload like the following:\n```json\n{\n \"id\": \"qtask_33qen93MNuelBAq1T9G7eHLJRsF\",\n \"status\": \"finished\",\n \"task\": \"endpoint.recover\",\n \"data\": {\n \"messagesSent\": 2\n }\n}\n```" operationId: v1.endpoint.recover parameters: - in: path name: app_id description: The Application's ID or UID. required: true schema: description: The Application's ID or UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier style: simple - in: path name: endpoint_id description: The Endpoint's ID or UID. required: true schema: description: The Endpoint's ID or UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier style: simple - in: header name: idempotency-key description: The request's idempotency key schema: type: string style: simple - in: header name: idempotency-key description: The request's idempotency key schema: type: string style: simple requestBody: content: application/json: schema: $ref: '#/components/schemas/RecoverIn' required: true responses: '202': description: '' content: application/json: schema: $ref: '#/components/schemas/RecoverOut' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' '429': description: Too Many Requests content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' security: - HTTPBearer: [] x-codeSamples: - label: JavaScript lang: TypeScript source: "const response = await svix.endpoint.recover(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n {\n since: new Date(\"2025-10-02T20:28:42+00:00\"),\n until: new Date(\"2025-10-02T20:28:42+00:00\"),\n }\n);" - label: TypeScript lang: TypeScript source: "const response = await svix.endpoint.recover(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n {\n since: new Date(\"2025-10-02T20:28:42+00:00\"),\n until: new Date(\"2025-10-02T20:28:42+00:00\"),\n }\n);" - label: Python lang: Python source: "response = svix.endpoint.recover(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n RecoverIn(\n since=datetime.fromisoformat(\"2025-10-02T20:28:42+00:00\"),\n until=datetime.fromisoformat(\"2025-10-02T20:28:42+00:00\"),\n ),\n)" - label: Python (Async) lang: Python source: "response = await svix.endpoint.recover(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n RecoverIn(\n since=datetime.fromisoformat(\"2025-10-02T20:28:42+00:00\"),\n until=datetime.fromisoformat(\"2025-10-02T20:28:42+00:00\"),\n ),\n)" - label: Go lang: Go source: "response, err := svix.Endpoint.Recover(\n\tctx,\n\t\"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n\t\"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n\tRecoverIn{\n\t\tSince: time.Date(2025, 10, 2, 20, 28, 42, 0, time.UTC),\n\t\tUntil: new(time.Date(2025, 10, 2, 20, 28, 42, 0, time.UTC)),\n\t},\n\tnil,\n)" - label: Kotlin lang: Kotlin source: "val response =\n svix.endpoint.recover(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n RecoverIn(\n since = Instant.parse(\"2025-10-02T20:28:42+00:00\"),\n until = Instant.parse(\"2025-10-02T20:28:42+00:00\"),\n ),\n )" - label: Java lang: Java source: "var response = svix.getEndpoint()\n .recover(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n new RecoverIn()\n .since(OffsetDateTime.parse(\"2025-10-02T20:28:42+00:00\"))\n .until(OffsetDateTime.parse(\"2025-10-02T20:28:42+00:00\")));" - label: Ruby lang: Ruby source: "response = svix\n .endpoint\n .recover(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n {since: \"2025-10-02T20:28:42+00:00\", until: \"2025-10-02T20:28:42+00:00\"}\n )" - label: Rust lang: Rust source: "let response = svix\n .endpoint()\n .recover(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\".to_string(),\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\".to_string(),\n RecoverIn {\n since: \"2025-10-02T20:28:42+00:00\".to_string(),\n until: Some(\"2025-10-02T20:28:42+00:00\".to_string()),\n },\n None,\n )\n .await?;" - label: C# lang: C# source: "var response = svix.Endpoint.Recover(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n new RecoverIn\n {\n Since = DateTime.Parse(\"2025-10-02T20:28:42+00:00\"),\n Until = DateTime.Parse(\"2025-10-02T20:28:42+00:00\"),\n }\n);" - label: PHP lang: PHP source: "$response = $svix->endpoint->recover(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n RecoverIn::create(\n since: new DateTimeImmutable(\"2025-10-02T20:28:42+00:00\")\n )\n ->withUntil(new DateTimeImmutable(\"2025-10-02T20:28:42+00:00\"))\n);" - label: CLI lang: Shell source: "svix endpoint recover \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\" \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\" '{\n \"since\": \"2025-10-02T20:28:42+00:00\",\n \"until\": \"2025-10-02T20:28:42+00:00\"\n }'" - label: cURL lang: Shell source: "curl -X 'POST' \\\n 'https://api.eu.svix.com/api/v1/app/app_1srOrx2ZWZBpBUvZwXKQmoEYga2/endpoint/ep_33ZIBDmz66FcPG35FnsbM6Ie4X1/recover' \\\n -H 'Authorization: Bearer AUTH_TOKEN' \\\n -H 'Accept: application/json' \\\n -H 'Content-Type: application/json' \\\n -d '{\n \"since\": \"2025-10-02T20:28:42+00:00\",\n \"until\": \"2025-10-02T20:28:42+00:00\"\n }'" /api/v1/app/{app_id}/endpoint/{endpoint_id}/replay-missing: post: tags: - Endpoint summary: Replay Missing Webhooks description: "Replays messages to the endpoint.\n\nOnly messages that were created after `since` will be sent.\nMessages that were previously sent to the endpoint are not resent.\n\nA completed task will return a payload like the following:\n```json\n{\n \"id\": \"qtask_33qen93MNuelBAq1T9G7eHLJRsF\",\n \"status\": \"finished\",\n \"task\": \"endpoint.replay\",\n \"data\": {\n \"messagesSent\": 2\n }\n}\n```" operationId: v1.endpoint.replay-missing parameters: - in: path name: app_id description: The Application's ID or UID. required: true schema: description: The Application's ID or UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier style: simple - in: path name: endpoint_id description: The Endpoint's ID or UID. required: true schema: description: The Endpoint's ID or UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier style: simple - in: header name: idempotency-key description: The request's idempotency key schema: type: string style: simple - in: header name: idempotency-key description: The request's idempotency key schema: type: string style: simple requestBody: content: application/json: schema: $ref: '#/components/schemas/ReplayIn' required: true responses: '202': description: '' content: application/json: schema: $ref: '#/components/schemas/ReplayOut' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' '429': description: Too Many Requests content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' security: - HTTPBearer: [] x-codeSamples: - label: JavaScript lang: TypeScript source: "const response = await svix.endpoint.replayMissing(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n {\n since: new Date(\"2025-10-02T20:28:42+00:00\"),\n until: new Date(\"2025-10-02T20:28:42+00:00\"),\n }\n);" - label: TypeScript lang: TypeScript source: "const response = await svix.endpoint.replayMissing(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n {\n since: new Date(\"2025-10-02T20:28:42+00:00\"),\n until: new Date(\"2025-10-02T20:28:42+00:00\"),\n }\n);" - label: Python lang: Python source: "response = svix.endpoint.replay_missing(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n ReplayIn(\n since=datetime.fromisoformat(\"2025-10-02T20:28:42+00:00\"),\n until=datetime.fromisoformat(\"2025-10-02T20:28:42+00:00\"),\n ),\n)" - label: Python (Async) lang: Python source: "response = await svix.endpoint.replay_missing(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n ReplayIn(\n since=datetime.fromisoformat(\"2025-10-02T20:28:42+00:00\"),\n until=datetime.fromisoformat(\"2025-10-02T20:28:42+00:00\"),\n ),\n)" - label: Go lang: Go source: "response, err := svix.Endpoint.ReplayMissing(\n\tctx,\n\t\"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n\t\"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n\tReplayIn{\n\t\tSince: time.Date(2025, 10, 2, 20, 28, 42, 0, time.UTC),\n\t\tUntil: new(time.Date(2025, 10, 2, 20, 28, 42, 0, time.UTC)),\n\t},\n\tnil,\n)" - label: Kotlin lang: Kotlin source: "val response =\n svix.endpoint.replayMissing(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n ReplayIn(\n since = Instant.parse(\"2025-10-02T20:28:42+00:00\"),\n until = Instant.parse(\"2025-10-02T20:28:42+00:00\"),\n ),\n )" - label: Java lang: Java source: "var response = svix.getEndpoint()\n .replayMissing(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n new ReplayIn()\n .since(OffsetDateTime.parse(\"2025-10-02T20:28:42+00:00\"))\n .until(OffsetDateTime.parse(\"2025-10-02T20:28:42+00:00\")));" - label: Ruby lang: Ruby source: "response = svix\n .endpoint\n .replay_missing(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n {since: \"2025-10-02T20:28:42+00:00\", until: \"2025-10-02T20:28:42+00:00\"}\n )" - label: Rust lang: Rust source: "let response = svix\n .endpoint()\n .replay_missing(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\".to_string(),\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\".to_string(),\n ReplayIn {\n since: \"2025-10-02T20:28:42+00:00\".to_string(),\n until: Some(\"2025-10-02T20:28:42+00:00\".to_string()),\n },\n None,\n )\n .await?;" - label: C# lang: C# source: "var response = svix.Endpoint.ReplayMissing(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n new ReplayIn\n {\n Since = DateTime.Parse(\"2025-10-02T20:28:42+00:00\"),\n Until = DateTime.Parse(\"2025-10-02T20:28:42+00:00\"),\n }\n);" - label: PHP lang: PHP source: "$response = $svix->endpoint->replayMissing(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n ReplayIn::create(\n since: new DateTimeImmutable(\"2025-10-02T20:28:42+00:00\")\n )\n ->withUntil(new DateTimeImmutable(\"2025-10-02T20:28:42+00:00\"))\n);" - label: CLI lang: Shell source: "svix endpoint replay-missing \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\" \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\" '{\n \"since\": \"2025-10-02T20:28:42+00:00\",\n \"until\": \"2025-10-02T20:28:42+00:00\"\n }'" - label: cURL lang: Shell source: "curl -X 'POST' \\\n 'https://api.eu.svix.com/api/v1/app/app_1srOrx2ZWZBpBUvZwXKQmoEYga2/endpoint/ep_33ZIBDmz66FcPG35FnsbM6Ie4X1/replay-missing' \\\n -H 'Authorization: Bearer AUTH_TOKEN' \\\n -H 'Accept: application/json' \\\n -H 'Content-Type: application/json' \\\n -d '{\n \"since\": \"2025-10-02T20:28:42+00:00\",\n \"until\": \"2025-10-02T20:28:42+00:00\"\n }'" /api/v1/app/{app_id}/endpoint/{endpoint_id}/secret: get: tags: - Endpoint summary: Get Endpoint Secret description: 'Get the endpoint''s signing secret. This is used to verify the authenticity of the webhook. For more information please refer to [the consuming webhooks docs](https://docs.svix.com/consuming-webhooks/).' operationId: v1.endpoint.get-secret parameters: - in: path name: app_id description: The Application's ID or UID. required: true schema: description: The Application's ID or UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier style: simple - in: path name: endpoint_id description: The Endpoint's ID or UID. required: true schema: description: The Endpoint's ID or UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier style: simple responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/EndpointSecretOut' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' '429': description: Too Many Requests content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' security: - HTTPBearer: [] x-codeSamples: - label: JavaScript lang: TypeScript source: "const response = await svix.endpoint.getSecret(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\"\n);" - label: TypeScript lang: TypeScript source: "const response = await svix.endpoint.getSecret(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\"\n);" - label: Python lang: Python source: "response = svix.endpoint.get_secret(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n)" - label: Python (Async) lang: Python source: "response = await svix.endpoint.get_secret(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n)" - label: Go lang: Go source: "response, err := svix.Endpoint.GetSecret(\n\tctx,\n\t\"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n\t\"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n)" - label: Kotlin lang: Kotlin source: "val response =\n svix.endpoint.getSecret(\"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\", \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\")" - label: Java lang: Java source: "var response = svix.getEndpoint()\n .getSecret(\"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\", \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\");" - label: Ruby lang: Ruby source: response = svix.endpoint.get_secret("app_1srOrx2ZWZBpBUvZwXKQmoEYga2", "ep_33ZIBDmz66FcPG35FnsbM6Ie4X1") - label: Rust lang: Rust source: "let response = svix\n .endpoint()\n .get_secret(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\".to_string(),\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\".to_string(),\n )\n .await?;" - label: C# lang: C# source: "var response = svix.Endpoint.GetSecret(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\"\n);" - label: PHP lang: PHP source: "$response = $svix->endpoint->getSecret(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\"\n);" - label: CLI lang: Shell source: svix endpoint get-secret "app_1srOrx2ZWZBpBUvZwXKQmoEYga2" "ep_33ZIBDmz66FcPG35FnsbM6Ie4X1" - label: cURL lang: Shell source: "curl -X 'GET' \\\n 'https://api.eu.svix.com/api/v1/app/app_1srOrx2ZWZBpBUvZwXKQmoEYga2/endpoint/ep_33ZIBDmz66FcPG35FnsbM6Ie4X1/secret' \\\n -H 'Authorization: Bearer AUTH_TOKEN' \\\n -H 'Accept: application/json'" /api/v1/app/{app_id}/endpoint/{endpoint_id}/secret/rotate: post: tags: - Endpoint summary: Rotate Endpoint Secret description: 'Rotates the endpoint''s signing secret. The previous secret will remain valid for the next 24 hours.' operationId: v1.endpoint.rotate-secret parameters: - in: path name: app_id description: The Application's ID or UID. required: true schema: description: The Application's ID or UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier style: simple - in: path name: endpoint_id description: The Endpoint's ID or UID. required: true schema: description: The Endpoint's ID or UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier style: simple - in: header name: idempotency-key description: The request's idempotency key schema: type: string style: simple - in: header name: idempotency-key description: The request's idempotency key schema: type: string style: simple requestBody: content: application/json: schema: $ref: '#/components/schemas/EndpointSecretRotateIn' required: true responses: '204': description: no content '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' '429': description: Too Many Requests content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' security: - HTTPBearer: [] x-codeSamples: - label: JavaScript lang: TypeScript source: "await svix.endpoint.rotateSecret(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n {\n key: \"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\",\n }\n);" - label: TypeScript lang: TypeScript source: "await svix.endpoint.rotateSecret(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n {\n key: \"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\",\n }\n);" - label: Python lang: Python source: "svix.endpoint.rotate_secret(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n EndpointSecretRotateIn(\n key=\"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\",\n ),\n)" - label: Python (Async) lang: Python source: "await svix.endpoint.rotate_secret(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n EndpointSecretRotateIn(\n key=\"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\",\n ),\n)" - label: Go lang: Go source: "err := svix.Endpoint.RotateSecret(\n\tctx,\n\t\"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n\t\"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n\tEndpointSecretRotateIn{Key: new(\"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\")},\n\tnil,\n)" - label: Kotlin lang: Kotlin source: "svix.endpoint.rotateSecret(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n EndpointSecretRotateIn(key = \"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\"),\n)" - label: Java lang: Java source: "svix.getEndpoint()\n .rotateSecret(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n new EndpointSecretRotateIn().key(\"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\"));" - label: Ruby lang: Ruby source: "response = svix\n .endpoint\n .rotate_secret(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n {key: \"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\"}\n )" - label: Rust lang: Rust source: "svix.endpoint()\n .rotate_secret(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\".to_string(),\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\".to_string(),\n EndpointSecretRotateIn {\n key: Some(\"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\".to_string()),\n },\n None,\n )\n .await?;" - label: C# lang: C# source: "var response = svix.Endpoint.RotateSecret(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n new EndpointSecretRotateIn { Key = \"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\" }\n);" - label: PHP lang: PHP source: "$svix->endpoint->rotateSecret(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n EndpointSecretRotateIn::create()\n ->withKey(\"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\")\n);" - label: CLI lang: Shell source: "svix endpoint rotate-secret \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\" \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\" '{\n \"key\": \"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\"\n }'" - label: cURL lang: Shell source: "curl -X 'POST' \\\n 'https://api.eu.svix.com/api/v1/app/app_1srOrx2ZWZBpBUvZwXKQmoEYga2/endpoint/ep_33ZIBDmz66FcPG35FnsbM6Ie4X1/secret/rotate' \\\n -H 'Authorization: Bearer AUTH_TOKEN' \\\n -H 'Content-Type: application/json' \\\n -d '{\n \"key\": \"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\"\n }'" /api/v1/app/{app_id}/endpoint/{endpoint_id}/send-example: post: tags: - Endpoint summary: Send Event Type Example Message description: Send an example message for an event. operationId: v1.endpoint.send-example parameters: - in: path name: app_id description: The Application's ID or UID. required: true schema: description: The Application's ID or UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier style: simple - in: path name: endpoint_id description: The Endpoint's ID or UID. required: true schema: description: The Endpoint's ID or UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier style: simple - in: header name: idempotency-key description: The request's idempotency key schema: type: string style: simple - in: header name: idempotency-key description: The request's idempotency key schema: type: string style: simple requestBody: content: application/json: schema: $ref: '#/components/schemas/EventExampleIn' required: true responses: '202': description: '' content: application/json: schema: $ref: '#/components/schemas/MessageOut' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' '429': description: Too Many Requests content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' security: - HTTPBearer: [] x-codeSamples: - label: JavaScript lang: TypeScript source: "const response = await svix.endpoint.sendExample(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n {\n eventType: \"user.signup\",\n exampleIndex: 1,\n }\n);" - label: TypeScript lang: TypeScript source: "const response = await svix.endpoint.sendExample(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n {\n eventType: \"user.signup\",\n exampleIndex: 1,\n }\n);" - label: Python lang: Python source: "response = svix.endpoint.send_example(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n EventExampleIn(\n event_type=\"user.signup\",\n example_index=1,\n ),\n)" - label: Python (Async) lang: Python source: "response = await svix.endpoint.send_example(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n EventExampleIn(\n event_type=\"user.signup\",\n example_index=1,\n ),\n)" - label: Go lang: Go source: "response, err := svix.Endpoint.SendExample(\n\tctx,\n\t\"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n\t\"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n\tEventExampleIn{EventType: \"user.signup\", ExampleIndex: new(uint64(1))},\n\tnil,\n)" - label: Kotlin lang: Kotlin source: "val response =\n svix.endpoint.sendExample(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n EventExampleIn(eventType = \"user.signup\", exampleIndex = 1u),\n )" - label: Java lang: Java source: "var response = svix.getEndpoint()\n .sendExample(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n new EventExampleIn().eventType(\"user.signup\").exampleIndex(1L));" - label: Ruby lang: Ruby source: "response = svix\n .endpoint\n .send_example(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n {eventType: \"user.signup\", exampleIndex: 1}\n )" - label: Rust lang: Rust source: "let response = svix\n .endpoint()\n .send_example(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\".to_string(),\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\".to_string(),\n EventExampleIn {\n event_type: \"user.signup\".to_string(),\n example_index: Some(1),\n },\n None,\n )\n .await?;" - label: C# lang: C# source: "var response = svix.Endpoint.SendExample(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n new EventExampleIn { EventType = \"user.signup\", ExampleIndex = 1 }\n);" - label: PHP lang: PHP source: "$response = $svix->endpoint->sendExample(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n EventExampleIn::create(\n eventType: \"user.signup\"\n )\n ->withExampleIndex(1)\n);" - label: CLI lang: Shell source: "svix endpoint send-example \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\" \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\" '{\n \"eventType\": \"user.signup\",\n \"exampleIndex\": 1\n }'" - label: cURL lang: Shell source: "curl -X 'POST' \\\n 'https://api.eu.svix.com/api/v1/app/app_1srOrx2ZWZBpBUvZwXKQmoEYga2/endpoint/ep_33ZIBDmz66FcPG35FnsbM6Ie4X1/send-example' \\\n -H 'Authorization: Bearer AUTH_TOKEN' \\\n -H 'Accept: application/json' \\\n -H 'Content-Type: application/json' \\\n -d '{\n \"eventType\": \"user.signup\",\n \"exampleIndex\": 1\n }'" /api/v1/app/{app_id}/endpoint/{endpoint_id}/stats: get: tags: - Endpoint summary: Endpoint Stats description: Get basic statistics for the endpoint. operationId: v1.endpoint.get-stats parameters: - in: path name: app_id description: The Application's ID or UID. required: true schema: description: The Application's ID or UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier style: simple - in: path name: endpoint_id description: The Endpoint's ID or UID. required: true schema: description: The Endpoint's ID or UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier style: simple - in: query name: since description: Filter the range to data starting from this date. schema: description: Filter the range to data starting from this date. type: string format: date-time nullable: true style: form - in: query name: until description: Filter the range to data ending by this date. schema: description: Filter the range to data ending by this date. type: string format: date-time nullable: true style: form responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/EndpointStats' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' '429': description: Too Many Requests content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' security: - HTTPBearer: [] x-codeSamples: - label: JavaScript lang: TypeScript source: "const response = await svix.endpoint.getStats(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\"\n);" - label: TypeScript lang: TypeScript source: "const response = await svix.endpoint.getStats(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\"\n);" - label: Python lang: Python source: "response = svix.endpoint.get_stats(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n)" - label: Python (Async) lang: Python source: "response = await svix.endpoint.get_stats(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n)" - label: Go lang: Go source: "response, err := svix.Endpoint.GetStats(\n\tctx,\n\t\"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n\t\"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n\tnil,\n)" - label: Kotlin lang: Kotlin source: "val response =\n svix.endpoint.getStats(\"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\", \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\")" - label: Java lang: Java source: "var response = svix.getEndpoint()\n .getStats(\"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\", \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\");" - label: Ruby lang: Ruby source: response = svix.endpoint.get_stats("app_1srOrx2ZWZBpBUvZwXKQmoEYga2", "ep_33ZIBDmz66FcPG35FnsbM6Ie4X1") - label: Rust lang: Rust source: "let response = svix\n .endpoint()\n .get_stats(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\".to_string(),\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\".to_string(),\n None,\n )\n .await?;" - label: C# lang: C# source: "var response = svix.Endpoint.GetStats(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\"\n);" - label: PHP lang: PHP source: "$response = $svix->endpoint->getStats(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\"\n);" - label: CLI lang: Shell source: svix endpoint get-stats "app_1srOrx2ZWZBpBUvZwXKQmoEYga2" "ep_33ZIBDmz66FcPG35FnsbM6Ie4X1" - label: cURL lang: Shell source: "curl -X 'GET' \\\n 'https://api.eu.svix.com/api/v1/app/app_1srOrx2ZWZBpBUvZwXKQmoEYga2/endpoint/ep_33ZIBDmz66FcPG35FnsbM6Ie4X1/stats' \\\n -H 'Authorization: Bearer AUTH_TOKEN' \\\n -H 'Accept: application/json'" /api/v1/app/{app_id}/endpoint/{endpoint_id}/transformation: get: tags: - Endpoint summary: Get Endpoint Transformation description: Get the transformation code associated with this endpoint. operationId: v1.endpoint.transformation-get parameters: - in: path name: app_id description: The Application's ID or UID. required: true schema: description: The Application's ID or UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier style: simple - in: path name: endpoint_id description: The Endpoint's ID or UID. required: true schema: description: The Endpoint's ID or UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier style: simple responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/EndpointTransformationOut' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' '429': description: Too Many Requests content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' security: - HTTPBearer: [] x-codeSamples: - label: JavaScript lang: TypeScript source: "const response = await svix.endpoint.transformationGet(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\"\n);" - label: TypeScript lang: TypeScript source: "const response = await svix.endpoint.transformationGet(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\"\n);" - label: Python lang: Python source: "response = svix.endpoint.transformation_get(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n)" - label: Python (Async) lang: Python source: "response = await svix.endpoint.transformation_get(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n)" - label: Go lang: Go source: "response, err := svix.Endpoint.TransformationGet(\n\tctx,\n\t\"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n\t\"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n)" - label: Kotlin lang: Kotlin source: "val response =\n svix.endpoint.transformationGet(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n )" - label: Java lang: Java source: "var response = svix.getEndpoint()\n .transformationGet(\"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\", \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\");" - label: Ruby lang: Ruby source: response = svix.endpoint.transformation_get("app_1srOrx2ZWZBpBUvZwXKQmoEYga2", "ep_33ZIBDmz66FcPG35FnsbM6Ie4X1") - label: Rust lang: Rust source: "let response = svix\n .endpoint()\n .transformation_get(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\".to_string(),\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\".to_string(),\n )\n .await?;" - label: C# lang: C# source: "var response = svix.Endpoint.TransformationGet(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\"\n);" - label: PHP lang: PHP source: "$response = $svix->endpoint->transformationGet(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\"\n);" - label: CLI lang: Shell source: svix endpoint transformation-get "app_1srOrx2ZWZBpBUvZwXKQmoEYga2" "ep_33ZIBDmz66FcPG35FnsbM6Ie4X1" - label: cURL lang: Shell source: "curl -X 'GET' \\\n 'https://api.eu.svix.com/api/v1/app/app_1srOrx2ZWZBpBUvZwXKQmoEYga2/endpoint/ep_33ZIBDmz66FcPG35FnsbM6Ie4X1/transformation' \\\n -H 'Authorization: Bearer AUTH_TOKEN' \\\n -H 'Accept: application/json'" patch: tags: - Endpoint summary: Patch Endpoint Transformation description: Set or unset the transformation code associated with this endpoint. operationId: v1.endpoint.patch-transformation parameters: - in: path name: app_id description: The Application's ID or UID. required: true schema: description: The Application's ID or UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier style: simple - in: path name: endpoint_id description: The Endpoint's ID or UID. required: true schema: description: The Endpoint's ID or UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier style: simple requestBody: content: application/json: schema: $ref: '#/components/schemas/EndpointTransformationPatch' required: true responses: '204': description: no content '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' '429': description: Too Many Requests content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' security: - HTTPBearer: [] x-codeSamples: - label: JavaScript lang: TypeScript source: "await svix.endpoint.patchTransformation(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n {\n code: \"function handler(webhook) { /* ... */ }\",\n enabled: true,\n variables: {},\n }\n);" - label: TypeScript lang: TypeScript source: "await svix.endpoint.patchTransformation(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n {\n code: \"function handler(webhook) { /* ... */ }\",\n enabled: true,\n variables: {},\n }\n);" - label: Python lang: Python source: "svix.endpoint.patch_transformation(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n EndpointTransformationPatch(\n code=\"function handler(webhook) { /* ... */ }\",\n enabled=True,\n variables={},\n ),\n)" - label: Python (Async) lang: Python source: "await svix.endpoint.patch_transformation(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n EndpointTransformationPatch(\n code=\"function handler(webhook) { /* ... */ }\",\n enabled=True,\n variables={},\n ),\n)" - label: Go lang: Go source: "err := svix.Endpoint.PatchTransformation(\n\tctx,\n\t\"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n\t\"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n\tEndpointTransformationPatch{\n\t\tCode: NewNullable(\"function handler(webhook) { /* ... */ }\"),\n\t\tEnabled: new(true),\n\t\tVariables: NewNullable(nil),\n\t},\n)" - label: Kotlin lang: Kotlin source: "svix.endpoint.patchTransformation(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n EndpointTransformationPatch(\n code = MaybeUnset.Present(\"function handler(webhook) { /* ... */ }\"),\n enabled = true,\n variables = MaybeUnset.Present(mapOf()),\n ),\n)" - label: Java lang: Java source: "svix.getEndpoint()\n .patchTransformation(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n new EndpointTransformationPatch()\n .code(\"function handler(webhook) { /* ... */ }\")\n .enabled(true)\n .variables(Map.of()));" - label: Ruby lang: Ruby source: "response = svix\n .endpoint\n .patch_transformation(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n {code: \"function handler(webhook) { /* ... */ }\", enabled: true, variables: {}}\n )" - label: Rust lang: Rust source: "svix.endpoint()\n .patch_transformation(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\".to_string(),\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\".to_string(),\n EndpointTransformationPatch {\n code: js_option::JsOption::Some(\n \"function handler(webhook) { /* ... */ }\".to_string(),\n ),\n enabled: Some(true),\n variables: js_option::JsOption::Some(HashMap::new()),\n },\n )\n .await?;" - label: C# lang: C# source: "var response = svix.Endpoint.PatchTransformation(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n new EndpointTransformationPatch\n {\n Code = \"function handler(webhook) { /* ... */ }\",\n Enabled = true,\n Variables = MaybeUnset?>.Set([]),\n }\n);" - label: PHP lang: PHP source: "$svix->endpoint->patchTransformation(\n \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\",\n \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\",\n EndpointTransformationPatch::create()\n ->withCode(\"function handler(webhook) { /* ... */ }\")\n ->withEnabled(true)\n ->withVariables([])\n);" - label: CLI lang: Shell source: "svix endpoint patch-transformation \"app_1srOrx2ZWZBpBUvZwXKQmoEYga2\" \"ep_33ZIBDmz66FcPG35FnsbM6Ie4X1\" '{\n \"code\": \"function handler(webhook) { /* ... */ }\",\n \"enabled\": true,\n \"variables\": {}\n }'" - label: cURL lang: Shell source: "curl -X 'PATCH' \\\n 'https://api.eu.svix.com/api/v1/app/app_1srOrx2ZWZBpBUvZwXKQmoEYga2/endpoint/ep_33ZIBDmz66FcPG35FnsbM6Ie4X1/transformation' \\\n -H 'Authorization: Bearer AUTH_TOKEN' \\\n -H 'Content-Type: application/json' \\\n -d '{\n \"code\": \"function handler(webhook) { /* ... */ }\",\n \"enabled\": true,\n \"variables\": {}\n }'" components: schemas: RecoverIn: type: object required: - since properties: since: type: string format: date-time until: type: string format: date-time nullable: true RecoverOut: type: object required: - id - status - task - updatedAt properties: id: description: The QueueBackgroundTask's ID. type: string maxLength: 33 minLength: 33 pattern: ^qtask_[A-Za-z0-9]{27}$ example: qtask_1srOrx2ZWZBpBUvZwXKQmoEYga2 status: $ref: '#/components/schemas/BackgroundTaskStatus' task: $ref: '#/components/schemas/BackgroundTaskType' updatedAt: type: string format: date-time ValidationError: 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. type: object required: - loc - msg - type properties: loc: 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. type: array items: type: string msg: description: The message accompanying the validation error item. type: string type: description: The type of error, often "type_error" or "value_error", but sometimes with more context like as "value_error.number.not_ge" type: string StatusCodeClass: title: StatusCodeClass description: 'The different classes of HTTP status codes: - CodeNone = 0 - Code1xx = 100 - Code2xx = 200 - Code3xx = 300 - Code4xx = 400 - Code5xx = 500' type: integer enum: - 0 - 100 - 200 - 300 - 400 - 500 x-enum-varnames: - CodeNone - Code1xx - Code2xx - Code3xx - Code4xx - Code5xx Ordering: description: Defines the ordering in a listing of results. type: string enum: - ascending - descending ListResponse_EndpointOut_: type: object required: - data - done - iterator 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 EndpointTransformationPatch: type: object properties: code: type: string maxLength: 51200 minLength: 10 example: function handler(webhook) { /* ... */ } nullable: true enabled: type: boolean variables: type: object additionalProperties: type: string nullable: true ReplayIn: type: object required: - since properties: since: type: string format: date-time until: type: string format: date-time nullable: true MessageOut: type: object required: - eventType - id - payload - timestamp properties: channels: description: List of free-form identifiers that endpoints can filter by type: array items: type: string maxLength: 128 pattern: ^[a-zA-Z0-9\-_.:]+$ example: project_1337 maxItems: 10 minItems: 1 uniqueItems: true example: - project_123 - group_2 nullable: true deliverAt: type: string format: date-time nullable: true eventId: description: Optional unique identifier for the message type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier nullable: true eventType: description: The event type's name type: string maxLength: 256 pattern: ^[a-zA-Z0-9\-_.]+$ example: user.signup id: description: The Message's ID. type: string maxLength: 31 minLength: 31 pattern: ^msg_[A-Za-z0-9]{27}$ example: msg_1srOrx2ZWZBpBUvZwXKQmoEYga2 payload: type: object example: email: test@example.com type: user.created username: test_user tags: type: array items: type: string maxLength: 128 pattern: ^[a-zA-Z0-9\-_./\\#]+$ example: project_1337 uniqueItems: true nullable: true timestamp: type: string format: date-time EndpointHeadersIn: type: object required: - headers properties: headers: type: object additionalProperties: type: string example: X-Example: '123' X-Foobar: Bar MessageStatus: title: MessageStatus description: 'The sending status of the message: - Success = 0 - Pending = 1 - Fail = 2 - Sending = 3 - Canceled = 4' type: integer enum: - 0 - 1 - 2 - 3 - 4 x-enum-varnames: - Success - Pending - Fail - Sending - Canceled EndpointOut: type: object required: - createdAt - description - id - metadata - updatedAt - url - version properties: channels: description: List of message channels this endpoint listens to (omit for all). type: array items: type: string maxLength: 128 pattern: ^[a-zA-Z0-9\-_.:]+$ example: project_1337 maxItems: 10 minItems: 1 uniqueItems: true example: - project_123 - group_2 nullable: true createdAt: type: string format: date-time description: description: An example endpoint name. type: string disabled: default: false type: boolean example: false filterTypes: type: array items: description: The event type's name type: string maxLength: 256 pattern: ^[a-zA-Z0-9\-_.]+$ example: user.signup minItems: 1 uniqueItems: true example: - user.signup - user.deleted nullable: true id: description: The Endpoint's ID. type: string maxLength: 30 minLength: 30 pattern: ^ep_[A-Za-z0-9]{27}$ example: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 metadata: type: object additionalProperties: type: string rateLimit: description: Deprecated, use `throttleRate` instead. deprecated: true type: integer format: uint16 minimum: 0.0 nullable: true throttleRate: description: 'Maximum messages per second to send to this endpoint. Outgoing messages will be throttled to this rate.' type: integer format: uint16 minimum: 0.0 nullable: true uid: description: Optional unique identifier for the endpoint. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier nullable: true updatedAt: type: string format: date-time url: type: string format: uri maxLength: 65536 minLength: 1 example: https://example.com/webhook/ version: deprecated: true type: integer format: int32 minimum: 1.0 example: 1 EndpointSecretRotateIn: type: object properties: key: description: 'The endpoint''s verification secret. Format: `base64` encoded random bytes optionally prefixed with `whsec_`. It is recommended to not set this and let the server generate the secret.' default: null type: string pattern: ^(whsec_)?[a-zA-Z0-9+/=]{32,100}$ example: whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD nullable: true EventExampleIn: type: object required: - eventType properties: eventType: description: The event type's name type: string maxLength: 256 pattern: ^[a-zA-Z0-9\-_.]+$ example: user.signup exampleIndex: description: 'If the event type schema contains an array of examples, chooses which one to send. Defaults to the first example. Ignored if the schema doesn''t contain an array of examples.' default: 0 type: integer format: uint minimum: 0.0 EndpointHeadersPatchIn: type: object required: - headers properties: deleteHeaders: description: A list of headers be be removed default: [] type: array items: type: string headers: type: object additionalProperties: type: string nullable: true example: X-Example: '123' X-Foobar: Bar HttpErrorOut: title: HttpError type: object required: - code - detail properties: code: type: string detail: type: string ReplayOut: type: object required: - id - status - task - updatedAt properties: id: description: The QueueBackgroundTask's ID. type: string maxLength: 33 minLength: 33 pattern: ^qtask_[A-Za-z0-9]{27}$ example: qtask_1srOrx2ZWZBpBUvZwXKQmoEYga2 status: $ref: '#/components/schemas/BackgroundTaskStatus' task: $ref: '#/components/schemas/BackgroundTaskType' updatedAt: type: string format: date-time EndpointTransformationOut: type: object properties: code: type: string maxLength: 51200 minLength: 10 nullable: true enabled: default: false type: boolean updatedAt: type: string format: date-time nullable: true variables: type: object additionalProperties: type: string nullable: true BackgroundTaskType: type: string enum: - endpoint.replay - endpoint.recover - application.stats - message.broadcast - sdk.generate - event-type.aggregate - application.purge_content - endpoint.bulk-replay EndpointPatch: type: object properties: channels: type: array items: type: string maxLength: 128 pattern: ^[a-zA-Z0-9\-_.:]+$ example: project_1337 uniqueItems: true nullable: true description: type: string disabled: type: boolean filterTypes: type: array items: description: The event type's name type: string maxLength: 256 pattern: ^[a-zA-Z0-9\-_.]+$ example: user.signup uniqueItems: true nullable: true metadata: type: object additionalProperties: type: string rateLimit: description: Deprecated, use `throttleRate` instead. deprecated: true type: integer format: uint16 minimum: 0.0 nullable: true url: type: string format: uri throttleRate: description: 'Maximum messages per second to send to this endpoint. Outgoing messages will be throttled to this rate.' type: integer format: uint16 minimum: 0.0 nullable: true uid: description: The Endpoint's UID. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier nullable: true BackgroundTaskStatus: type: string enum: - running - finished - failed EndpointUpdate: type: object required: - url properties: channels: description: List of message channels this endpoint listens to (omit for all). type: array items: type: string maxLength: 128 pattern: ^[a-zA-Z0-9\-_.:]+$ example: project_1337 maxItems: 10 minItems: 1 uniqueItems: true example: - project_123 - group_2 nullable: true description: default: '' type: string example: An example endpoint name disabled: default: false type: boolean example: false filterTypes: type: array items: description: The event type's name type: string maxLength: 256 pattern: ^[a-zA-Z0-9\-_.]+$ example: user.signup minItems: 1 uniqueItems: true example: - user.signup - user.deleted nullable: true metadata: default: {} type: object additionalProperties: type: string rateLimit: description: Deprecated, use `throttleRate` instead. deprecated: true type: integer format: uint16 minimum: 1.0 nullable: true throttleRate: description: 'Maximum messages per second to send to this endpoint. Outgoing messages will be throttled to this rate.' type: integer format: uint16 minimum: 1.0 nullable: true uid: description: Optional unique identifier for the endpoint. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier nullable: true url: type: string format: uri maxLength: 65536 minLength: 1 example: https://example.com/webhook/ EndpointStats: type: object required: - canceled - fail - pending - sending - success properties: canceled: type: integer format: int64 fail: type: integer format: int64 pending: type: integer format: int64 sending: type: integer format: int64 success: type: integer format: int64 EndpointIn: type: object required: - url properties: channels: description: List of message channels this endpoint listens to (omit for all). type: array items: type: string maxLength: 128 pattern: ^[a-zA-Z0-9\-_.:]+$ example: project_1337 maxItems: 10 minItems: 1 uniqueItems: true example: - project_123 - group_2 nullable: true description: default: '' type: string example: An example endpoint name disabled: default: false type: boolean example: false filterTypes: type: array items: description: The event type's name type: string maxLength: 256 pattern: ^[a-zA-Z0-9\-_.]+$ example: user.signup minItems: 1 uniqueItems: true example: - user.signup - user.deleted nullable: true headers: type: object additionalProperties: type: string example: X-Example: '123' X-Foobar: Bar nullable: true metadata: default: {} type: object additionalProperties: type: string rateLimit: description: Deprecated, use `throttleRate` instead. deprecated: true type: integer format: uint16 minimum: 1.0 nullable: true secret: description: 'The endpoint''s verification secret. Format: `base64` encoded random bytes optionally prefixed with `whsec_`. It is recommended to not set this and let the server generate the secret.' type: string pattern: ^(whsec_)?[a-zA-Z0-9+/=]{32,100}$ example: whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD nullable: true throttleRate: description: 'Maximum messages per second to send to this endpoint. Outgoing messages will be throttled to this rate.' type: integer format: uint16 minimum: 1.0 nullable: true uid: description: Optional unique identifier for the endpoint. type: string maxLength: 256 minLength: 1 pattern: ^[a-zA-Z0-9\-_.]+$ example: unique-identifier nullable: true url: type: string format: uri maxLength: 65536 minLength: 1 example: https://example.com/webhook/ HTTPValidationError: type: object required: - detail properties: detail: type: array items: $ref: '#/components/schemas/ValidationError' EndpointSecretOut: type: object required: - key properties: key: description: 'The endpoint''s verification secret. Format: `base64` encoded random bytes optionally prefixed with `whsec_`. It is recommended to not set this and let the server generate the secret.' type: string pattern: ^(whsec_)?[a-zA-Z0-9+/=]{32,100}$ example: whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD BulkReplayIn: type: object required: - since properties: channel: type: string maxLength: 128 pattern: ^[a-zA-Z0-9\-_.:]+$ example: project_1337 nullable: true eventTypes: type: array items: description: The event type's name type: string maxLength: 256 pattern: ^[a-zA-Z0-9\-_.]+$ example: user.signup uniqueItems: true nullable: true since: type: string format: date-time status: $ref: '#/components/schemas/MessageStatus' nullable: true statusCodeClass: $ref: '#/components/schemas/StatusCodeClass' nullable: true tag: type: string maxLength: 128 pattern: ^[a-zA-Z0-9\-_./\\#]+$ example: project_1337 nullable: true until: type: string format: date-time nullable: true EndpointHeadersOut: description: 'The value of the headers is returned in the `headers` field. Sensitive headers that have been redacted are returned in the sensitive field.' type: object required: - headers - sensitive properties: headers: type: object additionalProperties: type: string example: X-Example: '123' X-Foobar: Bar sensitive: type: array items: type: string uniqueItems: true example: - Authorization securitySchemes: HTTPBearer: type: http scheme: bearer description: HTTP Bearer token passed in the `Authorization` header x-tagGroups: - name: General tags: - Background Task - Environment - name: Dispatch tags: - Application - Event Type - Authentication - Endpoint - Message - Message Attempt - Integration - Connector - name: Stream tags: - Stream - Sink - Event - Stream Event Type - Stream Authentication - name: Ingest tags: - Ingest Source - Ingest Endpoint - name: Operational Webhooks tags: - Webhook - Webhook Endpoint - name: Statistics tags: - Statistics - name: Utility tags: - Health x-webhooks: background_task.finished: post: description: Sent when a background task is finished. operationId: background_task.finished requestBody: content: application/json: example: data: data: appStats: - appId: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 appUid: null messageDestinations: 343 status: finished task: application.stats taskId: qtask_1srOrx2ZWZBpBUvZwXKQmoEYga2 type: background_task.finished schema: $ref: '#/components/schemas/BackgroundTaskFinishedEvent' responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully summary: background_task.finished tags: - Webhook endpoint.created: post: description: Sent when an endpoint is created. operationId: endpoint.created requestBody: content: application/json: example: data: appId: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 appUid: unique-app-identifier endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 endpointUid: unique-endpoint-identifier type: endpoint.created schema: $ref: '#/components/schemas/EndpointCreatedEvent' responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully summary: endpoint.created tags: - Webhook x-svix-group-name: dispatch endpoint.deleted: post: description: Sent when an endpoint is deleted. operationId: endpoint.deleted requestBody: content: application/json: example: data: appId: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 appUid: unique-app-identifier endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 endpointUid: unique-endpoint-identifier type: endpoint.deleted schema: $ref: '#/components/schemas/EndpointDeletedEvent' responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully summary: endpoint.deleted tags: - Webhook x-svix-group-name: dispatch endpoint.disabled: post: description: Sent when an endpoint has been automatically disabled after continuous failures, or manually via an API call. operationId: endpoint.disabled requestBody: content: application/json: example: data: appId: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 appUid: unique-app-identifier endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 endpointUid: unique-endpoint-identifier failSince: '2022-11-06T15:04:05Z' trigger: automatic type: endpoint.disabled schema: $ref: '#/components/schemas/EndpointDisabledEvent' responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully summary: endpoint.disabled tags: - Webhook x-svix-group-name: dispatch endpoint.enabled: post: description: Sent when an endpoint has been enabled. operationId: endpoint.enabled requestBody: content: application/json: example: data: appId: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 appUid: unique-app-identifier endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 endpointUid: unique-endpoint-identifier type: endpoint.enabled schema: $ref: '#/components/schemas/EndpointEnabledEvent' responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully summary: endpoint.enabled tags: - Webhook x-svix-group-name: dispatch endpoint.updated: post: description: Sent when an endpoint is updated. operationId: endpoint.updated requestBody: content: application/json: example: data: appId: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 appUid: unique-app-identifier endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 endpointUid: unique-endpoint-identifier type: endpoint.updated schema: $ref: '#/components/schemas/EndpointUpdatedEvent' responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully summary: endpoint.updated tags: - Webhook x-svix-group-name: dispatch ingest.endpoint.disabled: post: description: Sent when an ingest endpoint has been automatically disabled after continuous failures, or manually via an API call. operationId: ingest.endpoint.disabled requestBody: content: application/json: example: data: endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 endpointUid: unique-endpoint-identifier failSince: '2022-11-06T15:04:05Z' sourceId: src_30HT9jb8WZXKVWIO44ZDr trigger: automatic type: ingest.endpoint.disabled schema: $ref: '#/components/schemas/IngestEndpointDisabledEvent' responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully summary: ingest.endpoint.disabled tags: - Webhook ingest.message.attempt.exhausted: post: description: Sent when a message delivery has failed (all of the retry attempts have been exhausted). operationId: ingest.message.attempt.exhausted requestBody: content: application/json: example: data: endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 lastAttempt: id: atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2 responseStatusCode: 500 timestamp: '2022-11-06T15:04:05Z' msgEventId: unique-msg-identifier msgId: msg_1srOrx2ZWZBpBUvZwXKQmoEYga2 sourceId: src_30HT9jb8WZXKVWIO44ZDr type: ingest.message.attempt.exhausted schema: $ref: '#/components/schemas/IngestMessageAttemptExhaustedEvent' responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully summary: ingest.message.attempt.exhausted tags: - Webhook ingest.message.attempt.failing: post: description: 'Sent after a message has been failing for a few times. It''s sent on the fourth failure. It complements `ingest.message.attempt.exhausted` which is sent after the last failure.' operationId: ingest.message.attempt.failing requestBody: content: application/json: example: data: endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 lastAttempt: id: atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2 responseStatusCode: 500 timestamp: '2022-11-06T15:04:05Z' msgEventId: unique-msg-identifier msgId: msg_1srOrx2ZWZBpBUvZwXKQmoEYga2 sourceId: src_30HT9jb8WZXKVWIO44ZDr type: ingest.message.attempt.failing schema: $ref: '#/components/schemas/IngestMessageAttemptFailingEvent' responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully summary: ingest.message.attempt.failing tags: - Webhook ingest.message.attempt.recovered: post: description: Sent on a successful dispatch after an earlier failure op webhook has already been sent. operationId: ingest.message.attempt.recovered requestBody: content: application/json: example: data: endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 lastAttempt: id: atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2 responseStatusCode: 200 timestamp: '2022-11-06T15:04:05Z' msgEventId: unique-msg-identifier msgId: msg_1srOrx2ZWZBpBUvZwXKQmoEYga2 sourceId: src_30HT9jb8WZXKVWIO44ZDr type: ingest.message.attempt.recovered schema: $ref: '#/components/schemas/IngestMessageAttemptRecoveredEvent' responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully summary: ingest.message.attempt.recovered tags: - Webhook message.attempt.exhausted: post: description: Sent when a message delivery has failed (all of the retry attempts have been exhausted). operationId: message.attempt.exhausted requestBody: content: application/json: example: data: appId: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 appUid: unique-app-identifier endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 lastAttempt: id: atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2 responseStatusCode: 500 timestamp: '2022-11-06T15:04:05Z' msgEventId: unique-msg-identifier msgId: msg_1srOrx2ZWZBpBUvZwXKQmoEYga2 type: message.attempt.exhausted schema: $ref: '#/components/schemas/MessageAttemptExhaustedEvent' responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully summary: message.attempt.exhausted tags: - Webhook x-svix-group-name: dispatch message.attempt.failing: post: description: 'Sent after a message has been failing for a few times. It''s sent on the fourth failure. It complements `message.attempt.exhausted` which is sent after the last failure.' operationId: message.attempt.failing requestBody: content: application/json: example: data: appId: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 appUid: unique-app-identifier endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 lastAttempt: id: atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2 responseStatusCode: 500 timestamp: '2022-11-06T15:04:05Z' msgEventId: unique-msg-identifier msgId: msg_1srOrx2ZWZBpBUvZwXKQmoEYga2 type: message.attempt.failing schema: $ref: '#/components/schemas/MessageAttemptFailingEvent' responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully summary: message.attempt.failing tags: - Webhook x-svix-group-name: dispatch message.attempt.log: post: description: Sent after message attempts are made. Contains metadata about message attempts and their results. In order to reduce the frequency of webhooks, these are sent in batches periodically. operationId: message.attempt.log requestBody: content: application/json: example: data: - appId: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 appUid: unique-app-identifier attemptCount: 1 attemptEnd: '2022-11-06T15:04:07Z' attemptId: atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2 attemptStart: '2022-11-06T15:04:06Z' endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 eventType: user.signup msgCreated: '2022-11-06T15:04:05Z' msgEventId: unique-msg-identifier msgId: msg_1srOrx2ZWZBpBUvZwXKQmoEYga2 orgId: env_1srOrx2ZWZBpBUvZwXKQmoEYga2 responseStatusCode: 200 status: 0 type: message.attempt.log schema: $ref: '#/components/schemas/MessageAttemptLogEvent' responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully summary: message.attempt.log tags: - Webhook x-internal: true x-svix-feature-flags: - attempt_log x-svix-group-name: dispatch message.attempt.recovered: post: description: Sent on a successful dispatch after an earlier failure op webhook has already been sent. operationId: message.attempt.recovered requestBody: content: application/json: example: data: appId: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 appUid: unique-app-identifier endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 lastAttempt: id: atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2 responseStatusCode: 200 timestamp: '2022-11-06T15:04:05Z' msgEventId: unique-msg-identifier msgId: msg_1srOrx2ZWZBpBUvZwXKQmoEYga2 type: message.attempt.recovered schema: $ref: '#/components/schemas/MessageAttemptRecoveredEvent' responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully summary: message.attempt.recovered tags: - Webhook x-svix-group-name: dispatch