# Status

> Check whether Deference is working, read each part's uptime and incidents, and subscribe to updates.

[Status](https://deference.si/status) is public. Check it when sign-in, requests or credit additions are delayed. It shows the latest checks, uptime over the last 90 days and published incidents. [Stats](https://deference.si/docs/stats) covers usage and reserve figures.

## Check the overall state

The page title is the overall state. Under it, the age of the last check reads "Checked 54 s ago", or "Last checked 4 min ago" once the checks are older than 3 minutes. Checks run every 60 seconds.

| State                         | Meaning                                                                 |
| ----------------------------- | ----------------------------------------------------------------------- |
| All systems operational       | Every row is operational                                                |
| Degraded performance          | A row is slow or partly failing                                         |
| Partial outage                | A row is down                                                           |
| Major outage                  | API is down together with Models via OpenRouter, or with two other rows |
| Some checks are not reporting | Everything that reports is operational, but a row reads Unknown         |
| Status unknown                | No row has reported recently                                            |

## Read each row

Find the row for the action that failed. Each has a state: Operational, Degraded, Down or Unknown. The median check time appears under its name when timing data is available. For Models via OpenRouter, **Median … to reach** measures reaching OpenRouter, rather than the time to generate a model response.

A row is Down after three failed checks in a row, and Degraded when its check is slow or partly failing. A check older than three minutes gives the row an Unknown state. Unknown time does not count toward uptime.

| Row                   | What it checks                                                                                                                                            |
| --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| API                   | That the API answers `GET /v1/models/{id}`                                                                                                                |
| Models via OpenRouter | That models answer: OpenRouter's model data each minute, a one-token completion every 5 minutes, and the share of requests through Deference that succeed |
| Ethereum              | That the chain keeps producing blocks. The row is named for the chain the site runs on: Ethereum, Ethereum Sepolia or Local chain                         |
| Deposits              | How quickly a payment on chain becomes credit. The row adds the current estimate, such as "Credited in about 16 s"                                        |
| Website and dashboard | That the site loads                                                                                                                                       |
| Sign-in               | That the sign-in provider can be reached. New sign-ins need it. API keys, open sessions and requests keep working without it                              |

## Read the uptime bars

Each row shows 90 daily bars, or the last 30 on a narrow screen, with its uptime over the same window beside its state. Hover or focus a day to read it: "99.2% up", "12 min degraded", "Not checked" or "No data". Degraded time counts as up, and unknown time is left out.

The bars start on the first day a row was checked. Earlier days are grey, read "No data", and never count as down time.

## Follow incidents

Read an open incident above the rows for its affected services and latest update: Investigating, Identified, Monitoring or Resolved. Its impact can raise the page's reported severity.

Resolved incidents stay under **Incidents** for 90 days, with their duration and a **Post-mortem** link when available. Incidents are written manually. A failed check can colour a daily bar even when no incident has been published, so check both the bars and the incident history.

## Subscribe

**Subscribe** offers an RSS feed, with one item per incident update, and the status as JSON.

```bash
curl https://deference.si/api/status.json
```

`/api/status.json` follows Statuspage v2 (`page`, `status`, `components`, unresolved `incidents`), plus `recent_incidents` for 90 days and a `meta` block with the method. `status.indicator` is `none`, `minor`, `major`, `critical` or `unknown`. Component statuses are `operational`, `degraded_performance`, `major_outage` or `unknown`. A `503` with indicator `unknown` means the status data cannot be read right now. The RSS feed is at `/api/status/feed.xml`.
