Knight-Manager Premium API

REST API for premium players of the Knight-Manager Alexa Skill

Version 1.0

Authentication

All requests require your API token:

Authorization: Bearer {your_api_token}

You can generate your token at knight-manager.com under Options.

Player Endpoints

Profile & Status

GET /v1/me

Your complete profile with stats, resources, status and tag team partner.

{
  "id": 1337,
  "name": "Siegfried",
  "level": 142,
  "currencies": { "gold": 847293, "diamonds": 1250 },
  "ranking": {
    "honor": 18750,
    "position": 23,
    "division": 2,
    "activity_rank": { "rank": 12, "max_rank": 14, "better_than_percent": 69.7 }
  },
  "upgrades": { "sword": 48, "armor": 45, "shelter": 42 },
  "hunting": { "level": 67, "kills": 12847, "points": 34200 },
  "crafting": { "cooking": 18, "engineering": 12 },
  "progress": {
    "adventure": 847,
    "tower": 234,
    "playing_since": { "registered": "2023-08-22", "years": 2, "months": 5, "days": 12, "total_days": 892 }
  },
  "status": {
    "online": true,
    "last_active": 1738600000,
    "mode": 1,
    "location": "Dark Forest",
    "mode_data": { "open_kills": 5, "open_points": 150 }
  },
  "tagteam": { "id": 2048, "name": "Brunhilde", "online": true }
}

Status Mode Data

The mode_data field contains location-specific data based on current mode:

ModeLocationmode_data
0null (anywhere)null
1Dark Forest{ open_kills, open_points }
2Arena{ fights, wins, losses, xp_earned, levels_gained, original_position }
3Dungeonnull
4Dragon Lairnull
GET /v1/me/access

Premium API access status and expiry. Tells you how you currently qualify for premium (whitelist, admin, subscription or recent purchase) and — when bounded — when access runs out. Callers only reach this endpoint while premium is active, so active is effectively always true here; use source and expires_at to plan renewals.

{
  "active": true,
  "source": "purchase",
  "expires_at": 1778800000,
  "expires_datetime": "2026-05-14T10:00:00Z",
  "remaining_days": 27,
  "last_purchase_ts": 1776208000
}

Source values

sourceexpires_atMeaning
"whitelist"nullUnbounded — account is on the API whitelist.
"admin"nullUnbounded — account has admin rights.
"subscription"nullDiamond Donkey active. No explicit end date; stays active until cancelled on Amazon's side. Response includes a note field.
"purchase"unix tsAccess granted by a purchase in the last 30 days. expires_at = last_purchase_ts + 30 days.
GET /v1/me/stats

PvP, tournament and dungeon statistics.

{
  "pvp": { "wins": 347, "losses": 89, "winrate": 79.6 },
  "hunting_tournament": { "wins": 3, "podiums": 8, "participations": 24 },
  "combat_tournament": { "wins": 1, "podiums": 5, "participations": 18 },
  "dungeon": { "total_kills": 27, "fully_cleared": 2 }
}
GET /v1/me/buffs

Active item buffs and debuffs from consumed items (potions, food, etc.).

{
  "buffs": [
    {
      "type": "str",
      "name": "Strength Boost",
      "description": "+Strength (percentage)",
      "value": 15,
      "source_item": { "id": 42, "name": "Bear Stew" },
      "expires_at": 1738612800,
      "expires_datetime": "2026-02-03T20:00:00Z",
      "remaining_seconds": 3600,
      "remaining_minutes": 60
    }
  ],
  "debuffs": [
    {
      "type": "forest_curse",
      "name": "Orc King Curse",
      "description": "Cursed by the Orc King",
      "value": 1,
      "source_item": { "id": 99, "name": "Orc King's Curse" },
      "expires_at": 1738620000,
      "expires_datetime": "2026-02-03T22:00:00Z",
      "remaining_seconds": 10800,
      "remaining_minutes": 180
    }
  ],
  "total_buffs": 3,
  "total_debuffs": 1
}

Effect Types

TypeName (DE)DescriptionDebuff
aimZielgenauigkeit+Aim in Dark ForestNo
all_huntJagdmeister+All hunting statsNo
breakthroughDurchschlagskraft+Breakthrough PowerNo
fix_hpLebenskraft+Max HP (fixed)No
forest_xpWalderfahrung+XP in forestNo
hunting_skillsJagdinstinkt+Hunting skill chanceNo
iceFrostschutzFire resistanceNo
loot_bonusBeutebonus+Loot chanceNo
marksSpurenleser+Tracking abilityNo
max_hpLebensboost+Max HP (%)No
strStärkeboost+Strength (%)No
threatBedrohung+Threat (dungeon)No
forest_curseFluch des OrkkönigsOrc King curseYes
toxicVergiftetAll stats decreasedYes
GET /v1/me/potions

Your currently active potions and their remaining duration.

{
  "potions": [
    {
      "id": 5,
      "name": "Strength Potion",
      "type": "strength",
      "category": "attack",
      "level": 3,
      "expires_at": 1770143400,
      "expires_datetime": "2026-02-03T18:30:00Z",
      "remaining_seconds": 2700,
      "remaining_minutes": 45,
      "remaining_hours": 0.8
    }
  ],
  "total": 1
}

Every potion lasts 60 minutes. remaining_minutes is rounded up.

GET /v1/me/blacksmith

Blacksmith upgrade status with current levels, active timers and next upgrade costs.

{
  "sword": {
    "level": 25,
    "in_progress": true,
    "timer": {
      "finishes_at": 1738600000,
      "remaining_seconds": 1800,
      "remaining_minutes": 30
    },
    "next_upgrade": {
      "level": 26,
      "cost_gold": 1750,
      "duration_seconds": 4500,
      "duration_minutes": 75
    }
  },
  "armor": { ... },
  "shelter": { ... },
  "bonuses": {
    "rank_discount": true,
    "rank_discount_percent": 10,
    "province_discount": false,
    "province_discount_percent": 0
  }
}
GET /v1/me/dragon

Your dragon nest status - dragon level, XP, food and growth progress.

{
  "has_dragon": true,
  "status": "adult",
  "level": 5,
  "xp": 4200,
  "xp_needed": 6500,
  "xp_percent": 64.6,
  "food": 120
}

Dragon Status

StatusDescription
eggEgg phase - needs 75 XP to hatch
babyBaby dragon - needs 2500 XP to grow
kidYoung dragon - needs 3000 XP to mature
adultAdult dragon - can level up (1-10)

Egg warmth (only when status is egg)

In the egg phase food is the heat from hides (a wolf hide gives 18). Once per hour, at minute 27, one heat point turns into one XP; without heat the egg simply waits. These fields are only present for eggs.

{
  "status": "egg",
  "xp": 9,
  "food": 9,
  "warm_until": 1790288820,
  "warm_until_datetime": "2026-09-24T22:27:00Z",
  "warm_remaining_seconds": 30240
}
FieldDescription
warm_untilUnix timestamp of the last hourly tick that still uses heat, or null if the egg is cold. Capped at hatching - heat beyond 75 XP is not needed.
warm_until_datetimeSame as ISO 8601 (UTC), or null
warm_remaining_secondsSeconds until then; 0 if the egg is cold
GET /v1/me/bestiary

Hidas Bestarium - your pets with type, stats and status.

{
  "pet_count": 1,
  "pets": [
    {
      "id": 1,
      "name": "Fluffy",
      "type": {
        "id": 1,
        "name_de": "Wolf",
        "name_en": "Wolf"
      },
      "bond_level": 5,
      "health": 100,
      "hunger": 20,
      "mood": 80,
      "status": 0,
      "status_text": "home",
      "attack_level": 3
    }
  ]
}
GET /v1/me/achievements

Achievements with progress and tier details. Shows completed tiers and current active tier (no future thresholds). summary.tiers_unlocked also counts tiers the player earned on achievements that have since been retired (or are not visible yet); summary.retired_tiers is that share, and those achievements are not listed under achievements. This keeps the headline number in line with the website and the achievement log.

{
  "season": 12,
  "summary": {
    "tiers_unlocked": 28,
    "retired_tiers": 1,
    "categories": 6
  },
  "achievements": {
    "combat": [
      {
        "id": 1,
        "ident": "battles_won",
        "category": "combat",
        "type": "cumulative",
        "current_tier": 2,
        "current_value": 150,
        "tiers": [
          {
            "tier": 1, "unlocked": true,
            "threshold": 10, "unlocked_at": "2026-02-04 12:00:00",
            "rewards": { "gold": 500, "diamonds": 0, "arrow_makers": 0, "servants": 0 }
          },
          {
            "tier": 2, "unlocked": true,
            "threshold": 50, "unlocked_at": "2026-02-05 18:30:00",
            "rewards": { "gold": 1000, "diamonds": 10, "arrow_makers": 0, "servants": 0, "title": { "number": 42, "name_de": "Handelsmeister", "name_en": "Master Trader" } }
          },
          { "tier": 3, "unlocked": false, "threshold": 200 }
        ]
      }
    ]
  }
}

Inventory

GET /v1/me/backpack

Your inventory. Parameter: desc=1 to include item descriptions. Now includes equipment level, slot, equipped status, and stat bonuses.

{
  "items": [
    { "id": 42, "ident": "health_potion", "name": "Health Potion", "amount": 15, "level": 1, "slot": 0, "is_equipped": false, "category": "Potions" },
    { "id": 149, "ident": "titan_shield", "name": "Shield of the Titan", "amount": 1, "level": 2, "slot": 503, "is_equipped": true, "category": "Equipment", "stats": { "def": 2500 } }
  ],
  "total_items": 34
}
GET /v1/me/skills

Combat and hunting skills. Parameter: desc=1 to include skill descriptions.

{
  "combat": [
    { "id": 1, "name": "Fireball", "level": 5, "active": true },
    { "id": 3, "name": "Shield Wall", "level": 4, "active": true }
  ],
  "hunting": [
    { "id": 2, "name": "Quick Shot", "level": 3, "active": true }
  ]
}
GET /v1/me/recipes

Your learned crafting recipes. Parameters: type (cooking/engineering)

{
  "recipes": [
    {
      "id": 12,
      "name": "Health Potion",
      "type": "cooking",
      "skill_required": 5
    }
  ],
  "total": 18
}

Activities

GET /v1/me/outpost

Your current open outpost task plus completion counters. current_task is null when no task is active.

{
  "current_task": {
    "id": 52,
    "ident": "skill_variety",
    "description": "Versatility is the key to success. Use 3 different hunting skills.",
    "progress": 1,
    "target": 3,
    "progress_type": "distinct",
    "progress_raw": 8,
    "progress_note": "progress is the number of distinct skills/types used so far (stored internally as a bitmask in progress_raw); the task completes when progress reaches target",
    "started_at": "2026-06-27T05:00:00Z"
  },
  "tasks_completed": 12,
  "tasks_skipped": 1,
  "tasks_rewarded": 11,
  "pending_rewards": 1
}

progress_type is "counter" for most tasks (progress counts up toward target). A few tasks (skill_variety, all_orc_types) use "distinct": they track distinct hunting skills / orc types via an internal bitmask. For those, progress is the number of distinct entries used so far, progress_raw exposes the raw bitmask, and progress_note explains it. Only "distinct" tasks include progress_raw and progress_note.

GET /v1/me/tournaments

Your active tournament participation. Returns null if not participating. See /v1/game/tournaments for general info.

{
  "hunting": {
    "tournament": { "id": 42, "type": "most_kills", "status": "active", ... },
    "score": 847,
    "position": 5,
    "top_3": [{ "position": 1, "name": "Ragnar", "score": 1203 }]
  },
  "combat": null
}

Combat tournaments include credits (remaining fights).

Group

GET /v1/me/dungeons

Your dungeon progress and boss kills per difficulty.

{
  "dungeons": [
    {
      "id": 1,
      "name": "Goblin Cave",
      "difficulties": {
        "normal": { "kills": 5, "max_kills": 5, "completed": true },
        "heroic": { "kills": 3, "max_kills": 5, "completed": false },
        "legendary": { "kills": 0, "max_kills": 5, "completed": false }
      }
    }
  ],
  "total_kills": 27,
  "fully_cleared": 2
}
GET /v1/me/party

Your Strategy Chamber group.

{
  "party": {
    "id": 123,
    "dungeon": 1,
    "status": "idle",
    "members": [
      { "id": 1337, "name": "Siegfried", "is_leader": true, "is_you": true },
      { "id": 2048, "name": "Brunhilde", "is_leader": false, "is_you": false }
    ]
  }
}
GET /v1/me/party/messages

Strategy Chamber chat messages. Parameters: limit, offset

Social

GET /v1/me/order

Your order, donations and owned provinces with their advantages.

{
  "order": {
    "id": 2,
    "name": "Meridian Order",
    "points": 847500,
    "rank": 1,
    "members": 47
  },
  "donations": { "gold": 2500000, "servants": 15000 },
  "provinces": [{
    "id": 1,
    "name_de": "Dunkelküste",
    "name_en": "Darkshore",
    "advantage_de": "+15% Gold beim Provinzkampf",
    "advantage_en": "+15% Gold in province battle"
  }]
}
GET /v1/me/letters

Letters. Parameters: type (received/sent), limit, offset

GET /v1/me/gifts

Gifts/packages. Parameters: type (received/sent), limit, offset

GET /v1/me/trading

Trading history. Parameters: status, role, item, partner, limit, offset

History

GET /v1/me/lifetime

Lifetime statistics across all seasons (stats recording since 2026-02-03). Parameter: season (current, number, or omit for lifetime total)

{
  "recording_since": "2026-02-03",
  "playing_since": "2025-10-15",
  "season": "lifetime",
  "combat": {
    "battles_won": 150, "battles_lost": 42,
    "honor_earned": 8500, "highest_combat_division": 5,
    "highest_rank": 12, "tournaments_won": 5,
    "tagteam_assists": 30, "unique_tagteam_partners": 8
  },
  "hunting": {
    "orcs_killed": 2400, "wolves_killed": 180,
    "highest_hunt_level": 35, "arrows_shot": 8500,
    "hunt_levels_gained": 28,
    "hunt_tournaments_played": 15, "hunt_tournaments_won": 3,
    "hunt_tournaments_podium": 7
  },
  "tower": {
    "floors_climbed": 340, "max_floor": 45,
    "azrael_killed": 2, "orc_kings_killed": 5
  },
  "dungeons": {
    "bosses_killed": 12,
    "boss_1_max_difficulty": 8, "boss_2_max_difficulty": 6,
    "boss_3_max_difficulty": 4, "boss_4_max_difficulty": 3,
    "boss_5_max_difficulty": 2, "boss_6_max_difficulty": 1,
    "dungeon_1_max_difficulty": 5, "dungeon_2_max_difficulty": 3
  },
  "progression": {
    "highest_level": 42, "xp_earned": 125000,
    "levels_gained": 38, "adventures_completed": 200,
    "outpost_tasks_done": 85,
    "seasons_played": 4, "seasons_won": 1,
    "total_sessions": 560
  },
  "economy": {
    "gold_earned": 50000, "servants_earned": 12000,
    "servants_stolen": 3500, "trades_completed": 67,
    "province_coins_earned": 450, "province_tokens_secured": 25,
    "diamonds_purchased": 1200
  },
  "upgrades": {
    "sword_upgrades": 48, "shield_upgrades": 45,
    "shelter_upgrades": 30, "servants_to_arrow_makers": 15
  },
  "consumables": {
    "energy_used": 12450,
    "items_eaten": 300, "items_drunk": 200,
    "items_used": 150, "potions_taken": 80,
    "items_crafted": 95, "items_cooked": 60,
    "items_built": 35, "recipes_learned": 15
  },
  "social": {
    "players_healed": 30, "teammate_heals": 12,
    "gifts_sent": 18, "letters_sent": 45,
    "players_reported": 2, "letters_reported": 1
  },
  "donations": {
    "gold_donated": 5000, "servants_donated": 800,
    "dragon_gold_donated": 3000, "dragon_shots": 120,
    "dragon_damage_dealt": 45000, "dragons_killed": 3
  },
  "funfair": { "spins": 200, "lottery_plays": 50 },
  "joust": {
    "games": 80, "wins": 45,
    "losses": 30, "draws": 5
  },
  "tavern": {
    "blackjack_games": 60, "blackjack_wins": 35,
    "blackjack_losses": 25, "knight_games_won": 8
  },
  "events": { "cookies_eaten": 25, "pumpkins_fed": 10 }
}
GET /v1/me/last_fights

Attacks against you. Parameters: limit, offset

{
  "fights": [
    {
      "attacker_id": 5678,
      "attacker_name": "Ragnar",
      "won": false,
      "servants_stolen": 125,
      "honor_change": -15,
      "datetime": "2026-02-02T14:30:00Z"
    }
  ],
  "total": 156
}
GET /v1/me/diamond_history

Diamond transactions. Parameters: type (gain/spend), limit, offset

{
  "transactions": [
    { "amount": 500, "type": "gain", "reason": "Hunting Tournament 1st Place" },
    { "amount": -50, "type": "spend", "reason": "Combat Tournament Entry" }
  ],
  "total": 89
}
GET /v1/me/crafting_history

Crafting log. Parameters: type (cooking/engineering), limit, offset

{
  "crafts": [
    {
      "item_id": 42,
      "item_name": "Health Potion",
      "amount": 5,
      "type": "cooking",
      "skill_before": 17,
      "skill_after": 18
    }
  ],
  "total": 234
}

Game Endpoints

GET /v1/game/season

Current season info.

{ "season": 12, "day": 47, "paused": false }
GET /v1/game/news

Game news. Parameters: lang (de-DE/en-US/en-GB/en-CA), limit, offset

{
  "news": [
    {
      "id": 45,
      "title": "New Dungeon Available",
      "text": "You can now explore the new dungeon...",
      "date": "2026-02-01"
    }
  ],
  "total": 23
}
GET /v1/game/legends

Hall of Fame (season winners). Parameters: season

{
  "current_season": 12,
  "legends": [{
    "season": 11,
    "combat": [
      { "place": 1, "player_id": 1337, "player_name": "Siegfried" }
    ],
    "hunting": [
      { "place": 1, "player_id": 2048, "player_name": "Brunhilde" }
    ]
  }]
}
GET /v1/game/shop

Current shop offers and prices.

{
  "offers": [
    {
      "id": 1,
      "item_id": 42,
      "item_name": "Health Potion",
      "price": 100,
      "currency": "gold"
    }
  ]
}
GET /v1/game/potions

All available potions in the game.

{
  "potions": [
    {
      "id": 5,
      "name": "Strength Potion",
      "type": "strength",
      "category": "attack",
      "duration_minutes": 60,
      "price_multiplier": 1.5,
      "price_examples": { "level_1": 150, "level_10": 1500, "level_30": 4500 }
    }
  ],
  "total": 1,
  "your_level": 100
}
GET /v1/game/live

Live game status including tower, events and weekly activities. See /game/forest for orc king, dragon and plagues.

Response Fields

FieldDescription
season, dayCurrent season number and day
towerTower/Azrael status (phase, progress, guard active)
eventsSpecial events (halloween, kings_tournament, etc.)
weekly_eventsRecurring weekly events (hunting_monday, funfair, combat_division, combat_tournament_wednesday, double_thursday, knight_games, castle_garden)
outpost_statusclosed, open, or rewards
ordersAll 3 orders with points, tokens, active members and upgrade levels

Weekly Events

EventDayDescription
hunting_mondayMondayGuaranteed hunting tournament every hour + double prize pool
funfairTuesdayWheel of fortune with item prizes
combat_divisionWednesdayCombat class evaluation at 12:01 CET
combat_tournament_wednesdayWednesdayGuaranteed combat tournament every hour + double prize pool
double_thursdayThursdayDouble honor from battles
knight_gamesFri-SunGuild tournament (registration → fighting → ceremony)
castle_gardenVariableCastle garden merchants (trader/gunther/joust/halloween)

Knight Games Phases

StatusCodeWhenDescription
inactive0Mon-ThuNo knight games active
registration1Friday 00:00Players can join a guild (25 diamonds)
fighting2Saturday 00:00Battles earn points for your guild
ceremony3Sunday 00:00Winner announcement, rewards distributed
{
  "season": 17,
  "day": 42,
  "paused": false,
  "tower": { "phase": "attack", "wins_this_season": 2, "azrael_floor": 920, ... },
  "events": { "halloween": false, "kings_tournament": true, ... },
  "weekly_events": {
    "hunting_monday": { "active": true, "features": { "guaranteed_tournaments": true, "double_prize_pool": true } },
    "funfair": { "active": false, "day": "tuesday" },
    "combat_division": { "active": false, "day": "wednesday", "schedule": "Wednesday 12:01 CET" },
    "combat_tournament_wednesday": { "active": false, "features": { "guaranteed_tournaments": true, "double_prize_pool": true } },
    "double_thursday": { "active": false, "day": "thursday" },
    "knight_games": { "status": "fighting", "active": true, ... },
    "castle_garden": { "active": false, "merchant": null }
  },
  "outpost_status": "open",
  "orders": [
    { "rank": 1, "id": 2, "name_de": "Der Meridian-Orden", "name_en": "The Meridian Order", "points": 198827047, "active_members": 85, "upgrades": { "luck": 95, "speed": 94, "servants": 43 } },
    { "rank": 2, "id": 1, "name_de": "Der Lazarus-Orden", "...": "..." },
    { "rank": 3, "id": 3, "name_de": "Der Orden der Barmherzigen", "...": "..." }
  ]
}
GET /v1/game/forest

Forest activities - Orc King (bounty hunt), Dragon and Forest Plagues.

{
  "orc_king": {
    "alive": true,
    "days_alive": 3,
    "reward": 1500,
    "enraged": false,
    "hp_percent": 45.2
  },
  "dragon": {
    "phase": "attack",
    "attack_count": 2
  },
  "plagues": {
    "green": { "active": true, "orc_id": 5, "orc_name_de": "Goblin-Horde", "remaining": 127 },
    "yellow": { "active": false },
    "red": { "active": false }
  }
}

Dragon Phases

PhaseDescription
awayDragon is not present
attackDragon is attacking the realm
hurtDragon has been defeated
GET /v1/game/province

Province battle status and order rankings.

{
  "number": 5,
  "name_de": "Dunkle Küste",
  "name_en": "Dark Coast",
  "reward_de": "+15% Erfahrung beim Provinzkampf",
  "status": "active",
  "status_code": 1,
  "schedule": { "day": "sunday", "start_utc": "11:00", "end_utc": "21:00" },
  "orders": [
    { "rank": 1, "id": 1, "name_de": "Orden des Lichts", "tokens": 4521, "points": 125000 }
  ]
}

Province Status

StatusCodeDescription
inactive0No battle active
active1Battle in progress (Sundays 11:00-21:00 UTC)
ended2Battle ended
GET /v1/game/tournaments/{cat}

Tournament history (newest first). Categories: hunting, combat. Parameters: limit, offset

{
  "category": "hunting",
  "tournaments": [
    {
      "id": 42,
      "type": "most_kills",
      "status": "ended",
      "prize_pool": 1500,
      "player_count": 28,
      "ends_at": 1738612800,
      "ends_datetime": "2026-02-03T20:00:00Z"
    }
  ],
  "total": 156
}

Tournament Types

HuntingCombat
most_killsmost_wins
most_varietymost_damage
most_orc_types

Type shows "hidden" during registration phase.

GET /v1/game/changes

Check what changed since a given timestamp. Efficient alternative to polling multiple endpoints — one request tells you which areas have new data. Required parameter: since (Unix timestamp).

{
  "since": 1771334000,
  "checked_at": 1771334060,
  "changes": {
    "news": {
      "changed": true,
      "new_count": 2,
      "latest": 1771334050
    },
    "activity_feed": {
      "changed": true,
      "new_count": 15,
      "latest": 1771334055
    },
    "letters": {
      "changed": false,
      "new_count": 0
    },
    "season": {
      "season": 15,
      "day": 171,
      "paused": false
    },
    "dragon": {
      "active": false,
      "hp": null
    }
  }
}

Leaderboards

GET /v1/leaderboards/{category}

Top 10, your position and players around you.

Permanent Categories

honor pvp hunt hunting_points level sword armor shelter servants dungeon_first_kills

Event Categories (when active)

halloween kings_tournament joust_tournament trading_event cookie
{
  "category": "honor",
  "your_position": 23,
  "your_value": 18750,
  "total_players": 1847,
  "top_10": [
    { "rank": 1, "name": "Ragnar", "combat_level": 180, "hunting_level": 95, "value": 87500 }
  ],
  "around_you": [
    { "rank": 23, "name": "Siegfried", "value": 18750, "is_you": true }
  ]
}
GET /v1/leaderboards/dungeon_first_kills

Dungeon First Kills (who defeated which boss first).

{
  "first_kills": [{
    "boss_id": 1,
    "boss_name": "Toothripper",
    "difficulty": "legendary",
    "players": [
      { "id": 1337, "name": "Siegfried" },
      { "id": 2048, "name": "Brunhilde" }
    ]
  }],
  "your_first_kills": [...]
}

Errors

StatusMeaning
401API token missing or invalid
403Premium access required
404Endpoint not found
429Rate limit exceeded
{ "success": false, "error": "API token required" }

Rate Limits

The API uses dual rate limiting to ensure fair usage:

LimitValuePurpose
Per IP200 requests/minPrevents brute-force attacks
Per User60 requests/minFair distribution per player

When rate limited, you'll receive a 429 response with retry info:

{ "success": false, "error": "Rate limit exceeded. Try again in 42 seconds." }

Tip: 60 requests/min allows polling every second. For dashboards, polling every 10-30 seconds is usually sufficient.