使用我们的 RESTful API 构建运营商级通信工作流程。基于 HTTPS 的 JSON、不记名令牌身份验证和实时 Webhooks。
curl -X POST https://api.ajoxi.com/v1/calls \
-H "Authorization: Bearer AJX_LIVE_..." \
-H "Content-Type: application/json" \
-d '{ "to": "+14155551234", "from": "+14155550100", "ai_receptionist": true }'{
"id": "call_8f2a1b3c",
"status": "ringing",
"ai_handler": "receptionist_v2"
}所有请求都使用 Bearer 令牌进行身份验证 Authorization 标头。从 Ajoxi 控制台的 API 选项卡生成密钥 — 使用 AJX_LIVE_… 用于生产流量和 AJX_TEST_… 对于沙箱。
curl https://api.ajoxi.com/v1/calls \
-H "Authorization: Bearer AJX_LIVE_XXXXX"发出、列出、转接和检索语音呼叫。
/v1/calls使用光标分页和日期过滤器列出所有呼叫。
/v1/calls发起新的出站呼叫或触发拨号器活动。
/v1/calls/{id}通过 ID 检索具有完整元数据的单个呼叫。
/v1/calls/{id}/transfer将当前呼叫转接到另一个座席或分机。
搜索、提供、移植和释放电话号码。
/v1/numbers搜索可用的本地、免费或国际号码。
/v1/numbers在您的帐户中配置一个新号码。
/v1/numbers/{id}更新号码的路由、呼叫者 ID 或 SMS 配置。
/v1/numbers/{id}将一个号码释放回池中。不可逆转。
发送和接收短信、彩信和对话历史记录。
/v1/messages列出消息,按方向、渠道或对话进行过滤。
/v1/messages发送短信或彩信。支持媒体附件和模板。
访问通话录音、文字记录和人工智能生成的见解。
/v1/recordings列出带有可选日期和代理过滤器的通话录音。
/v1/recordings/{id}检索带有文字记录和 AI 摘要的单个录音。
/v1/transcripts/{id}检索通话或录音的完整文字记录。
订阅实时平台事件。
/v1/webhooks列出配置的 Webhook 订阅。
/v1/webhooks订阅一个或多个事件(call.start、message.received)。
/v1/webhooks/{id}删除 Webhook 订阅。
每个错误响应都会返回 JSON 并带有 error.code 和 error.message。 HTTP 状态代码与类别匹配。
标准帐户每个 API 密钥每秒的请求上限为 100 个。企业计划没有固定上限——我们会根据您的流量进行扩展。每个响应都包含三个速率限制标头:
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 87
X-RateLimit-Reset: 1715800000当超出限制时,您会收到 429 响应,其中包含 Retry-After 标题以秒为单位。 SDK 客户端自动对这些标头实施指数退避。
默认情况下,列表端点每页最多返回 50 个项目(可通过以下方式配置最多 200 个) ?limit=200)。每个响应包括一个 next_cursor — 将其传回为 ?cursor=… 检索下一页。什么时候 next_cursor 为 null,您已到达终点。
{
"data": [ ... ],
"next_cursor": "Y3Vyc29yX2FmMmI...",
"has_more": true
}通过签名的 HTTPS POST 订阅平台事件。每个 Webhook 请求都包含一个 X-Ajoxi-Signature header — 使用您的 webhook 密钥通过原始请求正文验证其是否为 HMAC-SHA256。
call.started当入站或出站呼叫开始响铃时触发。call.answered当人类或人工智能接待员接听电话时触发。call.completed通话结束时触发。有效负载包括持续时间、记录 URL 和最终处置。message.received当入站 SMS 或 MMS 到达配置的号码时触发。message.delivered当出站消息被运营商确认已送达时触发。recording.ready当通话录音已处理并可供下载时触发。transcript.ready当录音的 AI 转录完成处理时触发。失败的交付会在长达 24 小时内以指数退避重试。最后一次尝试后,事件将移至死信队列,您可以从控制台重播。
目前的稳定版本是 v1。重大变更以新前缀发布(/v2/等)——永远不会在现有版本中。已弃用的版本在后续版本发布后至少仍可使用 18 个月,并在日落前有 6 个月的电子邮件警告。
第一方 SDK 适用于 Node.js、Python、Go 和 Ruby。每个都带有类型化的客户端、重试逻辑和 verifyWebhook() 帮手。
所有请求都使用承载令牌身份验证。在 Ajoxi 控制台中生成 API 密钥,然后在每个请求上将其作为“授权:承载 AJX_LIVE_XXXXX”传递。对沙箱流量使用单独的“AJX_TEST_...”密钥 - 测试环境是隔离的,从不发出真正的调用。
是的。使用测试模式按键发出的呼叫将通过我们的模拟器而不是实时运营商网络进行路由——非常适合 CI 管道和负载测试。测试模式请求不会根据您的分钟限额计费,也不会拨打真正的电话。
标准计划每秒 100 个请求,企业无限制。每个响应都包含“X-RateLimit-Limit”、“X-RateLimit-Remaining”和“X-RateLimit-Reset”标头,以便您可以准确调整流量。当您超出限制时,您会收到带有“Retry-After”值的 429。
每个 Webhook 请求都包含一个“X-Ajoxi-Signature”标头。使用 Webhook 密钥在原始请求正文上计算 HMAC-SHA256,然后恒定时间比较两个值。 SDK 客户端(Node、Python、Go、Ruby)附带了一个“verifyWebhook()”帮助程序,可以为您处理此问题。
我们永远不会破坏稳定的 API 版本。重大更改在新版本路径下发布(例如“/v2/”)。已弃用的版本在后续版本发布后至少会保留 18 个月,并且您在日落之前至少会收到 6 个月的电子邮件警告。
目前还没有。该 API 是 REST + JSON,具有可选的服务器发送事件,用于流端点(例如实时转录)。如果 GraphQL 可以为您解除特定工作流程的阻碍,请通过您的客户团队提出请求 - 我们会跟踪需求并相应地确定优先级。
启动沙盒密钥,安装 SDK,并在午餐前拨打您的第一个可编程电话。