Documentación de la API de IndexBooster

La API pública te permite añadir URLs para su indexación de forma programática, crear proyectos, listar proyectos/URLs y consultar tu saldo de créditos.

URL base: https://app.indexbooster.net/api
Autenticación: cada solicitud debe incluir el encabezado X-API-Key con tu clave API.


Autenticación

Genera tu clave API en el panel de control: Iniciar sesiónAPI IndexBooster. Luego añade este encabezado a las solicitudes:

X-API-Key: YOUR_API_KEY

Consejo: al llamar a POST /v1/submit-url sin especificar un proyecto, se utilizará o creará automáticamente tu proyecto personal llamado API.


Inicio rápido

cURL — enviar URLs al proyecto API predeterminado
curl -X POST "https://app.indexbooster.net/api/v1/submit-url" \
-H "X-API-Key: YOUR_API_KEY" -H "Content-Type: application/json" \
-d '{
  "urls": ["https://example.com/", "https://example.com/page-1"]
}'
cURL — crear un proyecto y añadir URLs
curl -X POST "https://app.indexbooster.net/api/v1/projects/create" \
  -H "X-API-Key: YOUR_API_KEY" -H "Content-Type: application/json" \
  -d '{
    "name": "Mi proyecto API",
    "description": "Creado mediante API",
    "urls": ["https://example.com/","https://example.com/page-1"]
  }'
cURL — enviar URLs a un proyecto existente (id=123)
curl -X POST "https://app.indexbooster.net/api/v1/projects/123/submit-url" \
  -H "X-API-Key: YOUR_API_KEY" -H "Content-Type: application/json" \
  -d '{
    "urls": ["https://example.com/new-page"]
  }'
cURL — consultar créditos restantes
curl -X GET "https://app.indexbooster.net/api/v1/credits" 
  -H "X-API-Key: YOUR_API_KEY" -H "Content-Type: application/json"
Python (requests)
import requests

API_BASE = "https://app.indexbooster.net/api"
API_KEY = "YOUR_API_KEY"
headers = {"X-API-Key": API_KEY, "Content-Type": "application/json"}

# 1) Enviar URLs al proyecto API predeterminado
r = requests.post(f"{API_BASE}/v1/submit-url", json={
  "urls": ["https://example.com/", "https://example.com/page-1"]
}, headers=headers)
print("submit default:", r.status_code, r.json())

# 2) Crear un proyecto + añadir URLs
r = requests.post(f"{API_BASE}/v1/projects/create", json={
  "name": "Mi proyecto API",
  "description": "Creado desde un script",
  "urls": ["https://example.com/a","https://example.com/b"]
}, headers=headers)
print("create project:", r.status_code, r.json())

# 3) Añadir URLs a un proyecto existente (id=123)
r = requests.post(f"{API_BASE}/v1/projects/123/submit-url", json={"urls": ["https://example.com/new"]}, headers=headers)
print("add to project:", r.status_code, r.json())

# 4) Saldo de créditos
r = requests.get(f"{API_BASE}/v1/credits", headers=headers)
print("credits:", r.status_code, r.json())
Node.js (fetch)
const fetch = (...args) => import('node-fetch').then(({default: fetch}) => fetch(...args));

const API_BASE = "https://app.indexbooster.net/api";
const API_KEY = "YOUR_API_KEY";
const headers = { "X-API-Key": API_KEY, "Content-Type": "application/json" };

(async () => {
  // Proyecto API predeterminado
  let res = await fetch(API_BASE + "/v1/submit-url", {
    method: "POST", headers, body: JSON.stringify({ urls: ["https://example.com/"] })
  });
  console.log("submit default:", await res.json());

  // Proyecto con nombre
  res = await fetch(API_BASE + "/v1/projects/create", {
    method: "POST", headers, body: JSON.stringify({
      name: "Mi proyecto API",
      description: "Creado mediante Node",
      urls: ["https://example.com/x","https://example.com/y"]
    })
  });
  console.log("create project:", await res.json());
})();

Endpoints

Método Ruta Descripción Notas
POST /v1/submit-url Añade URLs a tu proyecto predeterminado API (creado automáticamente en el primer uso). Hasta 2.000 URLs por solicitud; 1 crédito por cada URL nueva; las URLs que ya estén en “Request in progress” se omiten.
POST /v1/projects/create Crea un proyecto con nombre y añade URLs de inmediato. El nombre del proyecto debe ser único por usuario.
POST /v1/projects/<project_id>/submit-url Añade URLs a un proyecto existente. Se aplican las mismas reglas que en /v1/submit-url.
GET /v1/projects Lista tus proyectos. Devuelve: id, name, description, created_at, updated_at (ISO).
GET /v1/projects/<project_id>/urls Lista las URLs de un proyecto con su estado de indexación. Los campos incluyen: indexable, indexing_status, snippet_info.
GET /v1/credits Devuelve el saldo de créditos restante. JSON simple: { "credits": number }.

Reglas y respuestas

  • Lista de URLs: hasta 2.000 URLs por solicitud; las URLs deben comenzar con http:// o https://; las URLs raíz se normalizan con una barra final (https://site.com/).
  • Créditos: se cobra 1 crédito por cada URL realmente nueva. Las URLs que ya estén en “Request in progress” no se vuelven a cobrar.
  • Respuesta exitosa (200): contiene contadores agregados (submitted, deducted_credits) y una lista de registros creados con id, url. Para /v1/submit-url, también se devuelve project_id.
  • Proyecto API predeterminado: llamar a /v1/submit-url usa tu proyecto personal API (creado automáticamente en la primera llamada).

Códigos de error

CódigoMotivoAcción
400Entrada no válidaComprueba el JSON, el formato de la URL y los límites.
403Clave no válida/desactivada o créditos insuficientesVerifica X-API-Key, habilita la API y recarga créditos.
404Proyecto no encontradoAsegúrate de que el project_id te pertenezca.
429Límite de solicitudes excedidoReduce la frecuencia y espera a que se reinicie la ventana.

Límites de velocidad

100 solicitudes por minuto por clave API. Si se supera este límite, se devuelve 429 Too Many Requests.

FAQ

¿Cómo obtengo una clave API?

Inicia sesión en IndexBooster → ve a la sección API. Habilita el acceso y genera una clave. Puedes regenerarla si es necesario.

¿Qué es el “proyecto API predeterminado”?

Es tu proyecto personal llamado API, creado automáticamente en la primera llamada a POST /v1/submit-url y utilizado por defecto en las siguientes llamadas a ese endpoint.

¿Cuántas URLs puedo enviar a la vez?

Hasta 2.000 URLs por solicitud. Si se supera el límite, el servidor devuelve 400.

¿Cómo evitar que se vuelvan a cobrar duplicados?

Omitimos automáticamente las URLs que ya están en estado “Request in progress”, por lo que no se vuelven a cobrar créditos por ellas.