For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
SupportDashboard
GuidesAPI Reference
GuidesAPI Reference
  • Endpoints
      • GETTab counts for the loads list
      • GETGet calls for a load
      • GETGet failed carrier verifications for a load
      • GETGet active escalations for a load
      • GETList webhook endpoints
      • POSTRegister a webhook endpoint
      • GETGet a webhook endpoint
      • DELDelete a webhook endpoint
      • PATCHUpdate a webhook endpoint
      • POSTRotate the signing secret
      • GETList delivery attempts for an endpoint
      • GETList attempts for a logical message
      • POSTReplay a delivery
      • GETList subscribable event types
LogoLogo
SupportDashboard
EndpointsAPI

Register a webhook endpoint

POST
/webhooks/endpoints
POST
/api/v1/webhooks/endpoints
$curl -X POST https://tryenvoy.ai/api/v1/webhooks/endpoints \
> -H "Authorization: Bearer <token>" \
> -H "Content-Type: application/json" \
> -d '{
> "url": "https://webhooks.example.com/events",
> "event_types": [
> "shipment.created",
> "shipment.updated"
> ]
>}'
1{
2 "id": "ep_3f9a1c2b-4d7e-4f8a-9b2d-1a2b3c4d5e6f",
3 "organization_id": "org_7e8f9a0b-1c2d-3e4f-5a6b-7c8d9e0f1a2b",
4 "url": "https://webhooks.example.com/events",
5 "description": "Webhook endpoint for shipment event notifications",
6 "event_types": [
7 "shipment.created",
8 "shipment.updated"
9 ],
10 "headers": {},
11 "status": "ACTIVE",
12 "disabled_reason": "",
13 "created_at": "2024-01-15T09:30:00Z",
14 "updated_at": "2024-01-15T09:30:00Z",
15 "signing_secret": "whsec_a1b2c3d4e5f6g7h8i9j0"
16}

Create a webhook endpoint and receive its signing secret. The secret is returned exactly once in this response — store it immediately; it cannot be retrieved later.

Authentication: Supports API key and bearer token authentication.

Was this page helpful?
Previous

Get a webhook endpoint

Next
Built with

Authentication

AuthorizationBearer

Bearer authentication of the form Bearer <token>, where token is your auth token.

Headers

X-Organization-IDstring or nullOptional

Request

This endpoint expects an object.
urlstringRequiredformat: "uri"1-2083 characters
HTTPS URL we will POST events to
event_typeslist of stringsRequired

Allowlist of event type names (e.g. [‘elp_test.scored’]). Must contain at least one entry.

descriptionstring or nullOptional<=500 characters
headersmap from strings to strings or nullOptional
Optional static headers we will include on every request to this endpoint.

Response

Successful Response
idstringformat: "^ep_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
organization_idstringformat: "^org_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
urlstring
descriptionstring or null
event_typeslist of strings
headersmap from strings to strings or null
statusenum

Endpoint lifecycle state.

DISABLED is reserved for automatic disable by the auto-disable job; PAUSED is explicitly paused and indicates intent to resume.

Allowed values:
disabled_reasonstring or null
created_atdatetime
updated_atdatetime
signing_secretstring

whsec_<base64> — store this; it is not retrievable later.

Errors

401
Unauthorized Error
403
Forbidden Error
422
Unprocessable Entity Error
429
Too Many Requests Error