Voltar ao blog

Primeiros passosGuia

Primeira requisição ao CheapTokens no Hoppscotch: chave em um ambiente

Envie sua primeira chat completion pelo cliente web do Hoppscotch: URL base e chave em um ambiente, um corpo JSON e onde ler a resposta e o uso.

Por CheapTokens TeamPublicado em 5 min de leitura

Requisição no Hoppscotch: POST para a URL base de um ambiente com uma variável de chave Bearer
Nesta página
  1. Coloque a URL base e a chave em um ambiente
  2. Monte a requisição
  3. Pressione Send e leia a resposta
  4. Quanto custa uma requisição de teste
  5. Se não funcionar
  6. Para onde ir agora

Você pode fazer sua primeira requisição ao CheapTokens no Hoppscotch sem instalar nada ou escrever código: abra o app web, coloque a URL base e sua chave em um ambiente, monte uma requisição POST /chat/completions, pressione Send. A resposta e as contagens de tokens aparecem no painel de resposta.

A única coisa que vale a pena fazer com cuidado é a chave. Se você colá-la direto na requisição, ela acaba em cada screenshot e em cada link compartilhado. Uma variável de ambiente a mantém em um só lugar.

Este guia segue a documentação oficial do Hoppscotch (verificada em 9 de novembro de 2026; as páginas não trazem versão nem data). Do lado da API, a URL base do CheapTokens é https://api.cheaptokens.dev/v1, que fala o formato OpenAI Chat Completions. Mais sobre ambos na documentação do CheapTokens.

Coloque a URL base e a chave em um ambiente#

O Hoppscotch tem um ícone de Environments na barra lateral. Clique nele, crie um novo ambiente, dê o nome cheaptokens e adicione duas variáveis:

Variável Tipo Valor
baseURL Regular https://api.cheaptokens.dev/v1
api_key Secret sua chave do CheapTokens

Por que dois tipos? Segundo a documentação do Hoppscotch, uma variável Regular é visível para todos que podem ver o ambiente, enquanto uma Secret é mascarada, nunca sincronizada nem compartilhada, e fica de fora de exportações e duplicações. Uma chave pertence ao segundo tipo: insira-a como valor da variável. Depois selecione o ambiente cheaptokens para que a requisição possa vê-lo.

Nas requisições, uma variável é escrita como <<name>>: <<baseURL>> e <<api_key>>. É esse o truque inteiro.

Os campos da requisição a preencher no Hoppscotch: URL, header e corpo JSON (esquemático, não é um screenshot)
A requisição como configurada neste guia: método, URL do ambiente, header, corpo JSON.

Monte a requisição#

REST é o modo ativo quando você abre o Hoppscotch. Três coisas para configurar.

Método e URL. Escolha POST no dropdown e insira:

text
<<baseURL>>/chat/completions

A chave. A aba Authorization do Hoppscotch tem um tipo Bearer e adiciona o token à requisição como Bearer <token>. A documentação não diz se <<api_key>> funciona dentro desse campo de token, então use o caminho seguro: abra a aba Headers e adicione um header.

text
Authorization: Bearer <<api_key>>

Você não substitui a variável manualmente em lugar nenhum, e a chave real nunca aparece na requisição que você vê na tela.

O corpo. Abra a aba Body, escolha application/json no dropdown Content Type (a documentação o lista como o tipo para conteúdo em formato JSON) e cole:

json
{
  "model": "deepseek-ai/DeepSeek-V4-Flash-0731",
  "messages": [
    {"role": "user", "content": "Explain what a token is in one sentence."}
  ],
  "max_tokens": 200
}

Use o id completo deepseek-ai/DeepSeek-V4-Flash-0731. O nome curto de uma lista de preços não será aceito pela API. O DeepSeek-V4-Flash tem contexto de 380K e até 32.768 tokens de saída por resposta, então 200 é um limite deliberadamente pequeno para um teste. Quer outro modelo? Troque esse único campo por zai-org/GLM-5.3-Flash (contexto de 390K, até 8.192 tokens de saída) e envie de novo.

Lista de verificação

Antes de pressionar Send

Pressione Send e leia a resposta#

Clique em Send. A seção de resposta mostra o código de status, o corpo, os headers, os cookies e o tempo. Você quer 200 e um corpo JSON no formato de chat completion da OpenAI. Dois lugares importam:

  • choices[0].message.content é a resposta do modelo.
  • usage tem prompt_tokens (o que você enviou) e completion_tokens (o que o modelo escreveu). É por isso que você é cobrado, então é aqui que você verifica se uma requisição custou o que esperava.

Observe também choices[0].finish_reason. stop significa que o modelo terminou por conta própria. length significa que seu max_tokens cortou a resposta. Se você vir isso em uma pergunta de uma frase, o limite está baixo demais. Há uma explicação mais longa em Resposta da IA cortada? Corrija finish_reason "length".

Onde olhar na resposta
Campos a ler no corpo da resposta. Os valores são placeholders, não uma resposta gravada.

Salve a requisição em uma coleção e ela fica reutilizável: mude a mensagem, pressione Send de novo.

Quanto custa uma requisição de teste#

Pegue uma pergunta curta e uma resposta curta: digamos 30 tokens de entrada e 150 de saída. Uma requisição assim custa $0.000015, e a tabela ao vivo abaixo conta 100 delas com entrada e saída juntas, ao lado do OpenRouter.

Modelo Por solicitação 100 solicitações OpenRouter, 100 solicitações
GLM-5.3-Flash $0.0000066 $0.00066 $0.0013
DeepSeek-V4-Flash $0.000015 $0.0015 $0.0023
MiniMax-M2.7 $0.000024 $0.0024 $0.0288

30 tokens de entrada e 150 tokens de saída por solicitação. Os preços por 1M de tokens são atuais e mudam junto com nossas tarifas; a coluna OpenRouter mostra preços de referência para a mesma carga de trabalho.

No total, com entrada e saída contadas juntas, isso é mais barato que o OpenRouter para o mesmo modelo. Seus próprios números serão diferentes, então arraste os sliders para o seu caso:

Calculadora de custos

Cem requisições de teste como a acima

Tokens de entrada por solicitação: 30 · Tokens de saída por solicitação: 150 · Solicitações por dia: 100

ModeloPor diaPor mês
GLM-5.3-Flash$0.00066$0.0198
DeepSeek-V4-Flash$0.0015$0.0464
MiniMax-M2.7$0.0024$0.072

Os preços são fixos por modelo, sem preço de horário de pico, e um único saldo cobre todos os modelos. As tarifas atuais estão na página de preços.

Se não funcionar#

A maioria das falhas de primeira requisição em um cliente REST vem de três campos. Relacione o sintoma à causa:

Emparelhar os pares

Relacione cada sintoma à sua causa

  • 401 UnauthorizedA chave está ausente ou errada, ou o header Authorization não está sendo enviado
  • 404 Not FoundO caminho da URL ou o id do modelo está errado
  • finish_reason é "length"O limite max_tokens cortou a resposta

Para os dois primeiros há um passo a passo completo em Erro 401 ou 404 na API: chave, URL base ou id de modelo errado. Se você não tem certeza de qual id usar, liste os modelos com GET /v1/models.

Para onde ir agora#

A mesma requisição funciona em outros clientes: veja a versão para Postman ou o arquivo .http do VS Code. Se você prefere manter chaves fora de arquivos e shells, armazene uma chave de API com segurança cobre o básico. Os ids de modelo e o endpoint compatível com OpenAI estão descritos na documentação.