API 文档
详细的 API 接口文档和参数说明
概述
小红书内容发布工具提供简单易用的 RESTful API 接口,让开发者能够通过程序化方式创建小红书内容分享。 用户通过 API 提交内容后,系统会生成二维码,扫码即可在移动端发布到小红书。
基础 URL
https://yourdomain.com协议
HTTPS认证
Bearer Token格式
JSON认证
所有 API 请求都需要在请求体中包含有效的 API Key:
请求体示例
{
"api_key": "YOUR_API_KEY",
"type": "normal",
...
}获取 API Key
在 用户中心 的 "API Key 管理" 页面生成新的 API Key
发布内容到小红书
POST
/api/rednote/publish提交要发布的笔记内容,系统生成分享二维码
请求参数
| 字段 | 必填 | 类型 | 说明 |
|---|---|---|---|
type | 是 | String | 笔记类型:normal (图文) 或 video (视频) |
title | 否 | String | 笔记标题,限制 20 字符 |
content | 否 | String | 笔记文字内容,支持换行 |
images | 否 | Array | 图片 URL 数组,当 type 为 normal 时必传 |
video | 否 | String | 视频 URL,当 type 为 video 时必传 |
cover | 否 | String | 视频封面 URL,当 type 为 video 时可选 |
请求示例
图文笔记
JSON 请求体
{
"type": "normal",
"title": "美食分享",
"content": "今天做了一道美味的菜\n大家觉得怎么样?",
"images": [
"https://example.com/image1.jpg",
"https://example.com/image2.jpg"
]
}视频笔记
JSON 请求体
{
"type": "video",
"title": "旅行日记",
"content": "今天的旅行真的太棒了!",
"video": "https://example.com/video.mp4",
"cover": "https://example.com/cover.jpg"
}响应参数
| 字段 | 类型 | 说明 |
|---|---|---|
id | String | 笔记 ID |
url | String | 分享页面 URL |
qrcode | String | 二维码图片 URL |
响应示例
成功响应
HTTP 200 OK
{
"success": true,
"data": {
"id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"url": "https://yourdomain.com/rednote/publish/f47ac10b-58cc-4372-a567-0e02b2c3d479",
"qrcode": "https://yourdomain.com/api/qrcode/f47ac10b-58cc-4372-a567-0e02b2c3d479.png"
}
}错误响应
HTTP 400 Bad Request
{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "参数验证失败",
"details": {
"type": "笔记类型必须是 normal 或 video",
"images": "图文笔记必须提供图片"
}
}
}错误码说明
| 错误码 | HTTP 状态码 | 说明 |
|---|---|---|
INVALID_API_KEY | 401 | API Key 无效或已过期 |
INSUFFICIENT_BALANCE | 402 | 调用次数不足 |
VALIDATION_ERROR | 400 | 请求参数验证失败 |
RATE_LIMIT_EXCEEDED | 429 | 请求频率超限 |
INTERNAL_ERROR | 500 | 服务器内部错误 |
使用限制
| 限制项 | 限制 |
|---|---|
| 调用频率 | 每分钟 60 次请求 |
| 图片文件 | 最大 10MB,支持 JPG、PNG、GIF |
| 视频文件 | 最大 100MB,支持 MP4、MOV |
| 标题长度 | 最大 20 字符 |
| 内容长度 | 最大 1000 字符 |
| 图片数量 | 最多 18 张 |
代码示例
cURL
命令行示例
curl -X POST https://yourdomain.com/api/rednote/publish \
-H "Content-Type: application/json" \
-d '{
"api_key": "YOUR_API_KEY",
"type": "normal",
"title": "美食分享",
"content": "今天做了一道美味的菜\n大家觉得怎么样?",
"images": [
"https://example.com/image1.jpg",
"https://example.com/image2.jpg"
]
}'JavaScript (Node.js)
使用 axios 库
const axios = require('axios');
async function publishToXiaohongshu(data) {
try {
// 确保数据中包含api_key
const requestData = {
api_key: 'YOUR_API_KEY',
...data
};
const response = await axios.post('https://yourdomain.com/api/rednote/publish', requestData, {
headers: {
'Content-Type': 'application/json'
}
});
console.log('发布成功:', response.data);
return response.data;
} catch (error) {
console.error('发布失败:', error.response?.data || error.message);
throw error;
}
}Python
使用 requests 库
import requests
import json
def publish_to_xiaohongshu(data):
url = 'https://yourdomain.com/api/rednote/publish'
headers = {
'Content-Type': 'application/json'
}
# 确保数据中包含api_key
request_data = {
'api_key': 'YOUR_API_KEY',
**data
}
try:
response = requests.post(url, json=request_data, headers=headers)
response.raise_for_status()
result = response.json()
print('发布成功:', result)
return result
except requests.exceptions.RequestException as e:
print('发布失败:', e)
raise