Developer

API index URL: satu request POST untuk melaporkan halaman mana pun

Terbit 5 août 20267 menit bacaDiperbarui 28 août 2026

En bref

API index URL melaporkan sebuah halaman ke Google lewat satu request POST yang terautentikasi. Autentikasinya memakai API key di header Bearer, dengan format ixid_ diikuti 48 karakter heksadesimal. Satu request menerima hingga 500 URL dan langsung membalas; pengiriman ke Google berjalan di latar belakang tiga per batch, dan perayapan umumnya dimulai dalam waktu kurang dari satu menit.

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://indexinstan.com
SoumissionPOST /api/indexing/submit
HistoriqueGET /api/indexing/history
Solde de créditsGET /api/user/credits
En-tête d’authentificationAuthorization: Bearer ixid_<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://indexinstan.com/api/indexing/submit \
  -H "Authorization: Bearer ixid_VOTRE_CLE" \
  -H "Content-Type: application/json" \
  -d '{
    "urls": [
      "https://situsanda.com/blog/article-1",
      "https://situsanda.com/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://situsanda.com/blog/article-1", "status": "submitted" },
    { "url": "https://situsanda.com/blog/article-2", "status": "submitted" }
  ]
}

Soumettre des URL (Node.js)

javascript
async function envoyerUrls(urls) {
  const res = await fetch(
    "https://indexinstan.com/api/indexing/submit",
    {
      method: "POST",
      headers: {
        "Authorization": `Bearer ${process.env.IXID_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://situsanda.com/blog/article-1",
  "https://situsanda.com/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://indexinstan.com/api/indexing/submit",
        headers={
            "Authorization": f"Bearer {os.environ['IXID_API_KEY']}",
            "Content-Type": "application/json",
        },
        json={"urls": urls},
        timeout=10,
    )
    res.raise_for_status()
    return res.json()

resultat = envoyer_urls([
    "https://situsanda.com/blog/article-1",
    "https://situsanda.com/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://indexinstan.com/api/indexing/history?page=1&limit=20" \
  -H "Authorization: Bearer ixid_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://situsanda.com/${article.slug}`,
  ]);
}

// Ou avec les URL connexes, lors d’une refonte de contenu
async function surModificationMajeure(article) {
  await envoyerUrls([
    `https://situsanda.com/${article.slug}`,
    `https://situsanda.com/categorie/${article.categorie}`,
    "https://situsanda.com/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.

Pertanyaan Umum

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.

Buat Google merayapi halaman Anda hari ini juga

Hingga 500 URL sekali kirim, status sungguhan untuk setiap baris, API termasuk di semua paket. Kami menjamin submit dan perayapan; pengindeksan tetap menjadi keputusan Google.

Baca juga