---
title: "List Models"
method: GET
path: "/v1/models"
tags: ["v1", "v1"]
---

# List Models

`GET /v1/models`

List available models.

Returns a list of available models from all configured providers.
Models are filtered based on provider availability and API key configuration.
Only models from providers with valid API keys are returned.

Args:
    user: Authenticated user obtained from API key validation

Returns:
    ModelsResponse: Object containing list of available models

Raises:
    HTTPException:
        - 401 if authentication fails
        - 500 if internal error occurs during model listing

Requires:
    Valid API key with 'read' scope permission

Example:
    ```python
    import dedalus_labs

    client = dedalus_labs.Client(api_key="your-api-key")
    models = client.models.list()

    for model in models.data:
        print(f"Model: {model.id} (Owner: {model.owned_by})")
    ```

    Response:
    ```json
    {
        "object": "list",
        "data": [
            {
                "id": "openai/gpt-4",
                "object": "model",
                "owned_by": "openai"
            },
            {
                "id": "anthropic/claude-3-5-sonnet-20241022",
                "object": "model",
                "owned_by": "anthropic"
            }
        ]
    }
    ```

## Response `200`

Successful Response

- ModelsResponse — Response containing list of available models. Returns all models available to the authenticated user based on their API key permissions and configured providers. Attributes: object: Always 'list' for compatibility with OpenAI API data: list of Model objects representing available models Example: { "object": "list", "data": [ { "id": "openai/gpt-4", "object": "model", "owned_by": "openai" }, { "id": "anthropic/claude-3-5-sonnet-20241022", "object": "model", "owned_by": "anthropic" } ] }
  - `object` string — Object type
  - `data` DedalusModel[], required — List of models
    - `id` string, nullable — Model identifier
    - `name` string, nullable — Model name (alias for id in chat requests)
    - `object` string — Object type
    - `created` integer, nullable — Creation timestamp
    - `owned_by` string — Model owner
    - `root` string, nullable — Root model
    - `parent` string, nullable — Parent model
    - `permission` object[], nullable — Permissions
    - `temperature` number, nullable — Sampling temperature (0 to 2). Higher values make output more random.
    - `top_p` number, nullable — Nucleus sampling parameter. Alternative to temperature.
    - `frequency_penalty` number, nullable — Penalize new tokens based on their frequency in the text so far.
    - `presence_penalty` number, nullable — Penalize new tokens based on whether they appear in the text so far.
    - `max_tokens` integer, nullable — Maximum number of tokens to generate.
    - `max_completion_tokens` integer, nullable — An upper bound for the number of tokens that can be generated for a completion.
    - `n` integer, nullable — Number of completions to generate for each prompt.
    - `stop` union — Up to 4 sequences where the API will stop generating further tokens.
      - string
      - string[]
    - `stream` boolean, nullable — Whether to stream back partial progress.
    - `stream_options` object, nullable — Options for streaming responses.
    - `logit_bias` object, nullable — Modify the likelihood of specified tokens appearing.
    - `logprobs` boolean, nullable — Whether to return log probabilities of the output tokens.
    - `top_logprobs` integer, nullable — Number of most likely tokens to return at each token position.
    - `response_format` object, nullable — Format for the model output (e.g., {'type': 'json_object'}).
    - `seed` integer, nullable — Seed for deterministic sampling.
    - `service_tier` string, nullable — Latency tier for the request (e.g., 'auto', 'default').
    - `tools` object[], nullable — List of tools the model may call.
    - `tool_choice` union — Controls which tool is called by the model.
      - string
      - object
    - `parallel_tool_calls` boolean, nullable — Whether to enable parallel function calling.
    - `user` string, nullable — A unique identifier representing your end-user.
    - `attributes` object, nullable — [Dedalus] Custom attributes for intelligent model routing (e.g., intelligence, speed, creativity, cost).
    - `metadata` object, nullable — [Dedalus] Additional metadata for request tracking and debugging.

## Changes

- **2025-08-18** `4bc2c48362fb` — 2 breaking, 24 info
  - the response property `data/items/id` became optional for the status `200`
  - response property `data/items/id` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - api tag `models` removed
  - added the optional property `data/items/attributes` to the response with the `200` status
  - …22 more
- **2025-08-12** `f788f74915ca` — 1 info
  - api tag `models` added
- **2025-08-12** `e08018a02b00` — 1 info
  - api tag `models` removed
- **2025-08-10** `f788f74915ca` — 1 info
  - api tag `models` added
- **2025-08-10** `19ab80d99184` — 1 info
  - api tag `models` removed

[Full history](https://skmtc.dev/dedalus-labs/apis/dedalus-api/changes/v1/models/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/4bc2c48362fb/schema)
