Skip to main content
POST
/
v2
/
workspace
/
advancedwebhook
/
endpoints
/
create
Create Advanced Webhook Endpoint
curl --request POST \
  --url https://api.velt.dev/v2/workspace/advancedwebhook/endpoints/create \
  --header 'Content-Type: application/json' \
  --header 'x-velt-api-key: <x-velt-api-key>' \
  --header 'x-velt-auth-token: <x-velt-auth-token>' \
  --data '
{
  "data": {
    "url": "<string>",
    "description": "<string>",
    "filterTypes": [
      "<string>"
    ],
    "channels": [
      "<string>"
    ],
    "disabled": true,
    "rateLimit": 123,
    "uid": "<string>",
    "metadata": {}
  }
}
'
{
  "result": {
    "status": "success",
    "message": "Advanced webhook endpoint created successfully.",
    "data": {
      "id": "ep_2vK9mPzGqLxYwBnRtCdHsJfAeUo",
      "url": "https://example.com/webhooks/velt",
      "description": "Primary endpoint",
      "filterTypes": ["comment.add", "comment.update"],
      "channels": null,
      "disabled": false,
      "rateLimit": null,
      "uid": null,
      "createdAt": "2026-06-01T10:15:30.000Z",
      "updatedAt": "2026-06-01T10:15:30.000Z"
    }
  }
}
Use this API to create a new webhook delivery endpoint for a workspace.
This endpoint uses API-key-level auth: pass x-velt-api-key and x-velt-auth-token as headers. You can obtain these from the Get Auth Tokens endpoint.
Advanced webhooks must be enabled for the workspace first via Update Advanced Webhook Config with { "isEnabled": true }. Otherwise this endpoint returns a FAILED_PRECONDITION error.
Signing secret. The endpoint’s signing secret is always generated server-side — it is never accepted from the request. Retrieve it after creation via Get Advanced Webhook Endpoint Secret and use it to verify webhook payload signatures.

Endpoint

POST https://api.velt.dev/v2/workspace/advancedwebhook/endpoints/create

Headers

x-velt-api-key
string
required
Your API key.
x-velt-auth-token
string
required

Body

Params

data
object
required

Example Request

{
  "data": {
    "url": "https://example.com/webhooks/velt",
    "description": "Primary endpoint",
    "filterTypes": ["comment.add", "comment.update"]
  }
}

Example Response

Success Response

{
  "result": {
    "status": "success",
    "message": "Advanced webhook endpoint created successfully.",
    "data": {
      "id": "ep_2vK9mPzGqLxYwBnRtCdHsJfAeUo",
      "url": "https://example.com/webhooks/velt",
      "description": "Primary endpoint",
      "filterTypes": ["comment.add", "comment.update"],
      "channels": null,
      "disabled": false,
      "rateLimit": null,
      "uid": null,
      "createdAt": "2026-06-01T10:15:30.000Z",
      "updatedAt": "2026-06-01T10:15:30.000Z"
    }
  }
}

Failure Response

{
  "error": {
    "status": "INVALID_ARGUMENT",
    "message": "url must be a valid http(s) URL."
  }
}

Failure Response (advanced webhooks disabled)

{
  "error": {
    "status": "FAILED_PRECONDITION",
    "message": "Advanced webhooks are disabled for this workspace. Enable them via POST /v2/workspace/advancedwebhookconfig/update with { \"isEnabled\": true }."
  }
}
{
  "result": {
    "status": "success",
    "message": "Advanced webhook endpoint created successfully.",
    "data": {
      "id": "ep_2vK9mPzGqLxYwBnRtCdHsJfAeUo",
      "url": "https://example.com/webhooks/velt",
      "description": "Primary endpoint",
      "filterTypes": ["comment.add", "comment.update"],
      "channels": null,
      "disabled": false,
      "rateLimit": null,
      "uid": null,
      "createdAt": "2026-06-01T10:15:30.000Z",
      "updatedAt": "2026-06-01T10:15:30.000Z"
    }
  }
}