Programmatic access to sealed-product scores, EV, price history, and your vault. REST over HTTPS, JSON everywhere.
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.
/api/v1 is limited to 30 requests/second per IP (burst 60). Exceeding it returns 429 Too Many Requests - back off and retry.
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"
Everything from the list plus full us_history / eu_history (date, price, volume) and per-market signals - ideal for charts and backtests.
Your positions (with value and P/L) and watched product IDs.
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.
Send a CSV body; preview writes nothing and returns what would happen, commit applies it.
| column | meaning |
|---|---|
product | Product name, SealedEdge ID (881), TCGplayer ID (tcg:210823) or Cardmarket ID (cm:441363) |
qty | 1-99999 (required) |
buy_price | 0-9999999 (optional) |
buy_currency | EUR or USD |
buy_date | YYYY-MM-DD or DD.MM.YYYY (optional) |
note | free 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.