---
title: "MERCURY Cited Availability Probe"
method: GET
path: "/buy/availability"
tags: ["cited-availability", "uptime", "uptime-monitoring", "status-probe", "availability", "sla", "sla-evidence", "health-check", "vendor-risk", "incident-timeline", "attestation", "provenance", "verifiable-data-record", "agent-native", "keyless", "data-feed"]
---

# MERCURY Cited Availability Probe

`GET /buy/availability`

## Request

- Base URL: `https://network.mercury-hq.com`
- URL: `https://network.mercury-hq.com/buy/availability`
- Auth: none declared
- TypeScript: <https://skmtc.dev/mercury-hq/apis/mercury-x402-storefront/docs/buy/availability/get.ts> (a function with typed inputs; its response is checked against the schema)

URL → a signed uptime/status probe: up/down, HTTP status + class, reachability reason, final URL after redirects, and a measured responseMs — wrapped in an offline-verifiable provenance receipt that makes "it was up/down at T" provable SLA evidence. Deterministic verdict (responseMs is telemetry, not signed). Keyless, no LLM, no signup.

## Query parameters

- `url` string, required: the endpoint/page to probe for availability (http/https)

## Response `200`

Delivered after the x402 payment settles on Base mainnet.

- object
  - `ok` boolean, required: true once the PROBE completed (the host was reached at the network/HTTP layer); false only when the probe itself could not be performed against a reachable host
  - `url` string, required: final URL after redirects (or the requested URL when unreachable)
  - `status` integer, nullable: upstream HTTP status observed (null when the host never responded)
  - `text` string: canonical sorted-key JSON of the signed verdict — the exact string the receipt signs over (responseMs deliberately excluded for determinism)
  - `fetchedAt` string: ISO-8601 probe time (provenance metadata bound by the receipt)
  - `data` object: the deterministic availability verdict
    - `up` boolean, required: true iff the host responded with a non-error class (2xx/3xx)
    - `reachable` boolean, required: true iff the host produced ANY HTTP response (a 4xx/5xx host is reachable but not up)
    - `httpStatus` integer, nullable, required: the observed HTTP status, or null when unreachable
    - `responseClass` '1xx-informational' | '2xx-success' | '3xx-redirect' | '4xx-client-error' | '5xx-server-error' | 'unknown' | 'none', required
    - `reason` string, required: stable reachability category: ok | <http class> | dns-failure | timeout | connection-refused | connection-reset | tls-error | redirect-loop | blocked-ssrf | invalid-url | unreachable
    - `responseMs` integer, nullable: measured round-trip ms (TELEMETRY — NOT part of the signed text; non-deterministic by nature)
    - `rubric` string, required: verdict rubric version id
  - `attestation` object: EIP-191 provenance receipt over the canonical verdict text — verifiable OFFLINE by anyone (key pinned at /.well-known/mercury-attestation). Proves MERCURY observed THIS up/down + status at THIS time. The SLA-evidence wedge a free uptime checker structurally cannot emit.
  - `error` string: present only when ok:false (the probe could not be performed)

## Other responses

- `402`: Payment Required — retry with an x402-signed payment (e.g. x402-fetch). Terms are in the challenge body (x402 v1).

---

[API](https://skmtc.dev/mercury-hq/apis/mercury-x402-storefront.md) - [All operations](https://skmtc.dev/mercury-hq/apis/mercury-x402-storefront/llms.txt) - [OpenAPI document](https://skmtc.dev/mercury-hq/apis/mercury-x402-storefront/revisions/211aa7db24ae?raw)
