{"openapi":"3.1.0","info":{"title":"Clash Arena API","version":"1.0.0","description":"Locked read-only API for Clash Arena datasets. Public dataset paths use clean names, while internal Mongo collection names remain hidden."},"servers":[{"url":"https://api.clasharena.net"}],"tags":[{"name":"Meta","description":"Authentication and dataset catalog endpoints."},{"name":"Players","description":"Registered Clash Arena player accounts."},{"name":"Clans","description":"Registered Clash Arena clans and ownership data."},{"name":"Preferences","description":"Per-user bot preference overrides such as language."},{"name":"Queue","description":"Current matchmaking queue entries."},{"name":"Matches","description":"Created and completed Clash Arena matches."},{"name":"Ratings","description":"Player and clan ELO per season and mode."},{"name":"Support Requests","description":"Submitted support cases for match review."},{"name":"Audit Log","description":"Developer audit events and moderation-side traces."},{"name":"Giveaways","description":"Giveaway definitions and winner state."},{"name":"Giveaway Entries","description":"Giveaway entrants per giveaway."},{"name":"Counters","description":"Internal numeric counters such as match ids."},{"name":"Runtime Flags","description":"Runtime feature and maintenance flags."},{"name":"API Keys","description":"API key metadata. Secret material is never exposed."}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-Key","description":"Full Clash Arena API token."},"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API token","description":"Alternative Authorization header format."}},"schemas":{"ErrorResponse":{"type":"object","additionalProperties":false,"properties":{"error":{"type":"string"},"details":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["error","details"]},"ApiRootResponse":{"type":"object","properties":{"service":{"type":"string"},"version":{"type":"string"},"datasets":{"type":"array","items":{"type":"string"}},"docs":{"type":"string"},"auth":{"type":"object","properties":{"keyId":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"grantedScopes":{"type":"array","items":{"type":"string"}}},"required":["keyId","name","grantedScopes"]}},"required":["service","version","datasets","docs","auth"]},"DatasetCatalogEntry":{"type":"object","properties":{"dataset":{"type":"string"},"label":{"type":"string"},"description":{"type":"string"},"lookupFields":{"type":"array","items":{"type":"string"}},"requiredScope":{"type":"string"},"accessible":{"type":"boolean"}},"required":["dataset","label","description","lookupFields","requiredScope","accessible"]},"DatasetCatalogResponse":{"type":"object","properties":{"count":{"type":"integer"},"datasets":{"type":"array","items":{"$ref":"#/components/schemas/DatasetCatalogEntry"}}},"required":["count","datasets"]},"DatasetListResponse":{"type":"object","properties":{"dataset":{"type":"string"},"label":{"type":"string"},"total":{"type":"integer"},"limit":{"type":"integer"},"offset":{"type":"integer"},"sort":{"type":"object","additionalProperties":{"type":"integer"}},"filter":{"type":"object","additionalProperties":true},"count":{"type":"integer"},"items":{"type":"array","items":{"type":"object","additionalProperties":true}}},"required":["dataset","label","total","limit","offset","sort","filter","count","items"]},"DatasetItemResponse":{"type":"object","properties":{"dataset":{"type":"string"},"label":{"type":"string"},"item":{"type":"object","additionalProperties":true}},"required":["dataset","label","item"]}}},"paths":{"/v1":{"get":{"tags":["Meta"],"summary":"Get authenticated API session metadata","description":"Returns the authenticated key id, granted scopes, and the canonical dataset list.","security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}],"responses":{"200":{"description":"Authenticated metadata payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiRootResponse"}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/datasets":{"get":{"tags":["Meta"],"summary":"List canonical datasets","description":"Returns the public dataset surface, lookup fields, and required scopes.","security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}],"responses":{"200":{"description":"Dataset catalog","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetCatalogResponse"}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/players":{"get":{"tags":["Players"],"summary":"List Players","description":"Registered Clash Arena player accounts.\n\nRequired scope: dataset:players:read\n\nLegacy aliases: arena_players","security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}],"parameters":[{"name":"limit","in":"query","description":"Max items to return (1-200).","schema":{"type":"integer","minimum":1,"maximum":200,"default":50}},{"name":"offset","in":"query","description":"Number of records to skip.","schema":{"type":"integer","minimum":0,"maximum":10000,"default":0}},{"name":"sort","in":"query","description":"Field name to sort by. Use `id` for document ids.","schema":{"type":"string"}},{"name":"order","in":"query","description":"Sort order.","schema":{"type":"string","enum":["asc","desc"],"default":"desc"}},{"name":"filter.FIELD","in":"query","description":"Ad-hoc filter pattern. Replace `FIELD` with any public field name.","allowReserved":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Players list response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetListResponse"},"examples":{"sample":{"value":{"dataset":"players","label":"Players","total":1,"limit":50,"offset":0,"sort":{"id":-1},"filter":{},"count":1,"items":[{"id":"example-id","example":true}]}}}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Key lacks the dataset scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/players/{lookup}":{"get":{"tags":["Players"],"summary":"Get one Player","description":"Registered Clash Arena player accounts.\n\nRequired scope: dataset:players:read\n\nLegacy aliases: arena_players","security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}],"parameters":[{"name":"lookup","in":"path","required":true,"description":"Lookup value. Supported fields: tag, id.","schema":{"type":"string"}}],"responses":{"200":{"description":"Players item response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetItemResponse"},"examples":{"sample":{"value":{"dataset":"players","label":"Players","item":{"id":"example-id"}}}}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Key lacks the dataset scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Record not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/clans":{"get":{"tags":["Clans"],"summary":"List Clans","description":"Registered Clash Arena clans and ownership data.\n\nRequired scope: dataset:clans:read\n\nLegacy aliases: arena_clans","security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}],"parameters":[{"name":"limit","in":"query","description":"Max items to return (1-200).","schema":{"type":"integer","minimum":1,"maximum":200,"default":50}},{"name":"offset","in":"query","description":"Number of records to skip.","schema":{"type":"integer","minimum":0,"maximum":10000,"default":0}},{"name":"sort","in":"query","description":"Field name to sort by. Use `id` for document ids.","schema":{"type":"string"}},{"name":"order","in":"query","description":"Sort order.","schema":{"type":"string","enum":["asc","desc"],"default":"desc"}},{"name":"filter.FIELD","in":"query","description":"Ad-hoc filter pattern. Replace `FIELD` with any public field name.","allowReserved":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Clans list response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetListResponse"},"examples":{"sample":{"value":{"dataset":"clans","label":"Clans","total":1,"limit":50,"offset":0,"sort":{"id":-1},"filter":{},"count":1,"items":[{"id":"example-id","example":true}]}}}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Key lacks the dataset scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/clans/{lookup}":{"get":{"tags":["Clans"],"summary":"Get one Clan","description":"Registered Clash Arena clans and ownership data.\n\nRequired scope: dataset:clans:read\n\nLegacy aliases: arena_clans","security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}],"parameters":[{"name":"lookup","in":"path","required":true,"description":"Lookup value. Supported fields: tag, id.","schema":{"type":"string"}}],"responses":{"200":{"description":"Clans item response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetItemResponse"},"examples":{"sample":{"value":{"dataset":"clans","label":"Clans","item":{"id":"example-id"}}}}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Key lacks the dataset scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Record not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/preferences":{"get":{"tags":["Preferences"],"summary":"List Preferences","description":"Per-user bot preference overrides such as language.\n\nRequired scope: dataset:preferences:read\n\nLegacy aliases: arena_user_prefs, user-prefs","security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}],"parameters":[{"name":"limit","in":"query","description":"Max items to return (1-200).","schema":{"type":"integer","minimum":1,"maximum":200,"default":50}},{"name":"offset","in":"query","description":"Number of records to skip.","schema":{"type":"integer","minimum":0,"maximum":10000,"default":0}},{"name":"sort","in":"query","description":"Field name to sort by. Use `id` for document ids.","schema":{"type":"string"}},{"name":"order","in":"query","description":"Sort order.","schema":{"type":"string","enum":["asc","desc"],"default":"desc"}},{"name":"filter.FIELD","in":"query","description":"Ad-hoc filter pattern. Replace `FIELD` with any public field name.","allowReserved":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Preferences list response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetListResponse"},"examples":{"sample":{"value":{"dataset":"preferences","label":"Preferences","total":1,"limit":50,"offset":0,"sort":{"id":-1},"filter":{},"count":1,"items":[{"id":"example-id","example":true}]}}}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Key lacks the dataset scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/preferences/{lookup}":{"get":{"tags":["Preferences"],"summary":"Get one Preference","description":"Per-user bot preference overrides such as language.\n\nRequired scope: dataset:preferences:read\n\nLegacy aliases: arena_user_prefs, user-prefs","security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}],"parameters":[{"name":"lookup","in":"path","required":true,"description":"Lookup value. Supported fields: userId, id.","schema":{"type":"string"}}],"responses":{"200":{"description":"Preferences item response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetItemResponse"},"examples":{"sample":{"value":{"dataset":"preferences","label":"Preferences","item":{"id":"example-id"}}}}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Key lacks the dataset scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Record not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/queue":{"get":{"tags":["Queue"],"summary":"List Queue","description":"Current matchmaking queue entries.\n\nRequired scope: dataset:queue:read\n\nLegacy aliases: arena_queue","security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}],"parameters":[{"name":"limit","in":"query","description":"Max items to return (1-200).","schema":{"type":"integer","minimum":1,"maximum":200,"default":50}},{"name":"offset","in":"query","description":"Number of records to skip.","schema":{"type":"integer","minimum":0,"maximum":10000,"default":0}},{"name":"sort","in":"query","description":"Field name to sort by. Use `id` for document ids.","schema":{"type":"string"}},{"name":"order","in":"query","description":"Sort order.","schema":{"type":"string","enum":["asc","desc"],"default":"desc"}},{"name":"filter.FIELD","in":"query","description":"Ad-hoc filter pattern. Replace `FIELD` with any public field name.","allowReserved":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Queue list response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetListResponse"},"examples":{"sample":{"value":{"dataset":"queue","label":"Queue","total":1,"limit":50,"offset":0,"sort":{"id":-1},"filter":{},"count":1,"items":[{"id":"example-id","example":true}]}}}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Key lacks the dataset scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/queue/{lookup}":{"get":{"tags":["Queue"],"summary":"Get one Queu","description":"Current matchmaking queue entries.\n\nRequired scope: dataset:queue:read\n\nLegacy aliases: arena_queue","security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}],"parameters":[{"name":"lookup","in":"path","required":true,"description":"Lookup value. Supported fields: id, clanTag.","schema":{"type":"string"}}],"responses":{"200":{"description":"Queue item response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetItemResponse"},"examples":{"sample":{"value":{"dataset":"queue","label":"Queue","item":{"id":"example-id"}}}}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Key lacks the dataset scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Record not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/matches":{"get":{"tags":["Matches"],"summary":"List Matches","description":"Created and completed Clash Arena matches.\n\nRequired scope: dataset:matches:read\n\nLegacy aliases: arena_matches","security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}],"parameters":[{"name":"limit","in":"query","description":"Max items to return (1-200).","schema":{"type":"integer","minimum":1,"maximum":200,"default":50}},{"name":"offset","in":"query","description":"Number of records to skip.","schema":{"type":"integer","minimum":0,"maximum":10000,"default":0}},{"name":"sort","in":"query","description":"Field name to sort by. Use `id` for document ids.","schema":{"type":"string"}},{"name":"order","in":"query","description":"Sort order.","schema":{"type":"string","enum":["asc","desc"],"default":"desc"}},{"name":"filter.FIELD","in":"query","description":"Ad-hoc filter pattern. Replace `FIELD` with any public field name.","allowReserved":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Matches list response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetListResponse"},"examples":{"sample":{"value":{"dataset":"matches","label":"Matches","total":1,"limit":50,"offset":0,"sort":{"id":-1},"filter":{},"count":1,"items":[{"id":"example-id","example":true}]}}}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Key lacks the dataset scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/matches/{lookup}":{"get":{"tags":["Matches"],"summary":"Get one Matche","description":"Created and completed Clash Arena matches.\n\nRequired scope: dataset:matches:read\n\nLegacy aliases: arena_matches","security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}],"parameters":[{"name":"lookup","in":"path","required":true,"description":"Lookup value. Supported fields: matchId, id.","schema":{"type":"string"}}],"responses":{"200":{"description":"Matches item response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetItemResponse"},"examples":{"sample":{"value":{"dataset":"matches","label":"Matches","item":{"id":"example-id"}}}}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Key lacks the dataset scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Record not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/ratings":{"get":{"tags":["Ratings"],"summary":"List Ratings","description":"Player and clan ELO per season and mode.\n\nRequired scope: dataset:ratings:read\n\nLegacy aliases: arena_ratings","security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}],"parameters":[{"name":"limit","in":"query","description":"Max items to return (1-200).","schema":{"type":"integer","minimum":1,"maximum":200,"default":50}},{"name":"offset","in":"query","description":"Number of records to skip.","schema":{"type":"integer","minimum":0,"maximum":10000,"default":0}},{"name":"sort","in":"query","description":"Field name to sort by. Use `id` for document ids.","schema":{"type":"string"}},{"name":"order","in":"query","description":"Sort order.","schema":{"type":"string","enum":["asc","desc"],"default":"desc"}},{"name":"filter.FIELD","in":"query","description":"Ad-hoc filter pattern. Replace `FIELD` with any public field name.","allowReserved":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Ratings list response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetListResponse"},"examples":{"sample":{"value":{"dataset":"ratings","label":"Ratings","total":1,"limit":50,"offset":0,"sort":{"id":-1},"filter":{},"count":1,"items":[{"id":"example-id","example":true}]}}}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Key lacks the dataset scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/ratings/{lookup}":{"get":{"tags":["Ratings"],"summary":"Get one Rating","description":"Player and clan ELO per season and mode.\n\nRequired scope: dataset:ratings:read\n\nLegacy aliases: arena_ratings","security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}],"parameters":[{"name":"lookup","in":"path","required":true,"description":"Lookup value. Supported fields: id, entityId.","schema":{"type":"string"}}],"responses":{"200":{"description":"Ratings item response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetItemResponse"},"examples":{"sample":{"value":{"dataset":"ratings","label":"Ratings","item":{"id":"example-id"}}}}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Key lacks the dataset scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Record not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/supportRequests":{"get":{"tags":["Support Requests"],"summary":"List Support Requests","description":"Submitted support cases for match review.\n\nRequired scope: dataset:supportRequests:read\n\nLegacy aliases: arena_support_requests, support-requests","security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}],"parameters":[{"name":"limit","in":"query","description":"Max items to return (1-200).","schema":{"type":"integer","minimum":1,"maximum":200,"default":50}},{"name":"offset","in":"query","description":"Number of records to skip.","schema":{"type":"integer","minimum":0,"maximum":10000,"default":0}},{"name":"sort","in":"query","description":"Field name to sort by. Use `id` for document ids.","schema":{"type":"string"}},{"name":"order","in":"query","description":"Sort order.","schema":{"type":"string","enum":["asc","desc"],"default":"desc"}},{"name":"filter.FIELD","in":"query","description":"Ad-hoc filter pattern. Replace `FIELD` with any public field name.","allowReserved":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Support Requests list response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetListResponse"},"examples":{"sample":{"value":{"dataset":"supportRequests","label":"Support Requests","total":1,"limit":50,"offset":0,"sort":{"id":-1},"filter":{},"count":1,"items":[{"id":"example-id","example":true}]}}}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Key lacks the dataset scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/supportRequests/{lookup}":{"get":{"tags":["Support Requests"],"summary":"Get one Support Request","description":"Submitted support cases for match review.\n\nRequired scope: dataset:supportRequests:read\n\nLegacy aliases: arena_support_requests, support-requests","security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}],"parameters":[{"name":"lookup","in":"path","required":true,"description":"Lookup value. Supported fields: id, matchId, clanTag.","schema":{"type":"string"}}],"responses":{"200":{"description":"Support Requests item response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetItemResponse"},"examples":{"sample":{"value":{"dataset":"supportRequests","label":"Support Requests","item":{"id":"example-id"}}}}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Key lacks the dataset scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Record not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/auditLog":{"get":{"tags":["Audit Log"],"summary":"List Audit Log","description":"Developer audit events and moderation-side traces.\n\nRequired scope: dataset:auditLog:read\n\nLegacy aliases: arena_dev_audit, dev-audit, audit-log","security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}],"parameters":[{"name":"limit","in":"query","description":"Max items to return (1-200).","schema":{"type":"integer","minimum":1,"maximum":200,"default":50}},{"name":"offset","in":"query","description":"Number of records to skip.","schema":{"type":"integer","minimum":0,"maximum":10000,"default":0}},{"name":"sort","in":"query","description":"Field name to sort by. Use `id` for document ids.","schema":{"type":"string"}},{"name":"order","in":"query","description":"Sort order.","schema":{"type":"string","enum":["asc","desc"],"default":"desc"}},{"name":"filter.FIELD","in":"query","description":"Ad-hoc filter pattern. Replace `FIELD` with any public field name.","allowReserved":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Audit Log list response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetListResponse"},"examples":{"sample":{"value":{"dataset":"auditLog","label":"Audit Log","total":1,"limit":50,"offset":0,"sort":{"id":-1},"filter":{},"count":1,"items":[{"id":"example-id","example":true}]}}}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Key lacks the dataset scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/auditLog/{lookup}":{"get":{"tags":["Audit Log"],"summary":"Get one Audit Lo","description":"Developer audit events and moderation-side traces.\n\nRequired scope: dataset:auditLog:read\n\nLegacy aliases: arena_dev_audit, dev-audit, audit-log","security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}],"parameters":[{"name":"lookup","in":"path","required":true,"description":"Lookup value. Supported fields: id.","schema":{"type":"string"}}],"responses":{"200":{"description":"Audit Log item response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetItemResponse"},"examples":{"sample":{"value":{"dataset":"auditLog","label":"Audit Log","item":{"id":"example-id"}}}}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Key lacks the dataset scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Record not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/giveaways":{"get":{"tags":["Giveaways"],"summary":"List Giveaways","description":"Giveaway definitions and winner state.\n\nRequired scope: dataset:giveaways:read\n\nLegacy aliases: arena_giveaways","security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}],"parameters":[{"name":"limit","in":"query","description":"Max items to return (1-200).","schema":{"type":"integer","minimum":1,"maximum":200,"default":50}},{"name":"offset","in":"query","description":"Number of records to skip.","schema":{"type":"integer","minimum":0,"maximum":10000,"default":0}},{"name":"sort","in":"query","description":"Field name to sort by. Use `id` for document ids.","schema":{"type":"string"}},{"name":"order","in":"query","description":"Sort order.","schema":{"type":"string","enum":["asc","desc"],"default":"desc"}},{"name":"filter.FIELD","in":"query","description":"Ad-hoc filter pattern. Replace `FIELD` with any public field name.","allowReserved":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Giveaways list response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetListResponse"},"examples":{"sample":{"value":{"dataset":"giveaways","label":"Giveaways","total":1,"limit":50,"offset":0,"sort":{"id":-1},"filter":{},"count":1,"items":[{"id":"example-id","example":true}]}}}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Key lacks the dataset scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/giveaways/{lookup}":{"get":{"tags":["Giveaways"],"summary":"Get one Giveaway","description":"Giveaway definitions and winner state.\n\nRequired scope: dataset:giveaways:read\n\nLegacy aliases: arena_giveaways","security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}],"parameters":[{"name":"lookup","in":"path","required":true,"description":"Lookup value. Supported fields: id, messageId.","schema":{"type":"string"}}],"responses":{"200":{"description":"Giveaways item response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetItemResponse"},"examples":{"sample":{"value":{"dataset":"giveaways","label":"Giveaways","item":{"id":"example-id"}}}}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Key lacks the dataset scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Record not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/giveawayEntries":{"get":{"tags":["Giveaway Entries"],"summary":"List Giveaway Entries","description":"Giveaway entrants per giveaway.\n\nRequired scope: dataset:giveawayEntries:read\n\nLegacy aliases: arena_giveaway_entries, giveaway-entries","security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}],"parameters":[{"name":"limit","in":"query","description":"Max items to return (1-200).","schema":{"type":"integer","minimum":1,"maximum":200,"default":50}},{"name":"offset","in":"query","description":"Number of records to skip.","schema":{"type":"integer","minimum":0,"maximum":10000,"default":0}},{"name":"sort","in":"query","description":"Field name to sort by. Use `id` for document ids.","schema":{"type":"string"}},{"name":"order","in":"query","description":"Sort order.","schema":{"type":"string","enum":["asc","desc"],"default":"desc"}},{"name":"filter.FIELD","in":"query","description":"Ad-hoc filter pattern. Replace `FIELD` with any public field name.","allowReserved":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Giveaway Entries list response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetListResponse"},"examples":{"sample":{"value":{"dataset":"giveawayEntries","label":"Giveaway Entries","total":1,"limit":50,"offset":0,"sort":{"id":-1},"filter":{},"count":1,"items":[{"id":"example-id","example":true}]}}}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Key lacks the dataset scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/giveawayEntries/{lookup}":{"get":{"tags":["Giveaway Entries"],"summary":"Get one Giveaway Entrie","description":"Giveaway entrants per giveaway.\n\nRequired scope: dataset:giveawayEntries:read\n\nLegacy aliases: arena_giveaway_entries, giveaway-entries","security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}],"parameters":[{"name":"lookup","in":"path","required":true,"description":"Lookup value. Supported fields: id, giveawayId, userId.","schema":{"type":"string"}}],"responses":{"200":{"description":"Giveaway Entries item response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetItemResponse"},"examples":{"sample":{"value":{"dataset":"giveawayEntries","label":"Giveaway Entries","item":{"id":"example-id"}}}}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Key lacks the dataset scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Record not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/counters":{"get":{"tags":["Counters"],"summary":"List Counters","description":"Internal numeric counters such as match ids.\n\nRequired scope: dataset:counters:read\n\nLegacy aliases: arena_counters","security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}],"parameters":[{"name":"limit","in":"query","description":"Max items to return (1-200).","schema":{"type":"integer","minimum":1,"maximum":200,"default":50}},{"name":"offset","in":"query","description":"Number of records to skip.","schema":{"type":"integer","minimum":0,"maximum":10000,"default":0}},{"name":"sort","in":"query","description":"Field name to sort by. Use `id` for document ids.","schema":{"type":"string"}},{"name":"order","in":"query","description":"Sort order.","schema":{"type":"string","enum":["asc","desc"],"default":"desc"}},{"name":"filter.FIELD","in":"query","description":"Ad-hoc filter pattern. Replace `FIELD` with any public field name.","allowReserved":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Counters list response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetListResponse"},"examples":{"sample":{"value":{"dataset":"counters","label":"Counters","total":1,"limit":50,"offset":0,"sort":{"id":-1},"filter":{},"count":1,"items":[{"id":"example-id","example":true}]}}}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Key lacks the dataset scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/counters/{lookup}":{"get":{"tags":["Counters"],"summary":"Get one Counter","description":"Internal numeric counters such as match ids.\n\nRequired scope: dataset:counters:read\n\nLegacy aliases: arena_counters","security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}],"parameters":[{"name":"lookup","in":"path","required":true,"description":"Lookup value. Supported fields: id.","schema":{"type":"string"}}],"responses":{"200":{"description":"Counters item response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetItemResponse"},"examples":{"sample":{"value":{"dataset":"counters","label":"Counters","item":{"id":"example-id"}}}}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Key lacks the dataset scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Record not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/runtimeFlags":{"get":{"tags":["Runtime Flags"],"summary":"List Runtime Flags","description":"Runtime feature and maintenance flags.\n\nRequired scope: dataset:runtimeFlags:read\n\nLegacy aliases: arena_runtime_flags, runtime-flags","security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}],"parameters":[{"name":"limit","in":"query","description":"Max items to return (1-200).","schema":{"type":"integer","minimum":1,"maximum":200,"default":50}},{"name":"offset","in":"query","description":"Number of records to skip.","schema":{"type":"integer","minimum":0,"maximum":10000,"default":0}},{"name":"sort","in":"query","description":"Field name to sort by. Use `id` for document ids.","schema":{"type":"string"}},{"name":"order","in":"query","description":"Sort order.","schema":{"type":"string","enum":["asc","desc"],"default":"desc"}},{"name":"filter.FIELD","in":"query","description":"Ad-hoc filter pattern. Replace `FIELD` with any public field name.","allowReserved":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime Flags list response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetListResponse"},"examples":{"sample":{"value":{"dataset":"runtimeFlags","label":"Runtime Flags","total":1,"limit":50,"offset":0,"sort":{"id":-1},"filter":{},"count":1,"items":[{"id":"example-id","example":true}]}}}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Key lacks the dataset scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/runtimeFlags/{lookup}":{"get":{"tags":["Runtime Flags"],"summary":"Get one Runtime Flag","description":"Runtime feature and maintenance flags.\n\nRequired scope: dataset:runtimeFlags:read\n\nLegacy aliases: arena_runtime_flags, runtime-flags","security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}],"parameters":[{"name":"lookup","in":"path","required":true,"description":"Lookup value. Supported fields: id.","schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime Flags item response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetItemResponse"},"examples":{"sample":{"value":{"dataset":"runtimeFlags","label":"Runtime Flags","item":{"id":"example-id"}}}}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Key lacks the dataset scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Record not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/apiKeys":{"get":{"tags":["API Keys"],"summary":"List API Keys","description":"API key metadata. Secret material is never exposed.\n\nRequired scope: dataset:apiKeys:read\n\nLegacy aliases: arena_api_keys, api-keys","security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}],"parameters":[{"name":"limit","in":"query","description":"Max items to return (1-200).","schema":{"type":"integer","minimum":1,"maximum":200,"default":50}},{"name":"offset","in":"query","description":"Number of records to skip.","schema":{"type":"integer","minimum":0,"maximum":10000,"default":0}},{"name":"sort","in":"query","description":"Field name to sort by. Use `id` for document ids.","schema":{"type":"string"}},{"name":"order","in":"query","description":"Sort order.","schema":{"type":"string","enum":["asc","desc"],"default":"desc"}},{"name":"filter.FIELD","in":"query","description":"Ad-hoc filter pattern. Replace `FIELD` with any public field name.","allowReserved":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"API Keys list response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetListResponse"},"examples":{"sample":{"value":{"dataset":"apiKeys","label":"API Keys","total":1,"limit":50,"offset":0,"sort":{"id":-1},"filter":{},"count":1,"items":[{"id":"example-id","example":true}]}}}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Key lacks the dataset scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/apiKeys/{lookup}":{"get":{"tags":["API Keys"],"summary":"Get one API Key","description":"API key metadata. Secret material is never exposed.\n\nRequired scope: dataset:apiKeys:read\n\nLegacy aliases: arena_api_keys, api-keys","security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}],"parameters":[{"name":"lookup","in":"path","required":true,"description":"Lookup value. Supported fields: keyId, id.","schema":{"type":"string"}}],"responses":{"200":{"description":"API Keys item response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetItemResponse"},"examples":{"sample":{"value":{"dataset":"apiKeys","label":"API Keys","item":{"id":"example-id"}}}}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Key lacks the dataset scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Record not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}