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.