{
  "page": {
    "id": "deference",
    "name": "Deference",
    "url": "https://deference.si/status",
    "time_zone": "Etc/UTC",
    "updated_at": "2026-10-09T14:37:33.377Z"
  },
  "status": {
    "indicator": "none",
    "description": "All systems operational"
  },
  "components": [
    {
      "id": "gateway",
      "name": "API gateway",
      "description": "The /v1 API: chat completions, messages, responses and embeddings.",
      "status": "operational",
      "position": 1,
      "group": false,
      "only_show_if_degraded": false,
      "updated_at": "2026-10-09T14:37:11.000Z",
      "checked_at": "2026-10-09T14:37:11.000Z",
      "age_seconds": 22,
      "source": "probe",
      "latency_ms": 48,
      "uptime_90d": 0.99534,
      "median_latency_ms_90d": 149,
      "detail": "HTTP 200 in 48 ms"
    },
    {
      "id": "upstream",
      "name": "Model upstream",
      "description": "Our model provider (OpenRouter): reachability, a real one-token completion and recent traffic.",
      "status": "operational",
      "position": 2,
      "group": false,
      "only_show_if_degraded": false,
      "updated_at": "2026-10-09T14:37:11.000Z",
      "checked_at": "2026-10-09T14:37:11.000Z",
      "age_seconds": 22,
      "source": "probe",
      "latency_ms": 26,
      "uptime_90d": 1,
      "median_latency_ms_90d": 274,
      "detail": "metadata ok (HTTP 200 in 26 ms); completion (3 min ago): mistralai/mistral-nemo answered in 714 ms"
    },
    {
      "id": "rpc",
      "name": "Chain RPC",
      "description": "The blockchain node we read and write through, and how fresh its newest block is.",
      "status": "operational",
      "position": 3,
      "group": false,
      "only_show_if_degraded": false,
      "updated_at": "2026-10-09T14:37:11.000Z",
      "checked_at": "2026-10-09T14:37:11.000Z",
      "age_seconds": 22,
      "source": "chain",
      "latency_ms": 208,
      "uptime_90d": 1,
      "median_latency_ms_90d": 196,
      "detail": "block 11877989 in 208 ms, 12 s old"
    },
    {
      "id": "indexer",
      "name": "Chain indexer",
      "description": "Deposits and activations are credited to accounts once the indexer has seen them.",
      "status": "operational",
      "position": 4,
      "group": false,
      "only_show_if_degraded": false,
      "updated_at": "2026-10-09T14:37:11.000Z",
      "checked_at": "2026-10-09T14:37:11.000Z",
      "age_seconds": 22,
      "source": "chain",
      "latency_ms": null,
      "uptime_90d": 1,
      "median_latency_ms_90d": null,
      "detail": "0 blocks behind (cursor 11877987, confirmed head 11877987)"
    },
    {
      "id": "website",
      "name": "Website",
      "description": "The marketing site, docs and dashboard.",
      "status": "operational",
      "position": 5,
      "group": false,
      "only_show_if_degraded": false,
      "updated_at": "2026-10-09T14:37:11.000Z",
      "checked_at": "2026-10-09T14:37:11.000Z",
      "age_seconds": 22,
      "source": "probe",
      "latency_ms": 100,
      "uptime_90d": 0.99534,
      "median_latency_ms_90d": 175,
      "detail": "HTTP 200 in 100 ms"
    },
    {
      "id": "sign_in",
      "name": "Sign-in",
      "description": "Our sign-in provider (Privy): whether its signing keys can be fetched. Existing sessions, API keys and inference do not depend on it.",
      "status": "operational",
      "position": 6,
      "group": false,
      "only_show_if_degraded": false,
      "updated_at": "2026-10-09T14:37:11.000Z",
      "checked_at": "2026-10-09T14:37:11.000Z",
      "age_seconds": 22,
      "source": "probe",
      "latency_ms": 302,
      "uptime_90d": 1,
      "median_latency_ms_90d": 316,
      "detail": "HTTP 200 in 302 ms"
    }
  ],
  "incidents": [],
  "recent_incidents": [],
  "scheduled_maintenances": [],
  "meta": {
    "version": 1,
    "as_of": "2026-10-09T14:37:33.377Z",
    "last_checked_at": "2026-10-09T14:37:11.000Z",
    "first_probe_date": "2026-10-09",
    "prober": "reporting",
    "probe_location": "single",
    "credit_confirmation": {
      "blocks_behind": 0,
      "confirmations": 2,
      "estimated_seconds": 28
    },
    "method": {
      "cadence_seconds": 60,
      "location": "All probes run from a single location: the Deference worker. We do not claim multi-region checks.",
      "unknown": "A component whose newest probe is older than 3 minutes reads Unknown (grey). Unknown is never shown as operational and is left out of uptime percentages.",
      "uptime": "Daily uptime is (up + degraded seconds) / (up + degraded + down seconds) over the probed time; degraded counts as available and is shown amber. Unknown time is excluded. The 90 days start at the first probe: days before it have no data and count neither way. This is our own rule, not Statuspage's.",
      "incidents": "Incidents are written by people. Probes never open or close one.",
      "probes": [
        {
          "component": "gateway",
          "what": "GET /v1/models/{id} on our own public origin, which exercises routing and the database.",
          "rule": "Non-2xx or no answer in 5 s is a failure. Slower than 2 s is degraded; a failure is degraded until 3 in a row, which is down."
        },
        {
          "component": "upstream",
          "what": "A metadata call to OpenRouter every 60 s, a real max_tokens=1 completion on the cheapest paid text model every 5 minutes (a second model is tried before declaring it down), and our own traffic over the last 5 minutes.",
          "rule": "The worst of the three counts. The metadata call follows the gateway rule. A failed completion (an error, or no answer in 20 s) is down and one slower than 10 s is degraded; its result counts for 15 minutes. Own traffic needs 10 requests: 20% failed is degraded, 50% is down. The source is shown with the state."
        },
        {
          "component": "rpc",
          "what": "Read the newest block from the chain node and compare its timestamp with the clock.",
          "rule": "The read follows the gateway rule. A newest block older than 2 minutes is degraded and older than 5 minutes is down; block age is not judged on a local test chain."
        },
        {
          "component": "indexer",
          "what": "How many blocks the chain indexer is behind the newest confirmed block.",
          "rule": "More than 15 blocks behind is degraded, more than 50 is down. An indexer that has not recorded a position yet is degraded; without a readable chain head it is not judged and reads Unknown."
        },
        {
          "component": "website",
          "what": "GET / on our own public origin.",
          "rule": "Same rule as the gateway."
        },
        {
          "component": "sign_in",
          "what": "GET Privy's public signing keys (JWKS) for our app, which every new sign-in needs.",
          "rule": "Same rule as the gateway."
        }
      ]
    },
    "extensions": [
      "status.indicator and components[].status may be \"unknown\": no fresh probe; never treat it as operational",
      "components[].uptime_90d, latency_ms, median_latency_ms_90d, source, checked_at, age_seconds, detail",
      "recent_incidents",
      "meta.first_probe_date: uptime starts on this day; earlier days have no data"
    ],
    "feed": "https://deference.si/api/status/feed.xml"
  }
}