API ReferenceWebhook Endpoints

Create webhook endpointv3.0

Markdown
POST
/api/v3/webhook_endpoints

Creates a shared webhook endpoint for a toolkit + OAuth app + project. Returns the webhook URL that the customer registers in their app dashboard. Idempotent — returns existing endpoint if one already exists for this toolkit + client_id + project.

x-api-key<token>

Project API key authentication

In: header

Request Body

application/json

toolkit_slugstringRequired

Toolkit identifier (e.g., slack, discord)

client_idstringRequired

OAuth app client ID — identifies which app this endpoint is for

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://backend.composio.dev/api/v3/webhook_endpoints" \  -H "Content-Type: application/json" \  -d '{    "toolkit_slug": "string",    "client_id": "string"  }'
{
  "id": "string",
  "toolkit_slug": "string",
  "client_id": "string",
  "webhook_url": "string",
  "data": {
    "property1": "string",
    "property2": "string"
  },
  "created_at": "string"
}
{
  "id": "string",
  "toolkit_slug": "string",
  "client_id": "string",
  "webhook_url": "string",
  "data": {
    "property1": "string",
    "property2": "string"
  },
  "created_at": "string"
}
{
  "error": {
    "message": "string",
    "code": 0,
    "slug": "string",
    "status": 0,
    "request_id": "string",
    "suggested_fix": "string",
    "errors": [
      "string"
    ]
  }
}
{
  "error": {
    "message": "string",
    "code": 0,
    "slug": "string",
    "status": 0,
    "request_id": "string",
    "suggested_fix": "string",
    "errors": [
      "string"
    ]
  }
}
{
  "error": {
    "message": "string",
    "code": 0,
    "slug": "string",
    "status": 0,
    "request_id": "string",
    "suggested_fix": "string",
    "errors": [
      "string"
    ]
  }
}
{
  "error": {
    "message": "string",
    "code": 0,
    "slug": "string",
    "status": 0,
    "request_id": "string",
    "suggested_fix": "string",
    "errors": [
      "string"
    ]
  }
}