Nurama Developers
Scratch

Promote a scratch object to a real Asset.

Materialises an `active` scratch object as an Asset (`functionType: media`) in the workspace or project the scratch object was created in. The destination is derived from the scratch object itself — a project asset when it was created within a project, otherwise a workspace asset — and is **not** accepted from the request body, so a client cannot claim a scratch object belongs to a different workspace or project. Only the user who created the scratch object may promote it, and they must also hold `canCreateAsset` on the destination workspace or project. Idempotent: promoting an object that was already promoted returns the existing asset with `alreadyPromoted: true`, so a client can tell "freshly added" from "already added". To attach a scratch object to a chat message instead, pass it as a `{ scratchId, name? }` attachment when sending the message (`POST /v1/chats/{chatId}/messages`).

POST
/scratch/{scratchId}/promote

Materialises an active scratch object as an Asset (functionType: media) in the workspace or project the scratch object was created in. The destination is derived from the scratch object itself — a project asset when it was created within a project, otherwise a workspace asset — and is not accepted from the request body, so a client cannot claim a scratch object belongs to a different workspace or project.

Only the user who created the scratch object may promote it, and they must also hold canCreateAsset on the destination workspace or project.

Idempotent: promoting an object that was already promoted returns the existing asset with alreadyPromoted: true, so a client can tell "freshly added" from "already added". To attach a scratch object to a chat message instead, pass it as a { scratchId, name? } attachment when sending the message (POST /v1/chats/{chatId}/messages).

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Path Parameters

scratchId*string
Formatuuid

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/scratch/497f6eca-6276-4993-bfeb-53cbbbba6f08/promote" \  -H "Content-Type: application/json" \  -d '{}'
{  "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  },  "alreadyPromoted": true}