Publish a release, once the person says it's ready
A browser game or a mod Patch installs stays private until a test on the creator’s PC passed (POST …/tests; test_first or test_not_passed until then); then it goes to the cloud review and is published if nothing is flagged. Any other mod’s files are checked, then it goes to the cloud review and a staff member. Staff keys publish directly. Follow it with GET …/review.
POST
/
projects
/
{owner}
/
{slug}
/
releases
/
{version}
/
submit
Publish a release, once the person says it's ready
draft, then checking (file checks). A browser game is testing until a test on its creator's PC passes, then cloud_review, then published. A mod goes to cloud_review, then in_review (a staff member), then published. Any step can end in rejected.
What a release is, from its recipe: web_game (plays in Patch), mod, crossover_mod (a mod that needs two games), remix (plays in Patch with files from a game on the player's PC), or block (a block's live demo, a browser release with a recipe block section; never a game). asset has no recipe: it's a release of the asset library's converted files, which only the library makes, and never a game.
What the release can do on the player's PC, worked out from its recipe and files: runs sandboxed in Patch, changes game files only, or runs code. Drives the consent sheet and review.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Patch","description":"Play and make games, mods, crossover mods and remixes on Patch.","colors":{"primary":"#171717","light":"#fafafa","dark":"#171717"},"api":{"playground":{"display":"interactive"},"examples":{"languages":["curl","javascript","python"]}},"navbar":{"primary":{"type":"button","label":"Open Patch","href":"https://patch.gg"}},"footer":{"socials":{"website":"https://patch.gg"}},"fonts":{"family":"Geist"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"patch-b3bbfc3b","hasAudioNarration":false,"actualSubdomain":"patch-b3bbfc3b","customDomains":["docs.patch.gg"],"gitSource":{"type":"github","owner":"patch-gg","repo":"patch","deployBranch":"production","contentDirectory":"product/docs","isPrivate":true,"mountPath":"","label":"","_id":"6add1837da589734fa3cbbbc"},"chroma":{"latestBuiltDeploymentHistoryId":"6ae43577492eee9d6caa81ca","collectionId":"2fb4b32b-4886-4aba-925c-cdd4cddd585b","liveDeploymentHistoryId":"6ae43577492eee9d6caa81ca","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae66f7d326d1b59f41eeb92","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"API reference","count":80},{"language":"default","tag":"Endpoints","count":79},{"language":"default","tag":"Review","count":13},{"language":"default","tag":"Releases","count":12},{"language":"default","tag":"Account","count":11},{"language":"default","tag":"People","count":8},{"language":"default","tag":"Docs","count":6},{"language":"default","tag":"Assets","count":6},{"language":"default","tag":"Projects","count":6},{"language":"default","tag":"Chats","count":5}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[],"page":{"pagePath":"api-reference/releases/publish-a-release-once-the-person-says-its-ready","slug":"/api-reference/releases/publish-a-release-once-the-person-says-its-ready","pageMetadata":{"title":"Publish a release, once the person says it's ready","description":"A browser game or a mod Patch installs stays private until a test on the creator's PC passed (POST .../tests; test_first or test_not_passed until then); then it goes to the cloud review and is published if nothing is flagged. Any other mod's files are checked, then it goes to the cloud review and a staff member. Staff keys publish directly. Follow it with GET .../review.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /projects/{owner}/{slug}/releases/{version}/submit","href":"/api-reference/releases/publish-a-release-once-the-person-says-its-ready","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"A browser game or a mod Patch installs stays private until a test on the creator’s PC passed (POST …/tests; test_first or test_not_passed until then); then it goes to the cloud review and is published if nothing is flagged. Any other mod’s files are checked, then it goes to the cloud review and a staff member. Staff keys publish directly. Follow it with GET …/review.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Publish a release, once the person says it's ready","description":"A browser game or a mod Patch installs stays private until a test on the creator's PC passed (POST .../tests; test_first or test_not_passed until then); then it goes to the cloud review and is published if nothing is flagged. Any other mod's files are checked, then it goes to the cloud review and a staff member. Staff keys publish directly. Follow it with GET .../review.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /projects/{owner}/{slug}/releases/{version}/submit","href":"/api-reference/releases/publish-a-release-once-the-person-says-its-ready","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Releases"],"summary":"Publish a release, once the person says it's ready","description":"A browser game or a mod Patch installs stays private until a test on the creator's PC passed (POST .../tests; test_first or test_not_passed until then); then it goes to the cloud review and is published if nothing is flagged. Any other mod's files are checked, then it goes to the cloud review and a staff member. Staff keys publish directly. Follow it with GET .../review.","security":["94a78bf1-ebdc-49af-b7ec-c7f522d16240"],"parameters":["102ed2a3-7c66-442c-875e-cfd6ca140e8e","a9aa071b-88da-4a32-ab73-a4dbfe2ea834","00529c74-9490-4004-bd39-a907ac0b051b"],"responses":{"200":"9f9d1975-4322-49f8-b0a1-198b4ae6eaea","308":"9144e39f-b73b-4207-9cc9-6d44e9cc0fc8","400":"2009290c-4004-4da1-b49d-669cfc51a59a","401":"9224c87a-ac29-43e9-9ebb-681b05afeb7f","403":"7afd2817-6654-4113-8330-bbb994027073","404":"10e22c92-eb38-47d5-9236-1ace6cbf8904"},"method":"post","type":"path","servers":["3cfc12d4-242d-4ff1-9d52-a9e0dc9d7fc9"],"path":"/projects/{owner}/{slug}/releases/{version}/submit","baseUrlOptions":["https://patch.gg/api/v1"],"title":"Publish a release, once the person says it's ready","codeSamples":[],"requestExampleLanguages":["bash","javascript","python"],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"102ed2a3-7c66-442c-875e-cfd6ca140e8e":{"schema":{"type":"string","example":"patch","isRequired":true,"uniqueKey":"","typeLabel":"string"},"required":true,"name":"owner","in":"path"},"a9aa071b-88da-4a32-ab73-a4dbfe2ea834":{"schema":{"type":"string","example":"demo-mod","isRequired":true,"uniqueKey":"","typeLabel":"string"},"required":true,"name":"slug","in":"path"},"00529c74-9490-4004-bd39-a907ac0b051b":{"schema":{"type":"string","example":"0.1.0","isRequired":true,"uniqueKey":"","typeLabel":"string"},"required":true,"name":"version","in":"path"}},"responses":{"9f9d1975-4322-49f8-b0a1-198b4ae6eaea":{"description":"The submitted release","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"id","typeLabel":"string\u003cuuid>"},"project":{"type":"string","isRequired":true,"uniqueKey":"project","typeLabel":"string"},"version":{"type":"string","isRequired":true,"uniqueKey":"version","typeLabel":"string"},"channel":{"type":"string","enum":["dev","private","unlisted","public"],"isRequired":true,"uniqueKey":"channel","typeLabel":"enum\u003cstring>"},"status":{"type":"string","enum":["draft","checking","testing","cloud_review","in_review","published","rejected","yanked","quarantined"],"description":"draft, then checking (file checks). A browser game is testing until a test on its creator's PC passes, then cloud_review, then published. A mod goes to cloud_review, then in_review (a staff member), then published. Any step can end in rejected.","isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"kind":{"type":"string","enum":["web_game","mod","crossover_mod","remix","block","asset"],"description":"What a release is, from its recipe: web_game (plays in Patch), mod, crossover_mod (a mod that needs two games), remix (plays in Patch with files from a game on the player's PC), or block (a block's live demo, a browser release with a recipe block section; never a game). asset has no recipe: it's a release of the asset library's converted files, which only the library makes, and never a game.","isRequired":true,"uniqueKey":"kind","typeLabel":"enum\u003cstring>"},"trust_tier":{"type":"string","enum":["sandboxed","game_files_only","runs_code"],"description":"What the release can do on the player's PC, worked out from its recipe and files: runs sandboxed in Patch, changes game files only, or runs code. Drives the consent sheet and review.","isRequired":true,"uniqueKey":"trust_tier","typeLabel":"enum\u003cstring>"},"changelog":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"changelog.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"changelog.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"changelog","typeLabel":"string | null"},"recipe":{"oneOf":[{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"recipe.oneOf.0.additionalProperties","typeLabel":"any"},"description":"The release's recipe with its defaults filled in (https://patch.gg/schemas/recipe/v1.json). Null for releases made before recipes.","isRequired":true,"uniqueKey":"recipe.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":{"oneOf":[{}],"uniqueKey":"recipe.oneOf.1.additionalProperties","typeLabel":"any"},"description":"The release's recipe with its defaults filled in (https://patch.gg/schemas/recipe/v1.json). Null for releases made before recipes.","isRequired":true,"uniqueKey":"recipe.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"recipe","typeLabel":"object | null"},"manifest":{"oneOf":[{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"manifest.oneOf.0.additionalProperties","typeLabel":"any"},"description":"Deprecated: the patch.json of releases made before recipes, else null.","isRequired":true,"uniqueKey":"manifest.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":{"oneOf":[{}],"uniqueKey":"manifest.oneOf.1.additionalProperties","typeLabel":"any"},"description":"Deprecated: the patch.json of releases made before recipes, else null.","isRequired":true,"uniqueKey":"manifest.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"manifest","typeLabel":"object | null"},"created_at":{"type":"string","isRequired":true,"uniqueKey":"created_at","typeLabel":"string"},"submitted_at":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"submitted_at.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"submitted_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"submitted_at","typeLabel":"string | null"},"published_at":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"published_at.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"published_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"published_at","typeLabel":"string | null"}},"required":["id","project","version","channel","status","kind","trust_tier","changelog","recipe","manifest","created_at","submitted_at","published_at"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","project":"\u003cstring>","version":"\u003cstring>","channel":"dev","status":"draft","kind":"web_game","trust_tier":"sandboxed","changelog":"\u003cstring>","recipe":{},"manifest":{},"created_at":"\u003cstring>","submitted_at":"\u003cstring>","published_at":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"9144e39f-b73b-4207-9cc9-6d44e9cc0fc8":{"description":"Renamed; follow the Location header","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"2009290c-4004-4da1-b49d-669cfc51a59a":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","example":"version_exists","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"oneOf":[{}],"uniqueKey":"error.details","typeLabel":"any"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"version_exists","message":"\u003cstring>","details":"\u003cunknown>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"9224c87a-ac29-43e9-9ebb-681b05afeb7f":{"description":"Not signed in","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","example":"version_exists","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"oneOf":[{}],"uniqueKey":"error.details","typeLabel":"any"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"version_exists","message":"\u003cstring>","details":"\u003cunknown>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"7afd2817-6654-4113-8330-bbb994027073":{"description":"Not allowed","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","example":"version_exists","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"oneOf":[{}],"uniqueKey":"error.details","typeLabel":"any"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"version_exists","message":"\u003cstring>","details":"\u003cunknown>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"10e22c92-eb38-47d5-9236-1ace6cbf8904":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","example":"version_exists","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"oneOf":[{}],"uniqueKey":"error.details","typeLabel":"any"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"version_exists","message":"\u003cstring>","details":"\u003cunknown>"}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"94a78bf1-ebdc-49af-b7ec-c7f522d16240":{"bearer":{"type":"http","scheme":"bearer","description":"An API key (pch_...) or the token from pch login.","scopes":[],"schemeName":"bearer"}}},"servers":{"3cfc12d4-242d-4ff1-9d52-a9e0dc9d7fc9":{"url":"https://patch.gg/api/v1"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"An API key (pch_...) or the token from pch login.","scopes":[],"schemeName":"bearer"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"An API key (pch_...) or the token from pch login.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearer","name":"Authorization"}],"title":"bearer"}]},"originalFileLocation":"api-reference/openapi.json"},"subdomain":"patch-b3bbfc3b","siteName":"Patch","title":"Publish a release, once the person says it's ready - Patch","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-31T22:45:23.342Z","originalFileLocation":"api-reference/releases/publish-a-release-once-the-person-says-its-ready.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"A browser game or a mod Patch installs stays private until a test on the creator\u0026#x27;s PC passed (POST .../tests; test_first or test_not_passed until then); then it goes to the cloud review and is published if nothing is flagged. Any other mod\u0026#x27;s files are checked, then it goes to the cloud review and a staff member. Staff keys publish directly. Follow it with GET .../review.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Patch\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/patch-b3bbfc3b/_generated/favicon/apple-touch-icon.png?v=3\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/patch-b3bbfc3b/_generated/favicon/favicon-32x32.png?v=3\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/patch-b3bbfc3b/_generated/favicon/favicon-16x16.png?v=3\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/patch-b3bbfc3b/_generated/favicon/favicon.ico?v=3\">\u003cmeta data-mint-head property=\"og:title\" content=\"Publish a release, once the person says it\u0026#x27;s ready - Patch\">\u003cmeta data-mint-head property=\"og:description\" content=\"A browser game or a mod Patch installs stays private until a test on the creator\u0026#x27;s PC passed (POST .../tests; test_first or test_not_passed until then); then it goes to the cloud review and is published if nothing is flagged. Any other mod\u0026#x27;s files are checked, then it goes to the cloud review and a staff member. Staff keys publish directly. Follow it with GET .../review.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Patch\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.patch.gg/api-reference/releases/publish-a-release-once-the-person-says-its-ready\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://patch-b3bbfc3b.mintlify.app/_mintlify/api/og/v2?division=Releases\u0026amp;title=Publish+a+release%2C+once+the+person+says+it%27s+ready\u0026amp;description=A+browser+game+or+a+mod+Patch+installs+stays+private+until+a+test+on+the+creator%27s+PC+passed+%28POST+...%2Ftests%3B+test_first+or+test_not_passed+until+then%29%3B+then+it\u0026amp;theme=0617332694ee0059ee495bfd\u0026amp;signature=e6297cbb2a545b8d77ba21af259844240fe0776eae2558e130a8b8ec25366ec7\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Publish a release, once the person says it\u0026#x27;s ready - Patch\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"A browser game or a mod Patch installs stays private until a test on the creator\u0026#x27;s PC passed (POST .../tests; test_first or test_not_passed until then); then it goes to the cloud review and is published if nothing is flagged. Any other mod\u0026#x27;s files are checked, then it goes to the cloud review and a staff member. Staff keys publish directly. Follow it with GET .../review.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://patch-b3bbfc3b.mintlify.app/_mintlify/api/og/v2?division=Releases\u0026amp;title=Publish+a+release%2C+once+the+person+says+it%27s+ready\u0026amp;description=A+browser+game+or+a+mod+Patch+installs+stays+private+until+a+test+on+the+creator%27s+PC+passed+%28POST+...%2Ftests%3B+test_first+or+test_not_passed+until+then%29%3B+then+it\u0026amp;theme=0617332694ee0059ee495bfd\u0026amp;signature=e6297cbb2a545b8d77ba21af259844240fe0776eae2558e130a8b8ec25366ec7\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"https://mintlify.s3.us-west-1.amazonaws.com/patch-b3bbfc3b/_generated/favicon/browserconfig.xml?v=3\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Patch\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#171717\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.patch.gg/api-reference/releases/publish-a-release-once-the-person-says-its-ready\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/releases/publish-a-release-once-the-person-says-its-ready.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.patch.gg/#organization\",\"name\":\"Patch\",\"url\":\"https://docs.patch.gg\"},{\"@type\":\"WebSite\",\"@id\":\"https://docs.patch.gg#website\",\"name\":\"Patch\",\"url\":\"https://docs.patch.gg\",\"publisher\":{\"@id\":\"https://docs.patch.gg/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.patch.gg/api-reference/releases/publish-a-release-once-the-person-says-its-ready#webpage\",\"url\":\"https://docs.patch.gg/api-reference/releases/publish-a-release-once-the-person-says-its-ready\",\"name\":\"Publish a release, once the person says it's ready\",\"description\":\"A browser game or a mod Patch installs stays private until a test on the creator's PC passed (POST .../tests; test_first or test_not_passed until then); then it goes to the cloud review and is published if nothing is flagged. Any other mod's files are checked, then it goes to the cloud review and a staff member. Staff keys publish directly. Follow it with GET .../review.\",\"dateModified\":\"2026-10-31T22:45:23.342Z\",\"isPartOf\":{\"@id\":\"https://docs.patch.gg#website\"},\"breadcrumb\":{\"@id\":\"https://docs.patch.gg/api-reference/releases/publish-a-release-once-the-person-says-its-ready#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.patch.gg/api-reference/releases/publish-a-release-once-the-person-says-its-ready#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://docs.patch.gg/api-reference/meta/whether-the-api-and-its-database-are-up\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Releases\",\"item\":\"https://docs.patch.gg/api-reference/releases/releases-you-can-see-newest-first\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Publish a release, once the person says it's ready\",\"item\":\"https://docs.patch.gg/api-reference/releases/publish-a-release-once-the-person-says-its-ready\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.patch.gg/api-reference/releases/publish-a-release-once-the-person-says-its-ready#apireference\",\"headline\":\"Publish a release, once the person says it's ready\",\"name\":\"Publish a release, once the person says it's ready\",\"description\":\"A browser game or a mod Patch installs stays private until a test on the creator's PC passed (POST .../tests; test_first or test_not_passed until then); then it goes to the cloud review and is published if nothing is flagged. Any other mod's files are checked, then it goes to the cloud review and a staff member. Staff keys publish directly. Follow it with GET .../review.\",\"url\":\"https://docs.patch.gg/api-reference/releases/publish-a-release-once-the-person-says-its-ready\",\"mainEntityOfPage\":{\"@id\":\"https://docs.patch.gg/api-reference/releases/publish-a-release-once-the-person-says-its-ready#webpage\"},\"dateModified\":\"2026-10-31T22:45:23.342Z\",\"publisher\":{\"@id\":\"https://docs.patch.gg/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.patch.gg#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Patch\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Patch","nav":{"global":null,"tabs":[{"tab":"Docs","pages":[{"title":"Docs","href":""}]},{"tab":"API reference","groups":[{"group":"Overview","pages":[{"title":"API overview","href":"/api-reference/introduction"}]},{"group":"Endpoints","pages":[{"group":"Meta","pages":[{"title":"Whether the API and its database are up","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /health","href":"/api-reference/meta/whether-the-api-and-its-database-are-up"}]},{"group":"Account","pages":[{"title":"The signed-in user, their username and orgs","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /me","href":"/api-reference/account/the-signed-in-user-their-username-and-orgs"},{"title":"Change your display name, or give your birthday","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /me","href":"/api-reference/account/change-your-display-name-or-give-your-birthday"},{"title":"Choose or change your username","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /me/username","href":"/api-reference/account/choose-or-change-your-username"},{"title":"Whether a username or org name is free","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /names/{name}","href":"/api-reference/account/whether-a-username-or-org-name-is-free"},{"title":"Your API keys, newest first","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /tokens","href":"/api-reference/account/your-api-keys-newest-first"},{"title":"Create an API key for an agent or CI","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /tokens","href":"/api-reference/account/create-an-api-key-for-an-agent-or-ci"},{"title":"Revoke an API key","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /tokens/{id}","href":"/api-reference/account/revoke-an-api-key"},{"title":"Make an uploaded file your picture","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /me/picture","href":"/api-reference/account/make-an-uploaded-file-your-picture"},{"title":"Start changing your picture, and get where to upload it","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /me/picture","href":"/api-reference/account/start-changing-your-picture-and-get-where-to-upload-it"},{"title":"Remove your picture, and go back to your figure","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /me/picture","href":"/api-reference/account/remove-your-picture-and-go-back-to-your-figure"},{"title":"Your projects, drafts included, newest first","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /me/projects","href":"/api-reference/account/your-projects-drafts-included-newest-first"}]},{"group":"Host games","pages":[{"title":"Search the games mods are made for, by name","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /host-games","href":"/api-reference/host-games/search-the-games-mods-are-made-for-by-name"},{"title":"Find the host game for a store id the desktop app detected","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /host-games/lookup","href":"/api-reference/host-games/find-the-host-game-for-a-store-id-the-desktop-app-detected"},{"title":"Find the host games for many store ids at once","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /host-games/lookup","href":"/api-reference/host-games/find-the-host-games-for-many-store-ids-at-once"},{"title":"A host game with its store ids and known builds","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /host-games/{slug}","href":"/api-reference/host-games/a-host-game-with-its-store-ids-and-known-builds"}]},{"group":"Projects","pages":[{"title":"The categories, with how many public projects are in each","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /categories","href":"/api-reference/projects/the-categories-with-how-many-public-projects-are-in-each"},{"title":"Browse public projects, newest first","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /projects","href":"/api-reference/projects/browse-public-projects-newest-first"},{"title":"Create a project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /projects","href":"/api-reference/projects/create-a-project"},{"title":"A project with its host games and latest public release","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /projects/{owner}/{slug}","href":"/api-reference/projects/a-project-with-its-host-games-and-latest-public-release"},{"title":"Edit a project's listing and source settings","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /projects/{owner}/{slug}","href":"/api-reference/projects/edit-a-projects-listing-and-source-settings"},{"title":"Staff picks, in order","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /featured","href":"/api-reference/projects/staff-picks-in-order"}]},{"group":"Releases","pages":[{"title":"Releases you can see, newest first","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /projects/{owner}/{slug}/releases","href":"/api-reference/releases/releases-you-can-see-newest-first"},{"title":"Create a draft release and get upload targets","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /projects/{owner}/{slug}/releases","href":"/api-reference/releases/create-a-draft-release-and-get-upload-targets"},{"title":"A release with its recipe, files and requirements","description":null,"deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /projects/{owner}/{slug}/releases/{version}","href":"/api-reference/releases/a-release-with-its-recipe-files-and-requirements"},{"title":"Publish a release, once the person says it's ready","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /projects/{owner}/{slug}/releases/{version}/submit","href":"/api-reference/releases/publish-a-release-once-the-person-says-its-ready"},{"title":"Short-lived download links for every file","description":"A release of kind asset has its files on the asset host, so its links lead there, and a file with no address right now is left out. They're the same as its files' `url` in GET .../releases/{version}, which takes no sign-in.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /projects/{owner}/{slug}/releases/{version}/download","href":"/api-reference/releases/short-lived-download-links-for-every-file"},{"title":"Finish a multipart upload","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /uploads/{id}/complete","href":"/api-reference/releases/finish-a-multipart-upload"},{"title":"Fetch a public GitHub release's files, to make a release from them","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /imports/github","href":"/api-reference/releases/fetch-a-public-github-releases-files-to-make-a-release-from-them"},{"title":"The GitHub repository a project picks up releases from","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /projects/{owner}/{slug}/github","href":"/api-reference/releases/the-github-repository-a-project-picks-up-releases-from"},{"title":"Pick up a GitHub repository's new releases by themselves","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /projects/{owner}/{slug}/github","href":"/api-reference/releases/pick-up-a-github-repositorys-new-releases-by-themselves"},{"title":"Stop picking up a GitHub repository's releases","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /projects/{owner}/{slug}/github","href":"/api-reference/releases/stop-picking-up-a-github-repositorys-releases"},{"title":"Check now: pick up the repository's latest release if it's new","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /projects/{owner}/{slug}/github/check","href":"/api-reference/releases/check-now:-pick-up-the-repositorys-latest-release-if-its-new"},{"title":"Check a recipe, and optionally the files it goes with","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /recipes/validate","href":"/api-reference/releases/check-a-recipe-and-optionally-the-files-it-goes-with"}]},{"group":"Media","pages":[{"title":"A project's cover, screenshots and clips, in order","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /projects/{owner}/{slug}/media","href":"/api-reference/media/a-projects-cover-screenshots-and-clips-in-order"},{"title":"Add a cover, screenshot or clip, and get where to upload it","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /projects/{owner}/{slug}/media","href":"/api-reference/media/add-a-cover-screenshot-or-clip-and-get-where-to-upload-it"},{"title":"Confirm an upload, making the media ready","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /projects/{owner}/{slug}/media/{id}/complete","href":"/api-reference/media/confirm-an-upload-making-the-media-ready"},{"title":"Reorder a project's media","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /projects/{owner}/{slug}/media/order","href":"/api-reference/media/reorder-a-projects-media"},{"title":"Remove media from the listing","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /projects/{owner}/{slug}/media/{id}","href":"/api-reference/media/remove-media-from-the-listing"}]},{"group":"Library","pages":[{"title":"Your library: browser games you've played or added","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /me/library","href":"/api-reference/library/your-library:-browser-games-youve-played-or-added"},{"title":"Add a game to your library, or note that you played it","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /me/library","href":"/api-reference/library/add-a-game-to-your-library-or-note-that-you-played-it"},{"title":"Remove a game from your library","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /me/library/{owner}/{slug}","href":"/api-reference/library/remove-a-game-from-your-library"}]},{"group":"People","pages":[{"title":"A person's profile: counts, and how you know them","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /people/{username}","href":"/api-reference/people/a-persons-profile:-counts-and-how-you-know-them"},{"title":"Follow someone","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /people/{username}/follow","href":"/api-reference/people/follow-someone"},{"title":"Stop following someone","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /people/{username}/follow","href":"/api-reference/people/stop-following-someone"},{"title":"The people you follow, most recently followed first","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /me/following","href":"/api-reference/people/the-people-you-follow-most-recently-followed-first"},{"title":"Your friends, and the friend requests waiting on either side","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /me/friends","href":"/api-reference/people/your-friends-and-the-friend-requests-waiting-on-either-side"},{"title":"Ask someone to be friends, or accept their request","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /me/friends","href":"/api-reference/people/ask-someone-to-be-friends-or-accept-their-request"},{"title":"Unfriend, decline their request or cancel yours","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /me/friends/{username}","href":"/api-reference/people/unfriend-decline-their-request-or-cancel-yours"},{"title":"Friend requests, accepted requests and new followers, newest first","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /me/notifications","href":"/api-reference/people/friend-requests-accepted-requests-and-new-followers-newest-first"}]},{"group":"Chats","pages":[{"title":"Your chat starts, newest first","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /me/chat-starts","href":"/api-reference/chats/your-chat-starts-newest-first"},{"title":"Record that you started a chat","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /me/chat-starts","href":"/api-reference/chats/record-that-you-started-a-chat"},{"title":"Link one of your chat starts to the project it became","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /me/chat-starts/{id}","href":"/api-reference/chats/link-one-of-your-chat-starts-to-the-project-it-became"},{"title":"The games people mash up, most started first","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /mashups","href":"/api-reference/chats/the-games-people-mash-up-most-started-first"},{"title":"Keep a chat turn's agent trace","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /me/agent-traces","href":"/api-reference/chats/keep-a-chat-turns-agent-trace"}]},{"group":"Play","pages":[{"title":"Start a play session","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /me/play-sessions","href":"/api-reference/play/start-a-play-session"},{"title":"Record a minute of a play session","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /me/play-sessions/{id}/heartbeat","href":"/api-reference/play/record-a-minute-of-a-play-session"},{"title":"End a play session","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /me/play-sessions/{id}/end","href":"/api-reference/play/end-a-play-session"}]},{"group":"Insights","pages":[{"title":"A project's insights","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /projects/{owner}/{slug}/insights","href":"/api-reference/insights/a-projects-insights"},{"title":"The key numbers of your projects","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /me/insights","href":"/api-reference/insights/the-key-numbers-of-your-projects"}]},{"group":"Review","pages":[{"title":"Where a release is in its review: status, checks, findings and test","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /projects/{owner}/{slug}/releases/{version}/review","href":"/api-reference/review/where-a-release-is-in-its-review:-status-checks-findings-and-test"},{"title":"Test a release on your PC","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /projects/{owner}/{slug}/releases/{version}/tests","href":"/api-reference/review/test-a-release-on-your-pc"},{"title":"A test: its state, each run's checks, and its review","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /tests/{id}","href":"/api-reference/review/a-test:-its-state-each-runs-checks-and-its-review"},{"title":"A test's contact sheets: a frame every 2 seconds, each labelled with its run time","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /tests/{id}/footage","href":"/api-reference/review/a-tests-contact-sheets:-a-frame-every-2-seconds-each-labelled-with-its-run-time"},{"title":"Send your review of a test's footage","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /tests/{id}/review","href":"/api-reference/review/send-your-review-of-a-tests-footage"},{"title":"Cancel a test that hasn't been decided","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /tests/{id}/cancel","href":"/api-reference/review/cancel-a-test-that-hasnt-been-decided"},{"title":"Tests waiting for one of your PCs to take them on","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /me/tests","href":"/api-reference/review/tests-waiting-for-one-of-your-pcs-to-take-them-on"},{"title":"Take a test on from this PC, and get what to download and play","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /tests/{id}/claim","href":"/api-reference/review/take-a-test-on-from-this-pc-and-get-what-to-download-and-play"},{"title":"Say where a running test is","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /tests/{id}/progress","href":"/api-reference/review/say-where-a-running-test-is"},{"title":"Report one run: its checks, the game's own checks and its frames","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /tests/{id}/runs","href":"/api-reference/review/report-one-run:-its-checks-the-games-own-checks-and-its-frames"},{"title":"Add a contact sheet of a run, and get where to upload it","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /tests/{id}/sheets","href":"/api-reference/review/add-a-contact-sheet-of-a-run-and-get-where-to-upload-it"},{"title":"Hand a test in once its runs and sheets are uploaded, or say it couldn't run","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /tests/{id}/finish","href":"/api-reference/review/hand-a-test-in-once-its-runs-and-sheets-are-uploaded-or-say-it-couldnt-run"},{"title":"The cloud reviewer's verdict (Patch's reviewer only)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /cloud-reviews/{id}","href":"/api-reference/review/the-cloud-reviewers-verdict-patchs-reviewer-only"}]},{"group":"Assets","pages":[{"title":"Search the asset library","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /assets/search","href":"/api-reference/assets/search-the-asset-library"},{"title":"Fields, values, counts and ranges for a query","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /assets/facets","href":"/api-reference/assets/fields-values-counts-and-ranges-for-a-query"},{"title":"Plan adding assets to a project (the assets_add dry run)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /assets/plan","href":"/api-reference/assets/plan-adding-assets-to-a-project-the-assets_add-dry-run"},{"title":"A license's name, URL, duties and full text","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /assets/licenses/{spdx}","href":"/api-reference/assets/a-licenses-name-url-duties-and-full-text"},{"title":"The asset library's health: counts only","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /assets/status","href":"/api-reference/assets/the-asset-librarys-health:-counts-only"},{"title":"One asset: variants with file URLs, capabilities per runtime, license and credit","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /assets/{id}","href":"/api-reference/assets/one-asset:-variants-with-file-urls-capabilities-per-runtime-license-and-credit"}]}]}]}]},"basePath":"","title":"Publish a release, once the person says it's ready - Patch","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CS552b7R.js","utils-DDTCYAF2.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-De8ttokP.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-DrwRDvAh.js","snippetPresets-DtAN0nWx.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-D5rWArI6.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-O2i12wsz.js","shallow-DV8xABTt.js","getApiPlaygroundDisplay-DBZ0B5Jx.js","CodeSnippet-BVi0tPUX.js","CodeSnippets-CqASbIwY.js","Page-m07pfKpT.js","getPastedJson-DG9vsMS8.js","icon-CXzRSCr8.js","MethodPill-BdKVtEuX.js","DuplicateIcon-CZlmBrJI.js","createIcon-biFEUKPL.js","DynamicMarkdown-B54_zNBF.js","SectionHeading-DwwHK3Pt.js","axios-vUo_bRtp.js","Markdown-DfhCTwyA.js","clsx-xpJZXxdP.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BTZUMDnx.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-DqdKa2R4.js"]}