---
title: "Create Endpoint"
method: POST
path: "/endpoint"
tags: ["Endpoint"]
---

# Create Endpoint

`POST /endpoint`

Create a new endpoint for the application.
Specify the url you wish to receive webhooks and the events you wish to track.
When `secret` is `null` the secret is automatically generated (recommended)

## Headers

- `idempotency-key` string

## Request body

- EndpointIn
  - `description` string — Description of your endpoint
  - `rateLimit` integer, nullable — Rate limit of your endpoint in messages per second. This is an advanced field. Be aware that setting a low rateLimit can lead to a congestion queue and create delay in webhooks.
  - `uid` string, nullable — Optional unique identifier for the endpoint
  - `url` string, uri, required — Public url in your services where you plan to receive our messages. If you don't have a public url ready yet, you can use Svix play to test our webhooks https://www.svix.com/play/
  - `disabled` boolean — When disabled is true, no messages will be sent to your endpoint. This can be used to deactivate a development or a testing endpoint when not in use.
  - `filterTypes` string[], nullable
  - `channels` string[], nullable — List of message channels this endpoint listens to (omit for all) This is an advanced field.
  - `secret` string, nullable — The endpoint's verification secret. If `null` is passed (recommanded), a secret is automatically generated. Format: `base64` encoded random bytes optionally prefixed with `whsec_`. Recommended size: 24.
  - `metadata` object — Optional additional properties for your endpoint.

## Response `201`

- EndpointOut
  - `id` string, required — The ep's ID
  - `metadata` object, required — Optional additional properties for your endpoint.
  - `description` string, required — An example endpoint name
  - `rateLimit` integer, nullable — Rate limit of your endpoint in messages per second. This is an advanced field. Be aware that setting a low rateLimit can lead to a congestion queue and create delay in webhooks.
  - `uid` string, nullable — Optional unique identifier for the endpoint
  - `url` string, uri, required — Public url in your services where you plan to receive our webhooks. If you don't have a public url ready yet, you can use Svix play to test our webhooks https://www.svix.com/play/
  - `version` integer, required
  - `disabled` boolean — When disabled is true, no messages will be sent to your endpoint. This can be used to deactivate a development or a testing endpoint when not in use.
  - `filterTypes` string[], nullable
  - `channels` string[], nullable — List of message channels this endpoint listens to (omit for all)
  - `createdAt` string, date-time, required
  - `updatedAt` string, date-time, required

## Other responses

- `400` — Bad request
- `403` — Forbidden
- `404` — Not Found. No application found.
- `409` — Conflict. An endpoint with the same id already exists.
- `422` — Validation Error. The payload does not have the necessary information or format.
- `429` — Too Many Requests
- `500` — Internal Error

---

[API](https://skmtc.net/safecube/apis/api-container-tracking.md) · [All operations](https://skmtc.net/safecube/apis/api-container-tracking/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/safecube/api-container-tracking/versions/e74a670ab7a5/schema)
