ORD/api — one REST interface, 12 chains
Read blockchain data from twelve nodes — Litecoin, Dogecoin, Bitcoin, BSV, BCH, Namecoin, Ravencoin and more — through a single unified, keyless REST API.
Quickstart
No sign-up, no key. Pick a chain and call an endpoint. The base URL is https://api.ordnet.io/v1.
# Get Litecoin chain info — no API key needed
curl -fsS https://api.ordnet.io/v1/ltc/chain/info | jq .
# Get a Dogecoin block by height
curl -fsS https://api.ordnet.io/v1/doge/block/height/5000000 | jq .
# List every supported chain with live height
curl -fsS https://api.ordnet.io/v1/chains | jq .
# Invalid input returns a clean 4xx (never a 500)
curl -i https://api.ordnet.io/v1/notachain/chain/info
curl -i https://api.ordnet.io/v1/doge/block/height/not-a-numberAuthentication
Please keep requests within reasonable rates so the free service stays fast for everyone. Heavy or automated traffic may be rate-limited (see below). The only state-changing endpoint is POST /{chain}/tx/broadcast — everything else is read-only.
Fair use & rate limits
Keyless and free, kept healthy with fair-use limits per IP. When you exceed a limit the API responds with 429 Too Many Requests and a Retry-After header — back off and retry after the given number of seconds.
| Tier | Limit | Applies to |
|---|---|---|
| Standard | 60 req / min / IP | chain info, blocks, tx, address, mempool, network |
| Heavy | 10 req / min / IP | raw block, full address history, mempool dumps, broadcast |
HTTP/1.1 429 Too Many Requests
Retry-After: 30
Content-Type: application/problem+jsonSupported chains
Twelve nodes behind one interface. Use the {chain} path segment (lowercase ticker) to target a network, or call /chains for the live list.
Response format
Every successful response is application/json, UTF-8 encoded. Amounts are returned in whole coin units as decimals (e.g. 125.40000000), block times are Unix seconds, and hashes are lowercase hex. Errors use application/problem+json (see below).
Error format
Errors follow RFC 9457 — Problem Details for HTTP APIs. Invalid input always returns a clean 4xx with a machine-readable body — never a raw stack trace or HTML error.
{
"type": "https://api.ordnet.io/problems/invalid-chain",
"title": "Invalid chain",
"status": 400,
"detail": "Chain 'foo' is not supported.",
"instance": "/v1/foo/chain/info"
}| Status | Meaning |
|---|---|
| 400 | Invalid chain or malformed parameter (e.g. non-numeric height) |
| 404 | Resource not found (unknown block, tx or route) |
| 429 | Rate limit exceeded — includes Retry-After |
| 503 | Node temporarily unavailable |
| 500 | Internal error — still returned as a problem body, never HTML |
Broadcast safety
Recommended flow before any broadcast:
1. POST /{chain}/tx/decode — confirm the transaction decodes to what you expect.
2. POST /{chain}/tx/validate — dry-run; checks the node would accept it, returns fee and size, but does not broadcast.
3. POST /{chain}/tx/broadcast — only after validation, and only on an explicit user action.
Never call /tx/broadcast from automated tests or smoke checks. It is covered by the strictest rate-limit tier and has a maximum payload size.
OpenAPI & agents
The API is built to be consumed by tools, SDKs and AI agents without scraping these docs.
| Resource | Purpose |
|---|---|
| GET /openapi.json | OpenAPI 3.1 spec — the source of truth for SDK generation and tooling |
| GET /llms.txt | Plain-text guide for LLM tooling: base URL, no-key, and which routes are state-changing |
| GET /chains | Live machine-readable list of supported chains and heights |