API documentation
Endpoint
POST https://node.olenza.io/v1/rpc/{chain}
Chains: btc. The body is a standard JSON-RPC request, or an array of them for a batch.
Authentication
Send your API key in a header:
X-API-Key: olz_…
Authorization: Bearer olz_… (either one)
If your client cannot set headers, put the key in the path: https://node.olenza.io/v1/rpc/{chain}/olz_…. Prefer headers — URLs end up in logs.
Example
curl https://node.olenza.io/v1/rpc/btc \
-H "X-API-Key: $OLENZA_KEY" \
--data '{"jsonrpc":"1.0","id":1,"method":"getblockcount","params":[]}'
Limits and headers
Every response carries your current limits:
| Header | Meaning |
|---|---|
X-RateLimit-Limit | Burst size of your plan |
X-RateLimit-Remaining | Requests you can send right now |
X-RateLimit-Reset | Seconds until the burst is fully refilled |
X-Quota-Daily-Remaining | Units left today (UTC) |
X-Quota-Monthly-Remaining | Units left this month (UTC) |
Errors
Errors are JSON-RPC error objects. error.data.reason is a stable code:
| HTTP | Reason | What to do |
|---|---|---|
| 401 | MISSING_API_KEY, INVALID_API_KEY | Check the key |
| 403 | KEY_REVOKED | The key was revoked — create a new one |
| 403 | ACCOUNT_SUSPENDED | Contact support |
| 403 | CHAIN_NOT_IN_PLAN, PLAN_UNAVAILABLE | Your plan does not cover this — upgrade or contact support |
| 403 | METHOD_NOT_ALLOWED | The method is not available — see the list below |
| 404 | CHAIN_NOT_FOUND | Check the chain in the URL |
| 400 | INVALID_REQUEST, BATCH_TOO_LARGE | Fix the request |
| 413 | REQUEST_TOO_LARGE | Send a smaller request |
| 429 | RATE_LIMITED | Wait Retry-After seconds |
| 429 | DAILY_QUOTA_EXCEEDED, MONTHLY_QUOTA_EXCEEDED | Wait for the next UTC day/month, or upgrade |
| 502 | NODE_ERROR | Retry shortly; not charged |
| 503 | NODE_SYNCING, NODE_UNAVAILABLE, SERVICE_UNAVAILABLE | Retry shortly; not charged |
Errors returned by the node itself (for example "Block not found") are passed through unchanged.
Available methods
Only these methods are available. Wallet, peer, node-control and UTXO-set scan methods are not. Weight = units charged per call.
BTC
| Method | Weight |
|---|---|
analyzepsbt | 2 |
combinepsbt | 1 |
combinerawtransaction | 1 |
converttopsbt | 1 |
createmultisig | 1 |
createpsbt | 1 |
createrawtransaction | 1 |
decodepsbt | 1 |
decoderawtransaction | 1 |
decodescript | 1 |
deriveaddresses | 2 |
estimatesmartfee | 1 |
finalizepsbt | 1 |
getbestblockhash | 1 |
getblock | 5 |
getblockchaininfo | 1 |
getblockcount | 1 |
getblockhash | 1 |
getblockheader | 1 |
getblockstats | 10 |
getchaintips | 2 |
getchaintxstats | 2 |
getdeploymentinfo | 2 |
getdescriptorinfo | 1 |
getdifficulty | 1 |
getindexinfo | 1 |
getmempoolancestors | 2 |
getmempooldescendants | 2 |
getmempoolentry | 1 |
getmempoolinfo | 1 |
getmininginfo | 1 |
getnetworkhashps | 2 |
getrawmempool | 10 |
getrawtransaction | 2 |
gettxout | 1 |
gettxoutproof | 2 |
gettxspendingprevout | 2 |
joinpsbts | 1 |
sendrawtransaction | 5 |
submitpackage | 5 |
testmempoolaccept | 3 |
utxoupdatepsbt | 2 |
validateaddress | 1 |
verifymessage | 1 |
verifytxoutproof | 2 |