{"openapi":"3.1.0","info":{"title":"DayzHUB Console REST API","version":"1.1.0","description":"Read your DayZ servers and, with a write key, run actions. Authenticate with Authorization: Bearer dhca_... Every answer carries X-Request-Id; errors are { ok:false, error, code, requestId }. Lists page with limit and cursor. Rate limits are per key (RateLimit-* headers) with a daily quota."},"servers":[{"url":"https://dayzhub.cloud/api/v1/console"}],"tags":[{"name":"Meta"},{"name":"Servers"},{"name":"Players"},{"name":"Logs"},{"name":"Bans"},{"name":"Actions"},{"name":"Access lists"},{"name":"Statistics"}],"security":[{"bearer":[]}],"paths":{"/openapi.json":{"get":{"operationId":"openapi","tags":["Meta"],"summary":"This API as an OpenAPI 3.1 document.","responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Id of this request: quote it in support requests.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object"}}}}},"x-cost":0,"x-scope":"public","security":[]}},"/me":{"get":{"operationId":"getMe","tags":["Meta"],"summary":"Introspect this key: its scopes, the plan, its limits and the servers it can use.","responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Id of this request: quote it in support requests.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Requests allowed per minute for this key.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Cost units left in this minute.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the minute window resets.","schema":{"type":"integer"}},"ETag":{"description":"Send it back as If-None-Match to get 304 when nothing changed.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Me"}}}},"304":{"description":"Not modified (If-None-Match matched)."},"401":{"description":"unauthorized, invalid_token or token_expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ip_not_allowed, not_enabled, account_suspended, plan_required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited or quota_exceeded: wait Retry-After seconds","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-cost":1,"x-scope":"read","x-required-plan":"standard"}},"/servers":{"get":{"operationId":"listServers","tags":["Servers"],"summary":"Your servers with status, players, real FPS and uptime.","responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Id of this request: quote it in support requests.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Requests allowed per minute for this key.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Cost units left in this minute.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the minute window resets.","schema":{"type":"integer"}},"ETag":{"description":"Send it back as If-None-Match to get 304 when nothing changed.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerList"}}}},"304":{"description":"Not modified (If-None-Match matched)."},"401":{"description":"unauthorized, invalid_token or token_expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ip_not_allowed, not_enabled, account_suspended, plan_required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited or quota_exceeded: wait Retry-After seconds","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-cost":1,"x-scope":"read","x-required-plan":"standard"}},"/servers/{serverId}":{"get":{"operationId":"getServer","tags":["Servers"],"summary":"One server plus everyone online.","parameters":[{"name":"serverId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Id of this request: quote it in support requests.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Requests allowed per minute for this key.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Cost units left in this minute.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the minute window resets.","schema":{"type":"integer"}},"ETag":{"description":"Send it back as If-None-Match to get 304 when nothing changed.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerDetail"}}}},"304":{"description":"Not modified (If-None-Match matched)."},"401":{"description":"unauthorized, invalid_token or token_expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ip_not_allowed, not_enabled, account_suspended, plan_required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited or quota_exceeded: wait Retry-After seconds","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-cost":1,"x-scope":"read","x-required-plan":"standard"}},"/servers/{serverId}/players":{"get":{"operationId":"listPlayers","tags":["Players"],"summary":"Players with playtime, sessions, kills and deaths.","parameters":[{"name":"serverId","in":"path","required":true,"schema":{"type":"string"}},{"name":"online","in":"query","required":false,"description":"1 = only players online now.","schema":{"type":"string","enum":["1"]}},{"name":"steamId","in":"query","required":false,"description":"Only this SteamID64.","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Page size (1-1000, default 200).","schema":{"type":"integer"}},{"name":"cursor","in":"query","required":false,"description":"The nextCursor of the previous page.","schema":{"type":"string"}}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Id of this request: quote it in support requests.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Requests allowed per minute for this key.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Cost units left in this minute.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the minute window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlayerList"}}}},"400":{"description":"bad_request or invalid_cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"unauthorized, invalid_token or token_expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ip_not_allowed, not_enabled, account_suspended, plan_required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited or quota_exceeded: wait Retry-After seconds","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-cost":1,"x-scope":"read","x-required-plan":"standard"}},"/servers/{serverId}/events":{"get":{"operationId":"listEvents","tags":["Logs"],"summary":"The log: join, leave, kill, death, hit, aikill, placement, build, dismantle, destroy, base_hit, speed, loot, chat, admin, system.","parameters":[{"name":"serverId","in":"path","required":true,"schema":{"type":"string"}},{"name":"type","in":"query","required":false,"description":"Only this event type.","schema":{"type":"string"}},{"name":"since","in":"query","required":false,"description":"ISO time: nothing older.","schema":{"type":"string"}},{"name":"steamId","in":"query","required":false,"description":"Events of or against this SteamID64.","schema":{"type":"string"}},{"name":"before","in":"query","required":false,"description":"Deprecated: use cursor. The next of the previous page (ISO time).","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Page size (1-1000, default 200).","schema":{"type":"integer"}},{"name":"cursor","in":"query","required":false,"description":"The nextCursor of the previous page.","schema":{"type":"string"}}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Id of this request: quote it in support requests.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Requests allowed per minute for this key.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Cost units left in this minute.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the minute window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventList"}}}},"400":{"description":"bad_request or invalid_cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"unauthorized, invalid_token or token_expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ip_not_allowed, not_enabled, account_suspended, plan_required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited or quota_exceeded: wait Retry-After seconds","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-cost":5,"x-scope":"read","x-required-plan":"standard"}},"/servers/{serverId}/bans":{"get":{"operationId":"listBans","tags":["Bans"],"summary":"Bans on every list the server uses (active by default).","parameters":[{"name":"serverId","in":"path","required":true,"schema":{"type":"string"}},{"name":"status","in":"query","required":false,"description":"active (default), expired, revoked or all.","schema":{"type":"string","enum":["active","expired","revoked","all"]}},{"name":"steamId","in":"query","required":false,"description":"Only this SteamID64.","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Page size (1-1000, default 200).","schema":{"type":"integer"}},{"name":"cursor","in":"query","required":false,"description":"The nextCursor of the previous page.","schema":{"type":"string"}}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Id of this request: quote it in support requests.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Requests allowed per minute for this key.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Cost units left in this minute.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the minute window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BanList"}}}},"400":{"description":"bad_request or invalid_cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"unauthorized, invalid_token or token_expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ip_not_allowed, not_enabled, account_suspended, plan_required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited or quota_exceeded: wait Retry-After seconds","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-cost":1,"x-scope":"read","x-required-plan":"standard"},"post":{"operationId":"createBan","tags":["Bans"],"summary":"Ban a player on the server's own list (minutes 0 = permanent).","parameters":[{"name":"serverId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Id of this request: quote it in support requests.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Requests allowed per minute for this key.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Cost units left in this minute.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the minute window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BanCreated"}}}},"400":{"description":"bad_request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"unauthorized, invalid_token or token_expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ip_not_allowed, not_enabled, account_suspended, plan_required, read_only_token, server_paused","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited or quota_exceeded: wait Retry-After seconds","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-cost":2,"x-scope":"write","x-required-plan":"pro","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["steamId"],"properties":{"steamId":{"type":"string","pattern":"^7656\\d{13}$","example":"76561198000000001"},"minutes":{"type":"integer","minimum":0},"reason":{"type":"string","maxLength":300},"name":{"type":"string","maxLength":64},"evidence":{"type":"array","maxItems":10,"items":{"type":"string","maxLength":400}}},"additionalProperties":false}}}}}},"/servers/{serverId}/bans/{ban}":{"get":{"operationId":"getBan","tags":["Bans"],"summary":"One ban by its id.","parameters":[{"name":"serverId","in":"path","required":true,"schema":{"type":"string"}},{"name":"ban","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Id of this request: quote it in support requests.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Requests allowed per minute for this key.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Cost units left in this minute.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the minute window resets.","schema":{"type":"integer"}},"ETag":{"description":"Send it back as If-None-Match to get 304 when nothing changed.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BanDetail"}}}},"304":{"description":"Not modified (If-None-Match matched)."},"401":{"description":"unauthorized, invalid_token or token_expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ip_not_allowed, not_enabled, account_suspended, plan_required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited or quota_exceeded: wait Retry-After seconds","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-cost":1,"x-scope":"read","x-required-plan":"standard"},"delete":{"operationId":"deleteBan","tags":["Bans"],"summary":"Lift a ban from the server's own list (the path takes a SteamID64 or a ban id). The ban stays in the history as revoked.","parameters":[{"name":"serverId","in":"path","required":true,"schema":{"type":"string"}},{"name":"ban","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Id of this request: quote it in support requests.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Requests allowed per minute for this key.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Cost units left in this minute.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the minute window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"description":"unauthorized, invalid_token or token_expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ip_not_allowed, not_enabled, account_suspended, plan_required, read_only_token, server_paused","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited or quota_exceeded: wait Retry-After seconds","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-cost":2,"x-scope":"write","x-required-plan":"pro"}},"/servers/{serverId}/actions":{"post":{"operationId":"runAction","tags":["Actions"],"summary":"Any Operations action: {\"action\":\"heal\",\"steamId\":\"7656...\"}, \"message\", \"teleport\", \"give\", \"kick\", \"say\", \"restart\"...","parameters":[{"name":"serverId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Id of this request: quote it in support requests.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Requests allowed per minute for this key.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Cost units left in this minute.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the minute window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActionResult"}}}},"400":{"description":"bad_request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"unauthorized, invalid_token or token_expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ip_not_allowed, not_enabled, account_suspended, plan_required, read_only_token, server_paused","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited or quota_exceeded: wait Retry-After seconds","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-cost":2,"x-scope":"write","x-required-plan":"pro","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["action"],"properties":{"action":{"type":"string"},"steamId":{"type":"string","pattern":"^7656\\d{13}$","example":"76561198000000001"},"text":{"type":"string"}},"additionalProperties":true}}}}}},"/servers/{serverId}/kick":{"post":{"operationId":"kickPlayer","tags":["Actions"],"summary":"Kick a player, with a reason shown to them.","parameters":[{"name":"serverId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Id of this request: quote it in support requests.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Requests allowed per minute for this key.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Cost units left in this minute.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the minute window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActionResult"}}}},"400":{"description":"bad_request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"unauthorized, invalid_token or token_expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ip_not_allowed, not_enabled, account_suspended, plan_required, read_only_token, server_paused","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited or quota_exceeded: wait Retry-After seconds","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-cost":2,"x-scope":"write","x-required-plan":"pro","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["steamId"],"properties":{"steamId":{"type":"string","pattern":"^7656\\d{13}$","example":"76561198000000001"},"reason":{"type":"string","maxLength":120}},"additionalProperties":false}}}}}},"/servers/{serverId}/message":{"post":{"operationId":"sendMessage","tags":["Actions"],"summary":"Send a message to one player (steamId) or broadcast it to everyone.","parameters":[{"name":"serverId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Id of this request: quote it in support requests.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Requests allowed per minute for this key.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Cost units left in this minute.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the minute window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActionResult"}}}},"400":{"description":"bad_request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"unauthorized, invalid_token or token_expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ip_not_allowed, not_enabled, account_suspended, plan_required, read_only_token, server_paused","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited or quota_exceeded: wait Retry-After seconds","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-cost":2,"x-scope":"write","x-required-plan":"pro","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","maxLength":300},"steamId":{"type":"string","pattern":"^7656\\d{13}$","example":"76561198000000001"}},"additionalProperties":false}}}}}},"/servers/{serverId}/whitelist":{"get":{"operationId":"listWhitelist","tags":["Access lists"],"summary":"The whitelist: whether it is on and who is on it.","parameters":[{"name":"serverId","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Page size (1-1000, default 200).","schema":{"type":"integer"}},{"name":"cursor","in":"query","required":false,"description":"The nextCursor of the previous page.","schema":{"type":"string"}}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Id of this request: quote it in support requests.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Requests allowed per minute for this key.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Cost units left in this minute.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the minute window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccessList"}}}},"400":{"description":"bad_request or invalid_cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"unauthorized, invalid_token or token_expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ip_not_allowed, not_enabled, account_suspended, plan_required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited or quota_exceeded: wait Retry-After seconds","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-cost":1,"x-scope":"read","x-required-plan":"standard"},"post":{"operationId":"addWhitelist","tags":["Access lists"],"summary":"Add players to the whitelist (up to 5000 in all).","parameters":[{"name":"serverId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Id of this request: quote it in support requests.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Requests allowed per minute for this key.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Cost units left in this minute.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the minute window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccessChanged"}}}},"400":{"description":"bad_request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"unauthorized, invalid_token or token_expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ip_not_allowed, not_enabled, account_suspended, plan_required, read_only_token, server_paused","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited or quota_exceeded: wait Retry-After seconds","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-cost":2,"x-scope":"write","x-required-plan":"pro","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["steamId"],"properties":{"steamId":{"type":"string","pattern":"^7656\\d{13}$","example":"76561198000000001"},"steamIds":{"type":"array","maxItems":100,"items":{"type":"string","pattern":"^7656\\d{13}$","example":"76561198000000001"}}},"additionalProperties":false}}}}}},"/servers/{serverId}/whitelist/{steamId}":{"delete":{"operationId":"removeWhitelist","tags":["Access lists"],"summary":"Remove a player from the whitelist (the last one cannot go while the whitelist is on).","parameters":[{"name":"serverId","in":"path","required":true,"schema":{"type":"string"}},{"name":"steamId","in":"path","required":true,"schema":{"type":"string","pattern":"^7656\\d{13}$","example":"76561198000000001"}}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Id of this request: quote it in support requests.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Requests allowed per minute for this key.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Cost units left in this minute.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the minute window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccessChanged"}}}},"401":{"description":"unauthorized, invalid_token or token_expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ip_not_allowed, not_enabled, account_suspended, plan_required, read_only_token, server_paused","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited or quota_exceeded: wait Retry-After seconds","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-cost":2,"x-scope":"write","x-required-plan":"pro"}},"/servers/{serverId}/priority":{"get":{"operationId":"listPriority","tags":["Access lists"],"summary":"The priority (queue-skipping) players.","parameters":[{"name":"serverId","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Page size (1-1000, default 200).","schema":{"type":"integer"}},{"name":"cursor","in":"query","required":false,"description":"The nextCursor of the previous page.","schema":{"type":"string"}}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Id of this request: quote it in support requests.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Requests allowed per minute for this key.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Cost units left in this minute.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the minute window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccessList"}}}},"400":{"description":"bad_request or invalid_cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"unauthorized, invalid_token or token_expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ip_not_allowed, not_enabled, account_suspended, plan_required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited or quota_exceeded: wait Retry-After seconds","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-cost":1,"x-scope":"read","x-required-plan":"standard"},"post":{"operationId":"addPriority","tags":["Access lists"],"summary":"Add players to the priority list (up to 1000 in all).","parameters":[{"name":"serverId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Id of this request: quote it in support requests.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Requests allowed per minute for this key.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Cost units left in this minute.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the minute window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccessChanged"}}}},"400":{"description":"bad_request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"unauthorized, invalid_token or token_expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ip_not_allowed, not_enabled, account_suspended, plan_required, read_only_token, server_paused","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited or quota_exceeded: wait Retry-After seconds","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-cost":2,"x-scope":"write","x-required-plan":"pro","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["steamId"],"properties":{"steamId":{"type":"string","pattern":"^7656\\d{13}$","example":"76561198000000001"},"steamIds":{"type":"array","maxItems":100,"items":{"type":"string","pattern":"^7656\\d{13}$","example":"76561198000000001"}}},"additionalProperties":false}}}}}},"/servers/{serverId}/priority/{steamId}":{"delete":{"operationId":"removePriority","tags":["Access lists"],"summary":"Remove a player from the priority list.","parameters":[{"name":"serverId","in":"path","required":true,"schema":{"type":"string"}},{"name":"steamId","in":"path","required":true,"schema":{"type":"string","pattern":"^7656\\d{13}$","example":"76561198000000001"}}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Id of this request: quote it in support requests.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Requests allowed per minute for this key.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Cost units left in this minute.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the minute window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccessChanged"}}}},"401":{"description":"unauthorized, invalid_token or token_expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ip_not_allowed, not_enabled, account_suspended, plan_required, read_only_token, server_paused","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited or quota_exceeded: wait Retry-After seconds","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-cost":2,"x-scope":"write","x-required-plan":"pro"}},"/servers/{serverId}/sessions":{"get":{"operationId":"listSessions","tags":["Players"],"summary":"Play sessions (join to leave), newest first, rebuilt from the join and leave log.","parameters":[{"name":"serverId","in":"path","required":true,"schema":{"type":"string"}},{"name":"steamId","in":"query","required":false,"description":"Only this SteamID64.","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Page size (1-1000, default 200).","schema":{"type":"integer"}},{"name":"cursor","in":"query","required":false,"description":"The nextCursor of the previous page.","schema":{"type":"string"}}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Id of this request: quote it in support requests.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Requests allowed per minute for this key.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Cost units left in this minute.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the minute window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SessionList"}}}},"400":{"description":"bad_request or invalid_cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"unauthorized, invalid_token or token_expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ip_not_allowed, not_enabled, account_suspended, plan_required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited or quota_exceeded: wait Retry-After seconds","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-cost":5,"x-scope":"read","x-required-plan":"standard"}},"/servers/{serverId}/stats":{"get":{"operationId":"getStats","tags":["Statistics"],"summary":"Population and FPS series, one point every 5 minutes (thinned to at most 1000 points).","parameters":[{"name":"serverId","in":"path","required":true,"schema":{"type":"string"}},{"name":"hours","in":"query","required":false,"description":"How far back (1-2160, default 24; the plan's log history is the limit).","schema":{"type":"integer"}},{"name":"points","in":"query","required":false,"description":"At most this many points (10-1000, default 288).","schema":{"type":"integer"}}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Id of this request: quote it in support requests.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Requests allowed per minute for this key.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Cost units left in this minute.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the minute window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Stats"}}}},"400":{"description":"bad_request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"unauthorized, invalid_token or token_expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ip_not_allowed, not_enabled, account_suspended, plan_required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited or quota_exceeded: wait Retry-After seconds","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-cost":5,"x-scope":"read","x-required-plan":"standard"}},"/servers/{serverId}/leaderboard":{"get":{"operationId":"getLeaderboard","tags":["Statistics"],"summary":"Leaderboard: kills, deaths, playtime, longest kill, K/D, PvE K/D or infected kills.","parameters":[{"name":"serverId","in":"path","required":true,"schema":{"type":"string"}},{"name":"by","in":"query","required":false,"description":"The ranking (default kills).","schema":{"type":"string","enum":["kills","deaths","playtime","longestKill","kd","pveKd","infectedKills"]}},{"name":"limit","in":"query","required":false,"description":"Page size (1-100, default 25).","schema":{"type":"integer"}},{"name":"cursor","in":"query","required":false,"description":"The nextCursor of the previous page.","schema":{"type":"string"}}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Id of this request: quote it in support requests.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Requests allowed per minute for this key.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Cost units left in this minute.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the minute window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Leaderboard"}}}},"400":{"description":"bad_request or invalid_cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"unauthorized, invalid_token or token_expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ip_not_allowed, not_enabled, account_suspended, plan_required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited or quota_exceeded: wait Retry-After seconds","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-cost":5,"x-scope":"read","x-required-plan":"community"}},"/servers/{serverId}/hud":{"get":{"operationId":"getHud","tags":["Statistics"],"summary":"For an in-game leaderboard HUD: the top players of seven boards (kills, K/D, longest kill, AI kills, longest life, zombie kills, animal kills) and, for the SteamID64s asked, their own numbers and ranks. Cached for a minute.","parameters":[{"name":"serverId","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Rows per board (1-20, default 10).","schema":{"type":"integer"}},{"name":"steamIds","in":"query","required":false,"description":"Up to 100 SteamID64s, comma-separated (usually the players online).","schema":{"type":"string"}},{"name":"mode","in":"query","required":false,"description":"How K/D is counted: pvp (default; player kills / deaths by players), pve (AI kills / deaths by AI) or mixed (both kills / both deaths).","schema":{"type":"string"}}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Id of this request: quote it in support requests.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Requests allowed per minute for this key.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Cost units left in this minute.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the minute window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hud"}}}},"400":{"description":"bad_request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"unauthorized, invalid_token or token_expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ip_not_allowed, not_enabled, account_suspended, plan_required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited or quota_exceeded: wait Retry-After seconds","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-cost":5,"x-scope":"read","x-required-plan":"standard"},"post":{"operationId":"postHud","tags":["Statistics"],"summary":"The same as GET /hud, for game servers whose HTTP client can only send the Authorization header with a POST (DayZ). Same query, empty body. For an in-game leaderboard HUD: the top players of seven boards (kills, K/D, longest kill, AI kills, longest life, zombie kills, animal kills) and, for the SteamID64s asked, their own numbers and ranks. Cached for a minute.","parameters":[{"name":"serverId","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Rows per board (1-20, default 10).","schema":{"type":"integer"}},{"name":"steamIds","in":"query","required":false,"description":"Up to 100 SteamID64s, comma-separated (usually the players online).","schema":{"type":"string"}},{"name":"mode","in":"query","required":false,"description":"How K/D is counted: pvp (default; player kills / deaths by players), pve (AI kills / deaths by AI) or mixed (both kills / both deaths).","schema":{"type":"string"}}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Id of this request: quote it in support requests.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Requests allowed per minute for this key.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Cost units left in this minute.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the minute window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hud"}}}},"400":{"description":"bad_request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"unauthorized, invalid_token or token_expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ip_not_allowed, not_enabled, account_suspended, plan_required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited or quota_exceeded: wait Retry-After seconds","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-cost":5,"x-scope":"read","x-required-plan":"standard"}},"/players/lookup":{"get":{"operationId":"lookupPlayer","tags":["Players"],"summary":"Find a player on all the servers the key can use, by SteamID64 or by name.","parameters":[{"name":"steamId","in":"query","required":false,"description":"A SteamID64.","schema":{"type":"string"}},{"name":"name","in":"query","required":false,"description":"Part of a name (3 or more characters).","schema":{"type":"string"}}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Id of this request: quote it in support requests.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Requests allowed per minute for this key.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Cost units left in this minute.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the minute window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlayerLookup"}}}},"400":{"description":"bad_request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"unauthorized, invalid_token or token_expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ip_not_allowed, not_enabled, account_suspended, plan_required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited or quota_exceeded: wait Retry-After seconds","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-cost":5,"x-scope":"read","x-required-plan":"community"}}},"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"A key made on the dashboard API page: dhca_ followed by 32 characters."}},"schemas":{"Error":{"type":"object","required":["ok","error","code","requestId"],"properties":{"ok":{"const":false},"error":{"type":"string","description":"English text for people. Do not branch on it."},"code":{"type":"string","enum":["bad_request","invalid_cursor","action_failed","unauthorized","invalid_token","token_expired","ip_not_allowed","not_enabled","account_suspended","plan_required","read_only_token","dashboard_only","server_paused","not_found","conflict","rate_limited","quota_exceeded","internal_error"]},"requestId":{"type":"string"}}},"Ok":{"type":"object","required":["ok"],"properties":{"ok":{"const":true}}},"Server":{"type":"object","properties":{"serverId":{"type":"string"},"name":{"type":"string"},"map":{"type":"string"},"online":{"type":"boolean"},"players":{"type":"integer"},"maxPlayers":{"type":"integer"},"fps":{"type":"number"},"fpsMin":{"type":"number"},"uptimeSeconds":{"type":"integer"},"rcon":{"type":"string"},"nextRestartAt":{"type":["string","null"],"format":"date-time"}}},"Player":{"type":"object","properties":{"steamId":{"type":"string","pattern":"^7656\\d{13}$","example":"76561198000000001"},"name":{"type":"string"},"online":{"type":"boolean"},"firstSeenAt":{"type":["string","null"],"format":"date-time"},"lastSeenAt":{"type":["string","null"],"format":"date-time"},"sessions":{"type":"integer"},"playtimeSeconds":{"type":"integer"},"kills":{"type":"integer"},"deaths":{"type":"integer"},"longestKill":{"type":"number"}}},"Event":{"type":"object","properties":{"type":{"type":"string"},"at":{"type":["string","null"],"format":"date-time"},"steamId":{"type":"string"},"name":{"type":"string"},"otherId":{"type":"string"},"otherName":{"type":"string"},"item":{"type":"string"},"detail":{"type":"string"},"amount":{"type":"number"},"distance":{"type":"number"},"x":{"type":"number"},"z":{"type":"number"},"channel":{"type":"string"},"text":{"type":"string"}}},"Ban":{"type":"object","properties":{"id":{"type":"string"},"steamId":{"type":"string","pattern":"^7656\\d{13}$","example":"76561198000000001"},"name":{"type":"string"},"reason":{"type":"string"},"evidence":{"type":"array","items":{"type":"string"}},"status":{"type":"string","enum":["active","expired","revoked"]},"createdAt":{"type":["string","null"],"format":"date-time"},"expiresAt":{"type":["string","null"],"format":"date-time"},"revokedAt":{"type":["string","null"],"format":"date-time"},"byName":{"type":"string"}}},"Session":{"type":"object","properties":{"steamId":{"type":"string","pattern":"^7656\\d{13}$","example":"76561198000000001"},"name":{"type":"string"},"joinedAt":{"type":["string","null"],"format":"date-time"},"leftAt":{"type":["string","null"],"format":"date-time"},"durationSeconds":{"type":["integer","null"]},"open":{"type":"boolean"}}},"Paged":{"type":"object","properties":{"nextCursor":{"type":["string","null"]}}},"Me":{"type":"object","properties":{"ok":{"const":true},"key":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"scope":{"type":"string","enum":["read","write"]},"hint":{"type":"string"},"createdAt":{"type":["string","null"],"format":"date-time"},"expiresAt":{"type":["string","null"],"format":"date-time"},"lastUsedAt":{"type":["string","null"],"format":"date-time"},"ipRestricted":{"type":"boolean"},"servers":{"type":"array","items":{"type":"string"},"description":"Empty = every server of the owner."}}},"scopes":{"type":"array","items":{"type":"string"},"description":"What this key can do right now, with the owner's plan: read, write."},"plan":{"type":"object","properties":{"tier":{"type":"string"},"label":{"type":"string"}}},"features":{"type":"object","properties":{"write":{"type":"boolean"},"lookup":{"type":"boolean"},"webhooks":{"type":"boolean"}}},"limits":{"type":"object","properties":{"perMinute":{"type":"integer"},"perDay":{"type":"integer"},"keys":{"type":["integer","null"]}}},"servers":{"type":"array","items":{"$ref":"#/components/schemas/Server"}}}},"ServerList":{"type":"object","properties":{"ok":{"const":true},"servers":{"type":"array","items":{"$ref":"#/components/schemas/Server"}}}},"ServerDetail":{"type":"object","properties":{"ok":{"const":true},"server":{"$ref":"#/components/schemas/Server"},"online":{"type":"array","items":{"$ref":"#/components/schemas/Player"}}}},"PlayerList":{"allOf":[{"$ref":"#/components/schemas/Paged"},{"type":"object","properties":{"ok":{"const":true},"players":{"type":"array","items":{"$ref":"#/components/schemas/Player"}}}}]},"EventList":{"allOf":[{"$ref":"#/components/schemas/Paged"},{"type":"object","properties":{"ok":{"const":true},"next":{"type":["string","null"],"format":"date-time"},"events":{"type":"array","items":{"$ref":"#/components/schemas/Event"}}}}]},"BanList":{"allOf":[{"$ref":"#/components/schemas/Paged"},{"type":"object","properties":{"ok":{"const":true},"bans":{"type":"array","items":{"$ref":"#/components/schemas/Ban"}}}}]},"BanDetail":{"type":"object","properties":{"ok":{"const":true},"ban":{"$ref":"#/components/schemas/Ban"}}},"BanCreated":{"type":"object","properties":{"ok":{"const":true},"id":{"type":"string"},"expiresAt":{"type":["string","null"],"format":"date-time"}}},"ActionResult":{"type":"object","properties":{"ok":{"const":true},"commandId":{"type":"string"},"status":{"type":"string"},"result":{"type":"string"}}},"AccessList":{"allOf":[{"$ref":"#/components/schemas/Paged"},{"type":"object","properties":{"ok":{"const":true},"enabled":{"type":"boolean"},"total":{"type":"integer"},"steamIds":{"type":"array","items":{"type":"string","pattern":"^7656\\d{13}$","example":"76561198000000001"}}}}]},"AccessChanged":{"type":"object","properties":{"ok":{"const":true},"total":{"type":"integer"},"added":{"type":"integer"}}},"SessionList":{"allOf":[{"$ref":"#/components/schemas/Paged"},{"type":"object","properties":{"ok":{"const":true},"sessions":{"type":"array","items":{"$ref":"#/components/schemas/Session"}}}}]},"Stats":{"type":"object","properties":{"ok":{"const":true},"from":{"type":["string","null"],"format":"date-time"},"to":{"type":["string","null"],"format":"date-time"},"summary":{"type":"object","properties":{"peakPlayers":{"type":"integer"},"averagePlayers":{"type":"number"},"averageFps":{"type":"number"},"samples":{"type":"integer"}}},"points":{"type":"array","items":{"type":"object","properties":{"at":{"type":["string","null"],"format":"date-time"},"players":{"type":"integer"},"fps":{"type":"number"},"fpsMin":{"type":"number"},"queued":{"type":["integer","null"]},"ai":{"type":["integer","null"]}}}}}},"Hud":{"type":"object","properties":{"ok":{"const":true},"at":{"type":["string","null"],"format":"date-time"},"boards":{"type":"object","additionalProperties":{"type":"array","items":{"type":"object","properties":{"rank":{"type":"integer"},"steamId":{"type":"string","pattern":"^7656\\d{13}$","example":"76561198000000001"},"name":{"type":"string"},"value":{"type":"number"}}}}},"players":{"type":"object","additionalProperties":{"type":"object","properties":{"name":{"type":"string"},"kills":{"type":"integer"},"deaths":{"type":"integer"},"kd":{"type":"number"},"longestKill":{"type":"number"},"aiKills":{"type":"integer"},"lifeBest":{"type":"integer"},"ranks":{"type":"object","additionalProperties":{"type":["integer","null"]}}}}}}},"Leaderboard":{"allOf":[{"$ref":"#/components/schemas/Paged"},{"type":"object","properties":{"ok":{"const":true},"by":{"type":"string"},"rows":{"type":"array","items":{"type":"object","properties":{"rank":{"type":"integer"},"steamId":{"type":"string","pattern":"^7656\\d{13}$","example":"76561198000000001"},"name":{"type":"string"},"value":{"type":"number"},"kills":{"type":"integer"},"deaths":{"type":"integer"},"playtimeSeconds":{"type":"integer"},"longestKill":{"type":"number"},"kd":{"type":"number"},"pveKd":{"type":"number"},"infectedKills":{"type":"integer"}}}}}}]},"PlayerLookup":{"type":"object","properties":{"ok":{"const":true},"players":{"type":"array","items":{"type":"object","properties":{"steamId":{"type":"string","pattern":"^7656\\d{13}$","example":"76561198000000001"},"names":{"type":"array","items":{"type":"string"}},"banned":{"type":"boolean"},"servers":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/Player"},{"type":"object","properties":{"serverId":{"type":"string"},"serverName":{"type":"string"}}}]}}}}}}}}},"x-error-codes":{"bad_request":{"status":400,"description":"The request could not be understood: a missing or malformed field."},"invalid_cursor":{"status":400,"description":"The cursor is not one this endpoint handed out."},"action_failed":{"status":400,"description":"The server refused the action (not connected, unknown player, bad fields)."},"unauthorized":{"status":401,"description":"No usable Authorization: Bearer header."},"invalid_token":{"status":401,"description":"Unknown or revoked key."},"token_expired":{"status":401,"description":"The key has passed its expiry date."},"ip_not_allowed":{"status":403,"description":"The request comes from an address outside the key's IP allowlist."},"not_enabled":{"status":403,"description":"The Console is not enabled for this account."},"account_suspended":{"status":403,"description":"The account is suspended."},"plan_required":{"status":403,"description":"The owner's plan does not include this endpoint."},"read_only_token":{"status":403,"description":"A write endpoint was called with a read-only key."},"dashboard_only":{"status":403,"description":"This action can only be run from the dashboard."},"server_paused":{"status":403,"description":"The server is paused over the plan's server limit: read-only."},"not_found":{"status":404,"description":"No such resource (also returned for servers outside the key's grants)."},"conflict":{"status":409,"description":"The change would leave the server in a state that locks everyone out."},"rate_limited":{"status":429,"description":"Too many requests this minute: wait for Retry-After seconds."},"quota_exceeded":{"status":429,"description":"The key's daily quota is used up: it resets at 00:00 UTC."},"internal_error":{"status":500,"description":"Something went wrong on our side. Quote the requestId when asking for help."}}}