Answering that needs one thing storefronts do not publish: what the game has cost before. Steam and GOG return a current price and nothing else — no history endpoint, no series, no past values. The record of what a game used to cost exists only for whoever wrote it down.
Soren has been writing it down. 4.8 million price observations across 131,854 games, the earliest from March 2012, priced across four storefronts and returned in one call.
Cross-store spread is larger and more common than most buyers expect. A live example from the catalogue:
| Game | GOG | Steam | Microsoft |
|---|---|---|---|
| Dex | $0.89 | $1.99 | $19.99 |
| A Plague Tale: Requiem | $14.99 | $49.99 | $59.99 |
Finding that without Soren means four lookups against four APIs, having already resolved four different product ids for the same game. That resolution is the part nobody publishes: we hold 208,191 store mappings across 371,214 games.
observed_since, an observation count, and a
coverage block stating exactly when we were — and were not
— watching.
# by name, punctuation and diacritics ignored curl -H "Authorization: Bearer <token>" \ "https://soren.com/v1/price?q=fallout+new+vegas" # or by whichever id you already hold /v1/price?steam=1145360 /v1/price?game=the-witcher-3-wild-hunt®ion=GB
{
"game": { "title": "Fallout: New Vegas", "type": "main_game" },
"prices": [
{ "store": "steam", "price": 4.99,
"lowest_observed": 0.99, "lowest_observed_at": "2026-03-19",
"pct_above_lowest_observed": 404.0,
"observed_since": "2012-03-29", "observations": 392 }
],
"coverage": [ { "store": "steam", "from": "2012-03-29", "to": null } ]
}
Related editions, expansions and DLC come back in family, whole
and never truncated. Mods and updates are excluded unless you ask for them
with ?include=mods.
It gives no buy-or-wait verdict. “You are 404% above the lowest observed price, across 392 observations since 2012” is a fact we can defend. “Wait for the summer sale” is a prediction we cannot. The numbers are sourced; the judgement is yours.
Non-US regions return a price but no observed low, and say why: the observation series is USD-only, and comparing a Brazilian real price against a US dollar low would be meaningless rather than merely imprecise.
$0.01 per lookup, paid per request over HTTP 402 using x402 with USDC on Base. No signup, no API key, no account — an agent with a wallet can call it directly. Full contract at openapi.json, and llms.txt describes it for models.