Skip to content

catalog.voices.list

The narration voices

GET/catalog/voices

Operation
catalog.voices.list
MCP tool
catalog_voices_list

Every voice a render or a marketing export may be narrated by: its id, its name, the languages it reads and how it sounds.

curl 'https://api.gogoscreen.com/api/v1/catalog/voices' \
  -H "Authorization: Bearer $GOGOSCREEN_API_KEY"
A request to this operation.
json
{
  "voices": [
    {
      "id": "sarah",
      "name": "Sarah",
      "description": "English (US). Female, clear and confident, a presenter's pace. Also reads Spanish, Portuguese, French, German and Italian.",
      "isDefault": true,
      "languages": [
        "en",
        "es",
        "pt",
        "fr",
        "de",
        "it"
      ],
      "gender": "female"
    },
    {
      "id": "george",
      "name": "George",
      "description": "English (UK). Male, warm and measured, a storyteller's read. Also reads Spanish, Portuguese, French, German and Italian.",
      "isDefault": false,
      "languages": [
        "en",
        "es",
        "pt",
        "fr",
        "de",
        "it"
      ],
      "gender": "male"
    },
    {
      "id": "brian",
      "name": "Brian",
      "description": "English (US). Male, deep and even, a documentary read. Also reads Spanish, Portuguese, French, German and Italian.",
      "isDefault": false,
      "languages": [
        "en",
        "es",
        "pt",
        "fr",
        "de",
        "it"
      ],
      "gender": "male"
    },
    {
      "id": "matilda",
      "name": "Matilda",
      "description": "English (US). Female, warm and friendly, like a colleague at the next desk. Also reads Spanish, Portuguese, French, German and Italian.",
      "isDefault": false,
      "languages": [
        "en",
        "es",
        "pt",
        "fr",
        "de",
        "it"
      ],
      "gender": "female"
    },
    {
      "id": "jessica",
      "name": "Jessica",
      "description": "English (US). Female, bright and expressive.",
      "isDefault": false,
      "languages": [
        "en"
      ],
      "gender": "female"
    },
    {
      "id": "roger",
      "name": "Roger",
      "description": "English (US). Male, calm and conversational.",
      "isDefault": false,
      "languages": [
        "en"
      ],
      "gender": "male"
    },
    {
      "id": "lily",
      "name": "Lily",
      "description": "English (UK). Female, soft and unhurried. Also reads Spanish, Portuguese, French, German and Italian.",
      "isDefault": false,
      "languages": [
        "en",
        "es",
        "pt",
        "fr",
        "de",
        "it"
      ],
      "gender": "female"
    },
    {
      "id": "adam",
      "name": "Adam",
      "description": "English (US). Male, deep and assured, a broadcast read.",
      "isDefault": false,
      "languages": [
        "en"
      ],
      "gender": "male"
    },
    {
      "id": "daniel",
      "name": "Daniel",
      "description": "English (UK). Male, measured and authoritative, a news read. Also reads Spanish, Portuguese, French, German and Italian.",
      "isDefault": false,
      "languages": [
        "en",
        "es",
        "pt",
        "fr",
        "de",
        "it"
      ],
      "gender": "male"
    },
    {
      "id": "alice",
      "name": "Alice",
      "description": "English (UK). Female, clear and composed.",
      "isDefault": false,
      "languages": [
        "en"
      ],
      "gender": "female"
    },
    {
      "id": "bill",
      "name": "Bill",
      "description": "English (US). Male, older, warm and trustworthy.",
      "isDefault": false,
      "languages": [
        "en"
      ],
      "gender": "male"
    },
    {
      "id": "callum",
      "name": "Callum",
      "description": "English (US). Male, gravelly and intense, a trailer read.",
      "isDefault": false,
      "languages": [
        "en"
      ],
      "gender": "male"
    },
    {
      "id": "chris",
      "name": "Chris",
      "description": "English (US). Male, casual and upbeat.",
      "isDefault": false,
      "languages": [
        "en"
      ],
      "gender": "male"
    },
    {
      "id": "eric",
      "name": "Eric",
      "description": "English (US). Male, friendly and even, a product explainer.",
      "isDefault": false,
      "languages": [
        "en"
      ],
      "gender": "male"
    },
    {
      "id": "will",
      "name": "Will",
      "description": "English (US). Male, young and easygoing.",
      "isDefault": false,
      "languages": [
        "en"
      ],
      "gender": "male"
    },
    {
      "id": "river",
      "name": "River",
      "description": "English (US). Neutral, calm and confident.",
      "isDefault": false,
      "languages": [
        "en"
      ],
      "gender": null
    },
    {
      "id": "halden",
      "name": "Halden",
      "description": "English (US). Male, warm and even. The original narration voice.",
      "isDefault": false,
      "languages": [
        "en"
      ],
      "gender": "male"
    },
    {
      "id": "ethan",
      "name": "Ethan",
      "description": "English (US). Male, clear and confident, a presenter's pace.",
      "isDefault": false,
      "languages": [
        "en"
      ],
      "gender": "male"
    },
    {
      "id": "hannah",
      "name": "Hannah",
      "description": "English (US). Female, bright and friendly, sure of the product.",
      "isDefault": false,
      "languages": [
        "en"
      ],
      "gender": "female"
    },
    {
      "id": "laura",
      "name": "Laura",
      "description": "English (US). Female, warm and conversational, like a colleague at the next desk.",
      "isDefault": false,
      "languages": [
        "en"
      ],
      "gender": "female"
    },
    {
      "id": "graham",
      "name": "Graham",
      "description": "English (UK). Male, calm and measured, a documentary read.",
      "isDefault": false,
      "languages": [
        "en"
      ],
      "gender": "male"
    },
    {
      "id": "camila",
      "name": "Camila",
      "description": "Spanish (Latin America). Female, upbeat and friendly.",
      "isDefault": false,
      "languages": [
        "es"
      ],
      "gender": "female"
    },
    {
      "id": "mateo",
      "name": "Mateo",
      "description": "Spanish (neutral). Male, calm and professional.",
      "isDefault": false,
      "languages": [
        "es"
      ],
      "gender": "male"
    },
    {
      "id": "rafael",
      "name": "Rafael",
      "description": "Portuguese (Brazil). Male, confident, a commercial presenter.",
      "isDefault": false,
      "languages": [
        "pt"
      ],
      "gender": "male"
    },
    {
      "id": "beatriz",
      "name": "Beatriz",
      "description": "Portuguese (Brazil). Female, energetic and clear.",
      "isDefault": false,
      "languages": [
        "pt"
      ],
      "gender": "female"
    },
    {
      "id": "claire",
      "name": "Claire",
      "description": "French. Female, calm and professional.",
      "isDefault": false,
      "languages": [
        "fr"
      ],
      "gender": "female"
    },
    {
      "id": "julien",
      "name": "Julien",
      "description": "French. Male, smooth narration.",
      "isDefault": false,
      "languages": [
        "fr"
      ],
      "gender": "male"
    },
    {
      "id": "lukas",
      "name": "Lukas",
      "description": "German. Male, clear and measured.",
      "isDefault": false,
      "languages": [
        "de"
      ],
      "gender": "male"
    },
    {
      "id": "christa",
      "name": "Christa",
      "description": "German. Female, bright and friendly.",
      "isDefault": false,
      "languages": [
        "de"
      ],
      "gender": "female"
    },
    {
      "id": "marco",
      "name": "Marco",
      "description": "Italian. Male, warm and expressive.",
      "isDefault": false,
      "languages": [
        "it"
      ],
      "gender": "male"
    }
  ]
}
200 response, captured from a real call. Ids, timestamps and signed URLs are replaced; the shape is untouched.

At a glance

FactDetail
Scopescatalog:read
Credentialsa signed in dashboard session or an API key.
Rate limit600 requests a minute per credential, in the read class.
IdempotencyNot applicable. This operation changes nothing.
MCP toolcatalog_voices_list
Always setsCache-Control: public, max-age=300

Response

Answers 200. Every answer also carries RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset, and every error body carries a requestId.

200 OK

The narration voices

200 OK body
NameTypeDescription
voicesobject[]
descriptionstring
genderstring | null
idstring
isDefaultboolean
languagesstring[]
namestring
200 OK headers
HeaderMeaning
Cache-ControlAlways public, max-age=300.

Errors

Every refusal is { error: { code, message, details?, requestId } }. Branch on code, never on the sentence. The full catalogue is at Errors.

CodeStatusWhen it happensWhat to do
validation_failed400The merged path, query and body did not match the operation's schema. The schemas are strict, so an unknown field is a failure rather than something ignored, and a string carrying half of a character is refused before it can be stored.Read details.issues. Each entry carries a path, a message and a machine readable code. Fix every named field and send the request again; the same body always fails the same way.
unauthorized401No credential was presented, or the key is unknown, revoked or expired, or an X-API-Key header carried something that is not an API key. details.reason says which.Send Authorization: Bearer gsk_live_…. A revoked or expired key never starts working again, so issue a new one in the developer console. Put a dashboard session token in Authorization, never in X-API-Key.
forbidden_scope403The credential does not carry every scope the operation declares, or it is the wrong kind of credential for it. keys.* and assistant.* are user only and can never be called by a key.details.requiredScopes and details.missingScopes name what is missing. A key's scopes cannot be changed after it is issued, so create a new key with them. When details.allowedActors is present, no key can call this operation at all.
not_found404No resource of that id belongs to this account. A resource that belongs to somebody else answers 404 as well, never 403.Check the id. Do not treat this as a permissions problem.
rate_limited429The credential's per minute budget, the account's per minute ceiling, or a daily cap was exceeded. details.scope is minute, day or account, or global when the product's own daily cap on voice previews is spent.Wait the Retry-After seconds and retry. details.limit and details.resetAt say what was hit and when it reopens. The RateLimit-* headers on every answer let a client pace itself before it gets here.
internal_error500An unhandled failure inside this API. The original message is logged and never answered.Retry once, then quote requestId to support. A 5xx deletes the idempotency claim rather than storing it, so retrying under the same key is safe.