---
title: "Open the upload of a project asset"
method: POST
path: "/projects/{projectId}/assets"
tags: ["Projects"]
---

# Open the upload of a project asset

`POST /projects/{projectId}/assets`

## Request

- Base URL: `https://api.atako.ai`
- URL: `https://api.atako.ai/projects/{projectId}/assets`
- Auth: HTTP bearer

Creates the node in the project folder and returns a signed upload URL. Send the bytes there, then finalize with `POST /client/files/{nodeId}/complete-upload`. Participants and project managers only.

## Path parameters

- `projectId` string, uuid, required

## Request body

- object
  - `name` string, required
  - `fileSize` integer

## Response `201`

- object
  - `asset` object, required
    - `id` string, uuid, required
    - `name` string, required
    - `mimeType` string, nullable, required
    - `fileSize` integer, nullable, required
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
    - `authorName` string, nullable, required
    - `isMine` boolean, required
    - `canManage` boolean, required: Rename / delete: the author or whoever manages the project.
  - `upload` object, required
    - `signedUrl` string, required
    - `storagePath` string, required
    - `token` string, required

## Other responses

- `400`: Validation error or malformed id.
- `401`: Missing, malformed, or invalid bearer token / API key, or revoked session (SESSION_REVOKED).
- `403`: `NOT_A_PARTICIPANT`: neither a participant nor a manager of the project.
- `404`: Not found, or the caller is not authorized to access this resource.
- `413`: `FILE_TOO_LARGE`: the declared size exceeds the upload limit.
- `502`: Storage could not sign the upload.

---

[API](https://skmtc.dev/atako/apis/atako-api.md) · [All operations](https://skmtc.dev/atako/apis/atako-api/llms.txt) · [OpenAPI document](https://skmtc.dev/atako/apis/atako-api/revisions/aa555c56fbd7?raw)
