Number Validation API

Check if a phone number is valid in the system. A valid number is defined as a virtual number that is already rented by a user.

GET POST https://vchats.site/api/v1/numbers/validate/

What is a valid number?

A valid number is a virtual number registered in vChats that is already rented by an active user. Unrented numbers in the pool, expired rentals, blocked numbers, or unregistered numbers are marked as invalid ("is_valid": false).

Parameters

Pass the phone number either as a query parameter (for GET) or in the JSON request body (for POST).

Parameter Type Required Description
number string Yes The phone number to validate in E.164 format (e.g. +15550019872). Aliases: phone_number, destination.
include_expired boolean No Optional. Default is false. If set to true, numbers with expired user rentals will also be considered valid.

Request examples

Option 1 — GET Request
curl (GET)
curl -X GET "https://vchats.site/api/v1/numbers/validate/?number=+15550019872" \
  -H "Authorization: Bearer vn_live_..."
Option 2 — POST Request
curl (POST)
curl -X POST "https://vchats.site/api/v1/numbers/validate/" \
  -H "Authorization: Bearer vn_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "number": "+15550019872"
  }'

Response schemas

200 OK — Valid (Actively Rented Number)
JSON Response
{
  "number": "+15550019872",
  "is_valid": true,
  "rented": true,
  "status": "active",
  "country": {
    "name": "United States",
    "iso_code": "US",
    "dial_code": "+1"
  },
  "rental": {
    "id": 42,
    "status": "active",
    "activated_at": "2026-10-04T12:00:00Z",
    "expires_at": "2026-10-05T12:00:00Z",
    "duration_hours": 24
  },
  "message": "Number is valid and currently rented by a user."
}
200 OK — Invalid (Unrented Pool Number)
JSON Response
{
  "number": "+15550019872",
  "is_valid": false,
  "rented": false,
  "status": "unrented",
  "country": {
    "name": "United States",
    "iso_code": "US",
    "dial_code": "+1"
  },
  "message": "Number is registered in the system but is not rented by any user."
}
200 OK — Expired Rental
JSON Response
{
  "number": "+15550019872",
  "is_valid": false,
  "rented": false,
  "status": "expired",
  "country": {
    "name": "United States",
    "iso_code": "US",
    "dial_code": "+1"
  },
  "rental": {
    "id": 42,
    "status": "expired",
    "activated_at": "2026-10-01T12:00:00Z",
    "expires_at": "2026-10-02T12:00:00Z",
    "duration_hours": 24
  },
  "message": "Number was previously rented by a user, but the rental has expired."
}
400 Bad Request — Missing Number
JSON Response
{
  "error": "missing_number",
  "detail": "Phone number is required. Provide 'number' as a query parameter or in the request body."
}