---
title: "List recap records"
method: GET
path: "/v1/recap/calls"
tags: ["Recap"]
---

# List recap records

`GET /v1/recap/calls`

## Request

- Base URL: `https://api.pyai.com`
- URL: `https://api.pyai.com/v1/recap/calls`
- Auth: one of:
  - HTTP bearer
  - API key in header `x-api-key`

Recent post-call recaps for this org. Requires `recap:read` and the Recap add-on enabled.

## Query parameters

- `limit` integer
- `cursor` string
- `status` 'pending' | 'processing' | 'complete' | 'failed'

## Response `200`

Paginated recap list

- RecapCallList
  - `object` string
  - `data` RecapCallSummary[]
    - `object` string
    - `call_id` string
    - `pack_id` string
    - `status` 'pending' | 'processing' | 'complete' | 'failed'
    - `call_duration_s` number, nullable
    - `created_at` integer
    - `completed_at` integer, nullable
    - `source` string, nullable: Call origin, for example external.
    - `headline` string, nullable: Best available summary headline for list and tracking views.
    - `customer_name` string, nullable
    - `call_direction` 'inbound' | 'outbound', nullable
  - `has_more` boolean
  - `next_cursor` string, nullable

## Other responses

- `401`: Missing or invalid API key (`code: unauthorized`)
- `402`: Billing gate: org out of prepaid credit, per-key budget hit, or plan quota exhausted (`code: credit_exhausted | key_budget_exceeded | insufficient_quota`). Do not retry; add credit or raise the limit. A brand-new key may see this on its first call until the account is funded.

---

[API](https://skmtc.dev/pyai/apis/pyai-api.md) · [All operations](https://skmtc.dev/pyai/apis/pyai-api/llms.txt) · [OpenAPI document](https://skmtc.dev/pyai/apis/pyai-api/revisions/819d8e7c4d09?raw)
