# 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 confirmed chain figures.

## Check the overall state

The page title is the overall state. Service checks run every 60 seconds. Keeper and provider balances are checked hourly.

| 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. When a median exists, it is in the hint beside the row name. For Models via OpenRouter, **Median … to reach** measures reaching OpenRouter, rather than the time to generate a model response.

Service reachability is Down after three failed checks in a row, and Degraded when its check is slow or partly failing. Balance rows are Degraded below their configured minimum and Down when the balance cannot be read. Service checks become Unknown after three minutes. Balance checks become Unknown after three hours. Unconfigured checks have no readings. 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                                                                                         |
| Chain reads           | That the chain keeps producing blocks                                                                                                                                                                                                             |
| Credit indexing       | How far the slowest active inference contract is behind the confirmed chain head. Missing contract cursors or an unreadable complete position are Degraded. The row adds the current activation-credit estimate, such as "Credited in about 16 s" |
| Keeper ETH balance    | ETH available for keeper transactions, compared with the configured minimum                                                                                                                                                                       |
| OpenRouter balance    | Provider credit minus usage, compared with the configured minimum                                                                                                                                                                                 |
| 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. After 30 days of readings, wide screens also show the uptime percentage beside the state. Narrow screens drop the bars and keep one line per component. Hover or focus a day to read it: how much of the day was up, plus degraded and down time when it had them, **Not checked**, or **No data, before monitoring began**. Degraded time counts as up, and unknown time is left out.

The bars start on the first day a row was checked. Earlier days read **No data, before monitoring began**, and do not 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 via RSS** gives one item per incident update and **Data (JSON)** serves 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. The RSS feed is at `/api/status/feed.xml`.
