Use with cURL
curl -s https://api.ravencoinexplorer.com/api/ready | jq .
curl -s https://api.ravencoinexplorer.com/api/progress | jq .
curl -s 'https://api.ravencoinexplorer.com/api/blocks/recent?limit=5' | jq .
Production‑ready endpoints to power explorers, bots and dashboards.
Indexing note: the Ravencoin node is synced, but the database index is still catching up. Live endpoints work; historical coverage becomes complete once `/api/progress` reaches the node height.
Base URL
Auth & Rate Limits
CORS
curl -s https://api.ravencoinexplorer.com/api/ready | jq .
curl -s https://api.ravencoinexplorer.com/api/progress | jq .
curl -s 'https://api.ravencoinexplorer.com/api/blocks/recent?limit=5' | jq .
const BASE = 'https://api.ravencoinexplorer.com';
async function progress(){
const r = await fetch(`${BASE}/api/progress`, {cache:'no-store'});
if(!r.ok) throw new Error('HTTP '+r.status);
return r.json();
}
progress().then(console.log).catch(console.error);
import requests
BASE = "https://api.ravencoinexplorer.com"
p = requests.get(f"{BASE}/api/progress", timeout=10).json()
print(p)
recent = requests.get(f"{BASE}/api/blocks/recent", params={"limit": 5}, timeout=10).json()
print(recent["items"][0])
import fetch from 'node-fetch';
const BASE = 'https://api.ravencoinexplorer.com';
const r = await fetch(`${BASE}/api/blocks/recent?limit=5`);
const data = await r.json();
console.log(data.items.map(b => ({height:b.height, hash:b.hash})));
Static status of the API frontend (ok/stage/message).
{
"ok": true,
"service": "rvn-api",
"stage": "live",
"message": "Data endpoints active"
}
Server + daemon metrics. Values may be approximate during initial sync.
// Schema (types)
{
ok: boolean,
db_blocks: number,
db_txs: number,
db_utxo: number,
rpc_blockcount: number,
rpc_connections: number,
rpc_mempool: number,
// optional: cpu_percent, mem_percent, disk_percent, uptime_sec, net_bytes_sent, net_bytes_recv
}
// Example
{
"ok": true,
"db_blocks": 411400,
"db_txs": 1616929,
"db_utxo": 8816794,
"rpc_blockcount": 3972652,
"rpc_connections": 24,
"rpc_mempool": 2
}
Ravencoin node state from RPC.
// Schema (types)
{
ok: boolean,
chain: "main" | "test" | string,
blocks: number,
headers: number,
difficulty: number,
verificationprogress: number, // 0..1
connections: number,
version: number,
subversion: string,
mempool_tx: number
}
// Example
{
"ok": true,
"chain": "main",
"blocks": 3972652,
"headers": 3972652,
"difficulty": 58499.30207850935,
"verificationprogress": 0.9999964151,
"connections": 24,
"version": 4060100,
"subversion": "/Ravencoin:4.6.1/",
"mempool_tx": 2
}
Lightweight readiness ping.
{
"ok": true,
"ready": true,
"blocks": 414399
}
Indexing progress (DB vs last indexed height).
{
"ok": true,
"last_indexed_height": 414399,
"blocks_in_db": 414399
}
Most recent blocks in the database.
// Query params: limit (1..100), default 10
{
ok: true,
items: [{
height: number,
hash: string, // hex
time: string, // UTC ISO or "YYYY-MM-DD HH:mm:ss"
size: number, // bytes
difficulty: number
}, ...]
}
// Example (truncated)
{
"ok": true,
"items": [
{ "height": 403599, "hash": "000000...8BB0D", "time": "2018-10-14 09:10:52", "size": 970, "difficulty": 41861.4569 }
]
}
Planned daily transaction counts; not live yet.
// Query params: days (1..90), default 30
{
ok: true,
items: [{
day: "YYYY-MM-DD",
tx_count: number
}, ...]
}
// Example (values illustrative)
{
"ok": true,
"items": [
{ "day": "2025-08-01", "tx_count": 1245 },
{ "day": "2025-08-02", "tx_count": 1311 }
]
}
We use standard HTTP codes. Body format:
{
"ok": false,
"error": "human-readable message",
"code": "optional_machine_code"
}
For list endpoints we support simple limits now (e.g. ?limit=10). Cursor‑based pagination will follow for heavy lists.
Short‑lived caches may apply. Use cache: 'no-store' in browsers if you poll live.
We add fields without breaking existing ones. If we deprecate, we’ll announce in advance.