Référence de l’API

Fournisseurs IA

Les fournisseurs IA connectés directement avec une clé en lecture seule, et les émetteurs IA que vous pouvez ajouter comme fournisseurs.

En savoir plus sur cette ressource

Nouveau avec les contrôles des dépenses d’IA. En plus des lignes d’IA de vos factures cloud, Pleaxy lit les rapports de coûts et d’usage des fournisseurs IA que vous payez directement. OpenAI et Anthropic utilisent une clé d’administration en lecture seule ; Mistral aussi, lorsque l’organisation dispose de son Admin API (une fonctionnalité Enterprise) ; OpenRouter, une clé de gestion ; CoreWeave, un jeton d’accès API avec le rôle Billing Viewer ; Databricks, le secret OAuth d’un principal de service ; pour Snowflake, Pleaxy génère une paire de clés dont vous attribuez la clé publique à un utilisateur de service. Lambda, Nebius, Crusoe et les émetteurs facturés au siège (Cursor, GitHub, Microsoft) n’ont aucune API de facturation que Pleaxy puisse lire : ajoutez-les comme fournisseurs, et leurs factures sont soumises au contrat. La clé est vérifiée par une lecture avant tout enregistrement, stockée chiffrée, jamais renvoyée (seuls ses quatre derniers caractères, keyHint) et jamais utilisée pour modifier quoi que ce soit chez le fournisseur. Les lignes de chaque fournisseur connecté sont lues chaque jour et apparaissent dans Dépenses d’IA comme leur propre émetteur, rapportées aux bons de commande adressés à sa fiche fournisseur. Chaque émetteur IA a une fiche fournisseur que Pleaxy crée à l’avance et que vous pouvez ajouter sans connexion : ses factures et ses commandes fonctionnent alors comme celles de n’importe quel fournisseur. Un fournisseur connecté compte dans la limite de fournisseurs du plan, comme un compte cloud. Le connecteur de chaque fournisseur est activé par région ; tant qu’il ne l’est pas, la connexion répond 404 et l’ajout du fournisseur fonctionne toujours.

Lister les fournisseurs IA

Liste les fournisseurs IA connectés de l’espace de travail.

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

Retour

200 OK avec l’objet présenté dans la réponse.

Plus de détails

Chaque connexion directe à un fournisseur IA de l’espace de travail, connectée ou en attente : de quel fournisseur il s’agit, le compte qu’elle lit, les quatre derniers caractères de la clé, la date de la dernière synchronisation et son déroulement. La clé elle-même n’est jamais renvoyée. Nécessite l’accès 'view' aux fournisseurs ou aux factures.

Champs de la réponse

  • accountLabelstring

    Le nom que le fournisseur donne à l’organisation ou au compte que la clé lit.

  • keyHintstring

    Les quatre derniers caractères de la clé, seule trace que Pleaxy en affiche. Absent pour Snowflake, dont Pleaxy a généré la paire de clés.

  • statusstring

    connected, ou pending pour une paire de clés Snowflake dont la clé publique n’a pas encore été attribuée à l’utilisateur de service : SyncAiProvider la vérifie et finalise la connexion.

  • snowflakeobject

    Snowflake uniquement : l’identifiant de compte, l’utilisateur de service, l’entrepôt et le rôle facultatif sous lesquels la paire de clés se connecte, ainsi que la clé publique (PEM) et son empreinte, à attribuer avec ALTER USER ... SET RSA_PUBLIC_KEY.

  • creditPriceobject

    Snowflake uniquement : le prix par crédit de votre contrat, qui convertit les crédits en argent. Sans lui, les lignes d’IA du fournisseur restent en crédits, avec currency credits, et ne sont jamais additionnées à de l’argent.

  • supplierConnectionIdstring

    La fiche fournisseur à laquelle le fournisseur IA est rattaché ; Dépenses d’IA rapporte ses lignes aux bons de commande adressés à cette fiche.

  • currencystring

    La devise de facturation du fournisseur, telle que l’indique son rapport de coûts.

  • lastSyncStatusstring

    Le déroulement de la dernière lecture : ok, error (lastSyncError indique pourquoi, lastSyncErrorCode vaut access_revoked lorsque la clé ne fonctionne plus) ou throttled (le fournisseur a demandé à Pleaxy de patienter ; la prochaine exécution réessaie).

Erreurs

  • 401 Unauthorized - Aucun identifiant n’a été fourni, ou la valeur du jeton Bearer / de X-Api-Key est manquante, invalide, expirée ou révoquée.
  • 403 Forbidden - Le jeton Bearer ou la clé API de l’appelant ne donne pas accès à cet espace de travail (regionId), ou n’a pas le rôle requis.
GET /v1/workspaces/{regionId}/ai-providers
Requête
curl "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/ai-providers" \
  -H "X-Api-Key: $PLEAXY_API_KEY"
Réponse · 200 OK
[
   {
      "id": "string",
      "provider": "openai" | "anthropic" | "mistral" | "snowflake" | "openrouter" | "databricks" | "coreweave",
      "accountLabel": "string",
      "keyHint": "string",
      "status": "connected" | "pending",
      "connectedAt": "string",
      "connectedBy": "string",
      "snowflake": { "account": "string", "user": "string", "warehouse": "string", "role": "string", "publicKeyPem": "string", "publicKeyFingerprint": "string" },
      "creditPrice": { "amount": number, "currency": "string", "kind": "on_demand" | "capacity" | "commit" },
      "supplierConnectionId": "string",
      "currency": "string",
      "lastSyncedAt": "string",
      "lastSyncStatus": "ok" | "error" | "throttled",
      "lastSyncError": "string",
      "lastSyncErrorCode": "string"
   }
]

Créer un fournisseur IA

Connecte un fournisseur IA avec une clé en lecture seule.

POST/v1/workspaces/{regionId}/ai-providers

Corps

  • provider"openai" | "anthropic" | "mistral" | "snowflake" | "openrouter" | "databricks" | "coreweave"Obligatoire

    Le fournisseur IA à connecter. Son connecteur doit être activé dans la région.

  • keystring

    Tous les fournisseurs sauf Snowflake, obligatoire : une clé en lecture seule. La clé d’administration d’OpenAI commence par sk-admin- (Organization settings › Admin keys) ; celle d’Anthropic par sk-ant-admin (Claude Console, Settings › Admin keys) ; celle de Mistral est une clé d’Admin API ; la clé de gestion d’OpenRouter commence par sk-or- ; celle de CoreWeave est un jeton d’accès API ; celle de Databricks est le secret OAuth du principal de service. Jamais journalisée ni renvoyée.

  • snowflakeobject

    Snowflake, obligatoire : { account, user, warehouse, role? } : l’identifiant de compte (orgname-account_name), l’utilisateur de service, l’entrepôt sur lequel s’exécute la requête d’usage et un rôle facultatif.

  • databricksobject

    Databricks, obligatoire : { host, clientId, warehouseId } : l’hôte de l’espace de travail (un domaine Databricks), le client id OAuth du principal de service et l’entrepôt SQL sur lequel s’exécutent les lectures de facturation ; key est le secret OAuth du principal. Le principal a besoin de SELECT sur system.billing (et system.serving pour le nombre de tokens).

  • creditPriceobject

    Snowflake et Databricks, facultatif : { amount, currency, kind } avec kind on_demand, capacity ou commit, le prix par crédit (Snowflake) ou par DBCU (Databricks) de votre contrat. Sans lui, les lignes de Snowflake restent en crédits et celles de Databricks sont au prix public du compte.

Retour

201 Created avec l’objet présenté dans la réponse.

Plus de détails

Connecte un fournisseur IA direct. Pour OpenAI, Anthropic et Mistral, envoyez la clé d’administration en lecture seule : Pleaxy effectue une lecture avec elle et, seulement si elle aboutit, la stocke chiffrée, ajoute la fiche fournisseur du fournisseur IA à vos fournisseurs et renvoie la connexion. Pour Snowflake, envoyez les informations de connexion : Pleaxy génère une paire de clés et renvoie la connexion en pending, avec la clé publique à attribuer à l’utilisateur de service ; SyncAiProvider la vérifie ensuite. Cinq vérifications échouées par fournisseur en une heure, puis il faut attendre. Nécessite l’accès 'create' aux fournisseurs.

Erreurs

  • 400 Bad Request - La validation des données a échoué ; la clé est absente ou n’est pas la clé d’administration de ce fournisseur ; le fournisseur ne l’a pas acceptée (non autorisée, interdite, pas d’Admin API, occupé ou injoignable, et rien n’a été enregistré) ; cinq vérifications échouées au cours de la dernière heure ; ou le plan de la région a atteint sa limite de fournisseurs.
  • 404 Not Found - Fournisseur inconnu, ou son connecteur n’est pas activé dans cette région.
  • 409 Conflict - Le fournisseur est déjà connecté dans l’espace de travail.
  • 401 Unauthorized - Aucun identifiant n’a été fourni, ou la valeur du jeton Bearer / de X-Api-Key est manquante, invalide, expirée ou révoquée.
  • 403 Forbidden - Le jeton Bearer ou la clé API de l’appelant ne donne pas accès à cet espace de travail (regionId), ou n’a pas le rôle requis.
POST /v1/workspaces/{regionId}/ai-providers
Requête
POST /v1/workspaces/reg_01k5x8p9j3q7vn2mhb4tzc6rde.buyer/ai-providers

{ "provider": "anthropic", "key": "sk-ant-admin01-…" }
Réponse · 201 Created
{
   "id": "aip_01k8q2m4xv7c9n3p5t6r8w0yzb",
   "provider": "anthropic",
   "accountLabel": "Northwind Labs",
   "keyHint": "f3Qa",
   "status": "connected",
   "connectedAt": "2026-10-30T09:12:44.000Z",
   "supplierConnectionId": "sc_01k8q2m5a1b2c3d4e5f6g7h8j9"
}

Synchroniser un fournisseur IA

Lit immédiatement les coûts et l’usage d’un fournisseur IA.

POST/v1/workspaces/{regionId}/ai-providers/{id}/sync

Paramètres

  • idstringObligatoire

    L’id de la connexion au fournisseur IA.

Retour

201 Created avec l’objet présenté dans la réponse.

Plus de détails

Lit immédiatement les rapports de coûts et d’usage d’un fournisseur au lieu d’attendre l’exécution quotidienne, et renvoie la connexion avec son nouvel état de synchronisation. Pour une connexion Snowflake en pending, vérifie d’abord que la paire de clés parvient à se connecter, puis la marque comme connected. Une fois toutes les 15 minutes au plus par fournisseur. Ne prend pas de corps. Nécessite l’accès 'create' aux fournisseurs ou l’accès 'edit' aux factures.

Erreurs

  • 400 Bad Request - Synchronisé il y a moins de 15 minutes, ou une paire de clés Snowflake en pending ne parvient toujours pas à se connecter (rien n’a changé).
  • 404 Not Found - Aucune connexion de ce type dans l’espace de travail, ou le connecteur du fournisseur a été désactivé.
  • 401 Unauthorized - Aucun identifiant n’a été fourni, ou la valeur du jeton Bearer / de X-Api-Key est manquante, invalide, expirée ou révoquée.
  • 403 Forbidden - Le jeton Bearer ou la clé API de l’appelant ne donne pas accès à cet espace de travail (regionId), ou n’a pas le rôle requis.
POST /v1/workspaces/{regionId}/ai-providers/{id}/sync
Requête
curl -X POST "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/ai-providers/{id}/sync" \
  -H "X-Api-Key: $PLEAXY_API_KEY"
Réponse · 201 Created
{
   "id": "string",
   "provider": "openai" | "anthropic" | "mistral" | "snowflake" | "openrouter" | "databricks" | "coreweave",
   "status": "connected" | "pending",
   "lastSyncedAt": "string",
   "lastSyncStatus": "ok" | "error" | "throttled",
   "lastSyncError": "string"
}

Supprimer un fournisseur IA

Déconnecte un fournisseur IA.

DELETE/v1/workspaces/{regionId}/ai-providers/{id}

Paramètres

  • idstringObligatoire

    L’id de la connexion au fournisseur IA.

Retour

200 OK avec l’objet présenté dans la réponse.

Plus de détails

Déconnecte un fournisseur IA direct : la connexion et sa clé chiffrée sont supprimées, et l’auteur de la déconnexion est consigné. Les lignes d’IA déjà lues restent dans l’historique, et la fiche fournisseur est conservée. Révoquez aussi la clé chez le fournisseur (pour Snowflake, retirez la clé publique de l’utilisateur).

Session connectée avec l’accès 'edit' aux fournisseurs ; une clé API reçoit 403.

Erreurs

  • 403 Forbidden - L’appelant est une clé API ou n’a pas 'edit' sur les fournisseurs.
  • 404 Not Found - Aucune connexion de ce type dans l’espace de travail.
  • 401 Unauthorized - Aucun identifiant n’a été fourni, ou la valeur du jeton Bearer / de X-Api-Key est manquante, invalide, expirée ou révoquée.
DELETE /v1/workspaces/{regionId}/ai-providers/{id}
Requête
curl -X DELETE "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/ai-providers/{id}" \
  -H "X-Api-Key: $PLEAXY_API_KEY"
Réponse · 200 OK
{
   "id": "string",
   "provider": "openai" | "anthropic" | "mistral" | "snowflake" | "openrouter" | "databricks" | "coreweave"
}

Ajouter un fournisseur IA comme fournisseur

Ajoute un émetteur IA comme fournisseur sans le connecter.

POST/v1/workspaces/{regionId}/ai-providers/{provider}/supplier

Paramètres

  • providerstringObligatoire

    L’un de openai, anthropic, mistral, cohere, xai, openrouter, snowflake, databricks, coreweave, lambda, nebius, crusoe, cursor, github ou microsoft (ListAiInvoicers les liste).

Retour

201 Created avec l’objet présenté dans la réponse.

Plus de détails

Ajoute un émetteur IA à votre liste de fournisseurs à partir de la fiche que Pleaxy crée à l’avance, sans rien connecter, pour que vous puissiez lui adresser des bons de commande et enregistrer ses factures. Fonctionne pour tous les émetteurs IA, y compris ceux que Pleaxy ne peut pas lire (leurs dépenses proviennent de leurs factures). Renvoie la fiche existante s’il y en a une, et une connexion ultérieure est rattachée à cette même fiche. Ne prend pas de corps. Nécessite l’accès 'create' aux fournisseurs.

Erreurs

  • 404 Not Found - Émetteur IA inconnu.
  • 409 Conflict - Code SUPPLIER_ALREADY_LISTED : un fournisseur portant ce nom a déjà une intégration en cours ou validée.
  • 401 Unauthorized - Aucun identifiant n’a été fourni, ou la valeur du jeton Bearer / de X-Api-Key est manquante, invalide, expirée ou révoquée.
  • 403 Forbidden - Le jeton Bearer ou la clé API de l’appelant ne donne pas accès à cet espace de travail (regionId), ou n’a pas le rôle requis.
POST /v1/workspaces/{regionId}/ai-providers/{provider}/supplier
Requête
curl -X POST "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/ai-providers/{provider}/supplier" \
  -H "X-Api-Key: $PLEAXY_API_KEY"
Réponse · 201 Created
{
   "id": "string",
   "buyerOrgId": "string",
   "supplierName": "string",
   "aiProvider": "string",
   "status": "pending_invite" | "invited" | "in_progress" | "submitted" | "approved" | "rejected",
   "createdAt": "string"
}

Lister les émetteurs IA

Liste les émetteurs IA que Pleaxy crée à l’avance comme fournisseurs.

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

Retour

200 OK avec l’objet présenté dans la réponse.

Plus de détails

Les émetteurs IA pour lesquels Pleaxy tient une fiche fournisseur : leurs noms, les entités juridiques depuis lesquelles ils facturent par région, les devises dans lesquelles ils facturent, s’ils facturent par facture, par crédits prépayés ou les deux, les domaines d’où viennent leurs e-mails de facture, la façon dont Pleaxy lit leurs dépenses, et si ce lecteur est activé dans votre région (connectable). Pleaxy maintient la liste ; les entités juridiques et les domaines sont une indication sur l’entité facturée, jamais une vérification. Nécessite l’accès 'view' aux fournisseurs ou aux factures.

Champs de la réponse

  • legalEntitiesArray<object>

    L’entité qui facture un acheteur dans chaque région, default pour toute région non listée, avec son pays.

  • credentialstring

    Comment Pleaxy lit les dépenses de l’émetteur : admin_key (une clé en lecture seule que vous collez), key_pair (une paire de clés que Pleaxy génère) ou none (pas d’API de lecture ; ses dépenses proviennent de ses factures).

  • shapestring

    L’unité de mesure de ses lignes : tokens, credits (Snowflake, Databricks) ou capacity (heures GPU).

  • connectableboolean

    Si CreateAiProvider peut le connecter dès maintenant dans cette région.

Erreurs

  • 401 Unauthorized - Aucun identifiant n’a été fourni, ou la valeur du jeton Bearer / de X-Api-Key est manquante, invalide, expirée ou révoquée.
  • 403 Forbidden - Le jeton Bearer ou la clé API de l’appelant ne donne pas accès à cet espace de travail (regionId), ou n’a pas le rôle requis.
GET /v1/workspaces/{regionId}/ai-invoicers
Requête
curl "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/ai-invoicers" \
  -H "X-Api-Key: $PLEAXY_API_KEY"
Réponse · 200 OK
[
   {
      "id": "string",
      "name": "string",
      "legalEntities": [ { "region": "us" | "eu" | "default", "name": "string", "country": "string" } ],
      "billingCurrencies": [ "string" ],
      "billing": [ "invoice" | "prepaid_credits" ],
      "senderDomains": [ "string" ],
      "credential": "admin_key" | "key_pair" | "none",
      "tier": "direct" | "data_platform" | "host" | "neocloud" | "seats",
      "shape": "tokens" | "credits" | "capacity" | "seats",
      "contactHint": "string",
      "connectable": boolean
   }
]
Nous contacter