---
title: AI models, limits and data policy
description: How to list models, what each catalogue field means, how to switch models, and how to read a model's data policy.
type: reference
product: ai
summary: The catalogue fields, and how to read them before you switch models
updated: 2026-09-30
order: 2
---

The catalogue lists the models Sylphx AI serves. The [model pages](/ai/models)
show it in full — context window, maximum output, data policy and a
ready-to-copy request for every model — and read it from the same catalogue
this API serves, so the page and the API cannot disagree.

## Listing models

Two doors serve the catalogue: one for your key, one public.

```bash
curl https://api.sylphx.ai/v1/models \
  -H "Authorization: Bearer $SYLPHX_API_KEY"

# One model document:
curl https://api.sylphx.ai/v1/models/openai/gpt-5.5 \
  -H "Authorization: Bearer $SYLPHX_API_KEY"
```

```bash
curl https://api.sylphx.ai/v1/public/models

# One public model, including its description:
curl https://api.sylphx.ai/v1/public/models/openai/gpt-5.5
```

| Field | Type | What it is |
| --- | --- | --- |
| `id` | string | The exact string you send as `model`. Ids are stable product names. |
| `display_name` | string | The human label for pickers and tables. |
| `pricing` | object | `input`, `output`, `cache_read`, `currency` and `unit`. Present on the API; the website shows prices only once billing is live. |
| `limits` | object | `context_window_tokens` and `max_output_tokens`, null when not published. |
| `data_policy` | object | The default routing posture, below. |

## Switching models

Because `model` is a field, a switch is a one-line change. The request and
stream shape stay identical.

```json
{
  "model": "qwen/qwen3.8-flash",
  "input": "Summarise this incident report in three bullets."
}
```

Read the new model's page first: context window, maximum output and data
policy can differ. A conversation that used provider-sealed state should stay
on the family that produced it; see [switching models
safely](/docs/ai/responses#switching-models-safely).

## Data policy

Each catalogue row publishes the default routing posture for that model:
whether API data may be used for training, and whether zero data retention
(ZDR) applies. By default, requests route to zero-data-retention routes.

- `train` and `zdr` are booleans describing that default. `zdr` is false when
  no ZDR route exists for the model.
- `posture` is `standard` or `consent_trained`; `source` is `model_declaration`
  or `default`; `default_routing` is `zdr_required`.
- `training_opt_in` is true when lower-cost options that may train on data
  exist for the model. They are reached only when the caller sends
  `x-sylphx-zdr: optional`; without that header a request never uses them.
- The posture belongs to the model row, not to your key, so switching models
  can change it. Check it before you move a sensitive workload.
- Retention of stored responses and files is separate; see the [privacy
  policy](/legal/privacy).

<RelatedDocs
	links={[
		{
			href: '/ai/models',
			label: 'Model pages',
			description: 'Every model with its limits, data policy and a ready request.',
		},
		{
			href: '/docs/ai/responses',
			label: 'Responses API',
			description: 'How the model field is used on every request.',
		},
	]}
/>
