Call Stellar RPC
The generic JSON-RPC endpoint: every Stellar RPC method is a POST / with a JSON-RPC 2.0 body, one call or a batch of up to 20. Each method has its own page with its parameters, result fields, credits and a real response, and its own Try it: getHealth, getNetwork, getLatestLedger, getVersionInfo, getFeeStats, getTransaction, getLedgerEntries, getLedgers, getTransactions, getEvents, simulateTransaction, sendTransaction.
- Send an id on every call: a call without one is a notification and gets an empty 204.
- The body limit is 1 MiB. Each call of a batch counts as one request against the plan RPC rate and the daily Testnet cap.
- A read-only key cannot call sendTransaction; a publishable key must send an allowed Origin and may call read-only methods only (not sendTransaction or simulateTransaction). See browser keys.
Authorizations
Send Authorization: Bearer <key>. Testnet: lum_test_…; Mainnet: lum_live_…. A key works only on its own network, so pick the server that matches it (the other network answers 401). Publishable lum_pub_… keys call read-only methods only, from an allowed browser origin. Dashboard sessions and webhook keys are not accepted.
Headers
Optional, and not used for deduplication: the response then carries X-Lumeus-Idempotency: ignored. To retry sendTransaction safely, resubmit the same signed envelope (the node answers DUPLICATE).
8 - 128"retry-0001-2026-10-22"
Body
One JSON-RPC 2.0 call, or an array of 1 to 20 calls. The body form below shows one method at a time; each method page (getHealth, getNetwork, getLatestLedger, getVersionInfo, getFeeStats, getTransaction, getLedgerEntries, getLedgers, getTransactions, getEvents, simulateTransaction, sendTransaction) documents its own params.
Returns the node status and the ledger retention window: the oldest and latest ledgers you can read. 1 credit plus one per started 64 KiB of response. Named params only (positional arrays are rejected). A params member set to null (as Python stellar-sdk sends for unset options) is treated as omitted at any depth.
Always 2.0.
2.0 Request ID, echoed in the response. Send one on every call: a call without an id is a notification, which runs but gets an empty 204 response. A string ID (at most 1024 bytes) also works and is echoed unchanged.
1
getHealth This method takes no parameters: omit params, send null (as stellar-sdk does) or send {}.
Response
The JSON-RPC response (an array for a batch). Check error before reading result.
A JSON-RPC 2.0 response: result on success, error otherwise. A JSON-RPC error can arrive with HTTP 200 (for example from the node, or for one child of a batch). Gateway errors carry the code string in error.data and the request ID in error.request_id; they echo your id when the body is a parseable single request and use a null id when it cannot be determined. Preserve integer IDs exactly; avoid unsafe JavaScript numeric IDs. The gateway never answers 502 or 504.
2.0 The id of your call, echoed unchanged (a string id comes back as a string). null when the gateway cannot read the id, for example for invalid JSON.