Files existing image, video, or audio assets into a folder, like dropping media on a folder in the web app. Target it with folderId or folderPath (a missing folderPath is created); omit both for the top level. An asset already in the tree moves; a new item takes the asset's name, made unique within the folder. Assets from elsewhere in the team are linked into the session without changing where they were created. Write text with POST /workspace/documents instead. The change shows up in the Yapper web app and is recorded with the API key or MCP client that made it; the in-app Yapper agent in that session is told about it on its next turn. Free. Uses the processes:write scope.
Authorization
bearerAuth processes:writeIn: header
Scope: processes:write
Path Parameters
Header Parameters
Optional key that makes the edit safe to retry: a retry with the same key and body replays instead of editing twice, and the same key with a different body returns idempotency_conflict. Scoped to the credential and session.
1 <= length <= 255Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/sessions/string/workspace/place" \ -H "Content-Type: application/json" \ -d '{ "assetIds": [ "string" ] }'{ "folder": { "id": "string", "parentId": "string", "name": "string", "path": "/Characters/hero", "type": "folder", "kind": "folder", "assetId": "string", "previewUrl": "http://example.com", "note": "string", "pinned": true, "selected": true, "brief": true, "color": "string", "semantic": "string", "childCount": 0, "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z" }, "items": [ { "id": "string", "parentId": "string", "name": "string", "path": "/Characters/hero", "type": "folder", "kind": "folder", "assetId": "string", "previewUrl": "http://example.com", "note": "string", "pinned": true, "selected": true, "brief": true, "color": "string", "semantic": "string", "childCount": 0, "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z" } ]}{ "error": { "code": "string", "message": "string", "requestId": "string" }}{ "error": { "code": "string", "message": "string", "requestId": "string" }}{ "error": { "code": "string", "message": "string", "requestId": "string" }}{ "error": { "code": "string", "message": "string", "requestId": "string" }}{ "error": { "code": "string", "message": "string", "requestId": "string" }}{ "error": { "code": "string", "message": "string", "requestId": "string" }}List credit log entries GET
Individual credit charges and refunds, newest first. Matches the credit log on the account usage page. The window is range (default month, the same UTC buckets as GET /usage/breakdown) or createdAfter/createdBefore; combining the two returns unsupported_filter_combination. Entries name the member who spent, so listing other members' entries requires the key's member to be a team owner or admin; anyone else passes their own user id (actor.userId from GET /me) as memberIds. source narrows to API-key (api) or hosted-connector (mcp) spend; because the source is derived per entry, a page can then hold fewer than limit entries while nextCursor is still set. For totals over the same filters use GET /usage/breakdown.
Remove a canvas card DELETE
Removes one card and its wires. Shows up live on the canvas in the Yapper web app. Free. Uses the processes:write scope.