完成第一次 API 请求
采集采用异步任务:先创建任务,再查询状态,成功后读取保存结果。
创建 API 密钥
在控制台生成密钥并立即保存。
提交网页地址
使用浏览器或自动采集模式。
读取采集结果
轮询任务直至成功,然后获取结果。
1. 创建 API 密钥
密钥以 fb_live_ 开头。FetchBeam 只保存指纹,完整密钥不会再次显示。
2. 提交采集任务
如果你的系统可能自动重试请求,请设置幂等键,避免重复创建任务。
curl -X POST https://fetchbeam.com/v1/captures \
-H "Authorization: Bearer fb_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: capture-products-001" \
-d '{
"url": "https://example.com/products",
"mode": "browser",
"outputs": ["html", "text", "extract"],
"goal": "Product name, price and link"
}'{
"success": true,
"task_id": "6d06c8e8-…",
"status": "QUEUED",
"created_at": "2026-09-30T02:18:00.000Z",
"retry_after": 1
}身份认证
每个 /v1 请求都要在 Bearer 请求头中携带 API 密钥。不要把密钥放进前端代码或浏览器网址。
当前可用的公开 API
这里只列出已经实现的接口。尚在规划中的字段不会混进示例,复制后可直接用于真实接入。
/v1/capturesCreate a durable capture task/v1/tasksList tasks; filter by status or search with q/v1/tasks/{task_id}Read status and metadata/v1/tasks/{task_id}/resultRead the saved result after SUCCESS/v1/tasks/{task_id}/cancelCancel an unfinished task/v1/batchesCreate an ordered batch/v1/usageRead current usage and balance/v1/credit-ledgerRead the account Credit ledger/v1/packagesRead package options and the active package/v1/packagesBuy a package with purchased Credits; requires Idempotency-Key/v1/vouchers/redeemRedeem a one-time Credit voucher创建采集
POST /v1/captures 会立即返回任务 ID。auto 和 browser 目前都会使用托管浏览器节点。
/v1/captures202| 字段 | Type | 说明 |
|---|---|---|
url | string必填 | Public HTTP or HTTPS URL, up to 2,048 characters |
mode | auto | browser可选 | Capture mode; defaults to auto |
outputs | string[]可选 | Any of html, text, extract |
goal | string可选 | Plain-language collection goal, up to 1,000 characters |
allow_payg_fallback | boolean可选 | When a package is exhausted, explicitly allow 2-Credit pay-as-you-go capture |
托管浏览器采集、HTML、文本、确定性 Extract 输出、持久化任务、幂等请求和批量导出。
直连 HTTP、截图、请求级 Cookie、代理与等待条件,以及由 API 直接触发的 AI 整理。现在请不要提交这些字段。
任务状态
任务资源是状态判断的唯一依据。建议每 3 秒查询一次;如果 Retry-After 要求等待更久,以响应头为准。
/v1/tasks/{task_id}PENDING → QUEUED → STARTING → RUNNING → SUCCESS / FAILED / TIMEOUT / CANCELED/v1/tasks/{task_id}/result任务进入 SUCCESS 后,可读取保存的 HTML、文本和确定性 Extract 输出。request_headers 仅对有效的 Pro / Business 套餐返回;request_headers_access 标明可用状态。 网页文件保留 24 小时,请及时下载。 HTTP 410 / RESULT_EXPIRED: 网页文件已过期,无法查看或下载。请重新采集。轮询任务并读取结果
进入任意终态后都应停止轮询。只有 SUCCESS 才读取 /result;其他状态会返回 RESULT_UNAVAILABLE。
const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
let task;
do {
const response = await fetch(
"https://fetchbeam.com/v1/tasks/6d06c8e8-…",
{ headers: { Authorization: "Bearer fb_live_YOUR_API_KEY" } }
);
({ task } = await response.json());
if (["FAILED", "TIMEOUT", "CANCELED"].includes(task.status)) {
throw new Error(task.error_message || "Capture " + task.status);
}
if (task.status !== "SUCCESS") await delay(3000);
} while (task.status !== "SUCCESS");
const result = await fetch(
"https://fetchbeam.com/v1/tasks/" + task.id + "/result",
{ headers: { Authorization: "Bearer fb_live_YOUR_API_KEY" } }
).then((response) => response.json());AI 整理
AI 整理目前在登录后的控制台中运行,并且要先完成网页采集。goal 会随任务保存并指导分析,但仅通过公开 API 创建任务不会自动调用模型。
批量采集
一次创建多个持久采集任务,查看有序进度、重试失败项,并将成功结果合并下载。
/v1/batchesCreate an ordered batch/v1/batches/{batch_id}Read progress and items/v1/batches/{batch_id}/retryRetry one failed item/v1/batches/{batch_id}/cancelCancel unfinished items/v1/batches/{batch_id}/export?format=csvDownload successful results/v1/batches/{batch_id}/export?format=jsonlDownload JSON Lines只能重试 FAILED 或 TIMEOUT 项,并会为替换任务重新预留额度。
成功结果可以导出为 CSV、JSON 或 JSONL。
创建一个批次
curl -X POST https://fetchbeam.com/v1/batches \
-H "Authorization: Bearer fb_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: batch-products-001" \
-d '{
"name": "Supplier pages",
"urls": [
"https://example.com/products/1",
"https://example.com/products/2"
],
"outputs": ["html", "text", "extract"]
}'额度与限制
浏览器采集成功扣 2 Credits,或扣 1 次有效套餐的采集次数;AI 智能提取按量成功扣 2 Credits;有效套餐 Developer / Pro / Business 分别为 2 / 1 / 0 Credits/次。失败任务会释放预留。
默认限制与试用额度
错误处理
错误响应会返回稳定错误码和 X-Request-Id。需要协助时,请一并提供该响应头。
{
"success": false,
"code": "INVALID_REQUEST",
"error": "A readable message"
}| HTTP | Code | 说明 |
|---|---|---|
| 400 | INVALID_REQUEST | 请求体或参数无效。 |
| 401 | INVALID_API_KEY | Bearer 密钥缺失、无效或已撤销。 |
| 402 | INSUFFICIENT_CREDITS | 账户可用 Credits 不足。 |
| 404 | RESULT_UNAVAILABLE | 任务还没有可读取的保存结果。 |
| 409 | TASK_NOT_RETRYABLE | 当前资源状态不允许该操作。 |
| 413 | BODY_TOO_LARGE | 请求体或生成的导出文件过大。 |
| 422 | FEATURE_NOT_AVAILABLE | 请求的引擎或功能尚未开放。 |
| 429 | RATE_LIMITED | 请等待后再提交请求。 |
| 503 | SERVICE_UNAVAILABLE | 临时故障请使用指数退避重试。 |