Skip to content
Prepaid, no subscription trap. Top up a balance and we draw the monthly fee from it.
tcggraph

Marketplaces

A repricer is only as good as the market it is pricing against

Power a card marketplace or storefront with per-printing pricing in both currencies, dealer bids and daily history.

The problem

Where this project usually goes wrong

If you list cards for sale, your pricing logic is your margin. Price above the market and your inventory does not move; price below it and it moves too well, at a loss you discover in the monthly numbers rather than at the till.

The trap is pricing European stock off American data. The two markets diverge for real reasons — different print runs, different distribution, different demand — and localised printings often have no American price at all. Applying an exchange rate to a dollar figure produces a euro number that no European buyer or seller recognises.

The subtler trap is the reference price itself. A single figure hides whether it came from a thick market or two optimistic listings, which is exactly the difference between a price you can reprice against and a rumour.

What it needs

The fields that decide it

Native prices per market
Price the market your buyer is actually in, in the currency it trades in, with no conversion step to be wrong about.
trend, low and rolling averages
A trend price is far more stable to reprice against than a spot low that one listing can move.
Per-finish pricing
Foil and nonfoil are different products with different demand, and averaging them misprices both.
listType: buylist
Knowing the dealer bid puts a floor under your pricing and tells you what your stock is worth to liquidate.
Daily history
Reprice against a direction rather than a single day, so one noisy close does not move your whole shelf.

In practice

The two queries that matter most

Written for anyone listing cards for sale online. Both work the same way for every game we carry.

Reprice a shelf against the European trend

Reprice a shelf against the European trend
curl -G "https://api.tcggraph.com/v1/cards" \
  -d game=pokemon \
  -d source=cardmarket \
  -d minPrice=5 \
  -d sort=-price \
  -H "Authorization: Bearer $TCGGRAPH_KEY"

Filtering and sorting happen on the market you name, so the bounds mean euros when you ask for the European market and dollars when you ask for the American one.

Compare both markets on the same card

Compare both markets on the same card
{
  card(id: "pkm_a91c2f30-77b") {
    name
    prices {
      source
      region
      currency
      market
      trend
      avg7
    }
  }
}

Both markets arrive together, so the spread is a subtraction rather than a reconciliation between two providers with two identifier schemes.

Avoid these

Three mistakes that are expensive to undo

Each of these is cheap to get right at the start and painful to retrofit once you have user data shaped the wrong way.

  • Repricing off the lowest listing

    The low is the most volatile number in the response and often reflects one seller clearing stock. Trend and rolling averages are what a stable repricer should track.

  • Blending foil and nonfoil

    They are separate products with separate demand curves. A blended figure is simultaneously too high for one and too low for the other.

  • Rebuilding your catalogue nightly

    Card data changes rarely and prices change daily. Sync them on different schedules and your costs drop by an order of magnitude.

Questions

Marketplace and storefront, answered

Ship your card app this weekend

$19 a month for 25,000 credits, no sales call and no contract. Pick a plan and your first query runs in under a minute.