概览

databurger 开放 API 提供训练数据链路的程序化访问:检索与采购标准数据集、发布视频评判任务、驱动标注作业、查询场景任务库、查看账本与发票。全部接口基于 HTTPS + JSON。

项目取值
Base URLhttps://aidataburger.com/api/v1
兼容路径https://aidataburger.com/api 与 /api/v1 等价,保留旧调用方兼容
协议与编码HTTPS,请求与响应均为 UTF-8 JSON
鉴权方式会话令牌,请求头 Authorization: Bearer <token>
完整接口清单机器可读版本见 /openapi.json(OpenAPI 3)
当前版本(v1)不提供 API Key / scope 体系,鉴权使用账号登录后的会话令牌。任务与数据集等写操作均由账号角色(需求方 buyer / 产能方 judge)控制权限。

快速开始

登录取令牌

用手机号 + 密码调用 POST /login-password,返回 token。

验证连通性

调用 GET /me 确认令牌有效并拿到账号 ID、角色与余额。

检索或发布

只读的 GET /datasets、GET /scenario-tasks 可直接调用;发布任务 POST /tasks 会从钱包冻结任务款。

驱动到结算

接单 → 提交 → 需求方验收,验收通过后才向产能方入账(见「任务状态机」)。

复制# 1) 登录取令牌
curl -X POST "https://aidataburger.com/api/v1/login-password" \
  -H "Content-Type: application/json" \
  -d '{"phone":"13800000000","password":"********","role":"buyer"}'

# 返回
{ "token": "3f9a1c..."
, "user": { "id": 1, "phone": "13800000000", "role": "buyer", "balance": 4010.0 } }

# 2) 验证令牌
curl "https://aidataburger.com/api/v1/me" -H "Authorization: Bearer $DB_TOKEN"

认证与鉴权

POST/login-password手机号 + 密码登录,推荐用于服务端集成
POST/send-code下发短信验证码(需平台已开通短信通道)
POST/login手机号 + 验证码登录,可指定角色与邀请码
GET/me当前账号信息:ID、角色、余额、实名与二次验证状态
参数类型必填说明
phonestring是手机号
passwordstring是(密码登录)账号密码
codestring是(验证码登录)短信验证码
rolestring否buyer(需求方)/ judge(产能方),默认 judge
totp_codestring否账号开启二次验证时必填(6 位动态码或备用恢复码)
  • 令牌用法:登录后所有请求带 Authorization: Bearer <token>;令牌失效返回 401 {"detail":"未登录或登录过期"},重新登录即可。
  • 登录保护:同一手机号 15 分钟内连续失败 5 次会被临时锁定,期间返回 429。
  • 角色权限:发布任务、充值、购买数据集限 buyer;接单、提交作业限 judge;越权返回 403。
  • 密钥保管:令牌等同于账号凭证,禁止写入浏览器、移动端或客户端代码。

数据集 API

GET/datasets在售数据集列表(无需鉴权)
GET/datasets/{did}数据集详情(含一次通过率)
GET/datasets/{did}/sample免费小样本,用于确认字段结构
GET/datasets/{did}/report质检报告摘要:通过率、一致性、蜜罐题准确率
GET/datasets/mine我已购买的数据集(需 buyer 令牌)
POST/datasets/{did}/buy下单购买,余额不足返回 400
POST/datasets/{did}/extend申请追加授权
POST/datasets/{did}/feedback提交评价
参数位置必填说明
domainquery否数据域过滤:embodied / compliance / ecommerce / auto / finance / medical
ratingbody否评价接口,1–5 的整数
comment / notebody否评价内容 / 追加授权说明
复制# 检索具身智能数据集
curl "https://aidataburger.com/api/v1/datasets?domain=medical"

# 返回(节选)
[ { "id": 6, "title": "医学影像分割标注集", "domain": "medical",
    "formats": ["json","coco"], "price": 5990.0, "samples": 1500, "status": "on" } ]

# 拉取小样本确认字段
curl "https://aidataburger.com/api/v1/datasets/6/sample"

任务 API 与状态机

视频评判任务的完整生命周期:open(待接单)→ assigned(进行中)→ submitted(待验收)→ done(已验收·已结算)。资金只在最后一步入账。

状态含义资金状态
open已发布,等待产能方接单发布时即从需求方钱包冻结任务款
assigned已接单;若被驳回则退回此状态并带 reject_reason持续冻结,不退回、不入账
submitted产能方已提交,等待需求方验收仍未入账
done需求方验收通过此刻才结算入账给产能方
POST/tasks发布任务(buyer);发布即冻结任务款
GET/tasks/open待接单任务列表(judge)
GET/tasks/mine我发布 / 我承接的任务
POST/tasks/{tid}/claim产能方接单(judge)
POST/tasks/evaluate产能方提交评分(judge),不结算
POST/tasks/{tid}/evaluate同上,任务 ID 写在路径中
POST/tasks/{tid}/reject需求方驳回返工(buyer)
POST/tasks/{tid}/accept需求方验收通过(buyer),此时结算
参数类型必填说明
titlestring是任务标题
video_urlstring是待评判视频地址
descstring否任务说明
criteriastring[]否评分维度,缺省为平台五维:内容合规 / 画面质量 / 音频质量 / 语义连贯 / 信息价值
task_idint否/tasks/evaluate 的 body 字段;走 /tasks/{tid}/evaluate 时可省略
scoresobject是各维度评分
notes / flagsstring / array否备注与标记
reasonstring否驳回原因,写入 reject_reason 供产能方查看
计价规则(取自 GET /config):任务款 = 8 + 2 × (维度数 − 1),产能方分成 = 任务款 × (1 − 0.25)。五维任务即任务款 ¥16、分成 ¥12、平台服务费 ¥4。余额不足时发布接口返回 400。
复制# 需求方发布任务
curl -X POST "https://aidataburger.com/api/v1/tasks" \
  -H "Authorization: Bearer $DB_TOKEN" -H "Content-Type: application/json" \
  -d '{"title":"直播切片合规评判","video_url":"https://.../a.mp4","desc":"...","criteria":["内容合规","画面质量","音频质量","语义连贯","信息价值"]}'

# 返回
{ "ok": true, "task_id": 12, "price_total": 16.0, "judge_payout": 12.0, "platform_margin": 4.0 }

# 产能方提交评分 —— 返回中 settled 恒为 false,此时不入账
curl -X POST "https://aidataburger.com/api/v1/tasks/evaluate" \
  -H "Authorization: Bearer $JUDGE_TOKEN" -H "Content-Type: application/json" \
  -d '{"task_id":12,"scores":{"内容合规":5,"画面质量":4,"音频质量":4,"语义连贯":5,"信息价值":4},"notes":"..."}'

# 返回(节选)
{ "ok": true, "status": "submitted", "status_label": "待验收", "settled": false,
  "note": "已提交,等待需求方验收;验收通过后才会结算入账" }

# 需求方验收通过 —— 此时才结算
curl -X POST "https://aidataburger.com/api/v1/tasks/12/accept" -H "Authorization: Bearer $DB_TOKEN"
# 返回:{"ok":true,"status":"done","status_label":"已验收·已结算","settled":true,"payout":12.0}

标注任务 API

GET/labeling/jobs标注作业列表,可用 status 过滤
POST/labeling/jobs创建作业:title、type、payload、assignee_id
POST/labeling/jobs/{jid}/claim认领作业
POST/labeling/jobs/{jid}/submit提交结果:content、scores
POST/labeling/jobs/{jid}/qc质检裁定:decision(approve / reject)、note
GET/labeling/qc-queue待质检队列
GET/labeling/consistency一致性统计

type 取值:video_judge(视频评判)、trajectory(轨迹标注)、pcd_6dof(点云 6DoF 标注)。

场景任务库 API

实体操作 SOP 场景库,公开可读,用于按需选题与定制采集。

GET/scenario-tasks按类目与关键词检索,分页返回
GET/scenario-tasks/meta类目树与总量统计
GET/scenario-tasks/claimed我已认领的场景任务(需登录)
POST/scenario-tasks/{tid}/claim认领场景任务
参数类型默认说明
l1 / l2string空一级 / 二级类目
qstring空关键词,匹配标题与 SOP 正文
limitint50单页条数,超出 1–200 时自动回退为 50
offsetint0偏移量
复制curl "https://aidataburger.com/api/v1/scenario-tasks?l1=%E4%B8%AA%E4%BA%BA%E6%8A%A4%E7%90%86%E4%B8%8E%E5%81%A5%E5%BA%B7&limit=2"

# 返回
{ "total": 6300, "limit": 2, "offset": 0, "items": [
  { "id": 1, "l1": "个人护理与健康", "l2": "健身器械维保",
    "title": "张紧跑步机传动皮带", "sop": "先断开跑步机电源开关...", "status": "open" } ] }

账号与资金 API

GET/ledger资金流水:充值、任务支出、结算收入
GET/invoices发票记录
POST/recharge钱包充值(buyer):amount 须大于 0
GET/withdrawals提现记录
POST/withdraw发起提现
POST/kyc实名认证:real_name、id_card
POST/me/profile更新昵称
POST/me/password设置 / 修改密码
GET/projects项目看板:阶段、进度与是否已有报告
GET/collections采集批次进度
GET/notifications站内通知

平台公开数据

官网首页「实时平台数据」即调用该接口,无需鉴权,可直接接入你的看板。

GET/metrics/public在线标注者、当日完成任务、平均审核时长、一次通过率等
复制curl "https://aidataburger.com/api/v1/metrics/public"

# 返回
{ "online": 101, "today": 0, "review": 18.5, "pass": 92.0,
  "cities": 12, "batches": 4, "updated_at": "2026-10-02T14:41:16.343607" }

投诉与举报

受理号由服务端生成并落库后才返回,前端不得自行构造。

POST/reports提交工单,返回受理号
参数类型必填说明
kind / targetstring否举报类型与被举报对象
detailstring是具体说明,10–5000 字
evidencestring否证据链接
contact_name / contactstring否联系人与联系方式
agreedbool是须为 true,表示已阅读并同意举报须知

个人信息权利受理

对应《隐私政策》第六章的法定权利渠道,无需登录即可提交。受理号由服务端生成并落库后返回。

POST/privacy-requests提交查询/更正/删除/注销/撤回同意/转移/投诉请求
参数类型必填说明
kindstring是取值之一:查询 更正 删除 注销 撤回同意 转移 投诉
identitystring是注册手机号或邮箱,用于核验身份
detailstring是请求内容说明,5–2000 字
contactstring是回执联系方式
agreedbool是须为 true,表示同意按隐私政策处理
复制curl -X POST "https://aidataburger.com/api/v1/privacy-requests" \
  -H "Content-Type: application/json" \
  -d '{"kind":"删除","identity":"13800000000","detail":"申请删除我的账号及个人信息","contact":"13800000000","agreed":true}'

# 返回
{ "ok": true, "ticket": "PR20261002-B4X9", "request_id": 1 }
受理时效为 15 个工作日;请向用户回执受理号以便查询进度。

错误码

HTTP触发场景响应示例处理建议
400业务校验不通过{"detail":"钱包余额不足(需 ¥16,当前 ¥0)"}按 detail 修正参数或先充值
401未携带令牌或令牌已失效{"detail":"未登录或登录过期"}重新调用登录接口
403角色越权{"detail":"仅标注员可接单"}核对账号角色
404资源不存在{"detail":"数据集不存在"}重新检索确认 ID
422参数类型不合法{"detail":[{"loc":["body","scores"],...}]}检查字段类型与必填项
429登录失败过多被临时锁定{"detail":"登录失败次数过多,请 873 秒后再试"}等待锁定解除后重试
5xx服务端异常{"detail":"Internal Server Error"}指数退避重试并联系支持
错误统一返回 FastAPI 标准结构:单条为 {"detail":"..."},参数校验类为 {"detail":[{"loc":[...],"msg":"..."}]}。

调用约定

  • 限流:业务接口当前未设置 QPS 限流;仅登录接口有失败次数保护(15 分钟 5 次)。
  • 计费口径:只读接口不计费;发布任务按任务款计费,购买数据集按标价计费。
  • 超时与重试:建议连接超时 5 秒、读超时 30 秒;仅对 5xx 与网络错误做指数退避重试,4xx 不要重试。
  • 幂等:任务发布、购买、充值均为即时扣款的写操作,请勿在超时后盲目重放;先查 /ledger 确认是否已发生。

Webhook

当前版本(v1)尚未提供 Webhook 回调。如需事件通知,请使用轮询:GET /tasks/mine 查任务状态、GET /notifications 查站内通知、GET /projects 查项目阶段。事件推送能力在后续版本中提供,届时会以新增版本号的方式发布,不影响 v1 调用方。

SDK 与示例

当前版本未提供官方 SDK 包,请勿使用任何声称的第三方 databurger / @databurger/sdk 安装包。以下为可直接运行的原生示例,复制即可用。

Python(标准库 urllib,无需安装依赖)

复制import json, urllib.request

BASE = "https://aidataburger.com/api/v1"

def call(method, path, token=None, body=None):
    data = json.dumps(body).encode() if body else None
    req = urllib.request.Request(BASE + path, data=data, method=method)
    req.add_header("Content-Type", "application/json")
    if token:
        req.add_header("Authorization", "Bearer " + token)
    with urllib.request.urlopen(req, timeout=30) as r:
        return json.loads(r.read().decode())

# 登录
resp = call("POST", "/login-password", body={
    "phone": "13800000000", "password": "********", "role": "buyer"})
token = resp["token"]

# 检索数据集
for ds in call("GET", "/datasets?domain=medical"):
    print(ds["id"], ds["title"], ds["samples"], ds["price"])

# 发布任务并查看状态
t = call("POST", "/tasks", token, {
    "title": "直播切片合规评判", "video_url": "https://.../a.mp4"})
print(t["task_id"], t["price_total"], t["judge_payout"])

JavaScript(浏览器 / Node 18+ 原生 fetch)

复制const BASE = "https://aidataburger.com/api/v1";

async function call(path, { method = "GET", token, body } = {}) {
  const r = await fetch(BASE + path, {
    method,
    headers: {
      "Content-Type": "application/json",
      ...(token ? { Authorization: `Bearer ${token}` } : {}),
    },
    body: body ? JSON.stringify(body) : undefined,
  });
  if (!r.ok) throw new Error(`${r.status} ` + await r.text());
  return r.json();
}

// 公开接口无需鉴权
const metrics = await call("/metrics/public");
console.log(metrics.online, metrics.pass_rate ?? metrics.pass);

const { token } = await call("/login-password", {
  method: "POST",
  body: { phone: "13800000000", password: "********", role: "buyer" },
});
const me = await call("/me", { token });

接入教程

场景一:把标准数据集接入训练流水线

  1. GET /datasets?domain=... 检索候选数据集,按 samples / price 初筛
  2. GET /datasets/{did}/sample 拉取小样本,跑一次基线训练确认字段可用
  3. GET /datasets/{did}/report 查看质检报告摘要
  4. 确认后 POST /datasets/{did}/buy 下单,随后用 GET /datasets/mine 查看已购

场景二:批量视频评判并核对结算

  1. POST /recharge 保证钱包余额,再 POST /tasks 批量发布
  2. 产能方 GET /tasks/open → POST /tasks/{tid}/claim → POST /tasks/evaluate
  3. 需求方 GET /tasks/mine 查看 submitted 任务;不满意走 POST /tasks/{tid}/reject 带原因返工
  4. 满意后 POST /tasks/{tid}/accept,此时才结算;用 GET /ledger 核对收支流水

场景三:把平台公开数据接入你的 BI

  1. GET /metrics/public 无需鉴权,按日轮询写入数仓
  2. 账号维度数据用 GET /ledger 与 GET /projects(需令牌)

变更日志

2026-10-02 · v1.1

个人信息权利受理与质检口径修正

新增 POST /privacy-requests(无需登录),为《隐私政策》的查询 / 更正 / 删除 / 注销 / 撤回同意 / 转移 / 投诉提供真实落库受理渠道并回执受理号。/datasets/{did}/report 不再返回预置的固定质检数值:改为按已归档质检提交实时统计,样本量低于 20 条时返回 qc_available:false 与空指标。

2026-10-02 · v1.0

首个对外正式版本

确立 https://aidataburger.com/api/v1 为对外基址(/api 等价兼容)。补齐任务验收链路:/tasks/{tid}/reject、/tasks/{tid}/accept、/tasks/{tid}/claim,并明确「提交不结算、验收才结算」。修正 /datasets/mine 被 /datasets/{did} 抢先匹配导致 422 的路由顺序问题。API 的 404 不再被品牌错误页拦截,统一返回 JSON 错误体。

2026-09-30 · 内部版本

场景任务库与投诉工单

开放 /scenario-tasks 类目检索;新增 POST /reports,受理号由服务端生成。

2026-09-20 · 内部版本

数据集与标注能力

开放数据集检索、小样本、质检报告与购买;标注作业创建、认领、提交与质检裁定。

文档版本:v1.0 · 最后更新 2026-10-02 · 对应线上 /openapi.json。破坏性变更会以新版本号发布,并保留 v1 至少一个版本的过渡期。