Get Single Character (with previewUrls + audioUrl)
June 5, 2026
Table of contents
Resolve a single character by reference-id with all media URLs included:
imageReferences[].previewUrl— signed image preview for each attached imagethumbnailUrl— signed thumbnail of the auto-composited character avatarvoice.audioUrl— signed playback URL when a live voice is attached
All URLs are valid for ~6 hours.
https://api.useapi.net/v1/google-flow/characters/
ref
Path Parameters
refis required, the character reference-id returned by POST /characters or GET /characters (URL-encoded).
Request Headers
Authorization: Bearer {API token}
Responses
-
{ "character": "user:12345-email:6a6f...-character:f470f1b5-...-imgs:2-voice:d990a2f9-...", "entityId": "f470f1b5-...", "displayName": "Carol", "personalityNotes": "A curious traveler with a sharp wit", "imageReferences": [ { "workflowId": "wf-a...", "mediaId": "media-a...", "previewUrl": "https://flow-content.google/image/media-a...?Expires=...&Signature=..." }, { "workflowId": "wf-b...", "mediaId": "media-b...", "previewUrl": "https://flow-content.google/image/media-b...?Expires=...&Signature=..." } ], "voice": { "voice": "user:12345-email:6a6f...-voice:d990a2f9-...-mid:d55b6d59-...", "workflowId": "d990a2f9-...", "mediaId": "d55b6d59-...", "displayName": "Cheerful Narrator", "baseVoice": "Achernar", "dialog": "Hello, this is a test voice.", "voicePerformance": "Cheerful, energetic delivery", "audioUrl": "https://flow-content.google/audio/d55b6d59-...?Expires=...&Signature=..." }, "thumbnailMediaId": "thumb-a...", "thumbnailUrl": "https://flow-content.google/image/thumb-a...?Expires=...&Signature=...", "createTime": "2026-06-05T18:14:07.706641Z", "updateTime": "2026-06-05T18:14:16.004078Z" }For a system voice attached at create time (e.g.
voice: "Umbriel"on POST /characters), thevoiceblock reports{ "source": "system", "voice": "Umbriel", "displayName": "Umbriel" }— noworkflowId, noaudioUrl. Preview the audio sample fromhttps://www.gstatic.com/aitestkitchen/voices/samples/{Name}.wav.For an orphan voice (the attached user voice has been deleted), the
voiceblock degrades to{ "workflowId": "...", "deleted": true }— noaudioUrl. The image URLs are unaffected. -
{ "error": "Parameter character has incorrect format" } -
{ "error": "Unauthorized access to user:12345 detected in character reference" } -
{ "error": "Character not found: f470f1b5-..." }
Model
{
character: string // reference-id used in character_1..7 on POST /videos & POST /images
entityId: string
displayName: string
personalityNotes?: string
imageReferences: Array<{
workflowId?: string
mediaId?: string // populated when the image media is resolvable
previewUrl?: string // signed image preview URL (~6h TTL)
}>
thumbnailMediaId?: string
thumbnailUrl?: string // signed thumbnail URL (~6h TTL)
createTime?: string // ISO 8601 timestamp
updateTime?: string
voice?: // omitted if no voice was ever attached
| { // live user voice
source: 'user'
voice: string // dual-id reference-id
workflowId: string
mediaId: string
displayName?: string
baseVoice?: string
dialog?: string
voicePerformance?: string
audioUrl?: string // signed playback URL (~6h TTL)
}
| { // system voice preset (no workflow / media)
source: 'system'
voice: string // canonical Title-case preset name (e.g. 'Umbriel')
displayName: string // same as `voice`
}
| { // orphan user voice — attached then deleted
workflowId: string
deleted: true
}
}
Examples
-
REF="user:12345-email:6a6f...-character:f470f1b5-...-imgs:2" REF_ENC=$(printf '%s' "$REF" | jq -sRr @uri) curl -H "Authorization: Bearer YOUR_API_TOKEN" \ "https://api.useapi.net/v1/google-flow/characters/$REF_ENC" -
const ref = 'user:12345-email:6a6f...-character:f470f1b5-...-imgs:2' const r = await fetch( `https://api.useapi.net/v1/google-flow/characters/${encodeURIComponent(ref)}`, { headers: { 'Authorization': `Bearer ${token}` } } ) const c = await r.json() c.imageReferences.forEach((img, i) => console.log(`img ${i}:`, img.previewUrl)) console.log('voice audio:', c.voice?.audioUrl) -
import requests, urllib.parse ref = 'user:12345-email:6a6f...-character:f470f1b5-...-imgs:2' r = requests.get( f'https://api.useapi.net/v1/google-flow/characters/{urllib.parse.quote(ref, safe="")}', headers={'Authorization': f'Bearer {token}'}, ) c = r.json() for i, img in enumerate(c['imageReferences']): print(f"img {i}:", img.get('previewUrl')) print('voice audio:', (c.get('voice') or {}).get('audioUrl'))