Series

GET /api/v1/series/ Auth required

List slot series (franchises)

Cursor-paginated directory of slot series (franchises) that have at least one public slot. Use ?series=<slug> on GET /api/v1/slots/ to list the games in a series. aliases are alternative spellings for matching a user's query to a slug — not a second filter key; filter by slug only. An unknown ?provider= slug returns an empty page, not a 400. If next is not null, the directory does not fit in one response — keep paging until next is null before treating the set as complete.

Parameters

Name In Type Required Description Example
cursor query string optional Opaque pagination cursor from a previous response's next/previous link.
page_size query integer optional Number of results per page. Default 200, maximum 500. The default is large enough to return the whole directory in one response; if next is not null, keep paginating with cursor until it is.
provider query string optional Provider slug (exact match).
curl \
  -H "Authorization: Token <YOUR_TOKEN>" \
  "https://i-gaming.tools/api/v1/series/"
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://i-gaming.tools/api/v1/series/');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Token <YOUR_TOKEN>']);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
const response = await fetch("https://i-gaming.tools/api/v1/series/", {
  method: "GET",
  headers: {
  "Authorization": "Token <YOUR_TOKEN>"
}
});
const data = await response.json();
console.log(data);
import requests

headers = {
    "Authorization": "Token <YOUR_TOKEN>"
}
response = requests.get("https://i-gaming.tools/api/v1/series/", headers=headers)

print(response.json())

Response fields

slug string
name string
aliases array[string] Alternative spellings for matching a user's query to this series' slug. Filter by slug: an alias is not accepted as a filter value.
provider object The provider that owns this series.
slots_count integer
years object Release-year span of the public slots in this series.
rtp object RTP range (percent, as decimal string) across every public game in this series; null when no game in the series has a value. The range covers games of every category, not only video slots — a few series mix a scratch card in, and one such game can widen it a lot. Read game_category alongside this field before treating the range as a slot figure.
max_win object Max-win range (multiplier of stake) across the public slots in this series. null when no slot in the series has a value.
Example response
{
  "count": 61,
  "next": null,
  "previous": null,
  "results": [
    {
      "slug": "big-bass",
      "name": "Big Bass",
      "aliases": [],
      "provider": {
        "slug": "pragmatic-play",
        "name": "Pragmatic Play"
      },
      "slots_count": 33,
      "years": {
        "from": 2020,
        "to": 2026
      },
      "rtp": {
        "min": "96.07",
        "max": "96.52"
      },
      "max_win": {
        "min": 2100,
        "max": 25000
      }
    }
  ]
}
GET /api/v1/series/{slug}/ Auth required

Get series (franchise) family summary

Family-wide summary for one series: catalogue aggregates, distributions (volatility / has_bonus_buy / game_category) and a short roster ordered newest release first. For the full roster with every slot field and catalogue filter, use GET /api/v1/slots/?series=<slug> — slots_url points there directly. Distribution keys include 'unknown' (has_bonus_buy / game_category, not evaluated) and 'null' (volatility, not set); values in each distribution always sum to slots_count. 404 both when the slug does not exist and when the series has no public slot.

Parameters

Name In Type Required Description Example
slug path string required URL-friendly unique identifier of the series.
curl \
  -H "Authorization: Token <YOUR_TOKEN>" \
  "https://i-gaming.tools/api/v1/series/{slug}/"
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://i-gaming.tools/api/v1/series/{slug}/');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Token <YOUR_TOKEN>']);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
const response = await fetch("https://i-gaming.tools/api/v1/series/{slug}/", {
  method: "GET",
  headers: {
  "Authorization": "Token <YOUR_TOKEN>"
}
});
const data = await response.json();
console.log(data);
import requests

headers = {
    "Authorization": "Token <YOUR_TOKEN>"
}
response = requests.get("https://i-gaming.tools/api/v1/series/{slug}/", headers=headers)

print(response.json())

Response fields

slug string
name string
provider object The provider that owns this series.
slots_count integer
years object Release-year span of the public slots in this series.
rtp object RTP range across every public game in this series, plus spread (max - min, as decimal string; null when either bound is null). The range covers games of every category, not only video slots — a few series mix a scratch card in, and one such game can widen the range by tens of points. Read game_category alongside this field before treating the range as a slot figure.
max_win object Max-win range (multiplier of stake) across the public slots in this series. null when no slot in the series has a value.
volatility object Count of public slots in this series by volatility. Keys are the volatility enum values, plus 'null' for slots where volatility is not set. Values always sum to slots_count.
has_bonus_buy object Count of public slots in this series by has_bonus_buy. Keys are 'yes', 'no' and 'unknown' (not evaluated). Values always sum to slots_count.
game_category object Count of public slots in this series by game_category. 'unknown' means the category was not classified yet. A series mixing categories (e.g. a video slot spin-off with a scratch-card entry) shows more than one key here. Values always sum to slots_count.
slots_url string(uri) GET /api/v1/slots/?series=<slug> — the full roster with all slot fields and every catalogue filter. slots[] below is a short preview, not the full roster.
slots_truncated boolean
slots array[object] Short roster, ordered newest release first (slots with no release date last), then by name. Truncated at 100 entries — see slots_truncated and slots_url for the full set.
Example response
{
  "slug": "big-bass",
  "name": "Big Bass",
  "provider": {
    "slug": "pragmatic-play",
    "name": "Pragmatic Play"
  },
  "slots_count": 33,
  "years": {
    "from": 2020,
    "to": 2026
  },
  "rtp": {
    "min": "96.07",
    "max": "96.52",
    "spread": "0.45"
  },
  "max_win": {
    "min": 2100,
    "max": 25000
  },
  "volatility": {
    "high": 31,
    "medium": 1,
    "low": 1
  },
  "has_bonus_buy": {
    "yes": 32,
    "no": 1
  },
  "game_category": {
    "video_slot": 33
  },
  "slots_url": "https://i-gaming.tools/api/v1/slots/?series=big-bass",
  "slots_truncated": false,
  "slots": [
    {
      "slug": "big-bass-blast-b7",
      "name": "Big Bass Blast",
      "released": "2026-07-06",
      "rtp": "96.50",
      "max_win": 5000,
      "demo_url": "https://demo.i-gaming.tools/iframe/big-bass-blast-b7/"
    }
  ]
}