Passer au contenu principal
Chaque tâche a un prix en crédits. Le prix est bloqué à la soumission, prélevé quand la tâche se termine et libéré si elle échoue. Votre plan fixe le nombre de tâches que vous pouvez avoir en file ou en cours à la fois. Pour la liste à jour des moteurs et des prix, appelez l’endpoint public des capacités. Il ne demande pas de clé d’API :
Ajoutez ?taskType=GEMINI pour lire un seul moteur. Les alias comme GOOGLE_AIO sont acceptés. Consultez Obtenir les capacités.

Crédits par tâche

Les prix ne varient pas selon le plan ; c’est la valeur en dollars d’un crédit qui varie. Les crédits peuvent avoir deux décimales, comme 1.25.

Facturation Citation Analysis

Une tâche CITATION_ANALYSIS bloque 20 + 12 × citations + 80 × ⌈caractères de la réponse ÷ 1 000⌉ crédits à la soumission. À la fin, elle est facturée 1 + ⌈tokens en entrée ÷ 500⌉ + ⌈tokens en sortie ÷ 100⌉ + 2 × récupérations de sources, jamais plus que le blocage. Le reste du blocage est libéré. Consultez Citation Analysis.

Blocage, prélèvement et libération

1

Soumission : blocage

Le prix de la tâche (pour WEB_CRAWL, GEO_SCORE et CITATION_ANALYSIS, le maximum) passe de votre solde disponible à un blocage. Si le solde ne suffit pas, la soumission renvoie 402 INSUFFICIENT_CREDITS. La réponse de soumission affiche credits à 0.
2

Terminée : prélèvement

Le montant est pris sur le blocage. Un polling final et le webhook l’indiquent dans creditsCharged.
3

Échouée : libération

Le blocage revient sur votre solde. Une tâche échouée coûte 0.
Un nouveau compte reçoit 500 crédits à l’inscription.

Consulter votre solde

GET /v1/credits renvoie les crédits de votre compte. La lecture ne coûte rien : un programme peut le vérifier avant chaque lot. Consultez Solde de crédits.
  • remaining correspond à ce que vous pouvez dépenser maintenant. Les tâches déjà soumises bloquent leur prix dans reserved : ne le soustrayez pas une seconde fois.
  • perCycle est ce que votre plan accorde à chaque cycle, et cycleResetsAt la fin du cycle en cours. Les deux valent null sans plan actif.
  • topUpBalance indique les crédits de recharge compris dans remaining, avec la date à laquelle les prochains expirent et leur nombre. Il vaut null si vous n’en avez pas. Les crédits de recharge durent trois mois après l’achat, sont conservés lors des renouvellements et sont dépensés après les crédits du plan.
La clé d’un sous-compte reçoit 403 SUB_ACCOUNT_FORBIDDEN, car un sous-compte dépense vos crédits. Consultez Sous-comptes.

Consulter votre utilisation

GET /v1/usage renvoie les crédits facturés à votre compte sur une plage de dates UTC, ventilés par jour, moteur et clé d’API selon votre choix. La lecture ne coûte rien. Consultez Utilisation des crédits.
  • from et to sont des dates UTC, et les deux jours sont inclus. Par défaut, ce sont le premier jour du mois UTC en cours et aujourd’hui. Une plage couvre 366 jours au plus.
  • groupBy accepte day, engine et key, séparés par des virgules, et vaut day,engine par défaut. Une ligne porte les champs des ventilations choisies, et une combinaison sans facturation n’a pas de ligne. credits et tasks en tête additionnent toutes les lignes.
  • groupBy=key montre qui a dépensé les crédits. Une tâche envoyée avec une clé d’API a "source": "api" et un apiKey avec son id, keyPrefix, name et subAccountId. Une dépense sans clé d’API a source à monitor (les exécutions d’un moniteur), playground ou dashboard, et apiKey vaut null.
  • L’utilisation additionne ce qui a été facturé aux tâches, et une tâche échouée coûte 0. La lecture des concurrents d’un moniteur est facturée sans tâche : elle fait baisser votre solde mais n’apparaît pas dans l’utilisation.
  • Les tâches de vos sous-comptes figurent dans votre utilisation, et apiKey.subAccountId désigne le sous-compte propriétaire d’une clé. GET /v1/sub-accounts/{id}/usage lit un seul sous-compte. La clé d’un sous-compte reçoit 403 SUB_ACCOUNT_FORBIDDEN.

Consulter votre file

GET /v1/async/status renvoie vos tâches en file et en cours à côté de la limite de concurrence dans laquelle elles comptent. La lecture ne coûte rien. Consultez État de la file.
  • concurrency.used vaut queuedTasks plus processingTasks, les deux compteurs que la limite de concurrence de votre plan additionne. max est cette limite : max - used est la place restante pour de nouvelles tâches.
  • priorityBreakdown liste les tâches en file selon la priority avec laquelle elles ont été soumises, de la plus haute à la plus basse.
  • Les compteurs incluent les tâches de vos sous-comptes, qui partagent votre limite. La clé d’un sous-compte reçoit 403 SUB_ACCOUNT_FORBIDDEN et lit ses propres compteurs sur GET /stats.

Plans

Comparez les plans sur la page des tarifs.

Concurrence du plan

La limite de concurrence compte ensemble les tâches QUEUED et PROCESSING de votre compte. Ce n’est pas une limite sur la vitesse de soumission. Une soumission qui la dépasserait renvoie 429 PLAN_CONCURRENCY_LIMIT avec details.limit, details.active et Retry-After. Un contrat peut fixer une autre limite pour votre compte, et un compte parent peut en fixer une pour un sous-compte.

Limites par clé et par sous-compte

La limite quotidienne de la clé compte le blocage nécessaire à une tâche : une tâche est refusée quand used + price dépasserait la limite.

Débit des requêtes et contre-pression

Les 429 de l’edge interviennent avant l’API et ne portent ni l’enveloppe d’erreur JSON ni Retry-After. Espacez vos tentatives avec un délai exponentiel quand vous en recevez un. Un 429 ou un 503 des endpoints de soumission de tâches porte un en-tête Retry-After en secondes. Les codes et les conseils de nouvelle tentative figurent dans Erreurs.

Cadencer les grosses soumissions

1

Grouper au lieu de boucler

Un POST /v1/async/task/batch de 500 éléments compte pour une seule requête dans la limite de l’edge. Au-delà de votre limite de concurrence, utilisez POST /v1/batches : le serveur libère les éléments à mesure que de la place se libère. Consultez Lots et grilles.
2

Respecter Retry-After

Attendez le nombre de secondes indiqué dans Retry-After avant de resoumettre une tâche refusée. Réutilisez le même idempotencyKey pour qu’une nouvelle tentative ne crée jamais de doublon.
3

Séquencer le travail dépendant

L’ordre d’exécution n’est pas garanti. Attendez qu’une tâche se termine avant de soumettre un travail qui dépend de son résultat.
4

Surveiller vos compteurs

GET /v1/async/status renvoie vos tâches en file et en cours à côté de la limite de votre plan, pour que vous restiez en dessous. GET /stats ajoute les tâches terminées au cours des dernières 24 heures.