Primeros pasosGuía
Primera solicitud a la API en VS Code: un archivo .http, clave desde .env
Envía tu primera chat completion a CheapTokens desde VS Code con la extensión REST Client, mantén la clave fuera de git y encuentra la respuesta y el uso de tokens.

En esta página
Puedes enviar tu primera solicitud a CheapTokens sin salir de VS Code: instala la extensión REST Client, escribe un archivo .http, guarda la clave en un .env junto a él y pulsa Ctrl+Alt+R. La respuesta se abre en un panel junto al archivo, y el texto y el recuento de tokens son dos campos que puedes ver de un vistazo.
Si ya tienes un editor abierto, eso supera a instalar otra aplicación solo para decir "Hola" a un modelo. Y la solicitud permanece en un archivo de texto plano, así que puedes volver a ejecutarla mañana o confirmarla (sin la clave) para un compañero. Otras formas de enviar la misma solicitud están en Primera solicitud con HTTPie y Tu primera solicitud a la API con CheapTokens.
Instala la extensión y lleva la clave a .env#
REST Client es la extensión humao.. En VS Code pulsa F1, escribe ext install, busca rest-client e instálala. (Verificado con el README de la extensión el 9 de noviembre de 2026.)
Ahora la clave. El README describe {{$dotenv NAME}}: lee un valor de un archivo .env que está en el mismo directorio que tu archivo .http. Eso es exactamente lo que queremos, porque la clave nunca aparece en el archivo de solicitud. Crea una carpeta para el experimento y pon dos archivos en ella.
.env:
CHEAPTOKENS_API_KEY=paste-your-key-here.gitignore:
.envCrea la clave en tu cuenta de CheapTokens y pégala en lugar del marcador de posición. Por qué importa la línea de ignorar, y qué hacer si una clave acaba alguna vez en un commit, está en Guardar una clave de API de forma segura.
Poner en orden
Pon la configuración en el orden correcto
Arrastra los elementos o usa las flechas
- Instala la extensión REST Client
- Añade .env a .gitignore
- Pon la clave en .env junto al archivo .http
- Pulsa Ctrl+Alt+R sobre la solicitud
Escribe el archivo .http#
Crea first.http en la misma carpeta. La sintaxis es breve: una línea de solicitud (POST URL HTTP/, el método es opcional y por defecto es GET), líneas de cabecera Name: value hasta la primera línea vacía, y luego el cuerpo tras una línea en blanco. Las solicitudes se separan con una línea de tres o más #.
### First request
POST https://api.cheaptokens.dev/v1/chat/completions
Authorization: Bearer {{$dotenv CHEAPTOKENS_API_KEY}}
Content-Type: application/json
{
"model": "zai-org/GLM-5.3-Flash",
"messages": [{ "role": "user", "content": "Hello" }]
}Tres cosas que notar. La dirección es la base de la API de CheapTokens, https:/, más /. El modelo se escribe con su id completo, zai-: un modelo con contexto de 390K que puede escribir hasta 8.192 tokens por respuesta. Y la clave es solo un marcador de posición {{$dotenv …}}, así que este archivo es seguro para confirmar.

Si tu configuración no recoge el archivo .env, el README también describe {{$processEnv NAME}}, que lee una variable del entorno de tu máquina en su lugar.
Envíala y encuentra la respuesta#
Haz clic en "Send Request" encima de la línea de solicitud, o pulsa Ctrl+Alt+R (Cmd+Alt+R en macOS). También puedes hacer clic derecho o usar F1. La respuesta se abre en un panel separado. Si prefieres una pestaña de editor normal en la que puedas buscar y plegar, establece rest- en true en los ajustes.
La respuesta es el JSON estándar de chat-completions. Dos lugares importan el primer día:
choices[0].es el texto de la respuesta. Junto a él,message. content finish_reasonte dice por qué se detuvo el modelo.lengthsignifica que la respuesta se cortó por el límite de tokens.usagecontiene los recuentos de tokens de esta solicitud: tokens que enviaste y tokens que escribió el modelo. Esto es lo que pagas, así que míralo cada vez.

Pruébalo tú mismoPruébalo: ¿cómo ves que una respuesta se cortó?Mostrar respuesta
Mira finish_reason en la respuesta. Si dice length, el modelo alcanzó el límite de tokens antes de terminar. Añade una línea "max_tokens" al cuerpo, o auméntalo, y envía de nuevo.
Para hacerte una idea del dinero: digamos que envías esta solicitud 100 veces con unos 1.000 tokens de entrada y 300 de salida (una suposición para el ejemplo, no una medición).
| Modelo | Entrada $/1M | Salida $/1M | Por solicitud | 100 solicitudes | OpenRouter, 100 solicitudes |
|---|---|---|---|---|---|
| GLM-5.3-Flash | $0.02 | $0.04 | $0.000032 | $0.0032 | $0.0058 |
| DeepSeek-V4-Flash | $0.015 | $0.10 | $0.000045 | $0.0045 | $0.0112 |
| MiniMax-M2.7 | $0.05 | $0.15 | $0.000095 | $0.0095 | $0.114 |
1000 tokens de entrada y 300 tokens de salida por solicitud. Los precios por 1M de tokens son actuales y cambian junto con nuestras tarifas; la columna de OpenRouter muestra precios de referencia para la misma carga de trabajo.
La tabla muestra el precio en vivo de esa carga de trabajo en cada modelo, con una columna de OpenRouter para comparar. Un pequeño "Hola" cuesta mucho menos.
Cambia el modelo en una línea#
La parte práctica de un archivo de texto plano: cambia una línea y envía de nuevo. Sustituye el id del modelo por deepseek- (contexto de 380K, hasta 32.768 tokens por respuesta, un precio a cualquier hora del día, en total más barato que OpenRouter contando entrada y salida juntas) y pulsa Ctrl+Alt+R una vez más. Mismo cuerpo, misma clave, una respuesta diferente y un usage diferente.
¿Quieres conservar ambos? Pega una segunda solicitud debajo de una línea ### con el otro id de modelo. Cada solicitud tiene su propio enlace Send Request, así que puedes ejecutarlas una tras otra y comparar. ¿No estás seguro de un id? Lista los modelos con GET /v1/models muestra las cadenas exactas.
Si no funciona#
Emparejar los pares
Relaciona el síntoma con la causa
Toca un elemento de la izquierda, luego su par
- 401 UnauthorizedLa clave está vacía o es incorrecta, a menudo porque .env no está en la misma carpeta que el archivo .http
- 404 Not FoundUn error tipográfico en la ruta de la URL o en el id del modelo
- La respuesta se detiene a mitad de frase, finish_reason es lengthSe alcanzó el límite de tokens, aumenta max_tokens
Para los dos primeros, API 401 o 404: clave, URL base o id de modelo incorrectos recorre las comprobaciones. Los detalles completos de la solicitud están en la documentación de CheapTokens, y los precios actuales están en la página de precios.
Ese es todo el flujo de trabajo: un archivo, una clave en .env, un atajo. A partir de aquí puedes añadir un mensaje de sistema, cambiar max_tokens o convertir el mismo cuerpo en código en cualquier lenguaje.



