---
title: "Get Model"
method: GET
path: "/v1/models/{model_id}"
tags: ["v1", "v1"]
---

# Get Model

`GET /v1/models/{model_id}`

Retrieve a model.

Retrieve detailed information about a specific model, including its capabilities,
provider, and supported features.

Args:
    model_id: The ID of the model to retrieve (e.g., 'openai/gpt-4', 'anthropic/claude-3-5-sonnet-20241022')
    user: Authenticated user obtained from API key validation

Returns:
    Model: Information about the requested model

Raises:
    HTTPException:
        - 401 if authentication fails
        - 404 if model not found or not accessible with current API key
        - 500 if internal error occurs

Requires:
    Valid API key with 'read' scope permission

Example:
    ```python
    import dedalus_labs

    client = dedalus_labs.Client(api_key="your-api-key")
    model = client.models.retrieve("openai/gpt-4")

    print(f"Model: {model.id}")
    print(f"Owner: {model.owned_by}")
    ```

    Response:
    ```json
    {
        "id": "openai/gpt-4",
        "object": "model",
        "created": 1687882411,
        "owned_by": "openai"
    }
    ```

## Path parameters

- `model_id` string, required

## Response `200`

Successful Response

- Model — Unified model metadata across all providers. Combines provider-specific schemas into a single, consistent format. Fields that aren't available from a provider are set to None.
  - `id` string, required — Unique model identifier with provider prefix (e.g., 'openai/gpt-4')
  - `provider` 'openai' | 'anthropic' | 'google' | 'xai' | 'mistral' | 'groq' | 'fireworks' | 'deepseek', required — Provider that hosts this model
  - `created_at` string, date-time, required — When the model was released (RFC 3339)
  - `display_name` string, nullable — Human-readable model name
  - `description` string, nullable — Model description
  - `version` string, nullable — Model version identifier
  - `capabilities` ModelCapabilities — Normalized model capabilities across all providers.
    - `text` boolean, nullable — Supports text generation
    - `vision` boolean, nullable — Supports image understanding
    - `image_generation` boolean, nullable — Supports image generation
    - `audio` boolean, nullable — Supports audio processing
    - `tools` boolean, nullable — Supports function/tool calling
    - `structured_output` boolean, nullable — Supports structured JSON output
    - `streaming` boolean, nullable — Supports streaming responses
    - `thinking` boolean, nullable — Supports extended thinking/reasoning
    - `input_token_limit` integer, nullable — Maximum input tokens
    - `output_token_limit` integer, nullable — Maximum output tokens
  - `defaults` ModelDefaults — Provider-declared default parameters for model generation.
    - `temperature` number, nullable — Default temperature setting
    - `top_p` number, nullable — Default top_p setting
    - `top_k` integer, nullable — Default top_k setting
    - `max_output_tokens` integer, nullable — Default maximum output tokens
  - `provider_info` object, nullable — Raw provider-specific metadata
  - `provider_declared_generation_methods` string[], nullable — Provider-specific generation method names (None = not declared)

## Other responses

- `422` — Validation Error

## Changes

- **2025-11-07** `d22d228c90a1` — 2 warning
  - added the new `deepseek` enum value to the `provider` response property for the response status `200`
  - added the new `fireworks` enum value to the `provider` response property for the response status `200`
- **2025-10-09** `1b31e64d16b5` — 1 breaking, 22 warning, 12 info
  - removed the required property `name` from the response with the `200` status
  - removed the optional property `attributes` from the response with the `200` status
  - removed the optional property `frequency_penalty` from the response with the `200` status
  - removed the optional property `logit_bias` from the response with the `200` status
  - …31 more
- **2025-08-21** `546479d9468d` — 1 breaking, 3 warning, 2 info
  - removed the required property `id` from the response with the `200` status
  - removed the optional property `created` from the response with the `200` status
  - removed the optional property `object` from the response with the `200` status
  - removed the optional property `owned_by` from the response with the `200` status
  - …2 more
- …earlier changes not shown

[Full history](https://skmtc.dev/dedalus-labs/apis/dedalus-api/changes/v1/models/:model_id/get.md)

---

[API](https://skmtc.dev/dedalus-labs/apis/dedalus-api.md) · [All operations](https://skmtc.dev/dedalus-labs/apis/dedalus-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/dedalus-labs/dedalus-api/revisions/81ffcde15f4c/schema)
