{"components":{"headers":{"EditorCacheControl":{"description":"`private, max-age=60` without a token; `private, no-store` with one. Responses vary on `Authorization` and `BLAZIUM_GAMES`.","schema":{"type":"string"}}},"parameters":{"AppID":{"description":"The game uid.","in":"header","name":"X-App-Id","required":true,"schema":{"type":"string"}},"BuildID":{"in":"header","name":"X-Build-Id","required":true,"schema":{"type":"string"}},"EditorAssetID":{"description":"Numeric package id.","in":"path","name":"id","required":true,"schema":{"pattern":"^[1-9][0-9]{0,18}$","type":"string"}},"FileUID":{"in":"path","name":"file_uid","required":true,"schema":{"maxLength":64,"type":"string"}},"GameID":{"description":"Listing uid.","in":"path","name":"game_id","required":true,"schema":{"type":"string"}}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Invalid input."},"Data":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"The result in the envelope."},"Forbidden":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not allowed: for example `4033` (this token type cannot use the route), `4031` (missing `player:read`), or adult content not enabled."},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found, or not public."},"RateLimited":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests from this address; retry later."},"Scanning":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"`4099`: the file is still being virus-scanned."},"TooLarge":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"`4130`: too many events or metadata keys."},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The token is invalid or expired."},"Unavailable":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"`5030`: the download link could not be signed."}},"schemas":{"DownloadLink":{"properties":{"checksum":{"description":"`sha256:` followed by 64 hex characters","type":"string"},"expires_at":{"format":"date-time","type":"string"},"expires_in":{"description":"Seconds","type":"integer"},"filename":{"type":"string"},"game_uid":{"type":"string"},"url":{"format":"uri","type":"string"}},"type":"object"},"EditorCategory":{"properties":{"id":{"type":"string"},"name":{"type":"string"},"type":{"description":"`0` addon, `1` project","type":"string"}},"required":["id","name","type"],"type":"object"},"EditorConfigure":{"properties":{"auth":{"properties":{"authorization_server":{"format":"uri","type":"string"},"header":{"const":"Authorization","type":"string"},"keys_url":{"format":"uri","type":"string"},"resource":{"format":"uri","type":"string"},"scope":{"const":"player:read","type":"string"},"signed_in":{"type":"boolean"},"type":{"const":"bearer","type":"string"},"username":{"description":"Present when signed in","type":"string"}},"type":"object"},"categories":{"items":{"$ref":"#/components/schemas/EditorCategory"},"type":"array"},"login_url":{"format":"uri","type":"string"}},"required":["categories","login_url","auth"],"type":"object"},"EditorDetail":{"allOf":[{"$ref":"#/components/schemas/EditorSearchItem"},{"properties":{"browse_url":{"format":"uri","type":"string"},"description":{"description":"BBCode-escaped, after a sign-in or purchase note when the caller cannot download yet","type":"string"},"download_commit":{"type":"string"},"download_hash":{"description":"SHA-256 hex of the zip","type":"string"},"download_provider":{"const":"Blazium","type":"string"},"download_url":{"format":"uri","type":"string"},"issues_url":{"type":"string"},"previews":{"items":{"properties":{"link":{"format":"uri","type":"string"},"thumbnail":{"format":"uri","type":"string"},"type":{"enum":["image","video"],"type":"string"}},"type":"object"},"type":"array"},"searchable":{"type":"string"}},"type":"object"}]},"EditorPage":{"properties":{"page":{"type":"integer"},"page_length":{"type":"integer"},"pages":{"type":"integer"},"result":{"items":{"$ref":"#/components/schemas/EditorSearchItem"},"type":"array"},"total":{"type":"integer"},"total_items":{"type":"integer"}},"required":["result","page","pages","page_length","total","total_items"],"type":"object"},"EditorSearchItem":{"properties":{"anonymous_download":{"description":"True when anyone can download it without signing in","type":"boolean"},"asset_id":{"description":"Numeric id as a string","type":"string"},"author":{"type":"string"},"author_id":{"type":"string"},"category":{"type":"string"},"category_id":{"type":"string"},"cost":{"description":"License label","type":"string"},"currency":{"type":"string"},"download_requires":{"description":"What this caller needs before downloading.","enum":["none","sign_in","purchase"],"type":"string"},"godot_version":{"type":"string"},"icon_url":{"type":"string"},"modify_date":{"description":"`YYYY-MM-DD HH:MM:SS` UTC","type":"string"},"price_cents":{"type":"integer"},"rating":{"type":"string"},"support_level":{"const":"community","type":"string"},"title":{"type":"string"},"version":{"type":"string"},"version_string":{"type":"string"}},"type":"object"},"Envelope":{"properties":{"data":{},"success":{"const":true,"type":"boolean"}},"required":["success"],"type":"object"},"Error":{"properties":{"error":{"properties":{"code":{"examples":[4040],"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"success":{"const":false,"type":"boolean"}},"required":["success","error"],"type":"object"},"ErrorWithData":{"allOf":[{"$ref":"#/components/schemas/Error"},{"properties":{"data":{"properties":{"browse_url":{"format":"uri","type":"string"},"currency":{"type":"string"},"game_uid":{"type":"string"},"price_cents":{"type":"integer"}},"type":"object"}},"type":"object"}]}},"securitySchemes":{"bearerAuth":{"description":"A player key (`bgames_play_...`, from https://blazium.games/settings/mcp) or a player OAuth\naccess token from https://mcp.blazium.games/.well-known/oauth-authorization-server/player\n(resource `https://mcp.blazium.games/player`) with the `player:read` scope.\n","scheme":"bearer","type":"http"},"blaziumKey":{"description":"The same key or token in the `BLAZIUM_GAMES` header.","in":"header","name":"BLAZIUM_GAMES","type":"apiKey"},"deployAccessToken":{"description":"The game's deploy access token.","in":"header","name":"X-Access-Token","type":"apiKey"},"deploySecretKey":{"description":"The game's deploy secret key.","in":"header","name":"X-Secret-Key","type":"apiKey"}}},"externalDocs":{"description":"Blazium Games docs","url":"https://docs.blazium.games/"},"info":{"contact":{"email":"support@blazium.games","name":"Blazium Games support","url":"https://blazium.games/support"},"description":"Blazium Games is the platform for playing and publishing games, applications, mods, and assets.\nThis document covers the public endpoints of `api.blazium.online`. Signed-in account routes\n(`/api/v1/private/...`) are used by the website and the MCP servers and are not listed here.\n\nResponses use the Blazium envelope: `{\"success\": true, \"data\": ...}` on success and\n`{\"success\": false, \"error\": {\"code\": 4040, \"message\": \"...\"}}` on failure. Some errors add a\ntop-level `data` object. The asset library is the exception: its successful answers are the raw\nobjects the Godot and Blazium editors parse, with no envelope.\n\nFile uploads (`/api/v1/tool/upload/files` and `/api/v1/tool/upload/sessions`) go to\n`uploader.blazium.online` and are described in the deploy guide.\n","summary":"Public catalog, Godot and Blazium editor asset library, anonymous downloads, game telemetry and build registration.","termsOfService":"https://blazium.games/terms-of-service","title":"Blazium Games public API","version":"1.0.0"},"openapi":"3.1.0","paths":{"/api/v1/public/asset-library/asset":{"get":{"description":"Invalid filter values answer an empty page rather than an error, because the editor shows any\nnon-200 status as a failed request.\n","operationId":"assetLibrarySearch","parameters":[{"in":"query","name":"type","schema":{"enum":["addon","project","any"],"type":"string"}},{"description":"Category id from configure; `0` or empty is every category","in":"query","name":"category","schema":{"pattern":"^[0-4]$","type":"string"}},{"description":"Plus-separated support levels. Listings are `community`, so a value without it is empty.","in":"query","name":"support","schema":{"example":"official+community","type":"string"}},{"description":"Text in the name, description or slug (up to 100 characters)","in":"query","name":"filter","schema":{"maxLength":100,"type":"string"}},{"description":"Author username","in":"query","name":"user","schema":{"pattern":"^[A-Za-z0-9][A-Za-z0-9_.-]{0,31}$","type":"string"}},{"description":"License label, such as `MIT` or `Proprietary`","in":"query","name":"cost","schema":{"maxLength":100,"type":"string"}},{"description":"Editor version; only packages whose compatibility covers it","in":"query","name":"godot_version","schema":{"example":"4.5","pattern":"^\\d{1,2}(\\.\\d{1,3}){0,3}$","type":"string"}},{"description":"Blazium extension","in":"query","name":"price","schema":{"enum":["free","paid"],"type":"string"}},{"in":"query","name":"sort","schema":{"enum":["updated","name","cost","rating"],"type":"string"}},{"in":"query","name":"reverse","schema":{"type":"string"}},{"in":"query","name":"max_results","schema":{"default":10,"maximum":500,"minimum":1,"type":"integer"}},{"in":"query","name":"page","schema":{"maximum":100000,"minimum":0,"type":"integer"}},{"description":"Used when page is absent","in":"query","name":"offset","schema":{"minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EditorPage"}}},"description":"One page of packages.","headers":{"Cache-Control":{"$ref":"#/components/headers/EditorCacheControl"}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}},"security":[{},{"bearerAuth":[]},{"blaziumKey":[]}],"summary":"Search packages","tags":["Asset library"]}},"/api/v1/public/asset-library/asset/{id}":{"get":{"operationId":"assetLibraryDetail","parameters":[{"$ref":"#/components/parameters/EditorAssetID"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EditorDetail"}}},"description":"The package.","headers":{"Cache-Control":{"$ref":"#/components/headers/EditorCacheControl"}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"security":[{},{"bearerAuth":[]},{"blaziumKey":[]}],"summary":"One package","tags":["Asset library"]}},"/api/v1/public/asset-library/asset/{id}/download":{"get":{"description":"Redirects to a signed file URL valid for five minutes. Without a token, only free packages\nwhose developer turned on anonymous downloads are served. A signed-in caller downloads free\npackages (and gets a free license the first time), packages they manage, and paid packages\nthey own. Every attempt is counted in the developer's download analytics.\n","operationId":"assetLibraryDownload","parameters":[{"$ref":"#/components/parameters/EditorAssetID"}],"responses":{"302":{"description":"Redirect to the zip.","headers":{"Cache-Control":{"schema":{"const":"no-store","type":"string"}},"Location":{"schema":{"format":"uri","type":"string"}}}},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorWithData"}}},"description":"`4001`: sign in (anonymous downloads are off) or sign in and buy (paid package). `data` has `browse_url`, and for paid packages `game_uid`, `price_cents` and `currency`."},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorWithData"}}},"description":"`4023`: the signed-in caller does not own this paid package. `data` has `game_uid`, `price_cents`, `currency` and `browse_url`."},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Scanning"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Unavailable"}},"security":[{},{"bearerAuth":[]},{"blaziumKey":[]}],"summary":"Download a package","tags":["Asset library"]}},"/api/v1/public/asset-library/configure":{"get":{"operationId":"assetLibraryConfigure","parameters":[{"description":"`project` lists the Templates category; anything else lists the addon categories.","in":"query","name":"type","schema":{"enum":["addon","project","any"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EditorConfigure"}}},"description":"Categories and the auth block.","headers":{"Cache-Control":{"$ref":"#/components/headers/EditorCacheControl"}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}},"security":[{},{"bearerAuth":[]},{"blaziumKey":[]}],"summary":"Categories and sign-in details for the editor","tags":["Asset library"]}},"/api/v1/public/crashes":{"post":{"operationId":"createCrashReport","parameters":[{"$ref":"#/components/parameters/AppID"},{"$ref":"#/components/parameters/BuildID"}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"anonymous":{"type":"boolean"},"app_name":{"type":"string"},"app_version":{"type":"string"},"arch":{"type":"string"},"engine_version":{"type":"string"},"has_dump":{"type":"boolean"},"has_log":{"type":"boolean"},"metadata":{"maxProperties":64,"type":"object"},"os":{"type":"string"},"user_message":{"type":"string"}},"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"The report id and single-use upload URLs for the dump and log (valid 24 hours, up to 64 MB each)."},"400":{"$ref":"#/components/responses/BadRequest"},"403":{"$ref":"#/components/responses/Forbidden"},"413":{"$ref":"#/components/responses/TooLarge"},"429":{"$ref":"#/components/responses/RateLimited"}},"summary":"Create a crash report","tags":["Telemetry"]}},"/api/v1/public/downloads/{file_uid}":{"get":{"description":"Works only for public, non-adult, free listings whose developer turned on anonymous\ndownloads. No license is recorded. The file uid comes from the listing's `files`.\n","operationId":"publicDownload","parameters":[{"$ref":"#/components/parameters/FileUID"}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Envelope"},{"properties":{"data":{"$ref":"#/components/schemas/DownloadLink"}}}]}}},"description":"A signed link.","headers":{"Cache-Control":{"schema":{"const":"no-store","type":"string"}}}},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorWithData"}}},"description":"`4001`: anonymous downloads are off, or the listing is paid. `data` has `browse_url` (and the price for paid listings)."},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Scanning"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Unavailable"}},"summary":"Signed link for a file, without an account","tags":["Downloads"]}},"/api/v1/public/downloads/{file_uid}/redirect":{"get":{"description":"The store page links here with `source=website`.","operationId":"publicDownloadRedirect","parameters":[{"$ref":"#/components/parameters/FileUID"},{"description":"Counted as `website` only when the Referer is a Blazium Games page.","in":"query","name":"source","schema":{"enum":["website"],"type":"string"}}],"responses":{"302":{"description":"Redirect to the file.","headers":{"Location":{"schema":{"format":"uri","type":"string"}}}},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorWithData"}}},"description":"`4001`: anonymous downloads are off, or the listing is paid."},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Scanning"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Unavailable"}},"summary":"Same check, answered with a redirect","tags":["Downloads"]}},"/api/v1/public/events":{"post":{"operationId":"sendEvents","parameters":[{"$ref":"#/components/parameters/AppID"},{"$ref":"#/components/parameters/BuildID"}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"events":{"items":{"properties":{"anonymous":{"type":"boolean"},"device_uid":{"description":"Random per install","type":"string"},"event":{"description":"Standard names: session_start, boot_ok, first_input, session_end, quit, crash","type":"string"},"ms":{"maximum":600000,"minimum":0,"type":"integer"},"seconds":{"maximum":86400,"minimum":0,"type":"integer"}},"required":["event"],"type":"object"},"maxItems":100,"type":"array"}},"required":["events"],"type":"object"}}},"required":true},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"Accepted."},"400":{"$ref":"#/components/responses/BadRequest"},"403":{"$ref":"#/components/responses/Forbidden"},"413":{"$ref":"#/components/responses/TooLarge"},"429":{"$ref":"#/components/responses/RateLimited"}},"summary":"Send game events","tags":["Telemetry"]}},"/api/v1/public/games/{game_id}":{"get":{"description":"Taxonomy, made-with fields, editions, license kind, engine compatibility, dependencies, files\nwith scan states and checksums, similar titles, the newest changelog,\n`anonymous_downloads` (whether signed-out visitors may download it), and `store_links`\n(its pages on other stores, each with `platform`, `label` and `url`).\n","operationId":"getListing","parameters":[{"$ref":"#/components/parameters/GameID"}],"responses":{"200":{"$ref":"#/components/responses/Data"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}},"summary":"One listing","tags":["Catalog"]}},"/api/v1/public/games/{game_id}/children":{"get":{"operationId":"listChildren","parameters":[{"$ref":"#/components/parameters/GameID"},{"in":"query","name":"kind","schema":{"enum":["mods","tools"],"type":"string"}},{"in":"query","name":"limit","schema":{"minimum":1,"type":"integer"}}],"responses":{"200":{"$ref":"#/components/responses/Data"},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"summary":"Mods and tools made for a game","tags":["Catalog"]}},"/api/v1/public/games/{game_id}/files/{file_uid}/provenance":{"get":{"operationId":"getFileProvenance","parameters":[{"$ref":"#/components/parameters/GameID"},{"$ref":"#/components/parameters/FileUID"}],"responses":{"200":{"$ref":"#/components/responses/Data"},"404":{"$ref":"#/components/responses/NotFound"}},"summary":"How a file was uploaded, and its scan history","tags":["Catalog"]}},"/api/v1/public/games/{game_id}/press":{"get":{"operationId":"getPressKit","parameters":[{"$ref":"#/components/parameters/GameID"}],"responses":{"200":{"$ref":"#/components/responses/Data"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"summary":"Press kit factsheet","tags":["Catalog"]}},"/api/v1/public/games/{game_id}/press.zip":{"get":{"operationId":"getPressKitZip","parameters":[{"$ref":"#/components/parameters/GameID"}],"responses":{"200":{"content":{"application/zip":{"schema":{"contentMediaType":"application/zip","type":"string"}}},"description":"The zip."},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"summary":"Press kit as a zip","tags":["Catalog"]}},"/api/v1/public/games/{game_id}/relations":{"get":{"operationId":"getRelations","parameters":[{"$ref":"#/components/parameters/GameID"}],"responses":{"200":{"$ref":"#/components/responses/Data"},"404":{"$ref":"#/components/responses/NotFound"}},"summary":"Dependencies, license kind and engine compatibility","tags":["Catalog"]}},"/api/v1/public/games/{game_id}/reviews":{"get":{"operationId":"listReviews","parameters":[{"$ref":"#/components/parameters/GameID"},{"in":"query","name":"page","schema":{"minimum":1,"type":"integer"}},{"in":"query","name":"page_size","schema":{"maximum":50,"minimum":1,"type":"integer"}}],"responses":{"200":{"$ref":"#/components/responses/Data"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}},"summary":"Player reviews with the summary","tags":["Catalog"]}},"/api/v1/public/openapi.json":{"get":{"operationId":"getOpenAPIJSON","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"OpenAPI 3.1 document."},"429":{"$ref":"#/components/responses/RateLimited"}},"summary":"This document as JSON","tags":["Service"]}},"/api/v1/public/openapi.yaml":{"get":{"operationId":"getOpenAPIYAML","responses":{"200":{"content":{"application/yaml":{"schema":{"type":"string"}}},"description":"OpenAPI 3.1 document."},"429":{"$ref":"#/components/responses/RateLimited"}},"summary":"This document as YAML","tags":["Service"]}},"/api/v1/public/search":{"get":{"description":"List filters take comma-separated values (or the parameter repeated) and match a listing\nwith any of them; every filter given must match. `exclude_*` filters leave out listings\nwith any of their values and win over the matching include. Unknown values are ignored.\n","operationId":"searchCatalog","parameters":[{"description":"Free text across name, tagline and description (alias `search`)","in":"query","name":"q","schema":{"type":"string"}},{"description":"Comma-separated: game, application, tool, mod, plugin, game_asset, dev_asset (alias `type`)","in":"query","name":"asset_type","schema":{"type":"string"}},{"description":"Comma-separated","in":"query","name":"genres","schema":{"type":"string"}},{"description":"Comma-separated; also matches community tags","in":"query","name":"tags","schema":{"type":"string"}},{"description":"Comma-separated","in":"query","name":"tone","schema":{"type":"string"}},{"description":"Comma-separated","in":"query","name":"ai_uses","schema":{"type":"string"}},{"description":"Comma-separated","in":"query","name":"session_bucket","schema":{"type":"string"}},{"description":"Comma-separated","in":"query","name":"net","schema":{"type":"string"}},{"description":"Comma-separated listing types to leave out","in":"query","name":"exclude_types","schema":{"type":"string"}},{"description":"Comma-separated genres to leave out","in":"query","name":"exclude_genres","schema":{"type":"string"}},{"description":"Comma-separated tones to leave out","in":"query","name":"exclude_tone","schema":{"type":"string"}},{"description":"Comma-separated tags to leave out; also checks community tags","in":"query","name":"exclude_tags","schema":{"type":"string"}},{"description":"Comma-separated content warnings to leave out","in":"query","name":"exclude_warnings","schema":{"type":"string"}},{"description":"Comma-separated AI uses to leave out","in":"query","name":"exclude_ai_uses","schema":{"type":"string"}},{"in":"query","name":"players","schema":{"minimum":1,"type":"integer"}},{"description":"Comma-separated: windows, macos, linux, android, ios, web","in":"query","name":"os","schema":{"type":"string"}},{"in":"query","name":"arch","schema":{"type":"string"}},{"in":"query","name":"engine","schema":{"type":"string"}},{"in":"query","name":"engine_version","schema":{"type":"string"}},{"in":"query","name":"renderer","schema":{"type":"string"}},{"in":"query","name":"license","schema":{"type":"string"}},{"description":"Comma-separated: human, human_agent, agent_heavy","in":"query","name":"authorship","schema":{"type":"string"}},{"description":"Anything else sorts by best match","in":"query","name":"sort","schema":{"default":"relevance","enum":["relevance","newest","updated"],"type":"string"}},{"in":"query","name":"page","schema":{"minimum":1,"type":"integer"}},{"in":"query","name":"page_size","schema":{"default":20,"maximum":50,"minimum":1,"type":"integer"}}],"responses":{"200":{"$ref":"#/components/responses/Data"},"400":{"$ref":"#/components/responses/BadRequest"},"429":{"$ref":"#/components/responses/RateLimited"}},"summary":"Search listings","tags":["Catalog"]}},"/api/v1/public/shelves/{kind}":{"get":{"operationId":"getShelf","parameters":[{"in":"path","name":"kind","required":true,"schema":{"enum":["tonight","unheard_of"],"type":"string"}},{"in":"query","name":"os","schema":{"enum":["windows","macos","linux","android","ios","web"],"type":"string"}}],"responses":{"200":{"$ref":"#/components/responses/Data"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"summary":"A home page shelf","tags":["Catalog"]}},"/api/v1/public/sitemap":{"get":{"operationId":"sitemap","responses":{"200":{"$ref":"#/components/responses/Data"},"429":{"$ref":"#/components/responses/RateLimited"}},"summary":"Indexable developers and listings as JSON","tags":["Catalog"]}},"/api/v1/public/store-rules":{"get":{"operationId":"storeRules","responses":{"200":{"$ref":"#/components/responses/Data"}},"summary":"Sale fee and refund terms","tags":["Catalog"]}},"/api/v1/public/tags/popular":{"get":{"operationId":"popularTags","parameters":[{"in":"query","name":"prefix","schema":{"type":"string"}},{"in":"query","name":"limit","schema":{"default":20,"maximum":50,"minimum":1,"type":"integer"}}],"responses":{"200":{"$ref":"#/components/responses/Data"},"429":{"$ref":"#/components/responses/RateLimited"}},"summary":"Most used tags on public, non-adult listings","tags":["Catalog"]}},"/api/v1/public/user/{user_id}/games/{game_id}/files":{"get":{"description":"Files on the public channel with scan states and checksums, plus `anonymous_downloads`.","operationId":"listPublicFiles","parameters":[{"description":"Username or user uid","in":"path","name":"user_id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/GameID"}],"responses":{"200":{"$ref":"#/components/responses/Data"},"404":{"$ref":"#/components/responses/NotFound"}},"summary":"A listing's downloadable files","tags":["Catalog"]}},"/api/v1/tool/upload/build":{"post":{"operationId":"registerBuild","requestBody":{"content":{"application/json":{"schema":{"properties":{"app":{"type":"string"},"app_name":{"type":"string"},"arch":{"enum":["x86_64","x86","arm64","arm32","arm","universal","wasm32","wasm"],"type":"string"},"build_type":{"type":"string"},"changelog_items":{"items":{"properties":{"description":{"type":"string"},"title":{"type":"string"}},"type":"object"},"type":"array"},"channel":{"pattern":"^[a-z0-9][a-z0-9_-]{0,31}$","type":"string"},"description":{"type":"string"},"os":{"enum":["windows","macos","linux","android","ios","web"],"type":"string"},"title":{"type":"string"},"version":{"type":"string"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"The build, including `build_id`."},"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"The build, including `build_id`."},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"}},"security":[{"deployAccessToken":[],"deploySecretKey":[]}],"summary":"Register a build before uploading its files","tags":["Builds"]}},"/health":{"get":{"operationId":"health","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"The service is running."}},"summary":"Liveness check","tags":["Service"]}},"/ready":{"get":{"operationId":"ready","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Ready."},"503":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"A dependency is down."}},"summary":"Readiness check (database reachable)","tags":["Service"]}}},"security":[{}],"servers":[{"url":"https://api.blazium.online"}],"tags":[{"description":"A Godot and Blazium editor AssetLib repository. Set the repository URL in the editor to\n`https://api.blazium.online/api/v1/public/asset-library`. Every listing is visible without a\ntoken; the optional bearer token adds the caller's own listings, licensed downloads, and adult\nlistings when the account opted in.\n","name":"Asset library"},{"description":"Signed-out downloads of listings whose developer turned on anonymous downloads.","name":"Downloads"},{"description":"Store listings, search, shelves, and press kits.","name":"Catalog"},{"description":"Crash reports and events sent by games.","name":"Telemetry"},{"description":"Build registration with a deploy key.","name":"Builds"},{"description":"Health and this document.","name":"Service"}]}