面向开发者
用 Votinova 来构建
REST API、webhook、连接器,还有一个 MCP 服务器。网页端能做的事,API 里都有:创建一场会话、开启它,五分钟内就能把结果接进您的系统。
- 在工作区中创建一个凭据,两种权限范围,作用于整个组织。
- 发出第一个调用:用 curl 创建并开启一场会话。
- 订阅一个 webhook,每道问题结束时就收到结果。
curl -X POST https://api.votinova.prd.atbionapps.com/public/v1/sessions \ -H "X-API-Key: vz_live_…" \ -d '{ "presentation_id": "prs_8f3k2" }' 200 OK · X-RateLimit-Remaining: 119{ "id": "ses_71xw9", "join_code": "482913", "state": "LIVE"}所有接入方式,同一份契约
每一种集成都源自同一份 OpenAPI 文档。新增一个端点,各处会同时出现。
REST API
公开端点,带权限范围、按套餐分配的配额和游标分页。
API 参考 →Webhooks
带 HMAC 签名的事件,失败按退避策略重试,也可以手动重投。
Webhook 指南 →Zapier
触发器和动作,无需写代码即可实现自动化。
查看集成 →Power Automate
面向微软生态的 webhook 触发器连接器。
查看集成 →MCP 服务器
为您的智能体提供由 OpenAPI 文档生成的工具。远程托管,无需安装。
配置 MCP →加载项
PowerPoint、Google Slides、Teams、Zoom 和 Webex。
查看加载项 →大家都用它做什么
把结果送进 CRM
每道问题一关闭,就把回答和出勤同步进您的 CRM 或数据仓库,由 webhook 通知,无需轮询。
自己做报告
通过 API 以游标分页取到关键指标、参与者和结果:完全按您组织想要的样子做报告。
从自家软件里开会话
从您的后端、内部工具或智能体创建、开启并操控会话,用的就是这个网页端所用的同一套 API。
用您熟悉的语言发出第一个调用
完整快速上手 →为智能体而建
您的智能体已经懂 Votinova
一个远程 MCP 服务器,工具由 OpenAPI 文档生成,并按您凭据的权限范围过滤。另有一份 llms.txt,任何模型都能找到文档。
配置 MCP 服务器 →{ "mcpServers": { "votinova": { "url": "https://mcp.votinova.com/mcp", "headers": { "Authorization": "Bearer vz_live_…" } } }}API 的最新变更
更新日志 →- ADDITIVE
An event stranded by an auto-disable is now dead-lettered, so it can be replayed once the endpoint is back. Recovering from a bad afternoon is supposed to be: the platform pauses the endpoint, you fix it, you re-enable it, you redeliver what never arrived. Redelivery only accepts a dead-lettered delivery, and the queue of an auto-disabled endpoint was being terminated as merely failed — so there was nothing to replay and nothing said so. The arithmetic hid it: a delivery gets 8 attempts and an endpoint is paused after 10 consecutive failures, so a single event in flight always dead-letters first. The counter is per endpoint, and one ordinary session emits three events. Deliveries for an endpoint its owner REMOVED are still terminated without a dead letter: nobody is coming back for those.
- ADDITIVE
Three corrections found by driving this API the way an integration does. A bad request body now answers the envelope this surface documents ({ error, code: INVALID_REQUEST_BODY, invalid_fields }) naming the PUBLISHED field: it used to fall through to a shape the API emits nowhere else, which named the internal property (TargetUrl for target_url) and carried no error member for a generated client to read. session.ended is delivered ONCE per close; closing a live session through this API delivered it twice, so anything that posts a summary or books a room did it twice, and the event now always names presentation_id whichever surface closed the session. And enabling an endpoint only revives one the platform paused after failures: it used to undo a DELETE too, so a connector's unsubscribe could be reversed by one call while the connector itself could no longer remove it. Enabling an endpoint that was removed now answers 400 WEBHOOK_NOT_AUTO_DISABLED; register it again instead.
- ADDITIVE
question_id is now published as REQUIRED on per-question results, which is what the endpoint has always enforced: it answers 400 without one. The document said optional, so an integrator who believed it did not send the value and found out from a failed call — and the failed call counted against the organization's quota. Nothing about the endpoint's behaviour changed, and no request that worked before stops working; what changed is that the reference now describes it. Generated clients and MCP tools derived from this document will ask for the question up front instead of discovering the rule at runtime.
各套餐的配额
- STARTER每60秒120次请求
- PRO每60秒120次请求
- TEAM每60秒600次请求
- ENTERPRISE每60秒3000次请求
每个响应都会带上您的配额(X-RateLimit-* 响应头)。