Games free to claim right now, across all stores ($0.02 per pull; conditional checks free)

Paid per pull. With a live token and If-None-Match, an unchanged feed returns 304 free; a changed feed returns 402.

get/v1/free-games

Request

  • Base URL: https://soren.com
  • URL: https://soren.com/v1/free-games
  • Auth: none declared

Headers

If-None-Matchstring

The version you already hold. Unchanged returns 304 and is not billed.

Authorizationstring

Bearer token from a previous payment, valid 24h.

X-Paymentstring

Payment proof. Presenting a valid proof returns the feed and a fresh 24h token.

Response

Feed payload plus a fresh 24h access token. ILLUSTRATIVE EXAMPLE - values are representative, not live data. Note gog here shows status 'unavailable' with free_count null: that means we could NOT check, and must never be rendered as 'nothing is free on GOG'.

versionstring required

SHA-256 of the canonical form {"offers":<free_games as published>,"coverage":[[store,status,free_count],...] sorted by store}, hex-encoded. Changes only when content changes, never on a mere refresh — so an unchanged version means nothing to do, and a mismatch means the payload was modified after publication.

updated_atstring date-time required
storesobject required
verificationobject

How to recompute version yourself. Present so integrity can be checked rather than trusted.

signatureobject nullable

Ed25519 signature over the version string. Public key at https://soren.com/signing-key.json. Proves the payload originated from Soren; combine with recomputing the hash, which proves the content matches what was signed.

contractobject

Machine-readable statement of what is guaranteed within this major version: fields never removed or retyped, additions possible without notice, meanings never silently changed, canonical hash form fixed, 180 days' deprecation notice. Full text at https://soren.com/contract.md.

Example response

{
  "free_games": [
    {
      "original_price_cents": 1999,
      "currency": "USD"
    }
  ]
}

Changes

No recorded changes to this operation across all 1 revision of this API.