AgentPhone Agent Webhooks API
The agent-webhooks API from AgentPhone — 3 operation(s) for agent-webhooks.
The agent-webhooks API from AgentPhone — 3 operation(s) for agent-webhooks.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/agentphone:agentphone-agent-webhooks-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: SMS Agent Webhooks API
description: A simple API to provision phone numbers and receive SMS
version: 0.1.0
tags:
- name: agent-webhooks
paths:
/v1/agents/{agent_id}/webhook:
post:
tags:
- agent-webhooks
summary: Create Or Update Agent Webhook
description: 'Register or update a webhook URL for a specific agent.
When set, this agent''s events are delivered here instead of the account default webhook.'
operationId: create_or_update_agent_webhook_v1_agents__agent_id__webhook_post
security:
- HTTPBearer: []
parameters:
- name: agent_id
in: path
required: true
schema:
type: string
title: Agent Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookCreateRequest'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
get:
tags:
- agent-webhooks
summary: Get Agent Webhook
description: Get the webhook configuration for a specific agent.
operationId: get_agent_webhook_v1_agents__agent_id__webhook_get
security:
- HTTPBearer: []
parameters:
- name: agent_id
in: path
required: true
schema:
type: string
title: Agent Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
anyOf:
- $ref: '#/components/schemas/WebhookResponse'
- type: 'null'
title: Response Get Agent Webhook V1 Agents Agent Id Webhook Get
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
delete:
tags:
- agent-webhooks
summary: Delete Agent Webhook
description: Remove the webhook for a specific agent.
operationId: delete_agent_webhook_v1_agents__agent_id__webhook_delete
security:
- HTTPBearer: []
parameters:
- name: agent_id
in: path
required: true
schema:
type: string
title: Agent Id
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/agents/{agent_id}/webhook/deliveries:
get:
tags:
- agent-webhooks
summary: List Agent Deliveries
description: Get recent webhook delivery attempts for a specific agent's webhook.
operationId: list_agent_deliveries_v1_agents__agent_id__webhook_deliveries_get
security:
- HTTPBearer: []
parameters:
- name: agent_id
in: path
required: true
schema:
type: string
title: Agent Id
- name: limit
in: query
required: false
schema:
type: integer
maximum: 100
default: 50
title: Limit
responses:
'200':
description: Successful Response
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/WebhookDeliveryResponse'
title: Response List Agent Deliveries V1 Agents Agent Id Webhook Deliveries Get
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/agents/{agent_id}/webhook/test:
post:
tags:
- agent-webhooks
summary: Test Agent Webhook
description: 'Send a test webhook to the agent''s webhook endpoint.
Same optional overrides as POST /v1/webhooks/test.'
operationId: test_agent_webhook_v1_agents__agent_id__webhook_test_post
security:
- HTTPBearer: []
parameters:
- name: agent_id
in: path
required: true
schema:
type: string
title: Agent Id
requestBody:
content:
application/json:
schema:
anyOf:
- $ref: '#/components/schemas/TestWebhookRequest'
- type: 'null'
title: Body
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
components:
schemas:
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
type: object
required:
- loc
- msg
- type
title: ValidationError
TestWebhookRequest:
properties:
from:
anyOf:
- type: string
- type: 'null'
title: From
description: Sender number, E.164
to:
anyOf:
- type: string
- type: 'null'
title: To
description: Recipient number, E.164
message:
anyOf:
- type: string
maxLength: 1600
- type: 'null'
title: Message
description: Message text
channel:
anyOf:
- type: string
enum:
- sms
- imessage
- mms
- whatsapp
- rcs
- type: 'null'
title: Channel
description: Channel to report in the payload (default sms)
additionalProperties: false
type: object
title: TestWebhookRequest
description: 'Optional overrides for the synthetic agent.message a test delivery carries.
Everything is optional and defaults to the historical sample values, so a
bare POST behaves exactly as before. Overrides let a handler that routes on
`to` / `from` (one webhook serving many sub-accounts) exercise its real
path without buying a number first. The event only ever goes to the
calling account''s own configured webhook, so `to` is just a string here.'
WebhookResponse:
properties:
id:
type: string
title: Id
url:
type: string
title: Url
secret:
type: string
title: Secret
status:
type: string
title: Status
contextLimit:
type: integer
title: Contextlimit
timeout:
type: integer
title: Timeout
createdAt:
type: string
format: date-time
title: Createdat
type: object
required:
- id
- url
- secret
- status
- contextLimit
- timeout
- createdAt
title: WebhookResponse
WebhookDeliveryResponse:
properties:
id:
type: string
title: Id
messageId:
anyOf:
- type: string
- type: 'null'
title: Messageid
eventType:
anyOf:
- type: string
- type: 'null'
title: Eventtype
channel:
anyOf:
- type: string
- type: 'null'
title: Channel
status:
type: string
title: Status
httpStatus:
anyOf:
- type: integer
- type: 'null'
title: Httpstatus
errorMessage:
anyOf:
- type: string
- type: 'null'
title: Errormessage
responseBody:
anyOf:
- type: string
- type: 'null'
title: Responsebody
attemptCount:
type: integer
title: Attemptcount
lastAttemptAt:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Lastattemptat
nextRetryAt:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Nextretryat
createdAt:
type: string
format: date-time
title: Createdat
type: object
required:
- id
- messageId
- eventType
- channel
- status
- httpStatus
- errorMessage
- responseBody
- attemptCount
- lastAttemptAt
- nextRetryAt
- createdAt
title: WebhookDeliveryResponse
WebhookCreateRequest:
properties:
url:
type: string
maxLength: 2083
minLength: 1
format: uri
title: Url
contextLimit:
anyOf:
- type: integer
- type: 'null'
title: Contextlimit
timeout:
anyOf:
- type: integer
- type: 'null'
title: Timeout
type: object
required:
- url
title: WebhookCreateRequest
securitySchemes:
HTTPBearer:
type: http
scheme: bearer