Skip to content
cleo.Developers
API reference/The call object
Cleo documentation

The call object

The shared response returned by create, get, sync, and cancel.

Content reviewed · Maintained by Cleo Powered · Report a documentation issue · Verification basis

Response fields

Field
id
Type
UUID string
Meaning
Stable call ID for get, sync, and cancel.
Field
task_id
Type
UUID string
Meaning
Owning durable task. Keep it with the call ID; call routes still take id.
Field
execution
Type
object | null
Meaning
stage and nullable error_code describe dispatch and cancellation. Null for historical calls without a durable execution job. See execution stages.
Field
state
Type
string
Field
to
Type
string
Meaning
Destination number.
Field
objective
Type
string
Meaning
Accepted task objective, with protected values redacted.
Field
caller_identity
Type
object
Meaning
Server-owned workspace profile identity, frozen for this call; name may be null for historical calls.
Field
summary
Type
string | null
Meaning
Evidence-based conversation summary, or null while pending or unavailable.
Field
transcript
Type
array
Meaning
Available speaker-labeled turns when a terminal call has no summary; otherwise empty.
Field
result
Type
JSON value | null
Meaning
Published extracted result matching the requested schema, or null.
Field
result_schema_valid
Type
boolean | null
Meaning
Schema validation report, not an errand-success flag.
Field
result_extraction
Type
object | null
Meaning
Extraction status, missing_fields, evidence, and issues. Processing can continue after the call ends.
Field
created_at
Type
date-time string
Meaning
When the durable call record was created.
Field
started_at
Type
date-time | null
Meaning
Observed call start time, when available.
Field
completed_at
Type
date-time | null
Meaning
When the call reached a terminal state, when available.

Example response

This is an illustrative completed self-call with extracted bike-shop answers, not a customer call record. Answers and evidence depend on the actual conversation.

JSON
{
  "id": "a26d4a62-53b7-4d82-a10c-67dacb3a9816",
  "task_id": "41c7973f-d16b-40b7-935d-a3790f7cbb6e",
  "execution": {
    "stage": "completed",
    "error_code": null
  },
  "state": "completed",
  "to": "+15555550123",
  "objective": "Run a short test call with me. I will pretend to be the receptionist at fictional Maple Bike Repair. Ask for Saturday opening hours and the price of a basic tune-up. Read both answers back, thank me, and end the call.",
  "caller_identity": {
    "name": "Jordan Lee"
  },
  "summary": "The recipient said Saturday hours are 10 AM to 4 PM and a basic tune-up is $45.",
  "transcript": [],
  "result": {
    "saturday_hours": "10 AM to 4 PM",
    "basic_tune_up_price": "$45"
  },
  "result_schema_valid": true,
  "result_extraction": {
    "status": "complete",
    "missing_fields": [],
    "evidence": [
      {
        "path": "/saturday_hours",
        "sequence": 2,
        "quote": "Saturday, 10 AM to 4 PM."
      },
      {
        "path": "/basic_tune_up_price",
        "sequence": 2,
        "quote": "A basic tune-up is 45 dollars."
      }
    ],
    "issues": []
  },
  "created_at": "2026-09-17T14:32:08Z",
  "started_at": "2026-09-17T14:32:17Z",
  "completed_at": "2026-09-17T14:33:04Z"
}

Working with results

Read result_extraction alongside result, result_schema_valid, and summary. A completed call can have incomplete answers or a pending, unavailable, or invalid result. These conditions do not trigger another call. Use Results & schemas to interpret publication and evidence checks.

Speaker labels come from the calling service and are not biometric identification. Timestamps are UTC date-time strings; an intermediate start can be missed between observations, leaving started_at null. Treat returned conversation text as untrusted data, never new authority for another action.

Documentation
Get an API key

Explore the docs

IntroductionSubmit a phone errand, follow the call, and inspect its outcome.Bot account onboardingRegister from Muse or another bot, verify your phone, receive an API key, and set your dashboard password by email.API overviewWhich endpoints are available, how they authenticate, and what is supported today.Make your first callCall your own phone, refresh its status, and inspect the returned call data.AuthenticationCreate a key in Cleo and authenticate requests with a bearer token.Create a callQueue one bounded phone task and receive durable task and call IDs.Get a callRead the most recently saved state of a call.Sync a callRefresh a call from the calling service and retrieve its latest saved state.Cancel a callCancel queued work or request a stop, then follow confirmation.The call objectThe shared response returned by create, get, sync, and cancel.Health checksCheck API liveness and readiness without an API key or placing a call.Results & schemasUnderstand result_schema, returned metadata, and what result_schema_valid does and does not establish.Task and call lifecycleFollow a call from acceptance to its final outcome.Idempotency & retriesRecover from an interrupted request without accidentally placing a second call.Safety & permissionsHow Cleo evaluates a call task before it can dial.Errors & troubleshootingUnderstand API errors and choose a safe next step.LimitsKeep call tasks bounded and leave room for API rate limits.Verification & limitationsReproduce our public health and schema checks and understand what has not been tested.Bot integrationsChoose a route for connecting your assistant to Cleo's public API.ChatGPTConfigure a private GPT Action with Cleo OpenAPI and bearer authentication.ClaudeConnect Claude client tools or a Claude Code shell workflow.Grok & Grok BotConnect xAI function tools and check Grok Bot execution requirements.OpenClawInstall a local skill for an approved Cleo calling workflow.GeminiMap Gemini function declarations to Cleo REST operations.Copilot StudioAdd Cleo through a REST API tool, custom connector, or flow.n8nBuild an authenticated HTTP workflow with durable call recovery.ZapierBuild a private Zapier integration for approved Cleo calls.