List AI voices
The feature’s current state, the full curated voice catalog with per-voice enabled flags, and this month’s character usage. Voice ids are stable slugs - use them with the per-voice toggles. min_amount is the tip amount that unlocks AI voices on the tip page. Requires ai_voices:manage. Closed beta: answers 404 unless AI voices are enabled for your account.
GET
/ai-voicesAuthorization
AuthorizationBearer token (tp_live_...) · headerrequiredA TipPage API key, created in Dashboard → Settings → Developer.
Responses
200Feature state, catalog, and usage.
enabledbooleanThe master switch - whether donors are offered AI voices.
modestring`optional` keeps the standard voice as the default; `exclusive` makes every tip message use an AI voice.
Allowed:
optionalexclusivemin_amountnumberMinimum tip amount that unlocks AI voices.
usageobjectThis month's character budget (AI generation spends characters).
Show propertiesHide properties
monthstringcharacters_usedintegercharacters_limitintegercharacters_remainingintegervoicesobject[]Show propertiesHide properties
Array of
objectidstringlabelstringhintstringgenderstringAllowed:
mfxsample_urlstringA short sample clip of the voice.
enabledbooleanWhether donors can currently pick this voice.
401Missing or invalid API key (`missing_api_key` / `invalid_api_key`).
errorstringrequiredHuman-readable message.
codestringMachine-readable code (e.g. `missing_scope`, `not_in_queue`).
403The key lacks the required scope (`missing_scope`).
errorstringrequiredHuman-readable message.
codestringMachine-readable code (e.g. `missing_scope`, `not_in_queue`).
required_scopestring404No such resource.
errorstringrequiredHuman-readable message.
codestringMachine-readable code (e.g. `missing_scope`, `not_in_queue`).
429Rate limit exceeded - check the `RateLimit-*` headers.
errorstringRequest
curl -X GET "https://api.tippage.com/v1/ai-voices" \
-H "Authorization: Bearer YOUR_TOKEN"const response = await fetch("https://api.tippage.com/v1/ai-voices", {
method: "GET",
headers: {
"Authorization": "Bearer YOUR_TOKEN"
}
});import requests
response = requests.get(
"https://api.tippage.com/v1/ai-voices",
headers={
"Authorization": "Bearer YOUR_TOKEN"
},
)Response
{
"enabled": true,
"mode": "optional",
"min_amount": 0,
"usage": {
"month": "2026-08",
"characters_used": 0,
"characters_limit": 0,
"characters_remaining": 0
},
"voices": [
{
"id": "leader",
"label": "Barack Obama",
"hint": "Smooth presidential orator",
"gender": "m",
"sample_url": "string",
"enabled": true
}
]
}{
"error": "string",
"code": "string"
}{
"error": "string",
"code": "string",
"required_scope": "string"
}{
"error": "string",
"code": "string"
}{
"error": "string"
}