Create assets and signed upload links for a project.
Creates assets in the project's creator tree and returns signed upload links. Requires `canCreateAsset`. When a submitted file's checksum matches an asset already in the project, no bytes are transferred: the platform adds another FileSystem reference to the existing asset and reports `status: success` with `referencesExistingAsset: true` and no signed URLs. In that case the response's `name` is the EXISTING asset's name, because that is what the new reference carries — `FileSystem.resourceName` is a denormalized copy of `Asset.name`, so the submitted name never lands. The submitted name is returned as `originalName`. Correlate results with requests positionally or by your own upload id, not by `name`. Returns `uploadRequestExceedsSubscription` (400) when the request would exceed the workspace's subscribed storage.
Creates assets in the project's creator tree and returns signed upload links. Requires canCreateAsset. When a submitted file's checksum matches an asset already in the project, no bytes are transferred: the platform adds another FileSystem reference to the existing asset and reports status: success with referencesExistingAsset: true and no signed URLs.
In that case the response's name is the EXISTING asset's name, because that is what the new reference carries — FileSystem.resourceName is a denormalized copy of Asset.name, so the submitted name never lands. The submitted name is returned as originalName. Correlate results with requests positionally or by your own upload id, not by name.
Returns uploadRequestExceedsSubscription (400) when the request would exceed the workspace's subscribed storage.
Authorization
bearerAuth In: header
Path Parameters
Unique ID of the project.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
curl -X POST "https://example.com/projects/string" \ -H "Content-Type: application/json" \ -d '{}'[ { "id": 1, "name": "file1.png", "hash": "d9729feb74992cc3482b350163a1a010", "type": "image", "asset": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "ownerResourceId": "7d5ad1db-89f9-42df-868c-86a72347ae1c", "ownerResourceType": "workspace", "creatorId": "688ebf54-d343-4104-8711-82c2feac534a", "creator": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "firstName": "string", "lastName": "string", "displayName": "string", "avatar": "01d8bd6c-6014-46aa-b5b1-14d337c9c779", "color": "string", "awards": [ "staff" ], "accountType": "standard" }, "fileSystemPaths": [ "string" ], "basePath": "string", "noFileSystem": false, "keyPath": "string", "checksum": "string", "checksumAlgorithm": "md5", "name": "string", "slug": "string", "functionType": "attachment", "mediaType": "image", "tags": [], "files": [ { "assetId": "9179b887-04ef-4ce5-ab3a-b5bbd39ea3c8", "keyPath": "/project/asset/file123.jpg", "checksum": "string", "checksumAlgorithm": "md5", "name": "string", "functionType": "original", "sizeInBytes": 0, "status": "active", "meta": {}, "createdAt": 1678886400000, "updatedAt": 1678886400000 } ], "chats": { "creatorLastMessageAt": "2019-08-24T14:15:22Z", "reviewerLastMessageAt": "2019-08-24T14:15:22Z", "creator": "1dccd4a6-75d2-43aa-a088-76d941f1b60a", "reviewer": "a4b7b7a3-a1d0-4e27-9161-fa5679d1e0d6" }, "expectedUploadSizeInMB": 0, "sizeInBytes": 0, "visibility": [ "creator" ], "publishedOn": 1678886400000, "publisherId": "f1ba8124-cabe-46cd-b4f9-1189594ff7b3", "publisher": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "firstName": "string", "lastName": "string", "displayName": "string", "avatar": "01d8bd6c-6014-46aa-b5b1-14d337c9c779", "color": "string", "awards": [ "staff" ], "accountType": "standard" }, "hasActivePublicLink": false, "hasActivePublicFileSystem": false, "everPublic": false, "publicFileSystemIds": [ "3a3392f6-5ad7-429c-8b57-759911bd1423" ], "publicAssetLinkIds": [ "35788e46-f1b0-471c-b8ec-69afab5a9e64" ], "submissionFileSystemIds": [ "c658ae43-33f0-4032-85f0-ea3242de6509" ], "aiGenerated": false, "promotedFromAssetId": "c833ed16-de04-406f-a750-9ed1e24820b3", "contentSnippet": "string", "status": "active", "meta": {}, "inheritanceId": "09c886ac-e6e5-4263-a494-a6e14f7e4f46", "inheritance": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "resourceId": "026d60bb-63a8-407e-bf67-01dcfc6022e6", "resourceType": "string", "inheritance": { "0192a3b4-5c6d-7e8f-9a0b-1c2d3e4f5a6b": "workspace", "0192a3b4-5c6d-7e8f-9a0b-1c2d3e4f5a6c": "project" }, "inheritanceInverted": { "property1": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "property2": "497f6eca-6276-4993-bfeb-53cbbbba6f08" }, "path": "string", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z" }, "createdAt": 1678886400000, "updatedAt": 1678886400000 }, "signedUrlData": { "fileName": "file1.png", "ownerAssetId": "65af4c7b22ac19c0b1648241", "key": "/workspaces/ws-65af4c7b22ac19c0b1648226/projects/pr...", "urls": [ "https://s3.eu-west-1.amazonaws.com/files-test.nurama.io..." ], "mimeType": "image/png", "expires": 1705988395, "status": "success" }, "status": "success" }]