{"openapi":"3.1.0","info":{"title":"OSRS Index API","version":"1.0.0","summary":"Read-only Old School RuneScape reference data: search, items and other entities, wiki pages, categories and map pins.","description":"Anonymous and free. No key.\n\nEach IP address may make 60 requests a minute, counted together with its visits to the site. A refusal is a 429 with `Retry-After`. Answers served from the cache do not count.\n\nEvery response allows any origin (`Access-Control-Allow-Origin: *`).\n\nv1 changes only by adding fields, parameters or endpoints. Ignore fields you do not know.\n\nThe text comes from the Old School RuneScape Wiki under CC BY-NC-SA 3.0: credit the wiki, link the page, do not use it commercially, and share what you make from it under the same licence. See https://osrsindex.com/developers.\n\nGrand Exchange prices are not part of this API: use the OSRS Wiki real-time prices API.","license":{"name":"CC BY-NC-SA 3.0","url":"https://creativecommons.org/licenses/by-nc-sa/3.0/"}},"externalDocs":{"description":"How to use it","url":"https://osrsindex.com/developers"},"servers":[{"url":"https://osrsindex.com"}],"tags":[{"name":"Search"},{"name":"Entities"},{"name":"Pages"},{"name":"Categories"},{"name":"Map and media"},{"name":"Service"}],"paths":{"/api/v1/search":{"get":{"operationId":"search","tags":["Search"],"summary":"Search pages","description":"Pages whose title or text matches `q`. `auto` tries titles first and falls back to the text; `fuzzy` tolerates typos and needs at least three characters.","parameters":[{"name":"q","in":"query","required":true,"description":"What to look for.","schema":{"type":"string","minLength":1,"maxLength":200}},{"name":"mode","in":"query","required":false,"description":"How to match.","schema":{"type":"string","enum":["auto","title","fulltext","fuzzy"],"default":"auto"}},{"name":"type","in":"query","required":false,"description":"Only pages of this type.","schema":{"type":"string","enum":["article","item","monster","npc","quest","miniquest","location","skill","update","category","calculator","disambiguation","redirect","file","transcript","exchange","map","poll","guide","template","module","project","help","unknown"]}},{"name":"namespace","in":"query","required":false,"description":"Only this wiki namespace: 0 for articles, 14 for categories.","schema":{"type":"integer","minimum":0}},{"name":"category","in":"query","required":false,"description":"Only pages in the category with this title.","schema":{"type":"string","minLength":1,"maxLength":200}},{"name":"limit","in":"query","required":false,"description":"Results per page, 1 to 100. A larger value is treated as 100.","schema":{"type":"integer","minimum":1,"default":20}},{"name":"offset","in":"query","required":false,"description":"How many results to skip, at most 1000. Use `cursor` to go further.","schema":{"type":"integer","minimum":0,"maximum":1000,"default":0}},{"name":"cursor","in":"query","required":false,"description":"The previous page's `next_cursor`, to continue a list past any offset. Keep the other parameters the same; `limit` may change. Cannot be combined with a non-zero `offset`.","schema":{"type":"string","minLength":1,"maxLength":8192}}],"responses":{"200":{"description":"Search pages","headers":{"cache-control":{"description":"`public, max-age=300`","schema":{"type":"string"}},"link":{"description":"Always `<https://creativecommons.org/licenses/by-nc-sa/3.0/>; rel=\"license\"`: the text licence (RFC 6596).","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchResponse"}}}},"404":{"$ref":"#/components/responses/Error404"},"422":{"$ref":"#/components/responses/Error422"},"429":{"$ref":"#/components/responses/Error429"},"502":{"$ref":"#/components/responses/Error502"},"503":{"$ref":"#/components/responses/Error503"}}}},"/api/v1/entity-types":{"get":{"operationId":"listEntityTypes","tags":["Entities"],"summary":"List entity types","description":"Every kind of structured record — item, monster, NPC, quest, skill — with how many are published.","parameters":[],"responses":{"200":{"description":"List entity types","headers":{"cache-control":{"description":"`public, max-age=300`","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityTypeList"}}}},"429":{"$ref":"#/components/responses/Error429"},"502":{"$ref":"#/components/responses/Error502"},"503":{"$ref":"#/components/responses/Error503"}}}},"/api/v1/entities":{"get":{"operationId":"listEntities","tags":["Entities"],"summary":"List entities","description":"Structured records, ordered by name, filtered by any of the parameters. Redirects and removed pages are left out.","parameters":[{"name":"type","in":"query","required":false,"description":"An entity type `key`, such as `item` or `quest`.","schema":{"type":"string","minLength":1,"maxLength":60}},{"name":"name","in":"query","required":false,"description":"Names containing this text, ignoring case.","schema":{"type":"string","minLength":1,"maxLength":200}},{"name":"name_from","in":"query","required":false,"description":"Names from this one, alphabetically, inclusive.","schema":{"type":"string","minLength":1,"maxLength":200}},{"name":"name_to","in":"query","required":false,"description":"Names before this one, alphabetically.","schema":{"type":"string","minLength":1,"maxLength":200}},{"name":"members","in":"query","required":false,"description":"Only entities that are members-only (true) or are not (false).","schema":{"type":"boolean"}},{"name":"tradeable","in":"query","required":false,"description":"Only entities that are tradeable (true) or are not (false).","schema":{"type":"boolean"}},{"name":"equipable","in":"query","required":false,"description":"Only entities that are equipable (true) or are not (false).","schema":{"type":"boolean"}},{"name":"stackable","in":"query","required":false,"description":"Only entities that are stackable (true) or are not (false).","schema":{"type":"boolean"}},{"name":"noteable","in":"query","required":false,"description":"Only entities that are noteable (true) or are not (false).","schema":{"type":"boolean"}},{"name":"quest_item","in":"query","required":false,"description":"Only entities that are quest items (true) or are not (false).","schema":{"type":"boolean"}},{"name":"two_handed","in":"query","required":false,"description":"Only entities that are two-handed (true) or are not (false).","schema":{"type":"boolean"}},{"name":"equipment_slot","in":"query","required":false,"description":"Only items worn in this slot.","schema":{"type":"string","enum":["Head","Cape","Neck","Ammunition","Weapon","Body","Shield","Legs","Hands","Feet","Ring"]}},{"name":"quest_difficulty","in":"query","required":false,"description":"Only quests of this difficulty.","schema":{"type":"string","enum":["Novice","Intermediate","Experienced","Master","Grandmaster","Special"]}},{"name":"page_id","in":"query","required":false,"description":"Only entities from this page.","schema":{"type":"string","format":"uuid"}},{"name":"page_slug","in":"query","required":false,"description":"Only entities from the page with this slug.","schema":{"type":"string","minLength":1,"maxLength":200}},{"name":"limit","in":"query","required":false,"description":"Results per page, 1 to 100. A larger value is treated as 100.","schema":{"type":"integer","minimum":1,"default":20}},{"name":"offset","in":"query","required":false,"description":"How many results to skip, at most 1000. Use `cursor` to go further.","schema":{"type":"integer","minimum":0,"maximum":1000,"default":0}},{"name":"cursor","in":"query","required":false,"description":"The previous page's `next_cursor`, to continue a list past any offset. Keep the other parameters the same; `limit` may change. Cannot be combined with a non-zero `offset`.","schema":{"type":"string","minLength":1,"maxLength":8192}}],"responses":{"200":{"description":"List entities","headers":{"cache-control":{"description":"`public, max-age=300`","schema":{"type":"string"}},"link":{"description":"Always `<https://creativecommons.org/licenses/by-nc-sa/3.0/>; rel=\"license\"`: the text licence (RFC 6596).","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntitySummaryPage"}}}},"404":{"$ref":"#/components/responses/Error404"},"422":{"$ref":"#/components/responses/Error422"},"429":{"$ref":"#/components/responses/Error429"},"502":{"$ref":"#/components/responses/Error502"},"503":{"$ref":"#/components/responses/Error503"}}}},"/api/v1/entities/{entity_id}":{"get":{"operationId":"getEntity","tags":["Entities"],"summary":"Get an entity","description":"One structured record with its extracted data, its source page and revision, and its attribution.","parameters":[{"name":"entity_id","in":"path","required":true,"description":"An entity's `id`.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Get an entity","headers":{"cache-control":{"description":"`public, max-age=300`","schema":{"type":"string"}},"link":{"description":"Always `<https://creativecommons.org/licenses/by-nc-sa/3.0/>; rel=\"license\"`: the text licence (RFC 6596).","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityDetail"}}}},"404":{"$ref":"#/components/responses/Error404"},"422":{"$ref":"#/components/responses/Error422"},"429":{"$ref":"#/components/responses/Error429"},"502":{"$ref":"#/components/responses/Error502"},"503":{"$ref":"#/components/responses/Error503"}}}},"/api/v1/pages/by-slug/{slug}":{"get":{"operationId":"getPageBySlug","tags":["Pages"],"summary":"Get a page by slug","description":"One wiki page: identity, plain text, revision and categories. The slug is the last part of the page's osrsindex.com address. A page removed at the source answers 410 with what it was.","parameters":[{"name":"slug","in":"path","required":true,"description":"The page's `slug`, such as `abyssal-whip`.","schema":{"type":"string","minLength":1,"maxLength":2048}}],"responses":{"200":{"description":"Get a page by slug","headers":{"cache-control":{"description":"`public, max-age=300`","schema":{"type":"string"}},"link":{"description":"Always `<https://creativecommons.org/licenses/by-nc-sa/3.0/>; rel=\"license\"`: the text licence (RFC 6596).","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageDetail"}}}},"404":{"$ref":"#/components/responses/Error404"},"410":{"$ref":"#/components/responses/Error410"},"422":{"$ref":"#/components/responses/Error422"},"429":{"$ref":"#/components/responses/Error429"},"502":{"$ref":"#/components/responses/Error502"},"503":{"$ref":"#/components/responses/Error503"}}}},"/api/v1/pages/{page_id}":{"get":{"operationId":"getPage","tags":["Pages"],"summary":"Get a page by id","description":"The same page detail, by id.","parameters":[{"name":"page_id","in":"path","required":true,"description":"A page's `id`, from search, an entity's `page`, or a page detail.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Get a page by id","headers":{"cache-control":{"description":"`public, max-age=300`","schema":{"type":"string"}},"link":{"description":"Always `<https://creativecommons.org/licenses/by-nc-sa/3.0/>; rel=\"license\"`: the text licence (RFC 6596).","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageDetail"}}}},"404":{"$ref":"#/components/responses/Error404"},"410":{"$ref":"#/components/responses/Error410"},"422":{"$ref":"#/components/responses/Error422"},"429":{"$ref":"#/components/responses/Error429"},"502":{"$ref":"#/components/responses/Error502"},"503":{"$ref":"#/components/responses/Error503"}}}},"/api/v1/pages/{page_id}/sections":{"get":{"operationId":"listPageSections","tags":["Pages"],"summary":"List a page's sections","description":"A page's sections in order, each as plain text with its heading and anchor.","parameters":[{"name":"page_id","in":"path","required":true,"description":"A page's `id`, from search, an entity's `page`, or a page detail.","schema":{"type":"string","format":"uuid"}},{"name":"limit","in":"query","required":false,"description":"Results per page, 1 to 100. A larger value is treated as 100.","schema":{"type":"integer","minimum":1,"default":20}},{"name":"offset","in":"query","required":false,"description":"How many results to skip, at most 1000. Use `cursor` to go further.","schema":{"type":"integer","minimum":0,"maximum":1000,"default":0}}],"responses":{"200":{"description":"List a page's sections","headers":{"cache-control":{"description":"`public, max-age=300`","schema":{"type":"string"}},"link":{"description":"Always `<https://creativecommons.org/licenses/by-nc-sa/3.0/>; rel=\"license\"`: the text licence (RFC 6596).","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SectionPage"}}}},"404":{"$ref":"#/components/responses/Error404"},"410":{"$ref":"#/components/responses/Error410"},"422":{"$ref":"#/components/responses/Error422"},"429":{"$ref":"#/components/responses/Error429"},"502":{"$ref":"#/components/responses/Error502"},"503":{"$ref":"#/components/responses/Error503"}}}},"/api/v1/pages/{page_id}/infoboxes":{"get":{"operationId":"listPageInfoboxes","tags":["Pages"],"summary":"List a page's infoboxes","description":"A page's infoboxes: the wiki's labels and values, and the same fields normalised.","parameters":[{"name":"page_id","in":"path","required":true,"description":"A page's `id`, from search, an entity's `page`, or a page detail.","schema":{"type":"string","format":"uuid"}},{"name":"limit","in":"query","required":false,"description":"Results per page, 1 to 100. A larger value is treated as 100.","schema":{"type":"integer","minimum":1,"default":20}},{"name":"offset","in":"query","required":false,"description":"How many results to skip, at most 1000. Use `cursor` to go further.","schema":{"type":"integer","minimum":0,"maximum":1000,"default":0}}],"responses":{"200":{"description":"List a page's infoboxes","headers":{"cache-control":{"description":"`public, max-age=300`","schema":{"type":"string"}},"link":{"description":"Always `<https://creativecommons.org/licenses/by-nc-sa/3.0/>; rel=\"license\"`: the text licence (RFC 6596).","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfoboxPage"}}}},"404":{"$ref":"#/components/responses/Error404"},"410":{"$ref":"#/components/responses/Error410"},"422":{"$ref":"#/components/responses/Error422"},"429":{"$ref":"#/components/responses/Error429"},"502":{"$ref":"#/components/responses/Error502"},"503":{"$ref":"#/components/responses/Error503"}}}},"/api/v1/categories":{"get":{"operationId":"listCategories","tags":["Categories"],"summary":"List categories","description":"Wiki categories, ordered by title.","parameters":[{"name":"q","in":"query","required":false,"description":"Titles containing this text, ignoring case.","schema":{"type":"string","minLength":1,"maxLength":200}},{"name":"include_hidden","in":"query","required":false,"description":"Include the wiki's hidden maintenance categories.","schema":{"type":"boolean","default":false}},{"name":"limit","in":"query","required":false,"description":"Results per page, 1 to 100. A larger value is treated as 100.","schema":{"type":"integer","minimum":1,"default":20}},{"name":"offset","in":"query","required":false,"description":"How many results to skip, at most 1000. Use `cursor` to go further.","schema":{"type":"integer","minimum":0,"maximum":1000,"default":0}},{"name":"cursor","in":"query","required":false,"description":"The previous page's `next_cursor`, to continue a list past any offset. Keep the other parameters the same; `limit` may change. Cannot be combined with a non-zero `offset`.","schema":{"type":"string","minLength":1,"maxLength":8192}}],"responses":{"200":{"description":"List categories","headers":{"cache-control":{"description":"`public, max-age=300`","schema":{"type":"string"}},"link":{"description":"Always `<https://creativecommons.org/licenses/by-nc-sa/3.0/>; rel=\"license\"`: the text licence (RFC 6596).","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CategorySummaryPage"}}}},"404":{"$ref":"#/components/responses/Error404"},"422":{"$ref":"#/components/responses/Error422"},"429":{"$ref":"#/components/responses/Error429"},"502":{"$ref":"#/components/responses/Error502"},"503":{"$ref":"#/components/responses/Error503"}}}},"/api/v1/categories/{category_id}":{"get":{"operationId":"getCategory","tags":["Categories"],"summary":"Get a category and its members","description":"A category and one page of its members. An item member carries its game item id and sprite.","parameters":[{"name":"category_id","in":"path","required":true,"description":"A category's `id`.","schema":{"type":"integer","minimum":1}},{"name":"limit","in":"query","required":false,"description":"Results per page, 1 to 100. A larger value is treated as 100.","schema":{"type":"integer","minimum":1,"default":20}},{"name":"offset","in":"query","required":false,"description":"How many results to skip, at most 1000. Use `cursor` to go further.","schema":{"type":"integer","minimum":0,"maximum":1000,"default":0}},{"name":"cursor","in":"query","required":false,"description":"The previous page's `next_cursor`, to continue a list past any offset. Keep the other parameters the same; `limit` may change. Cannot be combined with a non-zero `offset`.","schema":{"type":"string","minLength":1,"maxLength":8192}}],"responses":{"200":{"description":"Get a category and its members","headers":{"cache-control":{"description":"`public, max-age=300`","schema":{"type":"string"}},"link":{"description":"Always `<https://creativecommons.org/licenses/by-nc-sa/3.0/>; rel=\"license\"`: the text licence (RFC 6596).","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CategoryDetail"}}}},"404":{"$ref":"#/components/responses/Error404"},"422":{"$ref":"#/components/responses/Error422"},"429":{"$ref":"#/components/responses/Error429"},"502":{"$ref":"#/components/responses/Error502"},"503":{"$ref":"#/components/responses/Error503"}}}},"/api/v1/map/pins":{"get":{"operationId":"getMapPins","tags":["Map and media"],"summary":"List a page's map pins","description":"Every map pin on one wiki page — points, areas and paths in game tile coordinates (#646).","parameters":[{"name":"slug","in":"query","required":true,"description":"The page's `slug`.","schema":{"type":"string","minLength":1,"maxLength":300}}],"responses":{"200":{"description":"List a page's map pins","headers":{"cache-control":{"description":"`public, max-age=300`","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MapPins"}}}},"404":{"$ref":"#/components/responses/Error404"},"422":{"$ref":"#/components/responses/Error422"},"429":{"$ref":"#/components/responses/Error429"},"502":{"$ref":"#/components/responses/Error502"},"503":{"$ref":"#/components/responses/Error503"}}}},"/api/v1/media/{media_asset_id}":{"get":{"operationId":"getMedia","tags":["Map and media"],"summary":"Get a picture","description":"A sprite, artwork or thumbnail named by a `sprite_url`, `artwork_url` or `thumbnail_url`. Raster images only; SVG is never served.","parameters":[{"name":"media_asset_id","in":"path","required":true,"description":"The id at the end of a media URL.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"The image.","headers":{"cache-control":{"description":"`public, max-age=86400, stale-while-revalidate=604800`","schema":{"type":"string"}}},"content":{"image/png":{"schema":{"type":"string","contentMediaType":"image/png"}},"image/jpeg":{"schema":{"type":"string","contentMediaType":"image/jpeg"}},"image/gif":{"schema":{"type":"string","contentMediaType":"image/gif"}},"image/webp":{"schema":{"type":"string","contentMediaType":"image/webp"}},"image/avif":{"schema":{"type":"string","contentMediaType":"image/avif"}},"image/bmp":{"schema":{"type":"string","contentMediaType":"image/bmp"}}}},"404":{"$ref":"#/components/responses/Error404"},"415":{"$ref":"#/components/responses/Error415"},"429":{"$ref":"#/components/responses/Error429"},"502":{"$ref":"#/components/responses/Error502"},"503":{"$ref":"#/components/responses/Error503"}}}},"/api/v1/status":{"get":{"operationId":"getStatus","tags":["Service"],"summary":"Check the service","description":"Whether the API can serve right now. The edge caches it for 60 seconds, so poll it at most once a minute, from a server: a browser may keep it for hours.","parameters":[],"responses":{"200":{"description":"Check the service","headers":{"cache-control":{"description":"`public, max-age=60`","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Status"}}}},"429":{"$ref":"#/components/responses/Error429"},"502":{"$ref":"#/components/responses/Error502"},"503":{"$ref":"#/components/responses/Error503"}}}},"/api/v1/openapi.json":{"get":{"operationId":"getOpenApiDocument","tags":["Service"],"summary":"Get this OpenAPI document","description":"The OpenAPI 3.1 description of every endpoint here, for code generators and validators.","parameters":[],"responses":{"200":{"description":"Get this OpenAPI document","headers":{"cache-control":{"description":"`public, max-age=3600`","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object"}}}}}}}},"components":{"schemas":{"SourceSite":{"type":"object","properties":{"slug":{"type":"string","minLength":1,"maxLength":512},"name":{"type":"string","minLength":1,"maxLength":1024},"base_url":{"type":"string","maxLength":4096,"pattern":"^https?:\\/\\/"}},"required":["slug","name","base_url"]},"Attribution":{"type":"object","properties":{"source_name":{"type":"string","minLength":1,"maxLength":1024},"source_url":{"type":"string","maxLength":4096,"pattern":"^https?:\\/\\/"},"source_site_slug":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}]},"source_operator":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}]},"content_license":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}]},"content_license_url":{"anyOf":[{"type":"string","maxLength":4096,"pattern":"^https?:\\/\\/"},{"type":"null"}]},"attribution_text":{"anyOf":[{"type":"string","maxLength":8192},{"type":"null"}]},"media_license_note":{"type":"string","maxLength":8192},"jagex_disclaimer":{"type":"string","maxLength":8192},"unofficial_notice":{"type":"string","maxLength":8192},"reformatting_notice":{"type":"string","maxLength":8192}},"required":["source_name","source_url","source_site_slug","source_operator","content_license","content_license_url","attribution_text","media_license_note","jagex_disclaimer","unofficial_notice","reformatting_notice"]},"SearchHit":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},"source_site":{"$ref":"#/components/schemas/SourceSite"},"title":{"type":"string","minLength":1,"maxLength":4096},"slug":{"type":"string","minLength":1,"maxLength":4096},"canonical_url":{"anyOf":[{"type":"string","maxLength":8192,"pattern":"^https?:\\/\\/"},{"type":"null"}]},"namespace_id":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"page_type":{"type":"string","minLength":1,"maxLength":40},"is_redirect":{"type":"boolean"},"is_disambiguation":{"type":"boolean"},"last_changed_at":{"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|([+-]\\d{2}:\\d{2})))$"},{"type":"null"}]},"content_state":{"type":"string","enum":["available","partial","failed","skipped","missing","stale"]},"content_available":{"type":"boolean"},"rank":{"type":"number","minimum":0,"maximum":1},"match_kind":{"type":"string","enum":["title","fulltext","fuzzy"]},"snippet":{"description":"HTML-escaped text whose only tags are <mark>. Present in fulltext and auto modes.","anyOf":[{"type":"string","maxLength":16384},{"type":"null"}]},"thumbnail_url":{"anyOf":[{"type":"string","pattern":"^\\/api\\/v1\\/media\\/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"},{"type":"null"}]}},"required":["id","source_site","title","slug","canonical_url","namespace_id","page_type","is_redirect","is_disambiguation","last_changed_at","content_state","content_available","rank","match_kind","snippet","thumbnail_url"]},"SearchHitPage":{"type":"object","properties":{"items":{"maxItems":100,"type":"array","items":{"$ref":"#/components/schemas/SearchHit"}},"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":1,"maximum":100},"offset":{"type":"integer","minimum":0,"maximum":1000},"has_more":{"type":"boolean"},"next_cursor":{"anyOf":[{"type":"string","minLength":1,"maxLength":8192},{"type":"null"}]},"pagination_mode":{"type":"string","enum":["offset","cursor"]}},"required":["items","total","limit","offset","has_more","next_cursor","pagination_mode"]},"SearchResponse":{"type":"object","properties":{"query":{"type":"string","maxLength":200},"mode_requested":{"type":"string","enum":["title","fulltext","fuzzy","auto"]},"fuzzy_applied":{"type":"boolean"},"filters":{"type":"object","properties":{"type":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}]},"namespace":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"category":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]}},"required":["type","namespace","category"]},"results":{"$ref":"#/components/schemas/SearchHitPage"}},"required":["query","mode_requested","fuzzy_applied","filters","results"]},"EntityType":{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"key":{"type":"string","minLength":1,"maxLength":512},"display_name":{"type":"string","minLength":1,"maxLength":512},"description":{"anyOf":[{"type":"string","maxLength":16384},{"type":"null"}]},"entity_count":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["id","key","display_name","description","entity_count"]},"EntityTypeList":{"maxItems":128,"type":"array","items":{"$ref":"#/components/schemas/EntityType"}},"EntitySummary":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},"entity_type_key":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}]},"name":{"type":"string","minLength":1,"maxLength":2048},"slug":{"type":"string","minLength":1,"maxLength":2048},"summary":{"anyOf":[{"type":"string","maxLength":16384},{"type":"null"}]},"summary_truncated":{"type":"boolean"},"members":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"combat_level":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"game_item_id":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"release_date":{"anyOf":[{"type":"string","format":"date","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])))$"},{"type":"null"}]},"equipment_slot":{"anyOf":[{"type":"string","enum":["Head","Cape","Neck","Ammunition","Weapon","Body","Shield","Legs","Hands","Feet","Ring"]},{"type":"null"}]},"two_handed":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"quest_difficulty":{"anyOf":[{"type":"string","enum":["Novice","Intermediate","Experienced","Master","Grandmaster","Special"]},{"type":"null"}]},"content_state":{"type":"string","enum":["available","partial","failed","skipped","missing","stale"]},"content_available":{"type":"boolean"},"updated_at":{"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|([+-]\\d{2}:\\d{2})))$"},"sprite_url":{"anyOf":[{"type":"string","pattern":"^\\/api\\/v1\\/media\\/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"},{"type":"null"}]},"artwork_url":{"anyOf":[{"type":"string","pattern":"^\\/api\\/v1\\/media\\/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"},{"type":"null"}]},"page":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},"title":{"type":"string","minLength":1,"maxLength":2048},"slug":{"type":"string","minLength":1,"maxLength":2048},"canonical_url":{"type":"string","maxLength":8192,"pattern":"^https?:\\/\\/"},"page_type":{"type":"string","minLength":1,"maxLength":512}},"required":["id","title","slug","canonical_url","page_type"]},"source_site":{"$ref":"#/components/schemas/SourceSite"}},"required":["id","entity_type_key","name","slug","summary","summary_truncated","members","combat_level","game_item_id","release_date","equipment_slot","two_handed","quest_difficulty","content_state","content_available","updated_at","sprite_url","artwork_url","page","source_site"]},"EntitySummaryPage":{"type":"object","properties":{"items":{"maxItems":100,"type":"array","items":{"$ref":"#/components/schemas/EntitySummary"}},"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":1,"maximum":100},"offset":{"type":"integer","minimum":0,"maximum":1000},"has_more":{"type":"boolean"},"next_cursor":{"anyOf":[{"type":"string","minLength":1,"maxLength":8192},{"type":"null"}]},"pagination_mode":{"type":"string","enum":["offset","cursor"]}},"required":["items","total","limit","offset","has_more","next_cursor","pagination_mode"]},"EntityDetail":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},"entity_type_key":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}]},"entity_type_display_name":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}]},"name":{"type":"string","minLength":1,"maxLength":2048},"slug":{"type":"string","minLength":1,"maxLength":2048},"summary":{"anyOf":[{"type":"string","maxLength":16384},{"type":"null"}]},"summary_truncated":{"type":"boolean"},"data":{"description":"The record's normalised infobox fields, as the wiki states them.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"data_truncated":{"type":"boolean"},"data_omitted_keys":{"type":"array","items":{"type":"string"}},"content_state":{"type":"string","enum":["available","partial","failed","skipped","missing","stale"]},"content_available":{"type":"boolean"},"members":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"release_date":{"anyOf":[{"type":"string","format":"date","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])))$"},{"type":"null"}]},"examine_text":{"anyOf":[{"type":"string","maxLength":8192},{"type":"null"}]},"examine_text_truncated":{"type":"boolean"},"combat_level":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"game_item_id":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"value":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"weight":{"description":"Decimal text, such as \"0.453\".","anyOf":[{"type":"string","maxLength":64},{"type":"null"}]},"quest_difficulty":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}]},"page":{"type":"object","properties":{"id":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},{"type":"null"}]},"title":{"anyOf":[{"type":"string","maxLength":2048},{"type":"null"}]},"slug":{"anyOf":[{"type":"string","maxLength":2048},{"type":"null"}]},"canonical_url":{"anyOf":[{"type":"string","maxLength":8192,"pattern":"^https?:\\/\\/"},{"type":"null"}]}},"required":["id","title","slug","canonical_url"]},"source_site":{"$ref":"#/components/schemas/SourceSite"},"source_url":{"type":"string","maxLength":8192,"pattern":"^https?:\\/\\/"},"source_url_truncated":{"type":"boolean"},"source_revision_id":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"updated_at":{"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|([+-]\\d{2}:\\d{2})))$"},"attribution":{"$ref":"#/components/schemas/Attribution"}},"required":["id","entity_type_key","entity_type_display_name","name","slug","summary","summary_truncated","data","data_truncated","data_omitted_keys","content_state","content_available","members","release_date","examine_text","examine_text_truncated","combat_level","game_item_id","value","weight","quest_difficulty","page","source_site","source_url","source_url_truncated","source_revision_id","updated_at","attribution"]},"PageDetail":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},"title":{"type":"string","minLength":1,"maxLength":2048},"slug":{"type":"string","minLength":1,"maxLength":2048},"page_type":{"type":"string","minLength":1,"maxLength":2048},"namespace_id":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"language":{"type":"string","maxLength":64},"source_site":{"$ref":"#/components/schemas/SourceSite"},"is_redirect":{"type":"boolean"},"redirect_target":{"anyOf":[{"type":"object","properties":{"id":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},{"type":"null"}]},"title":{"anyOf":[{"type":"string","maxLength":2048},{"type":"null"}]},"slug":{"anyOf":[{"type":"string","maxLength":2048},{"type":"null"}]},"canonical_url":{"anyOf":[{"type":"string","maxLength":8192,"pattern":"^https?:\\/\\/"},{"type":"null"}]}},"required":["id","title","slug","canonical_url"]},{"type":"null"}]},"redirect_target_url":{"anyOf":[{"type":"string","maxLength":8192,"pattern":"^https?:\\/\\/"},{"type":"null"}]},"is_disambiguation":{"type":"boolean"},"canonical_url":{"type":"string","maxLength":8192,"pattern":"^https?:\\/\\/"},"extracted_text":{"description":"The article as plain text. Null when withheld.","anyOf":[{"type":"string","maxLength":1048576},{"type":"null"}]},"extracted_text_withheld":{"type":"boolean"},"article_body_truncated":{"type":"boolean"},"content_state":{"type":"string","enum":["available","partial","failed","skipped","missing","stale"]},"content_available":{"type":"boolean"},"revision":{"type":"object","properties":{"version_id":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},{"type":"null"}]},"source_revision_id":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"source_revision_timestamp":{"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|([+-]\\d{2}:\\d{2})))$"},{"type":"null"}]},"extraction_status":{"anyOf":[{"type":"string","enum":["ok","partial","failed","skipped"]},{"type":"null"}]}},"required":["version_id","source_revision_id","source_revision_timestamp","extraction_status"]},"section_count":{"type":"integer","minimum":0,"maximum":9007199254740991},"infobox_count":{"type":"integer","minimum":0,"maximum":9007199254740991},"table_count":{"type":"integer","minimum":0,"maximum":9007199254740991},"categories":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"title":{"type":"string","minLength":1,"maxLength":2048},"canonical_url":{"anyOf":[{"type":"string","maxLength":8192,"pattern":"^https?:\\/\\/"},{"type":"null"}]},"is_hidden":{"type":"boolean"}},"required":["id","title","canonical_url","is_hidden"]}},"category_count":{"type":"integer","minimum":0,"maximum":9007199254740991},"categories_truncated":{"type":"boolean"},"first_seen_at":{"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|([+-]\\d{2}:\\d{2})))$"},"last_seen_at":{"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|([+-]\\d{2}:\\d{2})))$"},"attribution":{"$ref":"#/components/schemas/Attribution"}},"required":["id","title","slug","page_type","namespace_id","language","source_site","is_redirect","redirect_target","redirect_target_url","is_disambiguation","canonical_url","extracted_text","extracted_text_withheld","article_body_truncated","content_state","content_available","revision","section_count","infobox_count","table_count","categories","category_count","categories_truncated","first_seen_at","last_seen_at","attribution"]},"Section":{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"section_index":{"type":"integer","minimum":0,"maximum":9007199254740991},"parent_section_id":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"heading_level":{"type":"integer","minimum":0,"maximum":9007199254740991},"heading":{"anyOf":[{"type":"string","maxLength":4097},{"type":"null"}]},"heading_truncated":{"type":"boolean"},"anchor":{"anyOf":[{"type":"string","maxLength":4096},{"type":"null"}]},"plain_text":{"anyOf":[{"type":"string","maxLength":65537},{"type":"null"}]},"plain_text_truncated":{"type":"boolean"}},"required":["id","section_index","parent_section_id","heading_level","heading","heading_truncated","anchor","plain_text","plain_text_truncated"]},"SectionPage":{"type":"object","properties":{"items":{"maxItems":100,"type":"array","items":{"$ref":"#/components/schemas/Section"}},"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":1,"maximum":100},"offset":{"type":"integer","minimum":0,"maximum":1000},"has_more":{"type":"boolean"}},"required":["items","total","limit","offset","has_more"]},"Infobox":{"type":"object","properties":{"infobox_index":{"type":"integer","minimum":0,"maximum":9007199254740991},"infobox_type":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}]},"display_title":{"anyOf":[{"type":"string","maxLength":4097},{"type":"null"}]},"raw_fields":{"description":"The infobox's labels and values as the wiki shows them.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"normalized_fields":{"description":"The same fields with normalised keys and typed values.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"variants":{"description":"Alternative versions of the infobox, when the wiki has switchable ones.","type":"array","items":{}},"raw_fields_withheld":{"type":"boolean"},"normalized_fields_withheld":{"type":"boolean"},"variants_withheld":{"type":"boolean"}},"required":["infobox_index","infobox_type","display_title","raw_fields","normalized_fields","variants","raw_fields_withheld","normalized_fields_withheld","variants_withheld"]},"InfoboxPage":{"type":"object","properties":{"items":{"maxItems":100,"type":"array","items":{"$ref":"#/components/schemas/Infobox"}},"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":1,"maximum":100},"offset":{"type":"integer","minimum":0,"maximum":1000},"has_more":{"type":"boolean"}},"required":["items","total","limit","offset","has_more"]},"CategorySummary":{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"title":{"type":"string","minLength":1,"maxLength":2048},"canonical_url":{"anyOf":[{"type":"string","maxLength":8192,"pattern":"^https?:\\/\\/"},{"type":"null"}]},"page_count":{"type":"integer","minimum":0,"maximum":9007199254740991},"is_hidden":{"type":"boolean"},"source_site":{"$ref":"#/components/schemas/SourceSite"},"last_seen_at":{"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|([+-]\\d{2}:\\d{2})))$"}},"required":["id","title","canonical_url","page_count","is_hidden","source_site","last_seen_at"]},"CategorySummaryPage":{"type":"object","properties":{"items":{"maxItems":100,"type":"array","items":{"$ref":"#/components/schemas/CategorySummary"}},"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":1,"maximum":100},"offset":{"type":"integer","minimum":0,"maximum":1000},"has_more":{"type":"boolean"},"next_cursor":{"anyOf":[{"type":"string","minLength":1,"maxLength":8192},{"type":"null"}]},"pagination_mode":{"type":"string","enum":["offset","cursor"]}},"required":["items","total","limit","offset","has_more","next_cursor","pagination_mode"]},"CategoryMember":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},"title":{"type":"string","minLength":1,"maxLength":2048},"slug":{"type":"string","minLength":1,"maxLength":2048},"canonical_url":{"type":"string","maxLength":8192,"pattern":"^https?:\\/\\/"},"namespace_id":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"page_type":{"type":"string","minLength":1,"maxLength":2048},"is_redirect":{"type":"boolean"},"is_disambiguation":{"type":"boolean"},"last_changed_at":{"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|([+-]\\d{2}:\\d{2})))$"},{"type":"null"}]},"entity_type_key":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}]},"game_item_id":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"sprite_url":{"anyOf":[{"type":"string","pattern":"^\\/api\\/v1\\/media\\/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"},{"type":"null"}]}},"required":["id","title","slug","canonical_url","namespace_id","page_type","is_redirect","is_disambiguation","last_changed_at","entity_type_key","game_item_id","sprite_url"]},"CategoryMemberPage":{"type":"object","properties":{"items":{"maxItems":100,"type":"array","items":{"$ref":"#/components/schemas/CategoryMember"}},"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":1,"maximum":100},"offset":{"type":"integer","minimum":0,"maximum":1000},"has_more":{"type":"boolean"},"next_cursor":{"anyOf":[{"type":"string","minLength":1,"maxLength":8192},{"type":"null"}]},"pagination_mode":{"type":"string","enum":["offset","cursor"]}},"required":["items","total","limit","offset","has_more","next_cursor","pagination_mode"]},"CategoryDetail":{"type":"object","properties":{"category":{"$ref":"#/components/schemas/CategorySummary"},"members":{"$ref":"#/components/schemas/CategoryMemberPage"}},"required":["category","members"]},"Status":{"type":"object","properties":{"status":{"type":"string","const":"ok"},"api_version":{"type":"string","const":"1"},"checked_at":{"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|([+-]\\d{2}:\\d{2})))$"},"source":{"$ref":"#/components/schemas/SourceSite"},"documentation_url":{"type":"string","format":"uri"},"openapi_url":{"type":"string","format":"uri"}},"required":["status","api_version","checked_at","source","documentation_url","openapi_url"]},"Error":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","pattern":"^[a-z_]{1,64}$"},"message":{"type":"string","maxLength":500},"detail":{"description":"Extra structure for some codes: the failing parameters of a 422, the removed page of a 410."},"request_id":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}]}},"required":["code","message","detail","request_id"]}},"required":["error"]},"MapPins":{"type":"object","properties":{"page":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},"title":{"type":"string","minLength":1,"maxLength":300},"slug":{"type":"string","minLength":1,"maxLength":300},"page_type":{"type":"string","minLength":1,"maxLength":40},"source_site":{"type":"string","const":"osrs_wiki"}},"required":["id","title","slug","page_type","source_site"]},"revision":{"anyOf":[{"type":"object","properties":{"version_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},"source_revision_id":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"source_revision_timestamp":{"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|([+-]\\d{2}:\\d{2})))$"},{"type":"null"}]}},"required":["version_id","source_revision_id","source_revision_timestamp"]},{"type":"null"}]},"pin_count":{"type":"integer","minimum":0,"maximum":9007199254740991},"pins":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"x":{"type":"integer","minimum":0,"maximum":16383},"y":{"type":"integer","minimum":0,"maximum":16383},"plane":{"type":"integer","minimum":0,"maximum":3},"map_id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"label":{"type":"string","minLength":1,"maxLength":120},"source":{"type":"string","enum":["map_data","maplink"]},"kind":{"type":"string","enum":["point","area","path"]},"bounds":{"anyOf":[{"type":"object","properties":{"min_x":{"type":"integer","minimum":0,"maximum":16383},"min_y":{"type":"integer","minimum":0,"maximum":16383},"max_x":{"type":"integer","minimum":0,"maximum":16383},"max_y":{"type":"integer","minimum":0,"maximum":16383}},"required":["min_x","min_y","max_x","max_y"]},{"type":"null"}]},"section":{"anyOf":[{"type":"string","minLength":1,"maxLength":120},{"type":"null"}]},"detail":{"anyOf":[{"type":"string","minLength":1,"maxLength":200},{"type":"null"}]}},"required":["x","y","plane","map_id","label","source","kind","bounds","section","detail"]}},"truncated":{"type":"boolean"}},"required":["page","revision","pin_count","pins","truncated"]}},"responses":{"Error404":{"description":"No such record, or no such route.","headers":{"cache-control":{"description":"Always `no-store`.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Error410":{"description":"The page was removed at the source. `error.detail` describes what it was.","headers":{"cache-control":{"description":"Always `no-store`.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Error415":{"description":"The file is not a raster image, so it is not served.","headers":{"cache-control":{"description":"Always `no-store`.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Error422":{"description":"A parameter failed validation. `error.detail` lists which.","headers":{"cache-control":{"description":"Always `no-store`.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Error429":{"description":"Too many requests from this address. Wait the `Retry-After` seconds.","headers":{"cache-control":{"description":"Always `no-store`.","schema":{"type":"string"}},"retry-after":{"description":"Seconds to wait, when known.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Error502":{"description":"The API answered something this contract does not allow, so it was withheld.","headers":{"cache-control":{"description":"Always `no-store`.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Error503":{"description":"The API is unavailable. Retry later; honour `Retry-After` when it is sent.","headers":{"cache-control":{"description":"Always `no-store`.","schema":{"type":"string"}},"retry-after":{"description":"Seconds to wait, when known.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}