← FalconGrow

API de Revendedores

API Key

Conecta tu panel en un minuto

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:

API URLhttps://www.falcongrow.com/api/v2
API keyla tuya, en el panel: Perfil → pestaña API

Acciones 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

  1. 1

    Crea tu cuenta

    Gratis y sin suscripción. Crear cuenta

  2. 2

    Copia tu clave de API

    En el panel: Perfil → pestaña API. Es distinta de tu contraseña y la regeneras cuando quieras. Ir a mi clave

  3. 3

    Recarga y conéctate

    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.

Qué precio te cobra la API

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.

Lista panel completa

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 →

Tabla pública de precios

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 →

Por API

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.

Resumen

Endpointhttps://www.falcongrow.com/api/v2
MétodoPOST (GET solo para action=services)
FormatoJSON o application/x-www-form-urlencoded
Rate limit120 solicitudes / minuto por API key

Sigue 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.

Autenticación

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.

action: services

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=services

Respuesta

[
  {
    "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
  },
  ...
]

action: balance

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"
}

action: add

Crea un nuevo pedido. El saldo se debita automáticamente.

ParámetroTipoReq.Descripción
keystringrequeridoTu API key
serviceintegerrequeridoID del servicio (ver action=services)
linkstringrequeridoURL del perfil/video/post objetivo
quantityintegerrequeridoCantidad (entre min y max del servicio)
runsintegeropcionalDripfeed: número de tandas (si el servicio lo soporta)
intervalintegeropcionalDripfeed: 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" }

action: status

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

action: refill

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,7392

Respuesta — un pedido

{ "refill": "9910" }

Respuesta — varios pedidos

[
  { "order": 7391, "refill": "9910" },
  { "order": 7392, "refill": { "error": "Refill already requested in the last 24 hours" } }
]

action: cancel

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,7392

Respuesta

[
  { "order": 7391, "cancel": 1 },
  { "order": 7392, "cancel": { "error": "Order cannot be canceled" } }
]

action: refill_status

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" }

Errores

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" }
HTTPCausa
200Respuesta normal y también los errores de validación: mira si viene la clave error
429Límite excedido (120 req/min por API key); espera lo que indica Retry-After
500Error interno del servidor; reintenta más tarde

Ejemplo de Integración (PHP)

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]);

Cambios

Septiembre de 2026 — formato de paneles estándar

  • Los errores responden HTTP 200 con 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.
  • Nueva acción cancel; refill_status responde que no está disponible.

¿Listo para integrar? Crea tu cuenta y copia tu API key del perfil.