Pharaoh
Log inCreate account
API

The standard SMM panel API, v2

Automate everything you can do from the dashboard: pull the service list, place orders, track status, refill and cancel — with your own key.

Overview

Quick facts

Endpoint
https://pharaohpanel.com/api/v2
Method
HTTP POST, form-encoded parameters, JSON response
Auth
Your API key, generated and regenerable in the dashboard's API view
Actions
balance, services, add (single or mass), status, refill, refill_status, cancel
Batching
status, refill_status and cancel accept up to 100 comma-separated IDs; mass add accepts up to 100 [service, link, quantity] rows
Errors
Invalid requests return an { "error": "message" } object instead of a result

The API follows the de-facto standard SMM panel format, so existing integrations that speak this format can be pointed at Pharaoh's endpoint without changing their request shape. Your key carries your balance and permissions — keep it secret and regenerate it from the dashboard if it leaks (regenerating invalidates the previous key immediately).

Reference

Every action, with examples

The same documentation is available inside the dashboard's API view, next to your key.

User balance

ParameterDescription
keyYour API key
actionbalance

Example response

{
  "balance": "9.98",
  "currency": "USD"
}
Example of PHP code
<?php

// One helper for every call: POST the params, get JSON back.
function api(array $post): array {
  $ch = curl_init("https://pharaohpanel.com/api/v2");
  curl_setopt_array($ch, [
    CURLOPT_POST           => 1,
    CURLOPT_POSTFIELDS     => http_build_query($post),
    CURLOPT_RETURNTRANSFER => true,
  ]);
  return json_decode(curl_exec($ch), true);
}

// User balance
print_r(api([
  "key"    => "YOUR_API_KEY",
  "action" => "balance",
]));

Services list

ParameterDescription
keyYour API key
actionservices

Example response

[
  {
    "service": "PH-D2FB-35FB",
    "name": "Instagram Views — 60KD",
    "category": "Instagram Views",
    "type": "Default",
    "rate": 0.0015,
    "min": 100,
    "max": 217545811,
    "refill": false,
    "cancel": true
  }
  …
]
Example of PHP code
<?php

// One helper for every call: POST the params, get JSON back.
function api(array $post): array {
  $ch = curl_init("https://pharaohpanel.com/api/v2");
  curl_setopt_array($ch, [
    CURLOPT_POST           => 1,
    CURLOPT_POSTFIELDS     => http_build_query($post),
    CURLOPT_RETURNTRANSFER => true,
  ]);
  return json_decode(curl_exec($ch), true);
}

// Services list — IDs are strings (PH-XXXX-XXXX); copy them from
// this list, they are stable across calls.
$services = api([
  "key"    => "YOUR_API_KEY",
  "action" => "services",
]);
print_r($services);

Add order

ParameterDescription
keyYour API key
actionadd
serviceService ID from the services list — a string like PH-D2FB-35FB
linkPublic link to the profile or post
quantityQuantity — must be between the service min and max
runsOptional drip-feed: number of runs
intervalOptional drip-feed: minutes between runs

Example response

{
  "order": 3826085201
}
Example of PHP code
<?php

// One helper for every call: POST the params, get JSON back.
function api(array $post): array {
  $ch = curl_init("https://pharaohpanel.com/api/v2");
  curl_setopt_array($ch, [
    CURLOPT_POST           => 1,
    CURLOPT_POSTFIELDS     => http_build_query($post),
    CURLOPT_RETURNTRANSFER => true,
  ]);
  return json_decode(curl_exec($ch), true);
}

// Add order — total cost = rate × quantity × runs ÷ 1000
$order = api([
  "key"      => "YOUR_API_KEY",
  "action"   => "add",
  "service"  => "PH-D2FB-35FB",
  "link"     => "https://instagram.com/your.profile",
  "quantity" => 1000,
]);
print_r($order);

Add mass orders

ParameterDescription
keyYour API key
actionadd
ordersJSON array of [service, link, quantity] rows — up to 100 rows per call; malformed rows are ignored, rejected rows answer with an error entry

Example response

[
  {
    "order": 3826085201
  },
  {
    "error": "Quantity must be between 100 and 217545811"
  }
]
Example of PHP code
<?php

// One helper for every call: POST the params, get JSON back.
function api(array $post): array {
  $ch = curl_init("https://pharaohpanel.com/api/v2");
  curl_setopt_array($ch, [
    CURLOPT_POST           => 1,
    CURLOPT_POSTFIELDS     => http_build_query($post),
    CURLOPT_RETURNTRANSFER => true,
  ]);
  return json_decode(curl_exec($ch), true);
}

// Mass orders — one call, up to 100 rows
$orders = api([
  "key"    => "YOUR_API_KEY",
  "action" => "add",
  "orders" => json_encode([
    ["PH-D2FB-35FB", "https://instagram.com/your.profile", 1000],
    ["PH-2553-347F", "https://your-site.com", 500],
  ]),
]);
print_r($orders);

Order status

ParameterDescription
keyYour API key
actionstatus
orderOrder ID — or orders: comma-separated IDs, up to 100, for a batched status

Example response

{
  "charge": "0.02",
  "currency": "USD",
  "status": "In progress",
  "start_count": "1050",
  "remains": "950"
}
Example of PHP code
<?php

// One helper for every call: POST the params, get JSON back.
function api(array $post): array {
  $ch = curl_init("https://pharaohpanel.com/api/v2");
  curl_setopt_array($ch, [
    CURLOPT_POST           => 1,
    CURLOPT_POSTFIELDS     => http_build_query($post),
    CURLOPT_RETURNTRANSFER => true,
  ]);
  return json_decode(curl_exec($ch), true);
}

// Order status — status is one of Pending, In progress,
// Completed, Partial, Canceled
print_r(api([
  "key"    => "YOUR_API_KEY",
  "action" => "status",
  "order"  => 3826085201,
]));

Refill

ParameterDescription
keyYour API key
actionrefill
orderOrder ID — services flagged refill=true only

Example response

{
  "refill": "1"
}
Example of PHP code
<?php

// One helper for every call: POST the params, get JSON back.
function api(array $post): array {
  $ch = curl_init("https://pharaohpanel.com/api/v2");
  curl_setopt_array($ch, [
    CURLOPT_POST           => 1,
    CURLOPT_POSTFIELDS     => http_build_query($post),
    CURLOPT_RETURNTRANSFER => true,
  ]);
  return json_decode(curl_exec($ch), true);
}

// Refill
print_r(api([
  "key"    => "YOUR_API_KEY",
  "action" => "refill",
  "order"  => 3826085201,
]));

Refill status

ParameterDescription
keyYour API key
actionrefill_status
refillRefill ID — or refills: comma-separated, up to 100

Example response

{
  "status": "Completed"
}
Example of PHP code
<?php

// One helper for every call: POST the params, get JSON back.
function api(array $post): array {
  $ch = curl_init("https://pharaohpanel.com/api/v2");
  curl_setopt_array($ch, [
    CURLOPT_POST           => 1,
    CURLOPT_POSTFIELDS     => http_build_query($post),
    CURLOPT_RETURNTRANSFER => true,
  ]);
  return json_decode(curl_exec($ch), true);
}

// Refill status
print_r(api([
  "key"    => "YOUR_API_KEY",
  "action" => "refill_status",
  "refill" => 3826085201,
]));

Cancel

ParameterDescription
keyYour API key
actioncancel
ordersComma-separated order IDs, up to 100

Example response

[
  {
    "order": 3826085201,
    "cancel": 1
  }
]
Example of PHP code
<?php

// One helper for every call: POST the params, get JSON back.
function api(array $post): array {
  $ch = curl_init("https://pharaohpanel.com/api/v2");
  curl_setopt_array($ch, [
    CURLOPT_POST           => 1,
    CURLOPT_POSTFIELDS     => http_build_query($post),
    CURLOPT_RETURNTRANSFER => true,
  ]);
  return json_decode(curl_exec($ch), true);
}

// Cancel
print_r(api([
  "key"    => "YOUR_API_KEY",
  "action" => "cancel",
  "orders" => "3826085201,3826085202",
]));
Notes

Drip-feed and good practice

Drip-feed. Add runs (2–1,000) and interval (5–43,200 minutes) to the add action to spread delivery over time. The total cost is rate × quantity × runs ÷ 1,000.

Poll sanely. The status action accepts up to 100 order IDs per call — batch them instead of polling one by one.

Check the flags. The services response tells you per service whether refill and cancel are supported before you promise them downstream.

Respect the link rules. Orders expect a public profile or post link; private pages cannot be fulfilled.

Generate your key and test the first call

The API view in the dashboard also offers a one-click PHP snippet for each action.

Open the API view