Core Architecture & Protocol Rules
1. Authentication
All requests require a secret API key passed as a Bearer token in the Authorization header. Keys start with pl_live_.
2. Safe Retries & Idempotency
Send a unique Idempotency-Key header on validation POSTs. Retrying network failures with the same key returns cached responses without charging extra credits.
3. Rate Limits & Headers
Rate limited to 120 requests/min per IP. Exceeding limits returns 429 Too Many Requests with standard reset headers.
API Endpoints
Base URL: https://api.reachready.io/v1
/v1/validateCosts one standard credit and returns one complete validation object.
curl -X POST "https://api.reachready.io/v1/validate" \
-H "Authorization: Bearer pl_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"number": "+919845012345",
"country": "IN"
}'{
"status": "valid",
"verdict": "sms_ok",
"e164": "+919845012345",
"line_type": "mobile",
"carrier": "Airtel",
"credits_charged": 1,
"schema_version": "1.0"
}/v1/validate/batchAccepts 1–1,000 numbers. Repeated numbers inside one request are charged once.
curl -X POST "https://api.reachready.io/v1/validate" \
-H "Authorization: Bearer pl_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"number": "+919845012345",
"country": "IN"
}'{
"results": [/* validation objects */],
"credits_charged": 2,
"count": 2
}/v1/accountReturns the current balance. This endpoint does not consume credits.
curl -X POST "https://api.reachready.io/v1/validate" \
-H "Authorization: Bearer pl_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"number": "+919845012345",
"country": "IN"
}'{
"credits_balance": 10000,
"credits_reserved": 0,
"credits_available": 10000
}Returned Data Schema (14 Fields)
Every successful check returns this structured payload.
statusreasone164national_formatinternational_formatcountry_name / country_iso2 / country_codelocation / timezone / utc_offsetline_type / carrieris_possible / is_validverdictcredits_charged / cachedrequest_id / schema_versionHTTP Error Codes
Invalid body, country code, tier, or batch larger than 1,000.
Missing, invalid, or revoked API key.
Not enough credits to complete the request.
Rate limit exceeded. Retry after the window resets.
Unexpected server failure. Retry with the same idempotency key.
