# curl：在终端里使用 LLM API

> 兼容 OpenAI 的 LLM API 终端配方：用 curl 和 jq 发起 chat completion、从文件发起请求、流式、模型列表和剩余积分。

- URL: https://llmwithcrypto.com/zh/docs/curl/
- 最后更新: 2026-10-23
- 发布者: LLMwithCrypto (https://llmwithcrypto.com)

每次调用都是带 JSON body 的普通 HTTPS，所以用 curl 就足以测试 API 密钥、比较两个模型或写个快速脚本。`jq` 让 JSON 变得可读；两者在大多数系统上都有，或一条命令即可安装。

**快速回答 — 如何用 curl 调用 LLMwithCrypto？**

向 `https://llmwithcrypto.com/api/v1/chat/completions` 发送 POST，带上 `-H "Authorization: Bearer $LLMWITHCRYPTO_API_KEY"`、JSON 内容类型和一个包含 `model` 和 `messages` 的 body。**LLMwithCrypto** 返回 OpenAI 响应对象；把它管道给 `jq`，打印回答和 token 计数。加上 `-N` 和 `"stream": true` 可以看到文本实时到达，如 2026 年 10 月 23 日文档所述。

## 如何只设置一次密钥？

在你的 shell 会话中导出它，这样每条命令都能用，同时让它远离 shell 历史记录和共享脚本：

- **Linux 和 macOS：** 在终端里 `export LLMWITHCRYPTO_API_KEY=…`，或写入一个由脚本加载、且从不提交的 `.env` 文件。
- **Windows PowerShell：** `$env:LLMWITHCRYPTO_API_KEY = "…"`，然后在 Git Bash 或 WSL 中运行命令，或调整引号写法。

为每个应用、agent 或队友各建一个 API 密钥，并可在 dashboard 中单独吊销任意一个，不影响其他密钥。

*一个简短回答及其 token 计数*

```bash
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"'

```

## 如何避免引号问题？

把 body 放进文件。提示词里只要出现撇号或美元符号，shell 引号和 JSON 引号就会互相打架；用文件可以两者都避开。`--data @request.json` 按原样发送文件。

*从文件读取的请求*

```bash
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'

```

## 如何查看流式返回的回答？

`-N` 会关闭 curl 的输出缓冲，因此每个 server-sent event 一到达就会打印出来。你会看到原始的 `data:` 行；[流式页面](https://llmwithcrypto.com/zh/docs/streaming/) 对它们有说明。

*流式回答，原始事件*

```bash
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
  }'

```

## 如何列出模型并查询积分？

这两个调用都免费。第一个每行打印一个 model id，可直接用于 `model` 字段；第二个打印剩余积分，以美元计。

*Model id*

```bash
curl -s "https://llmwithcrypto.com/api/v1/models" \
  -H "Authorization: Bearer $LLMWITHCRYPTO_API_KEY" | jq -r '.data[].id'

```

*剩余积分*

```bash
curl -s "https://llmwithcrypto.com/api/v1/credits" \
  -H "Authorization: Bearer $LLMWITHCRYPTO_API_KEY" | jq -r '.balance_usd'

```

## 如何在终端中查看错误？

加上 `-w "\nHTTP %{http_code}\n"` 可在 body 之后打印状态。错误 body 是一个小的 JSON 对象，带有一个 `code` 字段，例如 `invalid_api_key`、`insufficient_balance` 或 `model_not_found`；[错误页面](https://llmwithcrypto.com/zh/docs/errors/) 对每一种都有说明。使用 `jq` 时，`.error.code // empty` 会在有错误码时打印它，没有则什么都不打印，这让脚本很容易做分支判断。

错误不产生费用。按 token 从余额扣费：输入和输出 token 由模型自己的 tokenizer 计数，按该模型每 1M token 的价格计费。以错误结束的调用不收费。

## 可以用 curl 编写批处理脚本吗？

对于少量请求，用 shell 循环遍历文件就够：每个文件一个 JSON body，每个文件一次 curl，结果写在旁边。保持顺序执行，或用 `xargs -P 4` 一次跑几个，以确保不超过 rate limit。每个账户都有每分钟请求数和 token 上限，显示在 dashboard 中；联系 support 可以调高。

对于更大的量，重试和并发在代码里更容易实现：[Python](https://llmwithcrypto.com/zh/docs/python/) 和 [Node.js](https://llmwithcrypto.com/zh/docs/node/) 页面提供了现成的批处理示例，带有并发上限。

## curl：常见问题

### 为什么我会收到 401 错误？

key 缺失、拼写错误或被撤销，或者该变量没有在这个 shell 中设置。运行 `echo ${#LLMWITHCRYPTO_API_KEY}` 检查它不是空的。

### 如何快速比较两个模型？

把同一个文件跑两次，只改 `model`，例如 `deepseek-v4-pro` 和 `gpt-oss-120b`；`usage` 行会显示每个回答消耗了多少 token。

### 我的 prompt 会被存储吗？

不会。我们不保存你的提示词或模型的回答：响应一旦发出，其文本即消失。每次调用只留一行日志，记录时间、账户、模型和 token 数量，30 天后删除。

---

LLMwithCrypto: LLMwithCrypto 是一个兼容 OpenAI 的开放权重模型 LLM API，涵盖 DeepSeek V4 Pro、DeepSeek V4.1 Flash、DeepSeek R1、Qwen3.5 397B A17B、Qwen3 235B A22B Instruct、gpt-oss-120b、gpt-oss-20b、GLM-4.7、Llama 3.3 70B Instruct、Gemma 4 31B、Mistral Large 3、Mistral Small 4，按 token 从预付加密货币余额中扣费，价格比公共托管商的中位价低 5%。无需 KYC：无需身份证件、无需自拍、无需文件。不存储提示词和输出。
