---
updatedAt: 2025-02-19T23:45:01.000Z
agentTools:
  projectIndex: https://documentation.safecube.ai/llms.txt
---

# Patch Endpoint

Partially update an endpoint.

# OpenAPI definition

```json
{
  "openapi": "3.0.0",
  "info": {
    "title": "Webhook api",
    "version": "1.2.1",
    "description": "Welcome to the documentation of Webhook API\n<h1>Compatibility guidelines</h1> <p>The HTTP API is versioned with a single number, which is currently 1</p> <p>This number symbolizes the major version number. New features can be added to the API in the same version number if there is no breaking change.</p> <p>The version number is present in the url, for instance <strong>/webhook/api/v1</strong> for the current version. <p>Please notice that all \"/shipment\" endpoints are deprecated. Therefore it is recommended to use the \"/easy-shipment\" endpoints.</p>\n<h1>Documentation, Pricing and Key generation</h1> <p>You can find the complete documentation for our API at <a href='https://developers.sinay.ai/'>Developers Platform</a>.</p> <p>Create an account to receive your FREE key in under a minute!</p> <p>Additionally, explore our pricing plans, access support, view detailed documentation, and follow our comprehensive tutorials.</p>\n<h1>Authentication</h1> <p>Every endpoints of this API require authentication using an API key.</p> <p>If you don't have an API Key and you need to use the Ports and Vessels  API, you need to ask Sinay to have one.</p> <p>To use the API Key, you must add a header named <strong>API_KEY</strong> with your API Key as a value.</p> <h1>Test the API with Swagger-ui</h1> <p>To test the API using Swagger-ui, you must click on the button <strong>Authorize</strong> and then fill the <strong>apiKey</strong> field and click on <strong>Authorize</strong>.</p> <p>Swagger-ui will then use the api key automatically in each request.</p> <p>On every endpoints, you can click on <strong>Try it out</strong>, you can modify the body and then click on <strong>Execute</strong></p> <p>You will be able to see the response.</p>\n<h1>Release note</h1> <h2>1.2.0</h2> <ul> <li>POST /easy-shipment-asynchronous</li> </ul> <h2>1.1.0</h2> <ul> <li>Easy-shipment endpoints</li> </ul> <h2>1.0.0</h2> <ul> <li>Manage webhook</li> </ul>"
  },
  "servers": [
    {
      "url": "https://api.sinay.ai/webhook/api/v1"
    }
  ],
  "security": [
    {
      "ApiKey": []
    }
  ],
  "tags": [
    {
      "name": "Endpoint",
      "description": "Endpoints are the URLs messages will be sent to. Endpoints must be configured with filters to setup which events you wish to track with them."
    }
  ],
  "paths": {
    "/endpoint/{endpoint_id}": {
      "patch": {
        "tags": [
          "Endpoint"
        ],
        "summary": "Patch Endpoint",
        "description": "Partially update an endpoint.",
        "operationId": "v1.endpoint.patch",
        "parameters": [
          {
            "in": "path",
            "name": "endpoint_id",
            "description": "The ep's ID or UID To retrieve your endpoints ids, use GET /endpoint.",
            "required": true,
            "schema": {
              "description": "The ep's ID or UID",
              "type": "string",
              "maxLength": 256,
              "minLength": 1,
              "pattern": "^[a-zA-Z0-9\\-_.]+$",
              "example": "unique-ep-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"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            }
          },
          "404": {
            "description": "Not Found. The endpoint has not been found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            }
          },
          "409": {
            "description": "Conflict. The endpoint id is already used.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error. The payload does not have the necessary information or format.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "HttpErrorOut": {
        "title": "HttpError",
        "type": "object",
        "required": [
          "code",
          "detail"
        ],
        "properties": {
          "code": {
            "type": "string"
          },
          "detail": {
            "type": "string"
          }
        }
      },
      "HTTPValidationError": {
        "type": "object",
        "required": [
          "detail"
        ],
        "properties": {
          "detail": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ValidationError"
            }
          }
        }
      },
      "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"
          }
        }
      },
      "EndpointOut": {
        "type": "object",
        "required": [
          "createdAt",
          "description",
          "id",
          "metadata",
          "updatedAt",
          "url",
          "version"
        ],
        "properties": {
          "id": {
            "description": "The ep's ID",
            "type": "string",
            "example": "ep_1srOrx2ZWZBpBUvZwXKQmoEYga2"
          },
          "metadata": {
            "description": "Optional additional properties for your endpoint.",
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "description": {
            "description": "An example endpoint name",
            "type": "string"
          },
          "rateLimit": {
            "description": "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.",
            "type": "integer",
            "format": "uint16",
            "minimum": 0,
            "nullable": true
          },
          "uid": {
            "description": "Optional unique identifier for the endpoint",
            "type": "string",
            "maxLength": 256,
            "minLength": 1,
            "pattern": "^[a-zA-Z0-9\\-_.]+$",
            "example": "unique-ep-identifier",
            "nullable": true
          },
          "url": {
            "description": "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/",
            "type": "string",
            "format": "uri",
            "example": "https://example.com/webhook/"
          },
          "version": {
            "deprecated": true,
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "example": 1
          },
          "disabled": {
            "description": "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.",
            "default": false,
            "type": "boolean",
            "example": false
          },
          "filterTypes": {
            "type": "array",
            "items": {
              "description": "List of webhooks you wish to receive. Complete and up-to-date list of supported webhooks is available https://www.svix.com/event-types/eu/org_2VwHMERd77Ne7QX11CHCWBUSb1u/",
              "type": "string",
              "maxLength": 256,
              "pattern": "^[a-zA-Z0-9\\-_.]+$",
              "example": "shipment.added.to.endpoint"
            },
            "minItems": 1,
            "uniqueItems": true,
            "nullable": true,
            "example": [
              "shipment.added.to.endpoint",
              "container.new.event.detected"
            ]
          },
          "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,
            "nullable": true,
            "example": [
              "project_123",
              "group_2"
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "example": "2024-01-12T14:43:13.993727Z"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "example": "2024-01-12T14:43:13.993727Z"
          }
        }
      },
      "EndpointPatch": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string"
          },
          "rateLimit": {
            "description": "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.",
            "type": "integer",
            "format": "uint16",
            "minimum": 0,
            "nullable": true
          },
          "uid": {
            "description": "The ep's UID",
            "type": "string",
            "maxLength": 256,
            "minLength": 1,
            "pattern": "^[a-zA-Z0-9\\-_.]+$",
            "example": "unique-ep-identifier",
            "nullable": true
          },
          "url": {
            "description": "Public url in your services where you plan to receive our webhooks.",
            "type": "string",
            "format": "uri",
            "example": "https://example.com/webhook/"
          },
          "version": {
            "deprecated": true,
            "type": "integer",
            "format": "uint16",
            "minimum": 1,
            "example": 1
          },
          "disabled": {
            "description": "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.",
            "type": "boolean"
          },
          "filterTypes": {
            "type": "array",
            "items": {
              "description": "List of webhooks you wish to receive. Complete and up-to-date list of supported webhooks is available https://www.svix.com/event-types/eu/org_2VwHMERd77Ne7QX11CHCWBUSb1u/",
              "type": "string",
              "maxLength": 256,
              "pattern": "^[a-zA-Z0-9\\-_.]+$",
              "example": "shipment.added.to.endpoint"
            },
            "minItems": 1,
            "uniqueItems": true,
            "nullable": true,
            "example": [
              "shipment.added.to.endpoint",
              "container.new.event.detected"
            ]
          },
          "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"
            },
            "uniqueItems": true,
            "nullable": true
          },
          "secret": {
            "description": "The endpoint's verification secret. If `null` is passed, a secret is automatically generated.  Format: `base64` encoded random bytes optionally prefixed with `whsec_`. Recommended size: 24.",
            "type": "string",
            "pattern": "^(whsec_)?[a-zA-Z0-9+/=]{32,100}$",
            "example": "whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD",
            "nullable": true
          },
          "metadata": {
            "description": "Optional additional properties for your endpoint.",
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          }
        }
      }
    },
    "securitySchemes": {
      "ApiKey": {
        "type": "apiKey",
        "in": "header",
        "name": "API_KEY"
      }
    }
  }
}
```