Log Domain API

A unified API for virtual number verification, social media account purchasing, and social media boosting services. Powered by 6 provider portals across three service categories.

Introduction

This API gives you programmatic access to three distinct service categories:

📱 Number Rentals
Portal 1 · Portal 2 — SMS verification numbers
👤 Social Accounts
Portal 3 · Portal 5 — Purchase aged social profiles
🚀 Social Boosting
Portal 4 · Portal 6 — Likes, followers, views & more
🔑 One API Key
Single key for all services

All endpoints use JSON request/response bodies. Authenticate with the Authorization: Bearer header.

Authentication

Every request requires an API key in the Authorization header. Keys are generated from your account dashboard and work across all service categories.

Authorization: Bearer YOUR_API_KEY
Important: Keep your API key secret. Never expose it in client‑side code or public repositories. If compromised, revoke it immediately from the dashboard.

A missing or invalid key returns:

HTTP/1.1 401 Unauthorized
{
  "status":  "error",
  "message": "Invalid API key."
}

Base URL

https://api.logdomain.com/v1

All endpoints live under /v1/. For testing, use the staging environment at api.logdomain.com/v1.

Response Format

Every response follows this structure:

{
  "status": "success",       // "success" or "error"
  "data":   { … },               // Response payload
  "errors": null               // null on success; error details otherwise
}

HTTP Status Codes

CodeMeaning
200Success
400Bad request — missing or invalid parameter
401Unauthorized — invalid or expired API key
402Payment required — insufficient account balance
404Not found — resource does not exist
405Method not allowed — wrong HTTP verb
500Internal server error
502Bad gateway — upstream provider is unreachable

Section 1 — Number Rentals

📱 Portal Overview

Rent temporary virtual phone numbers for SMS verification. Two provider portals are available:

PortalProviderIdentity
portal1Portal 1 (BloomSMS)REST JSON API with Bearer authentication
portal2Portal 2 (DaisySMS)Query-param API with URL-based authentication

Workflow: List countries → List services → Rent a number → Poll for SMS → Cancel if unused. Both portals are queried transparently — you don't need to know which one owns your activation.

GET /countries

Returns a list of countries with available phone numbers for the specified portal.

GET /api/countries?portal=portal1

Query Parameters

ParamTypeRequiredDescription
portalstringYesportal1 or portal2

Example Request

curl -X GET "https://api.logdomain.com/v1/countries?portal=portal1" \
  -H "Authorization: Bearer YOUR_API_KEY"

Example Response

{
  "status": "success",
  "data": {
    "portal":    "portal1",
    "provider":  "Portal 1",
    "count":     45,
    "countries": [
      { "id": 12, "name": "United States", "code": "US" },
      { "id": 44, "name": "United Kingdom", "code": "GB" },
      …
    ]
  },
  "errors": null
}

GET /services

Returns available services (apps/platforms) for a given portal and country, with final prices in NGN including platform markup.

GET /api/services?portal=portal1&country=12

Query Parameters

ParamTypeRequiredDescription
portalstringYesportal1 or portal2
countrystringPortal 1 onlyCountry ID (e.g. 12 for US)

Example Request

curl -X GET "https://api.logdomain.com/v1/services?portal=portal1&country=12" \
  -H "Authorization: Bearer YOUR_API_KEY"

Example Response

{
  "status": "success",
  "data": {
    "portal":     "portal1",
    "provider":   "Portal 1",
    "country_id": "12",
    "count":      28,
    "services":   [
      { "code": "wa", "name": "WhatsApp", "amount": "270.00", "currency": "NGN" },
      { "code": "tg", "name": "Telegram", "amount": "225.00", "currency": "NGN" },
      …
    ]
  },
  "errors": null
}

GET /rent

Rent a virtual phone number. Your balance is deducted immediately. Save the transaction_id and activation_id — you'll need them to poll status and cancel.

GET /api/rent?portal=portal1&country=12&code=wa

Query Parameters

ParamTypeRequiredDescription
portalstringYesportal1 or portal2
countrystringPortal 1 onlyCountry ID
codestringYesService code (e.g. wa, tg, go)

Example Request

curl -X GET "https://api.logdomain.com/v1/rent?portal=portal1&country=12&code=wa" \
  -H "Authorization: Bearer YOUR_API_KEY"

Example Response

{
  "status": "success",
  "message": "Number rented successfully.",
  "data": {
    "transaction_id": "TXN20260805_A3F8B2C1_D4E5F6",
    "portal":         "portal1",
    "provider":       "Portal 1",
    "service":        "wa",
    "service_name":   "WhatsApp",
    "country_id":     "12",
    "activation_id":  "ACT12345678",
    "phone_number":   "+12345678901",
    "amount":         "270.00",
    "currency":       "NGN",
    "balance_before": "5000.00",
    "balance_after":  "4730.00",
    "expires_at":     "2026-08-05T15:00:00Z"
  },
  "errors": null
}
⚠️ Important: Save transaction_id and activation_id. Use them to poll for SMS codes via GET /status and to cancel/refund via POST /status or POST /rental_cancel.

POST /rental_cancel

Cancel a rental and receive an automatic refund. The server checks both portals for the SMS status first — if a code was already received, cancellation is denied (the service was used).

POST /api/rental_cancel

Request Body (JSON)

FieldTypeRequiredDescription
list_idstringYesThe transaction_id returned by GET /rent

Example Request

curl -X POST "https://api.logdomain.com/v1/rental_cancel" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"list_id": "TXN20260805_A3F8B2C1_D4E5F6"}'

Success Response

{
  "status": "success",
  "data": {
    "list_id":            "TXN…",
    "activation_id":      "ACT…",
    "successful_provider": "Portal 1",
    "refund": {
      "balance_before": 4730,
      "balance_after":  5000,
      "refund_amount":  270
    },
    "transaction": {
      "old_status": "pending",
      "new_status": "refunded"
    }
  },
  "errors": null
}

Already Cancelled (Idempotent)

{
  "status": "success",
  "data": {
    "list_id": "TXN…",
    "status":  "refunded",
    "message": "Transaction already refunded"
  }
}

GET POST /status

Dual-method endpoint: Poll for SMS status (GET) or manually update an activation (POST). Auto-detects SMS codes, syncs them to your transaction history, and auto-refunds expired numbers.

GET Check Activation Status

GET /api/status?activation_id=ACT123

Query Parameters

ParamTypeRequiredDescription
activation_idstringYesActivation ID from GET /rent

Example Request

curl -X GET "https://api.logdomain.com/v1/status?activation_id=ACT12345678" \
  -H "Authorization: Bearer YOUR_API_KEY"

Waiting for SMS

{
  "data": {
    "activation_id": "ACT…",
    "portal":        "Portal 1",
    "status":        "waiting",
    "phone_number":  "+12345678901"
  }
}

SMS Received!

{
  "data": {
    "status": "code_received",
    "sms": {
      "code":      "45678",
      "full_text": "Your WhatsApp code is 45678"
    }
  }
}

Expired (Auto-Refunded)

{
  "data": {
    "status":   "expired",
    "refunded": true,
    "refund": { "refund_amount": 270, "balance_after": 5000 },
    "message":  "Number has expired. Refund processed."
  }
}

POST Update Activation Status

POST /api/status

Request Body (JSON)

FieldTypeRequiredDescription
activation_idstringYes*Activation ID. *Or use list_id
list_idstringYes*Alternative: transaction_id
statusstringYescancel or complete/done

Cancel + Refund

curl -X POST "https://api.logdomain.com/v1/status" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"activation_id": "ACT…", "status": "cancel"}'

Mark as Complete

curl -X POST "https://api.logdomain.com/v1/status" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"activation_id": "ACT…", "status": "complete"}'

Common Service Codes

CodeServiceCodeService
waWhatsApptgTelegram
igInstagramfbFacebook
twTwitter/XlfTikTok
goGoogleaiOpenAI/ChatGPT
msMicrosoftamazonAmazon
dsDiscordsnSnapchat
siSignaltnLinkedIn
gpGoogle PlayppPayPal
ytYouTubespSpotify
tbTinderddDoorDash
ubUberairbnbAirbnb
vnVenmocbCash App
stStripeapApple

Section 2 — Social Accounts

👤 Portal 3 & Portal 5 Coming Soon

Purchase aged or fresh social media accounts across major platforms. Two provider portals for account sourcing:

PortalProviderDescription
portal3Portal 3Social media account marketplace
portal5Portal 5Social media account marketplace

Planned endpoints: Browse available accounts by platform (Facebook, TikTok, Instagram, etc.), view account details (age, followers, verification status), purchase an account, and check order status.

🚧 These endpoints are currently in development and will be available in an upcoming release. The API key and authentication system will be shared with the Number Rentals section.

Section 3 — Social Boosting

🚀 Portal 4 & Portal 6 Coming Soon

Boost your social media presence with followers, likes, views, comments, and other engagement services. Two provider portals for boosting:

PortalProviderDescription
portal4Portal 4Social media engagement & growth services
portal6Portal 6Social media engagement & growth services

Planned endpoints: Browse boost categories (followers, likes, views, comments, shares), view service details with pricing per quantity, place an order with a target URL/link, track order progress (pending → in progress → completed), and check delivery status.

🚧 These endpoints are currently in development and will be available in an upcoming release. The API key and authentication system will be shared with all other sections.

© 2026 Log Domain — API Documentation last updated August 5, 2026  ·  Section 1 (Number Rentals) fully available  ·  Section 2 & Section 3 coming soon