# Models

| Model | What it's for |
| --- | --- |
| [`celeris-1`](#celeris-1) | General purpose work at the lowest latency |
| [`celeris-1-magnus`](#celeris-1-magnus) | More intelligent answers, still fast |
| [`celeris-1-decision`](#celeris-1-decision) | Yes/no, multiple-choice, and scoring decisions as probabilities |

Each model has its own path segment in the [base URL](#model-routing-and-base-urls),
its own properties below, and its own [token rates](/pricing#rates).

## celeris-1

**`celeris-1`** is the first model from Celeris: a general purpose
diffusion language model that delivers near-GPT-5 level intelligence with up
to 15x faster response times.

Unlike autoregressive LLMs, which produce output one token at a time, a
diffusion model can refine multiple output tokens in parallel. That parallel
refinement suits classification, extraction, scoring, and query rewriting.
Typical short requests complete in approximately **50–150 ms** within the
serving region. Measure your workload with the
[`Server-Timing` header](/measuring-latency).

celeris-1 handles general workloads well. For tasks that need more intelligence,
such as extended multi-step reasoning, use
[celeris-1-magnus](#celeris-1-magnus) for that step and keep celeris-1 everywhere
else.

| Property | Value |
| --- | --- |
| Model name (`model` field) | `celeris-1` |
| Context window | 131,072 tokens (prompt + requested maximum output) |
| Max output (`max_tokens`) | Any positive integer, bounded only by the context window (prompt + `max_tokens` ≤ 131,072). Defaults to 2,048 when omitted. |
| Especially strong at | Classification, extraction, scoring/judging, query rewriting, structured output |
| Input | Text and images (see [Image input](/images)) |
| Output | Text or structured tool calls (see [Tool calling](/making-requests#tool-calling)) |
| Response mode | Complete JSON responses or OpenAI-compatible SSE streaming |

> **[The context window is a hard ceiling]**
Prompt tokens plus `max_tokens` must be at most 131,072, making the effective
input limit `131,072 - max_tokens`. Oversized requests are rejected up front with
a [`400`](/errors#400) rather than silently truncated. See
[Rate limits](/rate-limits) for request limits shared by each workspace and model.
> **### Image understanding**

celeris-1 reads images as well as text. Attach one or more images as content
parts and ask about them in the same request: screenshot triage, document and
receipt extraction, image classification. Images are input only; the model
replies with text and does not generate images. See [Image input](/images) for
encoding, sizing, billing, and limits.

## celeris-1-magnus

**Celeris-1 Magnus** is more intelligent than celeris-1 and still fast, though
not as fast as celeris-1. Use
`celeris-1-magnus` in both the URL and the request body's `model` field.

| Property | Value |
| --- | --- |
| Model name (`model` field) | `celeris-1-magnus` |
| Context window | 131,072 tokens (prompt + requested maximum output) |
| Max output (`max_tokens`) | 16,384 tokens, also bounded by the remaining context window. Defaults to 2,048 when omitted. |
| Input | Text and images (see [Image input](/images)) |
| Output | Text or structured tool calls |
| Response mode | Complete JSON responses or OpenAI-compatible SSE streaming |

Celeris-1 Magnus reasons before it answers unless the request sets
`chat_template_kwargs: {"enable_thinking": false}`. The working can be returned
separately from the final content; see [Reasoning](/making-requests#reasoning). Tool definitions
use the same [`tools` and `tool_choice`](/making-requests#tool-calling) request
fields as celeris-1.

> **[The output limit is part of the context window]**
Prompt tokens plus `max_tokens` must be at most 131,072, and `max_tokens` must
not exceed 16,384. Requests outside either limit are rejected with a
[`400`](/errors#400).
> **## celeris-1-decision**

**`celeris-1-decision`** answers typed questions about your data, text or
images, and returns probabilities. It supports two API formats:

- [OpenAI Decisions API](/decisions#openai-decisions-api), `POST /v1/decisions`, with the OpenAI SDK.
- [System One API](/decisions#system-one-api), `POST /v1/systemone`, with the Jev SDK.

Both endpoints share the model's price and rate limits. This model does not
serve the chat, Responses, or models endpoints.

| Property | Value |
| --- | --- |
| Model name (`model` field) | `celeris-1-decision` |
| Context window | 131,072 tokens. A fixed part is reserved for the answers, so the input limit is slightly lower. |
| Max output | Set by your questions. There is no `max_tokens`; see [Request limits](/decisions#request-limits). |
| Input | Text and images (see [Decisions](/decisions)) |
| Output | Probabilities for each question, with an optional explanation |
| Response mode | Complete JSON responses. No streaming. |

## Model routing and base URLs

The model you're calling is part of the URL path, ahead of the standard
OpenAI-style `/v1/...` suffix:

```text
https://inference.celeris.ai/<model>/v1
```

For Celeris-1 Magnus:

```text
https://inference.celeris.ai/celeris-1-magnus/v1
```

Two things must agree:

1. the model segment of the URL path, and
2. the `model` field in the request body.

A request whose path names an unavailable model returns **`404 Not Found`**.
If the path is correct but the `model` body field does not match, the API
returns a validation error.

You can list what a base URL serves with the standard models endpoint:

```bash
curl https://inference.celeris.ai/celeris-1/v1/models \
  -H "Authorization: Bearer $CELERIS_API_KEY"
```

## Regions

Celeris aims to serve requests as close as possible to customers. The global
base URL above selects the best available nearest region automatically, so most
callers do not need to pick one. We recommend it for most customers.

### Regional endpoints

A regional endpoint routes requests preferentially to a specific region. Use one
when you want to target that region for latency or networking reasons:

| Region | Base URL |
| --- | --- |
| US East (`celeris-1`) | `https://us-east-1.aws.inference.celeris.ai/celeris-1/v1` |

During capacity constraints or maintenance, Celeris may temporarily serve a
regional endpoint's requests from another region to maintain availability.

Whichever base URL you use, record end-to-end latency and the
[`Server-Timing` header](/measuring-latency); streaming requests also need a
client-side time-to-first-token measurement.
