---
title: "Get logs for a session"
method: GET
path: "/api/logs/sessions/{session_id}"
tags: ["Logging"]
---

# Get logs for a session

`GET /api/logs/sessions/{session_id}`

Returns the paginated logs belonging to a single parent-request session
(grouped by `parent_request_id`). Sorted ascending by timestamp by default.

## Path parameters

- `session_id` string, required

## Query parameters

- `limit` integer
- `offset` integer
- `order` 'asc' | 'desc'

## Response `200`

Session logs retrieved successfully

- object — Paginated logs for a single parent-request session
  - `session_id` string
  - `logs` LogEntry[]
    - `id` string
    - `parent_request_id` string
    - `provider` string
    - `model` string
    - `status` 'processing' | 'success' | 'error'
    - `object` string
    - `timestamp` string, date-time
    - `number_of_retries` integer
    - `fallback_index` integer
    - `latency` number
    - `cost` number
    - `selected_key_id` string
    - `selected_key_name` string
    - `virtual_key_id` string
    - `virtual_key_name` string, nullable
    - `routing_engines_used` string[], nullable — Array of routing engines used for this request (routing-rule, governance, or loadbalancing)
    - `routing_rule_id` string, nullable
    - `routing_rule_name` string, nullable
    - `stream` boolean
    - `raw_request` string
    - `raw_response` string
    - `redaction_mapping` object — Phase-scoped placeholder-to-original-value mappings for reversible redactions. Present only on log detail responses when the caller has `Logs:Reveal`.
      - `input` object
      - `output` object
    - `created_at` string, date-time
    - `token_usage` BifrostLLMUsage — Token usage information
      - `prompt_tokens` integer — Total input tokens including any prompt-cache tokens (read + write). Subtract prompt_tokens_details.cached_read_tokens and prompt_tokens_details.cached_write_tokens to get the non-cached portion.
      - `prompt_tokens_details` ChatPromptTokensDetails
        - `text_tokens` integer
        - `audio_tokens` integer
        - `image_tokens` integer
        - `cached_read_tokens` integer — Tokens served from the prompt cache (cache hit). These tokens are already included in prompt_tokens and are billed at the reduced cache-read rate. Populated for all providers that support prompt caching (Anthropic, Bedrock, OpenAI, Gemini, xAI, etc.).
        - `cached_write_tokens` integer — Tokens written to the prompt cache on this request (cache creation / write). These tokens are already included in prompt_tokens and are billed at the cache-creation rate. Populated for providers that separately report cache write tokens (Anthropic, Bedrock).
      - `completion_tokens` integer — Number of output/completion tokens generated.
      - `completion_tokens_details` ChatCompletionTokensDetails
        - `text_tokens` integer
        - `accepted_prediction_tokens` integer
        - `audio_tokens` integer
        - `citation_tokens` integer
        - `num_search_queries` integer
        - `reasoning_tokens` integer
        - `image_tokens` integer
        - `rejected_prediction_tokens` integer
      - `total_tokens` integer
      - `cost` BifrostCost — Cost breakdown for the request
        - `input_tokens_cost` number
        - `output_tokens_cost` number
        - `reasoning_tokens_cost` number — Cost for reasoning/thinking tokens (reasoning models)
        - `citation_tokens_cost` number — Cost for citation tokens
        - `search_queries_cost` number — Cost for web search queries
        - `request_cost` number
        - `total_cost` number
    - `error_details` BifrostError — Error response from Bifrost
      - `event_id` string
      - `type` string
      - `is_bifrost_error` boolean
      - `status_code` integer
      - `error` ErrorField
        - `type` string
        - `code` string
        - `message` string
        - `param` string
        - `event_id` string
      - `extra_fields` BifrostErrorExtraFields
        - `provider` 'openai' | 'azure' | 'anthropic' | 'bedrock' | 'cohere' | 'vertex' | 'vllm' | 'mistral' | 'ollama' | 'groq' | 'sgl' | 'parasail' | 'perplexity' | 'replicate' | 'cerebras' | 'deepseek' | 'gemini' | 'openrouter' | 'elevenlabs' | 'huggingface' | 'nebius' | 'xai' | 'runway' | 'fireworks' — AI model provider identifier
        - `model_requested` string
        - `request_type` string
    - `input_history` ChatMessage[]
      - `role` 'assistant' | 'user' | 'system' | 'tool' | 'developer', required
      - `name` string
      - `content` union — Message content - can be a string or array of content blocks
        - string
        - object[]
          - `type` 'text' | 'image_url' | 'input_audio' | 'file' | 'refusal', required
          - `text` string
          - `refusal` string
          - `image_url` object
            - `url` string, required
            - `detail` 'low' | 'high' | 'auto'
          - `input_audio` object
            - `data` string, required
            - `format` string
          - `file` object
            - `file_data` string
            - `file_id` string
            - `filename` string
            - `file_type` string
          - `cache_control` CacheControl — Cache control settings for content blocks
            - `type` 'ephemeral'
            - `ttl` string — Time to live (e.g., "1m", "1h")
      - `tool_call_id` string — For tool messages
      - `refusal` string
      - `audio` object
        - `id` string
        - `data` string
        - `expires_at` integer
        - `transcript` string
      - `reasoning` string
      - `reasoning_details` object[]
        - `id` string
        - `index` integer
        - `type` 'reasoning.summary' | 'reasoning.encrypted' | 'reasoning.text'
        - `summary` string
        - `text` string
        - `signature` string
        - `data` string
      - `annotations` object[]
        - `type` string
        - `url_citation` object
          - `start_index` integer
          - `end_index` integer
          - `title` string
          - `url` string
          - `sources` object
          - `type` string
      - `tool_calls` object[]
        - `index` integer
        - `type` string
        - `id` string
        - `function` object, required
          - `name` string
          - `arguments` string
    - `responses_input_history` object[]
      - `id` string
      - `type` 'message' | 'file_search_call' | 'computer_call' | 'computer_call_output' | 'web_search_call' | 'web_fetch_call' | 'function_call' | 'function_call_output' | 'code_interpreter_call' | 'local_shell_call' | 'local_shell_call_output' | 'mcp_call' | 'custom_tool_call' | 'custom_tool_call_output' | 'image_generation_call' | 'mcp_list_tools' | 'mcp_approval_request' | 'mcp_approval_responses' | 'reasoning' | 'item_reference' | 'refusal'
      - `status` 'in_progress' | 'completed' | 'incomplete' | 'interpreting' | 'failed'
      - `role` 'assistant' | 'user' | 'system' | 'developer'
      - `content` union
        - string
        - object[]
          - `type` 'input_text' | 'input_image' | 'input_file' | 'input_audio' | 'output_text' | 'refusal' | 'reasoning_text', required
          - `file_id` string
          - `text` string
          - `signature` string
          - `image_url` string
          - `detail` string
          - `file_data` string
          - `file_url` string
          - `filename` string
          - `file_type` string
          - `input_audio` object
            - `format` 'mp3' | 'wav', required
            - `data` string, required
          - `annotations` object[]
            - `type` 'file_citation' | 'url_citation' | 'container_file_citation' | 'file_path'
            - `index` integer
            - `file_id` string
            - `text` string
            - `start_index` integer
            - `end_index` integer
            - `filename` string
            - `title` string
            - `url` string
            - `container_id` string
          - `logprobs` object[]
            - `bytes` integer[]
            - `logprob` number
            - `token` string
            - `top_logprobs` object[]
              - …
          - `refusal` string
          - `cache_control` CacheControl — Cache control settings for content blocks
            - `type` 'ephemeral'
            - `ttl` string — Time to live (e.g., "1m", "1h")
      - `call_id` string
      - `name` string
      - `arguments` string
      - `output` union — Tool call output. A plain string for function/custom/local-shell tool outputs, an array of content blocks for structured function tool outputs, or a computer-tool screenshot object for computer_call_output.
        - string
        - object[]
          - `type` 'input_text' | 'input_image' | 'input_file' | 'input_audio' | 'output_text' | 'refusal' | 'reasoning_text', required
          - `file_id` string
          - `text` string
          - `signature` string
          - `image_url` string
          - `detail` string
          - `file_data` string
          - `file_url` string
          - `filename` string
          - `file_type` string
          - `input_audio` object
            - `format` 'mp3' | 'wav', required
            - `data` string, required
          - `annotations` object[]
            - `type` 'file_citation' | 'url_citation' | 'container_file_citation' | 'file_path'
            - `index` integer
            - `file_id` string
            - `text` string
            - `start_index` integer
            - `end_index` integer
            - `filename` string
            - `title` string
            - `url` string
            - `container_id` string
          - `logprobs` object[]
            - `bytes` integer[]
            - `logprob` number
            - `token` string
            - `top_logprobs` object[]
              - …
          - `refusal` string
          - `cache_control` CacheControl — Cache control settings for content blocks
            - `type` 'ephemeral'
            - `ttl` string — Time to live (e.g., "1m", "1h")
        - object — Computer tool call output (computer_screenshot).
          - `type` 'computer_screenshot'
          - `file_id` string
          - `image_url` string
      - `action` object
      - `error` string
      - `queries` string[]
      - `results` object[]
      - `summary` object[]
        - `type` 'summary_text', required
        - `text` string, required
      - `encrypted_content` string
    - `output_message` ChatMessage
      - `role` 'assistant' | 'user' | 'system' | 'tool' | 'developer', required
      - `name` string
      - `content` union — Message content - can be a string or array of content blocks
        - string
        - object[]
          - `type` 'text' | 'image_url' | 'input_audio' | 'file' | 'refusal', required
          - `text` string
          - `refusal` string
          - `image_url` object
            - `url` string, required
            - `detail` 'low' | 'high' | 'auto'
          - `input_audio` object
            - `data` string, required
            - `format` string
          - `file` object
            - `file_data` string
            - `file_id` string
            - `filename` string
            - `file_type` string
          - `cache_control` CacheControl — Cache control settings for content blocks
            - `type` 'ephemeral'
            - `ttl` string — Time to live (e.g., "1m", "1h")
      - `tool_call_id` string — For tool messages
      - `refusal` string
      - `audio` object
        - `id` string
        - `data` string
        - `expires_at` integer
        - `transcript` string
      - `reasoning` string
      - `reasoning_details` object[]
        - `id` string
        - `index` integer
        - `type` 'reasoning.summary' | 'reasoning.encrypted' | 'reasoning.text'
        - `summary` string
        - `text` string
        - `signature` string
        - `data` string
      - `annotations` object[]
        - `type` string
        - `url_citation` object
          - `start_index` integer
          - `end_index` integer
          - `title` string
          - `url` string
          - `sources` object
          - `type` string
      - `tool_calls` object[]
        - `index` integer
        - `type` string
        - `id` string
        - `function` object, required
          - `name` string
          - `arguments` string
    - `responses_output` object[]
      - `id` string
      - `type` 'message' | 'file_search_call' | 'computer_call' | 'computer_call_output' | 'web_search_call' | 'web_fetch_call' | 'function_call' | 'function_call_output' | 'code_interpreter_call' | 'local_shell_call' | 'local_shell_call_output' | 'mcp_call' | 'custom_tool_call' | 'custom_tool_call_output' | 'image_generation_call' | 'mcp_list_tools' | 'mcp_approval_request' | 'mcp_approval_responses' | 'reasoning' | 'item_reference' | 'refusal'
      - `status` 'in_progress' | 'completed' | 'incomplete' | 'interpreting' | 'failed'
      - `role` 'assistant' | 'user' | 'system' | 'developer'
      - `content` union
        - string
        - object[]
          - `type` 'input_text' | 'input_image' | 'input_file' | 'input_audio' | 'output_text' | 'refusal' | 'reasoning_text', required
          - `file_id` string
          - `text` string
          - `signature` string
          - `image_url` string
          - `detail` string
          - `file_data` string
          - `file_url` string
          - `filename` string
          - `file_type` string
          - `input_audio` object
            - `format` 'mp3' | 'wav', required
            - `data` string, required
          - `annotations` object[]
            - `type` 'file_citation' | 'url_citation' | 'container_file_citation' | 'file_path'
            - `index` integer
            - `file_id` string
            - `text` string
            - `start_index` integer
            - `end_index` integer
            - `filename` string
            - `title` string
            - `url` string
            - `container_id` string
          - `logprobs` object[]
            - `bytes` integer[]
            - `logprob` number
            - `token` string
            - `top_logprobs` object[]
              - …
          - `refusal` string
          - `cache_control` CacheControl — Cache control settings for content blocks
            - `type` 'ephemeral'
            - `ttl` string — Time to live (e.g., "1m", "1h")
      - `call_id` string
      - `name` string
      - `arguments` string
      - `output` union — Tool call output. A plain string for function/custom/local-shell tool outputs, an array of content blocks for structured function tool outputs, or a computer-tool screenshot object for computer_call_output.
        - string
        - object[]
          - `type` 'input_text' | 'input_image' | 'input_file' | 'input_audio' | 'output_text' | 'refusal' | 'reasoning_text', required
          - `file_id` string
          - `text` string
          - `signature` string
          - `image_url` string
          - `detail` string
          - `file_data` string
          - `file_url` string
          - `filename` string
          - `file_type` string
          - `input_audio` object
            - `format` 'mp3' | 'wav', required
            - `data` string, required
          - `annotations` object[]
            - `type` 'file_citation' | 'url_citation' | 'container_file_citation' | 'file_path'
            - `index` integer
            - `file_id` string
            - `text` string
            - `start_index` integer
            - `end_index` integer
            - `filename` string
            - `title` string
            - `url` string
            - `container_id` string
          - `logprobs` object[]
            - `bytes` integer[]
            - `logprob` number
            - `token` string
            - `top_logprobs` object[]
              - …
          - `refusal` string
          - `cache_control` CacheControl — Cache control settings for content blocks
            - `type` 'ephemeral'
            - `ttl` string — Time to live (e.g., "1m", "1h")
        - object — Computer tool call output (computer_screenshot).
          - `type` 'computer_screenshot'
          - `file_id` string
          - `image_url` string
      - `action` object
      - `error` string
      - `queries` string[]
      - `results` object[]
      - `summary` object[]
        - `type` 'summary_text', required
        - `text` string, required
      - `encrypted_content` string
    - `embedding_output` array[]
      - number[]
    - `params` object
    - `tools` object[]
      - `type` 'function' | 'custom', required
      - `function` object
        - `name` string, required
        - `description` string
        - `parameters` object
          - `type` string
          - `description` string
          - `required` string[]
          - `properties` object
          - `enum` string[]
          - `additionalProperties` boolean
        - `strict` boolean
      - `custom` object
        - `format` object
          - `type` string, required
          - `grammar` object
            - `definition` string, required
            - `syntax` 'lark' | 'regex', required
      - `cache_control` CacheControl — Cache control settings for content blocks
        - `type` 'ephemeral'
        - `ttl` string — Time to live (e.g., "1m", "1h")
    - `tool_calls` object[]
      - `index` integer
      - `type` string
      - `id` string
      - `function` object, required
        - `name` string
        - `arguments` string
    - `speech_input` object
    - `transcription_input` object
    - `image_generation_input` object
    - `speech_output` object
    - `transcription_output` object
    - `image_generation_output` object
    - `cache_debug` object
    - `metadata` object — Custom metadata captured from request headers (configured via logging_headers or x-bf-lh-* prefix)
    - `selected_key` object
    - `virtual_key` object
    - `passthrough_request_body` string — Raw passthrough request body (for passthrough integration routes)
    - `passthrough_response_body` string — Raw passthrough response body (for passthrough integration routes)
    - `routing_engine_logs` object — Detailed logs from the routing engine decision process
    - `is_large_payload_request` boolean — Whether the request payload exceeded the large payload threshold
    - `is_large_payload_response` boolean — Whether the response payload exceeded the large payload threshold
    - `rerank_output` object — Rerank operation output
    - `video_generation_input` object — Video generation request input
    - `video_generation_output` object — Video generation response output
    - `video_retrieve_output` object — Video retrieve response output
    - `video_list_output` object — Video list response output
    - `video_delete_output` object — Video delete response output
    - `video_download_output` object — Video download response output
    - `list_models_output` object — List models response output
  - `pagination` object — Pagination metadata. Session logs are always sorted by timestamp; the `sort_by` field is not configurable.
    - `limit` integer
    - `offset` integer
    - `order` 'asc' | 'desc'
    - `total_count` integer — Total number of items matching the query
  - `count` integer — Total log count for this session
  - `returned_count` integer — Number of logs returned in this response
  - `has_more` boolean

## Other responses

- `400` — Bad request
- `500` — Internal server error

---

[API](https://skmtc.net/getbifrost/apis/bifrost-api.md) · [All operations](https://skmtc.net/getbifrost/apis/bifrost-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/getbifrost/bifrost-api/versions/f8cab88f64ea/schema)
