Webhooks
Subscribe to AI replies, human replies, and human handoff on public API threads.
List webhook endpoints
Lists this agent's public API webhook endpoints, newest first. url and secret are omitted.
Scope: conversation:read · Rate limit: Read (120/min)
/agents/{agent}/webhook-endpointsBearer API key. Create one in your dashboard (Settings → API Keys); the full value is shown only once. Requires the organization owner on a premium or active AppSumo plan.
In: header
Path Parameters
The agent's UUID.
uuidQuery Parameters
Page number.
11 <= valueItems per page.
251 <= value <= 100Response Body
curl -X GET "https://api.assistloop.ai/api/public/v1/agents/497f6eca-6276-4993-bfeb-53cbbbba6f08/webhook-endpoints?page=1&per_page=25"{
"data": [
{
"id": "c3d4e5f6-a7b8-4901-8c2d-3e4f5a607182",
"events": [
"public_api_message_created",
"public_api_human_handoff"
],
"is_active": true,
"created_at": "2026-09-05T10:30:00.000000Z"
}
],
"meta": {
"current_page": 1,
"per_page": 25,
"total": 1,
"last_page": 1,
"request_id": "b7f0b9c2-1a2b-4c3d-8e9f-0a1b2c3d4e5f"
},
"links": {
"first": "https://api.assistloop.ai/api/public/v1/agents/AGENT/webhook-endpoints?page=1",
"last": "https://api.assistloop.ai/api/public/v1/agents/AGENT/webhook-endpoints?page=1",
"prev": null,
"next": null
}
}{
"message": "Unauthenticated."
}{
"error": {
"code": "insufficient_scope",
"message": "Token is missing required scope: source:create",
"details": []
},
"meta": {
"request_id": "b7f0b9c2-1a2b-4c3d-8e9f-0a1b2c3d4e5f"
}
}Create a webhook endpoint
Creates an active HTTPS subscription. The URL must use https:// and must not point at localhost or an internal IP. Allowed events are public_api_message_created and public_api_human_handoff. Store secret immediately — it is returned only on create.
Scope: conversation:edit · Rate limit: Write (60/min)
/agents/{agent}/webhook-endpointsBearer API key. Create one in your dashboard (Settings → API Keys); the full value is shown only once. Requires the organization owner on a premium or active AppSumo plan.
In: header
Path Parameters
The agent's UUID.
uuidHTTPS callback URL.
uriResponse Body
curl -X POST "https://api.assistloop.ai/api/public/v1/agents/497f6eca-6276-4993-bfeb-53cbbbba6f08/webhook-endpoints" \ -H "Content-Type: application/json" \ -d '{ "url": "https://example.com/assistloop-hooks", "events": [ "public_api_message_created", "public_api_human_handoff" ] }'{
"data": {
"id": "c3d4e5f6-a7b8-4901-8c2d-3e4f5a607182",
"url": "https://example.com/assistloop-hooks",
"events": [
"public_api_message_created",
"public_api_human_handoff"
],
"secret": "whsec_your_endpoint_secret",
"is_active": true,
"created_at": "2026-09-05T10:30:00.000000Z"
},
"meta": {
"request_id": "b7f0b9c2-1a2b-4c3d-8e9f-0a1b2c3d4e5f"
}
}{
"message": "Unauthenticated."
}{
"error": {
"code": "insufficient_scope",
"message": "Token is missing required scope: source:create",
"details": []
},
"meta": {
"request_id": "b7f0b9c2-1a2b-4c3d-8e9f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "validation_failed",
"message": "The content field is required.",
"details": [
{
"field": "content",
"message": "The content field is required."
}
]
},
"meta": {
"request_id": "b7f0b9c2-1a2b-4c3d-8e9f-0a1b2c3d4e5f"
}
}Delete a webhook endpoint
Soft-deletes the endpoint. An endpoint that does not belong to this agent returns 404 resource_not_found.
Scope: conversation:edit · Rate limit: Write (60/min)
/agents/{agent}/webhook-endpoints/{endpoint}Bearer API key. Create one in your dashboard (Settings → API Keys); the full value is shown only once. Requires the organization owner on a premium or active AppSumo plan.
In: header
Path Parameters
The agent's UUID.
uuidThe webhook endpoint UUID.
uuidResponse Body
curl -X DELETE "https://api.assistloop.ai/api/public/v1/agents/497f6eca-6276-4993-bfeb-53cbbbba6f08/webhook-endpoints/497f6eca-6276-4993-bfeb-53cbbbba6f08"{
"message": "Unauthenticated."
}{
"error": {
"code": "insufficient_scope",
"message": "Token is missing required scope: source:create",
"details": []
},
"meta": {
"request_id": "b7f0b9c2-1a2b-4c3d-8e9f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "resource_not_found",
"message": "Source not found.",
"details": []
},
"meta": {
"request_id": "b7f0b9c2-1a2b-4c3d-8e9f-0a1b2c3d4e5f"
}
}Conversations
Create visitor threads, send messages, and operate the inbox. Visitor send and action-result only work on conversations created through this API (`origin` is `public_api`). List, get, human reply, mode, close, and delete apply to every conversation on the agent, including widget and email threads.
Sources
Add and manage the training sources that power an agent.