Explore os códigos de erro da API e suas soluções.
Este guia apresenta uma visão geral dos códigos de erro que você pode encontrar tanto na API quanto na nossa biblioteca oficial para Python. Cada código de erro mencionado na visão geral tem uma seção dedicada com mais orientações.
Erros da API
Código
Visão geral
400 - Argumento service_tier inválido
Causa: O nível de serviço solicitado ou determinado não é permitido para o projeto. Solução: Defina service_tier como um nível permitido para o projeto ou atualize os níveis de serviço permitidos nas configurações do projeto.
401 - Autenticação inválida
Causa: Autenticação inválida Solução: Verifique se a chave de API e a organização usadas na requisição estão corretas.
401 - Chave de API incorreta fornecida
Causa: A chave de API usada na requisição está incorreta. Solução: Verifique se a chave de API usada está correta, limpe o cache do navegador ou gere uma nova chave.
401 - Você precisa ser membro de uma organização para usar a API
Causa: Sua conta não faz parte de uma organização. Solução: Entre em contato conosco para ser adicionado a uma nova organização ou peça ao administrador da sua organização que convide você para uma organização.
401 - IP não autorizado
Causa: O IP da sua requisição não consta na lista de IPs permitidos configurada para seu projeto ou organização. Solução: Envie a requisição a partir do IP correto ou atualize as configurações da lista de IPs permitidos.
403 - País, região ou território sem suporte
Causa: Você está acessando a API a partir de um país, região ou território sem suporte. Solução: Consulte esta página para obter mais informações.
429 - Saldo de créditos esgotado
Código:credit_balance_exhausted Causa: Sua organização não tem mais créditos pré-pagos. Solução:Adicione créditos para continuar usando a API.
429 - Limite de taxa de requisições atingido
Causa: Você está enviando requisições com muita frequência. Solução: Espace suas requisições e respeite o cabeçalho Retry-After quando ele estiver presente. Leia o guia de limites de taxa.
429 - Reduza o ritmo
Tipo:rate_limit_error Código:slow_down Causa: Sua taxa de requisições aumentou rápido demais. Solução: Respeite o cabeçalho Retry-After quando ele estiver presente, reduza sua taxa de requisições e aumente-a gradualmente.
429 - Limite de gastos da organização atingido
Código:organization_spend_limit_exceeded Causa: Sua organização atingiu o limite de gastos imposto. Solução: Aumente ou remova o limite de gastos da sua organização.
429 - Limite de gastos do projeto atingido
Código:project_spend_limit_exceeded Causa: Seu projeto atingiu o limite de gastos imposto. Solução: Aumente ou remova o limite de gastos nas configurações do projeto.
500 - O servidor encontrou um erro ao processar sua requisição
Causa: Problema nos nossos servidores. Solução: Aguarde um pouco e tente enviar sua requisição novamente. Entre em contato conosco se o problema persistir. Consulte a página de status.
503 - Modelo temporariamente sobrecarregado
Tipo:service_unavailable_error Código:server_is_overloaded Causa: O modelo solicitado está temporariamente sobrecarregado. Solução: Respeite o cabeçalho Retry-After quando ele estiver presente e, em seguida, tente enviar sua requisição novamente.
Para erros relacionados ao faturamento, verifique error.code para identificar a causa específica. O campo mais abrangente error.type ainda pode ser insufficient_quota.
Repetir requisições após erros de faturamento, gastos ou cota não restabelecerá o acesso à API. Atualize os créditos ou limites correspondentes antes de enviar outra requisição.
previous_response_not_found: Não é possível resolver previous_response_id a partir do estado disponível. Tente novamente com o contexto de entrada completo e previous_response_id definido como null.
websocket_connection_limit_reached: A conexão atingiu o limite de 60 minutos. Abra uma nova conexão WebSocket e continue.
A API retorna a mensagem "Invalid service_tier argument: The requested service tier is not allowed for this project." como um erro invalid_request_error, com error.param definido como service_tier, quando uma requisição seleciona ou resulta em um nível de serviço não permitido para o projeto.
As restrições do projeto se aplicam aos níveis de serviço default, flex e priority. O nível de serviço fast é avaliado como priority. Requisições que omitem service_tier ou o definem como auto também podem retornar esse erro se resultarem em um nível não permitido. O Nível de escala continua fora do escopo dessa política do projeto.
Defina service_tier como um nível permitido para o projeto.
Se a requisição usar auto ou omitir service_tier, atualize as configurações do projeto para permitir o nível determinado.
Essa mensagem de erro indica que suas credenciais de autenticação são inválidas. Isso pode acontecer por vários motivos, como:
Você está usando uma chave de API revogada.
Você está usando uma chave de API diferente da atribuída à organização ou ao projeto que faz a requisição.
Você está usando uma chave de API que não tem as permissões necessárias para o endpoint que está chamando.
Para resolver esse erro, siga estas etapas:
Verifique se você está usando a chave de API e o ID da organização corretos no cabeçalho da requisição. Você pode encontrar sua chave de API e o ID da organização nas configurações da sua conta ou encontrar chaves específicas de um projeto nas configurações da seção Geral, selecionando o projeto desejado.
Se você não tiver certeza de que sua chave de API é válida, poderá gerar uma nova. Substitua a chave de API antiga pela nova nas suas requisições e siga nosso guia de práticas recomendadas.
Essa mensagem de erro indica que a chave de API usada na sua requisição está incorreta. Isso pode acontecer por vários motivos, como:
Há um erro de digitação ou um espaço extra na sua chave de API.
Você está usando uma chave de API que pertence a outra organização ou projeto.
Você está usando uma chave de API que foi excluída ou desativada.
Uma chave de API antiga e revogada pode estar armazenada no cache local.
Para resolver esse erro, siga estas etapas:
Tente limpar o cache e os cookies do navegador e, em seguida, tente novamente.
Verifique se você está usando a chave de API correta no cabeçalho da requisição.
Se você não tem certeza de que sua chave de API está correta, pode gerar uma nova. Substitua a chave de API antiga na sua base de código e siga nosso guia de práticas recomendadas.
Esta mensagem de erro indica que sua conta não faz parte de uma organização. Isso pode acontecer por vários motivos, como:
Você saiu da organização anterior ou foi removido dela.
Você saiu do projeto anterior ou foi removido dele.
Sua organização foi excluída.
Para resolver esse erro, siga estas etapas:
Se você saiu da organização anterior ou foi removido dela, pode solicitar uma nova organização ou receber um convite para uma organização existente.
Para solicitar uma nova organização, entre em contato conosco pelo help.openai.com
Proprietários de organizações existentes podem convidar você para participar de suas organizações pela página Equipe ou criar um novo projeto na página Configurações.
Se você saiu de um projeto anterior ou foi removido dele, pode pedir ao proprietário da organização ou do projeto que adicione você novamente, ou pode criar um novo projeto.
O erro credit_balance_exhausted indica que o saldo de créditos pré-pagos da sua organização se esgotou.
Esta mensagem de erro indica que você atingiu o limite de taxa atribuído a você para a API. Isso significa que você enviou tokens ou requisições demais em um curto período e excedeu o número de requisições permitido. Isso pode acontecer por vários motivos, como:
Você está usando um loop ou script que faz requisições frequentes ou simultâneas.
Você está compartilhando sua chave de API com outros usuários ou aplicativos.
Você está usando um plano gratuito com um limite de taxa baixo.
Você atingiu o limite definido para seu projeto
Para resolver esse erro, siga estas etapas:
Espaçe suas requisições e evite chamadas desnecessárias ou redundantes.
Se o cabeçalho Retry-After estiver presente, aguarde pelo menos o tempo indicado nele antes de tentar novamente. Se ele estiver ausente, use espera exponencial com variação aleatória e limite o número de novas tentativas. O suporte do SDK a tempos de espera longos indicados pelo servidor varia conforme a versão e a configuração. Saiba mais no nosso guia de limites de taxa.
Se outras pessoas usam a mesma organização que você, lembre-se de que os limites são aplicados por organização, não por usuário. Vale verificar o uso do restante da equipe, pois ele também conta para o limite.
Se você usa um plano gratuito ou de nível básico, considere mudar para um plano de pagamento por uso que ofereça um limite de taxa maior. Você pode comparar as restrições de cada plano no nosso guia de limites de taxa.
Entre em contato com o proprietário da sua organização para aumentar os limites de taxa do seu projeto
Uma resposta 429 com o tipo rate_limit_error e o código slow_down indica que sua taxa de requisições aumentou mais rápido do que o serviço consegue suportar com segurança. Isso pode ocorrer mesmo quando seu tráfego está dentro dos limites de requisições por minuto e tokens por minuto.
Como regra geral, quando seu tráfego atingir 1 milhão de tokens de entrada por minuto (TPM), aumente-o em no máximo 50% a cada 15 minutos. O ponto exato em que o limite de crescimento da taxa passa a ser aplicado pode variar conforme o modelo e as condições de tráfego.
Para resolver esse erro:
Se o cabeçalho Retry-After estiver presente, aguarde pelo menos o tempo indicado nele antes de tentar novamente. Se ele estiver ausente, aumente o intervalo entre as novas tentativas e acrescente um pequeno atraso aleatório.
Reduza sua taxa de requisições e depois aumente-a gradualmente.
Mantenha um padrão de tráfego estável para reduzir a chance de outro erro slow_down.
Clientes empresariais cujo tráfego com pagamento por uso atinge regularmente os limites de crescimento da taxa podem considerar o Nível de escala para obter capacidade mais previsível nos modelos elegíveis. Para o GPT-5.6 e modelos posteriores, consulte o Nível reservado. Essas opções de capacidade não substituem as etapas de recuperação acima: continue respeitando Retry-After quando estiver presente e aumente o tráfego gradualmente.
O erro organization_spend_limit_exceeded indica que sua organização atingiu o limite de gastos mensal imposto a ela. O limite se aplica ao tráfego da API de todos os projetos da organização.
Para restabelecer o acesso à API, aumente ou remova o limite nas configurações de limites da organização. Caso contrário, o acesso será retomado quando o limite mensal for reiniciado.
O erro project_spend_limit_exceeded indica que seu projeto atingiu o limite de gastos mensal imposto a ele. Os demais projetos podem continuar, a menos que seus próprios limites ou o limite da organização também tenham sido atingidos.
Para restabelecer o acesso à API, aumente ou remova o limite nas configurações do projeto. Caso contrário, o acesso será retomado quando o limite mensal for reiniciado.
O erro organization_usage_limit_exceeded indica que sua organização atingiu o limite de uso mensal atribuído pela OpenAI. Esse limite é separado dos limites de gastos da organização e dos projetos que você configura.
Uma resposta 503 com o tipo service_unavailable_error e o código server_is_overloaded indica que o modelo solicitado não tem capacidade suficiente para processar sua requisição no momento.
Se o cabeçalho Retry-After estiver presente, aguarde pelo menos o tempo indicado nele antes de tentar novamente. Se ele estiver ausente, aumente o intervalo entre as novas tentativas. Se o erro continuar, consulte a página de status para verificar se há algum incidente em andamento.
Tipos de erro da biblioteca Python
Python lança RateLimitError para respostas 429 e InternalServerError para respostas 503. Se seu código de tratamento de erros antes capturava apenas uma dessas classes para limitação de taxa e sobrecarga, trate ambas e inspecione error.code. A sobrecarga de vídeo, por exemplo, agora retorna 503, enquanto antes retornava 429. Consulte as orientações de migração para conhecer as mudanças específicas de cada endpoint.
Tipo
Visão geral
APIConnectionError
Causa: Problema ao se conectar aos nossos serviços. Solução: Verifique as configurações de rede, a configuração do proxy, os certificados SSL ou as regras de firewall.
APITimeoutError
Causa: O tempo limite da requisição foi excedido. Solução: Aguarde um pouco e tente enviar a requisição novamente. Entre em contato conosco se o problema persistir.
AuthenticationError
Causa: Sua chave de API ou seu token era inválido, havia expirado ou havia sido revogado. Solução: Verifique sua chave de API ou seu token e confirme se está correto e ativo. Talvez seja necessário gerar uma nova chave ou um novo token no painel da sua conta.
BadRequestError
Causa: Sua requisição estava malformada ou faltavam alguns parâmetros obrigatórios, como um token ou uma entrada. Solução: A mensagem de erro deve indicar o problema específico. Consulte a documentação do método da API que você está chamando e verifique se está enviando parâmetros válidos e completos. Talvez também seja necessário verificar a codificação, o formato ou o tamanho dos dados da requisição.
ConflictError
Causa: O recurso foi atualizado por outra requisição. Solução: Tente atualizar o recurso novamente e verifique se nenhuma outra requisição está tentando atualizá-lo.
InternalServerError
Causa: Problema do nosso lado. Solução: Aguarde um pouco e tente enviar a requisição novamente. Entre em contato conosco se o problema persistir.
NotFoundError
Causa: O recurso solicitado não existe. Solução: Verifique se você está usando o identificador de recurso correto.
PermissionDeniedError
Causa: Você não tem acesso ao recurso solicitado. Solução: Verifique se você está usando a chave de API, o ID da organização e o ID do recurso corretos.
RateLimitError
Causa: Você atingiu o limite de taxa atribuído a você ou aumentou o tráfego rápido demais. Solução: Controle o ritmo das requisições e respeite Retry-After quando estiver presente, observando seus limites de novas tentativas. Saiba mais no nosso guia de limites de taxa.
UnprocessableEntityError
Causa: Não foi possível processar a requisição, apesar de o formato estar correto. Solução: Tente enviar a requisição novamente.
Um APIConnectionError indica que sua requisição não conseguiu chegar aos nossos servidores ou estabelecer uma conexão segura. Isso pode ocorrer devido a um problema de rede, uma configuração de proxy, um certificado SSL ou uma regra de firewall.
Se ocorrer um APIConnectionError, tente seguir estas etapas:
Verifique suas configurações de rede e confira se a conexão com a internet está estável e rápida. Pode ser necessário mudar de rede, usar uma conexão com fio ou reduzir o número de dispositivos ou aplicativos que consomem sua largura de banda.
Verifique a configuração do seu proxy e confira se ela é compatível com nossos serviços. Pode ser necessário atualizar as configurações do proxy, usar outro proxy ou conectar-se diretamente, sem proxy.
Verifique seus certificados SSL e confira se estão válidos e atualizados. Pode ser necessário instalar ou renovar os certificados, usar outra autoridade certificadora ou desativar a verificação SSL.
Verifique as regras do seu firewall e confira se elas não estão bloqueando ou filtrando nossos serviços. Pode ser necessário alterar as configurações do firewall.
Se aplicável, verifique se seu contêiner tem as permissões corretas para enviar e receber tráfego.
Se o problema persistir, consulte os próximos passos na seção de erros persistentes.
Um erro APITimeoutError indica que sua requisição demorou muito para ser concluída e nosso servidor encerrou a conexão. Isso pode ocorrer devido a um problema de rede, uma carga elevada nos nossos serviços ou uma requisição complexa que exige mais tempo de processamento.
Se ocorrer um erro APITimeoutError, tente seguir estas etapas:
Aguarde alguns segundos e tente enviar a requisição novamente. Às vezes, o congestionamento da rede ou a carga nos nossos serviços pode diminuir, e sua requisição pode ser bem-sucedida na segunda tentativa.
Verifique suas configurações de rede e confira se a conexão com a internet está estável e rápida. Pode ser necessário mudar de rede, usar uma conexão com fio ou reduzir o número de dispositivos ou aplicativos que consomem sua largura de banda.
Se o problema persistir, consulte os próximos passos na seção de erros persistentes.
Um AuthenticationError indica que sua chave de API ou seu token estava inválido, expirado ou revogado. Isso pode ocorrer devido a um erro de digitação, um erro de formatação ou uma violação de segurança.
Se ocorrer um AuthenticationError, tente seguir estas etapas:
Verifique se sua chave de API ou seu token está correto e ativo. Pode ser necessário gerar uma nova chave no painel de chaves de API, verificar se não há espaços ou caracteres extras ou usar outra chave ou outro token, caso você tenha mais de um.
Verifique se você seguiu a formatação correta.
Um BadRequestError (anteriormente InvalidRequestError) indica que sua requisição estava malformada ou não incluía alguns parâmetros obrigatórios, como um token ou uma entrada. Isso pode ocorrer devido a um erro de digitação, um erro de formatação ou um erro de lógica no seu código.
Se ocorrer um BadRequestError, tente seguir estas etapas:
Leia a mensagem de erro com atenção e identifique o erro específico. A mensagem deve informar qual parâmetro estava inválido ou ausente e qual valor ou formato era esperado.
Consulte a Referência da API para o método específico da API que você estava chamando e verifique se está enviando parâmetros válidos e completos. Pode ser necessário revisar os nomes, tipos, valores e formatos dos parâmetros e conferir se correspondem à documentação.
Verifique a codificação, o formato ou o tamanho dos dados da sua requisição e confira se são compatíveis com nossos serviços. Pode ser necessário codificar os dados em UTF-8, formatá-los em JSON ou compactá-los se forem muito grandes.
Teste sua requisição com uma ferramenta como Postman ou curl e verifique se ela funciona conforme o esperado. Pode ser necessário depurar seu código e corrigir erros ou inconsistências na lógica da requisição.
Se o problema persistir, consulte os próximos passos na seção de erros persistentes.
Um InternalServerError indica que algo deu errado do nosso lado ao processar sua requisição. Isso pode ocorrer devido a um erro temporário, um bug ou uma indisponibilidade do sistema.
Pedimos desculpas por qualquer inconveniente e estamos empenhados em resolver os problemas o mais rápido possível. Você pode consultar nossa página de status do sistema para obter mais informações.
Se ocorrer um InternalServerError, tente seguir estas etapas:
Aguarde alguns segundos e tente enviar a requisição novamente. Às vezes, o problema pode ser resolvido rapidamente, e sua requisição pode ser bem-sucedida na segunda tentativa.
Consulte nossa página de status para verificar se há incidentes ou manutenções em andamento que possam afetar nossos serviços. Se houver um incidente ativo, acompanhe as atualizações e aguarde a resolução antes de tentar enviar a requisição novamente.
Se o problema persistir, consulte os próximos passos na seção Erros persistentes.
Nossa equipe de suporte investigará o problema e responderá assim que possível. O tempo de espera na fila de suporte pode ser longo devido à alta demanda. Você também pode publicar no nosso Fórum da Comunidade, mas lembre-se de omitir qualquer informação sensível.
Um RateLimitError indica que você atingiu o limite de taxa atribuído a você. Isso significa que você enviou tokens ou requisições em excesso em um determinado período, e nossos serviços bloquearam temporariamente novos envios.
Aplicamos limites de taxa para garantir o uso justo e eficiente dos nossos recursos e evitar abusos ou sobrecarga nos nossos serviços.
Se ocorrer um RateLimitError, tente seguir estas etapas:
Envie menos tokens ou requisições ou diminua o ritmo de envio. Pode ser necessário reduzir a frequência ou o volume das requisições, agrupar seus tokens em lotes ou usar espera exponencial entre tentativas quando Retry-After não estiver presente. Consulte nosso guia de limites de taxa para obter mais detalhes.
Quando Retry-After estiver presente, aguarde pelo menos o tempo especificado antes de tentar novamente. A biblioteca do Python pode interromper as novas tentativas automáticas quando o tempo de espera indicado pelo servidor exceder o limite que ela suporta. Se você fizer novas tentativas no nível do aplicativo, respeite o tempo de espera original e leve em conta as novas tentativas do SDK.
Você também pode consultar suas estatísticas de uso da API no painel da sua conta.
Os dados e os cabeçalhos da requisição que você enviou
A data, a hora e o fuso horário da sua requisição
Quaisquer outros detalhes relevantes que possam nos ajudar a diagnosticar o problema
Nossa equipe de suporte investigará o problema e responderá assim que possível. O tempo de espera na fila de suporte pode ser longo devido à alta demanda. Você também pode publicar no nosso Fórum da Comunidade, mas lembre-se de omitir qualquer informação sensível.
Tratamento de erros
Recomendamos tratar no seu código os erros retornados pela API. Para isso, você pode usar um trecho de código como o exemplo abaixo:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21import OpenAI from"openai";constclient=newOpenAI();try {constresponse=await client.responses.create({ model: "gpt-6-astra", input: "Hello world", }); console.log(response.output_text);} catch (error) {if (error instanceofOpenAI.APIConnectionError) { console.error("Failed to connect to the OpenAI API:", error.message); } elseif (error instanceofOpenAI.RateLimitError) { console.error("OpenAI API request exceeded its rate limit:", error.message); } elseif (error instanceofOpenAI.APIError) { console.error("OpenAI API returned an error:", error.status, error.message); } else {throw error; }}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15import openaifrom openai import OpenAIclient = OpenAI()try: response = client.responses.create(model="gpt-6-astra", input="Hello world")except openai.APIConnectionError as e: print(f"Failed to connect to OpenAI API: {e}")except openai.RateLimitError as e: print(f"OpenAI API request exceeded rate limit: {e}")except openai.APIError as e: print(f"OpenAI API returned an API Error: {e}")else: print(response.output_text)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28package mainimport ( "context" "errors" "fmt" "github.com/openai/openai-go/v3" "github.com/openai/openai-go/v3/responses")func main() { client := openai.NewClient() response, err := client.Responses.New(context.Background(), responses.ResponseNewParams{ Model: "gpt-6-astra", Input: responses.ResponseNewParamsInputUnion{OfString: openai.String("Hello world")}, }) if err != nil { var apiError *openai.Error if errors.As(err, &apiError) { fmt.Println("OpenAI API returned an API error:", apiError) return } fmt.Println("Failed to connect to OpenAI API:", err) return } fmt.Println(response.OutputText())}