---
title: "POST /tracer/trace/list_voice_calls/"
method: POST
path: "/tracer/trace/list_voice_calls/"
tags: ["tracer"]
---

# POST /tracer/trace/list_voice_calls/

`POST /tracer/trace/list_voice_calls/`

## Request

- Base URL: `http://localhost:8000`
- URL: `http://localhost:8000/tracer/trace/list_voice_calls/`
- Auth: one of:
  - API key in header `X-Api-Key`
  - API key in header `X-Secret-Key`

List voice/conversation traces for a project in an optimized way and
return a response similar to the provided call object schema.

Query params:
- project_id (required)
- page (1-based, optional, default 1)
- page_size (optional, default 30)

## Request body

- TraceVoiceCallListQuery
  - `project_id` string, uuid, required
  - `filters` string: JSON-encoded canonical filter list.
  - `attribute_keys` string: JSON-encoded list of custom attribute keys to include as CSV columns. Comma-separated simple keys remain supported.
  - `page` integer: One-based numbered page. Pages whose required ordered work exceeds the finite read contract return HTTP 422 with code page_depth_exceeded; request an earlier page, use the additive continuation cursor, or narrow the time range.
  - `page_size` integer
  - `remove_simulation_calls` boolean
  - `cursor` string: Opaque continuation token returned by the previous page. When supplied, do not also send the numbered-page parameter.
  - `cursor_mode` boolean
  - `allow_sampled` boolean: Omit for backward-compatible complete bounded pages, which may label count as a lower bound. Send false to require an exact total. Send true to opt in explicitly to lower-bound totals and, on the first page, a clearly labelled bounded partial result when the full ordered prefix cannot be proven inside the read budget.

## Response `200`

OK

- TraceVoiceCallListResponse
  - `count` integer, required
  - `count_is_lower_bound` boolean, required
  - `total_pages` integer, required
  - `current_page` integer, required
  - `next` integer, nullable, required
  - `previous` integer, nullable, required
  - `results` object[], required
  - `config` TraceObserveColumnConfig[], required
    - `id` string, required
    - `name` string, required
    - `is_visible` boolean, required
    - `group_by` string, nullable
    - `output_type` string, nullable
    - `reverse_output` boolean, nullable
    - `annotation_label_type` string, nullable
    - `choices` string[], nullable
    - `settings` object, nullable: Any valid JSON value.
    - `choices_map` object, nullable: Any valid JSON value.
    - `eval_template_id` string, nullable
    - `target_type` 'span' | 'trace', nullable
    - `annotators` object, nullable: Any valid JSON value.
    - `source_field` string, nullable
    - `parent_eval_id` string, nullable
    - `property_id` string, nullable
    - `property_kind` string, nullable
    - `property_source` string, nullable
  - `has_more` boolean, required
  - `next_cursor` string, nullable
  - `next_cursor_fingerprint` string, nullable
  - `query_complete` boolean, required
  - `query_status` 'complete' | 'degraded', required
  - `query_exact` boolean
  - `ordering_exact` boolean
  - `query_error_code` string
  - `query_count` integer
  - `query_applied_filter_version` 'canonical-json-sha256-v1'
  - `query_applied_filter_sha256` string
  - `query_applied_filter_count` integer

## Other responses

- `400`: Bad Request
- `404`: Not Found
- `422`: Unprocessable Entity
- `500`: Internal Server Error
- `503`: Service Unavailable
- `default`: Default error response

---

[API](https://skmtc.dev/futureagi/apis/future-agi-management-api.md) · [All operations](https://skmtc.dev/futureagi/apis/future-agi-management-api/llms.txt) · [OpenAPI document](https://skmtc.dev/futureagi/apis/future-agi-management-api/revisions/c8684118e142?raw)
