{"openapi":"3.1.0","info":{"title":"ArkV2 API","version":"1","description":"Send `Authorization: Bearer ark_k_...` (a key the account owner makes in the app). Players are named by XUID; the server they're on is found for you (a body may pin it with \"server\"). In-game actions need the player on now (else 409 player_offline). Limits per key: 120 reads and 30 actions a minute, and a daily cap on calls that can't be undone. Scopes: players.read, points.read, points.write, deliver.items, deliver.dinos, deliver.kits, players.manage, dinos.manage, moderation, server.chat, server.manage, tribes.manage, events.run, webhooks, webhooks.chat, webhooks.kits, players.destructive, tribes.destroy, players.creative. Refusals are { \"error\": { \"code\", \"message\" } }."},"servers":[{"url":"/v1"}],"tags":[{"name":"Your key and servers"},{"name":"Players"},{"name":"Giving things"},{"name":"Player actions"},{"name":"Moderation"},{"name":"Points"},{"name":"Servers"},{"name":"Tribes"},{"name":"Following your calls"},{"name":"Giveaways"},{"name":"Webhooks"}],"components":{"securitySchemes":{"key":{"type":"http","scheme":"bearer"}}},"security":[{"key":[]}],"paths":{"/me":{"get":{"tags":["Your key and servers"],"summary":"This key: its name, scopes, servers and limits.","responses":{"200":{"description":"OK"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}}},"/servers":{"get":{"tags":["Your key and servers"],"summary":"The key's servers: map, Nitrado status, bot status (ready, starting, offline, none) and how many players are on.","responses":{"200":{"description":"OK"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}}},"/servers/{id}":{"get":{"tags":["Your key and servers"],"summary":"One server in detail: everything in the list, plus who's on now (with players.read), how many players and tribes it has seen, its bots, the last Orbital Supply Drop and the boss timers.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}}},"/players":{"get":{"tags":["Players"],"summary":"Players seen on the key's servers, online first, 50 a page. Filters (combine any): server, online=true|false, xuid, implant, gamertag (exact, any case), name (gamertag or character name contains), tribe (name contains), tribeId, page. Each player has a row per server they've played on.","x-scope":"players.read","responses":{"200":{"description":"OK"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}}},"/players/{xuid}":{"get":{"tags":["Players"],"summary":"One player, with a row per server (character name, implant, tribe, tribeId, online, last seen), and points with points.read.","x-scope":"players.read","parameters":[{"name":"xuid","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}}},"/players/{xuid}/items":{"post":{"tags":["Giving things"],"summary":"Give items. By blueprint, or by itemId (GiveItemNumToPlayer's number). stackSize splits big amounts into stacks.","x-scope":"deliver.items","parameters":[{"name":"xuid","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":100},"description":"The same key again gets the first answer back instead of doing it twice."}],"requestBody":{"content":{"application/json":{"example":{"items":[{"blueprint":"/Game/PrimalEarth/CoreBlueprints/Resources/PrimalItemResource_MetalIngot.PrimalItemResource_MetalIngot","quantity":500,"quality":0,"asBlueprint":false,"stackSize":100},{"itemId":121,"quantity":1}]}}}},"responses":{"200":{"description":"Done"},"202":{"description":"On its way (dinos, colour, imprint): see GET /jobs/{id}"},"502":{"description":"The bot went offline"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}}},"/players/{xuid}/dinos":{"post":{"tags":["Giving things"],"summary":"Deliver up to 10 dinos: method cryo (in a cryopod) or unclaim (dropped beside them). Give level, or wildPoints and tamedPoints (8 stats each, 0-255). Bosses and titans are refused. Answers 202: follow it with GET /jobs/{id}.","x-scope":"deliver.dinos","parameters":[{"name":"xuid","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":100},"description":"The same key again gets the first answer back instead of doing it twice."}],"requestBody":{"content":{"application/json":{"example":{"method":"cryo","dinos":[{"blueprint":"/Game/PrimalEarth/Dinos/Rex/Rex_Character_BP.Rex_Character_BP","level":150,"count":1,"pair":false,"colors":[0,0,0,0,0,0]}]}}}},"responses":{"200":{"description":"Done"},"202":{"description":"On its way (dinos, colour, imprint): see GET /jobs/{id}"},"502":{"description":"The bot went offline"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}}},"/kits":{"get":{"tags":["Giving things"],"summary":"The account's kits and what's in them (item and dino names, blueprints, amounts).","x-scope":"deliver.kits","responses":{"200":{"description":"OK"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}}},"/players/{xuid}/kit":{"post":{"tags":["Giving things"],"summary":"Give a kit. chargePoints (default false) takes its points cost; ignoreRules skips its limits and cooldowns.","x-scope":"deliver.kits","parameters":[{"name":"xuid","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":100},"description":"The same key again gets the first answer back instead of doing it twice."}],"requestBody":{"content":{"application/json":{"example":{"kit":"starter","chargePoints":false,"ignoreRules":false}}}},"responses":{"200":{"description":"Done"},"202":{"description":"On its way (dinos, colour, imprint): see GET /jobs/{id}"},"502":{"description":"The bot went offline"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}}},"/players/{xuid}/experience":{"post":{"tags":["Player actions"],"summary":"Give XP.","x-scope":"players.manage","parameters":[{"name":"xuid","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":100},"description":"The same key again gets the first answer back instead of doing it twice."}],"requestBody":{"content":{"application/json":{"example":{"amount":50000,"shareWithTribe":false}}}},"responses":{"200":{"description":"Done"},"202":{"description":"On its way (dinos, colour, imprint): see GET /jobs/{id}"},"502":{"description":"The bot went offline"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}}},"/players/{xuid}/tek-engrams":{"post":{"tags":["Player actions"],"summary":"Unlock Tek engrams (engram: one engram, or leave it out).","x-scope":"players.manage","parameters":[{"name":"xuid","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":100},"description":"The same key again gets the first answer back instead of doing it twice."}],"requestBody":{"content":{"application/json":{"example":{}}}},"responses":{"200":{"description":"Done"},"202":{"description":"On its way (dinos, colour, imprint): see GET /jobs/{id}"},"502":{"description":"The bot went offline"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}}},"/players/{xuid}/ascension":{"post":{"tags":["Player actions"],"summary":"type max (MaxAscend), all-bosses (DefeatAllBosses) or boss (DefeatBoss, with boss and difficulty gamma|beta|alpha).","x-scope":"players.manage","parameters":[{"name":"xuid","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":100},"description":"The same key again gets the first answer back instead of doing it twice."}],"requestBody":{"content":{"application/json":{"example":{"type":"boss","boss":"Manticore","difficulty":"alpha"}}}},"responses":{"200":{"description":"Done"},"202":{"description":"On its way (dinos, colour, imprint): see GET /jobs/{id}"},"502":{"description":"The bot went offline"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}}},"/players/{xuid}/kill":{"post":{"tags":["Player actions"],"summary":"Kill the player's character.","x-scope":"players.manage","parameters":[{"name":"xuid","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":100},"description":"The same key again gets the first answer back instead of doing it twice."}],"requestBody":{"content":{"application/json":{"example":{}}}},"responses":{"200":{"description":"Done"},"202":{"description":"On its way (dinos, colour, imprint): see GET /jobs/{id}"},"502":{"description":"The bot went offline"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}}},"/players/{xuid}/cryopod":{"post":{"tags":["Player actions"],"summary":"Give an empty cryopod.","x-scope":"players.manage","parameters":[{"name":"xuid","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":100},"description":"The same key again gets the first answer back instead of doing it twice."}],"requestBody":{"content":{"application/json":{"example":{}}}},"responses":{"200":{"description":"Done"},"202":{"description":"On its way (dinos, colour, imprint): see GET /jobs/{id}"},"502":{"description":"The bot went offline"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}}},"/players/{xuid}/mindwipe":{"post":{"tags":["Player actions"],"summary":"Give a Mindwipe Tonic.","x-scope":"players.manage","parameters":[{"name":"xuid","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":100},"description":"The same key again gets the first answer back instead of doing it twice."}],"requestBody":{"content":{"application/json":{"example":{}}}},"responses":{"200":{"description":"Done"},"202":{"description":"On its way (dinos, colour, imprint): see GET /jobs/{id}"},"502":{"description":"The bot went offline"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}}},"/players/{xuid}/color":{"post":{"tags":["Player actions"],"summary":"The bot goes to the player and recolours their tribe's nearest dino (regions 0-5, colours 1-255). Answers 202.","x-scope":"dinos.manage","parameters":[{"name":"xuid","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":100},"description":"The same key again gets the first answer back instead of doing it twice."}],"requestBody":{"content":{"application/json":{"example":{"colors":{"0":12,"3":55}}}}},"responses":{"200":{"description":"Done"},"202":{"description":"On its way (dinos, colour, imprint): see GET /jobs/{id}"},"502":{"description":"The bot went offline"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}}},"/players/{xuid}/imprint":{"post":{"tags":["Player actions"],"summary":"The bot goes to the player and imprints their tribe's nearest baby to 100% (anyTamed: grown dinos too). Answers 202.","x-scope":"dinos.manage","parameters":[{"name":"xuid","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":100},"description":"The same key again gets the first answer back instead of doing it twice."}],"requestBody":{"content":{"application/json":{"example":{"anyTamed":false}}}},"responses":{"200":{"description":"Done"},"202":{"description":"On its way (dinos, colour, imprint): see GET /jobs/{id}"},"502":{"description":"The bot went offline"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}}},"/players/{xuid}/clear-inventory":{"post":{"tags":["Player actions"],"summary":"Clear the player's inventory. 20 a day per key.","x-scope":"players.destructive","parameters":[{"name":"xuid","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":100},"description":"The same key again gets the first answer back instead of doing it twice."}],"requestBody":{"content":{"application/json":{"example":{"inventory":true,"slotItems":true,"equipped":false}}}},"responses":{"200":{"description":"Done"},"202":{"description":"On its way (dinos, colour, imprint): see GET /jobs/{id}"},"502":{"description":"The bot went offline"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}}},"/players/{xuid}/creative":{"post":{"tags":["Player actions"],"summary":"Toggle creative mode for the player.","x-scope":"players.creative","parameters":[{"name":"xuid","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":100},"description":"The same key again gets the first answer back instead of doing it twice."}],"requestBody":{"content":{"application/json":{"example":{}}}},"responses":{"200":{"description":"Done"},"202":{"description":"On its way (dinos, colour, imprint): see GET /jobs/{id}"},"502":{"description":"The bot went offline"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}}},"/players/{xuid}/message":{"post":{"tags":["Player actions"],"summary":"A private chat message to the player.","x-scope":"server.chat","parameters":[{"name":"xuid","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":100},"description":"The same key again gets the first answer back instead of doing it twice."}],"requestBody":{"content":{"application/json":{"example":{"message":"Thanks for voting!"}}}},"responses":{"200":{"description":"Done"},"202":{"description":"On its way (dinos, colour, imprint): see GET /jobs/{id}"},"502":{"description":"The bot went offline"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}}},"/players/{xuid}/tribe":{"post":{"tags":["Player actions"],"summary":"Put the player in a tribe: tribeId, or tribe (its name).","x-scope":"tribes.manage","parameters":[{"name":"xuid","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":100},"description":"The same key again gets the first answer back instead of doing it twice."}],"requestBody":{"content":{"application/json":{"example":{"tribeId":1234567890}}}},"responses":{"200":{"description":"Done"},"202":{"description":"On its way (dinos, colour, imprint): see GET /jobs/{id}"},"502":{"description":"The bot went offline"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}}},"/players/{xuid}/batch":{"post":{"tags":["Player actions"],"summary":"Up to 10 of the commands above for one player in one call, run in order. Each needs its own scope and counts as its own call. Commands: items, dinos, kit, experience, tek-engrams, ascension, kill, cryopod, mindwipe, clear-inventory, creative, message, tribe, color, imprint, kick, rename, ban, unban, whitelist, unwhitelist, points.add, points.remove. stopOnError skips the rest after a refusal.","parameters":[{"name":"xuid","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":100},"description":"The same key again gets the first answer back instead of doing it twice."}],"requestBody":{"content":{"application/json":{"example":{"commands":[{"command":"items","items":[{"blueprint":"/Game/PrimalEarth/CoreBlueprints/Resources/PrimalItemResource_MetalIngot.PrimalItemResource_MetalIngot","quantity":100}]},{"command":"experience","amount":10000},{"command":"message","message":"Your order is here!"}],"stopOnError":false}}}},"responses":{"200":{"description":"Done"},"202":{"description":"On its way (dinos, colour, imprint): see GET /jobs/{id}"},"502":{"description":"The bot went offline"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}}},"/players/{xuid}/kick":{"post":{"tags":["Moderation"],"summary":"Kick the player.","x-scope":"moderation","parameters":[{"name":"xuid","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":100},"description":"The same key again gets the first answer back instead of doing it twice."}],"requestBody":{"content":{"application/json":{"example":{"reason":"AFK"}}}},"responses":{"200":{"description":"Done"},"202":{"description":"On its way (dinos, colour, imprint): see GET /jobs/{id}"},"502":{"description":"The bot went offline"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}}},"/players/{xuid}/rename":{"post":{"tags":["Moderation"],"summary":"Rename the player's character.","x-scope":"moderation","parameters":[{"name":"xuid","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":100},"description":"The same key again gets the first answer back instead of doing it twice."}],"requestBody":{"content":{"application/json":{"example":{"name":"Survivor"}}}},"responses":{"200":{"description":"Done"},"202":{"description":"On its way (dinos, colour, imprint): see GET /jobs/{id}"},"502":{"description":"The bot went offline"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}}},"/players/{xuid}/ban":{"post":{"tags":["Moderation"],"summary":"Ban them (on or not) on every key server with a bot in the game, or only on server.","x-scope":"moderation","parameters":[{"name":"xuid","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":100},"description":"The same key again gets the first answer back instead of doing it twice."}],"requestBody":{"content":{"application/json":{"example":{"reason":"cheating"}}}},"responses":{"200":{"description":"Done"},"202":{"description":"On its way (dinos, colour, imprint): see GET /jobs/{id}"},"502":{"description":"The bot went offline"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}},"delete":{"tags":["Moderation"],"summary":"Unban.","x-scope":"moderation","parameters":[{"name":"xuid","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":100},"description":"The same key again gets the first answer back instead of doing it twice."}],"responses":{"200":{"description":"Done"},"202":{"description":"On its way (dinos, colour, imprint): see GET /jobs/{id}"},"502":{"description":"The bot went offline"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}}},"/players/{xuid}/whitelist":{"post":{"tags":["Moderation"],"summary":"Let them join (AllowPlayerToJoinNoCheck).","x-scope":"moderation","parameters":[{"name":"xuid","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":100},"description":"The same key again gets the first answer back instead of doing it twice."}],"requestBody":{"content":{"application/json":{"example":{}}}},"responses":{"200":{"description":"Done"},"202":{"description":"On its way (dinos, colour, imprint): see GET /jobs/{id}"},"502":{"description":"The bot went offline"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}},"delete":{"tags":["Moderation"],"summary":"Take them off the whitelist.","x-scope":"moderation","parameters":[{"name":"xuid","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":100},"description":"The same key again gets the first answer back instead of doing it twice."}],"responses":{"200":{"description":"Done"},"202":{"description":"On its way (dinos, colour, imprint): see GET /jobs/{id}"},"502":{"description":"The bot went offline"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}}},"/players/{xuid}/points":{"get":{"tags":["Points"],"summary":"Balance, rank and playtime.","x-scope":"points.read","parameters":[{"name":"xuid","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}}},"/players/{xuid}/points/ledger":{"get":{"tags":["Points"],"summary":"The player's points history, newest first. Query: page.","x-scope":"points.read","parameters":[{"name":"xuid","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}}},"/players/{xuid}/points/add":{"post":{"tags":["Points"],"summary":"Give points.","x-scope":"points.write","parameters":[{"name":"xuid","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":100},"description":"The same key again gets the first answer back instead of doing it twice."}],"requestBody":{"content":{"application/json":{"example":{"amount":500,"reason":"Voted"}}}},"responses":{"200":{"description":"Done"},"202":{"description":"On its way (dinos, colour, imprint): see GET /jobs/{id}"},"502":{"description":"The bot went offline"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}}},"/players/{xuid}/points/remove":{"post":{"tags":["Points"],"summary":"Take points (allowNegative to go below 0).","x-scope":"points.write","parameters":[{"name":"xuid","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":100},"description":"The same key again gets the first answer back instead of doing it twice."}],"requestBody":{"content":{"application/json":{"example":{"amount":500,"reason":"Shop purchase"}}}},"responses":{"200":{"description":"Done"},"202":{"description":"On its way (dinos, colour, imprint): see GET /jobs/{id}"},"502":{"description":"The bot went offline"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}}},"/points/transfer":{"post":{"tags":["Points"],"summary":"Move points between two players.","x-scope":"points.write","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":100},"description":"The same key again gets the first answer back instead of doing it twice."}],"requestBody":{"content":{"application/json":{"example":{"from":"2535400000000001","to":"2535400000000002","amount":100}}}},"responses":{"200":{"description":"Done"},"202":{"description":"On its way (dinos, colour, imprint): see GET /jobs/{id}"},"502":{"description":"The bot went offline"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}}},"/leaderboards/points":{"get":{"tags":["Points"],"summary":"Top balances. Query: limit.","x-scope":"points.read","responses":{"200":{"description":"OK"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}}},"/leaderboards/playtime":{"get":{"tags":["Points"],"summary":"Most played. Query: period=all|month|week|day, limit.","x-scope":"points.read","responses":{"200":{"description":"OK"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}}},"/servers/{id}/chat":{"post":{"tags":["Servers"],"summary":"A line in server chat.","x-scope":"server.chat","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":100},"description":"The same key again gets the first answer back instead of doing it twice."}],"requestBody":{"content":{"application/json":{"example":{"message":"Restart in 10 minutes"}}}},"responses":{"200":{"description":"Done"},"202":{"description":"On its way (dinos, colour, imprint): see GET /jobs/{id}"},"502":{"description":"The bot went offline"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}}},"/servers/{id}/broadcast":{"post":{"tags":["Servers"],"summary":"A broadcast across everyone's screen.","x-scope":"server.chat","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":100},"description":"The same key again gets the first answer back instead of doing it twice."}],"requestBody":{"content":{"application/json":{"example":{"message":"Double XP weekend!"}}}},"responses":{"200":{"description":"Done"},"202":{"description":"On its way (dinos, colour, imprint): see GET /jobs/{id}"},"502":{"description":"The bot went offline"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}}},"/servers/{id}/motd":{"put":{"tags":["Servers"],"summary":"Set the message of the day.","x-scope":"server.chat","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":100},"description":"The same key again gets the first answer back instead of doing it twice."}],"requestBody":{"content":{"application/json":{"example":{"message":"Welcome to the server"}}}},"responses":{"200":{"description":"Done"},"202":{"description":"On its way (dinos, colour, imprint): see GET /jobs/{id}"},"502":{"description":"The bot went offline"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}}},"/servers/{id}/time":{"post":{"tags":["Servers"],"summary":"Set the time of day.","x-scope":"server.manage","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":100},"description":"The same key again gets the first answer back instead of doing it twice."}],"requestBody":{"content":{"application/json":{"example":{"time":"08:00"}}}},"responses":{"200":{"description":"Done"},"202":{"description":"On its way (dinos, colour, imprint): see GET /jobs/{id}"},"502":{"description":"The bot went offline"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}}},"/servers/{id}/save":{"post":{"tags":["Servers"],"summary":"Save the world (once per 10 minutes per server).","x-scope":"server.manage","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":100},"description":"The same key again gets the first answer back instead of doing it twice."}],"requestBody":{"content":{"application/json":{"example":{}}}},"responses":{"200":{"description":"Done"},"202":{"description":"On its way (dinos, colour, imprint): see GET /jobs/{id}"},"502":{"description":"The bot went offline"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}}},"/servers/{id}/reload-config":{"post":{"tags":["Servers"],"summary":"Reload the server's dynamic config.","x-scope":"server.manage","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":100},"description":"The same key again gets the first answer back instead of doing it twice."}],"requestBody":{"content":{"application/json":{"example":{}}}},"responses":{"200":{"description":"Done"},"202":{"description":"On its way (dinos, colour, imprint): see GET /jobs/{id}"},"502":{"description":"The bot went offline"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}}},"/servers/{id}/wipe-wild-dinos":{"post":{"tags":["Servers"],"summary":"Kill every wild dino (once an hour per server, 6 a day per key).","x-scope":"server.manage","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":100},"description":"The same key again gets the first answer back instead of doing it twice."}],"requestBody":{"content":{"application/json":{"example":{}}}},"responses":{"200":{"description":"Done"},"202":{"description":"On its way (dinos, colour, imprint): see GET /jobs/{id}"},"502":{"description":"The bot went offline"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}}},"/tribes/{tribeId}/message":{"post":{"tags":["Tribes"],"summary":"A message to a tribe. The server is found from where its members have been seen (give server if it's on several).","x-scope":"server.chat","parameters":[{"name":"tribeId","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":100},"description":"The same key again gets the first answer back instead of doing it twice."}],"requestBody":{"content":{"application/json":{"example":{"message":"Your vault is open"}}}},"responses":{"200":{"description":"Done"},"202":{"description":"On its way (dinos, colour, imprint): see GET /jobs/{id}"},"502":{"description":"The bot went offline"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}}},"/tribes/rename":{"post":{"tags":["Tribes"],"summary":"Rename a tribe (by its name).","x-scope":"tribes.manage","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":100},"description":"The same key again gets the first answer back instead of doing it twice."}],"requestBody":{"content":{"application/json":{"example":{"tribe":"Old Name","newName":"New Name"}}}},"responses":{"200":{"description":"Done"},"202":{"description":"On its way (dinos, colour, imprint): see GET /jobs/{id}"},"502":{"description":"The bot went offline"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}}},"/tribes/merge":{"post":{"tags":["Tribes"],"summary":"Put two players (on now, on the same server) in a new tribe.","x-scope":"tribes.manage","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":100},"description":"The same key again gets the first answer back instead of doing it twice."}],"requestBody":{"content":{"application/json":{"example":{"players":["2535400000000001","2535400000000002"],"tribe":"Allies"}}}},"responses":{"200":{"description":"Done"},"202":{"description":"On its way (dinos, colour, imprint): see GET /jobs/{id}"},"502":{"description":"The bot went offline"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}}},"/tribes/{tribeId}/destroy":{"post":{"tags":["Tribes"],"summary":"Destroy a tribe or part of it. Always name the server; confirm repeats the tribe id. 5 a day per key.","x-scope":"tribes.destroy","parameters":[{"name":"tribeId","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":100},"description":"The same key again gets the first answer back instead of doing it twice."}],"requestBody":{"content":{"application/json":{"example":{"server":"server id","what":"structures","confirm":1234567890}}}},"responses":{"200":{"description":"Done"},"202":{"description":"On its way (dinos, colour, imprint): see GET /jobs/{id}"},"502":{"description":"The bot went offline"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}}},"/jobs/{id}":{"get":{"tags":["Following your calls"],"summary":"One call made with this key (its id is in every answer) and how far it's got: status, dinos done of total, detail.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}}},"/jobs":{"get":{"tags":["Following your calls"],"summary":"This key's recent calls, newest first. Query: status=running|done|failed, xuid, action, limit.","responses":{"200":{"description":"OK"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}}},"/giveaways":{"get":{"tags":["Giveaways"],"summary":"The giveaways the key may start.","x-scope":"events.run","responses":{"200":{"description":"OK"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}}},"/giveaways/{id}/run":{"post":{"tags":["Giveaways"],"summary":"Start a giveaway now.","x-scope":"events.run","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":100},"description":"The same key again gets the first answer back instead of doing it twice."}],"responses":{"200":{"description":"Done"},"202":{"description":"On its way (dinos, colour, imprint): see GET /jobs/{id}"},"502":{"description":"The bot went offline"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}}},"/webhooks":{"get":{"tags":["Webhooks"],"summary":"This key's webhooks.","x-scope":"webhooks","responses":{"200":{"description":"OK"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}},"post":{"tags":["Webhooks"],"summary":"Add a webhook (https). Answers its secret once. Events: player.joined, player.left, chat.message, kit.used, command.used, delivery.done, delivery.failed, points.changed, tracker.osd, tracker.boss.","x-scope":"webhooks","requestBody":{"content":{"application/json":{"example":{"url":"https://example.com/ark-events","events":["player.joined","delivery.done"],"serverIds":null}}}},"responses":{"200":{"description":"OK"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}}},"/webhooks/{id}":{"patch":{"tags":["Webhooks"],"summary":"Pause or resume it.","x-scope":"webhooks","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"disabled":false}}}},"responses":{"200":{"description":"OK"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}},"delete":{"tags":["Webhooks"],"summary":"Remove it.","x-scope":"webhooks","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}}},"/webhooks/{id}/test":{"post":{"tags":["Webhooks"],"summary":"Send it a test event.","x-scope":"webhooks","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"default":{"description":"A refusal","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}}}}}}}}}