Ext Ops Panel
Open dashboard

Home/Docs/Market read API

Market read API

API version 1.0.0 · Fleet plan · read-only

Read your own Market data from a script on your server: catalog search and lists, extension cards, your watchlist, your saved searches and the portfolio radar, and a CSV export. The API answers the same questions as the Market screens, with the same limits, for the account that owns the key.

↓ Download OpenAPI 3.1 (YAML) /market-read-api-openapi.yaml · info.version 1.0.0

1. Create a key

Open Settings, then Account, then API keys in the web app and create a key. The full key is shown once, right after it is created: copy it into your secret store. We keep only its SHA-256 hash, so a lost key cannot be recovered, only rotated.

A key looks like this:

eop_k3j5x7q2m4n6p_7t2w4y6a3c5e7g2j4l6n3q5s7u2w4y6a3c5e7g2j4l6n3q5s7u2w4y6a

The part before the second underscore is the key's public prefix. Settings show it next to the key's name, creation date and last use, so you can tell keys apart without the secret.

2. Call the API

Send the key as a bearer token. Every route is a GET under one prefix:

curl -s https://extops.dev/api/v1/market/read/watchlist \
  -H "Authorization: Bearer $EXTOPS_API_KEY"
RouteWhat it returns
/searchCatalog search with the Explorer's parameters: text, mode, filters, sort, paging.
/lists/{kind}One of the mass lists: new, removed, releases, movers and the rest.
/categoriesStore categories with their sizes.
/extensions/{id}One extension card with its history and store activity.
/extensions/{id}/timelineFurther pages of the card's store activity timeline.
/watchlistThe extensions you watch.
/segmentsYour saved searches.
/segments/{id}/membersThe extensions of one saved search, as of the last closed catalog pass.
/portfolio/radarEverything that moved across your saved searches, watched and own extensions, each extension once.
/exportA search or a list as CSV, up to 5,000 rows.

The answers are the same JSON the web app reads, described field by field in the OpenAPI file. The API only reads: there are no write routes, and any method other than GET is refused.

3. Whose data a key sees

A key belongs to your account and acts as that account. Your saved searches, watchlist and radar are yours alone: a saved search of another account answers 404, the same as one that does not exist. Catalog lists are cut by your plan exactly as on screen.

4. Limits

Over a limit the API answers 429 with Retry-After and the reset time in details.reset_at.

5. Rotation, revocation and plan changes

Rotate replaces a key with a new one and stops the old one at once. For a rotation without downtime, create a second key, deploy it, then revoke the first. Revoking is allowed on every plan.

The API is part of the Fleet plan. If the plan changes, your keys are not deleted: calls answer 403 with plan_required, Settings show the keys as paused, and the same keys work again after you return to Fleet.

6. Errors

StatusCodeMeaning
401api_key_invalidNo key, or an unknown or malformed one.
401api_key_revokedThe key was revoked or rotated.
403api_key_scopeThe key's scope does not cover this route.
403plan_requiredYour plan does not include the API right now.
429rate_limitedA limit is spent until the time in details.reset_at.