Zum Hauptinhalt springen
Wenn Sie querying.ai in Ihrem eigenen Produkt einsetzen, legen Sie für jeden Kunden ein Unterkonto an. Ein Unterkonto hat eigene API-Schlüssel, Limits, Tasks, Batches und Monitore. Seine Credits kommen aus Ihrem Guthaben, und die Verbrauchs-Endpunkte zeigen, was Sie jedem Kunden berechnen.

So funktioniert ein Unterkonto

  • Eigene Schlüssel und Ergebnisse. Ein Unterkonto-Schlüssel sendet und liest Tasks, Batches und Monitore wie jeder andere Schlüssel und sieht nur seine eigene Arbeit. Ein mit dem Schlüssel von Acme erstellter Task liefert dem Schlüssel von Globex und Ihren eigenen Schlüsseln 404.
  • Ihre Credits. Seine Tasks werden Ihrem Guthaben belastet. Ein Unterkonto hat kein eigenes Guthaben, daher erhalten seine Schlüssel bei GET /v1/credits und GET /v1/usage 403 SUB_ACCOUNT_FORBIDDEN.
  • Ihre Kapazität. Das Parallelitätslimit Ihres Plans oder Vertrags gilt für Ihre eigenen Tasks und alle Unterkonten zusammen; Unterkonten bringen also nie zusätzliche Kapazität. GET /v1/async/status zählt diese gemeinsame Warteschlange mit Ihrem Schlüssel, und der Schlüssel eines Unterkontos erhält dort 403 SUB_ACCOUNT_FORBIDDEN.
  • Ihre Monitor-Limits. Das Limit monitors aus GET /v1/monitors/capabilities zählt Ihre Monitore und die aller Unterkonten zusammen, und die Limits prompts und tasksPerRun gelten für die Monitore eines Unterkontos wie für Ihre.
  • Eigene Limits. monthlyCreditLimit begrenzt, was ihm in einem UTC-Kalendermonat berechnet werden kann. concurrencyLimit begrenzt seine wartenden und laufenden Tasks innerhalb Ihres Limits. Beide sind optional.
  • Eine Ebene. Ein Unterkonto kann keine Unterkonten haben. Alarm-E-Mails seiner Monitore gehen an die Administratoren Ihres Kontos.

Wer Unterkonten verwalten kann

Rufen Sie die Endpunkte /v1/sub-accounts mit einem Ihrer eigenen API-Schlüssel ohne Engine-Beschränkung und ohne tägliches Credit-Limit auf. Jeder andere Schlüssel erhält 403 SUB_ACCOUNT_FORBIDDEN, weil ein eingeschränkter Schlüssel sonst Schlüssel ohne seine eigenen Einschränkungen ausstellen könnte. Die Schlüssel eines Unterkontos erhalten denselben Fehler.

Unterkonto und Schlüssel anlegen

Die Antwort ist 201:
Jedes andere Feld ergibt 400 VALIDATION_ERROR, sodass ein falsch geschriebenes Limit einen Kunden nie unbegrenzt lässt. Stellen Sie dem Unterkonto dann einen Schlüssel aus:
key erscheint nur in dieser Antwort. Speichern Sie ihn jetzt; er wird nie wieder angezeigt.
Ein Schlüssel hat dieselben optionalen Einstellungen wie ein Dashboard-Schlüssel: name (1–64 Zeichen, Standard default), allowedTaskTypes, dailyCreditLimit und expiresAt (5 Minuten bis 2 Jahre in der Zukunft). Senden Sie keinen Body für einen Schlüssel ohne Einschränkungen. Ein Unterkonto kann bis zu 5 aktive Schlüssel haben; widerrufene und abgelaufene zählen nicht. Ein sechster ergibt 409 KEY_LIMIT. Widerrufen Sie zuerst einen. Der Schlüssel Ihres Kunden funktioniert an jedem Endpunkt wie jeder andere Schlüssel:

Schlüssel verwalten

GET /v1/sub-accounts/{id}/keys listet jeden Schlüssel, den das Unterkonto je hatte, neueste zuerst, einschließlich widerrufener und abgelaufener. Prüfen Sie revokedAt und expiresAt, um die aktiven Schlüssel zu finden.
DELETE /v1/sub-accounts/{id}/keys/{keyId} widerruft einen Schlüssel und gibt {"success": true, "data": {"revoked": "<keyId>"}} zurück. Ein bereits widerrufener Schlüssel oder einer, der nicht zum Unterkonto gehört, ergibt 404 NOT_FOUND.

Limits

Abgelehnt wird nur das Unterkonto, das sein eigenes Limit erreicht hat; Ihre anderen Kunden laufen weiter. Ein erhöhtes Limit gilt ab der nächsten Anfrage.
retryAfterSec zählt bis zum Beginn des nächsten UTC-Monats, wenn die Monatszählung neu beginnt. Die kontoweiten Limits finden Sie unter Credits und Limits.

Ein Unterkonto jetzt prüfen

GET /v1/sub-accounts/{id} liefert das Unterkonto mit dem Verbrauch dieses Monats und activeTasks, der Zahl seiner gerade wartenden oder laufenden Tasks. Vergleichen Sie sie mit concurrencyLimit, um zu sehen, wie nah der Kunde an seiner Obergrenze ist.
Die Werte oben sind ein Beispiel. In usage sind credits und tasks die Belastungen dieses UTC-Monats, und reservedCredits ist von noch laufenden Tasks reserviert.

Verbrauch und Abrechnung

Jede Belastung erscheint auch in Ihrem eigenen Abrechnungsjournal; diese Endpunkte schlüsseln sie nach Kunde auf. Fehlgeschlagene Tasks werden nie berechnet und nie gezählt. Credit-Beträge haben bis zu zwei Dezimalstellen.
  • GET /v1/sub-accounts listet Ihre Unterkonten, älteste zuerst, jeweils mit dem usage dieses Monats. Blättern Sie mit limit (Standard 100, höchstens 1.000) und geben Sie nextCursor als cursor zurück.
  • GET /v1/sub-accounts/usage summiert jedes Unterkonto über einen Bereich von UTC-Daten.
  • GET /v1/sub-accounts/{id}/usage liefert die Belastungen eines Unterkontos pro Tag und Engine.
Beide Verbrauchs-Endpunkte nehmen from und to als YYYY-MM-DD, jeweils einschließlich. from ist standardmäßig der Erste des aktuellen UTC-Monats und to heute; ein Bereich umfasst höchstens 366 Tage.

Alle Unterkonten

Zum Beispiel:
Die Unterkonten sind nach Größe absteigend sortiert. Ein Unterkonto ohne Belastung im Bereich wird ausgelassen.

Ein Unterkonto

Zum Beispiel:
  • credits und tasks auf oberster Ebene sind die Summen von days.
  • days hat eine Zeile pro UTC-Datum und Engine mit einer Belastung, sortiert nach Datum, dann nach taskType. Tage ohne Belastung haben keine Zeile.
  • taskType: "OTHER" ist eine Belastung, die kein Task ist, etwa das Lesen der Wettbewerber eines Monitors. Sie erhöht die Credits, aber nicht tasks.

Sperren und entsperren

  • Seine Schlüssel liefern innerhalb von fünf Sekunden 401.
  • Seine Monitore laufen nicht mehr, und noch nicht gestartete Batch-Elemente enden als API_KEY_INACTIVE.
  • Bereits wartende oder laufende Tasks werden abgeschlossen und berechnet.
{"status": "active"} stellt seine Schlüssel und Monitore wieder her. Jeder Monitor läuft bei der Rückkehr einmal, statt verpasste Läufe nachzuholen. Derselbe PATCH ändert name, externalId, monthlyCreditLimit und concurrencyLimit; null entfernt ein Limit oder die externalId. Ein Unterkonto kann nicht gelöscht werden; sperren Sie es stattdessen.

Fehler

Endpunkte