Developer Documentation

GeoSMM.pk REST API Reference (v2)

Automate social media marketing orders, real-time status tracking, service synchronization, and wallet balance monitoring via standard JSON POST requests.

API HTTP Endpoint https://geosmm.pk/api/v2
Request Method POST (Content-Type: application/x-www-form-urlencoded or multipart)
Authentication Pass your secret key in POST field key (generate in Account Settings)
Response Format Standard JSON (application/json; charset=utf-8)
Rate Limiting 60 requests / minute per IP / API key (burst limit: 120 req/min)
action: services

1. Service List

Retrieve all available SMM packages, service IDs, rates per 1,000, and minimum/maximum order constraints.

Parameter Type Required Description
key String Yes Your GeoSMM.pk API key
action String Yes Set value to services
// Sample JSON Response:
[
  {
    "service": 6891,
    "name": "Google AI Pro | Gemini Pro | Admin Account | 5 Invites",
    "type": "Default",
    "category": "Google Gemini AI Pro ✨ | 18 Months",
    "rate": "1.61",
    "min": "1",
    "max": "1"
  },
  {
    "service": 5773,
    "name": "CapCut Pro TEAM - Refill ♻ 25-35 Days",
    "type": "Default",
    "category": "CapCut | ♻ 30 Days",
    "rate": "3.10",
    "min": "1",
    "max": "1"
  }
]
action: add

2. Place New Order

Submit an automated order for followers, views, likes, or comments across Instagram, TikTok, YouTube, Facebook, or Telegram.

Parameter Type Required Description
key String Yes Your GeoSMM.pk API key
action String Yes Set value to add
service Integer Yes Service ID from the service list
link String Yes Target social media link / public profile URL
quantity Integer Yes Number of units to order
comments String Optional Line-separated custom comments (for custom comment services)
runs Integer Optional Number of drip-feed delivery batches
interval Integer Optional Delay in minutes between runs (default: 0)
// Sample JSON Response:
{
  "order": 104582
}
action: status / multi-status

3. Check Order Status

Query the real-time processing status, initial count, remaining count, and charge of an individual order or up to 100 batch orders.

Parameter Type Required Description
key String Yes Your GeoSMM.pk API key
action String Yes status (single) or multi-status (multiple)
order Integer Single only Order ID for single status lookups
orders String Batch only Comma-separated Order IDs, e.g. 104582,104583,104584
// Single Status Response:
{
  "charge": "0.4862",
  "start_count": "1420",
  "status": "In progress",
  "remains": "500",
  "currency": "USD"
}
action: balance & refill

4. User Balance & Service Refill

Check Balance

Parameters: action=balance

{
  "balance": "4250.75",
  "currency": "PKR"
}
Request Refill

Parameters: action=refill&order=104582

{
  "refill": 12894
}

Integration Code Examples

<?php
$apiKey = "YOUR_GEOSMM_API_KEY";
$apiUrl = "https://geosmm.pk/api/v2";

// 1. Fetch available services
$ch = curl_init($apiUrl);
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => [
        'key' => $apiKey,
        'action' => 'services'
    ]
]);
$services = json_decode(curl_exec($ch), true);
curl_close($ch);

// 2. Submit an automated order
$ch = curl_init($apiUrl);
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => [
        'key' => $apiKey,
        'action' => 'add',
        'service' => 6891,
        'link' => 'https://instagram.com/your_profile',
        'quantity' => 1000
    ]
]);
$order = json_decode(curl_exec($ch), true);
curl_close($ch);

echo "Order Placed ID: " . ($order['order'] ?? 'Error');
?>
import requests

API_KEY = "YOUR_GEOSMM_API_KEY"
API_URL = "https://geosmm.pk/api/v2"

# 1. Check Account Balance
balance_response = requests.post(API_URL, data={
    "key": API_KEY,
    "action": "balance"
}).json()
print("Current Balance:", balance_response.get("balance"), balance_response.get("currency"))

# 2. Place New Order
order_response = requests.post(API_URL, data={
    "key": API_KEY,
    "action": "add",
    "service": 6891,
    "link": "https://www.youtube.com/watch?v=sample",
    "quantity": 1000
}).json()
print("Order Response:", order_response)
# 1. Query Services
curl -X POST https://geosmm.pk/api/v2 \
  -d "key=YOUR_GEOSMM_API_KEY" \
  -d "action=services"

# 2. Submit New Order
curl -X POST https://geosmm.pk/api/v2 \
  -d "key=YOUR_GEOSMM_API_KEY" \
  -d "action=add" \
  -d "service=6891" \
  -d "link=https://instagram.com/sample" \
  -d "quantity=1000"

# 3. Check Order Status
curl -X POST https://geosmm.pk/api/v2 \
  -d "key=YOUR_GEOSMM_API_KEY" \
  -d "action=status" \
  -d "order=104582"

Standard Error Codes

JSON Error Message Resolution & Cause
{"error": "Incorrect request."} Missing action or key parameters in the POST payload.
{"error": "Invalid API Key."} The provided API key does not exist or has been regenerated. Generate a new key in Account Settings.
{"error": "The account is inactive."} Your account has been paused by the administrator. Contact WhatsApp support.
{"error": "Not enough funds on balance."} Your wallet balance in PKR/USD is insufficient for the requested service quantity. Top up via JazzCash or EasyPaisa.
{"error": "Quantity must be between Min and Max."} The requested quantity is outside the allowable limits defined in service_min and service_max.

Need custom rate integration, child panel setup, or developer assistance?

WhatsApp Developer Support (+92 332 7075276)