# Models

## celeris-1

**`celeris-1`** is a diffusion language model optimized for short, structured
responses.

Unlike autoregressive LLMs, which produce output one token at a time, a
diffusion model can refine multiple output tokens in parallel. This approach
is well suited to 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).

Use another model for long-form generation. Celeris is intended for concise
outputs in latency-sensitive workflows.

| Property | Value |
| --- | --- |
| Model name (`model` field) | `celeris-1` |
| Context window | 8,192 tokens (prompt + requested maximum output) |
| Max output (`max_tokens`) | A positive multiple of 256, bounded only by the context window (prompt + `max_tokens` ≤ 8,192). Defaults to 2,048 when omitted. |
| Best at | Classification, extraction, scoring/judging, query rewriting, short structured output |
| 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 8,192, making the effective
input limit `8,192 - max_tokens`. Oversized requests are rejected up front with
a [`400`](/errors#400) rather than silently truncated. See
[Rate limits](/rate-limits) for workspace-level request limits.
> **## 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`:

```text
https://inference.celeris.ai/celeris-1/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 automatically selects the best available nearest region, so most
callers do not need to pick a serving region:

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

For most customers we recommend the global endpoint.

### 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 | `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.
