Sin KYC — sin ID, sin selfie, sin documentos. Paga con criptomonedas: BTC, USDT, USDC, ETH, SOL, LTC
Idioma: Español
Consigue una clave API

Documentación · curl

curl: la API de LLM desde una terminal

Cada llamada es HTTPS simple con un cuerpo JSON, así que curl basta para probar una clave, comparar dos modelos o automatizar una tarea rápida. jq hace legible el JSON; ambos vienen con la mayoría de los sistemas o se instalan con un solo comando.

Última actualización: · 4 min de lectura

Respuesta rápida

¿Cómo llamo a LLMwithCrypto con curl?

Envía un POST a https://llmwithcrypto.com/api/v1/chat/completions con -H "Authorization: Bearer $LLMWITHCRYPTO_API_KEY", un tipo de contenido JSON y un cuerpo que contenga model y messages. LLMwithCrypto devuelve el objeto de respuesta de OpenAI; pásalo a jq para imprimir la respuesta y los recuentos de tokens. Añade -N y "stream": true para ver el texto llegar en vivo, como se documenta el 23 de octubre de 2026.

¿Cómo configuro la clave una vez?

Expórtala en tu sesión de shell para que todos los comandos puedan usarla, y manténla fuera de tu historial de shell y de scripts compartidos:

  • Linux y macOS: export LLMWITHCRYPTO_API_KEY=… en la terminal, o en un archivo .env que carguen tus scripts y que nunca se suba al repositorio.
  • Windows PowerShell: $env:LLMWITHCRYPTO_API_KEY = "…", luego ejecuta los comandos en Git Bash o WSL, o adapta las comillas.

Crea una clave API por app, agente o compañero de equipo y revoca cualquiera desde el panel sin tocar las demás.

Una respuesta corta y sus recuentos de tokens
curl -s "https://llmwithcrypto.com/api/v1/chat/completions" \
  -H "Authorization: Bearer $LLMWITHCRYPTO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "gpt-oss-20b", "messages": [{"role": "user", "content": "One word for fast?"}], "max_tokens": 20}' \
  | jq -r '.choices[0].message.content, "\(.usage.prompt_tokens) in, \(.usage.completion_tokens) out"'

¿Cómo evito problemas de comillas?

Pon el cuerpo en un archivo. Las comillas del shell y las de JSON se pelean en cuanto un prompt contiene un apóstrofo o un signo de dólar; un archivo evita ambos. --data @request.json envía el archivo tal cual.

Una solicitud leída desde un archivo
cat > request.json <<'EOF'
{
  "model": "deepseek-v4-pro",
  "messages": [
    {"role": "system", "content": "You review shell scripts."},
    {"role": "user", "content": "Is it safe to run rm -rf \"$DIR\"/ when DIR may be empty?"}
  ],
  "max_tokens": 300
}
EOF
curl -s "https://llmwithcrypto.com/api/v1/chat/completions" \
  -H "Authorization: Bearer $LLMWITHCRYPTO_API_KEY" \
  -H "Content-Type: application/json" \
  --data @request.json | jq -r '.choices[0].message.content'

¿Cómo veo una respuesta en streaming?

-N desactiva el búfer de salida de curl, así que cada evento enviado por el servidor se imprime en cuanto llega. Verás líneas data: en bruto; la página de streaming explica qué significan.

Respuesta en streaming, eventos en bruto
curl -sN "https://llmwithcrypto.com/api/v1/chat/completions" \
  -H "Authorization: Bearer $LLMWITHCRYPTO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-v4.1-flash",
    "messages": [{"role": "user", "content": "Write a haiku about latency."}],
    "stream": true,
    "stream_options": {"include_usage": true},
    "max_tokens": 120
  }'

¿Cómo listo los modelos y compruebo el crédito?

Ambas llamadas son gratuitas. La primera imprime un id de modelo por línea, listo para el campo model; la segunda imprime el crédito restante en dólares.

Ids de modelos
curl -s "https://llmwithcrypto.com/api/v1/models" \
  -H "Authorization: Bearer $LLMWITHCRYPTO_API_KEY" | jq -r '.data[].id'
Crédito restante
curl -s "https://llmwithcrypto.com/api/v1/credits" \
  -H "Authorization: Bearer $LLMWITHCRYPTO_API_KEY" | jq -r '.balance_usd'

¿Cómo veo un error en la terminal?

Añade -w "\nHTTP %{http_code}\n" para imprimir el estado después del cuerpo. El cuerpo de un error es un objeto JSON pequeño con un campo code, como invalid_api_key, insufficient_balance o model_not_found; la página de errores explica cada uno. Con jq, .error.code // empty imprime el código cuando lo hay y nada en caso contrario, lo que facilita ramificar en los scripts.

Los errores no cuestan nada. Pagas por token desde tu saldo: los tokens de entrada y de salida se cuentan con el tokenizador propio del modelo y se cobran al precio de ese modelo por 1M de tokens. Una llamada que termina en error no cuesta nada.

¿Puedo programar un lote con curl?

Para un puñado de peticiones, un bucle de shell sobre archivos sirve: un cuerpo JSON por archivo, un curl por archivo y los resultados escritos junto a ellos. Hazlo en secuencia, o ejecuta unos pocos a la vez con xargs -P 4, para no superar tu rate limit. Cada cuenta tiene un límite de peticiones y de tokens por minuto, que se muestra en el panel; pídelo a soporte y se puede ampliar.

Para algo más grande, los reintentos y la concurrencia son más sencillos en código: las páginas de Python y Node.js tienen ejemplos de lotes ya listos con un límite de concurrencia.

curl: preguntas frecuentes

¿Por qué recibo un error 401?

La clave falta, está mal escrita o fue revocada, o la variable no está definida en este shell. Ejecuta echo ${#LLMWITHCRYPTO_API_KEY} para comprobar que no está vacía.

¿Cómo comparo dos modelos rápidamente?

Ejecuta el mismo archivo dos veces y cambia solo model, por ejemplo deepseek-v4-pro y gpt-oss-120b; las líneas usage muestran cuánto costó cada respuesta en tokens.

¿Se almacena mi prompt?

No. No guardamos tus prompts ni las respuestas del modelo: una vez enviada una respuesta, su texto desaparece. Cada llamada deja una línea de log con la hora, la cuenta, el modelo y el recuento de tokens, que se borra a los 30 días.

DeepSeek V4 Pro desde $1.254 por 1M de tokens de entrada · sin KYC

Consigue una clave API