Shareable Docs

文章创建接口文档

这是一份可直接分享给第三方接入方的 API 文档页面,包含接口地址、鉴权方式、请求字段、使用约定与成功响应示例。

打开当前文档链接
Doc URL
https://crm.market.livedoc.cn/docs/article-api
Request URL
https://crm.market.livedoc.cn/api/articles/external/create
Endpoint Path
/api/articles/external/create
请求示例

最终请求地址为 https://crm.market.livedoc.cn/api/articles/external/create;示例使用占位站点 ID 和 Token,便于直接复制后修改。

curl -X POST "https://crm.market.livedoc.cn/api/articles/external/create" \
  -H "Content-Type: application/json" \
  -H "X-Article-Api-Token: YOUR_TOKEN" \
  --data-raw @'
{
  "site_id": "SITE_ID",
  "is_published": false,
  "title": "API 新增文章测试",
  "markdown_content": "# API 新增文章测试\n\n这是通过 API 配置页在线调试创建的测试文章。\n\n- 支持 Markdown 正文\n- 支持标签与分类\n- 支持直接发布\n",
  "excerpt": "这是通过 API 调试面板创建的测试文章摘要。",
  "tags": [
    "API",
    "调试",
    "新增文章"
  ]
}
'@
完整说明

该内容与后台 API 配置页中的弹窗文档保持同步。

Method
POST
Request URL
https://crm.market.livedoc.cn/api/articles/external/create
Endpoint Path
/api/articles/external/create
Auth
Header 任选其一:`X-Article-Api-Token: YOUR_TOKEN` 或 `Authorization: Bearer YOUR_TOKEN`
请求体参数
site_idstring必填

站点 ID,必须传当前站点的 id。

titlestring可选

文章标题;普通 Markdown 导入时建议传入,若使用 webpage_url 且留空,服务端会尝试从网页标题自动提取。

webpage_urlstring可选

在线网页链接;未传 markdown_content 时,服务端会先尝试普通请求抓取,必要时回退无头浏览器,再将正文转换为 Markdown。

markdown_contentstring可选

Markdown 正文;与 webpage_url 二选一,推荐优先使用这个字段做稳定接入。

contentstring可选

可作为 markdown_content 的兼容别名;仅在 markdown_content 未传时生效。

slugstring可选

自定义文章 slug;留空时服务端会根据标题自动生成唯一值。

excerptstring可选

文章摘要;留空时服务端会根据正文自动提取摘要。

cover_imagestring可选

封面图片 URL;手动传入时优先使用,不再自动生成或搜索。

cover_image_mode"none" | "search" | "generate"可选

封面图片模式;none 为不处理,search 为自动搜索图片,generate 为 AI 文生图。

category_idstring可选

分类 ID;不传则创建为未分类文章。

tagsstring[] | string可选

标签列表;支持数组,或逗号/换行/中文顿号分隔的字符串。

is_publishedboolean可选

是否直接发布;不传时按 false 处理。

views_basenumber可选

浏览量基数;会被归一化为不小于 0 的整数。

display_published_atstring可选

展示发布时间;传可被 Date 解析的时间字符串,服务端会转为 ISO UTC。

enable_ai_completionboolean可选

是否启用 AI 补全;为 true 时会补全中文 slug、标签、摘要、AI 总结,并生成英文标题、摘要、AI 总结和英文标签建议。

使用约定

1. `markdown_content`、`content`、`webpage_url` 三者至少提供一种;推荐统一传 `markdown_content`,网页导入时传 `webpage_url`。

2. 使用 `webpage_url` 时,如未传 `title`,服务端会尝试从网页标题或正文标题自动提取;动态站点抓取失败时会回退到无头浏览器。

3. `tags` 会自动去重、清理空值,并最多保留 12 个标签。

4. `views_base` 会被转成不小于 0 的整数;非法值会回退为 0。

5. `display_published_at` 传入后会转为 ISO UTC 时间保存,建议直接传带时区的时间字符串。

6. `enable_ai_completion`、`cover_image_mode` 属于增强能力;若因模型配置、图片搜索或文生图失败,服务端会跳过对应步骤并继续保存文章,同时在响应的 `warnings` 中返回原因。

成功响应
{
  "success": true,
  "article": {
    "id": "ARTICLE_ID",
    "site_id": "SITE_ID",
    "title": "API 新增文章测试",
    "slug": "auto-generated-slug"
  },
  "message": "文章已通过 API 创建成功"
}