---
title: "Manually trigger recap for a call"
method: POST
path: "/v1/recap/calls/{call_id}"
tags: ["Recap"]
---

# Manually trigger recap for a call

`POST /v1/recap/calls/{call_id}`

## Request

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

## Path parameters

- `call_id` string, required

## Request body

- object
  - `pack_id` string
  - `call_duration_s` number
  - `call_direction` 'inbound' | 'outbound'
  - `customer_name` string
  - `language` 'en' | 'fr' | 'es' | 'de' | 'hi': Language for the Recap output; this does not transcribe audio.
  - `crm_fields` object
  - `utterances` RecapUtterance[], required
    - `speaker_role` 'agent' | 'customer', required
    - `text` string, required
    - `offset_s` number, required
    - `duration_s` number, required
    - `role_source` 'keyword' | 'participant_name' | 'diarization' | 'channel' | 'inferred' | 'corrected': How Recap decided this speaker role: a role keyword, a participant name, Hear diarization (speaker 1 = agent, speaker 2 = customer), audio channel, conversation-role inference, or a customer correction.
    - `role_confidence` number: Confidence in the speaker role, from 0 to 1.

## Response `202`

Recap job accepted

- 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

## Other responses

- `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/271a1539185b?raw)
