API Reference
HTTP API endpoints exposed by an XE node
Every XE node can serve an HTTP API. It is on by default (--api) and listens
on 127.0.0.1:8080; --api-bind and --api-port move it.
All endpoints return JSON. Amounts are plain JSON numbers in micro-units
(1 XE = 1,000,000 µXE, and the same for XUSD); hashes and account addresses
are hex strings. The two proof-of-work difficulty thresholds in GET /node are
also hex strings — their values sit near 2^64, past the integer-safe range of a
JavaScript number.
A node serves its own route table at GET /. That manifest is generated from
the same list the router registers from, so it is always an exact description
of the node you are talking to — use it, not this site, to settle a question
about a specific node.
The pages in this section render the OpenAPI spec: each operation has a schema, code samples, and an interactive playground. The playground's default server is a public testnet node; point it at your own node to call that instead.
- Accounts — balances, per-account chain reads, reputation
- Blocks — block submission and lookup
- Chat — peer-to-peer messaging
- Directory — account-to-peer directory
- Leases — compute lease lifecycle and providers
- VMs — provider-side VM management
- Node — node health, frontiers, pending sends, conflicts, delegation
- State Chain — governance reads and writes
Some endpoints are operator-only and require an admin bearer token, set on the
node via XE_API_ADMIN_TOKEN: POST /lease/request, and GET /chat/events
when called without an account parameter (the unfiltered firehose). With no
token configured on the node they answer 403; with one configured, a missing
or wrong token answers 401. Reading a single account's chat history instead
requires an ownership proof for that account, not the admin token.