跳至主要内容
ALQQ 开发者中心

自媒体发布 API 开放文档

用个人密钥连接 AI 文章生成、内容导入、多平台发布与任务记录查询,将内容工作流接入 n8n、Coze 或你自己的业务系统。
返回首页
内容平台
22
CMS 连接器
2
接口规范
OpenAPI
查看本文目录 14 个章节

交互式 API 参考

完整接口、参数与响应 schema + 在线调试(try-it-out),随后端自动同步。

获取 API 密钥

登录后进入「系统设置 → API 密钥」生成,密钥仅显示一次。

鉴权

所有请求在 Header 携带你的密钥:
请求示例
curl https://www.alqq.cn/api/openapi/v1/accounts \
  -H "Authorization: Bearer mk_live_你的密钥"

发布前先预检

先查配额、账号可发布状态和执行端在线状态,再提交发布,可避免大多数 403 / 409 / 422。
请求示例
# 1) 查权限和 web / desktop / edge / cms 独立配额
curl https://www.alqq.cn/api/openapi/v1/me \
  -H "Authorization: Bearer mk_live_..."

# 2) 只选 publishable=true 的账号
#    POST /publish 的 executor 必须等于账号返回的 executor
#    desktop / edge 还需 executor_online=true
curl https://www.alqq.cn/api/openapi/v1/accounts \
  -H "Authorization: Bearer mk_live_..."

# 3) 需要桌面端或云执行节点时,可进一步查询状态
curl https://www.alqq.cn/api/openapi/v1/execution-nodes \
  -H "Authorization: Bearer mk_live_..."

支持的平台与 CMS

当前共 24 个接入项:22 个内容平台 + 2 个 CMS,其中 19 个内容平台支持视频发布。下表仅列出已开放的文章与视频 API 能力;支持某种内容不代表任意执行端均可使用。
平台 / CMSplatform 代码类型文章 API视频 API执行限制
百家号baijiahao内容平台支持支持视频:desktop;edge 需满足下方条件
今日头条toutiao内容平台支持支持视频:desktop;edge 需满足下方条件
微信公众号wechat内容平台支持不支持以账号返回的 executor 为准
企鹅号qiehao内容平台支持支持视频:desktop;edge 需满足下方条件
抖音douyin内容平台支持支持视频:desktop;edge 需满足下方条件
哔哩哔哩bilibili内容平台支持支持视频:desktop;edge 需满足下方条件
快手kuaishou内容平台支持支持视频:desktop;edge 需满足下方条件
视频号shipinhao内容平台支持支持视频:desktop;edge 需满足下方条件
淘宝光合guanghe内容平台支持支持视频:desktop;edge 需满足下方条件
搜狐号sohu内容平台支持支持视频:desktop;edge 需满足下方条件
知乎zhihu内容平台支持支持视频:desktop;edge 需满足下方条件
小红书xiaohongshu内容平台支持支持视频:desktop;edge 需满足下方条件
大鱼号dayu内容平台支持支持视频:desktop;edge 需满足下方条件
快传号kuaichuan内容平台支持支持视频:desktop;edge 需满足下方条件
微博weibo内容平台支持支持视频:desktop;edge 需满足下方条件
YouTubeyoutube内容平台不支持支持仅 desktop
TikToktiktok内容平台不支持支持视频:desktop;edge 需满足下方条件
Instagraminstagram内容平台支持支持视频:desktop;edge 需满足下方条件
Facebookfacebook内容平台支持支持视频:desktop;edge 需满足下方条件
豆瓣douban内容平台支持不支持以账号返回的 executor 为准
CSDNcsdn内容平台支持支持视频:desktop;edge 需满足下方条件
PbootCMS 站点pbootcmsCMS 站点支持不支持文章:web(站点插件)
InnoShop 站点innoshopCMS 站点支持不支持文章:web(站点插件)
简书jianshu内容平台支持不支持以账号返回的 executor 为准
platform 代码用于账号筛选和请求中的 platforms。实际发布建议从 GET /accounts 返回的账号 id 组装 accountIds,并检查账号状态、执行端及平台发布预设。动态发布尚未提供独立 OpenAPI 端点,不能仅凭平台支持动态就调用未开放接口。
程序可通过 GET /metapublish.platforms 获取完整目录,包括 idnamecategorycontent_typesarticle_executorsvideo_executorsvideo_sources;视频来源仅为 local_fileGET /accounts 只返回当前用户已添加的账号,不是完整平台目录。

视频发布:区分普通页面与 OpenAPI

桌面端:POST /publish/video 使用 executor="desktop",桌面端需在线,账号也须配置为桌面执行。必填 localVideoPath 是实际执行发布的 Windows 电脑上的视频绝对路径;文件必须已存在,不是 API 调用方另一台机器的路径。可选封面 coverImagePath 也须使用该执行电脑上的绝对路径。
已授权的云执行节点:OpenAPI 允许 executor="edge",前提是已获得节点使用权限、账号绑定到该节点、节点在线且支持目标平台的视频发布,并上报 capabilities.localVideoFile === 1。需更新到具备本地视频文件能力的节点版本,并显式配置 ALQQ_EDGE_VIDEO_DIR(例如 /data/videos);请将视频及可选封面预先放到 ALQQ_EDGE_VIDEO_DIR/<userId>/ 下,再传该 Linux 节点上的绝对路径,例如用户 123 的 /data/videos/123/video.mp4。执行器会校验安全目录;未配置目录或旧版不具备本地文件能力的节点不可使用。
远程素材:videoUrl 和视频封面的 coverImageUrl 已弃用,任何非空值均被拒绝,即使同时传入本地路径也不接受。请自行下载或生成素材后再提交;视频和封面仍会上传至目标发布平台,只是不经 ALQQ 主站中转。文章图片处理不受此变更影响。
YouTube:仍仅支持 desktop 视频发布,不支持文章 API,也不支持 edge 执行,尚未开放 Linux 节点发布。TikTok 同样不支持文章 API;其他平台能力见上表。
Web 执行端:视频请求不支持 executor="web"。调用 GET /video/meta 查询当前视频平台与专属参数;提交前仍需校验账号和执行端。

CMS 站点接入与文章发布

PbootCMS 站点、InnoShop 站点 均只支持文章。先在自己的站点安装对应插件,再到 ALQQ「账号管理」配对站点并配置栏目与发布预设。OpenAPI 不提供站点配对或插件配置接口。
请求示例
# CMS 站点也由 GET /accounts 返回;选择已配对、publishable=true 的站点 ID
# ARTICLE_ID 来自文章生成或导入;将示例 123 替换为 GET /accounts 返回的真实站点账号 id
curl -X POST https://www.alqq.cn/api/openapi/v1/publish \
  -H "Authorization: Bearer mk_live_..." \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: cms-20260912-001" \
  -d '{"articleId":"ARTICLE_ID","executor":"web","accountIds":[123]}'
# → { "batch_id": 88, "jobs": [...] }
# 用 GET /publish/BATCH_ID 查询各站点结果
CMS 复用 POST /publish,并非另一套 CMS 发布接口;请求执行端为 web,由服务端调用站点插件,不占用桌面浏览器。仍需 API 密钥的 publish 权限、套餐 CMS 权限和独立的 cms 发布额度;不要把 CMS 额度当作普通 Web 发布额度。

端点一览

下面是常用端点速览;完整参数、响应 schema 与在线调试请看 交互式 API 参考 →
方法路径
GET/api/openapi/v1/me
GET/api/openapi/v1/accounts
GET/api/openapi/v1/execution-nodes
GET/api/openapi/v1/meta
POST/api/openapi/v1/articles/generate
GET/api/openapi/v1/articles/generate/:taskId
POST/api/openapi/v1/articles
GET/api/openapi/v1/articles
GET/api/openapi/v1/articles/:id
POST/api/openapi/v1/publish
POST/api/openapi/v1/publish/video
GET/api/openapi/v1/publish/:batchId
GET/api/openapi/v1/generate-tasks
GET/api/openapi/v1/publish-logs
GET/api/openapi/v1/products
GET/api/openapi/v1/video/meta

ID 对照:四种 ID 不能混用

名称从哪里获得用在哪里常见错误
task_idPOST /articles/generateGET /articles/generate/:taskId不能作为 articleId 或 batchId
article_id生成完成或 POST /articlesGET /articles/:id、POST /publish不能用 task_id 代替
batch_idPOST /publish 或 /publish/videoGET /publish/:batchId不能传 article_id 或 log_id
log_id发布结果/Webhook/发布记录GET /publish-logs?ids=...不是发布批次 id

示例:生成并轮询

请求示例
# 1) 发起生成
curl -X POST https://www.alqq.cn/api/openapi/v1/articles/generate \
  -H "Authorization: Bearer mk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"customTopic":"夏季香料怎么选","style":"soft-article","wordCount":1000}'
# → { "task_id": "..." }

# 2) 每 2–5 秒轮询;收到 429 按 Retry-After 等待
curl https://www.alqq.cn/api/openapi/v1/articles/generate/TASK_ID \
  -H "Authorization: Bearer mk_live_..."
# → { "status":"done", "article_id":"...", "title":"..." }

AI 内容来源与标识

请求示例
# 导入外部 AI 辅助完成的文章时如实声明来源
curl -X POST https://www.alqq.cn/api/openapi/v1/articles \
  -H "Authorization: Bearer mk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "title":"文章标题",
    "content":"正文 Markdown",
    "contentProvenance":"ai_assisted",
    "aiProvider":"example-provider",
    "aiModel":"example-model",
    "aiImageCount":0
  }'

# 响应中的 aigc.applies_to 会分别说明 text / images
# aiImageCount 只计算真正由 AI 生成的图片

示例:发布并轮询

请求示例
# ARTICLE_ID 必须来自生成结果或 POST /articles
# ACCOUNT_ID 必须来自 GET /accounts
curl -X POST https://www.alqq.cn/api/openapi/v1/publish \
  -H "Authorization: Bearer mk_live_..." \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: order-20260904-001" \
  -d '{"articleId":"ARTICLE_ID","executor":"edge","accountIds":[ACCOUNT_ID]}'
# → { "batch_id": 88, "jobs": [...] }

# BATCH_ID 只能使用上一步返回的 batch_id
# 每 2–5 秒查询一次,到达终态后停止
curl https://www.alqq.cn/api/openapi/v1/publish/BATCH_ID \
  -H "Authorization: Bearer mk_live_..."

图片和文章修改

图片:暂无独立图片上传接口。导入文章时在 Markdown 中使用 ![](https://...),封面使用 coverImage
更新/删除:开放 API 目前支持文章生成、导入和查询,不支持更新或删除。修改内容时请重新导入,并使用新的 article_id。

可靠调用与故障排查

请求追踪:所有业务响应都返回 X-Request-Id,包括鉴权失败和限流请求。
避免重复发布:调用发布接口时携带唯一的 Idempotency-Key,网络超时重试不会重复创建发布批次。
限流处理:每分钟与每日额度按 ALQQ 用户账号共享,增加密钥不会增加总额度。读取 RateLimit-*X-Daily*;收到 429 后按 Retry-After 等待。
异步结果:生成和发布可轮询状态接口,也可以在系统设置中配置 Webhook 接收完成或失败通知。
错误结构:统一为 { "error": { "code", "message" } },程序应优先判断稳定的 code

常见错误与处理方式

HTTPerror.code常见原因处理方式
400invalid_request缺少必填参数或 ID 传错位置核对当前操作的 request schema 和 ID 对照表
401unauthorized / key_expired密钥缺失、无效、禁用或过期更换密钥,不要在 URL 中传递密钥
403insufficient_scope / quota_exceeded密钥权限或对应执行端发布配额不足查看 GET /me 的 scopes 和 quota
404not_found资源不存在、不属于当前用户或猜测了未开放路径使用创建接口真实返回的 ID,只调用规范列出的路径
409desktop_offline / edge_offline所选执行端离线或已停用查看 GET /execution-nodes,客户端/节点恢复在线后再提交
409PUBLISH_DUPLICATE同内容当天已确认提交或发布不要立即重发;先查询原 batch_id 或发布记录
422account_not_publishable账号未激活、登录失效、审核中或健康异常查看 GET /accounts 的 publishable,在账号管理中处理
422account_* / edge_capability_missing账号配置的执行端与请求不匹配使用 GET /accounts 返回的 executor,不要强制改写
429rate_limited / daily_quota_exceeded账号级每分钟或每日 API 额度已用尽按 Retry-After 等待;额度由套餐配置,同用户多把密钥共享

示例:读取追踪与限流响应头

请求示例
curl -i https://www.alqq.cn/api/openapi/v1/me \
  -H "Authorization: Bearer mk_live_..."

# X-Request-Id: 550e8400-e29b-41d4-a716-446655440000
# RateLimit-Limit: 60
# RateLimit-Remaining: 59
# RateLimit-Reset: 42
# X-DailyLimit: 5000
# X-DailyRemaining: 4874
额度与网页/桌面端/云执行节点共用同一套套餐计量,但 web、desktop、edge 与 cms 使用独立的发布额度桶。完整规范可通过 OpenAPI JSON 导入 Apifox 或 Postman。