StarStock Market API

Free, open, read-only EVE Echoes market prices — the same live data that powers StarStock.

Basics

Base URL: https://api.starstock.app

Fair use please read

Prices & scope

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.

Endpoints

GET/api/v1/items

List items with their current prices, alphabetically.

ParamMeaning
limitpage size, max 500 (default 100)
offsetskip N items for paging (default 0)
pathoptional 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" }
] }
GET/api/v1/items/{type_id}

Full detail for one item: current prices, volume, spread, and time-weighted average prices over a window.

FieldMeaning
average_sell / average_buyJita average over the window
average_everywhere_sell / average_everywhere_buyall-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 }
}
GET/api/v1/items/{type_id}/orders

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.

GET/api/v1/items/{type_id}/history

Price history points for one item (each written when the price actually moved). ?window= = 7d, 30d, 90d, or all (default 30d).

GET/api/v1/search

Search items by name. q (min 2 chars) required; limit max 100 (default 30).

curl "https://api.starstock.app/api/v1/search?q=veldspar"
GET/api/v1/recent

Most recently updated items. limit max 150.

GET/api/v1/categories

The full category tree, with an item count per leaf. Use a leaf's path with /api/v1/items?path=.

GET/api/v1/catalog.json

The whole catalog in one compact response. Keys are shortened to keep it small:

KeyMeaningKeyMeaning
itype_idnname
csJita sellesEverywhere sell
cbJita buyebEverywhere buy
vjJita volumevaEverywhere volume
icicon id
GET/api/v1/items.csv

The whole market as CSV — paste straight into Google Sheets with =IMPORTDATA("..."). Add ?scope=all for the Everywhere view.

GET/api/v1/items/{type_id}.csv

One item as a single CSV row, for auto-updating spreadsheet formulas.

GET/meta

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