The Gamgem dataset is delivered as structured files that contain the gambling platform and payment destination entities described in the data models specification.

The dataset is incrementally versioned, with each version containing two complementary files: a complete snapshot and a delta file showing changes from the previous version.

Snapshots and deltas

Gamgem provides data through two complementary file types that serve different integration needs:

Complete dataset state

Snapshot files contain the current state of all gambling platforms and their payment destinations at a specific point in time. These files include every active entity in the dataset.

Use snapshots for:

  • Initial data loads when implementing Gamgem
  • Full system refreshes or rebuilds
  • Recovering from data synchronization issues
  • Periodic dataset validation

Snapshot files provide a reliable baseline for your implementation, ensuring you have the picture of all known payment destinations.

Snapshot file structure

Snapshot files use JSON Lines format (.jsonl), where each line contains a JSON object representing a single entity. This format enables streaming processing and supports mixed entity types within the same file.

Dataset versions follow the pattern YYYYMMDDHHMMSS (timestamp format), and snapshot files are named accordingly:

gamgem-snapshot-YYYYMMDDHHMMSS.jsonl

Snapshot file example

gamgem-snapshot-20250306213304.jsonl
{"id":"5c3ecbde-2fcc-4175-b0c2-5a95ca020a23","schema":"PLATFORM","createdDate":"2025-01-19T13:51:56.793Z","updatedDate":"2025-03-06T21:33:04.559Z","state":"ACTIVE","attributes":{"name":"Mystake Casino","services":["CASINO"],"url":"https://mystake.com"}}
{"id":"7d4f8e2a-1b3c-4d5e-6f7g-8h9i0j1k2l3m","schema":"MERCHANT","createdDate":"2025-02-01T10:15:30.000Z","updatedDate":"2025-03-06T21:33:04.559Z","state":"ACTIVE","attributes":{"platformId":"5c3ecbde-2fcc-4175-b0c2-5a95ca020a23","type":"NFT_PLATFORM","mid":"123456789012345","name":"finnart.io","mcc":"6051"}}
{"id":"9a8b7c6d-5e4f-3g2h-1i0j-9k8l7m6n5o4p","schema":"BANK_ACCOUNT","createdDate":"2025-02-15T14:20:45.000Z","updatedDate":"2025-03-06T21:33:04.559Z","state":"ACTIVE","attributes":{"platformId":"5c3ecbde-2fcc-4175-b0c2-5a95ca020a23","bankId":"009956","bankIdType":"GBDSC","accountId":"78073383","accountIdType":"ACCOUNT_NUMBER","accountHolderName":"Santeda International Limited"}}

Each line is a valid JSON object.

Delta file structure

Delta files track changes between dataset versions, enabling incremental updates. Like snapshots, they use JSON Lines format but with a structure focused on change events.

File format

gamgem-delta-YYYYMMDDHHMMSS.jsonl

Each line represents a single change event with the following structure:

changeType
enum<string>
required

Type of change: ADD, UPDATE, or OBSOLETE

occurredDate
timestamp
required

ISO 8601 timestamp when the change was recorded

entity
object
required

Entity state after the change, using the same structure as snapshot entries

Change types

Delta file example

Here’s an example delta file showing various change types:

gamgem-delta-20250306213304.jsonl
{"changeType":"ADD","occurredDate":"2025-03-06T21:33:04.559Z","entity":{"id":"5c3ecbde-2fcc-4175-b0c2-5a95ca020a23","schema":"PLATFORM","createdDate":"2025-03-06T21:33:04.559Z","updatedDate":"2025-03-06T21:33:04.559Z","state":"ACTIVE","attributes":{"name":"New Casino Platform","services":["CASINO"],"url":"https://newcasino.com"}}}
{"changeType":"UPDATE","occurredDate":"2025-03-06T22:15:30.000Z","entity":{"id":"7d4f8e2a-1b3c-4d5e-6f7g-8h9i0j1k2l3m","schema":"MERCHANT","createdDate":"2025-02-01T10:15:30.000Z","updatedDate":"2025-03-06T22:15:30.000Z","state":"ACTIVE","attributes":{"platformId":"5c3ecbde-2fcc-4175-b0c2-5a95ca020a23","type":"NFT_PLATFORM","mid":"123456789012345","name":"updated-merchant-name.io","mcc":"6051"}}}
{"changeType":"OBSOLETE","occurredDate":"2025-03-06T23:45:12.000Z","entity":{"id":"9a8b7c6d-5e4f-3g2h-1i0j-9k8l7m6n5o4p","schema":"BANK_ACCOUNT","createdDate":"2025-02-15T14:20:45.000Z","updatedDate":"2025-03-06T23:45:12.000Z","state":"OBSOLETE","attributes":{"platformId":"5c3ecbde-2fcc-4175-b0c2-5a95ca020a23","bankId":"009956","bankIdType":"GBDSC","accountId":"78073383","accountIdType":"ACCOUNT_NUMBER","accountHolderName":"Santeda International Limited"}}}

Entry ordering

Both file types guarantee specific ordering to enable sequential line-by-line processing:

  1. Platform entities first: All PLATFORM entities appear before any payment destination entities
  2. Payment destinations second: MERCHANT, BANK_ACCOUNT, and CRYPTO_WALLET entities follow, in any order

You can process each line immediately without needing to look ahead or buffer entities, as all dependencies are resolved by the guaranteed ordering.