# 命令行

dataxapi 命令行有 8 个命令：find、show、call、more、balance、run、login、setup。找接口和看价格不花钱，也不用 Key。

## 安装

```bash
npm install -g dataxapi
```

需要 Node 20 及以上。它是一个文件，不用再装别的；每个请求都经 TypeScript SDK 发出。不想安装的，把 `dataxapi` 换成 `npx dataxapi` 来跑：`npx dataxapi login`。

## 找、看、调

### 1. 找接口

```bash
dataxapi find "TikTok 视频搜索"
```

不收费，不用 Key。没有匹配就明说没有，不拿相近的凑数。

### 2. 看合同和价格

```bash
dataxapi show tiktok.videos.search
```

不收费，不用 Key。可以一次给几个编号。

### 3. 调用

```bash
dataxapi call tiktok.videos.search 'query=space station' --max-price 0.002
```

要 Key；价格是每次 $0.0020。带上 `--max-price`，可能超过它的调用在执行前就被拒。打印的第一行写着回来几条、扣了多少、余额，以及取下一页的完整命令。

## 全部命令

| 命令 | 要 Key 吗 | 扣费吗 | 做什么 |
| --- | --- | --- | --- |
| `find <words...>` | 不要 | 不扣 | 用一句话找接口，中英文都行：最多 5 个，各带必填参数、价格和一条能直接跑的调用。`--platform`、`--category` 可以缩小范围。 |
| `show <capability> [<capability> ...]` | 不要 | 不扣 | 一个或几个接口的完整合同：参数、字段、翻页、价格和单次最高、现在可不可用。 |
| `call <capability> [name=value ...]` | 要 | 扣 | 取一页。参数写成 `name=value`，列表用逗号隔开（`ids=1,2`）。 |
| `more <id>` | 要 | 不扣 | 一次调用后来怎么样了、扣了多少；续读被截断的结果，或者换一档重读。编号是 `call` 打印的结果编号，或报错里的请求号。 |
| `balance` | 要 | 不扣 | 余额、这把 Key 的上限和已花、限流额度。 |
| `run <task> [name=value ...]` | 要 | 扣 | 逐步跑一个任务。先显示最多调几次、最多花多少并询问；`--plan` 只看计划，不要 Key，不扣费。 |
| `login` | 不要 | 不扣 | 把这台机器连到你的账户：打印一个链接和一个核对码，等你在已登录的浏览器里点同意，然后存下一把命令行专用的 Key。 |
| `setup` | 不要 | 不扣 | 给本机的编程代理写好 MCP 配置和基础技能。 |

每个命令都有 `--help`。

## Key、输出、翻页

- `DATAXAPI_API_KEY`: Key 从这个环境变量读。没有就读配置文件 `~/.config/dataxapi/config.json`，`dataxapi login` 会把 Key 存在那里。任何输出都不打印 Key。
- `--json`: 打印服务的原始 JSON，报错也是。不带它时打印的是给人和代理读的文字：一行摘要，后面一行一条数据，精简档，整段约 20 KB；剩下的用 `dataxapi more <id>` 续读，不扣费。
- `--out <file>`: 把完整回答写进文件，只打印摘要那一行。
- `--pages <n>`: 最多翻 n 页，每页各是一次调用、各扣各的。
- `--max-spend <usd>`: 配合 `--pages`：会让总额超过这个数的那一页不去取。
- `--idempotency-key <key>`: 命令行每次调用都自己生成一个键，回答丢了的时候把它打印出来；带着它重发就是同一次调用，不会扣第二次。

```bash
dataxapi call tiktok.videos.search 'query=space station' --pages 3 --max-spend 0.006 --out page.json
```

## 退出码

一个数一个意思，脚本和代理不用读文字就知道下一步该做什么。

| 退出码 | 意思 | 接下来 |
| --- | --- | --- |
| 0 | 完成。 |  |
| 1 | 命令行自己出了错。 | 扣没扣只以已经打印出来的为准。 |
| 2 | 执行前就被拒，没扣费：用法不对、没有 Key、参数错、超出价格上限、余额或上限不够、被限流。 | 改了再发，不要原样重发。 |
| 3 | 执行了、失败了，没扣费。 | 报错写明能不能重试。`not_found` 不要重试。 |
| 4 | 不知道扣没扣：这次调用可能已经执行。 | 先用 `dataxapi more <id>` 查，或者带同一个 `--idempotency-key` 重发。 |
| 5 | 一轮任务中途停了：到了预算、额度过期，或某一步失败。 | 账单写明已经扣了多少；`--resume` 接着跑，已结算的不再扣。 |

## 给编程代理配好

```bash
dataxapi setup
dataxapi setup --client claude-code,cursor
```

`dataxapi setup` 给 Claude Code、Codex、Cursor 各写两样东西：[MCP](https://dataxapi.com/zh/docs/mcp/) 的配置，和一个教代理“找、看价格、调用”的基础技能。不写 `--client` 时只配本机找得到的那几个。文件里原有的内容都留着，只换掉我们自己那一条。

> 不写 Key：配置从代理运行环境的 `DATAXAPI_API_KEY` 读。只有 `dataxapi login` 存下的那把 Key（它不在任何环境变量里）才会被写进去，而且要你自己带上 `--write-key`。

---

目录修订号 c48ce454ae6c4c65。 [网页版](https://dataxapi.com/zh/docs/cli/)
