Set a voice agent's picture
Uploads a picture that replaces the agent's generated avatar everywhere it appears. Send the image bytes as the request body: a WebP exactly 512 by 512 pixels and no larger than 256 KB. The Tandem editor crops and encodes the picture for you; through the API, crop and encode it yourself.
Like the avatar parts, the picture belongs to the agent and not to a version, so it takes effect at once. Templates don't carry it. Uploading again replaces the previous picture.
Authorization
bearerAuth A Tandem bearer token. Requests are scoped to the organization the token belongs to; no organization header is required.
In: header
Path Parameters
The agent's unique ID.
Request Body
image/webp
TypeScript Definitions
Use the request body type in TypeScript.
binaryResponse Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X PUT "https://example.com/v1/agent-media/agents/string/avatar-image" \ -H "Content-Type: image/webp" \ -d 'string'{ "agent": { "id": "string", "name": "string", "publishedVersion": "string", "appearance": { "hue": 0, "colors": [ { "hue": 0, "saturation": 0, "lightness": -0.2 } ], "scheme": "mono", "shape": "circle", "pattern": "glow", "pupil": "dot", "irisTexture": "fibers", "ringCount": 2, "ringWidth": 1.2, "ticks": 12, "dashLength": 2, "dashGap": 1.5, "rotation": 0, "notches": true, "lid": "round", "texture": "none", "temper": "calm" }, "avatarImageUrl": "http://example.com", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "systemPrompt": "string", "greeting": "string", "interruptable": true, "channels": [ "voice", "chat" ], "slots": { "llm": { "model": "string", "settings": { "maxTokens": 1, "temperature": 0, "reasoning": { "enabled": false, "budgetTokens": 1024 } } }, "stt": { "provider": "string", "settings": { "language": "string" } }, "tts": { "voiceProvider": "string", "settings": { "language": "string", "voiceId": "string", "engine": "string", "polly": { "rate": "string", "volume": "string" }, "elevenlabs": { "speed": 0.7, "stability": 0, "similarityBoost": 0, "style": 0, "useSpeakerBoost": true, "textNormalization": "auto", "pronunciationDictionaries": [ { "id": "string", "versionId": "string" } ] } } }, "additionalVoices": [ { "voiceProvider": "string", "settings": { "language": "string", "voiceId": "string", "engine": "string", "polly": { "rate": "string", "volume": "string" }, "elevenlabs": { "speed": 0.7, "stability": 0, "similarityBoost": 0, "style": 0, "useSpeakerBoost": true, "textNormalization": "auto", "pronunciationDictionaries": [ { "id": "string", "versionId": "string" } ] } } } ] }, "greetingParts": [ { "language": "string", "text": "string" } ], "variables": [], "dispositions": [], "builtinTools": { "transferToExternal": { "enabled": false, "destinations": [] }, "transferToVoiceAgent": { "enabled": false, "contextCarryover": "none", "destinations": [] }, "captureDtmf": { "enabled": false, "maxDigits": 16, "terminator": "#", "timeoutMs": 10000, "interDigitTimeoutMs": 3000, "interruptsSpeech": true }, "recordingControl": { "enabled": false }, "currentTime": { "enabled": false, "timezone": "America/New_York" }, "setWorkflowVariable": { "enabled": false, "variables": [] } }, "dtmf": { "enabled": false, "interDigitGapMs": 1500, "terminator": "#", "maxDigits": 32, "interruptsSpeech": true }, "thinkingCue": { "kind": "none" }, "vad": { "silenceMs": 200, "threshold": 0.7, "startMs": 200, "minVolume": 0.6, "endOfTurnGraceMs": 600, "bargeInMinWords": 1 }, "turnDetection": { "mode": "silence", "smartStopMs": 3000, "preSpeechMs": 500, "maxDurationSecs": 8 }, "memory": { "depth": "none", "customizeGreeting": false }, "safety": { "redactPii": true, "steeringRules": [ "string" ] }, "skills": { "builtins": [], "custom": [] }, "analysis": { "enabled": false, "builtins": { "sentiment": { "enabled": false, "prompt": "string" }, "outcome": { "enabled": false, "prompt": "string" }, "summary": { "enabled": false, "prompt": "string" } }, "fields": [] }, "retention": { "transcripts": true }, "idle": { "enabled": false, "timeoutMs": 10000, "action": "reprompt", "prompt": "string", "maxReprompts": 2, "onExhausted": "endCall", "disposition": "string" }, "limits": { "maxCallDurationMs": 60000, "warnBeforeEndMs": 5000, "warnPrompt": "string" }, "reliability": { "maxConsecutiveTurnFailures": 1, "toolTimeoutMs": 1000, "steeringJudgeTimeoutMs": 500, "handoffMaxHistoryMessages": 1, "modelRetryMaxAttempts": 1, "modelRetryInitialDelayMs": 100, "modelRetryMaxDelayMs": 100 }, "conversation": { "strategy": "slidingWindow", "windowSize": 10, "summaryRatio": 0.1, "preserveRecentMessages": 2, "pinFirst": 1, "proactiveCompressionThreshold": 0.3 }, "vocabulary": { "terms": [] }, "dataCollection": { "fields": [ { "key": "string", "label": "string", "kind": "full_name", "required": false, "prompt": "" } ] }, "tools": [], "knowledge": { "kbId": "string", "maxResults": 4, "minScore": 0 }, "sourceTemplateId": "string" }}{ "error": "string", "message": "string", "limit": 0, "length": 0, "reason": "string"}{ "error": "string", "message": "string", "limit": 0, "length": 0, "reason": "string"}{ "error": "string", "message": "string", "limit": 0, "length": 0, "reason": "string"}{ "error": "string", "message": "string", "limit": 0, "length": 0, "reason": "string"}{ "error": "string", "message": "string", "limit": 0, "length": 0, "reason": "string"}