API v1 Crear una clave →

La API de Furia Reports

Saca tus datos de Meta Ads, Google Ads, tu cruce de ventas real, tu calendario de pipeline y tu email marketing — ya normalizados y cuadrados — hacia tu CRM, una IA como Claude o ChatGPT, un dashboard propio o cualquier herramienta. Solo lectura. Una clave. JSON limpio.

🔑
Clave, no OAuthUn token Bearer y a trabajar. Sin flujos ni caducidades.
📊
Datos cuadradosKPI = suma de tabla = suma de gráfico. Al céntimo, en euros.
🤖
Lista para IAPega la clave en Claude/ChatGPT y pregúntale por tus campañas.
🔒
Solo lecturaNunca modifica ni gasta. Imposible romper nada con ella.
EmpezarAutenticaciónLímites EndpointsFormato de respuestaEjemplos Usarla con una IAErrores

01Empezar en 30 segundos

  1. Entra en Furia Reports → Ajustes → API de Furia Reports.
  2. Pulsa + Nueva clave, ponle un nombre (p. ej. «CRM de Aitor») y cópiala. Solo se muestra una vez.
  3. Úsala en la cabecera Authorization de tus peticiones. Ya está.
# comprueba que tu clave funciona
curl -H "Authorization: Bearer frk_TU_CLAVE" \
     https://furiareports.com/api/ping
// respuesta
{ "ok": true, "workspace": "Allora Publicidad", "plan": "pro", "via": "api_key" }
La API vive en https://furiareports.com/api (también responde en https://app.furiareports.com/api). Todas las rutas empiezan por /api.

02Autenticación

Cada petición lleva tu clave en la cabecera Authorization con el prefijo Bearer:

Authorization: Bearer frk_xxxxxxxxxxxxxxxxxxxxxxxx
Necesitas una suscripción activa (o periodo de prueba en curso) para que la API sirva datos. Si tu suscripción caduca, las peticiones responden 402.

03Límites de uso

Por clave, con ventana fija. Los datos se cachean en servidor (~15 min), así que estos límites sobran para cualquier integración razonable:

VentanaLímiteAl superarlo
por minuto60 peticiones429 con cabecera Retry-After (segundos)
por hora1000 peticiones

Cachea del lado del cliente lo que no cambie a menudo. No hace falta pedir el mismo rango cada pocos segundos.

04Endpoints

Todos son GET y devuelven JSON. El parámetro de fecha range acepta: hoy, ayer, hoyayer, 7d, 14d, 30d, 90d, o un rango libre custom&since=YYYY-MM-DD&until=YYYY-MM-DD (máx. 366 días). Si gestionas varias cuentas, añade account=act_123 o client=<id>.

GET /api/ping
Comprueba tu clave. Devuelve el nombre del workspace y el plan.
GET /api/panel?range=30d
El informe principal de Meta Ads: totales (tot), serie diaria (daily) y desglose por campaña (camps), con el periodo anterior para comparar (prev).
GET /api/panel/audience?range=30d
Audiencia: edad/género, plataformas, dispositivos, regiones (para mapa) y embudo de vídeo.
GET /api/panel/ads?range=30d
Detalle a nivel anuncio: campaña → conjunto → anuncio, con estado y todas las métricas.
GET /api/crossdata/roas?range=30d
El cruce estrella: inversión en ads frente a las ventas reales de tu tienda (Woo/Shopify) → ROAS real, no el declarado por el píxel.
GET /api/google/panel?range=30d
Informe de Google Ads: totales, diario, campañas, palabras clave y términos de búsqueda.
GET /api/calendar?month=2026-07
Calendario del pipeline del CRM (GoHighLevel/Bitrix): leads, ganadas con importe y perdidas por día.
GET /api/emailmkt
Email marketing (Mailchimp/Brevo/ActiveCampaign): envíos, aperturas, clics, OR y CTR por campaña.
GET /api/meta/status
Cuentas de Meta conectadas a tu workspace.
GET /api/google/status
Cuentas de Google Ads conectadas.
GET /api/clients
Tus clientes (modo agencia) y las fuentes vinculadas a cada uno.
GET /api/connectors
Conectores dados de alta (tienda, CRM, email, IA) con su estado — sin exponer credenciales.

05Formato de respuesta

Ejemplo abreviado de GET /api/panel?range=30d. El dinero va en euros (número, no céntimos); las métricas están ya sumadas y cuadran entre tot, daily y camps.

{
  "range": "30d", "days": 30,
  "source": "meta",            // "meta" = datos reales · "demo" = cuenta de demostración
  "account": { "id": "act_123", "name": "Mi Cuenta", "currency": "EUR" },
  "cur": {
    "tot": { "spend": 4538.10, "imp": 454133, "clk": 6274,
             "leads": 711, "compras": 36, "rev": 57857.00, "reach": 198340 },
    "daily": [ { "date": "2026-06-12", "spend": 151.20, "leads": 24, "compras": 1, ... } ],
    "camps": [ { "n": "Leads – Advantage+", "active": true, "spend": 1140.00,
               "leads": 311, "compras": 12, "rev": 19100.00, ... } ]
  },
  "prev": { /* misma forma: el periodo anterior, para calcular variaciones */ }
}

Métricas derivadas (CPL, CPM, CPC, ROAS, CTR) las calculas tú a partir de estos campos crudos, para que nunca haya redondeos escondidos:

06Ejemplos

cURL

curl -H "Authorization: Bearer $FURIA_KEY" \
  "https://furiareports.com/api/crossdata/roas?range=30d"

Node.js (fetch)

const res = await fetch("https://furiareports.com/api/panel?range=30d", {
  headers: { Authorization: `Bearer ${process.env.FURIA_KEY}` }
});
const data = await res.json();
console.log("Gasto:", data.cur.tot.spend, "€ · Leads:", data.cur.tot.leads);

Python (requests)

import os, requests
r = requests.get(
    "https://furiareports.com/api/panel",
    params={"range": "30d"},
    headers={"Authorization": f"Bearer {os.environ['FURIA_KEY']}"},
)
d = r.json()
print("ROAS:", d["cur"]["tot"]["rev"] / d["cur"]["tot"]["spend"])

07Usarla con una IA (Claude, ChatGPT…)

Este es el caso que hace magia: das tu clave a un asistente y le preguntas por tus campañas en lenguaje natural. Como todo son GET con una cabecera, cualquier IA con acceso a herramientas (Claude con MCP/HTTP, GPTs personalizados, agentes) puede consultarla.

GPT personalizado / agente

Instrucción de ejemplo para el asistente

Eres mi analista de paid media. Para responder, consulta la API de Furia
Reports (GET, cabecera Authorization: Bearer <clave>). Usa /api/panel para
Meta, /api/google/panel para Google y /api/crossdata/roas para el ROAS real
de tienda. Calcula CPL = spend/leads y ROAS = rev/spend. Da cifras exactas,
nunca inventes datos: si la API no lo devuelve, dilo.
Como la clave es de solo lectura, es seguro dársela a un asistente: en el peor caso solo puede leer tus informes, nunca tocar tus cuentas ni tu facturación.

08Errores

CódigoSignificadoQué hacer
200OK
401Clave ausente, mal formada o revocadaRevisa la cabecera Authorization; crea una clave nueva si hace falta.
402Suscripción no activaActiva tu suscripción en Furia Reports.
429Límite de peticiones superadoEspera los segundos que indica Retry-After y reintenta.
502 / 503La fuente (Meta/Google/tienda) falló al responderReintenta con espera; es temporal.

Los errores devuelven { "error": "descripción" }. Nada de datos inventados: si una fuente cae, la API lo dice, no rellena con ceros.

¿Listo para conectar tus datos?

Crea tu primera clave en menos de un minuto desde los ajustes de tu cuenta.

Crear una clave de API →