AgoVerify API Documentation

Build on top of AgoVerify using our REST API for SMS activations and SMM services.

Authentication

All API requests (except /health) must include your API key. You can create and manage keys from your Developer page in your dashboard.

X-API-Key: av_your_api_key_here

Or use the standard Bearer token header:

Authorization: Bearer av_your_api_key_here

API Key Permissions

Permission Description
full Read and write access (default). Can create orders, cancel, refill, resend, and reactivate.
read_only Read-only. Cannot create orders, cancel, refill, resend, or reactivate.

Write operations are marked with a POST badge below and require a full key.

Base URL

https://www.agoverify.com/api/v1

Rate Limiting

Rate limits are applied per API key. Response headers indicate your current usage:

Header Description
X-RateLimit-Limit Maximum requests per window
X-RateLimit-Remaining Remaining requests in current window

When rate limited, you receive a 429 Too Many Requests response with a retry_after field indicating when to retry.

Endpoints

Health & Account

GET /health

Check if the API is operational. No authentication required.

GET /balance

Get current account balance and currency.

SMS Activations

GET /sms/services

List all SMS verification services available via the API.

GET /sms/countries?service={code}

List available countries. Optionally filter by service code.

GET /sms/price?service={code}&country={code}

Get pricing for a service/country combination.

POST /sms/orders

Rent a phone number. Body: service_code, country_code, operator (optional). Requires full key.

GET /sms/orders

List SMS orders with pagination. Query: status, service, country, per_page.

GET /sms/orders/active

List all currently active SMS orders.

GET /sms/orders/{id}

Get details for a specific SMS order.

GET /sms/orders/{id}/status

Check order status and retrieve SMS code (polls upstream provider).

POST /sms/orders/{id}/cancel

Cancel an active order and refund balance. Requires full key.

POST /sms/orders/{id}/resend

Request the provider to resend the SMS. Requires full key.

POST /sms/orders/{id}/reactivate

Reactivate a completed number to receive a new SMS (charges balance). Requires full key.

SMM Services

GET /smm/platforms

List all platforms with logos, category counts, and service counts.

GET /smm/categories

List normalized service types (Likes, Followers, Comments...). Optional: ?platform=facebook to filter.

GET /smm/services

Get grouped catalog for a platform. Required: ?platform=facebook. Optional: ?service_type=likes. Returns categories with 3 quality tiers each.

GET /smm/services/{id}

Get details for a specific SMM service.

POST /smm/orders

Place a social media marketing order. Body: service_id (from tier), link, quantity, runs (optional), interval (optional). Requires full key.

GET /smm/orders

List SMM orders with pagination. Query: status, platform, per_page.

GET /smm/orders/{id}

Get details for a specific SMM order (includes service_type and quality_tier).

GET /smm/orders/{id}/status

Check order status from upstream provider (updates charge, start count, remains).

POST /smm/orders/{id}/cancel

Cancel an SMM order (if supported and pending/in_progress). Refunds balance. Requires full key.

POST /smm/orders/{id}/refill

Request a refill for a completed/partial order (if supported). Requires full key.

Unified Backend

AgoVerify uses a unified backend. The system automatically selects the best available provider for each service and country based on admin-configured priority — you only ever request a service code and country code, and the platform handles the rest. No provider or server parameter is required or accepted.

Create an SMS order example

curl -X POST "https://www.agoverify.com/api/v1/sms/orders" \
  -H "X-API-Key: av_your_api_key_here" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{"service_code": "wa", "country_code": "0"}'

Create an SMM order example

First, browse the catalog to find a service tier ID:

curl "https://www.agoverify.com/api/v1/smm/services?platform=instagram" \
  -H "X-API-Key: av_your_api_key_here" \
  -H "Accept: application/json"

Then place the order using the tier's id:

curl -X POST "https://www.agoverify.com/api/v1/smm/orders" \
  -H "X-API-Key: av_your_api_key_here" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{"service_id": 123, "link": "https://instagram.com/myprofile", "quantity": 1000}'

Webhooks

Webhooks are sent as POST requests to your registered endpoints. Configure them via the Developer page in your dashboard.

SMS Events

  • sms.order.created — a new SMS order was created.
  • sms.received — an SMS code was received for an order.
  • sms.order.cancelled — an order was cancelled and refunded.
  • sms.order.expired — an order expired and was refunded.

SMM Events

  • smm.order.created — a new SMM order was created.
  • smm.order.completed — an SMM order completed.
  • smm.order.cancelled — an SMM order was cancelled.

Each webhook includes a X-Webhook-Signature header (HMAC-SHA256 of the JSON body using your endpoint secret) and X-Webhook-Event header with the event name.

Typical Workflow

SMS Verification

  1. GET /sms/services — find the service you need (e.g., wa for WhatsApp)
  2. GET /sms/countries?service=wa — get available countries
  3. GET /sms/price?service=wa&country=0 — check pricing
  4. POST /sms/orders — create the order, receive phone number
  5. Use the phone number on the target service
  6. GET /sms/orders/{id}/status — poll for SMS code (or wait for webhook)
  7. POST /sms/orders/{id}/cancel — cancel if no longer needed (get refund)

SMM Order

  1. GET /smm/platforms — list available platforms with logos
  2. GET /smm/services?platform=instagram — get categories (Likes, Followers...) with 3 quality tiers each
  3. POST /smm/orders — create the order using the id from your chosen tier, with link and quantity
  4. GET /smm/orders/{id}/status — check progress (or wait for webhook)
  5. POST /smm/orders/{id}/refill — request a refill if needed

Error Handling

All errors follow a consistent format:

{
  "success": false,
  "message": "Human-readable error message",
  "data": {}
}
Code Meaning
200Success
201Created
400Bad request
401Unauthorized (invalid/missing API key)
402Payment required (insufficient balance)
403Forbidden (read-only key attempting write)
404Not found
422Validation error
429Rate limit exceeded
500Internal server error
503Service unavailable (provider error)

Accepted Payment Methods

MTN
MoMo
ORANGE
MONEY