Endpoints
System & Node
Static status of the API frontend (ok/stage/message).
Response schema & example
{
"ok": true,
"service": "rvn-api",
"stage": "live",
"message": "Data endpoints active"
}
Server + daemon metrics. Values may be approximate during initial sync.
Response schema & example
// 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.
Response schema & example
// 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
}
Explorer API
Lightweight readiness ping.
Response schema & example
{
"ok": true,
"ready": true,
"blocks": 414399
}
Indexing progress (DB vs last indexed height).
Response schema & example
{
"ok": true,
"last_indexed_height": 414399,
"blocks_in_db": 414399
}
GET /api/blocks/recent?limit=10Try
Most recent blocks in the database.
Response schema & example
// 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 }
]
}
Explorer API v1
Public chain/index status for explorer clients. This avoids server-admin details and focuses on Ravencoin chain state.
GET /api/v1/blocks/latest?limit=10Try
Latest indexed blocks with height, hash, time, size, difficulty and transaction count.
Response schema & example
{
"ok": true,
"data": {
"items": [{
"height": 4377000,
"hash": "000000...",
"time": 1779440000,
"time_iso": "2026-05-22T09:46:40Z",
"size": 770,
"difficulty": 32301.72,
"tx_count": 3
}]
},
"meta": { "limit": 10 }
}
GET /api/v1/block/{height_or_hash}
Block detail by height or exact block hash.
GET /api/v1/block/{height_or_hash}/txs?limit=25&offset=0
Paged transaction list for a block. No total count is returned; has_more is determined with LIMIT + 1.
GET /api/v1/tx/{txid}?output_limit=10&output_offset=0
Transaction detail with paged outputs. Inputs currently report input_status: unavailable until vin indexing/backfill exists.
Output pagination
// Query params
output_limit: 1..500, default 25
output_offset: 0 or higher, default 0
// Meta fields
{
"outputs_limit": 10,
"outputs_offset": 0,
"outputs_returned": 10,
"outputs_has_more": true,
"outputs_hard_limit": 10000
}
GET /api/v1/search?q=...
Exact search for block height, block hash, txid, or address. No wildcard or partial address search.
GET /api/v1/address/{address}?utxo_limit=0
Light address summary with balance. Use the separate UTXO endpoint for cursor-paged UTXO browsing.
Address summary meta
// Query params
utxo_limit: 0..100, default 25; use 0 for summary-only
// Meta fields
{
"utxo_limit": 0,
"utxo_offset": 0,
"utxo_status": "available",
"has_more": false,
"history_status": "received_only",
"asset_status": "unavailable"
}
For very large addresses, the summary can still return balance while reporting utxo_status: limited_query_timeout and an empty UTXO page.
GET /api/v1/address/{address}/utxos?limit=10&cursor=...
Cursor-paged UTXO list for an address. This keeps large wallets usable without deep offset pagination.
UTXO cursor pagination
// Query params
limit: 1..100, default 25
cursor: optional next_cursor from the previous response
// Meta fields
{
"limit": 10,
"next_cursor": "eyJibG9ja19oZWlnaHQi...",
"has_more": true,
"utxo_status": "available",
"pagination": "cursor"
}
GET /api/v1/address/{address}/txs?limit=10&cursor=...
Received-only address transaction history from the dedicated address_tx index. Use next_cursor for pagination; outgoing/spent history remains unavailable until vin indexing/backfill exists.
Address history pagination
// Query params
limit: 1..100, default 25
cursor: optional next_cursor from the previous response
// Meta fields
{
"limit": 10,
"next_cursor": "eyJibG9ja19oZWlnaHQi...",
"has_more": true,
"history_status": "received_only",
"pagination": "cursor",
"direction_status": {
"received": "available",
"spent": "unavailable_needs_vin_index",
"outgoing": "unavailable_needs_vin_index"
}
}
GET /api/v1/address-tx/backfill-statusTry
Lightweight progress endpoint for the address history backfill job. It reads sync state only; it does not count heavy tables live.
PLANNED /api/stats/tx-per-day?days=30
Planned daily transaction counts; not live yet.
PLANNED /api/stats/addresses-per-day?days=30
PLANNED /api/stats/fees-per-day?days=30
PLANNED /api/stats/blocks-per-hour?hours=48
Response schema & example
// 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 }
]
}