Free

Frozen test fixture — free, real shape, every offer already ended

A free, immutable sample of the /v1/free-games payload so you can build and test an integration before paying for anything. Identical field names, types and hash canonicalisation to the live feed, and really signed with the production key — so verification code tested against this works unchanged against paid data.

Every offer in it has already ended. The titles and claim URLs are real, but following one reaches a store page where the game costs money again, so there is nothing to claim and nothing to gain by using this instead of the live feed.

Frozen on purpose: it does not roll forward, so assertions written against it keep passing. Do NOT present its contents to a user as currently-free games — the sample and not_current fields, and the X-Soren-Sample response header, all say so.

get/v1/sample

Request

  • Base URL: https://soren.com
  • URL: https://soren.com/v1/sample
  • Auth: none required

Response

The frozen fixture.

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.

sampletrue
not_currentstring

Human-readable warning that every offer has ended.

frozen_atstring date-time

Example response

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

Changes

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