API v1 · REST · JSON

Instantoto API docs

A free, keyless, CORS-open JSON API for slot & casino game data. Base URL https://instantotodata.com/api.php. No auth, no rate-plan — just be reasonable. Machine spec at /openapi.json.

Try it live

Interactive explorer

GET
Choose an endpoint and hit Send.
Reference

Endpoints

GET /api.php?endpoint=slot&slug=sweet-bonanza A single slot with FAQ, description & similar
GET /api.php?endpoint=search&q=egypt Search name / theme / provider
GET /api.php?endpoint=providers All providers with RTP aggregates
GET /api.php?endpoint=provider&slug=netent One provider + its catalog
GET /api.php?endpoint=trending&limit=8 Most-viewed slots
GET /api.php?endpoint=aggregations Facets & histograms
GET /api.php?endpoint=stats Dataset-wide stats
Parameters

endpoint=slots filters

ParamTypeExampleNotes
qstringq=egyptMatches name, theme or provider
providerstringprovider=NetEntExact studio name (see provider_slug too)
volatilityenum[]volatility=high,mediumComma list of low·medium·high
min_rtp / max_rtpnumbermin_rtp=96.5Also rtp_gte,rtp_lte,rtp_gt,rtp_lt
year / year_gte / year_lteintyear_gte=2022Release-year filters
featurestringfeature=MegawaysMatches a mechanic/feature
reelsstringreels=6x5Reel layout (substring)
sortstringsort=-rtp,nameComma list; - = descending. Fields: rtp,name,year,popularity,volatility,max_win
fieldsstringfields=name,rtp,providerSparse fieldsets — return only these
limitintlimit=501–200 (default 50)
cursor / pagestring/intcursor=NTAUse paging.next_cursor to page forward
Samples

Code

JavaScript (fetch)
const r = await fetch(
  "https://instantotodata.com/api.php?" +
  new URLSearchParams({
    endpoint: "slots", min_rtp: 97,
    sort: "-rtp", limit: 5
  }));
const { result } = await r.json();
console.table(result);
Python (requests)
import requests
r = requests.get(
  "https://instantotodata.com/api.php",
  params={"endpoint":"slots","volatility":"high",
          "min_rtp":96.5,"sort":"-rtp","limit":5})
for s in r.json()["result"]:
    print(s["name"], s["rtp"])
cURL — paginate with cursor
curl "https://instantotodata.com/api.php?endpoint=slots&limit=100"
# → paging.next_cursor: "MTAw"
curl "https://instantotodata.com/api.php?endpoint=slots&limit=100&cursor=MTAw"
Response envelope
{
  "ok": true,
  "version": "1.0",
  "ms": 1.4,
  "count": 5,
  "total": 262,
  "paging": { "limit": 5, "offset": 0,
              "has_more": true,
              "next_cursor": "NQ" },
  "result": [ /* … */ ]
}
Errors

Error catalog

HTTPcodeMeaning
400invalid_paramA parameter was malformed (bad number, unknown sort/field, empty required arg)
404not_foundNo slot/provider matched the given slug
404invalid_endpointUnknown endpoint= value
500server_errorUnexpected server-side error
{ "ok": false,
  "error": { "code": "invalid_param", "message": "cannot sort by 'foo'" },
  "version": "1.0", "docs": "https://instantotodata.com/docs" }
History

Changelog

v1.0
Current. 2026-09-09 — Cursor pagination, filter operators (gte/lte/in), multi-field sort, sparse fieldsets, and new endpoints: search, similar, compare, trending, aggregations, provider. OpenAPI 3.1 spec published.

Fair use: no key required. Please cache responses (Cache-Control: max-age=300) and identify your app in a User-Agent where you can. Data is theoretical/informational — see methodology. 18+.

Instantoto is an independent, informational slots & casino data service. It does not offer gambling, accept wagers, or pay out money — there is nothing to play or deposit here. RTP and volatility figures are theoretical, published by game studios, and provided for research and comparison. Gambling can be addictive. 18+. If it stops being fun, take a break — 55LL responsible-play tools.