# Provider data policies

> What each provider endpoint declares about data collection, retention and location, where to read it, and how to route only to endpoints that meet your requirements.

Source: https://0.0.0.0:3000/docs/privacy/provider-data-policies
Documentation index: https://0.0.0.0:3000/docs/llms.txt

Every provider endpoint declares how it handles the requests it serves: whether it collects data, how long it retains it, and where it processes requests. You can read these declarations before you send traffic and filter on them per request, so a request that must not be retained never reaches an endpoint that says it keeps data.

## What an endpoint declares

| Declaration | Values | Meaning |
| --- | --- | --- |
| **Data collection** | Collects data, no data collection, or undeclared | Whether the provider collects request data, for example for training |
| **Retention** | `none`, `limited`, `indefinite`, `unknown` | How long the provider keeps request data |
| **Maximum retention** | A number of days | The upper bound for `limited` retention |
| **Countries** | ISO country codes, such as `DE` | Where the endpoint processes requests |
| **Regions** | Region identifiers chosen by the provider | Finer-grained or multi-country locations |

An endpoint with retention `none` is a zero-data-retention (**ZDR**) endpoint.

:::warning Declarations are provider commitments
Declarations are the provider's contractual commitments, reviewed at approval. Apply your own diligence for regulated workloads.
:::

## Where to read the declarations

Open [Compare providers](/dashboard/providers) in the dashboard and select a provider. Its **Endpoints and data terms** section lists each endpoint with its state, how many models it serves and its data terms:

| Badge | Meaning |
| --- | --- |
| **Collects data**, **No data collection** or **Collection undeclared** | The collection declaration |
| **Retention: none**, **limited**, **indefinite** or **unknown** | The declared retention, followed by **· Nd max** when a maximum is declared |
| Country and region badges | The declared locations |

[`GET /models/{author}/{slug}/endpoints`](/docs/api-reference/models/list-model-endpoints) returns each endpoint's `tag` for `provider.only` and `provider.order`, but not its data terms. Use the dashboard to read them, or filter with the preferences below and let routing enforce them.

## Filter endpoints per request

Three `provider` preferences restrict routing by declaration. Each is a hard filter: an endpoint that doesn't satisfy it is never tried, including during fallback.

:::fields provider
- `data_collection` `string` default `allow` — `deny` excludes every endpoint that declares it collects data, and every endpoint without a declaration.
- `zdr` `boolean` default `false` — `true` allows only endpoints that declare retention `none`.
- `regions` `string[]` — Allow only endpoints whose declared countries or regions include at least one of these values. Up to 64 unique values, matched case-insensitively. Each value starts with a letter or digit and may contain letters, digits, `.`, `_`, `:` and `-`, up to 64 characters.
:::

```request
{
  "method": "POST",
  "path": "/chat/completions",
  "title": "No collection, no retention, processed in DE, AT or CH",
  "body": {
    "model": "openai/gpt-6-luna",
    "messages": [{ "role": "user", "content": "Classify this support ticket." }],
    "provider": {
      "data_collection": "deny",
      "zdr": true,
      "regions": ["DE", "AT", "CH"]
    }
  }
}
```

The filters combine with each other and with the rest of the `provider` object, such as `sort`, `order`, `only` and `max_price`. `regions` is an extension to the OpenRouter API, which uses a separate base URL for regional routing. See [Provider routing](/docs/routing/provider-routing#data-collection-and-retention).

## When no endpoint qualifies

If no endpoint of the model satisfies every filter, the request fails before any provider is contacted, and nothing is charged:

```json title="503 Service Unavailable"
{
  "error": {
    "code": 503,
    "message": "no provider is available",
    "metadata": { "error_type": "provider_unavailable" }
  }
}
```

A request is never relaxed to a less private endpoint. Choose a model with a qualifying endpoint, or loosen a requirement you can live without. Strict filters can also leave fewer and more expensive endpoints, and fewer fallbacks when one is busy.

## Review and records

- **Review.** Declarations are reviewed when an endpoint is approved. When a provider changes a serving endpoint's declarations, the change is reviewed while the previously approved terms keep serving.
- **Routing.** Filters remove endpoints first. Default routing, `sort`, `order` and fallback then use only what remains.
- **Recorded location.** For each request, the platform records the regions you asked for and, when known, where the request was served. Both appear as dimensions in [Activity](/docs/account/activity).

Misrepresenting a model, its capabilities, its usage or its data handling leads to suspension and to withholding or reversal of earnings.

Endpoint declarations cover what the provider does. For what Numes itself records, see [Data retention and logging](/docs/privacy/data-retention).

## Next steps

:::cards
- {database} [Data retention and logging](/docs/privacy/data-retention) What the platform records and what providers see.
- {network} [Provider routing](/docs/routing/provider-routing) Every routing preference and how they combine.
- {shield-check} [Verification and trust](/docs/routing/verification) The checks an endpoint passes before it takes traffic.
- {globe} [Models](/docs/models) Find models and their endpoints.
:::
