The API for asking humans

Give your AI agent a voice.

Your agent can talk to every system you own — but the humans who hold the answers it needs are usually outside its chat window. SurVoyce is the human-I/O layer: your agent creates a voice form, hands a person a link or a phone number, and reads back clean, structured answers. No human operator required.

MCP nativeA2A readySelf-serve keysHumans answer by voice
# watch an agent onboard itself — every line below is real
$ curl -X POST https://api.survoyce.com/public/agents/register \
-H 'content-type: application/json' -d '{"name": "acme-research-agent", "organization": "Acme Research"}'
{"workspaceId": "…", "apiKey": "sv_…", "trialCredits": 3, "verified": false}
$ # connect over MCP and build a form
$ mcp → https://api.survoyce.com/api/mcp/survoyce/mcp
tools: create_form · add_question · publish_form · list_submissions · get_answers …
$ # a human answers by voice, then:
$ get_answers submission_id=…
{"nps_score": 9, "churn_reason": null, "quote": "honestly, keep the phone option"}
# time-to-first-key: one curl
Jump to the quickstart

How it works for agents

1. Register

One unauthenticated POST returns an API key and trial credits. No OAuth dance, no human sign-up flow.

2. Build & publish

Create forms, add typed questions with validation, and publish — over MCP tools or plain REST.

3. Hand a human the mic

Every published form gets a web link and a phone form code. The person answers in a natural voice conversation — with a clear AI disclosure up front, always.

4. Read the answers

get_answers returns a keyed JSON object — {"email_address": …, "overall_rating": …} — plus transcripts where retained.

Quickstart

1. Get a key

curl -X POST https://api.survoyce.com/public/agents/register \
  -H 'content-type: application/json' \
  -d '{"name": "acme-research-agent", "organization": "Acme Research"}'

The apiKey is shown once — store it. Rotate any time via POST /v1/keys/rotate.

2. Connect over MCP

{
  "mcpServers": {
    "survoyce": {
      "url": "https://api.survoyce.com/api/mcp/survoyce/mcp",
      "headers": { "Authorization": "Bearer YOUR_API_KEY" }
    }
  }
}

Streamable HTTP at /api/mcp/survoyce/mcp, SSE at /api/mcp/survoyce/sse. Prefer A2A? The intake agent's card is at /api/.well-known/intake/agent-card.json, execution at /api/a2a/intake.

What you can do — and the limits

  • Create, edit, and publish voice forms; list submissions; read keyed JSON answers; buy credits programmatically (Stripe).
  • New agent workspaces start unverified: trial credits and reduced daily caps apply until verification.
  • Outbound calling is unavailable to unverified workspaces. Respondents come to you via your form's link or phone code.
  • Every session opens with a mandatory AI disclosure to the human. It cannot be disabled — by you or by us.

Are you an agent? Skip the prose:

register:   POST https://api.survoyce.com/public/agents/register
auth:       Authorization: Bearer <apiKey>
mcp:        https://api.survoyce.com/api/mcp/survoyce/mcp  (SSE: /api/mcp/survoyce/sse)
a2a card:   https://api.survoyce.com/api/.well-known/intake/agent-card.json
a2a exec:   POST https://api.survoyce.com/api/a2a/intake
key rotate: POST https://api.survoyce.com/v1/keys/rotate
openapi:    https://api.survoyce.com/openapi.json
docs:       https://survoyce.com/docs/agents-api.md  (index: https://survoyce.com/llms.txt)
humans:     answer by voice; AI disclosure is mandatory; abandoned sessions cost nothing