For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Navegação principal
Theme

APIs de administração

Gerencie recursos da organização e fluxos de trabalho administrativos por meio de código.

Com as APIs de administração, você pode automatizar tarefas de gestão da organização, como convidar usuários, analisar logs de auditoria, administrar projetos, gerenciar chaves de API, configurar limites e alertas de gastos, controlar a retenção de dados e gerenciar limites de taxa. Use essas APIs para automatizar rotinas internas, executar fluxos de trabalho de segurança e criar ferramentas operacionais que precisam funcionar fora do painel.

Para entender a diferença entre uma credencial administrativa, uma chave de projeto que pertence a um usuário e a conta de serviço de uma carga de trabalho, consulte Chaves de API e contas de serviço.

Para obter detalhes sobre os endpoints, consulte a referência da API de administração, que inclui as seções Chaves da API de administração, Convites, Usuários, Projetos, Limites de gastos e Logs de auditoria.

Use uma chave da API de administração com o SDK

Para acessar esses endpoints, crie uma chave da API de administração. Essas chaves só podem ser usadas em endpoints de administração.

Os SDKs passaram a oferecer suporte às APIs de administração nas versões abaixo. Se você usa uma versão anterior, pode ser necessário atualizar o SDK.

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

Defina OPENAI_ADMIN_KEY e inicialize o SDK da sua linguagem.

Configure o SDK com uma chave da API de administração
import OpenAI from "openai";

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

Restrinja o acesso dos projetos a modelos

Use as permissões de modelos do projeto para definir uma lista de modelos permitidos ou bloqueados. Defina mode como allow_list para permitir apenas os modelos da lista ou defina mode como deny_list para bloquear os modelos da lista e permitir os demais modelos disponíveis. Os IDs dos modelos precisam estar visíveis para a organização. Isso também vale para os IDs de snapshots de modelos que passaram por ajuste fino.

Defina a lista de modelos permitidos ou bloqueados no projeto
const modelPermissions =
  await client.admin.organization.projects.modelPermissions.update("proj_abc", {
    mode: "allow_list",
    model_ids: ["gpt-4.1", "o3"],
  });

console.log(modelPermissions.mode);

Defina um limite de gastos para a organização

Use o endpoint de limites de gastos para criar ou substituir o limite máximo de gastos mensais da organização. Informe o valor de threshold_amount em centavos. O exemplo a seguir define um limite mensal de US$ 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"
  }'

Quando os gastos contabilizados atingem o limite máximo, as solicitações de API afetadas retornam o erro 429. Para saber mais, consulte o guia de limites de gastos.

Gerencie alertas de limite de gastos

Use os alertas de gastos do projeto para avisar sua equipe quando os gastos atingirem um valor definido. Informe em centavos o valor que aciona cada alerta.

Crie um alerta de limite de gastos para o projeto
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);

Gerencie a retenção de dados

Use os controles de retenção de dados do projeto para aplicar a política de retenção da organização ou substituí-la por uma política específica do projeto. Defina retention_type como organization_default para herdar a configuração da organização.

Configure a retenção de dados do projeto
const dataRetention =
  await client.admin.organization.projects.dataRetention.update("proj_abc", {
    retention_type: "organization_default",
  });

console.log(dataRetention.type);

Convide um usuário por e-mail

Use o endpoint de convites para enviar a um endereço de e-mail um convite para participar da organização.

Convide um usuário por e-mail
const invite = await client.admin.organization.invites.create({
  email: "user@example.com",
  role: "reader",
});

console.log(invite.id);

Consulte os logs de auditoria

Use o endpoint de logs de auditoria para listar as ações recentes dos usuários e as alterações recentes na configuração da organização.

Consulte os logs de auditoria
const auditLogs = await client.admin.organization.auditLogs.list({
  limit: 10,
});

console.log(auditLogs.data);