User Manual

Assets - Create asset

Route URL

POST https://playcanvas.com/api/assets

Description

Create a new asset.

This endpoint currently only supports creating `script`, `html`, `css`, `text`, `shader` and `json` type assets.

Unlike other REST API endpoints. The Create Asset endpoint expects data to be sent in multipart/form-data

Example

curl -H "Authorization: Bearer {accessToken}" -X POST -F 'name={name}' -F 'projectId={projectId}' -F 'parent={parent}' -F 'preload={preload}' -F 'pow2={pow2}' -F 'file=@./script.js' "https://playcanvas.com/api/assets"

HTTP Request

POST https://playcanvas.com/api/assets
Authorization: Bearer {accessToken}
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryTdsfsfT

------WebKitFormBoundaryTdsfsfT
Content-Disposition: form-data; name="projectId"

{projectId}
------WebKitFormBoundaryTdsfsfT
Content-Disposition: form-data; name="branchId"

{branchId}
------WebKitFormBoundaryTdsfsfT
Content-Disposition: form-data; name="parent"

{parent}
------WebKitFormBoundaryTdsfsfT
Content-Disposition: form-data; name="preload"

{preload}
------WebKitFormBoundaryTdsfsfT
Content-Disposition: form-data; name=""; filename="script.js"
Content-Type: application/javascript

{fileContent}
------WebKitFormBoundaryTdsfsfT--

Parameters

name: string

Name of the asset

projectId: number

Project id to add the asset to

branchId: string

The id of the branch

parent [optional]: number

Parent asset's id

preload [optional]: boolean

Preload the asset (true | false)

file [optional]: file

Data to store as the asset file.

pow2 [optional]: boolean

Only used for textures and defaults to false. Resize the texture to power of two dimensions (true | false)

Response Schema

Status: 201
{
    "id": int,
    "modifiedAt": date,
    "createdAt": date,
    "state": "ready" | "processing" | "error",
    "name": string,
    "type": string,
    "scope":{
        "type": string,
        "id": int
    },
    "source": bool,
    "sourceId": bool,
    "tags": list of strings,
    "preload": bool,
    "data": {
        ... asset data
    },
    "file": {
        "hash": string,
        "filename": string,
        "size": int,
        "url": string
    },
    "parent": int
}

Errors

401

Unauthorized

403

Forbidden

404

Project not found

429

Too many requests

Rate Limiting

This route uses an assets rate limit.