Skip to content

流量主 API ​

流量主端接口前缀为 /api/publisher。除登录 / 注册 / 找回密码外,均需携带流量主 JWT:Authorization: Bearer <token>。

响应结构、分页与错误码约定见 概述与鉴权。

认证 ​

登录 ​

POST /api/publisher/auth/login

参数类型必填说明
usernamestring是用户名或注册邮箱
passwordstring是登录密码
bash
curl -X POST https://api.adbnk.co/api/publisher/auth/login \
  -H "Content-Type: application/json" \
  -d '{"username":"pub_demo","password":"secret123"}'

响应结构同广告主登录,返回 token / token_type / expires_in / user。

其他认证接口 ​

方法路径说明
POST/auth/register注册
POST/auth/forgot-password发送重置邮件,参数 email
POST/auth/reset-password参数 token、new_password、confirm_password
POST/auth/logout登出
GET/auth/profile当前登录流量主信息
POST/auth/password修改密码(old_password/new_password/confirm_password)

站点(Site) ​

列表 ​

GET /api/publisher/sites

参数类型必填说明
page / page_sizeint否分页
keywordstring否名称/域名搜索
statusstring否状态
audit_statusstring否审核状态
start_date / end_datedate否创建时间范围

创建站点 ​

POST /api/publisher/sites

参数类型必填说明
namestring是站点名称
media_typestring否媒体类型:WEB(默认)/APP/TELEGRAM
media_type_idint否媒体子类型,必须属于站点的 media_type,否则返回 400 error.site.media_type_id_invalid
domainstring是*WEB 和 TELEGRAM 必填,需为合法域名且未被占用;TELEGRAM 填小程序网址的域名
app_packagestring是*APP 必填,包名唯一
urlstring否站点 URL,未填时自动用 https://<domain>;TELEGRAM 请填小程序的 https 网址
tg_bot_usernamestring是*仅 TELEGRAM。bot 用户名:5–32 个字符,字母开头,其余为字母、数字或下划线,以 bot 结尾(不区分大小写)。开头带一个 @ 也可以,会被去掉
tg_app_short_namestring否仅 TELEGRAM。小程序短名,3–30 个字母、数字或下划线
descriptionstring否站点描述
industry_idint否行业 ID
icpstring否ICP 备案号
bash
curl -X POST https://api.adbnk.co/api/publisher/sites \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"name":"我的博客","media_type":"WEB","domain":"blog.example.com"}'

新建站点默认 audit_status=PENDING,需审核通过后方可创建广告位。

Telegram 小程序站点 ​

添加 Telegram 小程序时,传 media_type=TELEGRAM,并带上 domain、url、tg_bot_username,可选 tg_app_short_name。不要传 Bot ID,也不要传 bot token:平台会按用户名识别 bot。Telegram 相关字段建站后不能修改(PUT 时会被忽略),要换 bot 请新建站点。Telegram 站点一律人工审核。完整接入流程见 Telegram 小程序接入。

bash
curl -X POST https://api.adbnk.co/api/publisher/sites \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"name":"My Mini App","media_type":"TELEGRAM","domain":"app.example.com","url":"https://app.example.com/","tg_bot_username":"my_app_bot"}'

Telegram 站点的响应(创建、列表、详情)多一个 tg 对象:

字段类型说明
bot_idstring平台识别到的 Bot ID,十进制字符串。请按字符串保存,它可能超出 JavaScript 的安全整数范围
bot_usernamestringbot 用户名
app_short_namestring | null小程序短名
tme_urlstringhttps://t.me/<bot_username>
stepsobject验证状态:domain、bio、launch,取值为 verified 或 pending

请确认 bot_id 和 bot_username 是你的 bot。

codemessage_key含义
400error.site.tg_bot_username_invalidbot 用户名格式不正确
400error.site.tg_short_name_invalid小程序短名格式不正确
400error.site.tg_bot_not_found找不到这个用户名对应的 bot
400error.site.media_type_id_invalidmedia_type_id 不属于站点的媒体类型(所有媒体类型都适用)
429common.rate_limitedbot 识别请求过于频繁,请稍后重试
503error.site.tg_resolve_unavailablebot 识别暂时不可用,请稍后重试

站点其他操作 ​

方法路径说明
GET/sites/{id}详情
PUT/sites/{id}更新。修改后的 media_type_id 必须属于站点的媒体类型(400 error.site.media_type_id_invalid)
DELETE/sites/{id}删除
POST/sites/{id}/toggle启停
GET/sites/{id}/stats站点统计
GET/sites/{id}/verify-code获取验证代码。TELEGRAM 站点的响应还带 tg 对象:上表字段,加上 bio_code(填入 bot 简介的验证码)和 launch_links(需在 Telegram 里打开一次的链接)
POST/sites/{id}/verify验证站点,参数 method。TELEGRAM 站点见下文

Telegram 站点验证 ​

Telegram 站点分三步验证:域名(方式与网站相同)、bot 简介、在 Telegram 里打开一次启动链接。每次调用 POST /sites/{id}/verify 都会重新检测所有尚未通过的步骤;已通过的步骤保持通过。

三步全部通过之前,接口返回 422,message_key 为 error.site.tg_verify_incomplete,各步骤状态在 data.steps 中:

json
{ "code": 422, "message_key": "error.site.tg_verify_incomplete",
  "data": { "steps": { "domain": "verified", "bio": "not_found", "launch": "not_detected" } } }
步骤取值
domainverified / pending(域名上还没检测到验证代码)
bioverified / not_found(bot 简介里没有验证码)/ retry(暂时无法检测,请几分钟后重试)
launchverified / not_detected(还没检测到带验证码的启动)/ retry(暂时无法检测,请重试)

三步都通过后,接口返回成功,带 verified: true 和各步骤状态。对已经验证过的站点再次调用也会返回成功和 verified: true,但响应可能不包含 steps。这表示站点已验证、等待平台审核——审核完成前 audit_status 不变(新站点保持 PENDING)。验证本身永远不会让 Telegram 站点直接通过审核。

广告位(Zone) ​

列表 ​

GET /api/publisher/zones

参数类型必填说明
site_idint否按站点筛选
typestring否广告类型筛选
statusstring否状态
audit_statusstring否审核状态
keywordstring否名称搜索

创建广告位 ​

POST /api/publisher/zones

参数类型必填说明
namestring是广告位名称
site_idint是所属站点,须属于当前流量主且已审核通过
zone_type_idint是*广告位类型 ID(推荐),广告类型由它推导
ad_type / typestring是*广告类型,如 BANNER/NATIVE/VIDEO/POPUP/REWARDED 等;仅在不传 zone_type_id 时需要
size_idint否尺寸 ID
widthint否宽度,默认 300
heightint否高度,默认 250
positionstring否位置,默认 CONTENT
devicestring否设备,默认 ALL
floor_ecpmnumber否eCPM 底价(每千次展示的 $),默认 0

创建成功后系统自动生成唯一 zone_key(形如 zone_ab12cd34),用于广告请求。

广告位其他操作 ​

方法路径说明
GET/zones/{id}详情
PUT/zones/{id}更新(site_id 不可改)
DELETE/zones/{id}删除
POST/zones/{id}/toggle启停
GET/zones/{id}/code获取投放代码
GET/zones/{id}/preview预览
POST/zones/{id}/submit-audit提交审核
GET/zones/{id}/stats广告位统计

Telegram 小程序广告位 ​

TELEGRAM 站点下创建广告位须传 zone_type_id,只能使用以下类型:横幅、移动横幅、吸附横幅、浮动横幅、移动浮动横幅、原生信息流、移动插屏、桌面插屏、激励视频、激励插屏。其他类型返回 400 error.zone.type_telegram_unsupported。

这类广告位的 GET /zones/{id}/code 只返回一种 Telegram 代码,结构为 {name, description, code}:

键广告位类型说明
telegram_tag横幅类、浮动横幅、原生信息流广告位标签加 SDK,放在页面里
telegram_programmatic插屏、激励由你的代码调用 window.adbnk.telegram.init().show()。另有 ssv(布尔值):激励广告位为 true,表示应以服务端回调发奖

Telegram 广告位不提供直链、iframe 或 VAST 形式的代码。详见 Telegram 小程序接入。

获取到 zone_key 后即可发起广告请求,详见 广告请求 API。

收益报表 ​

方法路径说明
GET/statistics/explore灵活报表:自选指标、维度、筛选与对比(后台「数据报表」页使用的就是它)。参数及 export=csv|xlsx 与广告主 API一致
GET/statistics/explore/meta当前账户可用的指标和维度
GET/statistics/report汇总报表
GET/statistics/sites按站点维度
GET/statistics/zones按广告位维度
GET/statistics/region地域(geo)报表
GET/statistics/hourly分时报表
GET/statistics/device设备报表
GET/statistics/export导出

GET /api/publisher/statistics/report 参数:

参数类型必填说明
start_datedate否起始日期,默认 7 天前
end_datedate否结束日期,默认今天
group_bystring否分组维度,默认 date
site_idint否指定站点

提现 ​

方法路径说明
GET/withdrawals/balance查询可提现余额
GET/withdrawals提现记录列表
POST/withdrawals发起提现
GET/withdrawals/transactions资金流水
GET/withdrawals/payment-methods可用提现渠道
GET/withdrawals/bank-cards银行卡列表
POST/withdrawals/bank-cards新增银行卡
DELETE/withdrawals/bank-cards/{id}删除银行卡
GET/withdrawals/{id}提现详情
POST/withdrawals/{id}/cancel取消提现

发起提现 ​

POST /api/publisher/withdrawals

参数类型必填说明
amountnumber是提现金额,须大于 0 且不低于渠道最小额
payment_method / channelstring是提现渠道:BANK/USDT(当前开放的渠道)
account_infostring否收款账户信息(渠道相关)
bank_infoobject否银行渠道的账户明细

KYC 硬门禁

提现要求账户完成 KYC 实名认证,否则返回 412。

bash
curl -X POST https://api.adbnk.co/api/publisher/withdrawals \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"amount": 300, "payment_method": "USDT", "account_info": "TRC20:TXxxxx"}'

手续费与税费按平台及渠道配置计算,最终到账金额 = 提现金额 − 手续费 − 税费。结算与提现规则详见 结算与提现指南。

TIP

更多流量主功能(黑名单、通知绑定、返佣等)请以流量主控制台为准。

按 MIT 许可发布的文档内容。