Skip to content
DocumentationSign in

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