Turn any form into a live audio interview
Talkform asks questions aloud, fills structured fields from the conversation, and exports clean JSON for your apps, workflows, and agents.
Talkform asks questions aloud, fills structured fields from the conversation, and exports clean JSON for your apps, workflows, and agents.
Paste a public URL from Typeform, Google Forms, Jotform, or HubSpot and launch the audio version without rebuilding.
MCP tools, a CLI, JSON schemas, and docs that explain exactly how to configure and consume Talkform.
Import your existing form and give people a conversational path that's easier to finish.
You keep the schema. Talkform owns the interview, extraction, and export.
Describe variables, prompt copy, options, and validation in your config.
Talkform asks one question at a time over live audio and writes the form.
Download JSON, pull through the HTTP API, CLI, or MCP server.
Transcript on the left, live question flow in the middle, captured answers on the right.
Use Talkform from a product UI, backend, terminal, or agent runtime.
Embed the widget in any React product.
Bootstrap sessions and pull exports.
Generate configs and export results.
Expose to coding agents.
One stable schema so downstream systems can adapt it into plans, CRM records, or onboarding flows.
Same shape across UI, HTTP API, CLI, and MCP.
{
"schemaVersion": "1.0",
"formId": "customer-intake",
"sessionId": "session_3e2z1f0c",
"status": "completed",
"completion": {
"required": 5,
"captured": 5,
"percent": 100,
"missingFieldIds": []
},
"currentPrompt": null,
"fields": {
"fullName": "Avery Stone",
"role": "Product Lead",
"goal": [
"upskill_current_job",
"ship_ai_projects"
],
"aiComfort": 4,
"teamContext": "Leading a small product team at a B2B SaaS startup."
},
"transcript": [
{
"speaker": "assistant",
"text": "What should I call you?",
"timestamp": 1
},
{
"speaker": "user",
"text": "Avery Stone.",
"timestamp": 2
}
],
"summary": "Avery leads product at a SaaS startup and wants to ship AI projects for the current role.",
"metadata": {
"model": "gpt-realtime",
"voice": "marin",
"startedAt": "2026-03-10T12:00:00.000Z"
}
}Published at /schemas/audioform-session-result.json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "AudioformSessionResult",
"type": "object",
"required": [
"schemaVersion",
"formId",
"sessionId",
"status",
"completion",
"fields",
"transcript",
"summary",
"metadata"
],
"properties": {
"schemaVersion": {
"type": "string",
"const": "1.0"
},
"formId": {
"type": "string"
},
"sessionId": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"in_progress",
"completed",
"abandoned"
]
},
"completion": {
"type": "object",
"required": [
"required",
"captured",
"percent",
"missingFieldIds"
],
"properties": {
"required": {
"type": "number"
},
"captured": {
"type": "number"
},
"percent": {
"type": "number"
},
"missingFieldIds": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"currentPrompt": {
"anyOf": [
{
"type": "null"
},
{
"type": "object",
"required": [
"fieldId",
"title",
"detail"
],
"properties": {
"fieldId": {
"type": "string"
},
"title": {
"type": "string"
},
"detail": {
"type": "string"
}
}
}
]
},
"fields": {
"type": "object",
"additionalProperties": true
},
"transcript": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"speaker",
"text",
"timestamp"
],
"properties": {
"id": {
"type": "string"
},
"speaker": {
"type": "string",
"enum": [
"assistant",
"user",
"system"
]
},
"text": {
"type": "string"
},
"timestamp": {
"type": "number"
}
}
}
},
"summary": {
"type": "string"
},
"metadata": {
"type": "object",
"required": [
"model",
"voice",
"startedAt"
],
"properties": {
"model": {
"type": "string"
},
"voice": {
"type": "string"
},
"startedAt": {
"type": "string"
},
"completedAt": {
"type": "string"
}
}
}
}
}