Passer au contenu principal
Si vous utilisez querying.ai dans votre propre produit, créez un sous-compte par client. Un sous-compte a ses propres clés d’API, limites, tâches, lots et moniteurs. Ses crédits sont pris sur votre solde, et les endpoints de consommation indiquent combien facturer à chaque client.

Fonctionnement d’un sous-compte

  • Ses propres clés et résultats. Une clé de sous-compte soumet et lit tâches, lots et moniteurs comme n’importe quelle clé, et ne voit que son propre travail. Une tâche créée avec la clé d’Acme renvoie 404 à la clé de Globex et à vos propres clés.
  • Vos crédits. Ses tâches sont facturées sur votre solde. Un sous-compte n’a pas de solde : ses clés reçoivent 403 SUB_ACCOUNT_FORBIDDEN sur GET /v1/credits et GET /v1/usage.
  • Votre capacité. La limite de concurrence de votre plan ou de votre contrat couvre vos propres tâches et celles de tous les sous-comptes ensemble : les sous-comptes n’ajoutent jamais de capacité. GET /v1/async/status compte cette file partagée avec votre clé, et la clé d’un sous-compte y reçoit 403 SUB_ACCOUNT_FORBIDDEN.
  • Vos limites de moniteurs. La limite monitors de GET /v1/monitors/capabilities compte vos moniteurs et ceux de tous les sous-comptes ensemble, et les limites prompts et tasksPerRun s’appliquent aux moniteurs d’un sous-compte comme aux vôtres.
  • Ses propres limites. monthlyCreditLimit plafonne ce qui peut lui être facturé au cours d’un mois civil UTC. concurrencyLimit plafonne ses tâches en file et en cours à l’intérieur de votre limite. Les deux sont facultatives.
  • Un seul niveau. Un sous-compte ne peut pas avoir de sous-comptes. Les e-mails d’alerte de ses moniteurs sont envoyés aux administrateurs de votre compte.

Qui peut gérer les sous-comptes

Appelez les endpoints /v1/sub-accounts avec l’une de vos propres clés d’API, sans restriction de moteurs ni limite de crédits quotidienne. Toute autre clé reçoit 403 SUB_ACCOUNT_FORBIDDEN, car une clé restreinte pourrait sinon émettre des clés sans ses propres restrictions. Les clés d’un sous-compte reçoivent la même erreur.

Créer un sous-compte et une clé

La réponse est 201 :
Tout autre champ renvoie 400 VALIDATION_ERROR : une limite mal orthographiée ne laisse jamais un client sans plafond. Émettez ensuite une clé pour le sous-compte :
key n’apparaît que dans cette réponse. Conservez-la maintenant ; elle ne sera plus jamais affichée.
Une clé accepte les mêmes réglages facultatifs qu’une clé du tableau de bord : name (1 à 64 caractères, default par défaut), allowedTaskTypes, dailyCreditLimit et expiresAt (de 5 minutes à 2 ans dans le futur). N’envoyez aucun corps pour une clé sans restriction. Un sous-compte peut détenir jusqu’à 5 clés actives ; les clés révoquées et expirées ne comptent pas. Une sixième renvoie 409 KEY_LIMIT. Révoquez-en une d’abord. La clé de votre client fonctionne sur tous les endpoints comme n’importe quelle autre clé :

Gérer les clés

GET /v1/sub-accounts/{id}/keys liste toutes les clés que le sous-compte a eues, de la plus récente à la plus ancienne, y compris les clés révoquées et expirées. Vérifiez revokedAt et expiresAt pour repérer les clés actives.
DELETE /v1/sub-accounts/{id}/keys/{keyId} révoque une clé et renvoie {"success": true, "data": {"revoked": "<keyId>"}}. Une clé déjà révoquée, ou qui n’appartient pas au sous-compte, renvoie 404 NOT_FOUND.

Limites

Seul le sous-compte qui a atteint sa propre limite est refusé ; vos autres clients continuent de fonctionner. Une limite relevée s’applique dès la requête suivante.
retryAfterSec compte jusqu’au début du mois UTC suivant, quand le décompte mensuel repart de zéro. Voir Crédits et limites pour les limites de l’ensemble du compte.

Consulter un sous-compte maintenant

GET /v1/sub-accounts/{id} renvoie le sous-compte avec la consommation du mois et activeTasks, le nombre de ses tâches en file ou en cours à cet instant. Comparez-le à concurrencyLimit pour voir à quel point le client est proche de son plafond.
Les valeurs ci-dessus sont un exemple. Dans usage, credits et tasks correspondent à ce qui a été facturé ce mois UTC, et reservedCredits aux crédits réservés par les tâches encore en cours.

Consommation et facturation

Chaque facturation apparaît aussi dans votre propre relevé de facturation ; ces endpoints la répartissent par client. Les tâches en échec ne sont jamais facturées et ne comptent jamais. Les montants en crédits comportent jusqu’à deux décimales.
  • GET /v1/sub-accounts liste vos sous-comptes, du plus ancien au plus récent, chacun avec le usage du mois. Paginez avec limit (100 par défaut, au plus 1 000) et renvoyez nextCursor comme cursor.
  • GET /v1/sub-accounts/usage totalise chaque sous-compte sur une plage de dates UTC.
  • GET /v1/sub-accounts/{id}/usage donne les facturations d’un sous-compte par jour et par moteur.
Les deux endpoints de consommation acceptent from et to au format YYYY-MM-DD, bornes incluses. from vaut par défaut le premier jour du mois UTC en cours et to aujourd’hui ; une plage couvre au plus 366 jours.

Tous les sous-comptes

Par exemple :
Les sous-comptes sont listés du plus consommateur au moins consommateur. Un sous-compte sans facturation sur la plage est omis.

Un sous-compte

Par exemple :
  • credits et tasks au premier niveau sont les totaux de days.
  • days contient une ligne par date UTC et par moteur ayant eu une facturation, triée par date, puis par taskType. Les jours sans facturation n’ont pas de ligne.
  • taskType: "OTHER" est une facturation qui n’est pas une tâche, comme la lecture des concurrents d’un moniteur. Elle ajoute des crédits mais aucune tasks.

Suspendre et réactiver

  • Ses clés renvoient 401 en moins de cinq secondes.
  • Ses moniteurs cessent de s’exécuter, et les éléments de lot non démarrés se terminent en API_KEY_INACTIVE.
  • Les tâches déjà en file ou en cours se terminent et sont facturées.
{"status": "active"} rétablit ses clés et ses moniteurs. Chaque moniteur s’exécute une fois à son retour au lieu de rattraper les exécutions manquées. Le même PATCH modifie name, externalId, monthlyCreditLimit et concurrencyLimit ; null supprime une limite ou l’externalId. Un sous-compte ne peut pas être supprimé ; suspendez-le plutôt.

Erreurs

Endpoints