rankion.ai
API

Créditos y rate limits

Cómo se cobran los créditos, qué cuesta cada acción y qué rate limits aplican.

Rankion cobra las acciones de pago de la API mediante un sistema simple de créditos. Los endpoints de solo lectura (listas GET, polls de status, vistas de detalle) son siempre gratis — solo se paga lo que consume tokens, APIs externas o tiempo de GPU.

¿Qué son los créditos?

  • Una unidad común a toda la plataforma. Da igual si es generación de artículos, run de AI Visibility, pull de backlinks o edición de imágenes — todo se factura en créditos.
  • Balance por team. Los créditos cuelgan del team, no del usuario. Todos los tokens del mismo team consumen del mismo bote.
  • Reserva previa. Los créditos se reservan/cobran al hacer dispatch del job — no al finalizarlo. Esto evita race conditions, pero también significa: un job abortado no devuelve los créditos automáticamente.

Mecánica de créditos

En términos de Laravel, antes de cada endpoint de pago vive el middleware credits:N. Comprueba el balance del team, cobra y solo entonces deja correr al controlador.

  • Middleware credits:N → cobra N créditos antes del dispatch del job. Si el team baja de N, la API responde directamente con 402 Insufficient Credits sin dispatch.
  • Refrescos inline (p. ej. Keyword Explorer con ?cache=false) tiran un cobro fijo de 50 créditos — el cache-bust es la operación cara.
  • Jobs asíncronos (HTTP 202) ya están pagados al recibir la response. El worker en background hereda el cargo; un crash del worker no reembolsa automáticamente.

Coste en créditos (selección)

Acción Endpoint Créditos
Generar artículo POST /v1/articles/{id}/generate 5
Optimizar artículo POST /v1/articles/{id}/optimize 5
Repurpose de artículo (uno o todos los formatos) POST /v1/articles/{id}/repurpose 3
Artículo standalone POST /v1/generate/article 5
Generar imagen POST /v1/generate/image 5
Editar imagen (OpenAI Edits) POST /v1/images/{id}/edit 10
Keyword Research POST /v1/keywords/research 5
Expansión A-Z de keyword POST /v1/keywords/{id}/expand 10
Keyword Explorer (seed pull) POST /v1/explorer 50
Cache-bust del Explorer ?cache=false en GETs del Explorer 50
Content Audit POST /v1/content-audits 10
Análisis de competidores POST /v1/competitor-analyses 20
Analizar internal links POST /v1/projects/{id}/internal-links/analyze 5
Content Optimizer Analyze / Apply POST /v1/content-optimizer/analyze · .../apply 5 / 5
AI Scanner Detect POST /v1/ai-scanner/detect 2
Humanize artículo POST /v1/ai-scanner/humanize 5
Humanize texto (standalone) POST /v1/humanize 8
Generar Content Brief POST /v1/tracking-projects/{id}/prompts/{p}/generate-brief 3
Community Scan POST /v1/community/scan 5
Bulk Generation (serie de artículos) POST /v1/bulk-generations 15
Pipeline (multi-stage) POST /v1/pipelines 20
Page Deep Audit (Vision + render IA) POST /v1/page-audit 30 + hasta 3×15
Reporte de Tracking Project POST /v1/tracking-projects/{id}/generate-report 10
Diagnóstico Platform Gap POST /v1/tracking-projects/{id}/insights/platform-gap/{platform}/diagnose 1
Sync GSC POST /v1/google/gsc/properties/{p}/sync 1
Agentic Chat POST /v1/agentic/chat varía (según las tools usadas)

Lista completa: docs/API_REFERENCE.md — los 137 endpoints con su columna de créditos. Tabla en vivo: rankion.ai/settings/api-documentation.

Insufficient Credits — HTTP 402

Si el balance del team no alcanza para la acción, la API responde con 402 Payment Required:

{
  "message": "Insufficient credits",
  "error": "insufficient_credits",
  "required": 10,
  "available": 4
}

El job no se dispatcha; quien llama puede informar al usuario o recargar créditos. El balance actual lo obtienes en cualquier momento mediante la Credit API.

Credit API

# Balance actual + info del plan
curl -H "Authorization: Bearer $TOKEN" "$BASE/credits"

# Historial de movimientos (paginado)
curl -H "Authorization: Bearer $TOKEN" "$BASE/credits/history"

Ejemplo de response para GET /v1/credits:

{
  "data": {
    "balance": 1240,
    "plan": "growth",
    "monthly_allotment": 5000,
    "renews_at": "2026-05-15T00:00:00Z"
  }
}

GET /v1/credits/history devuelve por entrada: created_at, delta (negativo = consumo, positivo = top-up), endpoint, reference_id (p. ej. el ID del artículo) y balance_after. Así puedes asignar exactamente qué acción consumió qué créditos.

Rate limits

Además del sistema de créditos hay un rate limit clásico de requests por token:

  • ~60 requests por minuto por token como estándar para rutas auth:sanctum.
  • Si el cliente supera el límite, la API responde con 429 Too Many Requests más el header Retry-After.
  • Por eso, los polling loops sobre jobs asíncronos no deben ser más agresivos que cada 5 segundos — y siempre con backoff exponencial ante 429.

Algunos endpoints tienen límites más estrictos, p. ej.:

  • POST /v1/tracking-projects/{id}/generate-report1 request / 30 min / proyecto. Si no, 429 {error: "rate_limited"}.
  • Public Share Unlock (POST /share/{token}/unlock) → 5 / minuto (protección anti brute-force).

Consejos para gastar menos

  • Aprovecha la caché. El Explorer y endpoints similares cachean 60 min — usa ?cache=false solo si realmente necesitas datos frescos.
  • Polling antes de un nuevo dispatch. Antes de un segundo POST /generate, verifica con un GET si el primer job ya está corriendo (status == processing). De lo contrario pagas dos veces.
  • Usa include= donde esté soportado — ahorra roundtrips y costes de cuota frente a terceros.

Continúa con API de Proyectos · vuelve a Autenticación.

Letzte Aktualisierung: 1 de mayo de 2026

Cookies: Utilizamos cookies necesarias para el funcionamiento y opcionales para mejoras. Detalles

Necesarias
Activo
Analítica
Marketing