API Reference
All Voice AI endpoints. Each is available with a /public suffix
(rate-limited, no token) or authenticated for production.
Speech-to-Text
POST/ai/stt/{lang}
# Public access (rate-limited, no token)
curl -X POST "https://api.pindo.io/ai/stt/rw/public" \
-F "audio=@/path/to/your/file.mp3"
# Authenticated access
curl -X POST "https://api.pindo.io/ai/stt/rw" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "audio=@/path/to/your/file.mp3"{
"text": "...",
"uploaded_audio_url": "path/file_name.mp3"
}Text-to-Speech
POST/ai/tts/{lang}
# Public access
curl -X POST "https://api.pindo.io/ai/tts/rw/public" \
-H "Content-Type: application/json" \
-d '{"text": "Muraho neza!", "speech_rate": 1.0}'
# Authenticated access
curl -X POST "https://api.pindo.io/ai/tts/rw" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-d '{"text": "Muraho neza!", "lang": "rw", "speech_rate": 1.0}'{
"generated_audio_url": "path/file_name.wav"
}Named Entity Recognition
POST/ai/ner/{lang}
# Public access
curl -X POST "https://api.pindo.io/ai/ner/rw/public" \
-H "Content-Type: application/json" \
-d '{
"text": "Yohani ukorera minisante atuye i musanze.",
"lang": "rw",
"labels": ["person", "location", "organisation"]
}'
# Authenticated access
curl -X POST "https://api.pindo.io/ai/ner/rw" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-d '{ "text": "Yohani ukorera minisante atuye i musanze.",
"lang": "rw",
"labels": ["person", "location", "organisation"] }'{
"person": ["Yohani"],
"location": ["musanze"],
"organisation": ["minisante"]
}