# The Call object

This represent a call "order" that was requested by the user. A call order can be resolved over multiple call attempts spanning up to a few days.

## Fields

- `id` (string, required): The ID of the call.
- `organization_id` (string, required): The ID of the organization that owns the call.
- `from_phone_number` (string, required): The phone number that made the call. Formatted in E.164 format. Example: +1234567890
- `to_phone_number` (string, required): The phone number that received the call. Formatted in E.164 format. Example: +1234567890
- `direction` (enum (string), required): Whether the call is inbound or outbound. One of: `inbound`, `outbound`.
- `channel` (enum (string), required): `web` for a test call taken in the browser: its phone number is a placeholder, never dialed. One of: `phone`, `web`.
- `status` (enum (string), required): The status of the call. One of: `initializing`, `queued_for_calling`, `calling`, `post_processing`, `not_launched`, `scheduled`, `paused`, `completed`, `cancelled`, `errored`.
- `is_completed` (boolean, required): DEPRECATED: Whether the call has completed. This is derived from `status`. Use `status` instead. Default: `false`.
- `is_cancelled` (boolean, required): DEPRECATED: Whether the call has been cancelled. This is derived from `status`. Use `status` instead. Default: `false`.
- `cancel_reason` (string (constant), optional, nullable): Why the call was cancelled, when it can be told. `prospect_called_back`: the prospect called back before the next retry, so the pending retry was cancelled and their call is recorded as a separate inbound call. Null for a manual or campaign cancel, and for calls that are not cancelled.
- `retries_stopped` (boolean, required): Whether no further attempt will be made for this call: it was cancelled, or its future attempts were stopped while an attempt was already in progress (that attempt still finishes). Unlike `is_cancelled`, this is true as soon as retries are stopped, before the call reaches a terminal status. Default: `false`.
- `callback_from` (object, optional, nullable): For an inbound call only: the outbound call this one answers, when the prospect rang us back after we called them. Null for every other call.
  - `call_id` (string, required)
  - `created_at` (any, required)
- `calls_count` (number, required): The number of call attempts made.
- `last_call_attempt` ([CallAttempt](https://www.getrevox.com/docs/api/objects/call-attempt.md), required, nullable)
- `call_retry_config` ([CallRetryConfig](https://www.getrevox.com/docs/api/objects/call-retry-config.md), required, nullable)
- `llm_model` (one of, required)
  - One of, **Option 1** (one of)
    - One of, **Recommended** (object)
      - `type` (string (constant), required): The LLM Revox currently recommends for voice agents, chosen server-side and upgraded without any change on your side. No per-assistant configuration.
    - One of, **Gpt41Priority** (object)
      - `type` (string (constant), required): OpenAI gpt-4.1 on the priority tier, with gpt-4.1-mini answering a turn when gpt-4.1 is slow to respond. No per-assistant configuration.
    - One of, **Realtime** (object)
      - `type` (string (constant), required): Use a model from Realtime.
      - `provider` (enum (string), required): The provider to use from Realtime. eg: openai, google. One of: `openai`, `google`.
      - `realtime_model_id` (string, required): The model ID to use from Realtime. eg: gpt-4.1
      - `realtime_voice_id` (string, optional): Output voice for the realtime provider (e.g. OpenAI: marin; Gemini: Puck). Constraints: min length 1.
  - One of, **Legacy** (object)
    - `type` (enum (string), required): One of: `dedicated-instance`, `fireworks`, `openrouter`, `custom`, `gemma-4-31b-racing`.
- `call_attempts` (array of [CallAttempt](https://www.getrevox.com/docs/api/objects/call-attempt.md), required): All call attempts for this call order, ordered by most recent first.
- `assistant` ([Assistant](https://www.getrevox.com/docs/api/objects/assistant.md), required, nullable)
- `prompt_version` (object, optional, nullable): The assistant prompt version the call's prompt was compiled from. Null for calls created before versions were tracked, and for calls made with an inline assistant.
  - `id` (string, required): The ID of the assistant prompt version.
  - `number` (integer, required): The version's number in the assistant's prompt history (v1 is the oldest). Constraints: min -9007199254740991, max 9007199254740991.
  - `latest_number` (integer, required): The number of the assistant's current prompt version. Higher than `number` when the call was left on an older version, e.g. because it lacks a variable the newer prompt uses. Constraints: min -9007199254740991, max 9007199254740991.
- `campaign` (object, required, nullable)
  - `id` (string, required)
  - `name` (string, required)
  - `status` (enum (string), required): One of: `running`, `paused`, `completed`.
- `scheduled_at` (any, required, nullable): The time the call order is scheduled to start.
- `created_at` (any, required): The time the call order was created.
- `updated_at` (any, required): The time the call order was last updated (any state change, retry, or analysis result).
- `metadata` (map of string, required, nullable): Metadata stored with the call.
- `prompt_variables` (map of string, required, nullable): Variables used to interpolate the prompt.
- `transfer_destinations` (array of object, required, nullable): Where this call can be transferred, if anywhere.
  - `label` (string, required): Constraints: min length 1, max length 60.
  - `phone_number` (string, required)
- `contact` (object, required): Magic contact variables (prospect identity) extracted from the call's input data and transcript.
  - `first_name` (string, required, nullable)
  - `last_name` (string, required, nullable)
  - `email` (string, required, nullable)
  - `company` (string, required, nullable)
  - `job_title` (string, required, nullable)
- `first_sentence_delay_ms` (integer, required): Delay in milliseconds before speaking the first sentence. Default: 400. Constraints: min -9007199254740991, max 9007199254740991.
- `visual_number` (integer, optional, nullable): Campaign-scoped display number for the call ("#14" on the live campaign board), assigned when a human answers. Null outside campaigns or before a human picked up. Gaps are normal. Constraints: min -9007199254740991, max 9007199254740991.
- `outcome` (enum (string), optional, nullable): Business outcome of the call. Null if not computed or no transcript. One of: `not_interested`, `interested`, `completed`, `requested_callback_later`.
- `outcome_summary` (string, optional, nullable): LLM explanation for the outcome, when outcome was computed from the transcript.
- `do_not_call` (boolean, optional): True when the prospect's phone number is on the do-not-call list: it can no longer be called.
- `assignee` (object, required, nullable): The team member assigned to follow up on this call. Null when unassigned.
  - `id` (string, required): The database user id of the assignee.
  - `email` (string, required)
  - `first_name` (string, required, nullable)
  - `last_name` (string, required, nullable)