Jobs

GET /api/v1/jobs/ Auth required

List vacancies

Public iGaming vacancy catalog. Cursor-pagination. No count. Field source_url — original vacancy page. Field url is ABSENT (P2-3).

Parameters

Name In Type Required Description Example
city query string optional City slug exact
company query string optional Company slug exact
country query string optional Location country ISO-2 (→ location_country)
cursor query string optional The pagination cursor value.
employment_type query string optional Employment type exact
igaming_segment query string optional iGaming segment exact
include_closed query boolean optional false (default) = ACTIVE only; true = + CLOSED within window
ordering query string optional Whitelist: posted_at, -posted_at (default -posted_at)
page_size query integer optional Number of results to return per page.
posted_after query string optional posted_at >= (ISO 8601)
posted_before query string optional posted_at < (ISO 8601)
q query string optional title icontains
remote_mode query string optional Remote mode exact
seniority query string optional Seniority exact
skills query array[string] optional Skill slug(s), OR-semantics; repeatable parameter
source query string optional Source (careers|linkedin). LI.3 §6D.
curl \
  -H "Authorization: Token <YOUR_TOKEN>" \
  "https://i-gaming.tools/api/v1/jobs/"
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://i-gaming.tools/api/v1/jobs/');
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/jobs/", {
  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/jobs/", headers=headers)

print(response.json())

Response fields

next string(uri) | null
previous string(uri) | null
results array[object]
GET /api/v1/jobs/stats/ Auth required

Jobs statistics (approximate)

Approximate counts for landing total-badge. total_approx — from pg_class.reltuples (±5%, no count()). Does not decrement quota (_skip_quota=True).

curl \
  -H "Authorization: Token <YOUR_TOKEN>" \
  "https://i-gaming.tools/api/v1/jobs/stats/"
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://i-gaming.tools/api/v1/jobs/stats/');
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/jobs/stats/", {
  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/jobs/stats/", headers=headers)

print(response.json())

Response fields

total_approx integer ±5% approximate count (pg_class.reltuples)
by_segment object
last_posted_at string(date-time) | null
computed_at string(date-time)
Example response
{
  "total_approx": 4210,
  "by_status_public": {
    "live": 3900,
    "closed_recent": 310
  },
  "by_segment": {
    "casino": 1200,
    "sportsbook": 800
  },
  "last_posted_at": "2026-06-08T10:00:00Z",
  "computed_at": "2026-06-09T12:00:00Z"
}
GET /api/v1/jobs/{id}/ Auth required

Get vacancy detail

Full vacancy card by UUID. CLOSED older than window or hidden → 404.

Parameters

Name In Type Required Description Example
id path string required Stable identifier; used as FK in CH vacancy_snapshots and vacancy_raw_html.
curl \
  -H "Authorization: Token <YOUR_TOKEN>" \
  "https://i-gaming.tools/api/v1/jobs/{id}/"
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://i-gaming.tools/api/v1/jobs/{id}/');
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/jobs/{id}/", {
  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/jobs/{id}/", headers=headers)

print(response.json())

Response fields

id string(uuid)
source string
title string
company_name string
company object | null
location_city string
city object | null
remote_mode string
seniority string
salary_min string(decimal) | null
salary_max string(decimal) | null
salary_period string
posted_at string(date-time) | null
last_seen_at string(date-time) | null
status_public object
closed_at string(date-time) | null
closed_reason object | null
apply_url string(uri) | null
source_url string(uri) | null
secondary_apply_url string(uri) | null
summary string
responsibilities array[string]
requirements_must array[string]
requirements_nice array[string]
benefits array[string]
skills array[string]
skills_resolved array[object]
languages any
licenses_relevant array[string]
product_areas array[string]
regulatory_role boolean
company_website string(uri) | null
company_logo_url string(uri) | null
application_deadline string(date) | null
apply_email string(email) | null
discovered_at string(date-time)