Si tu panel (Perfect Panel u otro script de panel SMM) ya trabaja con un proveedor de API v2, agrega FalconGrow en su sección de proveedores con estos dos datos:
https://www.falcongrow.com/api/v2Acciones estándar y forma de la respuesta
action=servicessin parámetros extra[{"service":42,"name":"…","type":"Default","category":"…","rate":"1.20","min":100,"max":50000,"dripfeed":false,"refill":true,"cancel":false}]action=addservice, link, quantity (runs, interval){"order":7391}action=statusorder | orders=1,2,3{"charge":"1.200000","start_count":4820,"status":"In progress","remains":643,"currency":"USD"}action=balancesin parámetros extra{"balance":"48.530000","currency":"USD"}action=refillorder | orders=1,2{"refill":"9910"}action=cancelorders=1,2[{"order":7391,"cancel":1}]Los errores responden HTTP 200 con {"error": "…"}. refill_status se acepta pero responde que no está disponible. Prueba tu clave con un cURL (copia y pega):
curl -X POST https://www.falcongrow.com/api/v2 \
-d key=TU_API_KEY \
-d action=balance¿Tu script usa la clase PHP estándar? Está más abajo, con la URL ya puesta.
Cómo empezar
Gratis y sin suscripción. Crear cuenta
En el panel: Perfil → pestaña API. Es distinta de tu contraseña y la regeneras cuando quieras. Ir a mi clave
Recarga saldo (desde $5 USD). Luego agrega FalconGrow como proveedor en tu panel con la URL https://www.falcongrow.com/api/v2 y tu clave, o haz tu primer pedido desde el panel web.
La API cobra de tu saldo la lista panel, la misma que el panel web. Es igual o menor que el precio sin cuenta de la compra directa.
Todos los servicios con su ID, precio por 1.000, mínimo y máximo. Es lo que pagas tú. Necesita cuenta (gratis).
Ver la lista en el panel →Sin registrarte, precios en vivo por red y servicio. Muestra el precio sin cuenta, que es igual o mayor que la lista panel.
Ver la tabla pública →action=services devuelve la misma lista panel: el campo rate es tu precio en USD por 1.000 unidades. No hay un archivo descargable fijo porque los precios se recalculan en cada sincronización del catálogo contra el costo mayorista: tu panel los vuelve a leer al sincronizar servicios.
https://www.falcongrow.com/api/v2JSON o application/x-www-form-urlencodedSigue el formato de los paneles SMM estándar (Perfect Panel y afines): mismos parámetros, mismas respuestas y errores en HTTP 200 con un campo error. Si tu panel ya se conecta a otro proveedor con API v2, puedes agregar FalconGrow con la URL de arriba y tu API key.
Toda solicitud autenticada debe incluir el parámetro key con tu API key. Puedes obtenerla desde Dashboard → Configuración → API Key.
curl -X POST https://www.falcongrow.com/api/v2 \
-H "Content-Type: application/json" \
-d '{"key": "TU_API_KEY", "action": "balance"}'Nunca compartas tu API key públicamente. Si se compromete, puedes regenerarla desde el dashboard — esto invalidará la key anterior.
Lista todos los servicios disponibles, con tu precio por 1.000 unidades. Requiere API key. type es el tipo de pedido: hoy todos los servicios publicados son Default (enlace + cantidad).
curl -X POST https://www.falcongrow.com/api/v2 \
-d key=TU_API_KEY \
-d action=servicesRespuesta
[
{
"service": 42,
"name": "Instagram — Seguidores Mundiales",
"type": "Default",
"category": "Instagram",
"rate": "1.20", // tu precio por 1.000 unidades (USD), lista panel
"min": 100,
"max": 50000,
"dripfeed": false,
"refill": true,
"cancel": false
},
...
]Devuelve el saldo disponible en tu cuenta.
curl -X POST https://www.falcongrow.com/api/v2 \
-H "Content-Type: application/json" \
-d '{"key": "TU_API_KEY", "action": "balance"}'Respuesta
{
"balance": "48.530000",
"currency": "USD"
}Crea un nuevo pedido. El saldo se debita automáticamente.
| Parámetro | Tipo | Req. | Descripción |
|---|---|---|---|
key | string | requerido | Tu API key |
service | integer | requerido | ID del servicio (ver action=services) |
link | string | requerido | URL del perfil/video/post objetivo |
quantity | integer | requerido | Cantidad (entre min y max del servicio) |
runs | integer | opcional | Dripfeed: número de tandas (si el servicio lo soporta) |
interval | integer | opcional | Dripfeed: minutos entre tandas |
curl -X POST https://www.falcongrow.com/api/v2 \
-H "Content-Type: application/json" \
-d '{
"key": "TU_API_KEY",
"action": "add",
"service": 42,
"link": "https://www.instagram.com/tunombre/",
"quantity": 1000
}'Respuesta
{ "order": 7391 }Si falta saldo o la cantidad está fuera de rango, no se crea el pedido ni se cobra nada:
{ "error": "Not enough funds on balance" }
{ "error": "Quantity less than minimal 100" }Consulta el estado de uno o varios pedidos. Para múltiples pedidos, pasa los IDs separados por coma (máx. 100).
# Pedido único (parámetro order)
curl -X POST https://www.falcongrow.com/api/v2 \
-H "Content-Type: application/json" \
-d '{"key": "TU_API_KEY", "action": "status", "order": 7391}'
# Consulta masiva (parámetro orders; la respuesta va por ID aunque sea uno)
curl -X POST https://www.falcongrow.com/api/v2 \
-H "Content-Type: application/json" \
-d '{"key": "TU_API_KEY", "action": "status", "orders": "7391,7392,7393"}'Respuesta — pedido único
{
"charge": "1.200000",
"start_count": 4820,
"status": "In progress",
"remains": 643,
"currency": "USD"
}Respuesta — múltiples pedidos
{
"7391": { "charge": "1.20", "start_count": 4820, "status": "Completed", "remains": 0, "currency": "USD" },
"7392": { "charge": "0.60", "start_count": 1200, "status": "In progress","remains": 300, "currency": "USD" },
"7393": { "error": "Incorrect order ID" }
}Estados posibles
Pending
En cola o esperando
In progress
Enviado al proveedor
Completed
Finalizado correctamente
Partial
Parcialmente completado
Canceled
Cancelado
Failed
Error técnico en el proveedor
Solicita la reposición de un pedido completado o parcial. Solo si el servicio tiene refill: true y su período de reposición sigue vigente; una solicitud cada 24 horas por pedido. Con orders pides hasta 100 de una vez.
# Un pedido
curl -X POST https://www.falcongrow.com/api/v2 \
-d key=TU_API_KEY -d action=refill -d order=7391
# Varios pedidos
curl -X POST https://www.falcongrow.com/api/v2 \
-d key=TU_API_KEY -d action=refill -d orders=7391,7392Respuesta — un pedido
{ "refill": "9910" }Respuesta — varios pedidos
[
{ "order": 7391, "refill": "9910" },
{ "order": 7392, "refill": { "error": "Refill already requested in the last 24 hours" } }
]Pide cancelar hasta 100 pedidos por llamada. Solo se aceptan pedidos que aún no empezaron a entregarse, de servicios con cancel: true y sin entrega gradual (drip-feed). "cancel": 1 significa que la cancelación quedó solicitada: cuando el pedido pasa a Canceled en status, el cargo vuelve a tu saldo.
curl -X POST https://www.falcongrow.com/api/v2 \
-d key=TU_API_KEY -d action=cancel -d orders=7391,7392Respuesta
[
{ "order": 7391, "cancel": 1 },
{ "order": 7392, "cancel": { "error": "Order cannot be canceled" } }
]no disponible Se acepta por compatibilidad, pero el estado de una reposición no se puede consultar: la respuesta es siempre un error. Para seguir un pedido repuesto, consulta su status.
{ "error": "Refill status is not supported" }Como en los paneles SMM estándar, los errores responden HTTP 200 con un objeto JSON con la clave error (mensajes en inglés). Las únicas excepciones son el límite de uso y un error interno.
{ "error": "Invalid API key" }
{ "error": "Incorrect request" }
{ "error": "Incorrect order ID" }
{ "error": "Not enough funds on balance" }| HTTP | Causa |
|---|---|
| 200 | Respuesta normal y también los errores de validación: mira si viene la clave error |
| 429 | Límite excedido (120 req/min por API key); espera lo que indica Retry-After |
| 500 | Error interno del servidor; reintenta más tarde |
Clase PHP lista para usar. Reemplaza api_url con https://www.falcongrow.com/api/v2 y asigna tu API key.
<?php
class Api
{
public $api_url = 'https://www.falcongrow.com/api/v2';
public $api_key = ''; // Tu API key aquí
/** Crear pedido */
public function order($data)
{
$post = array_merge(['key' => $this->api_key, 'action' => 'add'], $data);
return json_decode((string)$this->connect($post));
}
/** Estado de un pedido */
public function status($order_id)
{
return json_decode($this->connect([
'key' => $this->api_key,
'action' => 'status',
'order' => $order_id
]));
}
/** Estado de múltiples pedidos */
public function multiStatus($order_ids)
{
return json_decode($this->connect([
'key' => $this->api_key,
'action' => 'status',
'orders' => implode(",", (array)$order_ids)
]));
}
/** Listar servicios */
public function services()
{
return json_decode($this->connect([
'key' => $this->api_key,
'action' => 'services',
]));
}
/** Refill de un pedido */
public function refill(int $orderId)
{
return json_decode($this->connect([
'key' => $this->api_key,
'action' => 'refill',
'order' => $orderId,
]));
}
/** Refill de múltiples pedidos */
public function multiRefill(array $orderIds)
{
return json_decode($this->connect([
'key' => $this->api_key,
'action' => 'refill',
'orders' => implode(',', $orderIds),
]), true);
}
/** Estado de refill: FalconGrow responde siempre { "error": "Refill status is not supported" } */
public function refillStatus(int $refillId)
{
return json_decode($this->connect([
'key' => $this->api_key,
'action' => 'refill_status',
'refill' => $refillId,
]));
}
/** Cancelar pedidos */
public function cancel(array $orderIds)
{
return json_decode($this->connect([
'key' => $this->api_key,
'action' => 'cancel',
'orders' => implode(',', $orderIds),
]), true);
}
/** Consultar saldo */
public function balance()
{
return json_decode($this->connect([
'key' => $this->api_key,
'action' => 'balance',
]));
}
private function connect($post)
{
$_post = [];
if (is_array($post)) {
foreach ($post as $name => $value) {
$_post[] = $name . '=' . urlencode($value);
}
}
$ch = curl_init($this->api_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
if (is_array($post)) {
curl_setopt($ch, CURLOPT_POSTFIELDS, join('&', $_post));
}
$result = curl_exec($ch);
if (curl_errno($ch) != 0 && empty($result)) {
$result = false;
}
curl_close($ch);
return $result;
}
}Uso
$api = new Api();
// Listar servicios
$services = $api->services();
// Consultar saldo
$balance = $api->balance();
// Crear pedido
$order = $api->order([
'service' => 1,
'link' => 'https://instagram.com/ejemplo',
'quantity' => 1000
]);
// Pedido con dripfeed
$order = $api->order([
'service' => 1,
'link' => 'https://instagram.com/ejemplo',
'quantity' => 1000,
'runs' => 10,
'interval' => 60
]);
// Consultar estado
$status = $api->status($order->order);
// Consulta masiva
$statuses = $api->multiStatus([1, 2, 3]);
// Refill
$refill = $api->refill($order->order);
// Cancelar
$cancel = $api->cancel([1, 2]);Septiembre de 2026 — formato de paneles estándar
error, en inglés (antes 400/403 y mensajes en español). 429 y 500 se mantienen.add responde 200 (antes 201) con el mismo cuerpo.services: type es el tipo de pedido (Default), ya no la categoría.status con orders responde siempre por ID, aunque pidas uno.refill acepta orders, admite pedidos parciales y devuelve el ID como texto.cancel; refill_status responde que no está disponible.¿Listo para integrar? Crea tu cuenta y copia tu API key del perfil.