API-Referenz

KI-Ausgaben

Ausgaben für KI-Modelle nach Rechnungssteller, Modellanbieter, Modell und Zähler, gegen Ihre Bestellungen gestellt.

Mehr zu dieser Ressource

Neu mit den KI-Ausgabenkontrollen. KI-Ausgaben sind das, was die KI-Servicepositionen auf der verbundenen Abrechnung von AWS, Google Cloud, Azure und OCI kosten (Amazon Bedrock, SageMaker, Vertex AI, Azure OpenAI, OCI Generative AI und die Marketplace-Modelle auf derselben Rechnung), dazu das, was die direkt verbundenen KI-Anbieter melden (siehe KI-Anbieter). Pleaxy liest sie über dieselbe Nur-Lese-Verbindung wie den Rest der Rechnung, mit derselben Wahl der Datenquellen: Eine Verbindung, die current_cost erlaubt, liefert die Kosten seit Monatsbeginn und eine Prognose; eine, die invoices erlaubt, den abgeschlossenen Monat. AWS ist die Ausnahme: Es liefert KI-Positionen nur über Cost Explorer, daher braucht eine AWS-Verbindung current_cost für jede KI-Zahl (damit kommt auch der abgeschlossene Monat). Der Lieferant ist, wer die Rechnung stellt (der Rechnungssteller); das Unternehmen, dessen Modell genutzt wurde, ist der vendor auf der Position. Claude auf Bedrock sind also AWS-Ausgaben mit vendor anthropic, und nichts wird doppelt gezählt. Jeder Betrag steht in der Abrechnungswährung des Rechnungsstellers, nie umgerechnet und nie über Währungen hinweg summiert. Zuordnungsregeln ordnen Tags, Labels, Projekte und Workspaces der Anbieter Kostenstellen zu (GetAiAttribution), und eine freigegebene Bestellposition kann die eigene Ausgabenobergrenze des Anbieters setzen (SetAiSpendLimit, Opt-in).

KI-Ausgaben abrufen

KI-Ausgaben eines Zeitraums nach Rechnungssteller, Modellanbieter, Modell oder Kostenstelle.

GET/v1/workspaces/{regionId}/ai-spend

Parameter

  • periodstring

    Der Monat, YYYY-MM. Standardmäßig der laufende Monat.

  • groupBy"invoicer" | "vendor" | "model" | "costCenter"

    Was jede Gruppe ist. Standardmäßig invoicer, was Ihren Rechnungen entspricht. vendor summiert einen Modellanbieter über Rechnungssteller hinweg (was Sie für Claude ausgeben, egal wer es abrechnet), model eine Modell-ID wie abgerechnet, costCenter die Kostenstellen der Zuordnungsregeln.

Rückgabe

200 OK mit dem in der Antwort gezeigten Objekt.

Weitere Details

Für einen Zeitraum (standardmäßig den laufenden Monat) die KI-Ausgaben jedes verbundenen Rechnungsstellers, gruppiert wie groupBy angibt: seit Monatsbeginn, die Prognose für den ganzen Zeitraum, der letzte abgeschlossene Monat und die Veränderung dazu, mit der Nutzung je Zähler und neben jedem Rechnungssteller die offenen Bestellpositionen an ihn und was darauf noch übrig ist. Die Zahlen sind die KI-Positionen, die die Verbindungen synchronisiert haben (täglich für current_cost, wie heute die Kosten seit Monatsbeginn). Ein Rechnungssteller, dessen Verbindung nur Rechnungen liest, zeigt den abgeschlossenen Monat: Seine Werte seit Monatsbeginn und seine Prognose fehlen (ein AWS-Konto, das nur Rechnungen liest, hat keine KI-Positionen und steht in notReadable). Die Prognose ist die des Anbieters, wo er eine liefert (AWS Cost Explorer), sonst linear über die vergangenen Tage. Beträge stehen in der Abrechnungswährung des jeweiligen Rechnungsstellers, und die Summen sind ein Eintrag je Währung, nie über Währungen hinweg addiert. Die Gruppierung nach costCenter folgt den Zuordnungsregeln (GetAiAttribution); eine Position, auf die keine Regel passt, ist nicht zugeordnet.

Antwortfelder

  • periodstring

    Der Monat, für den die Zahlen gelten, YYYY-MM.

  • asOfstring

    Wann die neueste Position synchronisiert wurde, ISO 8601. Die Werte seit Monatsbeginn gelten zu diesem Zeitpunkt, nicht zu jetzt.

  • totalsArray<object>

    Ein Eintrag je Abrechnungswährung, nie über Währungen hinweg summiert: monthToDate, forecast für den ganzen Zeitraum, lastMonth (der letzte abgeschlossene Monat) und changePct, die Veränderung der Prognose gegenüber lastMonth in Prozent.

  • groups[].keystring

    Wie groupBy angibt: die Cloud-Verbindungs-ID des Rechnungsstellers; der Modellanbieter (anthropic, openai, google, meta, mistral, amazon, microsoft, cohere, xai, deepseek oder unknown für einen Nutzungstyp, den Pleaxy noch nicht zugeordnet hat); die Modell-ID wie abgerechnet, z. B. claude-sonnet-4-5 oder gemini-2.5-pro; oder der Code der Kostenstelle.

  • groups[].labelstring

    Was für die Gruppe angezeigt wird: die Kontobezeichnung der Verbindung, der Name des Modellanbieters, der Name des Modells oder der Name der Kostenstelle.

  • groups[].invoicerstring

    Wer die Ausgaben der Gruppe abrechnet, eine Cloud oder ein KI-Anbieter, mit invoicerId als dessen Verbindung: immer bei groupBy invoicer und bei einer Gruppe nach Modellanbieter oder Modell, wenn eine einzige Verbindung alles abrechnet (etwa Claude nur über Bedrock); fehlt, wenn es mehrere sind. Eine Kostenstellengruppe hat nie eine.

  • groups[].monthToDatenumber

    In der Währung der Gruppe, mit forecast, lastMonth und changePct wie in totals. monthToDate und forecast fehlen bei einem Rechnungssteller, dessen Verbindung nur Rechnungen liest: Er zeigt nur lastMonth.

  • groups[].quantitiesArray<object>

    Die Nutzung je Zähler. Token-gemessene Positionen: input_tokens, output_tokens, cached_input_tokens, cache_write_tokens, batch_input_tokens, batch_output_tokens, images, audio_seconds, embeddings_tokens oder requests. Kapazitätspositionen: gpu_hours, ptu_hours, model_units_hours oder cluster_hours. other für eine Position, die Pleaxy noch keinem Zähler zugeordnet hat. unit ist die Einheit der Menge: 1M_tokens, tokens, requests, images, seconds, gpu_hours, ptu_hours, model_unit_hours oder units für eine nicht zugeordnete Position.

  • groups[].purchaseOrdersArray<object>

    Die offenen Bestellpositionen an den Rechnungssteller der Gruppe, mit dem, was auf jeder noch übrig ist (remaining, in der Währung der Gruppe), nach den bereits darauf gebuchten Rechnungen. Nur bei einer Gruppe mit Rechnungssteller.

  • groups[].servicesArray<object>

    Nur bei groupBy invoicer: die Zahlen der Gruppe je eigenem Service des Anbieters (Amazon Bedrock, mit den Marketplace-Modellen, die es abrechnet; Amazon SageMaker; Vertex AI; ...), wie der Tab Cloud der Seite Ausgaben sie zeigt.

  • unattributedArray<object>

    Nur bei groupBy costCenter: die Ausgaben, auf die keine Zuordnungsregel passte, ein Eintrag je Währung in der Form einer Gruppe, angezeigt und nie ausgeblendet. Schreiben Sie dafür eine Regel mit SetAiAttribution.

  • notReadableArray<object>

    Verbundene Konten ohne KI-Positionen und der Grund: needs_current_cost für ein AWS-Konto, dessen Verbindung keine aktuellen Kosten erlaubt (AWS liefert seine KI-Positionen nur über Cost Explorer), not_synced_yet für eines, dessen KI-Positionen noch nicht gelesen wurden. Fehlt, wenn es keine gibt.

Fehler

  • 400 Bad Request - period ist kein Monat im Format YYYY-MM, oder groupBy ist weder invoicer, vendor, model noch costCenter.
  • 401 Unauthorized - Es wurden keine Zugangsdaten übermittelt, oder der Bearer-Token bzw. der X-Api-Key-Wert fehlt, ist ungültig, abgelaufen oder widerrufen.
  • 403 Forbidden - Der Bearer-Token oder API-Schlüssel des Aufrufers gewährt keinen Zugriff auf diesen Workspace (regionId) oder hat nicht die erforderliche Rolle.
GET /v1/workspaces/{regionId}/ai-spend
Anfrage
GET /v1/workspaces/reg_01k5x8p9j3q7vn2mhb4tzc6rde.buyer/ai-spend?period=2026-10&groupBy=vendor
Antwort · 200 OK
{
   "period": "2026-10",
   "asOf": "2026-10-29T06:10:00.000Z",
   "totals": [
      { "currency": "USD", "monthToDate": 57280.14, "forecast": 61400, "lastMonth": 48930.55, "changePct": 25.5 }
   ],
   "groups": [
      {
         "key": "anthropic",
         "label": "Anthropic",
         "invoicer": "aws",
         "invoicerId": "conn_01k7q2n4m8b3xd5fwj9hz6rsvt",
         "currency": "USD",
         "monthToDate": 44612.3,
         "forecast": 47830,
         "lastMonth": 38104.2,
         "changePct": 25.5,
         "quantities": [
            { "meter": "input_tokens", "unit": "1M_tokens", "quantity": 7120.4 },
            { "meter": "output_tokens", "unit": "1M_tokens", "quantity": 918.3 },
            { "meter": "cached_input_tokens", "unit": "1M_tokens", "quantity": 15480 },
            { "meter": "cache_write_tokens", "unit": "1M_tokens", "quantity": 1288.7 }
         ],
         "purchaseOrders": [ { "poId": "PO-8842", "lineNo": 1, "remaining": 4200 } ]
      },
      {
         "key": "amazon",
         "label": "Amazon",
         "invoicer": "aws",
         "invoicerId": "conn_01k7q2n4m8b3xd5fwj9hz6rsvt",
         "currency": "USD",
         "monthToDate": 12667.84,
         "forecast": 13570,
         "lastMonth": 10826.35,
         "changePct": 25.3,
         "quantities": [
            { "meter": "input_tokens", "unit": "1M_tokens", "quantity": 10874.8 },
            { "meter": "output_tokens", "unit": "1M_tokens", "quantity": 1240 }
         ],
         "purchaseOrders": [ { "poId": "PO-8842", "lineNo": 1, "remaining": 4200 } ]
      }
   ]
}

KI-Nutzungspositionen auflisten

Listet die KI-Nutzungspositionen hinter den Zahlen auf, seitenweise.

GET/v1/workspaces/{regionId}/ai-spend/lines

Parameter

  • periodstring

    Der Monat, YYYY-MM. Standardmäßig der laufende Monat.

  • invoicerIdstring

    Nur Positionen, die über diese Cloud-Verbindung abgerechnet wurden.

  • vendorstring

    Nur dieser Modellanbieter, z. B. anthropic.

  • modelstring

    Nur diese Modell-ID wie abgerechnet, z. B. claude-sonnet-4-5.

  • costCenterstring

    Nur Positionen, die dieser Kostenstelle (ihrem Code) zugeordnet sind. Positionen werden über die Zuordnungsregeln zugeordnet.

  • limitnumber

    Seitengröße, 1 bis 500. Standardmäßig 100.

  • cursorstring

    Der nextCursor der vorherigen Seite. Für die erste Seite weglassen.

Rückgabe

200 OK mit dem in der Antwort gezeigten Objekt.

Weitere Details

Die normalisierten Positionen, aus denen die KI-Ausgaben summiert werden: eine je Rechnungssteller, Tag, Modellanbieter, Modell, Zähler und Region, wie die Abrechnung des Anbieters sie gemeldet hat. Jeder Connector liest seine eigenen Namen (Nutzungstypen des AWS Cost Explorer, SKUs des Google-Cloud-Abrechnungsexports, Zähler von Azure Cost Management, OCI-Nutzungs-SKUs) und ordnet sie einem Modellanbieter, einem Modell und einem Zähler zu; ein Nutzungstyp, den Pleaxy noch nicht kennt, bleibt mit seinem Rohnamen und vendor unknown erhalten und wird nie verworfen. Neuester Tag zuerst. Geben Sie den nextCursor einer Seite als cursor für die nächste Seite zurück, bis nextCursor fehlt. Positionen werden 90 Tage lang taggenau aufbewahrt, danach je Monat.

Antwortfelder

  • invoicerstring

    Die Cloud, auf deren Rechnung die Position steht, mit invoicerId als ihrer Verbindung. Sie ist der Lieferant, egal wer der Modellanbieter ist.

  • vendorstring

    Das Unternehmen, dessen Modell genutzt wurde, gelesen aus dem Nutzungstyp, der SKU oder dem Zählernamen. unknown, wenn Pleaxy diesen Nutzungstyp noch nicht zugeordnet hat; rawUsageType nennt dann den Namen des Anbieters.

  • modelstring

    Die Modell-ID, wie der Anbieter sie abrechnet, z. B. claude-sonnet-4-5 oder gemini-2.5-pro.

  • shapestring

    tokens für eine Token-gemessene Position (Modellanbieter × Modell × Zähler × Region); capacity für bereitgestellten Durchsatz, GPU-Stunden oder einen dedizierten Cluster (Modellanbieter × sku × Zähler).

  • meterstring

    input_tokens, output_tokens, cached_input_tokens, cache_write_tokens, batch_input_tokens, batch_output_tokens, images, audio_seconds, embeddings_tokens oder requests bei Tokens; gpu_hours, ptu_hours, model_units_hours oder cluster_hours bei Kapazität; other, mit unit units, bei einem Nutzungstyp, den Pleaxy noch nicht zugeordnet hat.

  • daystring

    YYYY-MM-DD. Nach 90 Tagen werden Positionen je Monat aufbewahrt, und day ist dann der erste Tag des Monats.

  • amountnumber

    Was der Anbieter für die Position berechnet, vor Steuern, in currency: wie der Anbieter es meldet, nie umgerechnet.

  • unitPricenumber

    amount geteilt durch quantity, in der Einheit der Preisliste, wenn quantity über 0 liegt: was für die Position tatsächlich berechnet wurde, zum Vergleich mit ListAiRateCards.

  • attributionobject

    Wie der Anbieter selbst die Position zuordnet, unter den Namen, die er verwendet: ein Kostenzuordnungs-Tag oder ein Anwendungs-Inferenzprofil (AWS), ein Label oder Projekt (Google Cloud), eine Ressourcengruppe oder ein Tag (Azure), ein Compartment (OCI). Fehlt, wenn die Position keines trägt.

  • sourcestring

    Aus welchem Lesevorgang die Position stammt: AWS Cost Explorer (cost_explorer), der BigQuery-Abrechnungsexport von Google Cloud (billing_export), Azure Cost Management (cost_management) oder die OCI Usage API (usage_api).

  • rawServicestring

    Der eigene Servicename des Anbieters und, als rawUsageType, sein Nutzungstyp, seine SKU oder sein Zählername, aufbewahrt für Audits und auf jeder nicht zugeordneten Position.

  • nextCursorstring

    Undurchsichtig. Fehlt, wenn es keine älteren Positionen gibt.

Fehler

  • 400 Bad Request - period ist kein Monat im Format YYYY-MM, limit liegt außerhalb des Bereichs, oder cursor ist keiner, den diese Route zurückgegeben hat.
  • 401 Unauthorized - Es wurden keine Zugangsdaten übermittelt, oder der Bearer-Token bzw. der X-Api-Key-Wert fehlt, ist ungültig, abgelaufen oder widerrufen.
  • 403 Forbidden - Der Bearer-Token oder API-Schlüssel des Aufrufers gewährt keinen Zugriff auf diesen Workspace (regionId) oder hat nicht die erforderliche Rolle.
GET /v1/workspaces/{regionId}/ai-spend/lines
Anfrage
curl "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/ai-spend/lines" \
  -H "X-Api-Key: $PLEAXY_API_KEY"
Antwort · 200 OK
{
   "lines": [
      {
         "invoicerId": "string",
         "invoicer": "aws" | "gcp" | "azure" | "oci" | "openai" | "anthropic" | "mistral" | "snowflake",
         "vendor": "anthropic" | "openai" | "google" | "meta" | "mistral" | "amazon" | "microsoft" | "cohere" | "xai" | "deepseek" | "unknown",
         "model": "string",
         "shape": "tokens" | "capacity",
         "meter": "string",
         "region": "string",
         "day": "string",
         "quantity": number,
         "unit": "1M_tokens" | "tokens" | "requests" | "images" | "seconds" | "gpu_hours" | "ptu_hours" | "model_unit_hours" | "units",
         "amount": number,
         "currency": "string",
         "unitPrice": number,
         "attribution": { "tag": "string", "label": "string", "project": "string", "resourceGroup": "string", "compartment": "string", "inferenceProfile": "string" },
         "source": "cost_explorer" | "billing_export" | "cost_management" | "usage_api",
         "rawService": "string",
         "rawUsageType": "string"
      }
   ],
   "nextCursor": "string"
}

KI-Preislisten auflisten

Listet die öffentlichen Listenpreise von KI-Modellen auf, wie sie an einem Tag gelten.

GET/v1/workspaces/{regionId}/ai-rate-cards

Parameter

  • invoicer"aws" | "gcp" | "azure" | "oci"

    Nur die Preise dieses Rechnungsstellers.

  • vendorstring

    Nur die Modelle dieses Modellanbieters, z. B. anthropic.

  • modelstring

    Nur diese Modell-ID wie abgerechnet.

  • onstring

    Ein Tag, YYYY-MM-DD: nur der an diesem Tag gültige Eintrag, je Rechnungssteller, Modellanbieter, Modell, Zähler und Region. Weggelassen, wird jeder Eintrag zurückgegeben.

Rückgabe

200 OK mit dem in der Antwort gezeigten Objekt.

Weitere Details

Die öffentlichen Listenpreise, die Pleaxy für jeden Rechnungssteller, Modellanbieter, jedes Modell, jeden Zähler und jede Region führt, die es zuordnet, mit Gültigkeitsdaten, entnommen den Preisseiten der Anbieter selbst. Eine Preisänderung ist ein neuer Eintrag mit eigenem effectiveFrom; nichts wird an Ort und Stelle bearbeitet, sodass eine Position immer am Preis gemessen wird, der an ihrem Tag galt. Mit on wird je Rechnungssteller, Modellanbieter, Modell, Zähler und Region nur der an diesem Tag gültige Eintrag zurückgegeben; ohne on jeder Eintrag, vergangene und aktuelle. Der verhandelte Preis eines Vertrags oder sein Rabatt auf den Listenpreis geht der Preisliste vor, wenn Pleaxy Ihre Positionen prüft; die Preislisten selbst lassen sich nicht bearbeiten.

Antwortfelder

  • unitPricenumber

    Der Listenpreis je Einheit, in currency: je 1.000.000 Tokens bei 1M_tokens, je Stunde bei den Kapazitätseinheiten.

  • regionstring

    Nur wo der Rechnungssteller nach Region bepreist; fehlt bei einem Preis, der überall gilt.

  • effectiveFromstring

    Der Tag, an dem der Preis in Kraft trat, YYYY-MM-DD, und als effectiveTo, nach seiner Ablösung, der letzte Tag, an dem er galt. Ohne effectiveTo: noch gültig.

  • sourceUrlstring

    Die Preisseite des Anbieters, der der Eintrag entnommen wurde.

Fehler

  • 400 Bad Request - on ist kein Tag im Format YYYY-MM-DD, oder invoicer ist weder aws, gcp, azure noch oci.
  • 401 Unauthorized - Es wurden keine Zugangsdaten übermittelt, oder der Bearer-Token bzw. der X-Api-Key-Wert fehlt, ist ungültig, abgelaufen oder widerrufen.
  • 403 Forbidden - Der Bearer-Token oder API-Schlüssel des Aufrufers gewährt keinen Zugriff auf diesen Workspace (regionId) oder hat nicht die erforderliche Rolle.
GET /v1/workspaces/{regionId}/ai-rate-cards
Anfrage
curl "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/ai-rate-cards" \
  -H "X-Api-Key: $PLEAXY_API_KEY"
Antwort · 200 OK
[
   {
      "invoicer": "aws" | "gcp" | "azure" | "oci" | "openai" | "anthropic" | "mistral" | "snowflake",
      "vendor": "string",
      "model": "string",
      "meter": "string",
      "region": "string",
      "unit": "1M_tokens" | "tokens" | "requests" | "images" | "seconds" | "gpu_hours" | "ptu_hours" | "model_unit_hours",
      "unitPrice": number,
      "currency": "string",
      "effectiveFrom": "string",
      "effectiveTo": "string",
      "sourceUrl": "string"
   }
]

KI-Ausgaben prüfen

Sagt, ob die Prognose des Zeitraums in die offenen Bestellpositionen und das Budget passt.

POST/v1/workspaces/{regionId}/ai-spend/check

Body

  • invoicerIdstring

    Die zu prüfende Cloud-Verbindung: ihre Prognose gegen jede offene Bestellposition an sie.

  • costCenterstring

    Code oder Name einer Kostenstelle: ihre zugeordneten KI-Ausgaben und ihre Prognose gegen ihr Budget für den Zeitraum, wenn Budgets eingeschaltet sind. Positionen werden über die Zuordnungsregeln zugeordnet.

  • poIdstring

    Eine Bestellung: nur ihre offenen Positionen, für den Rechnungssteller, an den sie ging.

  • periodstring

    Der Monat, YYYY-MM. Standardmäßig der laufende Monat.

Rückgabe

200 OK mit dem in der Antwort gezeigten Objekt.

Weitere Details

Beantwortet „Passt Bedrock diesen Monat in PO-8842?“ aus denselben Zahlen wie GetAiSpend: die Werte seit Monatsbeginn und die Prognose eines Rechnungsstellers, einer Kostenstelle oder einer Bestellung, gestellt gegen die offenen Bestellpositionen an diesen Rechnungssteller und, mit einer Kostenstelle und eingeschalteten Budgets, gegen ihr Budget. Nichts wird gespeichert und nichts blockiert: Das Ergebnis ist, was der Tab KI der Seite Ausgaben zeigt und was der Assistent und das MCP-Tool check_ai_spend antworten. Geben Sie mindestens eines von invoicerId, costCenter und poId an; poId impliziert den Rechnungssteller, an den die Bestellung ging.

Antwortfelder

  • outcomestring

    fits: Die Prognose passt in das, was die offenen Positionen (und das Budget) noch übrig haben. over: Sie passt nicht; overBy jeder Position sagt, um wie viel, und budget.remaining wird negativ. no_po: Für den Zeitraum gibt es keine offene Bestellposition an den Rechnungssteller. no_budget: Eine Kostenstelle wurde angegeben, hat aber kein Budget für den Zeitraum, oder Budgets sind ausgeschaltet.

  • currencystring

    Die Abrechnungswährung des Rechnungsstellers, in der monthToDate, forecast und die Zahlen der Positionen stehen. Nichts wird umgerechnet: Ein in einer anderen Währung geführtes Budget ergibt no_budget.

  • purchaseOrdersArray<object>

    Die geprüften offenen Positionen, jede mit remaining nach den bereits darauf gebuchten Rechnungen und, wenn die Prognose das übersteigt, overBy.

  • budgetobject

    Nur mit costCenter und eingeschalteten Budgets: das Budget der Kostenstelle für den Zeitraum, committed (offene Bestellungen), actual (Rechnungen), accruing (zugeordnete KI-Ausgaben seit Monatsbeginn, noch nicht in Rechnung gestellt: eine dritte Zahl, nie in die anderen beiden eingerechnet) und remaining.

Fehler

  • 400 Bad Request - Keines von invoicerId, costCenter und poId wurde angegeben, oder period ist kein Monat im Format YYYY-MM.
  • 404 Not Found - Keine Cloud-Verbindung, Kostenstelle oder Bestellung mit dieser ID im Workspace.
  • 401 Unauthorized - Es wurden keine Zugangsdaten übermittelt, oder der Bearer-Token bzw. der X-Api-Key-Wert fehlt, ist ungültig, abgelaufen oder widerrufen.
  • 403 Forbidden - Der Bearer-Token oder API-Schlüssel des Aufrufers gewährt keinen Zugriff auf diesen Workspace (regionId) oder hat nicht die erforderliche Rolle.
POST /v1/workspaces/{regionId}/ai-spend/check
Anfrage
curl -X POST "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/ai-spend/check" \
  -H "X-Api-Key: $PLEAXY_API_KEY" \
  -H "Content-Type: application/json" \
  -d @body.json
body.json
{
   "invoicerId": "string",
   "costCenter": "string",
   "poId": "string",
   "period": "string"
}
Antwort · 200 OK
{
   "outcome": "fits" | "over" | "no_po" | "no_budget",
   "period": "string",
   "currency": "string",
   "monthToDate": number,
   "forecast": number,
   "purchaseOrders": [ { "poId": "string", "lineNo": number, "remaining": number, "overBy": number } ],
   "budget": { "costCenter": "string", "budget": number, "committed": number, "actual": number, "accruing": number, "remaining": number }
}

KI-Bestellpositionen vorschlagen

Aus der KI-Nutzung eines Rechnungsstellers vorausgefüllte Bestellpositionen.

GET/v1/workspaces/{regionId}/ai-spend/po-lines

Parameter

  • invoicerIdstringPflicht

    Der Rechnungssteller, aus dessen Nutzung die Positionen stammen: groups[].invoicerId aus GetAiSpend.

  • periodstring

    Der Monat, YYYY-MM. Standardmäßig der letzte abgeschlossene Monat.

Rückgabe

200 OK mit dem in der Antwort gezeigten Objekt.

Weitere Details

Die Positionen, die "KI-Positionen hinzufügen" in einer Bestellung vorausfüllt: für einen Rechnungssteller und einen Monat (standardmäßig den letzten abgeschlossenen) eine Position je abgerechnetem Modell und Zähler, mit dem aufgerundeten Monatsvolumen als Menge und einem Stückpreis aus der aktiven Vertragskondition für dieses Modell (ihrem Preis oder ihrem Rabatt auf den Listenpreis), sonst dem heutigen Listenpreis, sonst dem im Monat abgerechneten Preis - priceSource sagt, welcher. Positionen, die Pleaxy keinem Zähler zuordnen konnte, und Credits ohne Geldpreis werden nicht angeboten. Nichts wird gespeichert: Senden Sie die Positionen an CreatePurchaseOrder, mit der contractId, die eine Position nennt. Erfordert 'view'-Zugriff auf Bestellungen.

Antwortfelder

  • providerstring

    Bei einem Cloud-Rechnungssteller: der Anbieter, an den die Bestellung geht. Ein direkter KI-Anbieter liefert stattdessen supplierConnectionId, seinen Lieferanteneintrag.

  • lines[].aiobject

    Der KI-Umfang der Position, als lineItems[].ai zu senden.

  • lines[].unitstring

    Die Einheit des Zählers: 1M_tokens bei einem Token-Zähler, gpu_hours und Ähnliches bei Kapazität.

  • lines[].priceSourcestring

    contract (contractId und contractTermId nennen die Kondition), list (die Preisliste zum heutigen Datum) oder billed (was der Monat je Einheit gekostet hat, wenn Pleaxy keinen Preis für das Modell führt).

  • lines[].periodQuantitynumber

    Was der Monat verbraucht hat, mit periodAmount als dem abgerechneten Betrag, damit das Bestellformular es neben der Position zeigt.

Fehler

  • 400 Bad Request - invoicerId fehlt, oder period ist kein Monat im Format YYYY-MM.
  • 404 Not Found - Kein verbundener Rechnungssteller mit dieser ID im Workspace.
  • 401 Unauthorized - Es wurden keine Zugangsdaten übermittelt, oder der Bearer-Token bzw. der X-Api-Key-Wert fehlt, ist ungültig, abgelaufen oder widerrufen.
  • 403 Forbidden - Der Bearer-Token oder API-Schlüssel des Aufrufers gewährt keinen Zugriff auf diesen Workspace (regionId) oder hat nicht die erforderliche Rolle.
GET /v1/workspaces/{regionId}/ai-spend/po-lines
Anfrage
curl "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/ai-spend/po-lines" \
  -H "X-Api-Key: $PLEAXY_API_KEY"
Antwort · 200 OK
{
   "invoicerId": "string",
   "invoicer": "string",
   "period": "string",
   "provider": "string",
   "supplierConnectionId": "string",
   "lines": [
      {
         "ai": { "invoicer": "string", "vendor": "string", "model": "string", "meter": "string", "region": "string" },
         "unit": "string",
         "qty": number,
         "unitPrice": number,
         "currency": "string",
         "priceSource": "contract" | "list" | "billed",
         "contractId": "string",
         "contractTermId": "string",
         "periodQuantity": number,
         "periodAmount": number
      }
   ]
}

Nächsten KI-Zeitraum bestellen

Erstellt einen Entwurf derselben Bestellung für den Folgemonat.

POST/v1/workspaces/{regionId}/ai-spend/next-period/{poId}

Parameter

  • poIdstringPflicht

    Die erneut zu bestellende Bestellung: eine mit KI-Positionen oder die Bestellung eines Cloud-Anbieters.

Rückgabe

201 Created mit dem in der Antwort gezeigten Objekt.

Weitere Details

"Nächsten Zeitraum bestellen": ein Entwurf derselben Bestellung - Lieferant, Kostenstelle, Vertrag und Positionen - für den Monat nach dem ihrer Positionen. Die Menge jeder KI-Position ist die Prognose aus der bisherigen Nutzung dieses Monats, linear über die vergangenen Tage (ihre eigene Menge, wenn noch nichts genutzt wurde); jede andere Position behält ihre Menge. Der Entwurf durchläuft beim Einreichen die übliche Freigabe. Ohne Body. Erfordert 'create'-Zugriff auf Bestellungen.

Fehler

  • 400 Bad Request - Die Bestellung hat keine KI-Positionen und ist keine Cloud-Bestellung.
  • 404 Not Found - Keine solche Bestellung im Workspace.
  • 401 Unauthorized - Es wurden keine Zugangsdaten übermittelt, oder der Bearer-Token bzw. der X-Api-Key-Wert fehlt, ist ungültig, abgelaufen oder widerrufen.
  • 403 Forbidden - Der Bearer-Token oder API-Schlüssel des Aufrufers gewährt keinen Zugriff auf diesen Workspace (regionId) oder hat nicht die erforderliche Rolle.
POST /v1/workspaces/{regionId}/ai-spend/next-period/{poId}
Anfrage
curl -X POST "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/ai-spend/next-period/{poId}" \
  -H "X-Api-Key: $PLEAXY_API_KEY"
Antwort · 201 Created
PurchaseOrder (the draft), as GetPurchaseOrder returns it

KI-Empfehlungen abrufen

KI-Ausgaben, die keine Bestellung abdeckt, und günstigere Wege, sie einzukaufen.

GET/v1/workspaces/{regionId}/ai-spend/recommendations

Parameter

  • periodstring

    Der Monat, dessen Deckung geprüft wird, YYYY-MM. Standard: dieser Monat.

Rückgabe

200 OK mit dem in der Antwort gezeigten Objekt.

Weitere Details

Was der KI-Tab der Seite Ausgaben empfiehlt. uncovered listet jeden Rechnungssteller, dessen Prognose für den Monat keine offene Bestellung abdeckt: no_po, wenn keine Bestellung an ihn ausgelöst ist, over_po, wenn die Prognose über das hinausgeht, was seinen Bestellungen bleibt, mit gap als dem Betrag, den eine neue Bestellung braucht. savings listet günstigere Wege, die Nutzung des Vormonats einzukaufen, zu den heutigen Listenpreisen: batch (das Höchste, was die Umstellung interaktiver Tokens auf den Batch-Tarif sparen würde), cache (was jede weiteren 10% Eingabe aus dem Cache sparen) und reserve (GPU-Stunden mit einem stabilen Grundbedarf an den meisten Tagen und die GPUs, die dieser Grundbedarf auslastet; ohne Betrag, da Reservierungen per Vertrag bepreist werden). Beträge unter 10 werden nicht aufgeführt, und jeder Betrag bleibt in der Abrechnungswährung des Rechnungsstellers. Erfordert 'view'-Zugriff auf Lieferanten oder Rechnungen.

Antwortfelder

  • basisPeriodstring

    Der Monat, aus dem die Einsparungen gelesen werden: der letzte abgeschlossene.

  • uncovered[].coverednumber

    Was den offenen Bestellpositionen an diesen Rechnungssteller für den Monat bleibt.

  • uncovered[].gapnumber

    forecast minus covered: was eine neue Bestellung braucht. DraftAiOrders legt den Entwurf an.

  • uncovered[].poIdsstring[]

    Bei over_po die offenen Bestellungen, die einen Teil davon abdecken.

  • accountsobject[]

    Dasselbe wie uncovered für ganze Cloud-Konten: alle ihre Ausgaben aus der aktuellen Schätzung des Anbieters, gegen die offenen Bestellungen, die das Konto abdecken. Nur dieser Monat. Die KI-Ausgaben eines Kontos sind darin enthalten, also die beiden Listen nie addieren.

  • savings[].savingnumber

    batch: das Höchste, was es im Monat spart, wenn alles als Batch liefe (nur für Arbeit, die warten kann). cache: was jede weiteren 10% Eingabe aus dem Cache im Monat sparen. Fehlt bei reserve.

  • savings[].detail.cachedSharenumber

    cache: der Anteil der Eingabe, der schon aus dem Cache gelesen wird, 0 bis 1.

  • savings[].detail.reservableUnitsnumber

    reserve: die GPUs, die der stabile Grundbedarf von steadyHoursPerDay rund um die Uhr auslastet, an daysUsed Tagen des Monats.

Fehler

  • 400 Bad Request - period ist kein Monat im Format YYYY-MM.
  • 401 Unauthorized - Es wurden keine Zugangsdaten übermittelt, oder der Bearer-Token bzw. der X-Api-Key-Wert fehlt, ist ungültig, abgelaufen oder widerrufen.
  • 403 Forbidden - Der Bearer-Token oder API-Schlüssel des Aufrufers gewährt keinen Zugriff auf diesen Workspace (regionId) oder hat nicht die erforderliche Rolle.
GET /v1/workspaces/{regionId}/ai-spend/recommendations
Anfrage
curl "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/ai-spend/recommendations" \
  -H "X-Api-Key: $PLEAXY_API_KEY"
Antwort · 200 OK
{
   "period": "string",
   "basisPeriod": "string",
   "uncovered": [
      {
         "invoicerId": "string",
         "invoicer": "string",
         "label": "string",
         "currency": "string",
         "monthToDate": number,
         "forecast": number,
         "covered": number,
         "gap": number,
         "reason": "no_po" | "over_po",
         "poIds": [ "string" ]
      }
   ],
   "accounts": [ "same as uncovered, for whole cloud accounts" ],
   "savings": [
      {
         "kind": "batch" | "cache" | "reserve",
         "invoicerId": "string",
         "invoicer": "string",
         "label": "string",
         "vendor": "string",
         "model": "string",
         "currency": "string",
         "spend": number,
         "saving": number,
         "detail": { "interactiveRate": number, "batchRate": number, "inputRate": number, "cachedRate": number, "cachedShare": number, "daysUsed": number, "steadyHoursPerDay": number, "reservableUnits": number }
      }
   ]
}

KI-Bestellentwürfe anlegen

Legt für die nicht abgedeckten KI-Ausgaben jedes Rechnungsstellers einen Bestellentwurf an.

POST/v1/workspaces/{regionId}/ai-spend/draft-orders

Body

  • invoicerIdsstring[]Pflicht

    Die Rechnungssteller, für die eine Bestellung entworfen wird, 1 bis 20: uncovered[].invoicerId aus GetAiRecommendations.

  • periodstring

    Der Monat, den die Bestellungen abdecken, YYYY-MM. Standard: dieser Monat.

  • scopestring

    ai (Standard): Positionen je Modell und Zähler für die KI-Nutzung. account: eine Betragsposition für alles, was ein Cloud-Konto abrechnet, bis zu seinem gap in accounts, bis Monatsende.

Rückgabe

200 OK mit dem in der Antwort gezeigten Objekt.

Weitere Details

"Bestellentwurf anlegen" bei einer Empfehlung: für jeden genannten Rechnungssteller ein Bestellentwurf für den Monat mit einer Position je Modell und Zähler aus der Nutzung des Vormonats, bepreist wie bei SuggestAiPoLines, die Menge jeweils die Prognose aus der bisherigen Nutzung dieses Monats. Decken offene Bestellungen schon einen Teil der Prognose ab, werden die Mengen auf die Lücke skaliert. Der Entwurf einer Cloud geht an den Anbieter für dieses Konto, der eines direkten KI-Anbieters an seinen Lieferanteneintrag. skipped sagt, warum ein Rechnungssteller keinen Entwurf bekam. Entwürfe durchlaufen beim Absenden die übliche Freigabe. Erfordert 'create'-Zugriff auf Bestellungen.

Antwortfelder

  • drafts[].poIdstring

    Der Bestellentwurf: GetPurchaseOrder liest ihn, und Absenden schickt ihn zur Freigabe.

  • skipped[].reasonstring

    no_usage: noch keine KI-Nutzung, auf die sich eine Bestellung stützen kann. no_supplier: ein direkter KI-Anbieter ohne Lieferanteneintrag, an den sie gehen könnte. no_forecast (scope account): noch keine aktuelle Ausgabenschätzung für das Konto. already_drafted: für diese Ausgaben gibt es diesen Monat schon einen Entwurf oder eine Bestellung, die auf Freigabe wartet; poId nennt sie, und es wird kein zweiter Entwurf angelegt.

Fehler

  • 400 Bad Request - invoicerIds ist leer oder hat mehr als 20 Einträge, period ist kein Monat im Format YYYY-MM, oder scope ist account für einen Rechnungssteller, der kein Cloud-Konto ist.
  • 404 Not Found - Kein verbundener Rechnungssteller mit einer dieser IDs im Arbeitsbereich.
  • 401 Unauthorized - Es wurden keine Zugangsdaten übermittelt, oder der Bearer-Token bzw. der X-Api-Key-Wert fehlt, ist ungültig, abgelaufen oder widerrufen.
  • 403 Forbidden - Der Bearer-Token oder API-Schlüssel des Aufrufers gewährt keinen Zugriff auf diesen Workspace (regionId) oder hat nicht die erforderliche Rolle.
POST /v1/workspaces/{regionId}/ai-spend/draft-orders
Anfrage
curl -X POST "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/ai-spend/draft-orders" \
  -H "X-Api-Key: $PLEAXY_API_KEY" \
  -H "Content-Type: application/json" \
  -d @body.json
body.json
{
   "invoicerIds": [ "string" ],
   "period": "string",
   "scope": "ai" | "account"
}
Antwort · 200 OK
{
   "period": "string",
   "drafts": [ { "invoicerId": "string", "poId": "string", "currency": "string", "total": number } ],
   "skipped": [ { "invoicerId": "string", "reason": "no_usage" | "no_supplier" | "no_forecast" | "already_drafted", "poId": "string", "message": "string", "messageId": "string", "params": { } } ]
}

KI-Zusagen auflisten

Zugesagte KI-Ausgaben und -Kapazität sowie Prepaid-Credits, mit dem bereits Verbrauchten.

GET/v1/workspaces/{regionId}/ai-spend/commitments

Rückgabe

200 OK mit dem in der Antwort gezeigten Objekt.

Weitere Details

Was der Tab Zusagen der Seite Ausgaben zeigt: jede Kondition Ihrer aktiven Verträge mit zugesagten Ausgaben oder reservierter Kapazität, mit dem, was die synchronisierte KI-Nutzung innerhalb der Laufzeit davon verbraucht hat, was übrig ist und, bei Ausgaben, das Tempo bis zum Ende der Kondition; dazu jede Bestellposition für Prepaid-Credits mit dem, was ihre Rechnungen davon abgerufen haben. Erfordert 'view'-Zugriff auf Lieferanten oder auf Rechnungen.

Antwortfelder

  • committednumber

    spend: der zugesagte Betrag, in currency. capacity: die reservierten Einheiten mal die bisherigen Stunden der Kondition. prepaid_credit: was die Bestellposition gekauft hat.

  • usednumber

    spend: die Beträge der synchronisierten KI-Positionen, die die Kondition abdeckt, in ihrer Währung. capacity: die genutzten Stunden. prepaid_credit: was Rechnungen von der Position abgerufen haben.

  • projectednumber

    Nur spend: was die Kondition bei bisherigem Tempo bis zu ihrem Ende verbraucht haben wird.

Fehler

  • 401 Unauthorized - Es wurden keine Zugangsdaten übermittelt, oder der Bearer-Token bzw. der X-Api-Key-Wert fehlt, ist ungültig, abgelaufen oder widerrufen.
  • 403 Forbidden - Der Bearer-Token oder API-Schlüssel des Aufrufers gewährt keinen Zugriff auf diesen Workspace (regionId) oder hat nicht die erforderliche Rolle.
GET /v1/workspaces/{regionId}/ai-spend/commitments
Anfrage
curl "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/ai-spend/commitments" \
  -H "X-Api-Key: $PLEAXY_API_KEY"
Antwort · 200 OK
[
   {
      "kind": "spend" | "capacity" | "prepaid_credit",
      "contractId": "string",
      "contractTitle": "string",
      "termId": "string",
      "poId": "string",
      "lineNo": number,
      "supplier": "string",
      "description": "string",
      "ai": { "invoicer": "string", "vendor": "string", "model": "string", "meter": "string" },
      "currency": "string",
      "termStart": "string",
      "termEnd": "string",
      "committed": number,
      "used": number,
      "remaining": number,
      "usedPct": number,
      "projected": number,
      "unit": "string"
   }
]

KI-Verlängerungsregel abrufen

Die Regel, die die KI-Bestellungen des Folgemonats als Entwürfe anlegt.

GET/v1/workspaces/{regionId}/ai-spend/renewal-rule

Rückgabe

200 OK mit dem in der Antwort gezeigten Objekt.

Weitere Details

Ob die KI-Bestellungen des Folgemonats aus der Prognose als Entwürfe angelegt werden, ab welchem Tag des Monats und was ihr letzter Lauf angelegt hat. Aus, bis jemand sie einschaltet. Erfordert 'view'-Zugriff auf Bestellungen.

Antwortfelder

  • ownerSubstring

    Wer sie eingeschaltet hat: Die Entwürfe werden in dessen Namen erstellt, solange die Person noch Mitglied des Workspace ist.

  • draftedForstring

    Der letzte Monat, für den Entwürfe erstellt wurden, YYYY-MM: Jeder Monat wird nur einmal angelegt.

Fehler

  • 401 Unauthorized - Es wurden keine Zugangsdaten übermittelt, oder der Bearer-Token bzw. der X-Api-Key-Wert fehlt, ist ungültig, abgelaufen oder widerrufen.
  • 403 Forbidden - Der Bearer-Token oder API-Schlüssel des Aufrufers gewährt keinen Zugriff auf diesen Workspace (regionId) oder hat nicht die erforderliche Rolle.
GET /v1/workspaces/{regionId}/ai-spend/renewal-rule
Anfrage
curl "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/ai-spend/renewal-rule" \
  -H "X-Api-Key: $PLEAXY_API_KEY"
Antwort · 200 OK
{
   "enabled": boolean,
   "dayOfMonth": number,
   "ownerSub": "string",
   "updatedAt": "string",
   "draftedFor": "string",
   "lastRun": { "at": "string", "period": "string", "drafts": [ { "poId": "string", "draftId": "string" } ] }
}

KI-Verlängerungsregel festlegen

Schaltet die Verlängerungsregel für KI-Bestellungen ein oder aus.

PUT/v1/workspaces/{regionId}/ai-spend/renewal-rule

Body

  • enabledbooleanPflicht

    Ob die KI-Bestellungen des Folgemonats als Entwürfe angelegt werden.

  • dayOfMonthnumber

    1 bis 28: der Tag, ab dem die Entwürfe erstellt werden. Ohne Angabe 25.

Rückgabe

200 OK mit dem in der Antwort gezeigten Objekt.

Weitere Details

Ab dayOfMonth legt Pleaxy einmal im Monat für jede offene Bestellung mit in diesem Monat gültigen KI-Positionen die Bestellung des Folgemonats als Entwurf an, wie RaiseNextAiPeriod es tut, im Namen der Person, die die Regel eingeschaltet hat. Die Regel läuft, wenn die KI-Ausgaben des Workspace das nächste Mal gelesen werden (das Dashboard und die Seite Ausgaben lesen sie). Entwürfe werden nie ohne die übliche Freigabe ausgestellt.

Angemeldete Sitzung mit 'create'-Zugriff auf Bestellungen; ein API-Schlüssel erhält 403.

Fehler

  • 400 Bad Request - dayOfMonth ist keine ganze Zahl von 1 bis 28.
  • 403 Forbidden - Der Aufrufer ist ein API-Schlüssel oder hat keinen 'create'-Zugriff auf Bestellungen.
  • 401 Unauthorized - Es wurden keine Zugangsdaten übermittelt, oder der Bearer-Token bzw. der X-Api-Key-Wert fehlt, ist ungültig, abgelaufen oder widerrufen.
PUT /v1/workspaces/{regionId}/ai-spend/renewal-rule
Anfrage
curl -X PUT "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/ai-spend/renewal-rule" \
  -H "X-Api-Key: $PLEAXY_API_KEY" \
  -H "Content-Type: application/json" \
  -d @body.json
body.json
{
   "enabled": true,
   "dayOfMonth": 25
}
Antwort · 200 OK
The rule, as GetAiRenewalRule returns it

KI-Zuordnung abrufen

Die Regeln, die KI-Ausgaben Kostenstellen zuordnen.

GET/v1/workspaces/{regionId}/ai-spend/attribution

Parameter

  • periodstring

    Der Monat, YYYY-MM. Standardmäßig der laufende Monat.

Rückgabe

200 OK mit dem in der Antwort gezeigten Objekt.

Weitere Details

Ihre Zuordnungsregeln in Reihenfolge - die erste, die auf eine Position passt, gewinnt - mit dem, was jede im Zeitraum erfasst hat, dem, was keine Regel erfasst hat, und den Dimensionswerten hinter den nicht erfassten Ausgaben (größte zuerst), um daraus die nächste Regel zu schreiben. Eine Regel ordnet eine Dimension des Anbieters einer Kostenstelle zu: tag (AWS-Kostenzuordnungs-Tag) oder label (Google Cloud), mit seinem Schlüssel; project (OpenAI, Google Cloud), workspace (Anthropic), resource_group (Azure), compartment (OCI), cluster (GPU-Clouds), api_key oder inference_profile. Eine Position, auf die keine Regel passt, ist nicht zugeordnet: angezeigt, nie ausgeblendet. Erfordert 'view'-Zugriff auf Lieferanten oder auf Rechnungen.

Antwortfelder

  • versionnumber

    Senden Sie sie mit SetAiAttribution zurück, damit ein Speichern nicht die Änderungen einer anderen Person überschreibt.

  • rules[].invoicerIdstring

    Nur die Positionen dieses Rechnungsstellers; fehlt es, alle Rechnungssteller.

  • rules[].matchedArray<object>

    Was die Regel im Zeitraum erfasst hat, ein Eintrag je Währung.

Fehler

  • 400 Bad Request - period ist kein Monat im Format YYYY-MM.
  • 401 Unauthorized - Es wurden keine Zugangsdaten übermittelt, oder der Bearer-Token bzw. der X-Api-Key-Wert fehlt, ist ungültig, abgelaufen oder widerrufen.
  • 403 Forbidden - Der Bearer-Token oder API-Schlüssel des Aufrufers gewährt keinen Zugriff auf diesen Workspace (regionId) oder hat nicht die erforderliche Rolle.
GET /v1/workspaces/{regionId}/ai-spend/attribution
Anfrage
curl "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/ai-spend/attribution" \
  -H "X-Api-Key: $PLEAXY_API_KEY"
Antwort · 200 OK
{
   "period": "string",
   "version": number,
   "updatedAt": "string",
   "rules": [
      { "id": "string", "invoicerId": "string", "dimension": "string", "key": "string", "value": "string", "costCenter": "string", "matched": [ { "currency": "string", "amount": number } ] }
   ],
   "unattributed": [ { "currency": "string", "amount": number } ],
   "unmatchedValues": [ { "invoicerId": "string", "key": "string", "value": "string", "currency": "string", "amount": number } ]
}

KI-Zuordnung festlegen

Ersetzt die Zuordnungsregeln.

PUT/v1/workspaces/{regionId}/ai-spend/attribution

Body

  • rulesArray<{ id?, invoicerId?, dimension, key?, value, costCenter }>Pflicht

    Alle Regeln, die zuerst passende zuerst. Höchstens 200. Behalten Sie die id einer Regel bei, um sie zu behalten; eine neue Regel erhält eine.

  • versionnumberPflicht

    Die Version, die GetAiAttribution zurückgegeben hat; 0 beim ersten Speichern.

Rückgabe

200 OK mit dem in der Antwort gezeigten Objekt.

Weitere Details

Ersetzt alle Regeln in Reihenfolge, ausgehend von der Version, die Sie gelesen haben. Eine tag- oder label-Regel braucht ihren Schlüssel; die Kostenstelle muss eine des Workspace sein. Eine Regel auf einen AWS-Tag oder ein Google-Cloud-Label sorgt dafür, dass die nächste Synchronisierung die KI-Positionen dieses Kontos auch danach liest (ein AWS-Tag-Schlüssel je Konto). Gibt die Regeln wie GetAiAttribution zurück. Erfordert 'edit'-Zugriff auf Bestellungen.

Fehler

  • 400 Bad Request - Eine tag- oder label-Regel hat keinen Schlüssel, oder eine Kostenstelle gehört nicht zum Workspace.
  • 409 Conflict - Jemand hat die Regeln gespeichert, seit Sie sie gelesen haben; lesen Sie sie erneut.
  • 401 Unauthorized - Es wurden keine Zugangsdaten übermittelt, oder der Bearer-Token bzw. der X-Api-Key-Wert fehlt, ist ungültig, abgelaufen oder widerrufen.
  • 403 Forbidden - Der Bearer-Token oder API-Schlüssel des Aufrufers gewährt keinen Zugriff auf diesen Workspace (regionId) oder hat nicht die erforderliche Rolle.
PUT /v1/workspaces/{regionId}/ai-spend/attribution
Anfrage
curl -X PUT "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/ai-spend/attribution" \
  -H "X-Api-Key: $PLEAXY_API_KEY" \
  -H "Content-Type: application/json" \
  -d @body.json
body.json
{
   "rules": [ { "dimension": "tag", "key": "team", "value": "search", "costCenter": "CC-410" } ],
   "version": 3
}
Antwort · 200 OK
The rules, as GetAiAttribution returns them

KI-Kostenstellen auflisten

Budgets der Kostenstellen mit ihren auflaufenden KI-Ausgaben.

GET/v1/workspaces/{regionId}/ai-spend/cost-centers

Parameter

  • periodstring

    Der Monat, YYYY-MM. Standardmäßig der laufende Monat.

Rückgabe

200 OK mit dem in der Antwort gezeigten Objekt.

Weitere Details

Das Budget jeder Kostenstelle, committed (freigegebene Bestellungen) und actual (freigegebene Rechnungen) aus der Budgetkontrolle, mit der zugeordneten KI-Nutzung dieses Monats als accruing - eine dritte Zahl, noch nicht in Rechnung gestellt - und ihrer Prognose, in der Währung des Budgets; der Prozentsatz des Budgets mit der Prognose; und die gesendete Warnung. Erreicht die Prognose zusammen mit dem Zugesagten und dem Abgerechneten 80% oder 100% eines Budgets, sendet Pleaxy einmal je Schwellenwert und Monat eine Benachrichtigung ai_forecast_over_budget über die Kanäle des Workspace. Nichts wird gesperrt. Erfordert 'view'-Zugriff auf Bestellungen.

Antwortfelder

  • budgetModestring

    Der Modus der Budgetkontrolle. off: Es werden keine Budgets geführt, die Zeilen enthalten nur die KI-Zahlen, und es wird keine Warnung gesendet.

  • rows[].pctWithForecastnumber

    (committed + actual + forecast) / budget, in Prozent. Fehlt ohne Budget.

Fehler

  • 400 Bad Request - period ist kein Monat im Format YYYY-MM.
  • 401 Unauthorized - Es wurden keine Zugangsdaten übermittelt, oder der Bearer-Token bzw. der X-Api-Key-Wert fehlt, ist ungültig, abgelaufen oder widerrufen.
  • 403 Forbidden - Der Bearer-Token oder API-Schlüssel des Aufrufers gewährt keinen Zugriff auf diesen Workspace (regionId) oder hat nicht die erforderliche Rolle.
GET /v1/workspaces/{regionId}/ai-spend/cost-centers
Anfrage
curl "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/ai-spend/cost-centers" \
  -H "X-Api-Key: $PLEAXY_API_KEY"
Antwort · 200 OK
{
   "period": "string",
   "budgetMode": "string",
   "thresholds": [ number ],
   "rows": [
      { "costCenter": "string", "costCenterName": "string", "currency": "string", "budget": number, "committed": number, "actual": number, "accruing": number, "forecast": number, "pctWithForecast": number, "alert": { "threshold": number, "sentAt": "string" } }
   ],
   "unattributed": [ { "currency": "string", "monthToDate": number, "forecast": number } ]
}

KI-Ausgabenlimits auflisten

Die bei Anbietern gesetzten Ausgabenobergrenzen und ihre Zugangsdaten.

GET/v1/workspaces/{regionId}/ai-spend/limits

Rückgabe

200 OK mit dem in der Antwort gezeigten Objekt.

Weitere Details

Opt-in: die Ausgabenobergrenzen, die Pleaxy aus Ihren freigegebenen Bestellpositionen bei Anbietern gesetzt hat, und welche Rechnungssteller Limit-Zugangsdaten haben (nie der Schlüssel). Eine Obergrenze ist Ihr eigenes Limit beim Anbieter - ein AWS-Budget, ein OpenAI-Projektlimit, ein Anthropic-Workspace-Limit, ein Google-Cloud-Budget oder Spend Cap, ein Azure-Budget -, gesetzt mit Zugangsdaten, die Sie getrennt von der Nur-Lese-Verbindung anlegen und jederzeit wieder entfernen können. Erfordert 'view'-Zugriff auf Bestellungen.

Antwortfelder

  • limits[].enforcementstring

    deny: Der Anbieter stoppt die Ausgaben an der Obergrenze (ein OpenAI- oder Anthropic-Limit, ein Google-Cloud-Spend-Cap, eine AWS-Budgetaktion, die Ihre Deny-Richtlinie anhängt - AWS aktualisiert Budgets nur einige Male am Tag, also mit Stunden Verzögerung). alert: Er benachrichtigt nur (Azure, ein Google-Cloud- oder AWS-Budget ohne eine solche).

  • limits[].readBackobject

    Was das Zurücklesen der Obergrenze beim Anbieter ergab, und wann.

  • limits[].historyArray<object>

    Jeder Schreibvorgang, den Pleaxy für die Position beim Anbieter ausgeführt hat, die letzten 20.

Fehler

  • 401 Unauthorized - Es wurden keine Zugangsdaten übermittelt, oder der Bearer-Token bzw. der X-Api-Key-Wert fehlt, ist ungültig, abgelaufen oder widerrufen.
  • 403 Forbidden - Der Bearer-Token oder API-Schlüssel des Aufrufers gewährt keinen Zugriff auf diesen Workspace (regionId) oder hat nicht die erforderliche Rolle.
GET /v1/workspaces/{regionId}/ai-spend/limits
Anfrage
curl "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/ai-spend/limits" \
  -H "X-Api-Key: $PLEAXY_API_KEY"
Antwort · 200 OK
{
   "credentials": [ { "invoicerId": "string", "invoicer": "aws" | "openai" | "anthropic" | "gcp" | "azure", "keyHint": "string", "notifyEmail": "string", "createdAt": "string" } ],
   "limits": [
      {
         "poId": "string", "lineNo": number, "invoicerId": "string", "invoicer": "string", "target": "string",
         "amount": number, "currency": "string", "period": "string", "providerRef": "string",
         "enforcement": "deny" | "alert", "state": "set" | "failed" | "removed",
         "readBack": { "amount": number, "at": "string" },
         "history": [ { "at": "string", "by": "string", "action": "set" | "raise" | "remove" | "failed", "amount": number, "readBack": number, "error": "string" } ]
      }
   ]
}

KI-Ausgabenlimit festlegen

Setzt den Betrag einer freigegebenen Bestellposition als Obergrenze beim Anbieter.

PUT/v1/workspaces/{regionId}/ai-spend/limits/{poId}/{lineNo}

Parameter

  • poIdstringPflicht

    Die freigegebene Bestellung.

  • lineNonumberPflicht

    Die Bestellposition, deren Betrag die Obergrenze ist.

Body

  • invoicerIdstringPflicht

    Das Konto oder der KI-Anbieter, den die Bestellung abdeckt, mit Limit-Zugangsdaten.

  • targetstring

    OpenAI: das Projekt (proj_...). Anthropic: der Workspace (wrkspc_...). Google Cloud: das Projekt, für einen Spend Cap.

  • denyboolean

    Ausgaben an der Obergrenze stoppen, wo der Anbieter es kann. true, wenn weggelassen; false warnt nur.

Rückgabe

200 OK mit dem in der Antwort gezeigten Objekt.

Weitere Details

Schreibt den Betrag der Position als Ausgabenobergrenze ihres Rechnungsstellers für den Monat (den ersten Monat der Position, wenn sie später beginnt), liest sie zurück und protokolliert den Schreibvorgang. Nur für eine freigegebene, offene Bestellung an diesen Rechnungssteller, mit Limit-Zugangsdaten für ihn. Abgelehnt unterhalb der Ausgaben seit Monatsbeginn, mit den Zahlen. Eine Erhöhung der Position (eine neue Version) hebt die Obergrenze an; das Schließen der Bestellung entfernt sie. Pleaxy ändert oder löscht beim Anbieter nie etwas, das es nicht selbst angelegt hat. Erfordert 'edit'-Zugriff auf Bestellungen.

Bei Anmeldung über einen Agenten ist das eine Agentenanfrage, die die Person in Pleaxy bestätigt; ein API-Schlüssel mit 'edit' auf Bestellungen handelt sofort.

Fehler

  • 400 Bad Request - Die Bestellung ist nicht freigegeben und offen oder ging nicht an diesen Rechnungssteller; es gibt keine Limit-Zugangsdaten für ihn; die Obergrenze läge unter den Ausgaben seit Monatsbeginn; oder der Anbieter hat sie abgelehnt (der Grund sagt, warum: die Zugangsdaten, ein fehlendes Projekt oder ein fehlender Workspace, eine Währung, die er nicht annimmt).
  • 404 Not Found - Keine solche Bestellung, Position oder kein solcher Rechnungssteller, oder Limits sind in dieser Region nicht eingeschaltet.
  • 401 Unauthorized - Es wurden keine Zugangsdaten übermittelt, oder der Bearer-Token bzw. der X-Api-Key-Wert fehlt, ist ungültig, abgelaufen oder widerrufen.
  • 403 Forbidden - Der Bearer-Token oder API-Schlüssel des Aufrufers gewährt keinen Zugriff auf diesen Workspace (regionId) oder hat nicht die erforderliche Rolle.
PUT /v1/workspaces/{regionId}/ai-spend/limits/{poId}/{lineNo}
Anfrage
curl -X PUT "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/ai-spend/limits/{poId}/{lineNo}" \
  -H "X-Api-Key: $PLEAXY_API_KEY" \
  -H "Content-Type: application/json" \
  -d @body.json
body.json
{
   "invoicerId": "aip_01k8q2m4xv7c9n3p5t6r8w0yzb",
   "target": "proj_abc"
}
Antwort · 200 OK
The limit, as an entry of ListAiSpendLimits' limits

KI-Ausgabenlimit entfernen

Entfernt die Obergrenze, die Pleaxy für eine Bestellposition gesetzt hat.

DELETE/v1/workspaces/{regionId}/ai-spend/limits/{poId}/{lineNo}

Parameter

  • poIdstringPflicht

    Die Bestellung.

  • lineNonumberPflicht

    Die Bestellposition.

Rückgabe

200 OK mit dem in der Antwort gezeigten Objekt.

Weitere Details

Löscht die Obergrenze, die Pleaxy für die Position beim Anbieter gesetzt hat (nur eine, die Pleaxy benannt hat), und protokolliert das. Erfordert 'edit'-Zugriff auf Bestellungen.

Fehler

  • 404 Not Found - Keine Obergrenze für diese Position.
  • 401 Unauthorized - Es wurden keine Zugangsdaten übermittelt, oder der Bearer-Token bzw. der X-Api-Key-Wert fehlt, ist ungültig, abgelaufen oder widerrufen.
  • 403 Forbidden - Der Bearer-Token oder API-Schlüssel des Aufrufers gewährt keinen Zugriff auf diesen Workspace (regionId) oder hat nicht die erforderliche Rolle.
DELETE /v1/workspaces/{regionId}/ai-spend/limits/{poId}/{lineNo}
Anfrage
curl -X DELETE "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/ai-spend/limits/{poId}/{lineNo}" \
  -H "X-Api-Key: $PLEAXY_API_KEY"
Antwort · 200 OK
The limit, as an entry of ListAiSpendLimits' limits, with state removed

KI-Limit-Zugangsdaten festlegen

Fügt die getrennten Zugangsdaten hinzu, mit denen die Obergrenzen eines Rechnungsstellers gesetzt werden.

PUT/v1/workspaces/{regionId}/ai-spend/limit-credentials/{invoicerId}

Parameter

  • invoicerIdstringPflicht

    Die ID der Cloud-Verbindung oder des KI-Anbieters.

Body

  • roleArnstring

    AWS: der ARN der Rolle PleaxyAiLimits.

  • executionRoleArnstring

    AWS, zum Stoppen der Ausgaben: der ARN der Ausführungsrolle aus der Vorlage.

  • denyPolicyArnstring

    AWS, zum Stoppen der Ausgaben: der ARN der Deny-Richtlinie aus der Vorlage.

  • roleNamesArray<string>

    AWS, zum Stoppen der Ausgaben: die Namen der Rollen, an die die Deny-Richtlinie angehängt wird.

  • serviceAccountEmailstring

    Google Cloud: das Limit-Dienstkonto.

  • clientIdstring

    Azure: die Client-ID der Limit-App.

  • keystring

    OpenAI oder Anthropic: ein separater Admin-Schlüssel für die Limits.

  • notifyEmailstring

    Wem der Anbieter an einer Obergrenze eine E-Mail schickt: erforderlich für Azure und für eine AWS-Obergrenze, die Ausgaben stoppt.

Rückgabe

200 OK mit dem in der Antwort gezeigten Objekt.

Weitere Details

Die Schreib-Zugangsdaten für die Obergrenzen eines Rechnungsstellers, getrennt von seiner Nur-Lese-Verbindung, die nie erweitert wird: eine AWS-Limit-Rolle (aus der CloudFormation-Vorlage aws-ai-limits von Pleaxy: nur AWS Budgets und optional eine Deny-Richtlinie für Amazon-Bedrock-Aufrufe, die das Budget bei 100% anhängt), ein Google-Cloud-Limit-Dienstkonto im Identitätspool der Verbindung, eine Azure-Limit-App mit der föderierten Anmeldeinformation der Verbindung oder ein separater OpenAI- oder Anthropic-Admin-Schlüssel (verschlüsselt gespeichert, nie zurückgegeben). Wird vor dem Speichern mit einem Lesezugriff geprüft. Entfernen Sie sie, um die Funktion für diesen Rechnungssteller zu beenden.

Angemeldete Sitzung mit 'edit'-Zugriff auf Lieferanten; ein API-Schlüssel erhält 403.

Fehler

  • 400 Bad Request - Ein Feld, das der Anbieter braucht, fehlt; es sind die eigenen Zugangsdaten der Nur-Lese-Verbindung; oder der Anbieter hat sie abgelehnt, und es wurde nichts gespeichert.
  • 403 Forbidden - Der Aufrufer ist ein API-Schlüssel oder hat kein 'edit' für Lieferanten.
  • 404 Not Found - Kein solcher Rechnungssteller, oder Limits sind in dieser Region nicht eingeschaltet.
  • 401 Unauthorized - Es wurden keine Zugangsdaten übermittelt, oder der Bearer-Token bzw. der X-Api-Key-Wert fehlt, ist ungültig, abgelaufen oder widerrufen.
PUT /v1/workspaces/{regionId}/ai-spend/limit-credentials/{invoicerId}
Anfrage
curl -X PUT "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/ai-spend/limit-credentials/{invoicerId}" \
  -H "X-Api-Key: $PLEAXY_API_KEY" \
  -H "Content-Type: application/json" \
  -d @body.json
body.json
{
   "roleArn": "arn:aws:iam::123456789012:role/PleaxyAiLimits"
}
Antwort · 200 OK
The credential, as an entry of ListAiSpendLimits' credentials

KI-Limit-Zugangsdaten entfernen

Entfernt die Limit-Zugangsdaten eines Rechnungsstellers.

DELETE/v1/workspaces/{regionId}/ai-spend/limit-credentials/{invoicerId}

Parameter

  • invoicerIdstringPflicht

    Die ID der Cloud-Verbindung oder des KI-Anbieters.

Rückgabe

200 OK mit dem in der Antwort gezeigten Objekt.

Weitere Details

Pleaxy setzt bei diesem Rechnungssteller keine Obergrenzen mehr; die Nur-Lese-Verbindung bleibt, wie sie war. Löschen Sie auch die Rolle, das Dienstkonto, die App oder den Schlüssel beim Anbieter.

Angemeldete Sitzung mit 'edit'-Zugriff auf Lieferanten; ein API-Schlüssel erhält 403.

Fehler

  • 403 Forbidden - Der Aufrufer ist ein API-Schlüssel oder hat kein 'edit' für Lieferanten.
  • 401 Unauthorized - Es wurden keine Zugangsdaten übermittelt, oder der Bearer-Token bzw. der X-Api-Key-Wert fehlt, ist ungültig, abgelaufen oder widerrufen.
DELETE /v1/workspaces/{regionId}/ai-spend/limit-credentials/{invoicerId}
Anfrage
curl -X DELETE "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/ai-spend/limit-credentials/{invoicerId}" \
  -H "X-Api-Key: $PLEAXY_API_KEY"
Antwort · 200 OK
{
   "invoicerId": "string"
}

KI-Seat-Zahlen auflisten

Aktive Nutzer Seat-basierter KI-Produkte für einen Monat.

GET/v1/workspaces/{regionId}/ai-spend/seats

Parameter

  • periodstring

    Der Monat, YYYY-MM. Standardmäßig der laufende Monat.

Rückgabe

200 OK mit dem in der Antwort gezeigten Objekt.

Weitere Details

Seat-basierte KI (ChatGPT Enterprise, Claude Enterprise, Microsoft 365 Copilot, GitHub Copilot, Cursor) wird pro Seat abgerechnet. Dies sind die für jedes Produkt in einem Monat erfassten aktiven Nutzer und die Herkunft jeder Zahl. Eine Rechnungsposition mit dem Zähler seats, die mehr Seats abrechnet als die Zahl des Monats, ist ein Befund ai_seats_above_active; eine Vertragskondition, die Seats zusagt, erscheint im Tab Zusagen gegen die neueste Zahl. Erfordert 'view'-Zugriff auf Lieferanten oder auf Rechnungen.

Fehler

  • 400 Bad Request - period ist kein Monat im Format YYYY-MM.
  • 401 Unauthorized - Es wurden keine Zugangsdaten übermittelt, oder der Bearer-Token bzw. der X-Api-Key-Wert fehlt, ist ungültig, abgelaufen oder widerrufen.
  • 403 Forbidden - Der Bearer-Token oder API-Schlüssel des Aufrufers gewährt keinen Zugriff auf diesen Workspace (regionId) oder hat nicht die erforderliche Rolle.
GET /v1/workspaces/{regionId}/ai-spend/seats
Anfrage
curl "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/ai-spend/seats" \
  -H "X-Api-Key: $PLEAXY_API_KEY"
Antwort · 200 OK
[
   { "invoicer": "string", "product": "string", "period": "string", "activeUsers": number, "source": "okta" | "entra" | "google_workspace" | "jumpcloud" | "provider_console" | "manual", "recordedAt": "string", "recordedBy": "string" }
]

KI-Seat-Zahl festlegen

Erfasst die aktiven Nutzer eines Seat-Produkts für einen Monat.

PUT/v1/workspaces/{regionId}/ai-spend/seats

Body

  • invoicerstringPflicht

    Wer die Seats abrechnet: openai, anthropic, microsoft, github, cursor, ...

  • productstringPflicht

    Das Seat-Produkt, wie die Bestellposition es nennt (ihr ai.model), z. B. chatgpt-enterprise.

  • periodstringPflicht

    Der Monat, YYYY-MM.

  • activeUsersnumberPflicht

    Nutzer mit einem Seat, die sich in diesem Monat angemeldet haben.

  • sourcestringPflicht

    okta, entra, google_workspace, jumpcloud, provider_console oder manual.

Rückgabe

200 OK mit dem in der Antwort gezeigten Objekt.

Weitere Details

Erfasst, wie viele Nutzer eines Seat-Produkts in einem Monat aktiv waren, wie Ihr Identitätsanbieter (Okta, Microsoft Entra, Google Workspace, JumpCloud) oder die Admin-Konsole des Anbieters sie meldet, und ersetzt die Zahl dieses Monats. Pleaxy liest Ihren Identitätsanbieter nicht selbst: Senden Sie die Zahl aus einem Skript, über einen Agenten oder von Hand. Erfordert 'edit'-Zugriff auf Rechnungen.

Fehler

  • 400 Bad Request - Ein Feld fehlt oder liegt außerhalb des zulässigen Bereichs.
  • 401 Unauthorized - Es wurden keine Zugangsdaten übermittelt, oder der Bearer-Token bzw. der X-Api-Key-Wert fehlt, ist ungültig, abgelaufen oder widerrufen.
  • 403 Forbidden - Der Bearer-Token oder API-Schlüssel des Aufrufers gewährt keinen Zugriff auf diesen Workspace (regionId) oder hat nicht die erforderliche Rolle.
PUT /v1/workspaces/{regionId}/ai-spend/seats
Anfrage
curl -X PUT "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/ai-spend/seats" \
  -H "X-Api-Key: $PLEAXY_API_KEY" \
  -H "Content-Type: application/json" \
  -d @body.json
body.json
{
   "invoicer": "openai",
   "product": "chatgpt-enterprise",
   "period": "2026-10",
   "activeUsers": 182,
   "source": "okta"
}
Antwort · 200 OK
The count, as an entry of ListAiSeatCounts
Kontakt aufnehmen