Développeurs

API d’indexation d’URL : une requête POST pour signaler n’importe quelle page

Publié le 5 août 20267 min de lectureMis à jour le 28 août 2026

En bref

L’API d’indexation d’URL signale une page à Google au moyen d’une seule requête POST authentifiée. L’authentification se fait par clé d’API en en-tête Bearer, au format ixfr_ suivi de 48 caractères hexadécimaux. Une requête accepte jusqu’à 500 URL et répond immédiatement ; l’envoi vers Google se poursuit en arrière-plan par lots de trois, et l’exploration démarre en général en moins d’une minute.

Vue d’ensemble

Un point d’entrée, une méthode d’authentification, un corps de requête. La surface est volontairement réduite : chaque réglage supplémentaire est une occasion d’erreur dans une chaîne de publication automatisée.

ChampValeur
URL de basehttps://indexinstantane.com
SoumissionPOST /api/indexing/submit
HistoriqueGET /api/indexing/history
Solde de créditsGET /api/user/credits
En-tête d’authentificationAuthorization: Bearer ixfr_<48 caractères hexadécimaux>
Content-Typeapplication/json
URL par requête1 à 500
Rétention de l’historique48 heures

Il n’y a pas de quota journalier au sens strict : votre débit est borné par votre solde de crédits, acheté une fois, sans reconduction ni date d’expiration.

Authentification

Les endpoints authentifiés acceptent soit une session par cookie, soit une clé d’API en en-tête Bearer. Pour un usage programmatique, utilisez toujours la clé.

  1. Connectez-vous au tableau de bord.
  2. Ouvrez Profil → Accès API.
  3. Cliquez sur Générer une clé. Elle n’est affichée qu’une fois — copiez-la immédiatement.
  4. Rangez-la dans votre gestionnaire de secrets : variable d’environnement, coffre, ou équivalent. Jamais dans le dépôt de code.

Soumettre des URL (cURL)

bash
curl -X POST https://indexinstantane.com/api/indexing/submit \
  -H "Authorization: Bearer ixfr_VOTRE_CLE" \
  -H "Content-Type: application/json" \
  -d '{
    "urls": [
      "https://votresite.fr/blog/article-1",
      "https://votresite.fr/blog/article-2"
    ]
  }'

La réponse revient immédiatement, avant même que les URL soient parties vers Google :

json
{
  "success": true,
  "submitted": 2,
  "failed": 0,
  "creditsUsed": 2,
  "remainingCredits": 78,
  "results": [
    { "url": "https://votresite.fr/blog/article-1", "status": "submitted" },
    { "url": "https://votresite.fr/blog/article-2", "status": "submitted" }
  ]
}

Soumettre des URL (Node.js)

javascript
async function envoyerUrls(urls) {
  const res = await fetch(
    "https://indexinstantane.com/api/indexing/submit",
    {
      method: "POST",
      headers: {
        "Authorization": `Bearer ${process.env.IXFR_API_KEY}`,
        "Content-Type": "application/json",
      },
      body: JSON.stringify({ urls }),
    }
  );
  if (!res.ok) throw new Error(`Échec de la soumission : ${res.status}`);
  return res.json();
}

const resultat = await envoyerUrls([
  "https://votresite.fr/blog/article-1",
  "https://votresite.fr/blog/article-2",
]);
console.log("Acceptées :", resultat.submitted, "— crédits restants :", resultat.remainingCredits);

Soumettre des URL (Python)

python
import os
import requests

def envoyer_urls(urls):
    res = requests.post(
        "https://indexinstantane.com/api/indexing/submit",
        headers={
            "Authorization": f"Bearer {os.environ['IXFR_API_KEY']}",
            "Content-Type": "application/json",
        },
        json={"urls": urls},
        timeout=10,
    )
    res.raise_for_status()
    return res.json()

resultat = envoyer_urls([
    "https://votresite.fr/blog/article-1",
    "https://votresite.fr/blog/article-2",
])
print("Acceptées :", resultat["submitted"], "— crédits restants :", resultat["remainingCredits"])

Consulter l’historique

Les enregistrements sont conservés 48 heures. L’endpoint d’historique est paginé et renvoie l’état de chaque adresse :

bash
curl "https://indexinstantane.com/api/indexing/history?page=1&limit=20" \
  -H "Authorization: Bearer ixfr_VOTRE_CLE"

Chaque enregistrement contient l’URL, son état (submitted, indexed ou failed), le moteur visé, les crédits consommés, l’horodatage, et le motif d’échec normalisé le cas échéant.

Gestion des erreurs

CodeCauseAction
400JSON malformé, ou aucune URL valide dans le corpsValidez l’entrée avant l’envoi
401Clé d’API absente ou invalideVérifiez l’en-tête Authorization
402Crédits insuffisantsRechargez le compte
413Plus de 500 URL dans une requêteDécoupez la liste en tranches de 500
429Trop de requêtesRalentissez et réessayez avec un intervalle croissant
503Service d’indexation momentanément indisponibleRéessayez : les URL sont remises en file de notre côté

Bonnes pratiques

Exemple : brancher l’API sur un CMS

javascript
// Dans le hook « article publié » de votre CMS
async function surPublication(article) {
  await envoyerUrls([
    `https://votresite.fr/${article.slug}`,
  ]);
}

// Ou avec les URL connexes, lors d’une refonte de contenu
async function surModificationMajeure(article) {
  await envoyerUrls([
    `https://votresite.fr/${article.slug}`,
    `https://votresite.fr/categorie/${article.categorie}`,
    "https://votresite.fr/sitemap.xml",
  ]);
}

Par où commencer

Créez un compte, générez une clé depuis le tableau de bord, et insérez la requête POST dans votre chaîne de publication. L’offre d’entrée, à 5 $ pour 80 crédits, suffit largement à valider l’intégration de bout en bout avant de passer à un volume supérieur.

Questions fréquentes

La clé d’API est-elle la même chose que mon mot de passe ?

Non. C’est un identifiant distinct, généré depuis le tableau de bord, destiné aux usages programmatiques et régénérable indépendamment du mot de passe du compte.

Faut-il une offre payante pour utiliser l’API ?

L’accès complet à l’API est inclus dans toutes les offres, à partir de 5 $ pour 80 crédits. Il n’existe pas de formule réservée à l’API. Le règlement se fait en cryptomonnaie via Cryptomus, seul moyen de paiement accepté.

Que se passe-t-il si ma requête contient des URL invalides ?

Elles sont écartées à la validation, exclues du lot et non facturées. Les adresses valides du même envoi sont traitées normalement. La réponse indique les deux compteurs : submitted et failed.

Existe-t-il un webhook de confirmation d’indexation ?

Pas aujourd’hui. Un rappel HTTP sur les événements de fin de traitement figure à la feuille de route. En attendant, interrogez l’endpoint d’historique ou suivez l’état dans le tableau de bord. Notez qu’un tel webhook signalerait la fin de la soumission, pas une indexation confirmée par Google.

Faites explorer vos pages dès aujourd’hui

Jusqu’à 500 URL par envoi, un état réel pour chaque ligne, l’API incluse dans toutes les offres. Nous garantissons la soumission et l’exploration ; l’indexation reste la décision de Google.

À lire ensuite