One API for voice discovery, licensing, and delivery. R2 + D1 powered. Like ElevenLabs, but for Zulu, Xhosa, Afrikaans, and more.
/api/voicesFilter by language, accent, gender. Returns licensed South African voices.
curl https://southyai.co.za/api/voicesTry it →
/api/voices/:idGet voice details, preview URL, language, accent, pricing.
curl https://southyai.co.za/api/voices/voice-thandi-sesothoTry it →
/api/admin/confirm-paymentCustomer pays by PayShap/EFT. Once the money lands, we confirm and a one-time PIN is emailed.
{ "voice_id": "voice-imizamo-xhosa", "customer_email": "you@company.com" }
/api/redeemTrade your email + PIN for the licensed file. Each PIN works once.
{ "email": "you@company.com", "pin": "K7M2QX9A" }
/api/redeemValidates your PIN, then streams the licensed audio straight from private R2 storage.
curl -X POST /api/redeem -d '{"email":"..","pin":".."}' -o voice.wav
/api/admin/*/admin/voices + /admin/licenses — CRUD for team.
Requires admin token header
Preview a voice, then pay via PayShap to +27-676861140@CAPITEC using your email as the reference. Email proof of payment to support@southyai.co.za and your one-time PIN is emailed to you. Redeem a PIN →
const res = await fetch('/api/voices');
const { voices } = await res.json();
console.log(voices[0].name, voices[0].language);
const file = await fetch('/api/redeem', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ email, pin })
});
const audio = await file.blob(); // your licensed voice
Python + cURL examples in docs. Full OpenAPI spec at /api/openapi.json (coming)