Create a webhook endpoint
curl --request POST \
--url https://api.ando.so/v1/webhook-endpoints \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"url": "https://example.com/ando/webhooks",
"enabled_events": [
"webhook.test",
"message.created",
"message.updated",
"conversation.membership.created",
"conversation.archived",
"conversation.unarchived",
"call.started",
"call.ended",
"call.updated",
"call.transcript.updated"
]
}
'const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
url: 'https://example.com/ando/webhooks',
enabled_events: [
'webhook.test',
'message.created',
'message.updated',
'conversation.membership.created',
'conversation.archived',
'conversation.unarchived',
'call.started',
'call.ended',
'call.updated',
'call.transcript.updated'
]
})
};
fetch('https://api.ando.so/v1/webhook-endpoints', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.ando.so/v1/webhook-endpoints"
payload = {
"url": "https://example.com/ando/webhooks",
"enabled_events": ["webhook.test", "message.created", "message.updated", "conversation.membership.created", "conversation.archived", "conversation.unarchived", "call.started", "call.ended", "call.updated", "call.transcript.updated"]
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"data": {
"object": "webhook_endpoint",
"id": "wep_01jzn7e61x3a7v9h2r7t2m3q4p",
"workspace_id": "workspace_01jzn7e61x3a7v9h2r7t2m3q4p",
"name": "Production receiver",
"url": "https://example.com/ando/webhooks",
"enabled_events": [
"webhook.test",
"message.created",
"message.updated",
"conversation.membership.created",
"conversation.archived",
"conversation.unarchived",
"call.started",
"call.ended",
"call.updated",
"call.transcript.updated"
],
"delivery_scope": {
"type": "workspace_member",
"actor_workspace_membership_id": "wsm_01jzn7e61x3a7v9h2r7t2m3q4p",
"direct_message_delivery_enabled": false
},
"status": "active",
"signing_secret_prefix": "example",
"previous_signing_secret_expires_at": null,
"disabled_at": null,
"created_at": "2026-05-27T08:00:00.000Z",
"updated_at": "2026-05-27T08:00:00.000Z",
"signing_secret": "example"
}
}{
"error": "<string>",
"error_code": "<string>",
"missing_scopes": [
"<string>"
]
}{
"error": "<string>",
"error_code": "<string>",
"missing_scopes": [
"<string>"
]
}{
"error": "<string>",
"error_code": "<string>",
"missing_scopes": [
"<string>"
]
}{
"error": "<string>",
"error_code": "<string>",
"missing_scopes": [
"<string>"
]
}{
"error": "<string>",
"error_code": "<string>",
"missing_scopes": [
"<string>"
]
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": "<string>",
"error_code": "<string>",
"missing_scopes": [
"<string>"
]
}Create a webhook endpoint
Creates a workspace webhook endpoint and returns its signing secret exactly once.
POST
https://api.ando.so/v1
/
webhook-endpoints
Create a webhook endpoint
curl --request POST \
--url https://api.ando.so/v1/webhook-endpoints \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"url": "https://example.com/ando/webhooks",
"enabled_events": [
"webhook.test",
"message.created",
"message.updated",
"conversation.membership.created",
"conversation.archived",
"conversation.unarchived",
"call.started",
"call.ended",
"call.updated",
"call.transcript.updated"
]
}
'const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
url: 'https://example.com/ando/webhooks',
enabled_events: [
'webhook.test',
'message.created',
'message.updated',
'conversation.membership.created',
'conversation.archived',
'conversation.unarchived',
'call.started',
'call.ended',
'call.updated',
'call.transcript.updated'
]
})
};
fetch('https://api.ando.so/v1/webhook-endpoints', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.ando.so/v1/webhook-endpoints"
payload = {
"url": "https://example.com/ando/webhooks",
"enabled_events": ["webhook.test", "message.created", "message.updated", "conversation.membership.created", "conversation.archived", "conversation.unarchived", "call.started", "call.ended", "call.updated", "call.transcript.updated"]
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"data": {
"object": "webhook_endpoint",
"id": "wep_01jzn7e61x3a7v9h2r7t2m3q4p",
"workspace_id": "workspace_01jzn7e61x3a7v9h2r7t2m3q4p",
"name": "Production receiver",
"url": "https://example.com/ando/webhooks",
"enabled_events": [
"webhook.test",
"message.created",
"message.updated",
"conversation.membership.created",
"conversation.archived",
"conversation.unarchived",
"call.started",
"call.ended",
"call.updated",
"call.transcript.updated"
],
"delivery_scope": {
"type": "workspace_member",
"actor_workspace_membership_id": "wsm_01jzn7e61x3a7v9h2r7t2m3q4p",
"direct_message_delivery_enabled": false
},
"status": "active",
"signing_secret_prefix": "example",
"previous_signing_secret_expires_at": null,
"disabled_at": null,
"created_at": "2026-05-27T08:00:00.000Z",
"updated_at": "2026-05-27T08:00:00.000Z",
"signing_secret": "example"
}
}{
"error": "<string>",
"error_code": "<string>",
"missing_scopes": [
"<string>"
]
}{
"error": "<string>",
"error_code": "<string>",
"missing_scopes": [
"<string>"
]
}{
"error": "<string>",
"error_code": "<string>",
"missing_scopes": [
"<string>"
]
}{
"error": "<string>",
"error_code": "<string>",
"missing_scopes": [
"<string>"
]
}{
"error": "<string>",
"error_code": "<string>",
"missing_scopes": [
"<string>"
]
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": "<string>",
"error_code": "<string>",
"missing_scopes": [
"<string>"
]
}Authorizations
AndoApiKeyBearerApiKey
Workspace API key. Current accepted keys use the ando_sk_ prefix.
Body
application/json
Webhook endpoint creation request.
Product event types to deliver to this endpoint.
Webhook event type.
Available options:
message.created, message.updated, conversation.membership.created, conversation.archived, conversation.unarchived, call.started, call.ended, call.updated, call.transcript.updated, webhook.test HTTPS receiver URL.
Webhook endpoint delivery-scope update.
Show child attributes
Show child attributes
Optional endpoint label.
Response
Created webhook endpoint.
Webhook endpoint response with one-time plaintext secret.
Webhook endpoint response with one-time plaintext secret.
Show child attributes
Show child attributes
⌘I