Quickstart
VERYO verifies Kazakhstan mobile numbers. You make one request, and the code goes out through the cheapest working channel: Telegram, then WhatsApp, then SMS. You pay only for the channel that delivered the code.
API address: https://api.veryo.kz. Requests and responses are JSON.
1. Get a key
Sign up in the dashboard and create a key in the API keys section. The key is shown once.
Pass the key in the Authorization: Bearer <key> header. Keep it on your server and call the API only from there: do not embed the key in a mobile app or the browser.
2. Request a code
curl -X POST https://api.veryo.kz/v1/verify \
-H "Authorization: Bearer $VERYO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"phone": "+77011234567", "purpose": "login"}'
Response 201:
{"id": "vrf_8c1f04a2b7d93e6f5a10", "status": "pending", "expires_at": "2026-11-08T10:05:00Z"}
Save the id: you will need it for the check. The user receives the code; it is not in the API response.
3. Check the code
curl -X POST https://api.veryo.kz/v1/verify/check \
-H "Authorization: Bearer $VERYO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"id": "vrf_8c1f04a2b7d93e6f5a10", "code": "1234"}'
Response 200:
{"id": "vrf_8c1f04a2b7d93e6f5a10", "status": "verified", "channel": "telegram"}
The number is verified only if status is verified. The HTTP code 200 only means the check was performed: a wrong code also returns 200, with status set to pending.
What’s next
- Test your integration for free on test numbers.
- See all the fields for requesting and checking a code.
- Handle errors and limits.
- Connect webhooks to learn about delivery without polling the API.