API Hop

Documentação

Documentação do API Hop

Respostas multimodais OpenAI

API Responses compatível com OpenAI. Este endpoint usa `input` no estilo OpenAI e suporta texto, URLs públicas de imagens, entrada de PDF, chamadas de ferramentas, opções de raciocínio e parâmetros de streaming.

POSThttps://api.apihop.ai/openai/responses

API Responses compatível com OpenAI. Este endpoint usa input no estilo OpenAI e suporta texto, URLs públicas de imagens, entrada de PDF, chamadas de ferramentas, opções de raciocínio e parâmetros de streaming.

text
POST https://api.apihop.ai/openai/responses

Autenticação

Todas as requisições exigem autenticação com token Bearer.

http
Authorization: Bearer YOUR_API_KEY

Corpo da requisição

modelstringobrigatórioPadrão: gpt-5.4

Modelos atualmente ativos com suporte a Responses:

  • gpt-5.4
  • gpt-5.5
  • gpt-5.6-sol
  • gpt-5.6-terra
  • gpt-6-astra

Veja o Catálogo de modelos para os modelos visíveis à chave de API atual.

inputstring | object[]

Conteúdo de entrada. Obrigatório, exceto quando um previous_response_id não vazio é fornecido. Omitir ambos ou usar um tipo de entrada inválido retorna 400 antes da cobrança.

Formas suportadas:

  • Uma string, equivalente a uma entrada de texto user.
  • Um array de itens de entrada para histórico da conversa, entrada multimodal e resultados de ferramentas.

Cada objeto no array de entrada pode conter os campos abaixo:

typestring

Tipo de item de entrada.

Valores comuns:

  • message: uma mensagem de entrada.
  • function_call_output: resultado de uma chamada de ferramenta de função.
rolestring

Papel quando type=message.

Valores comuns:

  • developer
  • system
  • user
  • assistant
contentstring | object[]

Conteúdo da mensagem.

Use um array de blocos de conteúdo para requisições multimodais. Os blocos suportam:

typestring

Tipo de bloco de conteúdo.

Atualmente suportados:

  • input_text
  • input_image
  • input_file
textstring

Conteúdo de texto quando type=input_text.

image_urlstring

URL pública de imagem quando type=input_image.

Somente URLs de imagens http:// ou https:// acessíveis publicamente são suportadas. URLs de dados Base64 como data:image/...;base64,... não são suportadas.

detailstringPadrão: auto

Nível de detalhe da imagem quando type=input_image.

Valores comuns:

  • auto
  • low
  • high
file_datastring

URL de dados do conteúdo do arquivo quando type=input_file. PDFs podem usar data:application/pdf;base64,....

filenamestring

Nome do arquivo quando type=input_file.

instructionsstring

Instruções de sistema ou desenvolvedor inseridas no contexto do modelo.

max_output_tokensinteger

Máximo opcional de tokens de saída, como inteiro positivo. Omita o campo para usar o padrão do provedor para o modelo escolhido. Dependendo do modelo, o orçamento pode incluir tokens de raciocínio e texto final. Um orçamento pequeno pode truncar a resposta ou se esgotar antes do texto final; aumentá-lo pode elevar o custo.

streambooleanPadrão: false

Se a resposta deve ser transmitida em streaming.

  • false: retorna uma resposta completa
  • true: retorna eventos SSE no estilo OpenAI Responses
temperaturenumberPadrão: 1.0

Temperatura de amostragem, normalmente de 0 a 2.

top_pnumberPadrão: 1.0

Parâmetro de amostragem nucleus, normalmente de 0 a 1.

textobject

Configuração de saída de texto.

text.formatobject

Configuração do formato de texto, como { "type": "text" } ou um esquema JSON.

text.verbositystring

Detalhamento da saída, como low, medium ou high. O suporte depende do modelo escolhido.

toolsobject[]

Definições de ferramentas. A disponibilidade depende do modelo escolhido e dos recursos disponíveis.

tool_choicestring | object

Política de seleção de ferramentas.

parallel_tool_callsboolean

Se chamadas paralelas de ferramentas são permitidas.

reasoningobject

Opções relacionadas ao raciocínio.

includestring[]

Campos extras a incluir na resposta.

prompt_cache_keystring

Chave de cache de prompt para reutilização do cache.

prompt_cache_retentionstring

Política de retenção do cache de prompt. Os valores suportados dependem do modelo escolhido e dos recursos disponíveis.

safety_identifierstring

Identificador estável do usuário final para controles de segurança.

storeboolean

Se o estado da resposta pode ser armazenado.

Diferenças de parâmetros entre modelos

  • O encaminhamento Responses nativo compatível com OpenAI preserva top_p na requisição ao provedor; validação e comportamento de amostragem dependem do modelo e provedor escolhidos. As verificações de 2026-09-26 aceitaram top_p: 0.9 para gpt-5.5, gpt-5.6-sol e gpt-5.6-terra. Aceitação e encaminhamento não comprovam efeito na amostragem nem garantem suporte a outros valores, modelos ou requisições futuras. Comece com uma requisição mínima.
  • O suporte desta página se aplica somente ao endpoint regular /openai/responses. Não implica que o mesmo modelo suporte /openai/responses/compact, WebSocket ou previous_response_id com estado.
  • Os cinco modelos GPT listados acima não têm atualmente um canal Compact verificado. Requisições Compact são rejeitadas antes da cobrança quando não há um canal explicitamente ativado. Responses normal e Responses WebSocket continuam disponíveis.

Exemplos de requisição

Os exemplos abaixo fornecem input. Uma continuação pode omitir input se fornecer um previous_response_id válido e o canal escolhido suportar continuação com estado. Um ID de resposta não habilita essa capacidade em um canal sem suporte. Resultados de ferramentas continuam sendo itens de entrada válidos, incluindo function_call_output.

Texto

json
{
  "model": "gpt-5.4",
  "input": "Hello, introduce yourself in one sentence."
}

Parâmetros no estilo Codex CLI

json
{
  "model": "gpt-5.5",
  "input": "Reply with READY only.",
  "reasoning": {
    "effort": "xhigh"
  },
  "store": false,
  "text": {
    "verbosity": "low"
  },
  "stream": true
}

Compreensão de imagens

json
{
  "model": "gpt-5.4",
  "input": [
    {
      "type": "message",
      "role": "user",
      "content": [
        {
          "type": "input_text",
          "text": "What is in this image?"
        },
        {
          "type": "input_image",
          "image_url": "https://example.com/cat.png",
          "detail": "high"
        }
      ]
    }
  ]
}

Entrada de arquivo

Use file_data junto com filename para enviar conteúdo PDF. file_data deve ser uma URL de dados completa.

json
{
  "model": "gpt-5.4",
  "input": [
    {
      "type": "message",
      "role": "user",
      "content": [
        {
          "type": "input_text",
          "text": "Summarize the key points in this PDF."
        },
        {
          "type": "input_file",
          "file_data": "data:application/pdf;base64,JVBERi0xLjQKJc...",
          "filename": "report.pdf"
        }
      ]
    }
  ]
}

Entrada de imagem e arquivo

json
{
  "model": "gpt-5.4",
  "input": [
    {
      "type": "message",
      "role": "user",
      "content": [
        {
          "type": "input_text",
          "text": "Give three conclusions based on the image and attachment."
        },
        {
          "type": "input_image",
          "image_url": "https://example.com/chart.png",
          "detail": "high"
        },
        {
          "type": "input_file",
          "file_data": "data:application/pdf;base64,JVBERi0xLjQKJc...",
          "filename": "notes.pdf"
        }
      ]
    }
  ]
}

Saída em streaming

json
{
  "model": "gpt-5.4",
  "stream": true,
  "input": [
    {
      "role": "user",
      "content": [
        {
          "type": "input_text",
          "text": "Explain this diagram step by step."
        },
        {
          "type": "input_image",
          "image_url": "https://example.com/diagram.png"
        }
      ]
    }
  ]
}

Resposta

Respostas sem streaming seguem o estilo OpenAI Responses. Os campos reais podem variar conforme as capacidades do modelo escolhido.

idstring

Identificador exclusivo da resposta.

objectstring

Tipo de objeto da resposta, normalmente response.

created_atinteger

Data e hora de criação.

modelstring

Modelo realmente usado.

outputobject[]

Lista de itens de saída. Itens comuns incluem message, function_call e saídas relacionadas a ferramentas.

usageobject

Estatísticas de uso de tokens, como input_tokens, output_tokens e total_tokens.

Exemplo de sucesso

json
{
  "id": "resp_123",
  "object": "response",
  "created_at": 1766534400,
  "model": "gpt-5.4",
  "output": [
    {
      "type": "message",
      "role": "assistant",
      "content": [
        {
          "text": "The image shows a cat, and the attachment is a document about pet care."
        }
      ]
    }
  ],
  "usage": {
    "input_tokens": 128,
    "output_tokens": 42,
    "total_tokens": 170
  }
}

Resposta em streaming

Quando stream=true, o endpoint retorna Server-Sent Events.

text
event: response.output_text.delta
data: {"type":"response.output_text.delta","delta":"The image"}

event: response.completed
data: {"type":"response.completed","response":{"id":"resp_123"}}

Leia os eventos até response.completed ou até a conexão fechar.

Resposta de erro

Consulte Códigos de erro e solução de problemas para a referência completa, diferenças de protocolo e etapas de diagnóstico.

Erros HTTP gerados pela plataforma usam os campos planos abaixo em vez de um envelope error. Alguns erros do provedor podem manter a estrutura original; erros dentro de um stream SSE já iniciado não seguem este exemplo de resposta HTTP.

json
{
  "code": 40000,
  "message": "Insufficient credit. Required: 30000, Available: 20000",
  "type": "api_error"
}

Observações

  • O endpoint Responses usa input, não messages. Se o cliente envia apenas messages, use /openai/v1/chat/completions.
  • Entrada de imagem usa input_image; image_url deve ser uma URL pública http:// ou https://. URLs de dados Base64 não são suportadas para imagens.
  • Entrada de arquivo usa input_file. Para PDFs, use file_data e filename; file_data deve ser uma URL data:application/pdf;base64,... completa.
  • Entrada/saída de áudio, ferramentas de geração de imagens, busca de arquivos e outras capacidades avançadas dependem do modelo escolhido e dos recursos disponíveis.
  • Os campos desta página formam o contrato público atual de requisições Responses; não presuma que campos não listados estejam disponíveis.
  • /openai/responses é o caminho público recomendado.
  • /v1/responses segue o mesmo contrato público de requisição e resposta.
  • /compat/v1/responses segue o mesmo contrato público de requisição e resposta.
  • /openai/v1/responses segue o mesmo contrato público de requisição e resposta.