+20 numbers, validated
Every request is checked against E.164-formatted Egyptian numbers before a call is ever placed.
Authlie calls the number, reads a freshly generated code out loud in Arabic or English, and confirms what the user types back — billed only when a verification actually succeeds, from 0.50 EGP each.
No credit card required to create an account and explore the dashboard.
$ curl https://app.authlie.com/v1/otp/request \
-H "Authorization: Bearer authlie_live_..." \
-H "Content-Type: application/json" \
-d '{
"phone_number": "+201001234567",
"locale": "ar"
}'
→ {
"id": "otp_9f2a...",
"status": "calling"
}
Enter an Egyptian number below — this calls the real Authlie API, live, no account required.
Calling your phone now — pick up and listen for the code.
✓ Verified
That's the exact response your own users would get back.
No SDKs to install and no queues to manage — request a call, poll or wait for the result, then verify what the end user typed.
POST /v1/otp/request with a phone
number. Authlie generates a code and starts dialing, returning a request id right away.
The number rings, and an automated voice reads the code aloud in Arabic or English.
GET /v1/otp/{id} reports
delivered,
no_answer, or
failed.
POST /v1/otp/verify checks what the
user typed and returns a simple verified
boolean. The code itself is never returned by any endpoint.
Everything you need to verify a real person is on the other end of the line.
Every request is checked against E.164-formatted Egyptian numbers before a call is ever placed.
Pass locale: "ar" or
"en" and the code is read out in that
language.
Every call is authenticated with a bearer key from your dashboard. Roll or revoke keys any time.
Codes expire on their own and lock after too many wrong attempts, so a guessed code can't slip through.
See every OTP request, its delivery status, and your balance draining in real time — no digging through logs.
Attach a client_reference — an order or
user id — to reconcile OTP requests with your own records.
Three JSON endpoints authenticated with a single bearer key. Errors come back as
{"error": {"code", "message"}}, and every
response you'd poll for status is a plain GET.
$ curl https://app.authlie.com/v1/otp/verify \
-H "Authorization: Bearer authlie_live_..." \
-H "Content-Type: application/json" \
-d '{
"id": "otp_9f2a...",
"code": "482913"
}'
→ { "verified": true }
Top up your balance, then you're charged per successful verification — never for a call that fails, goes unanswered, or expires. The rate drops automatically as your volume grows each month.
Minimum top-up
Fund your balance from 500 EGP, any time, from the dashboard.
500 EGP
0.90 EGP each
Every account's starting rate, each calendar month.
0.75 EGP each
Kicks in automatically once you cross 100 that month.
0.50 EGP each
Our lowest rate — the more you verify, the less each one costs.
Tiers reset at the start of each calendar month, and your rate only ever moves down as volume grows — never up.
Egyptian mobile numbers in E.164 format (+20...).
A request for a number outside that format is rejected before any call is placed.
A voice call reaches any handset that can receive a phone call — no SMS routing, filtering, or delivery reports to reason about. Authlie dials the number and reads the code aloud, in Arabic or English.
Verification returns verified: false
with the attempts remaining. After too many wrong attempts the request locks; codes also expire on
their own after a few minutes, so a new request is always the way forward.
Every request carries an API key from your dashboard as
Authorization: Bearer authlie_live_....
Keys can be created and revoked at any time.
No — create an account and explore the dashboard for free. You'll only need a card when you're ready to top up your balance and start sending calls.
Create an account, generate an API key, and place your first OTP call in minutes.