Official API v1

Numbers API

List available activation countries and services, purchase wallet-backed phone numbers, poll for SMS codes, and cancel eligible orders.

POST https://logsdomain.com/api/v1/numbers/orders
{
  "country_id": 1,
  "service_id": 123,
  "idempotency_key": "number-order-20260501-0001"
}

Documentation Hub

API Collections

Official guides for building with your wallet-backed services.

Base URL

Production Endpoint

All paths in this guide are relative to the current API base URL. Protected endpoints require bearer authentication.

https://logsdomain.com/api/v1

Security

Authentication

Bearer API Key

Generate your API key from API Access. Copy it immediately; it is displayed only once. Generating a new key revokes the previous key.

Required headers
Accept: application/json
Authorization: Bearer YOUR_API_KEY_HERE
401 Response
{
  "success": false,
  "status": 401,
  "message": "Unauthenticated. Please provide a valid bearer token.",
  "code": "UNAUTHENTICATED"
}
GET

Wallet Balance

/wallet

Returns the authenticated user's wallet balance. Requires bearer authentication.

cURL Request
curl -X GET "https://logsdomain.com/api/v1/wallet" \
  -H "Accept: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY_HERE"
200 Response
{
  "success": true,
  "data": {
    "balance": "12500.00",
    "currency": "NGN"
  }
}

Production Flow

Number Checkout

Send the country, service, optional area code preference, and idempotency key. The API calculates the final NGN price, validates wallet balance, reserves the number, stores the order, and returns a stable JSON response.

Live catalog Wallet-backed Idempotent checkout Code polling
GET

List Countries

/numbers/countries

Returns cached countries available for number activations. Requires bearer authentication.

cURL Request
curl -X GET "https://logsdomain.com/api/v1/numbers/countries" \
  -H "Accept: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY_HERE"
200 Response
{
  "success": true,
  "data": [
    {
      "id": "1",
      "name": "United States",
      "short": "us",
      "calling_code": "1",
      "region": "North America",
      "image": "https://flagcdn.com/20x15/us.png"
    }
  ]
}
GET

List Number Services

/numbers/services

Fetches available activation services for a country, including final wallet prices, current availability, and recent delivery success rate. Requires bearer authentication.

Query Type Description
country_id integer Required. Country ID from the countries endpoint.
cURL Request
curl -G "https://logsdomain.com/api/v1/numbers/services" \
  -H "Accept: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY_HERE" \
  --data-urlencode "country_id=1"
200 Response
{
  "success": true,
  "data": [
    {
      "service_id": "123",
      "service_name": "Telegram",
      "country_id": "1",
      "country_name": "United States",
      "price": "850.00",
      "currency": "NGN",
      "available_quantity": 24,
      "success_rate": 92,
      "category": "Activation"
    }
  ]
}
GET

List Area Codes

/numbers/area-codes

Returns optional area codes for services that support area filtering. If no specific area codes are available, the API returns Random so your integration can purchase any available number. Requires bearer authentication.

Query Type Description
country_id integer Required. Country ID.
service_id integer Required. Service ID.
cURL Request
curl -G "https://logsdomain.com/api/v1/numbers/area-codes" \
  -H "Accept: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY_HERE" \
  --data-urlencode "country_id=1" \
  --data-urlencode "service_id=123"
200 Response
{
  "success": true,
  "data": {
    "codes": ["Random"]
  }
}
POST

Purchase Number

/numbers/orders

Purchases one phone number for the selected country and service. Requires bearer authentication.

Do not send prices from your integration. The API calculates the charge from the current service price and deducts the authenticated wallet. Use a unique idempotency_key for every checkout attempt.
Body Type Description
country_id integer Required. Country ID from the countries endpoint.
service_id integer Required. Service ID from the services endpoint.
selected_area_codes array Optional. Area code strings to include.
idempotency_key string Required. Unique key for this checkout attempt.
cURL Request
curl -X POST "https://logsdomain.com/api/v1/numbers/orders" \
  -H "Accept: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d '{"country_id":1,"service_id":123,"selected_area_codes":["917"],"idempotency_key":"number-order-20260501-0001"}'
201 Response
{
  "success": true,
  "data": {
    "order_id": "123456789",
    "status": "waiting_for_code",
    "number": "+1234567890",
    "service_id": "123",
    "service_name": "Telegram",
    "country_id": "1",
    "country_name": "United States",
    "price": "850.00",
    "currency": "NGN",
    "time_left": 1200,
    "balance_after": "9150.00"
  }
}
GET

List Number Orders

/numbers/orders

Returns the authenticated user's number activation order history. Requires bearer authentication.

cURL Request
curl -X GET "https://logsdomain.com/api/v1/numbers/orders" \
  -H "Accept: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY_HERE"
200 Response
{
  "success": true,
  "data": [
    {
      "order_id": "123456789",
      "status": "waiting_for_code",
      "number": "+1234567890",
      "service_name": "Telegram",
      "country_name": "United States",
      "price": "850.00",
      "currency": "NGN",
      "code": null,
      "refunded": false
    }
  ]
}
GET

Get Number Order

/numbers/orders/{order_id}

Retrieves the stored details of a single number order owned by the authenticated account. Use this endpoint for order lookups, audit views, and displaying the most recently saved status without running a live code check.

cURL Request
curl -X GET "https://logsdomain.com/api/v1/numbers/orders/123456789" \
  -H "Accept: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY_HERE"
200 Response
{
  "success": true,
  "data": {
    "order_id": "123456789",
    "status": "waiting_for_code",
    "number": "+1234567890",
    "service_id": "123",
    "service_name": "Telegram",
    "country_id": "1",
    "country_name": "United States",
    "price": "850.00",
    "currency": "NGN",
    "code": null,
    "message": "Still waiting...",
    "time_left": 1200,
    "refunded": false,
    "created_at": "2026-05-01T12:00:00.000000Z"
  }
}
POST

Check Number Code

/numbers/orders/{order_id}/check

Runs a live code check for the number order and returns the latest status. In production, poll this endpoint every 5-10 seconds after purchase until code contains the received SMS verification code.

cURL Request
curl -X POST "https://logsdomain.com/api/v1/numbers/orders/123456789/check" \
  -H "Accept: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY_HERE"
200 Response
{
  "success": true,
  "data": {
    "order_id": "123456789",
    "status": "completed",
    "number": "+1234567890",
    "service_id": "123",
    "service_name": "Telegram",
    "country_id": "1",
    "country_name": "United States",
    "price": "850.00",
    "currency": "NGN",
    "code": "12345",
    "message": "Code Received",
    "time_left": 875,
    "refunded": false,
    "created_at": "2026-05-01T12:00:00.000000Z"
  }
}
POST

Cancel Number

/numbers/orders/{order_id}/cancel

Cancels and refunds an eligible number order when no SMS code has been received.

cURL Request
curl -X POST "https://logsdomain.com/api/v1/numbers/orders/123456789/cancel" \
  -H "Accept: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY_HERE"
200 Response
{
  "success": true,
  "data": {
    "order_id": "123456789",
    "status": "refunded",
    "number": "+1234567890",
    "code": null,
    "message": "Order cancelled and refunded",
    "refunded": true
  }
}

Reference

Error Responses

JSON
Error Format
{
  "success": false,
  "status": 422,
  "message": "No number is available for this service right now.",
  "code": "NUMBER_OUT_OF_STOCK"
}
USER_DISABLEDThe buyer account is disabled.
USER_BANNEDThe buyer account is banned.
UNAUTHENTICATEDThe bearer token is missing, invalid, or revoked.
VALIDATION_FAILEDOne or more request fields are missing or invalid.
INSUFFICIENT_BALANCEThe wallet balance cannot cover the purchase.
NUMBER_SERVICE_NOT_FOUNDThe selected number service does not exist for the selected country.
NUMBER_ORDER_NOT_FOUNDThe requested number order does not exist for the authenticated account.
NUMBER_OUT_OF_STOCKNo phone number is available for the selected service right now.
NUMBER_PRICE_CHANGEDThe number service price changed. Fetch services again before retrying.
NUMBER_CODE_ALREADY_RECEIVEDThe number already received a code and cannot be cancelled.
NUMBER_REFUND_FAILEDThe number was cancelled, but local refund completion needs support review.
IDEMPOTENCY_KEY_REUSEDThe idempotency key was used for a different request.