OpenAPI
完整 API 参考以 OpenAPI 3.1 规范提供,可导入 Postman、Insomnia 或 Swagger UI。
Docs
API 是 VoxBridge 的能力真源。REST、MCP、Skill 与 CLI 共用 Project、Agent、Task、Event、Result 和 Usage 语义。
完整 API 参考以 OpenAPI 3.1 规范提供,可导入 Postman、Insomnia 或 Swagger UI。
calls:write、calls:read 的 API Key,密钥只显示一次。curl https://api.voxbridge.cn/v1/calls \
-H "Authorization: Bearer $VOXBRIDGE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: first-call-001" \
-d '{
"agent_id": "agent_xxx",
"from": "已配置主叫号码",
"customer": {"number": "注册手机号", "name": "本人"}
}'
curl https://api.voxbridge.cn/v1/tasks/task_xxx \
-H "Authorization: Bearer $VOXBRIDGE_API_KEY"
auth_required 请先登录或运行 voxbridge auth login;trial_restricted 表示试用被叫不是已验证本人号码;payment_required 表示权益不足,新任务已被阻止,在途电话不会被中断。
POST /v1/callscreate_call · watch_task_eventsvoxbridge calls createskills/voxbridge无论从哪一层发起,状态、错误码、事件、结果和用量都以 API 返回为准。硬件 Agent 默认使用 REST API,受限设备可通过边缘网关接入。
公开注册通过阿里云短信验证手机号并创建个人项目;团队成员仍由 owner 或 admin 使用一次性邀请加入。邀请令牌放在 URL fragment 中,24 小时内只能使用一次。CLI、MCP 和 Skill 使用设备授权,不把 API Key 写入 prompt;API/CI 使用 Bearer API Key。生产环境必须启用 API_AUTH_REQUIRED=1。API Key 支持启用、停用和撤销,撤销后不能恢复。
Authorization: Bearer vxb_live_xxx
Content-Type: application/json
voxbridge auth login
# 浏览器打开 https://voxbridge.cn/activate 并确认一次性验证码
PATCH /v1/api-keys/key_xxx
{ "status": "inactive" }
PATCH /v1/api-keys/key_xxx
{ "status": "revoked" }
project_idGET /v1/templatesPOST /v1/agentsPATCH /v1/api-keys/{id}POST /v1/agents/{id}/publishGET /v1/tasks/{id}GET /v1/calls/{id}/eventsPOST /v1/structured-outputsPOST /v1/scorecardsPOST /v1/webhooksPOST /v1/compliance/checkGET /v1/security/audit-logs官方公开模板在注册并完成手机号验证后可低配额试用。自定义模板和自定义 AgentVersion 在审核前只能用于沙箱及白名单号码;进入外部真实通信、提高并发或申请机构配额前必须审核。
POST /v1/template-reviews
{
"agent_version_id": "agentv_xxx",
"intended_use": "客户预约确认",
"identity_disclosure": "开场说明品牌和来电目的",
"number_source": "用户主动留资",
"frequency_policy": "每人每天最多 1 次",
"opt_out_policy": "识别拒绝后立即结束并加入退订名单"
}
POST /v1/template-reviews/{id}/submit
状态固定为 draft → sandbox_testing → pending_review → approved | rejected | suspended。审核结果绑定不可变 AgentVersion 和风险等级,不复制 Agent 配置。
POST /v1/api-keys
{
"project_id": "proj_demo",
"name": "production-call-api",
"scopes": ["calls:write", "calls:read"]
}
常用 scope:calls:write/calls:read 用于发起和读取通话,usage:read 用于读取用量;开发接入再加 agents:write、tools:write、webhooks:write、evals:write;账号、成员、支付、发票、合规和 API Key 管理必须使用 admin:manage。
POST /v1/calls
Authorization: Bearer vxb_live_xxx
{
"agent_id": "agent_xxx",
"customer": { "number": "18612109527", "name": "王先生" },
"from": "09713884378",
"variables": {
"name": "王先生",
"brand": "青海康养中心",
"service": "健康回访"
},
"metadata": { "template_id": "service-followup" },
"recording_enabled": false,
"webhook_url": "https://example.com/voxbridge/callback"
}
常用后续操作:读取详情 GET /v1/calls/{id},读取事件 GET /v1/calls/{id}/events,控制台结束测试通话 POST /v1/calls/{id}/hangup,导出证据包 GET /v1/calls/{id}/evidence。
通话结束后先生成结构化结果,再运行评分卡。两者都会写入 Call Detail,并可触发 Webhook。
POST /v1/calls/{call_id}/structured-output-runs
{ "structured_output_id": "out_xxx" }
POST /v1/calls/{call_id}/scorecard-runs
{ "scorecard_id": "score_xxx" }
服务回访模板默认输出 satisfaction、issue、needs_follow_up、summary;其他 7 个大陆场景模板也包含各自的业务字段。
建议监听 structured_output.completed、scorecard.completed、call.completed、call.failed 和转写事件。每次投递都会记录状态码、签名和耗时。
有两种接入方式:项目级 Webhook 适合长期接入;单通 webhook_url 适合把某次 API 调用的结果回传到指定业务任务。
X-VoxBridge-Event: structured_output.completed
X-VoxBridge-Delivery: whd_xxx
X-VoxBridge-Timestamp: 1782200000
X-VoxBridge-Signature: v1=...
签名算法为 HMAC-SHA256:对 {timestamp}.{raw_body} 使用 Webhook secret 计算摘要。业务侧应校验时间戳和签名,写操作再做二次确认。
中国大陆第一版聚焦授权服务电话。被叫建议使用 11 位手机号;主叫使用已配置并放行的固话或特服号码,例如 09713884378。
控制台的 Phone & Route 只开放已配置线路,后续再把电信、联通、移动 trunk 统一接入路由策略。
Billing API 覆盖 Alpha 基础版与 Pro、Credit、用量、付款单、不可变账本和发票。Alpha 个人用户统一使用支付宝,机构客户可联系销售并使用对公转账。通话按接通后的实际秒数写入 UsageRecord,只对超出套餐的部分扣减 Credit;余额不足阻止新任务,但允许在途通话结束。跨通话记忆、周期提醒和共享呼入按类型化权益执行,不能仅靠前端隐藏。
GET /v1/entitlements
GET /v1/catalog/plans
GET /v1/catalog/credit-packs
GET /v1/contacts
GET /v1/reminders
GET /v1/billing/transactions
POST /v1/reminders
Idempotency-Key: reminder-001
{
"agent_id": "agent_xxx",
"reminder": "带上体检报告",
"rule": "weekly",
"timezone": "Asia/Shanghai",
"next_run_at": "2026-08-19T10:00:00+08:00"
}
POST /v1/billing/orders
Idempotency-Key: demo-order-1
{ "plan_id": "basic", "provider": "alipay" }
POST /v1/billing/orders
Idempotency-Key: demo-order-2
{ "credit_pack_id": "credit-1000", "provider": "alipay" }
POST /v1/billing/webhooks/alipay
PATCH /v1/billing/invoice-profile
{
"title": "大陆测试工作区",
"tax_id": "91110108MA0000000X",
"invoice_type": "electronic_vat_general",
"email": "finance@example.cn"
}
POST /v1/billing/invoice-requests
{ "payment_record_id": "pay_xxx", "note": "6 月订阅开票" }
支付状态只能由验签后的支付宝/微信回调或受控财务流程更新,浏览器不能自行确认已付款。商户证书未配置时回调接口 fail closed,不产生账本入账。
服务电话应记录授权来源,并提供退订、黑名单、频控、审计和数据留存配置入口。当前版本已经支持授权来源、退订/黑名单、频控检查、审计日志和留存策略;命中硬阻断后 Call API 会在拨号前返回错误,不进入线路。
POST /v1/compliance/do-not-call
{
"phone_number": "18612109527",
"reason": "用户退订",
"source": "user_opt_out"
}
POST /v1/compliance/consents
{
"phone_number": "18612109527",
"source": "contract",
"reference": "线下服务协议",
"status": "active"
}
POST /v1/compliance/frequency-rules
{
"name": "默认频控",
"max_calls": 3,
"window_hours": 24,
"enabled": true
}
POST /v1/compliance/check
{ "phone_number": "18612109527" }
PATCH /v1/security/retention
{
"call_record_days": 180,
"transcript_days": 90,
"recording_days": 30,
"evidence_days": 180,
"pii_masking_enabled": true
}
GET /v1/security/audit-logs?project_id=proj_demo
明确拒绝、忙碌或“不方便”时,Agent 应短句结束,不继续追问。