{"openapi":"3.1.0","info":{"title":"HyAssets API","description":"\nA modern, public **content delivery network and REST API for Hytale item assets**.\n\n* Browse the full item catalog with search, category filters, sorting and pagination.\n* Every item exposes an absolute **`cdn_url`** (full image) and **`thumb_url`** (WebP thumbnail),\n  served from the edge CDN with long-lived immutable caching and permissive CORS.\n* No authentication required — all endpoints are read-only.\n\nBase path for all endpoints: **`/api/v1`**.\n","contact":{"name":"HyAssets — Hytale Item Asset CDN"},"license":{"name":"Hytale assets © Hypixel Studios"},"version":"1.1.0"},"paths":{"/api/v1/players/{identifier}":{"get":{"tags":["players"],"summary":"Look up a player by username or UUID","operationId":"get_player_api_v1_players__identifier__get","parameters":[{"name":"identifier","in":"path","required":true,"schema":{"type":"string","title":"Identifier"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Player"}}}},"404":{"description":"No Hytale player with that name/UUID"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/players/{identifier}/render/{view}":{"get":{"tags":["players"],"summary":"Render a player's skin (avatar | bust | body) on our own server","operationId":"render_player_api_v1_players__identifier__render__view__get","parameters":[{"name":"identifier","in":"path","required":true,"schema":{"type":"string","title":"Identifier"}},{"name":"view","in":"path","required":true,"schema":{"type":"string","title":"View"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":1024,"minimum":64,"description":"Output size in px (square for avatar/bust).","default":512,"title":"Size"},"description":"Output size in px (square for avatar/bust)."},{"name":"rotation","in":"query","required":false,"schema":{"type":"number","maximum":180,"minimum":-180,"description":"Model rotation in degrees.","default":0,"title":"Rotation"},"description":"Model rotation in degrees."}],"responses":{"200":{"description":"Successful Response","content":{"image/png":{}}},"404":{"description":"Player/view not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/cosmetics/slots":{"get":{"tags":["cosmetics"],"summary":"Cosmetic slots with counts","operationId":"slots_api_v1_cosmetics_slots_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CosmeticSlotList"}}}}}}},"/api/v1/cosmetics":{"get":{"tags":["cosmetics"],"summary":"List / search cosmetics","operationId":"list_cosmetics_api_v1_cosmetics_get","parameters":[{"name":"slot","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by slot, e.g. overtop, haircut.","title":"Slot"},"description":"Filter by slot, e.g. overtop, haircut."},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Search by name.","title":"Q"},"description":"Search by name."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":48,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CosmeticList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/cosmetics/{cid}":{"get":{"tags":["cosmetics"],"summary":"Get a single cosmetic","operationId":"get_cosmetic_api_v1_cosmetics__cid__get","parameters":[{"name":"cid","in":"path","required":true,"schema":{"type":"string","title":"Cid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Cosmetic"}}}},"404":{"description":"Cosmetic not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/cosmetics/{cid}/render":{"get":{"tags":["cosmetics"],"summary":"Render a cosmetic preview on our own server","operationId":"render_cosmetic_api_v1_cosmetics__cid__render_get","parameters":[{"name":"cid","in":"path","required":true,"schema":{"type":"string","title":"Cid"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":1024,"minimum":64,"default":256,"title":"Size"}},{"name":"color","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Colour variant (defaults to the first).","title":"Color"},"description":"Colour variant (defaults to the first)."},{"name":"rotation","in":"query","required":false,"schema":{"type":"number","maximum":180,"minimum":-180,"description":"Model rotation in degrees.","default":0,"title":"Rotation"},"description":"Model rotation in degrees."}],"responses":{"200":{"description":"Successful Response","content":{"image/png":{}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mobs/categories":{"get":{"tags":["mobs"],"summary":"Mob categories with counts","operationId":"categories_api_v1_mobs_categories_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobCategoryList"}}}}}}},"/api/v1/mobs":{"get":{"tags":["mobs"],"summary":"List / search mobs","operationId":"list_mobs_api_v1_mobs_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Search by name.","title":"Q"},"description":"Search by name."},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by category.","title":"Category"},"description":"Filter by category."},{"name":"sort","in":"query","required":false,"schema":{"type":"string","default":"category","title":"Sort"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":48,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mobs/{mob_id}":{"get":{"tags":["mobs"],"summary":"Get a single mob","operationId":"get_mob_api_v1_mobs__mob_id__get","parameters":[{"name":"mob_id","in":"path","required":true,"schema":{"type":"string","title":"Mob Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mob"}}}},"404":{"description":"Mob not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/health":{"get":{"tags":["meta"],"summary":"Service health","operationId":"health_api_v1_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Health"}}}}}}},"/api/v1/stats":{"get":{"tags":["meta"],"summary":"Catalog statistics","operationId":"stats_api_v1_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Stats"}}}}}}},"/api/v1/site-config":{"get":{"tags":["meta"],"summary":"Public site configuration","description":"Public, admin-editable site settings (e.g. Matomo) consumed by the website.","operationId":"site_config_api_v1_site_config_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Site Config Api V1 Site Config Get"}}}}}}},"/api/v1/categories":{"get":{"tags":["categories"],"summary":"List categories with counts","operationId":"categories_api_v1_categories_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CategoryList"}}}}}}},"/api/v1/items":{"get":{"tags":["items"],"summary":"List / search items","operationId":"list_items_api_v1_items_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Case-insensitive search over name, official name and filename.","title":"Q"},"description":"Case-insensitive search over name, official name and filename."},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by exact category.","title":"Category"},"description":"Filter by exact category."},{"name":"quality","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by rarity, e.g. Rare, Legendary.","title":"Quality"},"description":"Filter by rarity, e.g. Rare, Legendary."},{"name":"craftable","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Only items that have (true) / lack (false) a recipe.","title":"Craftable"},"description":"Only items that have (true) / lack (false) a recipe."},{"name":"min_level","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Minimum item level.","title":"Min Level"},"description":"Minimum item level."},{"name":"max_level","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Maximum item level.","title":"Max Level"},"description":"Maximum item level."},{"name":"format","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by image format, e.g. PNG.","title":"Format"},"description":"Filter by image format, e.g. PNG."},{"name":"sort","in":"query","required":false,"schema":{"enum":["name","-name","size","-size","width","-width","recent","category","level","-level"],"type":"string","description":"Sort order.","default":"category","title":"Sort"},"description":"Sort order."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-based page number.","default":1,"title":"Page"},"description":"1-based page number."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"description":"Items per page.","default":48,"title":"Limit"},"description":"Items per page."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/random":{"get":{"tags":["items"],"summary":"Random items","operationId":"random_items_api_v1_random_get","parameters":[{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":60,"minimum":1,"default":12,"title":"Count"}},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/items/{item_id}":{"get":{"tags":["items"],"summary":"Get a single item","operationId":"get_item_api_v1_items__item_id__get","parameters":[{"name":"item_id","in":"path","required":true,"schema":{"type":"string","title":"Item Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Item"}}}},"404":{"description":"Item not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/render":{"get":{"tags":["cosmetics"],"summary":"Render a custom character (the character builder)","description":"Assemble a full character from cosmetic slot values and render it on our own server.\n\nEvery parameter is a cosmetic render string (e.g. `haircut=Morning.BrownLight`,\n`overtop=PuffyJacket.Red`). The resulting URL is shareable and cached.","operationId":"render_character_api_v1_render_get","parameters":[{"name":"bodyCharacteristic","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"Default.02","title":"Bodycharacteristic"}},{"name":"haircut","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Haircut"}},{"name":"facialHair","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Facialhair"}},{"name":"eyebrows","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Eyebrows"}},{"name":"eyes","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Eyes"}},{"name":"mouth","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mouth"}},{"name":"face","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Face"}},{"name":"ears","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ears"}},{"name":"headAccessory","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Headaccessory"}},{"name":"faceAccessory","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Faceaccessory"}},{"name":"earAccessory","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Earaccessory"}},{"name":"undertop","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Undertop"}},{"name":"overtop","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Overtop"}},{"name":"pants","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pants"}},{"name":"overpants","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Overpants"}},{"name":"shoes","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Shoes"}},{"name":"gloves","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gloves"}},{"name":"cape","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cape"}},{"name":"underwear","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Underwear"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":1024,"minimum":64,"default":512,"title":"Size"}},{"name":"rotation","in":"query","required":false,"schema":{"type":"number","maximum":180,"minimum":-180,"default":0,"title":"Rotation"}}],"responses":{"200":{"description":"Successful Response","content":{"image/png":{}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"Category":{"properties":{"name":{"type":"string","title":"Name","examples":["weapons"]},"count":{"type":"integer","title":"Count","examples":[10]},"thumb_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Thumb Url","description":"A representative thumbnail for the category."}},"type":"object","required":["name","count"],"title":"Category"},"CategoryList":{"properties":{"categories":{"items":{"$ref":"#/components/schemas/Category"},"type":"array","title":"Categories"}},"type":"object","required":["categories"],"title":"CategoryList"},"Cosmetic":{"properties":{"id":{"type":"string","title":"Id","examples":["overtop-puffyjacket"]},"slot":{"type":"string","title":"Slot","description":"Cosmetic slot (blockyserver field).","examples":["overtop"]},"slot_label":{"type":"string","title":"Slot Label","examples":["Overtops"]},"cosmetic_id":{"type":"string","title":"Cosmetic Id","description":"Raw Hytale cosmetic id.","examples":["PuffyJacket"]},"name":{"type":"string","title":"Name","examples":["Puffy Jacket"]},"view":{"type":"string","title":"View","description":"Preview framing: bust or body.","examples":["body"]},"colors":{"items":{"type":"string"},"type":"array","title":"Colors","description":"Available colour names."},"variants":{"items":{"type":"string"},"type":"array","title":"Variants"},"preview_url":{"type":"string","title":"Preview Url","description":"Self-hosted render of this cosmetic on a base character."},"api_url":{"type":"string","title":"Api Url"}},"type":"object","required":["id","slot","slot_label","cosmetic_id","name","view","preview_url","api_url"],"title":"Cosmetic"},"CosmeticList":{"properties":{"pagination":{"$ref":"#/components/schemas/Pagination"},"items":{"items":{"$ref":"#/components/schemas/Cosmetic"},"type":"array","title":"Items"}},"type":"object","required":["pagination","items"],"title":"CosmeticList"},"CosmeticSlot":{"properties":{"slot":{"type":"string","title":"Slot"},"label":{"type":"string","title":"Label"},"count":{"type":"integer","title":"Count"},"view":{"type":"string","title":"View"},"preview_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Preview Url"}},"type":"object","required":["slot","label","count","view"],"title":"CosmeticSlot"},"CosmeticSlotList":{"properties":{"slots":{"items":{"$ref":"#/components/schemas/CosmeticSlot"},"type":"array","title":"Slots"}},"type":"object","required":["slots"],"title":"CosmeticSlotList"},"DropSource":{"properties":{"source":{"type":"string","title":"Source","description":"Where the item is obtained.","examples":["Zone4 Encounters Tier3"]},"source_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Id","description":"Catalog id if the source is a known item/block."},"thumb_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Thumb Url"},"min":{"type":"integer","title":"Min","default":1},"max":{"type":"integer","title":"Max","default":1}},"type":"object","required":["source"],"title":"DropSource"},"FormatStat":{"properties":{"format":{"type":"string","title":"Format"},"count":{"type":"integer","title":"Count"}},"type":"object","required":["format","count"],"title":"FormatStat"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"Health":{"properties":{"status":{"type":"string","title":"Status","examples":["ok"]},"catalog_ready":{"type":"boolean","title":"Catalog Ready"},"total_items":{"type":"integer","title":"Total Items"},"version":{"type":"string","title":"Version"}},"type":"object","required":["status","catalog_ready","total_items","version"],"title":"Health"},"Item":{"properties":{"id":{"type":"string","title":"Id","description":"Stable unique slug identifier.","examples":["iron-sword"]},"name":{"type":"string","title":"Name","description":"Human-readable item name.","examples":["Iron Sword"]},"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name","description":"Official in-game name.","examples":["Iron Sword"]},"category":{"type":"string","title":"Category","description":"Category (derived from the asset folder).","examples":["weapons"]},"quality":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Quality","description":"Rarity (Common…Legendary), when known.","examples":["Rare"]},"item_level":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Item Level","description":"In-game item level, when known.","examples":[40]},"has_recipe":{"type":"boolean","title":"Has Recipe","description":"Whether the item has a crafting recipe.","default":false},"game_categories":{"items":{"type":"string"},"type":"array","title":"Game Categories","examples":[["Items.Weapons"]]},"filename":{"type":"string","title":"Filename","description":"Original source filename.","examples":["iron_sword.png"]},"format":{"type":"string","title":"Format","description":"Image format.","examples":["PNG"]},"width":{"type":"integer","title":"Width","examples":[256]},"height":{"type":"integer","title":"Height","examples":[256]},"aspect_ratio":{"type":"number","title":"Aspect Ratio","description":"width / height, rounded to 4 dp.","examples":[1.0]},"size_bytes":{"type":"integer","title":"Size Bytes","description":"File size of the original image in bytes.","examples":[4096]},"source":{"type":"string","title":"Source","description":"Dataset the item was ingested from.","examples":["sample"]},"tags":{"items":{"type":"string"},"type":"array","title":"Tags","examples":[["weapons"]]},"ingested_at":{"type":"string","title":"Ingested At","examples":["2026-05-31T00:50:00+00:00"]},"cdn_url":{"type":"string","title":"Cdn Url","description":"Absolute URL of the full-resolution image (cached CDN)."},"thumb_url":{"type":"string","title":"Thumb Url","description":"Absolute URL of the generated WebP thumbnail."},"api_url":{"type":"string","title":"Api Url","description":"Absolute URL of this item's API resource."},"has_drops":{"type":"boolean","title":"Has Drops","description":"Whether the item has known drop sources.","default":false},"recipe":{"anyOf":[{"$ref":"#/components/schemas/Recipe"},{"type":"null"}],"description":"Crafting recipe (populated on the single-item endpoint)."},"used_in":{"anyOf":[{"items":{"$ref":"#/components/schemas/UsedIn"},"type":"array"},{"type":"null"}],"title":"Used In","description":"Items crafted from this one (single-item endpoint)."},"drops_from":{"anyOf":[{"items":{"$ref":"#/components/schemas/DropSource"},"type":"array"},{"type":"null"}],"title":"Drops From","description":"Where the item is obtained (single-item endpoint)."}},"type":"object","required":["id","name","category","filename","format","width","height","aspect_ratio","size_bytes","source","ingested_at","cdn_url","thumb_url","api_url"],"title":"Item"},"ItemList":{"properties":{"pagination":{"$ref":"#/components/schemas/Pagination"},"items":{"items":{"$ref":"#/components/schemas/Item"},"type":"array","title":"Items"}},"type":"object","required":["pagination","items"],"title":"ItemList"},"Mob":{"properties":{"id":{"type":"string","title":"Id","examples":["bear-grizzly"]},"name":{"type":"string","title":"Name","examples":["Bear Grizzly"]},"category":{"type":"string","title":"Category","description":"NPC class (beast, undead, wildlife, …).","examples":["beast"]},"format":{"type":"string","title":"Format","examples":["PNG"]},"width":{"type":"integer","title":"Width"},"height":{"type":"integer","title":"Height"},"cdn_url":{"type":"string","title":"Cdn Url"},"thumb_url":{"type":"string","title":"Thumb Url"},"api_url":{"type":"string","title":"Api Url"}},"type":"object","required":["id","name","category","format","width","height","cdn_url","thumb_url","api_url"],"title":"Mob"},"MobCategory":{"properties":{"name":{"type":"string","title":"Name"},"count":{"type":"integer","title":"Count"},"thumb_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Thumb Url"}},"type":"object","required":["name","count"],"title":"MobCategory"},"MobCategoryList":{"properties":{"categories":{"items":{"$ref":"#/components/schemas/MobCategory"},"type":"array","title":"Categories"}},"type":"object","required":["categories"],"title":"MobCategoryList"},"MobList":{"properties":{"pagination":{"$ref":"#/components/schemas/Pagination"},"items":{"items":{"$ref":"#/components/schemas/Mob"},"type":"array","title":"Items"}},"type":"object","required":["pagination","items"],"title":"MobList"},"Pagination":{"properties":{"page":{"type":"integer","title":"Page"},"limit":{"type":"integer","title":"Limit"},"total":{"type":"integer","title":"Total"},"pages":{"type":"integer","title":"Pages"},"has_next":{"type":"boolean","title":"Has Next"},"has_prev":{"type":"boolean","title":"Has Prev"}},"type":"object","required":["page","limit","total","pages","has_next","has_prev"],"title":"Pagination"},"Player":{"properties":{"username":{"type":"string","title":"Username","examples":["Simon"]},"uuid":{"type":"string","title":"Uuid","examples":["e2ffba85-07f8-43dd-9c53-cb3e038addb7"]},"uuid_compact":{"type":"string","title":"Uuid Compact","examples":["e2ffba8507f843dd9c53cb3e038addb7"]},"renders":{"$ref":"#/components/schemas/PlayerRenders"},"skin":{"$ref":"#/components/schemas/PlayerSkin"},"render_base":{"type":"string","title":"Render Base","description":"Crafthead base URL — append /avatar|/bust|/body/{uuid}/{size}."},"source":{"type":"string","title":"Source","description":"Upstream data sources.","default":"playerdb + crafthead"}},"type":"object","required":["username","uuid","uuid_compact","renders","skin","render_base"],"title":"Player"},"PlayerRenders":{"properties":{"avatar":{"type":"string","title":"Avatar","description":"Square face/avatar render (PNG)."},"bust":{"type":"string","title":"Bust","description":"Head-and-shoulders render (PNG)."},"body":{"type":"string","title":"Body","description":"Full-body 3D render (PNG)."}},"type":"object","required":["avatar","bust","body"],"title":"PlayerRenders"},"PlayerSkin":{"properties":{"bodyCharacteristic":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bodycharacteristic"},"underwear":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Underwear"},"face":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Face"},"ears":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ears"},"mouth":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mouth"},"haircut":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Haircut"},"facialHair":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Facialhair"},"eyebrows":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Eyebrows"},"eyes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Eyes"},"pants":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pants"},"overpants":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Overpants"},"undertop":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Undertop"},"overtop":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Overtop"},"shoes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Shoes"},"headAccessory":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Headaccessory"},"faceAccessory":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Faceaccessory"},"earAccessory":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Earaccessory"},"skinFeature":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Skinfeature"},"gloves":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gloves"},"cape":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cape"}},"type":"object","title":"PlayerSkin"},"QualityStat":{"properties":{"quality":{"type":"string","title":"Quality"},"count":{"type":"integer","title":"Count"}},"type":"object","required":["quality","count"],"title":"QualityStat"},"Recipe":{"properties":{"time_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Time Seconds","examples":[4.5]},"knowledge_required":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Knowledge Required"},"inputs":{"items":{"$ref":"#/components/schemas/RecipeInput"},"type":"array","title":"Inputs"},"bench":{"items":{"$ref":"#/components/schemas/RecipeBench"},"type":"array","title":"Bench"}},"type":"object","title":"Recipe"},"RecipeBench":{"properties":{"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","examples":["Weapon_Bench"]},"categories":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Categories"},"tier":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Tier"}},"type":"object","title":"RecipeBench"},"RecipeInput":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Display name of the ingredient.","examples":["Adamantite Ingot"]},"quantity":{"type":"integer","title":"Quantity","default":1,"examples":[4]},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Catalog item id, if the ingredient is a known item."},"thumb_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Thumb Url","description":"Ingredient thumbnail (item detail only)."},"categories":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Categories","description":"Accepts any item from these categories."}},"type":"object","title":"RecipeInput"},"Stats":{"properties":{"total_items":{"type":"integer","title":"Total Items"},"total_categories":{"type":"integer","title":"Total Categories"},"total_bytes":{"type":"integer","title":"Total Bytes"},"formats":{"items":{"$ref":"#/components/schemas/FormatStat"},"type":"array","title":"Formats"},"qualities":{"items":{"$ref":"#/components/schemas/QualityStat"},"type":"array","title":"Qualities","default":[]},"with_recipe":{"type":"integer","title":"With Recipe","default":0},"sources":{"items":{"type":"string"},"type":"array","title":"Sources"},"updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["total_items","total_categories","total_bytes","formats","sources"],"title":"Stats"},"UsedIn":{"properties":{"id":{"type":"string","title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"thumb_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Thumb Url"}},"type":"object","required":["id"],"title":"UsedIn"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}},"tags":[{"name":"items","description":"Browse and look up individual item assets."},{"name":"categories","description":"Item categories and their counts."},{"name":"players","description":"Look up Hytale player skins & avatars by username."},{"name":"cosmetics","description":"Browse Hytale character cosmetics with self-hosted previews."},{"name":"mobs","description":"Browse Hytale mobs / creatures."},{"name":"meta","description":"Catalog statistics and service health."}]}