For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Navigation principale

API d’administration

Gérez par programmation les ressources de l’organisation et les flux de travail administratifs.

Les API d’administration vous permettent d’automatiser les flux de travail de gestion de l’organisation : invitations d’utilisateurs, examen des journaux d’audit, administration des projets, gestion des clés API, limites et alertes de dépenses, conservation des données et opérations sur les limites de débit. Utilisez-les pour automatiser les tâches de back-office, les flux de travail de sécurité et les outils opérationnels qui doivent fonctionner en dehors du tableau de bord.

Pour en savoir plus sur les points de terminaison, consultez la référence de l’API d’administration, notamment les sections Clés API d’administration, Invitations, Utilisateurs, Projets, Limites de dépenses et Journaux d’audit.

Utilisez une clé API d’administration avec le SDK

Pour accéder à ces points de terminaison, créez une clé API d’administration. Les clés API d’administration ne peuvent pas être utilisées avec les points de terminaison qui ne relèvent pas de l’administration.

La prise en charge des API d’administration a été ajoutée dans les versions suivantes des SDK. Vous devrez peut-être mettre à jour votre SDK :

  • Node : 6.36.0
  • Python : 2.34.0
  • Go : 3.34.0
  • Ruby : 0.61.0
  • Java : 4.34.0

Définissez OPENAI_ADMIN_KEY, puis initialisez le SDK pour votre langage.

Configurez le SDK avec une clé API d’administration
import OpenAI from "openai";

const client = new OpenAI({
  adminAPIKey: process.env.OPENAI_ADMIN_KEY,
});

Restreignez l’accès aux modèles pour les projets

Utilisez les autorisations d’accès aux modèles du projet pour définir une liste de modèles autorisés ou bloqués. Définissez mode sur allow_list pour autoriser uniquement les modèles répertoriés, ou définissez mode sur deny_list pour bloquer les modèles répertoriés tout en autorisant les autres modèles disponibles. Les identifiants des modèles doivent être visibles par l’organisation, y compris ceux des instantanés de modèles affinés.

Définissez une liste de modèles autorisés ou bloqués pour un projet
const modelPermissions =
  await client.admin.organization.projects.modelPermissions.update("proj_abc", {
    mode: "allow_list",
    model_ids: ["gpt-4.1", "o3"],
  });

console.log(modelPermissions.mode);

Définissez une limite de dépenses pour l’organisation

Utilisez le point de terminaison Limites de dépenses pour créer ou remplacer le plafond mensuel strict de dépenses de votre organisation. Définissez threshold_amount en centimes de dollar. L’exemple suivant définit une limite mensuelle de 100 $ :

curl -X POST https://api.openai.com/v1/organization/spend_limit \
  -H "Authorization: Bearer $OPENAI_ADMIN_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "threshold_amount": 10000,
    "currency": "USD",
    "interval": "month"
  }'

Lorsque les dépenses suivies atteignent un plafond strict, les requêtes API concernées renvoient une erreur 429. Pour en savoir plus, consultez le guide des limites de dépenses.

Gérez les alertes de limites de dépenses

Utilisez les alertes de dépenses du projet pour avertir votre équipe lorsque les dépenses du projet atteignent un seuil. Les montants des seuils sont exprimés en centimes de dollar.

Créez une alerte de limite de dépenses pour un projet
const spendAlert = await client.admin.organization.projects.spendAlerts.create(
  "proj_abc",
  {
    currency: "USD",
    interval: "month",
    notification_channel: {
      recipients: ["billing@example.com"],
      type: "email",
      subject_prefix: "[OpenAI spend]",
    },
    threshold_amount: 50000,
  }
);

console.log(spendAlert.id);

Gérez la conservation des données

Utilisez les paramètres de conservation des données du projet pour remplacer la politique de conservation de l’organisation ou en hériter. Définissez retention_type sur organization_default pour hériter du paramètre de l’organisation.

Définissez la conservation des données du projet
const dataRetention =
  await client.admin.organization.projects.dataRetention.update("proj_abc", {
    retention_type: "organization_default",
  });

console.log(dataRetention.type);

Invitez un utilisateur par e-mail

Utilisez le point de terminaison Invitations pour envoyer une invitation à rejoindre l’organisation à une adresse e-mail.

Invitez un utilisateur par e-mail
const invite = await client.admin.organization.invites.create({
  email: "user@example.com",
  role: "reader",
});

console.log(invite.id);

Récupérez les journaux d’audit

Utilisez le point de terminaison Journaux d’audit pour répertorier les actions récentes des utilisateurs et les modifications de configuration de l’organisation.

Récupérez les journaux d’audit
const auditLogs = await client.admin.organization.auditLogs.list({
  limit: 10,
});

console.log(auditLogs.data);