Returns one normalized asset. Deleted or cross-team assets return not_found.
Authorization
bearerAuth assets:readIn: header
Scope: assets:read
Path Parameters
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/assets/string"{ "id": "string", "type": "image", "name": "string", "url": "http://example.com", "thumbnailUrl": "http://example.com", "width": 0, "height": 0, "duration": 0, "mimeType": "string", "source": "string", "sourceProcessId": "string", "trainingId": "string", "favorite": true, "createdAt": "2019-08-24T14:15:22Z", "links": { "self": "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" }}Generate speech audio POST
Legacy synchronous text-to-speech compatibility endpoint for ElevenLabs and Cartesia. New integrations should use audio-generation via POST /processes plus GET /audio/voices so model capabilities, references, process polling, and output lineage match image/video generation. This endpoint still generates spoken audio from a script and stores it as a team audio asset (readable via GET /assets/{assetId} and listed by GET /assets). No polling — the response returns the finished asset. Pass a voiceId from a previous response to reuse a voice, or a voiceQuery (e.g. "warm female narrator") to pick one by description; omitting both uses a neutral narrator. The first 5,000 script characters per team per UTC day are free; characters beyond that bill team credits at 30 credits per 1,000 characters for ElevenLabs voices or 15 credits per 1,000 characters for Cartesia voices (403 insufficient_credits when the team balance cannot cover the request). The response reports creditsCharged and freeCharactersRemainingToday. Always send an Idempotency-Key: retries with the same key and body replay the original response (Idempotency-Replayed: true) instead of double-billing and double-generating; the same key with a different body returns idempotency_conflict.
Get connection identity GET
Returns the team, acting user, credential kind/name, and granted scopes for the current API key or MCP OAuth connection. Use this before moving assets between multiple configured Yapper connections.