Developers
Two APIs for your own tools, sites and agents. The game data API is public: facts about items, ships, modules, skills, recipes, regions and systems, the same content the Database shows. The Market API is part of the Vanguard Charter: read order books and place and cancel buy and sell orders for your own pilots, with the same fees and rules as in game.
Game data API
No sign-in needed. Answers are cached for 5 minutes, carry an ETag (send If-None-Match for a 304) and allow cross-site GET from any web page. Lists are paged: page from 1 and limit up to 500 (default 100); q matches words in the name or id.
| Method | Path | Scope | What it does |
|---|---|---|---|
GET | / | none | The collections, their counts and the data version |
GET | / | none | Every public item (filter: category) |
GET | / | none | Hulls with their stats and skill needs (filter: class) |
GET | / | none | Modules (filters: slot, kind) |
GET | / | none | Skills (filter: group) |
GET | / | none | Manufacturing recipes |
GET | / | none | Regions and their systems |
GET | / | none | Star systems and their gate links (filter: region) |
GET | / | none | One entry |
curl https://xetodus.com/api/v1/data/ships?class=skirmisher&limit=5
Galaxy-wide prices come from the market page's feed: GET /api/market (every public item) and GET /api/market/{item} (one item with daily history). Without a token the data API allows 60 requests a minute per address; with a token that has data:read, 600 a minute.
Market API
Get a token
In the game, open Account settings › API access (Vanguard members). Name the token, choose what it may do and which pilot (or all of them), pick how long it lasts (7, 30, 90, 365 days), confirm with your password (and your second factor if you use one) and copy the token. It is shown once. Up to 10 tokens can be active at a time.
| Scope | Allows |
|---|---|
market:read | Your pilots, the station summary, order books and your open orders |
market:trade | Placing and canceling orders |
data:read | The game data API at the higher limit |
A token can never sign in, change account settings, move credits between pilots, use contracts or do anything outside its scopes. It stops working when you revoke it, when it expires, when you change your password or two-step settings or sign out other devices, and when the Charter ends. Keep it secret and send it only in the Authorization header, never in a URL.
Endpoints
| Method | Path | Scope | What it does |
|---|---|---|---|
GET | / | market:read | Your pilots: where each is docked and its credits |
GET | / | market:read | Best bid and ask of every item at that pilot's station |
GET | / | market:read | One item's order book at that station (100 levels a side) |
GET | / | market:read | The pilot's open orders at every station |
POST | / | market:trade | Place an order (needs an Idempotency-Key header) |
DELETE | / | market:trade | Cancel one of your open orders |
Money is always in centi-credits, whole numbers: 100 centi-credits are 1 credit. A token bound to one pilot may leave out pilot.
curl -H "Authorization: Bearer $XETODUS_TOKEN" https://xetodus.com/api/v1/market/pilots
curl -X POST https://xetodus.com/api/v1/market/orders \
-H "Authorization: Bearer $XETODUS_TOKEN" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: sell-ferrox-2026-10-29-001" \
-d '{"pilot": 1234, "item": "ore_ferrox", "side": "sell", "quantity": 500, "priceCenti": 1250, "mode": "limit"}'
How orders work
- Orders are placed at the station where the pilot is docked right now, from that station's hangar. A pilot in space can't trade, as in game.
limit: what doesn't fill atpriceCentior better rests on the book.market: fills now atpriceCentior better (the most a buy pays, the least a sell takes); the rest is not placed.- Broker fees, sales tax, escrow, order slots, hangar space, Vanguard-only items and every other market rule are the game's own: the API can't do anything you couldn't do in the Market window.
- Send a fresh
Idempotency-Key(8 to 64 letters, digits,. _ : -) with every new order. Sending the same key and body again returns the first answer and never trades twice; the same key with a different body is refused. A refused order frees its key. - Canceling returns a buy order's unspent credits or a sell order's unsold goods; fees already paid are not returned.
- API trades earn no Trading XP, achievements or quest progress. Automated trading is allowed through the API for Vanguard members; automating the game client itself is not.
Limits
| Calls | Per token, a minute | Per account, a minute |
|---|---|---|
| Market reads | 120 | 240 |
| Orders and cancels | 30 | 60 |
| Data | 600 | 1200 |
Over a limit the answer is 429 with a Retry-After header. Too many failed token checks from one address lock it out for 15 minutes.
Errors
Every error is JSON: {"code": "not_docked", "error": "The pilot must be docked at a station to trade"}, with an x-request-id header to quote if you contact support.
| Status | Meaning |
|---|---|
| 400 | Invalid request: a missing or unknown field, a bad number, no Idempotency-Key |
| 401 | Missing, unknown, expired or revoked token |
| 403 | The token lacks the scope, the Charter ended, or the account can't trade right now |
| 404 | No such pilot, order or entry for this token |
| 409 | Not docked, or an Idempotency-Key conflict |
| 422 | The game refused the order (not enough credits or goods, no free order slot) |
| 429 | Rate limited |
| 503 | API trading is paused for a moment |
Scopes in this version: market:read, market:trade, data:read. Questions and ideas are welcome on the community Discord.
