What a call contains
string
required
Unique identifier for this call. Use it to fetch answers, the transcript, or to patch form data.
string
How the call was started — for example,
web, phone, or api.string
The phone number of the caller, if available. May be
null for web or API-initiated calls.object
The answers collected, keyed by question name. Values are the raw answers; see Answers for how to interpret them correctly.
object
Per-field status object indicating whether each question was
answered, skipped, or empty. Always read this alongside form_data.number
The number of questions that have been answered so far.
number
The total number of questions in the agent. Use
filled_fields / total_fields to calculate completion progress.string
Overall outcome of the call. One of
in_progress, complete, screened_out, or failed. See The four call statuses below.number
Unix timestamp of the last time answers were written to this record — not when the call started. Use with caution when sorting by recency.
number
Total length of the conversation in seconds.
object
Breakdown of the compute cost for this call.
boolean
true if an audio recording of the call is available.boolean
true if a text transcript of the call is available. Fetch it with the transcript endpoint listed below.number
Average time in seconds between the caller finishing speaking and the agent acknowledging. A voice quality metric.
number
Average time in seconds between acknowledgement and the agent’s full reply. A voice quality metric.
The four call statuses
in_progress
in_progress
The call is still active, or it ended so recently that FormBharo has not yet finalised the record. Poll again in a few seconds if you see this status after a call you expect to have finished.
complete
complete
Every required question was answered before the call ended. This is the fully successful outcome —
form_data contains a value for every field in the agent.screened_out
screened_out
An answer matched one of the
end_call_values configured on a question, which caused the agent to end the call early by design. FormBharo counts screened_out as a successful outcome in analytics. Use this status to identify callers who were intentionally disqualified.failed
failed
The call ended before the form was finished for an unplanned reason — the caller hung up, a network error occurred, or the agent hit a timeout. Check
form_data and form_status to see how far the conversation progressed before it failed.Reading calls
FormBharo exposes four endpoints for reading call data:All calls for one agent
Calls across all agents
Just the answers (no key required)
form_data object for one call. This route requires no API key, making it safe to embed in client-side or webhook contexts.Transcript
has_transcript is true.created_at is the timestamp of the last answer write, not when the call started. Sorting by created_at gives you calls ordered by most recent activity, which may differ from chronological start order — especially for long calls or calls with late-stage answers.