API Docs

Country-scoped ReverseVerify API

Verify your phone, subscribe to a country, then call the v1 endpoint with a bearer API key.

Quick start curl -X POST "https://reverseverify.org/api/v1/reverse-verify" \ -H "Authorization: Bearer rv_live_xxxxx" \ -H "Content-Type: application/json" \ -d '{"country":"US","phone":"18322521999"}'

1. Authenticate

Use your dashboard API key as a bearer token.

Authorization: Bearer YOUR_API_KEY

2. Choose country

Pass a country code. US is available now.

country=US

3. Send phone

Send the number in a JSON body so it stays out of URLs and logs.

{"phone": "18322521999"}

Endpoint

POST /api/v1/reverse-verify
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

{"country": "US", "phone": "18322521999"}
Use POST. A query string puts the phone number into request lines, so it is recorded in access logs, proxy logs and referrer headers along the way. GET /api/v1/reverse-verify?country=US&phone=… still works for existing integrations, but POST is recommended for new ones.

JavaScript

const res = await fetch("https://reverseverify.org/api/v1/reverse-verify", {
  method: "POST",
  headers: {
    Authorization: "Bearer rv_live_xxxxx",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({ country: "US", phone: "18322521999" })
});
console.log(await res.json());

Python

import requests

res = requests.post(
    "https://reverseverify.org/api/v1/reverse-verify",
    json={"country": "US", "phone": "18322521999"},
    headers={"Authorization": "Bearer rv_live_xxxxx"},
)
print(res.json())

Example response

{
  "ok": true,
  "country": "US",
  "reverse_verify_number": "18322521999",
  "phone": "18322521999",
  "status": "accepted",
  "provider_lookup": false,
  "message": "ReverseVerify country access is active. Provider lookup is not enabled yet."
}
This is not a verification verdict. While provider_lookup is false, a 200 confirms only that your key, country and quota are valid — the number itself has not been checked. Do not gate signups, payments or fraud decisions on it. Branch on the provider_lookup boolean, never on the wording of message.

Error codes

400 missing phone
401 missing or invalid API key
402 inactive country subscription
403 inactive user
404 country unavailable
429 quota exceeded