All endpoints except /auth/* require an API key. Pass it as a header:
x-api-key: lv_your_api_key # or Authorization: Bearer lv_your_api_key
Keys start with lv_ and are 67 characters long. Keep them secret.
# 1. Register
curl -X POST https://lineverifier.com/api/v1/auth/register \
-H "Content-Type: application/json" \
-d '{"email":"you@example.com","password":"secure_pass_123"}'
# Response: { "success": true, "api_key": "lv_abc123...", "email": "you@example.com" }
# 2. Buy credits (opens Stripe checkout)
curl -X POST https://lineverifier.com/api/v1/checkout \
-H "x-api-key: lv_abc123..." \
-H "Content-Type: application/json" \
-d '{"type":"credits","amount_cents":10000}'
# 3. Order a number
curl -X POST https://lineverifier.com/api/v1/order \
-H "x-api-key: lv_abc123..." \
-H "Content-Type: application/json" \
-d '{"service_id":1,"country_id":1}'
# 4. Poll for code
curl https://lineverifier.com/api/v1/check?order_id=YOUR_ORDER_ID \
-H "x-api-key: lv_abc123..."Single verification per line. Buy credit packs: $50 / $100 / $250 / $500.
12-month access. Reuse numbers all year. Credits purchased separately.
| Status | Meaning |
|---|---|
| 200 | Success |
| 400 | Bad request — missing or invalid parameters |
| 401 | No API key provided |
| 402 | Insufficient balance |
| 403 | Invalid API key |
| 409 | Email already registered |
| 500 | Server error |
All errors return { "success": false, "error": "..." }
/api/v1/auth/registerCreate a new developer account. Returns your API key once.
Request body
{
"email": "you@example.com",
"password": "min_8_chars"
}Response
{
"success": true,
"api_key": "lv_a1b2c3d4...",
"email": "you@example.com",
"balance_cents": 0,
"plan": "credits"
}/api/v1/auth/loginSign in. Returns your existing API key and account info.
Request body
{
"email": "you@example.com",
"password": "your_password"
}Response
{
"success": true,
"api_key": "lv_a1b2c3d4...",
"email": "you@example.com",
"balance_cents": 10000,
"plan": "credits",
"total_api_calls": 42
}/api/v1/balanceCurrent balance and usage stats.
Response
{
"success": true,
"balance_cents": 10000,
"balance_usd": "100.00",
"cost_per_sms_cents": 1000,
"estimated_sms_remaining": 10,
"total_api_calls": 42,
"total_spent_cents": 420000
}/api/v1/servicesList all available platforms for SMS verification.
Response
{
"success": true,
"services": [
{ "id": 1, "name": "WhatsApp", "category": "messaging" },
{ "id": 2, "name": "Telegram", "category": "messaging" },
...
]
}/api/v1/countriesCountries available for a given service, with stock and success rates.
Query params
service_id (required) Service ID from /services
Response
{
"success": true,
"countries": [
{ "id": 1, "name": "United States", "short_name": "US", "success_rate": "92", "stock": 847 },
...
]
}/api/v1/orderOrder a phone number. You are only charged when the verification code is received. Returns the number and an order ID to poll with.
Request body
{
"service_id": 1,
"country_id": 1
}Response
{
"success": true,
"order_id": "ABC12345",
"phone_number": "+12025551234",
"country": "United States",
"service": "WhatsApp",
"expires_in": 1200,
"cost_cents": 1000,
"balance_cents": 10000
}/api/v1/checkPoll for the SMS code. Call every 5s until status is "received" or "expired".
Query params
order_id (required) The order_id from /order response
Response
// Waiting
{ "success": true, "order_id": "...", "status": "waiting", "sms_code": null }
// Received
{ "success": true, "order_id": "...", "status": "received", "sms_code": "482916", "full_sms": "Your code is 482916" }
// Expired
{ "success": true, "order_id": "...", "status": "expired", "sms_code": null }/api/v1/cancelCancel an active order before the code arrives.
Request body
{ "order_id": "ABC12345" }Response
{ "success": true, "order_id": "...", "message": "Order cancelled" }/api/v1/historyTransaction ledger: credits, debits, refunds.
Query params
limit (optional, default 50, max 100)
Response
{
"success": true,
"transactions": [
{
"id": "uuid",
"type": "debit",
"amount_cents": 1000,
"balance_after_cents": 9000,
"description": "SMS order: service 1, country 1",
"api_order_id": "...",
"created_at": "2026-03-04T..."
},
...
]
}Base URL
https://lineverifier.com/api/v1All requests and responses are JSON. Base URL applies to all endpoints above.