Free, open, read-only EVE Echoes market prices — the same live data that powers StarStock.
Base URL: https://api.starstock.app
Content-Type: application/json (except the CSV endpoints).Access-Control-Allow-Origin: *) — call it from any website or script.{ "ok": true, ... }; errors like { "ok": false, "error": "..." } with an HTTP 4xx/5xx status.429 with a reset_at timestamp — back off and retry after it./api/v1/catalog.json or /api/v1/items.csv once, not thousands of per-item calls.Most price fields come in two flavors: Jita (the main trade hub) and
Everywhere (best price across all hubs). Item-list fields cheapest_sell/cheapest_buy
are the Jita view; the CSV endpoints take ?scope=all to switch to Everywhere.
sell = lowest price to buy from, buy = highest price to sell into.
List items with their current prices, alphabetically.
| Param | Meaning |
|---|---|
| limit | page size, max 500 (default 100) |
| offset | skip N items for paging (default 0) |
| path | optional category path to filter to (see /categories) |
curl "https://api.starstock.app/api/v1/items?limit=2"
{ "ok": true, "items": [
{ "type_id": 12345, "name": "...", "path": "Ship/Frigate",
"cheapest_sell": 1250000, "cheapest_buy": 1100000,
"activity": "High", "icon_url": "icons/12345.png" }
] }
Full detail for one item: current prices, volume, spread, and time-weighted average prices over a window.
| Field | Meaning |
|---|---|
| average_sell / average_buy | Jita average over the window |
| average_everywhere_sell / average_everywhere_buy | all-hubs average over the window |
?window= sets the averaging window: 7d, 30d, 90d, or all (default 30d). Averages are weighted by how long each price actually held, not a plain mean.
curl "https://api.starstock.app/api/v1/items/51000000006?window=7d"
{ "ok": true, "item": {
"name": "Rich Veldspar", "cheapest_sell": 30, "cheapest_buy": 20,
"average_sell": 26.58, "average_buy": 19.73,
"average_everywhere_sell": 23.51, "average_everywhere_buy": 20.46 }
}
The order book for one item. Returns sell (cheapest first) and buy (highest first) arrays of { price, qty, ss (solar system id), rg (region id), j (1 if at Jita) }.
Note: the sell side lists up to ~110 orders per hub, so very deep items may be truncated (the cheapest orders are always included). Buy orders are top-of-book only.
Price history points for one item (each written when the price actually moved). ?window= = 7d, 30d, 90d, or all (default 30d).
Search items by name. q (min 2 chars) required; limit max 100 (default 30).
curl "https://api.starstock.app/api/v1/search?q=veldspar"
Most recently updated items. limit max 150.
The full category tree, with an item count per leaf. Use a leaf's path with /api/v1/items?path=.
The whole catalog in one compact response. Keys are shortened to keep it small:
| Key | Meaning | Key | Meaning |
|---|---|---|---|
| i | type_id | n | name |
| cs | Jita sell | es | Everywhere sell |
| cb | Jita buy | eb | Everywhere buy |
| vj | Jita volume | va | Everywhere volume |
| ic | icon id |
The whole market as CSV — paste straight into Google Sheets with
=IMPORTDATA("..."). Add ?scope=all for the Everywhere view.
One item as a single CSV row, for auto-updating spreadsheet formulas.
Service metadata: total item count and when the data was last updated.
Questions or built something with it? It's a personal project — be kind to the rate limit and enjoy. o7