Sarj AI Developer API · AsyncAPI Specification
Sarj Ai Developer Api Webhooks
Version
View Spec
View on GitHub
Voice AIVoice AgentsConversational AIArabic AIOutbound CallsTelephonySpeech-to-TextText-to-SpeechVoice CloningMCPagent-nativeSaudi ArabiaMENAAsyncAPIEvents
AsyncAPI Specification
generated: '2026-08-09'
method: searched
source: https://platform-docs.sarj.ai/webhooks
spec_type: Webhooks
asyncapi_published: false
asyncapi_note: >-
Sarj publishes no AsyncAPI document. Probes for /asyncapi.yaml and /asyncapi.json on every host missed, the docs
sitemap lists no event-catalog page, and the GitHub org holds no spec repo. The event surface below is captured from
the provider's prose webhook documentation — it is a faithful catalog of what they publish, not a fabricated spec.
transport: https
delivery: push
direction: provider-to-consumer
configuration:
where: https://platform.sarj.ai
granularity: one webhook URL per organization
per_event_filtering: false
note: >-
A single URL per organization, configured only in the dashboard. There is no API to register, list, rotate or
delete a webhook endpoint, and no way to subscribe to a subset of event types.
endpoint_requirements:
- Reachable over HTTPS (HTTP works for staging but is not recommended)
- Return 2xx within 10 seconds
- Be idempotent — deduplicate on call_id
envelope:
shape: '{"call_id": "...", "payload": {...}}'
discriminator: payload.type
events:
- type: complete
summary: Call reached the customer and finished.
fires_when: The call reached a terminal completed state.
payload_fields:
- call_started
- call_data.call_id
- call_data.direction
- call_data.phone_number
- call_data.status
- call_data.total_duration
- call_data.enhanced_transcript.transcript.messages
- call_data.enhanced_transcript.errors
- call_data.report
- call_data.recording_url
- call_data.created_at
- call_data.started_at
- call_data.ended_at
- response_body
note: >-
The only variant carrying a body. Includes the full signed recording URL, transcript and report — the same data
getCall returns, pushed the moment it is available.
- type: no_answer
summary: Rang, no pickup.
payload_fields: [type]
- type: user_rejected
summary: Customer hung up or rejected the call.
payload_fields: [type]
- type: user_unavailable
summary: Carrier returned unavailable (phone off, out of coverage).
payload_fields: [type]
- type: automation
summary: Hit an IVR, voicemail or other non-human answer.
payload_fields: [type]
- type: failed
summary: Telephony failure with no SIP-level reason.
payload_fields: [type]
retries:
attempts: 3
backoff: fixed
delay_seconds: 2
per_attempt_timeout_seconds: 10
triggers: [network error, timeout, non-2xx response]
after_exhaustion: >-
Delivery is marked failed and the per-call webhook state is recorded server-side. The data remains durable and
re-fetchable via getCall.
security:
signature_verification: false
signature_note: >-
HMAC webhook signature verification is documented as "not yet shipped". The provider's own guidance is to lock the
endpoint down by IP allow-listing (source range from support) or by adding a hard-to-guess secret path component
to the URL.
gap: >-
This is the most significant security gap on the event surface. Without signatures a receiver cannot verify that a
completed-call payload — which carries a transcript, a signed recording URL and the outcome report — actually came
from Sarj. Obscurity of the URL path is the only control offered.
testing:
dashboard_button: 'Send test webhook'
behavior: Fires a synthetic `complete` payload at the configured URL.
then: Place a real test call to verify end-to-end.
findings:
- id: no-asyncapi
detail: >-
The event surface is real, well-documented and typed by a payload.type discriminator — it is a good candidate
for an AsyncAPI 3.x document. Publishing one would make the six event variants machine-readable alongside the
OpenAPI.
- id: no-webhook-management-api
detail: Endpoints are dashboard-only, so webhook configuration cannot be automated or managed as code.
x-evidence:
- url: https://platform-docs.sarj.ai/webhooks
http_status: 200
- url: https://platform-docs.sarj.ai/sitemap.xml
http_status: 200
note: Ten pages total; no event-catalog or AsyncAPI page.
Work with this as data
Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for asyncapi
4 MCP tools reach this
find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.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.
Call it yourself
curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/sarj-ai-developer-api-webhooks"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.