Skip to main content

Apps - Download app

Route URL

POST https://playcanvas.com/api/apps/download

Description

This will allow you to download an app which you can self host on your own server. The request will start a download job and the job details will be returned in the response. You can poll the job by id until its status is either 'complete' or 'error'. When the job is done, its data will contain a URL to download the app package.

Use format to choose the package type. Omit it or set it to static for the standard self-hostable package, or set it to npm for a Vite-based npm project. See Downloading Projects for details on the available download formats and NPM project structure.

Example

curl -H "Authorization: Bearer {accessToken}" -H "Content-Type: application/json" -X POST -d '{"project_id": 9999999, "scenes": [9999999], "name": "My App", "format": "npm"}' "https://playcanvas.com/api/apps/download"

Parameters

NameTypeRequiredDescription
project_idnumber✔️The id of the project.
namestring✔️The name of the app. Must be less than 1000 characters.
scenesnumber[]✔️A list of scene ids to be included in the app. When you specify scenes then the first scene in the list will be used as the initial scene of the application.
branch_idstringThe id of the branch. If no id is specified the main branch will be used.
descriptionstringThe description of the app. Must be less than 10,000 characters.
versionstringThe version of the app. Can be a string up to 20 characters.
release_notesstringRelease notes for the app. Can be a string up to 10,000 characters.
scripts_concatenatebooleanSet it to true if you want scripts to be concatenated.
scripts_minifybooleanSet it to true if you want scripts to be minified. Defaults to true.
scripts_sourcemapsbooleanSet it to true if you want script sourcemaps to be generated. Defaults to false.
optimize_scene_formatbooleanSet it to true if you want scenes to be in an optimized format (see Optimize Scene Format for more information).
formatstringDownload package type: static or npm. Defaults to static. See Downloading Projects.
engine_versionstringSet it to a Engine version string (full list of releases) if a specific version is needed for the app. Defaults to the latest Editor supported major version depending on your project.

Response Schema

Status: 201 Created
{
"status": "running" | "complete" | "error",
"messages": list of strings,
"created_at": date,
"modified_at": date,
"data": {
"concatenate": boolean,
"branch_id": string,
"optimize_scene_format": boolean,
"format": "static" | "npm",
"minify": boolean,
"name": string,
"sourcemaps": boolean,
"scenes": list of int scene ids,
"engineVersion": string,
"preload_bundle": boolean,
"project_id": int,
"owner_id": int
},
"id": int
}

Errors

CodeDescription
401Unauthorized
403Forbidden
404Project not found
404Owner not found
404Scene not found
429Too many requests

Rate Limiting

This route uses a strict rate limit.