Conheça os códigos de erro da API e saiba como resolvê-los.
Este guia apresenta os códigos de erro que você pode encontrar ao usar a API ou nossa biblioteca oficial para Python. Cada código de erro mencionado na visão geral tem uma seção com orientações mais detalhadas.
Erros da API
Código
Visão geral
400 - Argumento service_tier inválido
Causa: O projeto não permite o nível de serviço solicitado ou determinado pela API. 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: As credenciais de autenticação são inválidas. Solução: Verifique se a solicitação usa a chave de API correta e se a organização que faz a solicitação também está correta.
401 - Chave de API incorreta
Causa: A chave de API usada na solicitação está incorreta. Solução: Verifique se a chave de API está correta, limpe o cache do navegador ou gere uma nova chave.
401 - Você precisa fazer parte 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 ingressar em 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 de origem da solicitação não consta na lista de IPs permitidos do projeto ou da organização. Solução: Envie a solicitaçã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 de um país, região ou território sem suporte. Solução: Consulte a página de países com suporte para saber mais.
429 - Saldo de créditos esgotado
Código:credit_balance_exhausted Causa: Os créditos pré-pagos da sua organização acabaram. Solução:Adicione créditos para continuar usando a API.
429 - Limite de taxa de solicitações atingido
Causa: Você está enviando solicitações com muita frequência. Solução: Espace as solicitações e respeite o intervalo indicado no cabeçalho Retry-After, se estiver presente. Consulte o guia de limites de taxa.
429 - Reduza a taxa de solicitações
Tipo:rate_limit_error Código:slow_down Causa: Sua taxa de solicitações aumentou rápido demais. Solução: Respeite o intervalo indicado no cabeçalho Retry-After, se estiver presente. Reduza a taxa de solicitações e volte a aumentá-la gradualmente.
429 - Limite de gastos da organização atingido
Código:organization_spend_limit_exceeded Causa: Sua organização atingiu o limite de gastos em vigor. Solução: Aumente ou remova o limite de gastos da organização.
429 - Limite de gastos do projeto atingido
Código:project_spend_limit_exceeded Causa: Seu projeto atingiu o limite de gastos em vigor. Solução: Aumente ou remova o limite de gastos nas configurações do projeto.
Causa: Ocorreu um problema nos nossos servidores. Solução: Aguarde um pouco e tente novamente. Se o problema persistir, entre em contato conosco. 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 intervalo indicado no cabeçalho Retry-After, se estiver presente, e tente novamente.
Para erros relacionados à cobrança, verifique error.code para identificar a causa específica. O campo mais geral error.type ainda pode ter o valor insufficient_quota.
Em caso de erro de cobrança, limite de gastos ou cota, repetir a solicitação não restabelece o acesso à API. Adicione créditos ou ajuste o limite correspondente antes de enviar outra solicitação.
previous_response_not_found: Não foi possível localizar a resposta indicada por previous_response_id com base no estado disponível. Tente novamente com o contexto de entrada completo e com 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 para continuar.
A API retorna a mensagem “Invalid service_tier argument: The requested service tier is not allowed for this project.” como um erro do tipo invalid_request_error, com error.param definido como service_tier, quando o nível de serviço selecionado na solicitação ou determinado pela API não é permitido para o projeto.
As restrições do projeto se aplicam aos níveis de serviço default, flex e priority. Para fins de verificação, o nível de serviço fast é tratado como priority. Solicitações que omitem service_tier ou usam o valor auto também podem retornar esse erro se a API determinar um nível não permitido. Essa política de projeto não se aplica ao Nível de escala.
Defina service_tier como um nível permitido para o projeto.
Se a solicitação usar auto ou omitir service_tier, atualize as configurações do projeto para permitir o nível determinado pela API.
Essa mensagem de erro indica que suas credenciais de autenticação são inválidas. Veja algumas causas possíveis:
Você está usando uma chave de API revogada.
A chave de API que você está usando é diferente da atribuída à organização ou ao projeto que faz a solicitação.
A chave de API não tem as permissões necessárias para o endpoint que você está chamando.
Para resolver o erro, siga estas etapas:
Verifique se o cabeçalho da solicitação contém a chave de API e o ID da organização corretos. Ambos estão nas configurações da sua conta. Para encontrar as chaves de um projeto específico, acesse as configurações gerais e selecione o projeto desejado.
Se tiver dúvidas sobre a validade da chave de API, você pode gerar uma nova chave. Substitua a chave antiga pela nova nas suas solicitações e siga nosso guia de boas práticas.
Essa mensagem de erro indica que a chave de API usada na solicitação está incorreta. Veja algumas causas possíveis:
A chave de API contém um erro de digitação ou um espaço extra.
A chave de API pertence a outra organização ou projeto.
A chave de API foi excluída ou desativada.
Uma chave de API antiga e já revogada pode estar armazenada no cache local.
Para resolver o erro, siga estas etapas:
Limpe o cache e os cookies do navegador e tente novamente.
Verifique se o cabeçalho da solicitação contém a chave de API correta.
Essa mensagem de erro indica que sua conta não faz parte de uma organização. Veja algumas causas possíveis:
Você saiu da organização anterior ou alguém removeu você dela.
Você saiu do projeto anterior ou alguém removeu você dele.
Sua organização foi excluída.
Para resolver o erro, siga estas etapas:
Se você saiu da organização anterior ou alguém removeu você dela, pode solicitar uma nova organização ou receber um convite para ingressar em uma organização existente.
Para solicitar uma nova organização, entre em contato conosco pelo site help.openai.com.
Os proprietários de organizações existentes podem convidar você para ingressar na organização pela página da equipe ou criar um projeto na página de configurações.
Se você saiu de um projeto anterior ou alguém removeu você dele, peça ao proprietário da organização ou do projeto que adicione você novamente. Você também 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.
Essa mensagem de erro indica que você atingiu o limite de taxa definido para o seu uso da API. Você enviou tokens ou solicitações demais em um curto intervalo e excedeu o número de solicitações permitido. Veja algumas causas possíveis:
Você está usando um laço ou um script que faz solicitações frequentes ou simultâneas.
Você compartilha a chave de API com outros usuários ou aplicativos.
Você usa um plano gratuito com um limite de taxa baixo.
Você atingiu o limite definido para o projeto.
Para resolver o erro, siga estas etapas:
Espace as solicitações e evite chamadas desnecessárias ou redundantes.
Se o cabeçalho Retry-After estiver presente, aguarde pelo menos o tempo indicado antes de tentar novamente. Na ausência desse cabeçalho, aumente exponencialmente o intervalo entre as tentativas, acrescente uma variação aleatória e limite o número de novas tentativas. O suporte do SDK a tempos de espera longos indicados pelo servidor depende da versão e da configuração. Saiba mais no guia de limites de taxa.
Se outras pessoas usam a mesma organização, lembre-se de que os limites se aplicam à organização inteira. Verifique o uso dos demais integrantes da equipe, pois ele também conta para o limite.
Se você usa um plano gratuito ou básico, considere migrar para um plano com pagamento conforme o uso e um limite de taxa mais alto. Compare as restrições de cada plano no guia de limites de taxa.
Peça ao proprietário da organização que aumente os limites de taxa do projeto.
Uma resposta 429 com o tipo rate_limit_error e o código slow_down indica que a taxa de solicitações aumentou mais rápido do que o serviço consegue suportar com segurança. Isso pode ocorrer mesmo que o tráfego esteja dentro dos limites de solicitações por minuto e de tokens por minuto.
Como regra geral, quando o 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 a partir do qual o limite de crescimento do tráfego se aplica pode variar conforme o modelo e as condições de tráfego.
Para resolver o erro:
Se o cabeçalho Retry-After estiver presente, aguarde pelo menos o tempo indicado antes de tentar novamente. Na ausência desse cabeçalho, aumente o intervalo entre as tentativas e acrescente um pequeno atraso aleatório.
Reduza a taxa de solicitações e volte a aumentá-la gradualmente.
Mantenha o padrão de tráfego estável para reduzir a chance de receber outro erro slow_down.
Clientes empresariais cujo tráfego com pagamento conforme o uso atinge com frequência os limites de crescimento podem considerar o Nível de escala para ter uma capacidade mais previsível nos modelos elegíveis. Para o GPT-5.6 e modelos posteriores, consulte o Nível reservado. Mesmo com essas opções de capacidade, siga as etapas de recuperação acima. Continue respeitando o intervalo indicado por Retry-After, quando presente, e aumente o tráfego gradualmente.
O erro organization_spend_limit_exceeded indica que sua organização atingiu o limite mensal de gastos em vigor. O limite se aplica ao tráfego da API de todos os projetos da organização em conjunto.
Para restabelecer o acesso à API, aumente ou remova o limite nas configurações de limites da organização. Caso contrário, o acesso será restabelecido quando o limite mensal for renovado.
O erro project_spend_limit_exceeded indica que seu projeto atingiu o limite mensal de gastos em vigor. Os demais projetos podem continuar usando a API, desde que nem o limite do próprio projeto nem o da organização tenha sido atingido.
Para restabelecer o acesso à API, aumente ou remova o limite nas configurações do projeto. Caso contrário, o acesso será restabelecido quando o limite mensal for renovado.
O erro organization_usage_limit_exceeded indica que sua organização atingiu o limite mensal de uso definido pela OpenAI. Esse limite é independente dos limites de gastos que você configura para a organização e para os projetos.
Uma resposta 503 com o tipo service_unavailable_error e o código server_is_overloaded indica que, no momento, o modelo solicitado não tem capacidade suficiente para processar sua solicitação.
Se o cabeçalho Retry-After estiver presente, aguarde pelo menos o tempo indicado antes de tentar novamente. Na ausência desse cabeçalho, aumente o intervalo entre as tentativas. Se o erro persistir, consulte a página de status para verificar se há algum incidente em andamento.
Tipos de erro da biblioteca Python
A biblioteca Python lança RateLimitError para respostas 429 e InternalServerError para respostas 503. Se o seu código capturava apenas uma dessas classes para tratar limitação de tráfego e sobrecarga, passe a tratar as duas e verifique error.code. Por exemplo, uma sobrecarga no processamento de vídeo agora retorna 503, enquanto antes retornava 429. Consulte as orientações de migração para ver o que mudou em cada endpoint.
Tipo
Visão geral
APIConnectionError
Causa: Houve um problema de conexão com nossos serviços. Solução: Verifique as configurações de rede, a configuração do proxy, os certificados SSL ou as regras do firewall.
APITimeoutError
Causa: O tempo de espera da solicitação se esgotou. Solução: Aguarde um pouco e tente novamente. Se o problema persistir, entre em contato conosco.
AuthenticationError
Causa: A chave de API ou o token é inválido, expirou ou foi revogado. Solução: Verifique se a chave de API ou o token está correto e ativo. Talvez seja necessário gerar outra chave ou outro token no painel da conta.
BadRequestError
Causa: A solicitação está malformada ou faltam 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 os parâmetros enviados são válidos e estão completos. Talvez também seja necessário verificar a codificação, o formato ou o tamanho dos dados da solicitação.
ConflictError
Causa: Outra solicitação atualizou o recurso. Solução: Tente atualizar o recurso novamente e verifique se nenhuma outra solicitação está tentando atualizá-lo.
InternalServerError
Causa: Ocorreu um problema nos nossos sistemas. Solução: Aguarde um pouco e tente novamente. Se o problema persistir, entre em contato conosco.
NotFoundError
Causa: O recurso solicitado não existe. Solução: Verifique se você está usando o identificador correto do recurso.
PermissionDeniedError
Causa: Você não tem acesso ao recurso solicitado. Solução: Verifique se a chave de API, o ID da organização e o ID do recurso estão corretos.
RateLimitError
Causa: Você atingiu o limite de taxa definido para o seu uso ou aumentou o tráfego rápido demais. Solução: Espace as solicitações e respeite o intervalo indicado por Retry-After, quando presente, sem exceder o limite de novas tentativas. Saiba mais no guia de limites de taxa.
UnprocessableEntityError
Causa: Não foi possível processar a solicitação, embora o formato esteja correto. Solução: Envie a solicitação novamente.
A exceção APIConnectionError indica que a solicitação não chegou aos nossos servidores ou que não foi possível estabelecer uma conexão segura. A causa pode estar na rede, na configuração do proxy, em um certificado SSL ou em uma regra do firewall.
Se você receber a exceção APIConnectionError, tente o seguinte:
Verifique as configurações de rede e confirme que a conexão com a internet é estável e rápida. Talvez seja necessário mudar de rede, usar uma conexão por cabo ou reduzir o número de dispositivos ou aplicativos que compartilham a largura de banda.
Verifique se a configuração do proxy é compatível com nossos serviços. Talvez seja necessário atualizar as configurações do proxy, usar outro proxy ou conectar-se diretamente, sem passar pelo proxy.
Verifique se os certificados SSL são válidos e estão atualizados. Talvez seja necessário instalar ou renovar os certificados, usar outra autoridade certificadora ou desativar a verificação de SSL.
Verifique se as regras do firewall estão bloqueando ou filtrando o tráfego dos nossos serviços. Talvez seja necessário alterar as configurações do firewall.
Se for o caso, verifique se o contêiner tem as permissões necessárias para enviar e receber tráfego.
Se o problema persistir, siga as orientações da seção Erros persistentes.
A exceção APITimeoutError indica que a solicitação demorou demais para ser concluída e nosso servidor encerrou a conexão. A causa pode ser um problema de rede, uma carga elevada nos nossos serviços ou uma solicitação complexa que exige mais tempo de processamento.
Se você receber a exceção APITimeoutError, tente o seguinte:
Aguarde alguns segundos e envie a solicitação novamente. O congestionamento da rede ou a carga nos nossos serviços pode diminuir, permitindo que a solicitação seja concluída na segunda tentativa.
Verifique as configurações de rede e confirme que a conexão com a internet é estável e rápida. Talvez seja necessário mudar de rede, usar uma conexão por cabo ou reduzir o número de dispositivos ou aplicativos que compartilham a largura de banda.
Se o problema persistir, siga as orientações da seção Erros persistentes.
A exceção AuthenticationError indica que a chave de API ou o token é inválido, expirou ou foi revogado. A causa pode ser um erro de digitação, um erro de formatação ou uma violação de segurança.
Se você receber a exceção AuthenticationError, tente o seguinte:
Verifique se a chave de API ou o token está correto e ativo. Talvez seja necessário gerar uma nova chave no painel de chaves de API, verificar se há espaços ou caracteres extras ou, se você tiver várias credenciais, usar outra chave ou outro token.
Verifique se a formatação está correta.
A exceção BadRequestError (anteriormente InvalidRequestError) indica que a solicitação está malformada ou que faltam parâmetros obrigatórios, como um token ou uma entrada. A causa pode ser um erro de digitação, um erro de formatação ou um erro de lógica no código.
Se você receber a exceção BadRequestError, tente o seguinte:
Leia a mensagem de erro com atenção para identificar o problema. Ela deve indicar qual parâmetro é inválido ou está ausente e qual valor ou formato era esperado.
Consulte a referência da API para o método que você chamou e verifique se os parâmetros enviados são válidos e estão completos. Talvez seja necessário conferir se os nomes, tipos, valores e formatos dos parâmetros correspondem aos da documentação.
Verifique se a codificação, o formato e o tamanho dos dados da solicitação são compatíveis com nossos serviços. Talvez seja necessário codificar os dados em UTF-8, formatá-los como JSON ou compactá-los se forem muito grandes.
Teste a solicitação com uma ferramenta como Postman ou curl e verifique se ela funciona como esperado. Talvez seja necessário depurar o código e corrigir erros ou inconsistências na lógica da solicitação.
Se o problema persistir, siga as orientações da seção Erros persistentes.
A exceção InternalServerError indica que houve uma falha nos nossos sistemas durante o processamento da solicitação. A causa pode ser um erro temporário, um bug ou uma interrupção do sistema.
Se você receber a exceção InternalServerError, tente o seguinte:
Aguarde alguns segundos e envie a solicitação novamente. Em alguns casos, o problema é resolvido rapidamente e a solicitação pode ser concluída na segunda tentativa.
Consulte a página de status para verificar se há incidentes ou manutenções em andamento que possam afetar nossos serviços. Se houver um incidente, acompanhe as atualizações e aguarde a resolução antes de enviar a solicitação novamente.
Se o problema persistir, siga as orientações da seção Erros persistentes.
Nossa equipe de suporte investigará o problema e responderá assim que possível. Em períodos de alta demanda, o tempo de espera pelo atendimento pode ser longo. Você também pode publicar no fórum da comunidade, tomando o cuidado de omitir informações confidenciais.
A exceção RateLimitError indica que você atingiu o limite de taxa definido para o seu uso. Você enviou tokens ou solicitações demais em determinado intervalo, 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 serviços.
Se você receber a exceção RateLimitError, tente o seguinte:
Envie menos tokens ou solicitações ou aumente o intervalo entre os envios. Talvez seja necessário reduzir a frequência ou o volume das solicitações, agrupar os tokens em lotes ou aumentar exponencialmente o intervalo entre as tentativas quando Retry-After estiver ausente. Consulte o guia de limites de taxa para saber mais.
Quando Retry-After estiver presente, aguarde pelo menos o tempo indicado antes de tentar novamente. A biblioteca Python pode interromper as tentativas automáticas se o tempo de espera indicado pelo servidor exceder o limite aceito pela biblioteca. Se o aplicativo fizer novas tentativas, respeite o intervalo original e leve em conta as tentativas do SDK.
Você também pode consultar as estatísticas de uso da API no painel da conta.
Outros detalhes relevantes que possam ajudar no diagnóstico do problema
Nossa equipe de suporte investigará o problema e responderá assim que possível. Em períodos de alta demanda, o tempo de espera pelo atendimento pode ser longo. Você também pode publicar no fórum da comunidade, tomando o cuidado de omitir informações confidenciais.
Tratamento de erros
Recomendamos tratar no código os erros retornados pela API. Para isso, você pode usar um trecho de código como o do 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())}