API Reference

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)

GET/agents/{agent}/webhook-endpoints
AuthorizationBearer <token>

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

agentstring

The agent's UUID.

Formatuuid

Query Parameters

page?integer

Page number.

Default1
Range1 <= value
per_page?integer

Items per page.

Default25
Range1 <= value <= 100

Response 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)

POST/agents/{agent}/webhook-endpoints
AuthorizationBearer <token>

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

agentstring

The agent's UUID.

Formatuuid
urlstring

HTTPS callback URL.

Formaturi
eventsarray<string>

Response 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)

DELETE/agents/{agent}/webhook-endpoints/{endpoint}
AuthorizationBearer <token>

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

agentstring

The agent's UUID.

Formatuuid
endpointstring

The webhook endpoint UUID.

Formatuuid

Response Body

curl -X DELETE "https://api.assistloop.ai/api/public/v1/agents/497f6eca-6276-4993-bfeb-53cbbbba6f08/webhook-endpoints/497f6eca-6276-4993-bfeb-53cbbbba6f08"
Empty
{
  "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"
  }
}