---
title: "Get Llm Proxy Request"
method: GET
path: "/developer/llm-proxy-requests/{request_id}"
tags: ["Developer", "Developer - LLM Proxy"]
---

# Get Llm Proxy Request

`GET /developer/llm-proxy-requests/{request_id}`

## Request

- Base URL: `https://api.openintake.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.openintake.ai/developer/llm-proxy-requests/{request_id}`
- Auth: none declared

One request in full, with the per-leg columns folded back into a list.

Declared after ``/stats``, ``/import-state``, and ``/call/{...}`` so those literal
segments win the match (FastAPI resolves in declaration order).

## Path parameters

- `request_id` string, required

## Response `200`

Successful Response

- LLMProxyRequestDetail: One proxy request in full, still without bodies.
  - `request_id` string, required
  - `vapi_call_id` string, nullable
  - `call_id` string, uuid, nullable
  - `customer_id` string, uuid, nullable
  - `logged_at` string, date-time, required
  - `outcome` string, nullable
  - `winner` string, nullable
  - `winner_ttft_ms` number, nullable
  - `total_ms` number, nullable
  - `stream_duration_ms` number, nullable
  - `assistant_hint` string, nullable
  - `requested_model` string, nullable
  - `effective_model` string, nullable
  - `model_choice_reason` string, nullable
  - `n_messages` integer, nullable
  - `n_tools` integer, nullable
  - `output_chunks` integer, nullable
  - `output_chars` integer, nullable
  - `finish_reason` string, nullable
  - `stop_reason` string, nullable
  - `tool_names` string[], nullable
  - `error` string, nullable
  - `anthropic_ttft_ms` number, nullable
  - `bedrock_ttft_ms` number, nullable
  - `anthropic_error_kind` string, nullable
  - `bedrock_error_kind` string, nullable
  - `image_tag` string, nullable
  - `ecs_task_id` string, nullable
  - `prewarm_ok` boolean, nullable
  - `has_bodies` boolean: Whether a bodies line was imported for this request
  - `request_seq` integer, nullable
  - `cw_ingested_at` string, date-time, nullable
  - `log_stream` string, nullable
  - `hedge_delay_ms` number, nullable
  - `empty_completion_at_ms` number, nullable
  - `legs_started` string[], nullable
  - `system_prompt_chars` integer, nullable
  - `max_tokens` integer, nullable
  - `temperature` number, nullable
  - `bodies_truncated` boolean
  - `bodies_logged_at` string, date-time, nullable
  - `metrics_imported_at` string, date-time, nullable
  - `bodies_imported_at` string, date-time, nullable
  - `legs` LLMProxyLegDetail[]
    - `leg` string, required
    - `started` boolean, nullable
    - `won` boolean, nullable
    - `ttft_ms` number, nullable
    - `cancelled` boolean, nullable
    - `cancel_latency_ms` number, nullable
    - `error_kind` string, nullable
    - `error_detail` string, nullable
    - `status_code` integer, nullable
    - `provider_request_id` string, nullable
    - `input_tokens` integer, nullable
    - `output_tokens` integer, nullable
    - `cache_read_tokens` integer, nullable
    - `cache_write_tokens` integer, nullable
  - `legs_extra` object, nullable
  - `raw_metrics` object, nullable

## Other responses

- `422`: Validation Error

## Changes

- **2026-09-20** `28867c1dbb52`: 2 info
  - added the optional property `effective_model` to the response with the `200` status
  - added the optional property `model_choice_reason` to the response with the `200` status

[Operation history](https://skmtc.dev/openintake/apis/openintake-api/changes/developer/llm-proxy-requests/:request_id/get.md)

---

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