Documentation API IndexBooster

L’API publique vous permet d’ajouter des URL à l’indexation par programmation, de créer des projets, de lister les projets/URL et de vérifier votre solde de crédits.

URL de base : https://app.indexbooster.net/api
Authentification : chaque requête doit inclure l’en-tête X-API-Key avec votre clé API.


Authentification

Générez votre clé API dans le tableau de bord : ConnexionAPI IndexBooster. Ajoutez ensuite cet en-tête à vos requêtes :

X-API-Key: YOUR_API_KEY

Astuce : lorsque vous appelez POST /v1/submit-url sans préciser de projet, votre projet personnel nommé API est utilisé/créé automatiquement.


Démarrage rapide

cURL — soumettre des URL au projet API par défaut
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 — créer un projet et ajouter des URL
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": "My API Project",
    "description": "Created via API",
    "urls": ["https://example.com/","https://example.com/page-1"]
  }'
cURL — soumettre des URL à un projet existant (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 — vérifier les crédits restants
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) Submit URLs to the default API project
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) Create a project + add URLs
r = requests.post(f"{API_BASE}/v1/projects/create", json={
  "name": "My API Project",
  "description": "Created from script",
  "urls": ["https://example.com/a","https://example.com/b"]
}, headers=headers)
print("create project:", r.status_code, r.json())

# 3) Add URLs to an existing project (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) Credits balance
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 () => {
  // Default API project
  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());

  // Named project
  res = await fetch(API_BASE + "/v1/projects/create", {
    method: "POST", headers, body: JSON.stringify({
      name: "My API Project",
      description: "Created via Node",
      urls: ["https://example.com/x","https://example.com/y"]
    })
  });
  console.log("create project:", await res.json());
})();

Endpoints

Méthode Chemin Description Notes
POST /v1/submit-url Ajoute des URL à votre projet API par défaut (créé automatiquement lors de la première utilisation). Jusqu’à 2 000 URL par requête ; 1 crédit par nouvelle URL ; les URL déjà en statut « Request in progress » sont ignorées.
POST /v1/projects/create Crée un projet nommé et ajoute immédiatement des URL. Le nom du projet est unique par utilisateur.
POST /v1/projects/<project_id>/submit-url Ajoute des URL à un projet existant. Mêmes règles que /v1/submit-url.
GET /v1/projects Liste vos projets. Retourne : id, name, description, created_at, updated_at (ISO).
GET /v1/projects/<project_id>/urls Liste les URL d’un projet avec leur statut d’indexation. Les champs incluent : indexable, indexing_status, snippet_info.
GET /v1/credits Retourne le solde de crédits restant. JSON simple : { "credits": number }.

Règles & réponses

  • Liste d’URL : jusqu’à 2 000 URL par requête ; les URL doivent commencer par http:// ou https:// ; les URL racine sont normalisées avec une barre oblique finale (https://site.com/).
  • Crédits : 1 crédit est facturé pour chaque URL réellement nouvelle. Les URL déjà en statut « Request in progress » ne sont pas refacturées.
  • Réponse de succès (200) : contient des compteurs agrégés (submitted, deducted_credits) et une liste des enregistrements créés avec id, url. Pour /v1/submit-url, le project_id est également retourné.
  • Projet API par défaut : l’appel à /v1/submit-url utilise votre projet personnel API (créé automatiquement lors du premier appel).

Codes d’erreur

CodeRaisonAction
400Entrée invalideVérifiez le JSON, le format des URL et les limites.
403Clé invalide/désactivée ou crédits insuffisantsVérifiez X-API-Key, activez l’API, rechargez vos crédits.
404Projet introuvableAssurez-vous que le project_id vous appartient.
429Limite de débit dépasséeRéduisez la fréquence ; attendez la réinitialisation de la fenêtre.

Limites de débit

100 requêtes par minute par clé API. En cas de dépassement, la réponse sera 429 Too Many Requests.

FAQ

Comment obtenir une clé API ?

Connectez-vous à IndexBooster → accédez à la section API. Activez l’accès et générez une clé. Vous pouvez la régénérer si nécessaire.

Qu’est-ce que le « projet API par défaut » ?

Il s’agit de votre projet personnel nommé API, créé automatiquement lors du premier appel à POST /v1/submit-url et utilisé par défaut pour les appels suivants à cet endpoint.

Combien d’URL puis-je envoyer en une seule fois ?

Jusqu’à 2 000 URL par requête. Si la limite est dépassée, le serveur retourne 400.

Comment éviter une nouvelle facturation des doublons ?

Nous ignorons automatiquement les URL qui sont déjà au statut « Request in progress » — les crédits ne sont pas facturés à nouveau pour celles-ci.