{"openapi":"3.1.0","info":{"title":"Everloot API","version":"1.1.0","summary":"WoW: Forever data players reported, with the game-file layer beside it, as JSON.","description":"Everloot publishes what players saw in WoW: Forever, and states a fact only once three installs reported it. The corpus and the drop rates are Everloot's data under CC BY-SA 4.0: credit it when you show it. Game-file endpoints carry Blizzard's data, found in game files and unconfirmed, with the build they came from; they are not under Everloot's licence. Every shape here is also published as JSON Schema under https://everloot.app/schema/api/, and the same definitions ship as the npm package @everloot/protocol. For answering questions, the MCP server at https://everloot.app/mcp/public is the right tool; this API is for building datasets and tools.","termsOfService":"https://everloot.app/terms#licences","contact":{"name":"Everloot","url":"https://everloot.app/connect","email":"hello@everloot.app"},"license":{"name":"CC BY-SA 4.0 (data); AGPL-3.0-only (code)","url":"https://creativecommons.org/licenses/by-sa/4.0/"}},"servers":[{"url":"https://everloot.app"}],"tags":[{"name":"observed","description":"Built from player uploads. Public after three installs agree."},{"name":"game-files","description":"Read from the public game client. Blizzard's data, unconfirmed, stamped with the build."},{"name":"mixed","description":"Observed rows and game-file rows side by side, each labelled."},{"name":"uploads","description":"Sending records from the addon's SavedVariables file."},{"name":"status","description":"Whether the public snapshot is fresh."}],"paths":{"/api/corpus/public":{"get":{"operationId":"getCorpusPublic","summary":"The public corpus: every public record players reported, without install ids","description":"Anonymous observations as records, so anyone can check the counts behind a published fact. `kinds` narrows the body to the record kinds a reader needs. Named records appear only with a grant.\n\nOpen without a key within a per-IP limit; a free key (see /connect#keys) raises the limit and the page size once keys are on. Player observations, Everloot's data under CC BY-SA 4.0: every answer carries `attribution` and the X-Everloot-Licence, X-Everloot-Credit and Link headers. Paged: `offset` and `limit`, with `next` as the URL of the following page or null.","tags":["observed"],"parameters":[{"name":"kinds","in":"query","required":false,"description":"Comma-separated record kinds to include. Unknown kinds are a 400.","schema":{"type":"string","examples":["loot,vendor"]}},{"name":"offset","in":"query","required":false,"description":"First row to return, 0 or more.","schema":{"type":"integer","minimum":0}},{"name":"limit","in":"query","required":false,"description":"Rows per page. Capped at the caller's page size when the data guard is on.","schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"The page of records.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/corpusPublicResponse"}}}},"400":{"description":"A parameter is wrong; `error` says which.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/apiError"}}}},"429":{"description":"Rate limited. `Retry-After` says when to try again.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/apiError"}}}},"503":{"description":"A dependency is unavailable. The answer is unrecorded, not zero.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/apiError"}}}}},"security":[{},{"apiKey":[]}]}},"/api/rollups/drops":{"get":{"operationId":"getRollupsDrops","summary":"Corroborated drop rates with loot-window counts","description":"A rate is public once three installs looted its source. Rates come first, then sources looted with nothing in their windows (measured zeros). `kills` counts loot windows players opened, not kills.\n\nOpen without a key within a per-IP limit; a free key (see /connect#keys) raises the limit and the page size once keys are on. Player observations, Everloot's data under CC BY-SA 4.0: every answer carries `attribution` and the X-Everloot-Licence, X-Everloot-Credit and Link headers. Paged: `offset` and `limit`, with `next` as the URL of the following page or null.","tags":["observed"],"parameters":[{"name":"offset","in":"query","required":false,"description":"First row to return, 0 or more.","schema":{"type":"integer","minimum":0}},{"name":"limit","in":"query","required":false,"description":"Rows per page. Capped at the caller's page size when the data guard is on.","schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"The page of rates and zeros.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/dropsResponse"}}}},"400":{"description":"A parameter is wrong; `error` says which.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/apiError"}}}},"429":{"description":"Rate limited. `Retry-After` says when to try again.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/apiError"}}}},"503":{"description":"A dependency is unavailable. The answer is unrecorded, not zero.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/apiError"}}}}},"security":[{},{"apiKey":[]}]}},"/api/edges":{"get":{"operationId":"getEdges","summary":"Typed relations between items, NPCs, spells, quests, zones and sets","description":"Observed edges (dropped by, sold by, reward from, located in) come first and carry install counts; game-file edges (created by, reagent for, part of set, same icon) follow and carry the build. With no filter the whole table pages like the corpus.\n\nOpen without a key within a per-IP limit; a free key (see /connect#keys) raises the limit and the page size once keys are on. Observed rows carry `attribution`; game-file rows are Blizzard's and the page carries a `gameData` notice when it holds any. Paged: `offset` and `limit`, with `next` as the URL of the following page or null.","tags":["mixed"],"parameters":[{"name":"from_kind","in":"query","required":false,"description":"Kind of the entity the edge starts from.","schema":{"type":"string","enum":["item","spell","npc","object","quest","zone","item_set","icon","skill"]}},{"name":"from_id","in":"query","required":false,"description":"The game's id of that entity.","schema":{"type":"integer","minimum":1}},{"name":"to_kind","in":"query","required":false,"description":"Kind of the entity the edge points to.","schema":{"type":"string","enum":["item","spell","npc","object","quest","zone","item_set","icon","skill"]}},{"name":"to_id","in":"query","required":false,"description":"The game's id of that entity.","schema":{"type":"integer","minimum":1}},{"name":"rel","in":"query","required":false,"description":"Only this relation.","schema":{"type":"string","enum":["dropped_by","sold_by","reward_from","located_in","created_by","reagent_for","part_of_set","same_icon","in_skill_line"]}},{"name":"evidence","in":"query","required":false,"description":"observed (players) or client (game files).","schema":{"type":"string","enum":["observed","client"]}},{"name":"offset","in":"query","required":false,"description":"First row to return, 0 or more.","schema":{"type":"integer","minimum":0}},{"name":"limit","in":"query","required":false,"description":"Rows per page. Capped at the caller's page size when the data guard is on.","schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"The page of edges.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/edgesResponse"}}}},"400":{"description":"A parameter is wrong; `error` says which.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/apiError"}}}},"429":{"description":"Rate limited. `Retry-After` says when to try again.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/apiError"}}}},"503":{"description":"A dependency is unavailable. The answer is unrecorded, not zero.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/apiError"}}}}},"security":[{},{"apiKey":[]}]}},"/api/edges/client-layer":{"get":{"operationId":"getEdgesClientLayer","summary":"The whole game-file relation layer of the current build","description":"The committed client layer as one object: Blizzard's data, found in game files, unconfirmed. Public in the repository too, so it is neither paged nor limited. Cached for an hour.\n\nOpen: no key, no limit of its own. Game-file data: Blizzard's, found in game files, unconfirmed, stamped with its build; carries a `gameData` notice instead of Everloot's licence.","tags":["game-files"],"responses":{"200":{"description":"The client layer file."}}}},"/api/items":{"get":{"operationId":"getItems","summary":"Every item of the current build with its class, subclass, slot and quality","description":"From the game files. Filters by one item id, or by class and subclass slugs, slot and quality. Ids only: item names come from player uploads.\n\nOpen without a key within a per-IP limit; a free key (see /connect#keys) raises the limit and the page size once keys are on. Game-file data: Blizzard's, found in game files, unconfirmed, stamped with its build; carries a `gameData` notice instead of Everloot's licence. Paged: `offset` and `limit`, with `next` as the URL of the following page or null.","tags":["game-files"],"parameters":[{"name":"item","in":"query","required":false,"description":"One item id.","schema":{"type":"integer","minimum":1}},{"name":"class","in":"query","required":false,"description":"Class slug, such as weapon or armor.","schema":{"type":"string"}},{"name":"subclass","in":"query","required":false,"description":"Subclass slug or number within the class. Needs class.","schema":{"type":"string"}},{"name":"slot","in":"query","required":false,"description":"Slot slug, such as head or trinket.","schema":{"type":"string"}},{"name":"quality","in":"query","required":false,"description":"Quality slug.","schema":{"type":"string","enum":["poor","common","uncommon","rare","epic","legendary","artifact","heirloom"]}},{"name":"offset","in":"query","required":false,"description":"First row to return, 0 or more.","schema":{"type":"integer","minimum":0}},{"name":"limit","in":"query","required":false,"description":"Rows per page. Capped at the caller's page size when the data guard is on.","schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"The page of items.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/itemsResponse"}}}},"400":{"description":"A parameter is wrong; `error` says which.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/apiError"}}}},"429":{"description":"Rate limited. `Retry-After` says when to try again.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/apiError"}}}},"503":{"description":"A dependency is unavailable. The answer is unrecorded, not zero.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/apiError"}}}}},"security":[{},{"apiKey":[]}]}},"/api/items/categories":{"get":{"operationId":"getItemsCategories","summary":"The item class and subclass tree of the current build, with the slot and quality slugs","description":"Every class with its subclasses, each with the slug `/api/items` takes and the number of items in the build, plus the slot and quality slugs. From the game files. Public in the repository too, so it is neither paged nor limited. Cached for an hour.\n\nOpen: no key, no limit of its own. Game-file data: Blizzard's, found in game files, unconfirmed, stamped with its build; carries a `gameData` notice instead of Everloot's licence.","tags":["game-files"],"responses":{"200":{"description":"The tree.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/itemCategoriesResponse"}}}}}}},"/api/market/prices":{"get":{"operationId":"getMarketPrices","summary":"Forever market values from full auction scans players started","description":"Without `realm`, the realms that have public values. With it, the items with the most units listed on that realm as tuples in `fields` order, copper per unit. A day is public when three reporters scanned the item.\n\nRate limited per IP address; no key. Player observations, Everloot's data under CC BY-SA 4.0: every answer carries `attribution` and the X-Everloot-Licence, X-Everloot-Credit and Link headers.","tags":["observed"],"parameters":[{"name":"realm","in":"query","required":false,"description":"Realm name. Omit it to list realms.","schema":{"type":"string","minLength":2,"maxLength":40}}],"responses":{"200":{"description":"Realms when `realm` is absent (marketRealmsResponse), prices when present.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/marketPricesResponse"}}}},"400":{"description":"A parameter is wrong; `error` says which.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/apiError"}}}},"429":{"description":"Rate limited. `Retry-After` says when to try again.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/apiError"}}}},"503":{"description":"A dependency is unavailable. The answer is unrecorded, not zero.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/apiError"}}}}}}},"/api/intake":{"post":{"operationId":"postIntake","summary":"Upload records from an Everloot SavedVariables file","description":"One envelope of at most 2,000 records and 1 MB. Every record is checked against its kind's schema; the receipt lists what was accepted and what was rejected and why. Named categories need the matching sharing choice and a verified grant. Anonymous, keyed by a random install id; quotas per request and per install.\n\nRate limited per IP address; no key. No data layer.","tags":["uploads"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/intakeRequest"}}}},"responses":{"200":{"description":"Stored.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/intakeReceipt"}}}},"400":{"description":"The body is not JSON, or the grants are malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/intakeRefused"}}}},"413":{"description":"The body is over 1 MB.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/intakeRefused"}}}},"422":{"description":"The envelope or every record was refused; the receipt says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/intakeRefused"}}}},"429":{"description":"Rate limited; keep the file and retry after `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/intakeRefused"}}}},"503":{"description":"Storage could not confirm the write; keep the file and retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/intakeRefused"}}}}}}},"/api/tools/{tool}":{"get":{"operationId":"getToolsByTool","summary":"One MCP tool's answer over plain HTTP","description":"Every tool of the MCP server, callable with a GET: the tool's arguments go in the query string (numbers and booleans as plain text), named and typed as in /schema/mcp/{tool}.json. The answer is the tool's structured content, with the same text an MCP client gets. A wrong argument is a 400 that says which; an unknown tool is a 404 that lists the tools. Answers built on player uploads say how old the data is and carry the credit line; game-file answers are labelled unconfirmed with their build.\n\nOpen without a key within a per-IP limit; a free key (see /connect#keys) raises the limit and the page size once keys are on. Observed rows carry `attribution`; game-file rows are Blizzard's and the page carries a `gameData` notice when it holds any.","tags":["mixed"],"parameters":[{"name":"tool","in":"path","required":true,"description":"A tool name from the MCP tool list.","schema":{"type":"string","enum":["search_knowledge","get_entity","get_by_name","search","fetch","answer_sources","profession_path","recipe_thresholds","item_page","npc_page","object_page","quest_page","vendor_page","world_map_near","entity_relations","item_categories","talent_tree","talent_plan","collection_gap","completion_progress","guild_board","auction_history","market_value","gold_ledger","population","recent_changes","ecosystem_projects","everloot_plan"]}}],"responses":{"200":{"description":"The tool's answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/toolAnswerResponse"}}}},"400":{"description":"A parameter is wrong; `error` says which.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/apiError"}}}},"404":{"description":"No such tool; `error` lists them.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/apiError"}}}},"429":{"description":"Rate limited. `Retry-After` says when to try again.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/apiError"}}}},"503":{"description":"A dependency is unavailable. The answer is unrecorded, not zero.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/apiError"}}}}},"security":[{},{"apiKey":[]}]}},"/api/health":{"get":{"operationId":"getHealth","summary":"Whether the public snapshot is fresh","description":"200 when the corpus snapshot was written recently, 503 otherwise. Metadata only.\n\nOpen: no key, no limit of its own. No data layer.","tags":["status"],"responses":{"200":{"description":"Fresh.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/healthResponse"}}}},"503":{"description":"Stale, missing or unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/healthResponse"}}}}}}}},"components":{"schemas":{"attribution":{"type":"object","properties":{"licence":{"type":"string"},"licenceUrl":{"type":"string","format":"uri"},"credit":{"type":"string"},"source":{"type":"string","format":"uri"},"terms":{"type":"string","format":"uri"}},"required":["licence","licenceUrl","credit","source","terms"],"additionalProperties":false},"gameDataNotice":{"type":"object","properties":{"label":{"type":"string","description":"The evidence label pages show, such as \"found in game files, unconfirmed\"."},"build":{"type":"string","description":"The game build the rows were read from."},"extractedAt":{"type":["string","null"]},"credit":{"type":"string"}},"required":["label","build"],"additionalProperties":{}},"apiError":{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"type":"string"},"getAKey":{"type":"string","format":"uri"}},"required":["ok","error"],"additionalProperties":false},"page":{"type":"object","properties":{"offset":{"type":"integer","minimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":0,"maximum":9007199254740991},"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"next":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]}},"required":["offset","limit","total","next"],"additionalProperties":false},"corpusPublicResponse":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"uploads":{"type":"integer","minimum":0,"maximum":9007199254740991},"records":{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"description":"Records of the public kinds, each without its installId. Shapes: schema/records/<kind>.json."},"dataAsOf":{"description":"When these records were current. Null or absent when unrecorded, never \"now\".","anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"null"}]},"kinds":{"description":"Present when the request asked for some kinds.","type":"array","items":{"type":"string","enum":["npc_sighting","loot","quest","vendor","item_seen","guild_snapshot","raid_lockout","attendance","loot_award","gear_snapshot","collection_catalog","collection_owned","auction_scan","recipe_seen","price_seen","recipe_observed","trainer_seen","gold_snapshot","money_event","map_bounds"]}},"legacyRecords":{"type":"integer","minimum":0,"maximum":9007199254740991},"attribution":{"type":"object","properties":{"licence":{"type":"string"},"licenceUrl":{"type":"string","format":"uri"},"credit":{"type":"string"},"source":{"type":"string","format":"uri"},"terms":{"type":"string","format":"uri"}},"required":["licence","licenceUrl","credit","source","terms"],"additionalProperties":false},"offset":{"type":"integer","minimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":0,"maximum":9007199254740991},"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"next":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]}},"required":["ok","uploads","records","attribution","offset","limit","total","next"],"additionalProperties":false},"marketRealmsResponse":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"dataAsOf":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"null"}]},"realms":{"type":"array","items":{"type":"string"}},"attribution":{"type":"object","properties":{"licence":{"type":"string"},"licenceUrl":{"type":"string","format":"uri"},"credit":{"type":"string"},"source":{"type":"string","format":"uri"},"terms":{"type":"string","format":"uri"}},"required":["licence","licenceUrl","credit","source","terms"],"additionalProperties":false}},"required":["ok","dataAsOf","realms","attribution"],"additionalProperties":false},"marketPricesResponse":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"dataAsOf":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"null"}]},"rule":{"type":"string","description":"How a day becomes public and how the values are computed."},"fields":{"type":"array","prefixItems":[{"type":"string","const":"itemId"},{"type":"string","const":"market"},{"type":"string","const":"min"},{"type":"string","const":"historical"},{"type":"string","const":"quantity"},{"type":"string","const":"day"},{"type":"string","const":"reporters"}],"items":false,"minItems":7,"maxItems":7},"realm":{"type":["string","null"]},"items":{"type":"array","items":{"type":"array","prefixItems":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"string"},{"type":"integer","minimum":0,"maximum":9007199254740991}],"items":false,"minItems":7,"maxItems":7},"description":"[itemId, market, min, historical, quantity, day, reporters]; copper per unit."},"attribution":{"type":"object","properties":{"licence":{"type":"string"},"licenceUrl":{"type":"string","format":"uri"},"credit":{"type":"string"},"source":{"type":"string","format":"uri"},"terms":{"type":"string","format":"uri"}},"required":["licence","licenceUrl","credit","source","terms"],"additionalProperties":false}},"required":["ok","dataAsOf","rule","fields","realm","items","attribution"],"additionalProperties":false},"dropsResponse":{"type":"object","properties":{"generatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"dataAsOf":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"null"}]},"stats":{"type":"object","properties":{"uploads":{"type":"integer","minimum":0,"maximum":9007199254740991},"lootWindows":{"type":"integer","minimum":0,"maximum":9007199254740991},"records":{"type":"integer","minimum":0,"maximum":9007199254740991},"unreachable":{"type":"boolean"},"dataAsOf":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"null"}]}},"required":["uploads","lootWindows","records","unreachable","dataAsOf"],"additionalProperties":false},"unreachable":{"type":"boolean","description":"True when storage could not be read: the lists are then empty, not zero."},"rates":{"type":"array","items":{"type":"object","properties":{"sourceNpcId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"sourceObjectId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"itemId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"kills":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Loot windows players opened on this source, not kills counted by the game."},"drops":{"type":"integer","minimum":0,"maximum":9007199254740991},"rate":{"type":"number","minimum":0,"maximum":1},"reporters":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Distinct installs that looted the source."},"public":{"type":"boolean","const":true}},"required":["itemId","kills","drops","rate","reporters","public"],"additionalProperties":false}},"measuredZeros":{"type":"array","items":{"type":"object","properties":{"sourceNpcId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"sourceObjectId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"kills":{"type":"integer","minimum":0,"maximum":9007199254740991},"reporters":{"type":"integer","minimum":0,"maximum":9007199254740991},"public":{"type":"boolean","const":true}},"required":["kills","reporters","public"],"additionalProperties":false}},"queued":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"Rates and zeros waiting for their third install; null when unreachable."},"totalRates":{"type":"integer","minimum":0,"maximum":9007199254740991},"totalMeasuredZeros":{"type":"integer","minimum":0,"maximum":9007199254740991},"attribution":{"type":"object","properties":{"licence":{"type":"string"},"licenceUrl":{"type":"string","format":"uri"},"credit":{"type":"string"},"source":{"type":"string","format":"uri"},"terms":{"type":"string","format":"uri"}},"required":["licence","licenceUrl","credit","source","terms"],"additionalProperties":false},"offset":{"type":"integer","minimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":0,"maximum":9007199254740991},"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"next":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]}},"required":["generatedAt","dataAsOf","stats","unreachable","rates","measuredZeros","queued","totalRates","totalMeasuredZeros","attribution","offset","limit","total","next"],"additionalProperties":false},"edgesResponse":{"type":"object","properties":{"generatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"dataAsOf":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"null"}]},"unreachable":{"type":"boolean"},"edges":{"type":"array","items":{"type":"object","properties":{"fromKind":{"type":"string","enum":["item","spell","npc","object","quest","zone","item_set","icon","skill"]},"fromId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"rel":{"type":"string","enum":["dropped_by","sold_by","reward_from","located_in","created_by","reagent_for","part_of_set","same_icon","in_skill_line"]},"toKind":{"type":"string","enum":["item","spell","npc","object","quest","zone","item_set","icon","skill"]},"toId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"evidence":{"type":"string","enum":["observed","client"]},"build":{"description":"Game build of a client edge; null for observed edges.","type":["string","null"]},"installs":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"Distinct installs behind an observed edge; null for client edges."},"firstSeen":{"type":["string","null"]},"lastSeen":{"type":["string","null"]}},"required":["fromKind","fromId","rel","toKind","toId","evidence","build","installs","firstSeen","lastSeen"],"additionalProperties":false}},"attribution":{"type":"object","properties":{"licence":{"type":"string"},"licenceUrl":{"type":"string","format":"uri"},"credit":{"type":"string"},"source":{"type":"string","format":"uri"},"terms":{"type":"string","format":"uri"}},"required":["licence","licenceUrl","credit","source","terms"],"additionalProperties":false},"gameData":{"anyOf":[{"type":"object","properties":{"label":{"type":"string","description":"The evidence label pages show, such as \"found in game files, unconfirmed\"."},"build":{"type":"string","description":"The game build the rows were read from."},"extractedAt":{"type":["string","null"]},"credit":{"type":"string"}},"required":["label","build"],"additionalProperties":{}},{"type":"null"}],"description":"Present when the page holds at least one game-file edge."},"offset":{"type":"integer","minimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":0,"maximum":9007199254740991},"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"next":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]}},"required":["generatedAt","dataAsOf","unreachable","edges","attribution","gameData","offset","limit","total","next"],"additionalProperties":false},"itemsResponse":{"type":"object","properties":{"generatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"items":{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"gameData":{"type":"object","properties":{"label":{"type":"string","description":"The evidence label pages show, such as \"found in game files, unconfirmed\"."},"build":{"type":"string","description":"The game build the rows were read from."},"extractedAt":{"type":["string","null"]},"credit":{"type":"string"}},"required":["label","build"],"additionalProperties":{}},"offset":{"type":"integer","minimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":0,"maximum":9007199254740991},"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"next":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]}},"required":["generatedAt","items","gameData","offset","limit","total","next"],"additionalProperties":false},"itemCategoriesResponse":{"type":"object","properties":{"classes":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"name":{"type":"string","description":"The client's name."},"label":{"type":"string","description":"The plural label pages use."},"slug":{"type":"string","description":"The value /api/items takes as class."},"items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Items of the build in this class."},"subclasses":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"name":{"description":"The client's name; null when the client has none, then the slug is the id.","type":["string","null"]},"slug":{"type":"string","description":"The value /api/items takes as subclass."},"items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Items of the build in this subclass."}},"required":["id","name","slug","items"],"additionalProperties":false}}},"required":["id","name","label","slug","items","subclasses"],"additionalProperties":false}},"slots":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string","description":"The value /api/items takes as slot."},"name":{"type":"string"}},"required":["slug","name"],"additionalProperties":false}},"qualities":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"name":{"type":"string"},"slug":{"type":"string","description":"The value /api/items takes as quality."}},"required":["id","name","slug"],"additionalProperties":false}},"gameData":{"type":"object","properties":{"label":{"type":"string","description":"The evidence label pages show, such as \"found in game files, unconfirmed\"."},"build":{"type":"string","description":"The game build the rows were read from."},"extractedAt":{"type":["string","null"]},"credit":{"type":"string"}},"required":["label","build"],"additionalProperties":{}}},"required":["classes","slots","qualities","gameData"],"additionalProperties":false},"toolAnswerResponse":{"type":"object","properties":{"tool":{"type":"string","description":"The tool's name, as in the MCP tool list."},"arguments":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"The arguments as the tool read them, defaults applied."},"answer":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"The tool's structured answer. Its schema: /schema/mcp/{tool}.json#/outputSchema."},"text":{"type":"string","description":"The same answer as the MCP text block, for a reader."},"schema":{"type":"string","description":"The URL of the tool's schema file."}},"required":["tool","arguments","answer","text","schema"],"additionalProperties":false},"bulkIndex":{"type":"object","properties":{"protocol":{"type":"string","description":"The protocol version the rows follow."},"generatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"dataAsOf":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"null"}],"description":"When the uploads behind the observed rows were current; null when storage was unreachable, then those files are absent, not empty."},"build":{"description":"Game build of the game-file rows.","type":["string","null"]},"site":{"type":"string"},"licence":{"type":"string"},"licenceUrl":{"type":"string"},"credit":{"type":"string"},"files":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"File name inside the export folder, for example edges.ndjson."},"dataset":{"type":"string","enum":["corpus","edges","drops","items"]},"format":{"type":"string","const":"ndjson","description":"One JSON object per line."},"rowsOf":{"type":"string","description":"The API response schema whose array these rows are, for example edgesResponse; its JSON Schema is at /schema/api/<rowsOf>.json."},"field":{"type":"string","description":"The array field of that response the rows come from, for example edges."},"rows":{"type":"integer","minimum":0,"maximum":9007199254740991},"bytes":{"type":"integer","minimum":0,"maximum":9007199254740991},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"data":{"type":"string","enum":["observed","game-files","mixed"],"description":"observed: Everloot's data under its licence; game-files: Blizzard's, with the gameData notice; mixed: both, each row labelled by evidence."},"attribution":{"anyOf":[{"type":"object","properties":{"licence":{"type":"string"},"licenceUrl":{"type":"string","format":"uri"},"credit":{"type":"string"},"source":{"type":"string","format":"uri"},"terms":{"type":"string","format":"uri"}},"required":["licence","licenceUrl","credit","source","terms"],"additionalProperties":false},{"type":"null"}],"description":"Present when the file holds observed rows."},"gameData":{"anyOf":[{"type":"object","properties":{"label":{"type":"string","description":"The evidence label pages show, such as \"found in game files, unconfirmed\"."},"build":{"type":"string","description":"The game build the rows were read from."},"extractedAt":{"type":["string","null"]},"credit":{"type":"string"}},"required":["label","build"],"additionalProperties":{}},{"type":"null"}],"description":"Present when the file holds game-file rows."}},"required":["name","dataset","format","rowsOf","field","rows","bytes","sha256","data","attribution","gameData"],"additionalProperties":false}}},"required":["protocol","generatedAt","dataAsOf","build","site","licence","licenceUrl","credit","files"],"additionalProperties":false},"intakeRequest":{"type":"object","properties":{"addonVersion":{"type":"string","minLength":1,"maxLength":20},"clientBuild":{"type":"string"},"protocol":{"type":"string"},"records":{"minItems":1,"maxItems":2000,"type":"array","items":{"oneOf":[{"type":"object","properties":{"installId":{"type":"string","minLength":8,"maxLength":64,"description":"Random install id, no account needed."},"eventId":{"type":"string","minLength":3,"maxLength":96,"pattern":"^[A-Za-z0-9:_-]+$"},"capturedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","description":"ISO time the event happened in-game."},"kind":{"type":"string","const":"npc_sighting"},"npcId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"name":{"type":"string","minLength":1,"maxLength":120},"mapId":{"type":"integer","minimum":0,"maximum":9007199254740991},"x":{"type":"number","minimum":0,"maximum":100},"y":{"type":"number","minimum":0,"maximum":100},"level":{"type":"integer","minimum":1,"maximum":100},"reaction":{"type":"string","enum":["friendly","neutral","hostile"]},"positionKind":{"description":"Whose coordinates were measured; legacy unknown positions never become spawn pins.","type":"string","enum":["player","npc"]}},"required":["installId","capturedAt","kind","npcId","name","mapId","x","y","level","reaction"],"additionalProperties":false},{"type":"object","properties":{"installId":{"type":"string","minLength":8,"maxLength":64,"description":"Random install id, no account needed."},"eventId":{"type":"string","minLength":3,"maxLength":96,"pattern":"^[A-Za-z0-9:_-]+$"},"capturedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","description":"ISO time the event happened in-game."},"kind":{"type":"string","const":"loot"},"sourceNpcId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"sourceObjectId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"sourceEvidence":{"description":"Legacy target guesses are withheld from public loot observations.","type":"string","const":"loot-api"},"items":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"itemId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"count":{"type":"integer","minimum":1,"maximum":1000}},"required":["itemId","count"],"additionalProperties":false}}},"required":["installId","capturedAt","kind","items"],"additionalProperties":false},{"type":"object","properties":{"installId":{"type":"string","minLength":8,"maxLength":64,"description":"Random install id, no account needed."},"eventId":{"type":"string","minLength":3,"maxLength":96,"pattern":"^[A-Za-z0-9:_-]+$"},"capturedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","description":"ISO time the event happened in-game."},"kind":{"type":"string","const":"quest"},"questId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"title":{"type":"string","minLength":1,"maxLength":200},"level":{"type":"integer","minimum":1,"maximum":100},"giverNpcId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"turnInNpcId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"rewardItemIds":{"default":[],"maxItems":20,"type":"array","items":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}}},"required":["installId","capturedAt","kind","questId","title","level","rewardItemIds"],"additionalProperties":false},{"type":"object","properties":{"installId":{"type":"string","minLength":8,"maxLength":64,"description":"Random install id, no account needed."},"eventId":{"type":"string","minLength":3,"maxLength":96,"pattern":"^[A-Za-z0-9:_-]+$"},"capturedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","description":"ISO time the event happened in-game."},"kind":{"type":"string","const":"vendor"},"vendorNpcId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"items":{"minItems":1,"maxItems":200,"type":"array","items":{"type":"object","properties":{"itemId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"priceCopper":{"type":"integer","minimum":0,"maximum":9007199254740991},"limitedStock":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["itemId","priceCopper"],"additionalProperties":false}}},"required":["installId","capturedAt","kind","vendorNpcId","items"],"additionalProperties":false},{"type":"object","properties":{"installId":{"type":"string","minLength":8,"maxLength":64,"description":"Random install id, no account needed."},"eventId":{"type":"string","minLength":3,"maxLength":96,"pattern":"^[A-Za-z0-9:_-]+$"},"capturedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","description":"ISO time the event happened in-game."},"kind":{"type":"string","const":"item_seen"},"itemId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"name":{"type":"string","minLength":1,"maxLength":200},"quality":{"type":"string","enum":["poor","common","uncommon","rare","epic","legendary","artifact","heirloom"]},"itemLevel":{"type":"integer","minimum":1,"maximum":1000}},"required":["installId","capturedAt","kind","itemId","name","quality"],"additionalProperties":false},{"type":"object","properties":{"installId":{"type":"string","minLength":8,"maxLength":64,"description":"Random install id, no account needed."},"eventId":{"type":"string","minLength":3,"maxLength":96,"pattern":"^[A-Za-z0-9:_-]+$"},"capturedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","description":"ISO time the event happened in-game."},"kind":{"type":"string","const":"guild_snapshot"},"guildName":{"type":"string","minLength":2,"maxLength":60},"realm":{"type":"string","minLength":2,"maxLength":60},"faction":{"type":"string","enum":["alliance","horde"]},"claimToken":{"description":"Legacy field; never proof of officer authority.","type":"string","minLength":16},"members":{"minItems":1,"maxItems":2000,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":30},"rank":{"type":"string","minLength":1,"maxLength":60},"level":{"type":"integer","minimum":1,"maximum":100},"class":{"type":"string","minLength":1,"maxLength":30},"lastOnlineDays":{"type":"number","minimum":0,"maximum":3650}},"required":["name","rank","level","class","lastOnlineDays"],"additionalProperties":false}}},"required":["installId","capturedAt","kind","guildName","realm","faction","members"],"additionalProperties":false},{"type":"object","properties":{"installId":{"type":"string","minLength":8,"maxLength":64,"description":"Random install id, no account needed."},"eventId":{"type":"string","minLength":3,"maxLength":96,"pattern":"^[A-Za-z0-9:_-]+$"},"capturedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","description":"ISO time the event happened in-game."},"kind":{"type":"string","const":"raid_lockout"},"guildName":{"type":"string","minLength":2,"maxLength":60},"realm":{"type":"string","minLength":2,"maxLength":60},"instance":{"type":"string","minLength":1,"maxLength":120},"difficulty":{"type":"string","minLength":1,"maxLength":60},"bossesKilled":{"maxItems":60,"type":"array","items":{"type":"string","minLength":1,"maxLength":120}},"resetAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}},"required":["installId","capturedAt","kind","guildName","realm","instance","difficulty","bossesKilled","resetAt"],"additionalProperties":false},{"type":"object","properties":{"installId":{"type":"string","minLength":8,"maxLength":64,"description":"Random install id, no account needed."},"eventId":{"type":"string","minLength":3,"maxLength":96,"pattern":"^[A-Za-z0-9:_-]+$"},"capturedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","description":"ISO time the event happened in-game."},"kind":{"type":"string","const":"attendance"},"guildName":{"type":"string","minLength":2,"maxLength":60},"realm":{"type":"string","minLength":2,"maxLength":60},"instance":{"type":"string","minLength":1,"maxLength":120},"present":{"minItems":1,"maxItems":100,"type":"array","items":{"type":"string","minLength":2,"maxLength":30}}},"required":["installId","capturedAt","kind","guildName","realm","instance","present"],"additionalProperties":false},{"type":"object","properties":{"installId":{"type":"string","minLength":8,"maxLength":64,"description":"Random install id, no account needed."},"eventId":{"type":"string","minLength":3,"maxLength":96,"pattern":"^[A-Za-z0-9:_-]+$"},"capturedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","description":"ISO time the event happened in-game."},"kind":{"type":"string","const":"loot_award"},"guildName":{"type":"string","minLength":2,"maxLength":60},"realm":{"type":"string","minLength":2,"maxLength":60},"itemId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"itemName":{"type":"string","minLength":1,"maxLength":200},"recipient":{"type":"string","minLength":2,"maxLength":30},"sourceBoss":{"type":"string","minLength":1,"maxLength":120}},"required":["installId","capturedAt","kind","guildName","realm","itemId","itemName","recipient","sourceBoss"],"additionalProperties":false},{"type":"object","properties":{"installId":{"type":"string","minLength":8,"maxLength":64,"description":"Random install id, no account needed."},"eventId":{"type":"string","minLength":3,"maxLength":96,"pattern":"^[A-Za-z0-9:_-]+$"},"capturedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","description":"ISO time the event happened in-game."},"kind":{"type":"string","const":"gear_snapshot"},"character":{"type":"string","minLength":2,"maxLength":30},"realm":{"type":"string","minLength":2,"maxLength":60},"equipped":{"minItems":1,"maxItems":30,"type":"array","items":{"type":"object","properties":{"slot":{"type":"string","minLength":1,"maxLength":40},"itemId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"itemLevel":{"type":"integer","minimum":1,"maximum":1000}},"required":["slot","itemId","itemLevel"],"additionalProperties":false}}},"required":["installId","capturedAt","kind","character","realm","equipped"],"additionalProperties":false},{"type":"object","properties":{"installId":{"type":"string","minLength":8,"maxLength":64,"description":"Random install id, no account needed."},"eventId":{"type":"string","minLength":3,"maxLength":96,"pattern":"^[A-Za-z0-9:_-]+$"},"capturedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","description":"ISO time the event happened in-game."},"kind":{"type":"string","const":"collection_catalog"},"collection":{"type":"string","minLength":1,"maxLength":40},"source":{"type":"string","minLength":1,"maxLength":80},"itemId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["installId","capturedAt","kind","collection","source","itemId"],"additionalProperties":false},{"type":"object","properties":{"installId":{"type":"string","minLength":8,"maxLength":64,"description":"Random install id, no account needed."},"eventId":{"type":"string","minLength":3,"maxLength":96,"pattern":"^[A-Za-z0-9:_-]+$"},"capturedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","description":"ISO time the event happened in-game."},"kind":{"type":"string","const":"collection_owned"},"collection":{"type":"string","minLength":1,"maxLength":40},"itemId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["installId","capturedAt","kind","collection","itemId"],"additionalProperties":false},{"type":"object","properties":{"installId":{"type":"string","minLength":8,"maxLength":64,"description":"Random install id, no account needed."},"eventId":{"type":"string","minLength":3,"maxLength":96,"pattern":"^[A-Za-z0-9:_-]+$"},"capturedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","description":"ISO time the event happened in-game."},"kind":{"type":"string","const":"achievement_catalog"},"achievementId":{"type":"integer","exclusiveMinimum":0,"maximum":2000000000},"name":{"type":"string","minLength":1,"maxLength":120},"categoryId":{"type":"integer","minimum":0,"maximum":2000000000},"category":{"type":"string","minLength":1,"maxLength":80},"parentCategory":{"type":"string","minLength":1,"maxLength":80},"points":{"type":"integer","minimum":0,"maximum":1000},"criteriaCount":{"type":"integer","minimum":0,"maximum":5000,"description":"The achievement's real criteria count; `criteria` keeps the first 100."},"criteria":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"text":{"type":"string","maxLength":120},"required":{"type":"integer","minimum":0,"maximum":2000000000}},"required":["text","required"],"additionalProperties":false}}},"required":["installId","capturedAt","kind","achievementId","name","categoryId","category","points","criteriaCount","criteria"],"additionalProperties":false},{"type":"object","properties":{"installId":{"type":"string","minLength":8,"maxLength":64,"description":"Random install id, no account needed."},"eventId":{"type":"string","minLength":3,"maxLength":96,"pattern":"^[A-Za-z0-9:_-]+$"},"capturedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","description":"ISO time the event happened in-game."},"kind":{"type":"string","const":"reputation_catalog"},"factionId":{"type":"integer","exclusiveMinimum":0,"maximum":2000000000},"name":{"type":"string","minLength":1,"maxLength":80},"header":{"type":"string","minLength":1,"maxLength":80},"major":{"description":"A renown faction: its ranks are not the eight standings.","type":"boolean"}},"required":["installId","capturedAt","kind","factionId","name"],"additionalProperties":false},{"type":"object","properties":{"installId":{"type":"string","minLength":8,"maxLength":64,"description":"Random install id, no account needed."},"eventId":{"type":"string","minLength":3,"maxLength":96,"pattern":"^[A-Za-z0-9:_-]+$"},"capturedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","description":"ISO time the event happened in-game."},"kind":{"type":"string","const":"title_catalog"},"titleId":{"type":"integer","exclusiveMinimum":0,"maximum":5000},"name":{"type":"string","minLength":1,"maxLength":80}},"required":["installId","capturedAt","kind","titleId","name"],"additionalProperties":false},{"type":"object","properties":{"installId":{"type":"string","minLength":8,"maxLength":64,"description":"Random install id, no account needed."},"eventId":{"type":"string","minLength":3,"maxLength":96,"pattern":"^[A-Za-z0-9:_-]+$"},"capturedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","description":"ISO time the event happened in-game."},"kind":{"type":"string","const":"quest_chain_catalog"},"questLineId":{"type":"integer","exclusiveMinimum":0,"maximum":2000000000},"name":{"type":"string","minLength":1,"maxLength":120},"questIds":{"minItems":1,"maxItems":80,"type":"array","items":{"type":"integer","exclusiveMinimum":0,"maximum":2000000000}},"truncated":{"description":"The chain has more quests than the 80 kept: it is never called finished.","type":"boolean"}},"required":["installId","capturedAt","kind","questLineId","name","questIds"],"additionalProperties":false},{"type":"object","properties":{"installId":{"type":"string","minLength":8,"maxLength":64,"description":"Random install id, no account needed."},"eventId":{"type":"string","minLength":3,"maxLength":96,"pattern":"^[A-Za-z0-9:_-]+$"},"capturedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","description":"ISO time the event happened in-game."},"characterKey":{"type":"string","pattern":"^[0-9a-f]{8}$"},"class":{"type":"string","minLength":2,"maxLength":20,"pattern":"^[A-Za-z]+$","description":"Class token from UnitClass, e.g. MAGE."},"level":{"type":"integer","minimum":1,"maximum":100},"kind":{"type":"string","const":"achievement_owned"},"achievementId":{"type":"integer","exclusiveMinimum":0,"maximum":2000000000},"completed":{"type":"boolean"},"earnedByMe":{"description":"False when the achievement is complete on the account but not by this character.","type":"boolean"},"earnedOn":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"criteriaMet":{"type":"integer","minimum":0,"maximum":5000},"criteriaTotal":{"type":"integer","minimum":0,"maximum":5000},"quantity":{"description":"A progress-bar achievement's current amount.","type":"integer","minimum":0,"maximum":2000000000},"required":{"description":"A progress-bar achievement's target amount.","type":"integer","minimum":1,"maximum":2000000000}},"required":["installId","capturedAt","characterKey","class","level","kind","achievementId","completed","criteriaMet","criteriaTotal"],"additionalProperties":false},{"type":"object","properties":{"installId":{"type":"string","minLength":8,"maxLength":64,"description":"Random install id, no account needed."},"eventId":{"type":"string","minLength":3,"maxLength":96,"pattern":"^[A-Za-z0-9:_-]+$"},"capturedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","description":"ISO time the event happened in-game."},"characterKey":{"type":"string","pattern":"^[0-9a-f]{8}$"},"class":{"type":"string","minLength":2,"maxLength":20,"pattern":"^[A-Za-z]+$","description":"Class token from UnitClass, e.g. MAGE."},"level":{"type":"integer","minimum":1,"maximum":100},"kind":{"type":"string","const":"reputation_owned"},"factionId":{"type":"integer","exclusiveMinimum":0,"maximum":2000000000},"reaction":{"type":"integer","minimum":1,"maximum":20,"description":"The client's standing index: 1 Hated up to 8 Exalted."},"standing":{"type":"integer","minimum":-1000000,"maximum":10000000},"floor":{"type":"integer","minimum":-1000000,"maximum":10000000},"ceiling":{"type":"integer","minimum":-1000000,"maximum":10000000}},"required":["installId","capturedAt","characterKey","class","level","kind","factionId","reaction","standing","floor","ceiling"],"additionalProperties":false},{"type":"object","properties":{"installId":{"type":"string","minLength":8,"maxLength":64,"description":"Random install id, no account needed."},"eventId":{"type":"string","minLength":3,"maxLength":96,"pattern":"^[A-Za-z0-9:_-]+$"},"capturedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","description":"ISO time the event happened in-game."},"characterKey":{"type":"string","pattern":"^[0-9a-f]{8}$"},"class":{"type":"string","minLength":2,"maxLength":20,"pattern":"^[A-Za-z]+$","description":"Class token from UnitClass, e.g. MAGE."},"level":{"type":"integer","minimum":1,"maximum":100},"kind":{"type":"string","const":"title_owned"},"titleIds":{"minItems":1,"maxItems":200,"type":"array","items":{"type":"integer","exclusiveMinimum":0,"maximum":5000}}},"required":["installId","capturedAt","characterKey","class","level","kind","titleIds"],"additionalProperties":false},{"type":"object","properties":{"installId":{"type":"string","minLength":8,"maxLength":64,"description":"Random install id, no account needed."},"eventId":{"type":"string","minLength":3,"maxLength":96,"pattern":"^[A-Za-z0-9:_-]+$"},"capturedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","description":"ISO time the event happened in-game."},"characterKey":{"type":"string","pattern":"^[0-9a-f]{8}$"},"class":{"type":"string","minLength":2,"maxLength":20,"pattern":"^[A-Za-z]+$","description":"Class token from UnitClass, e.g. MAGE."},"level":{"type":"integer","minimum":1,"maximum":100},"kind":{"type":"string","const":"quest_owned"},"questIds":{"minItems":1,"maxItems":200,"type":"array","items":{"type":"integer","exclusiveMinimum":0,"maximum":2000000000}}},"required":["installId","capturedAt","characterKey","class","level","kind","questIds"],"additionalProperties":false},{"type":"object","properties":{"installId":{"type":"string","minLength":8,"maxLength":64,"description":"Random install id, no account needed."},"eventId":{"type":"string","minLength":3,"maxLength":96,"pattern":"^[A-Za-z0-9:_-]+$"},"capturedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","description":"ISO time the event happened in-game."},"kind":{"type":"string","const":"auction_scan"},"realm":{"type":"string","minLength":2,"maxLength":60},"itemId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"copper":{"type":"integer","minimum":0,"maximum":9007199254740991},"count":{"type":"integer","minimum":1,"maximum":1000},"priceBasis":{"type":"string","const":"unit"}},"required":["installId","capturedAt","kind","realm","itemId","copper"],"additionalProperties":false},{"type":"object","properties":{"installId":{"type":"string","minLength":8,"maxLength":64,"description":"Random install id, no account needed."},"eventId":{"type":"string","minLength":3,"maxLength":96,"pattern":"^[A-Za-z0-9:_-]+$"},"capturedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","description":"ISO time the event happened in-game."},"kind":{"type":"string","const":"auction_snapshot"},"realm":{"type":"string","minLength":2,"maxLength":60},"scanId":{"type":"string","minLength":3,"maxLength":96,"pattern":"^[A-Za-z0-9:_-]+$"},"part":{"type":"integer","minimum":1,"maximum":100},"parts":{"type":"integer","minimum":1,"maximum":100},"items":{"minItems":1,"maxItems":1000,"type":"array","items":{"type":"array","prefixItems":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"integer","minimum":0,"maximum":9007199254740991}],"items":false,"minItems":5,"maxItems":5}}},"required":["installId","capturedAt","kind","realm","scanId","part","parts","items"],"additionalProperties":false},{"type":"object","properties":{"installId":{"type":"string","minLength":8,"maxLength":64,"description":"Random install id, no account needed."},"eventId":{"type":"string","minLength":3,"maxLength":96,"pattern":"^[A-Za-z0-9:_-]+$"},"capturedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","description":"ISO time the event happened in-game."},"kind":{"type":"string","const":"recipe_seen"},"profession":{"type":"string","minLength":1,"maxLength":40},"recipe":{"type":"string","minLength":1,"maxLength":120},"skillMin":{"type":"integer","minimum":1,"maximum":500},"skillMax":{"type":"integer","minimum":1,"maximum":500},"points":{"type":"integer","minimum":1,"maximum":10},"reagents":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"object","properties":{"item":{"type":"string","minLength":1,"maxLength":80},"count":{"type":"integer","minimum":1,"maximum":1000}},"required":["item","count"],"additionalProperties":false}}},"required":["installId","capturedAt","kind","profession","recipe","skillMin","skillMax","points","reagents"],"additionalProperties":false},{"type":"object","properties":{"installId":{"type":"string","minLength":8,"maxLength":64,"description":"Random install id, no account needed."},"eventId":{"type":"string","minLength":3,"maxLength":96,"pattern":"^[A-Za-z0-9:_-]+$"},"capturedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","description":"ISO time the event happened in-game."},"kind":{"type":"string","const":"price_seen"},"item":{"type":"string","minLength":1,"maxLength":80},"copper":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["installId","capturedAt","kind","item","copper"],"additionalProperties":false},{"type":"object","properties":{"installId":{"type":"string","minLength":8,"maxLength":64,"description":"Random install id, no account needed."},"eventId":{"type":"string","minLength":3,"maxLength":96,"pattern":"^[A-Za-z0-9:_-]+$"},"capturedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","description":"ISO time the event happened in-game."},"kind":{"type":"string","const":"recipe_observed"},"profession":{"type":"string","minLength":1,"maxLength":40},"rank":{"type":"integer","minimum":1,"maximum":500},"maxRank":{"type":"integer","minimum":1,"maximum":500},"recipe":{"type":"string","minLength":1,"maxLength":120},"difficulty":{"type":"string","enum":["optimal","medium","easy","trivial"]},"productItemId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"reagents":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"item":{"type":"string","minLength":1,"maxLength":80},"count":{"type":"integer","minimum":1,"maximum":1000}},"required":["item","count"],"additionalProperties":false}}},"required":["installId","capturedAt","kind","profession","rank","recipe","difficulty","reagents"],"additionalProperties":false},{"type":"object","properties":{"installId":{"type":"string","minLength":8,"maxLength":64,"description":"Random install id, no account needed."},"eventId":{"type":"string","minLength":3,"maxLength":96,"pattern":"^[A-Za-z0-9:_-]+$"},"capturedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","description":"ISO time the event happened in-game."},"kind":{"type":"string","const":"trainer_seen"},"profession":{"type":"string","minLength":1,"maxLength":40},"recipe":{"type":"string","minLength":1,"maxLength":120},"requiredRank":{"type":"integer","minimum":1,"maximum":500},"costCopper":{"type":"integer","minimum":0,"maximum":2000000000}},"required":["installId","capturedAt","kind","profession","recipe","requiredRank"],"additionalProperties":false},{"type":"object","properties":{"installId":{"type":"string","minLength":8,"maxLength":64,"description":"Random install id, no account needed."},"eventId":{"type":"string","minLength":3,"maxLength":96,"pattern":"^[A-Za-z0-9:_-]+$"},"capturedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","description":"ISO time the event happened in-game."},"kind":{"type":"string","const":"gold_snapshot"},"character":{"type":"string","minLength":2,"maxLength":30},"realm":{"type":"string","minLength":2,"maxLength":60},"currentCopper":{"type":"integer","minimum":0,"maximum":2000000000},"peakCopper":{"type":"integer","minimum":0,"maximum":2000000000}},"required":["installId","capturedAt","kind","character","realm","currentCopper","peakCopper"],"additionalProperties":false},{"type":"object","properties":{"installId":{"type":"string","minLength":8,"maxLength":64,"description":"Random install id, no account needed."},"eventId":{"type":"string","minLength":3,"maxLength":96,"pattern":"^[A-Za-z0-9:_-]+$"},"capturedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","description":"ISO time the event happened in-game."},"kind":{"type":"string","const":"money_event"},"character":{"type":"string","minLength":2,"maxLength":30},"realm":{"type":"string","minLength":2,"maxLength":60},"category":{"type":"string","enum":["loot","quest","vendor","auction","flight","postage","barber","respec","auction_spend"]},"copper":{"type":"integer","minimum":1,"maximum":2000000000}},"required":["installId","capturedAt","kind","character","realm","category","copper"],"additionalProperties":false},{"type":"object","properties":{"installId":{"type":"string","minLength":8,"maxLength":64,"description":"Random install id, no account needed."},"eventId":{"type":"string","minLength":3,"maxLength":96,"pattern":"^[A-Za-z0-9:_-]+$"},"capturedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","description":"ISO time the event happened in-game."},"kind":{"type":"string","const":"addon_seen"},"name":{"type":"string","minLength":1,"maxLength":100,"description":"The addon's folder name."},"title":{"type":"string","minLength":1,"maxLength":120},"version":{"description":"The .toc Version field.","type":"string","minLength":1,"maxLength":40},"loaded":{"type":"boolean"}},"required":["installId","capturedAt","kind","name","title","loaded"],"additionalProperties":false},{"type":"object","properties":{"installId":{"type":"string","minLength":8,"maxLength":64,"description":"Random install id, no account needed."},"eventId":{"type":"string","minLength":3,"maxLength":96,"pattern":"^[A-Za-z0-9:_-]+$"},"capturedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","description":"ISO time the event happened in-game."},"kind":{"type":"string","const":"map_bounds"},"mapId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"continentId":{"type":"integer","minimum":0,"maximum":9007199254740991},"left":{"type":"number","minimum":-100000,"maximum":100000},"top":{"type":"number","minimum":-100000,"maximum":100000},"right":{"type":"number","minimum":-100000,"maximum":100000},"bottom":{"type":"number","minimum":-100000,"maximum":100000}},"required":["installId","capturedAt","kind","mapId","continentId","left","top","right","bottom"],"additionalProperties":false},{"type":"object","properties":{"installId":{"type":"string","minLength":8,"maxLength":64,"description":"Random install id, no account needed."},"eventId":{"type":"string","minLength":3,"maxLength":96,"pattern":"^[A-Za-z0-9:_-]+$"},"capturedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","description":"ISO time the event happened in-game."},"kind":{"type":"string","const":"talent_snapshot"},"class":{"type":"string","minLength":2,"maxLength":20,"pattern":"^[A-Za-z]+$","description":"Class token from UnitClass, e.g. MAGE."},"level":{"type":"integer","minimum":1,"maximum":100},"group":{"type":"integer","minimum":1,"maximum":2,"description":"Spec group: 1 primary, 2 secondary (dual spec from level 40)."},"active":{"type":"boolean"},"configId":{"type":"integer","minimum":0,"maximum":9007199254740991},"treeId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"specId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"clientBuild":{"type":"string","maxLength":32,"pattern":"^\\d+(\\.\\d+)+$"},"serializationVersion":{"type":"integer","minimum":0,"maximum":255},"loadoutString":{"type":"string","minLength":1,"maxLength":2000,"pattern":"^[A-Za-z0-9+/]+$"},"exportStatus":{"type":"string","enum":["ok","unavailable","failed","empty","unexpected"]},"points":{"type":"integer","minimum":0,"maximum":500},"nodes":{"maxItems":600,"type":"array","items":{"type":"object","properties":{"nodeId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"ranks":{"type":"integer","minimum":1,"maximum":50},"choice":{"type":"integer","minimum":0,"maximum":3}},"required":["nodeId","ranks"],"additionalProperties":false}}},"required":["installId","capturedAt","kind","class","level","group","active","configId","treeId","exportStatus","points","nodes"],"additionalProperties":false},{"type":"object","properties":{"installId":{"type":"string","minLength":8,"maxLength":64,"description":"Random install id, no account needed."},"eventId":{"type":"string","minLength":3,"maxLength":96,"pattern":"^[A-Za-z0-9:_-]+$"},"capturedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","description":"ISO time the event happened in-game."},"guid":{"type":"string","pattern":"^Player-[1-9]\\d*-[0-9A-F]+$","description":"The player GUID, in transit only: the server replaces it with a keyed hash before anything is stored."},"race":{"type":"string","pattern":"^[A-Za-z]{2,24}$","description":"Race file token, UnitRace's second return, e.g. Scourge."},"class":{"type":"string","pattern":"^[A-Z]{3,16}$","description":"Class token, UnitClass's second return, e.g. HUNTER."},"level":{"type":"integer","minimum":1,"maximum":60},"faction":{"type":"string","enum":["Alliance","Horde"]},"kind":{"type":"string","const":"census_self"},"realm":{"type":"string","minLength":2,"maxLength":60,"description":"GetRealmName() for your own character."},"via":{"description":"Absent on your own characters.","not":{}}},"required":["installId","capturedAt","guid","race","class","level","faction","kind","realm"],"additionalProperties":false},{"type":"object","properties":{"installId":{"type":"string","minLength":8,"maxLength":64,"description":"Random install id, no account needed."},"eventId":{"type":"string","minLength":3,"maxLength":96,"pattern":"^[A-Za-z0-9:_-]+$"},"capturedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","description":"ISO time the event happened in-game."},"guid":{"type":"string","pattern":"^Player-[1-9]\\d*-[0-9A-F]+$","description":"The player GUID, in transit only: the server replaces it with a keyed hash before anything is stored."},"race":{"type":"string","pattern":"^[A-Za-z]{2,24}$","description":"Race file token, UnitRace's second return, e.g. Scourge."},"class":{"type":"string","pattern":"^[A-Z]{3,16}$","description":"Class token, UnitClass's second return, e.g. HUNTER."},"level":{"type":"integer","minimum":1,"maximum":60},"faction":{"type":"string","enum":["Alliance","Horde"]},"kind":{"type":"string","const":"census_seen"},"via":{"type":"string","enum":["target","mouseover","group"],"description":"How the addon saw the player."},"realm":{"description":"Absent: the server id in the GUID says where a player you see is from.","not":{}}},"required":["installId","capturedAt","guid","race","class","level","faction","kind","via"],"additionalProperties":false}]}},"sharing":{"description":"Named categories the player chose to share: guild, gear, gold, collection.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"boolean"}},"grantTokens":{"maxItems":4,"type":"array","items":{"type":"string","pattern":"^[a-f0-9]{64}$"}}},"required":["addonVersion","records"],"additionalProperties":false},"intakeReceipt":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"persisted":{"type":"boolean","const":true},"uploadId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"accepted":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"kind":{"type":"string"},"reason":{"type":"string"}},"required":["index"],"additionalProperties":false}},"rejected":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"kind":{"type":"string"},"reason":{"type":"string"}},"required":["index"],"additionalProperties":false}}},"required":["ok","persisted","uploadId","accepted","rejected"],"additionalProperties":{}},"intakeRefused":{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"type":"string"},"persisted":{"type":"boolean","const":false},"uploadId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"accepted":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"kind":{"type":"string"},"reason":{"type":"string"}},"required":["index"],"additionalProperties":false}},"rejected":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"kind":{"type":"string"},"reason":{"type":"string"}},"required":["index"],"additionalProperties":false}}},"required":["ok"],"additionalProperties":false},"healthResponse":{"type":"object","properties":{"ok":{"type":"boolean"},"snapshot":{"type":"object","properties":{"status":{"type":"string","enum":["fresh","stale","missing","unavailable","local"]},"updatedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"null"}]},"ageSeconds":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}]}},"required":["status","updatedAt","ageSeconds"],"additionalProperties":false}},"required":["ok","snapshot"],"additionalProperties":false}},"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","description":"A free key from https://everloot.app/connect#keys, sent as Authorization: Bearer <key>. Only needed to copy in bulk once keys are switched on."}}},"x-everloot":{"protocol":"1.1.0","schemas":"https://everloot.app/schema/index.json","mcp":{"endpoint":"https://everloot.app/mcp/public","tools":["search_knowledge","get_entity","get_by_name","search","fetch","answer_sources","profession_path","recipe_thresholds","item_page","npc_page","object_page","quest_page","vendor_page","world_map_near","entity_relations","item_categories","talent_tree","talent_plan","collection_gap","completion_progress","guild_board","auction_history","market_value","gold_ledger","population","recent_changes","ecosystem_projects","everloot_plan"],"toolSchema":"https://everloot.app/schema/mcp/{tool}.json"},"source":"https://github.com/Everloot/everloot"}}