Skip to content

Calls

Phone calls your AI receptionist, GH Live agents and team handled. Needs calls:read.

List calls

GET/calls

Needs the calls:read scope

Your calls, newest first.

Query parameters

  • directionstringOptional
    One ofinboundoutbound
  • statusstringOptional

    | | |---| | ringing <br/> | | in_progress <br/> | | completed <br/> | | missed <br/> | | failed <br/> | | blocked <br/> The caller's number is on the client's blocked callers list: turned away before anyone answered. |

    One ofringingin_progresscompletedmissedfailedblocked
  • sincestring (date-time)Optional

    Calls that started at or after this time (ISO 8601).

  • untilstring (date-time)Optional

    Calls that started before this time (ISO 8601).

  • spamstringOptional

    true for only spam and blocked calls, false to leave them out. Without it, every call is listed.

    One oftruefalse10
  • per_pageintegerOptional

    How many items per page, 1 to 100.

    Minimum 1 · Maximum 100

  • cursorstring | nullOptional

    The meta.next_cursor (or meta.prev_cursor) of the previous page.

    Up to 1024 characters

Returns

Paginated set of CallResource

  • dataarray of objectsRequired
  • linksobjectRequired
  • metaobjectRequired

Responses

  • 200Paginated set of CallResource
  • 401The API key is missing, invalid, expired or revoked.
  • 403The key does not have the calls:read scope.
  • 422Validation error
  • 429Too many requests for this key. Wait for the Retry-After seconds.
curl https://vocenya.com/api/public/v1/calls \
  -H "Authorization: Bearer $VOCENYA_API_KEY"
Response 200
{
  "data": [
    {
      "id": 1,
      "livemode": true,
      "direction": "inbound",
      "status": "ringing",
      "from_number": "+15125550123",
      "caller_name": "string",
      "to_number": "+15125550100",
      "spam": true,
      "routed_to": "ai_agent",
      "started_at": "2026-10-02T14:03:11+00:00",
      "answered_at": "2026-10-02T14:03:11+00:00",
      "ended_at": "2026-10-02T14:03:11+00:00",
      "duration_seconds": 1,
      "disposition": "string",
      "summary": "string",
      "handoff_summary": "string",
      "transcript": [
        {
          "role": "string",
          "text": "string"
        }
      ],
      "lead_ids": [],
      "created_at": "2026-10-02T14:03:11+00:00"
    }
  ],
  "links": {
    "first": "string",
    "last": "string",
    "prev": "string",
    "next": "string"
  },
  "meta": {
    "path": "string",
    "per_page": 1,
    "next_cursor": "string",
    "prev_cursor": "string"
  }
}

Get a call

GET/calls/{call}

Needs the calls:read scope

One call with its transcript and the ids of the leads captured on it. HIPAA-mode accounts get the call's ids, numbers, statuses and times only: no summary, handoff summary or transcript.

Path parameters

  • callintegerRequired

    The call id.

Returns

CallResource

  • dataobjectRequired

Responses

  • 200CallResource
  • 401The API key is missing, invalid, expired or revoked.
  • 403The key does not have the calls:read scope.
  • 404No record with that id belongs to your account.
  • 429Too many requests for this key. Wait for the Retry-After seconds.
curl https://vocenya.com/api/public/v1/calls/1042 \
  -H "Authorization: Bearer $VOCENYA_API_KEY"
Response 200
{
  "data": {
    "id": 1,
    "livemode": true,
    "direction": "inbound",
    "status": "ringing",
    "from_number": "+15125550123",
    "caller_name": "string",
    "to_number": "+15125550100",
    "spam": true,
    "routed_to": "ai_agent",
    "started_at": "2026-10-02T14:03:11+00:00",
    "answered_at": "2026-10-02T14:03:11+00:00",
    "ended_at": "2026-10-02T14:03:11+00:00",
    "duration_seconds": 1,
    "disposition": "string",
    "summary": "string",
    "handoff_summary": "string",
    "transcript": [
      {
        "role": "string",
        "text": "string"
      }
    ],
    "lead_ids": [],
    "created_at": "2026-10-02T14:03:11+00:00"
  }
}