---
title: "List model routes"
method: GET
path: "/v1/projects/{project_id}/model-routes"
tags: ["Model Routes"]
---

# List model routes

`GET /v1/projects/{project_id}/model-routes`

## Request

- Base URL: `https://api.naturali.ai`
- URL: `https://api.naturali.ai/v1/projects/{project_id}/model-routes`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://api.naturali.ai/authorize`, token URL `https://api.naturali.ai/token`, scopes: `mcp:access`)

Returns the model routes defined in a project

## Query parameters

- `limit` integer
- `offset` integer

## Response `200`

List of model routes

- object
  - `data` ModelRoute[], required
    - `id` string
    - `project_id` string
    - `name` string
    - `targets` ModelRouteTarget[]
      - `ai_provider_id` string, required: AI provider in the route's project
      - `model` string, required: Model name to call on that provider
      - `timeout_seconds` integer: Per-attempt deadline, enforced with an AbortSignal composed with the caller's signal. A timeout classifies as `timeout`; the caller's own signal firing aborts the run without failover. Omitted means no per-target deadline.
      - `max_retries` integer: Retries on this target before falling through to the next one. The route is the only retry authority — routed calls pass `maxRetries: 0` to the AI SDK so its own retry loop cannot multiply these.
    - `retry_on` string[]
    - `failure_threshold` integer
    - `cooldown_seconds` integer
    - `created_at` string, date-time
    - `updated_at` string, date-time
  - `total` integer, required
  - `limit` integer, required
  - `offset` integer, required

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `500`: Internal server error

---

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