SealedEdge API v1

Programmatic access to sealed-product scores, EV, price history, and your vault. REST over HTTPS, JSON everywhere.

Pro feature. API keys are available on the Pro plan. Browse the full reference below, then upgrade and generate a key. Download the Postman collection.

Authentication

Every request needs a Bearer key (generate one on your account page):

curl -H "Authorization: Bearer se_live_YOUR_KEY" \
  https://sealededge.io/api/v1/products

Keys carry a scope: read (all GET endpoints) or write (vault + watchlist changes). A read key on a write endpoint returns 403. Keys are shown once at creation and stored only as a hash - lose it, revoke and regenerate.

Rate limits

/api/v1 is limited to 30 requests/second per IP (burst 60). Exceeding it returns 429 Too Many Requests - back off and retry.

Reading data

GET /api/v1/products

All products with scores, ratings, EV, US/EU prices, liquidity, velocity. Optional filters ?type= (product_type) and ?set= (set_code).

curl -H "Authorization: Bearer se_live_KEY" \
  "https://sealededge.io/api/v1/products?type=play_booster_box"

GET /api/v1/products/{id}

Everything from the list plus full us_history / eu_history (date, price, volume) and per-market signals - ideal for charts and backtests.

GET /api/v1/vault · GET /api/v1/watchlist

Your positions (with value and P/L) and watched product IDs.

Managing your vault (write scope)

POST /api/v1/vault/lots

curl -X POST -H "Authorization: Bearer se_live_WRITEKEY" \
  -H "Content-Type: application/json" \
  -d '{"product_id": 881, "qty": 2, "buy_price": 95, "buy_currency": "USD"}' \
  https://sealededge.io/api/v1/vault/lots

Limits: qty 1-99999, buy_price 0-9999999, buy_currency EUR or USD.

PATCH /lots/{id} update · POST /lots/{id}/sell · POST /lots/{id}/reverse · DELETE /lots/{id}

POST / DELETE /api/v1/watchlist/{id} - add / remove.

CSV bulk import (write scope)

POST /api/v1/vault/import?mode=preview|commit

Send a CSV body; preview writes nothing and returns what would happen, commit applies it.

columnmeaning
productProduct name, SealedEdge ID (881), TCGplayer ID (tcg:210823) or Cardmarket ID (cm:441363)
qty1-99999 (required)
buy_price0-9999999 (optional)
buy_currencyEUR or USD
buy_dateYYYY-MM-DD or DD.MM.YYYY (optional)
notefree text (optional)
curl -X POST -H "Authorization: Bearer se_live_WRITEKEY" \
  -H "Content-Type: application/json" \
  -d '{"csv": "product,qty,buy_price,buy_currency
Bloomburrow Play Booster Box,2,120,EUR
tcg:210823,1,99,USD", "replace": false}' \
  "https://sealededge.io/api/v1/vault/import?mode=commit"

Extra body fields on commit: replace: true swaps all open positions (sold history stays); customs = array of unmatched rows to take over as custom positions; resolved = ambiguous rows you've mapped to a specific product_id.

Ready? Upgrade to Pro and generate your key, or download the Postman collection to try every endpoint in one click.

← Back to SealedEdge