PasteMD API
程序化创建和共享Markdown文档。通过REST API管理文档、项目等。
快速开始
通过简单的API调用创建文档。
curl -X POST https://api.pastemd.io/api/v1/documents \
-H "X-API-Key: pm_your_api_key" \
-H "Content-Type: application/json" \
-d '{"content": "# Hello World\n\nYour markdown content here."}'认证
所有API请求需要在X-API-Key头中提供API密钥。API密钥仅供Pro计划用户使用。
请求头格式
X-API-Key: pm_your_api_key您可以在 设置
端点概览
API提供3个类别共13个端点。
| 方法 | 路径 | 描述 |
|---|---|---|
| 文档 | ||
| POST | /api/v1/documents | 创建新的Markdown文档 |
| GET | /api/v1/documents | 获取文档列表(分页) |
| GET | /api/v1/documents/{id} | 通过ID(UUID)获取文档 |
| GET | /api/v1/documents/slug/{slug} | 通过slug获取文档 |
| PATCH | /api/v1/documents/{id} | 更新文档(部分更新) |
| DELETE | /api/v1/documents/{id} | 删除文档 |
| 项目 | ||
| POST | /api/v1/projects | 创建新项目 |
| GET | /api/v1/projects | 获取项目列表 |
| GET | /api/v1/projects/{id} | 获取项目详情和文档列表 |
| PATCH | /api/v1/projects/{id} | 更新项目(仅所有者) |
| DELETE | /api/v1/projects/{id} | 删除项目(仅所有者) |
| 使用量与个人信息 | ||
| GET | /api/v1/me | 获取个人信息 |
| GET | /api/v1/usage | 获取本月API使用量 |
文档
POST
/api/v1/documents创建新的Markdown文档
请求体
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
content | string | 是 | Markdown内容(最大500,000字符) |
title | string | 否 | 文档标题(最大200字符,未填写时从内容中提取) |
expiration | string | 否 | 过期时间: 1h, 1d, 7d, 30d, 或 never |
password | string | 否 | 共享链接密码保护 |
project_id | string | 否 | 关联的项目ID(UUID) |
is_public | boolean | 否 | 允许搜索引擎索引文档 |
show_ai_chat | boolean | 否 | 在阅读器中显示AI聊天(Pro) |
show_toc | boolean | 否 | 在阅读器中显示目录(Pro) |
show_notes | boolean | 否 | 在阅读器中显示笔记(Pro) |
show_comments | boolean | 否 | 在阅读器中显示评论/反馈(Pro) |
show_summary | boolean | 否 | 在阅读器中显示AI摘要(Pro) |
响应
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"slug": "abc123",
"title": "Hello World",
"content": "# Hello World\n\nYour markdown content here.",
"url": "https://pastemd.io/s/abc123",
"edit_url": "https://pastemd.io/e/550e8400-e29b-41d4-a716-446655440000",
"view_count": 0,
"created_at": "2025-01-04T12:00:00Z",
"updated_at": "2025-01-04T12:00:00Z",
"is_password_protected": false,
"is_public": false,
"project_id": null
}此端点计入每月文档创建配额(每月100个)。
GET
/api/v1/documents获取文档列表(分页)
查询参数
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
page | integer | 否 | 页码(默认: 1) |
page_size | integer | 否 | 每页数量,最大100(默认: 20) |
project_id | string | 否 | 按项目ID筛选 |
响应
{
"items": [
{
"id": "550e8400-...",
"slug": "abc123",
"title": "Hello World",
"url": "https://pastemd.io/s/abc123",
"view_count": 42,
"created_at": "2025-01-04T12:00:00Z",
"updated_at": "2025-01-04T12:00:00Z",
"is_password_protected": false,
"is_public": false,
"project_id": null
}
],
"total": 15,
"page": 1,
"page_size": 20,
"has_next": false
}GET
/api/v1/documents/{id}通过ID(UUID)获取文档
返回包含内容的完整文档响应。仅可访问自己的文档。
GET
/api/v1/documents/slug/{slug}通过slug获取文档
查询参数
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
password | string | 否 | 受密码保护文档的密码 |
PATCH
/api/v1/documents/{id}更新文档(部分更新)
请求体
所有字段均为可选。仅更新提供的字段。
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
content | string | 否 | Markdown内容(最大500,000字符) |
title | string | 否 | 文档标题(最大200字符,未填写时从内容中提取) |
expiration | string | 否 | 过期时间。使用 'never' 移除过期设置 |
password | string | 否 | 密码。使用空字符串 '' 移除密码 |
project_id | string | 否 | 项目ID。使用空字符串 '' 从项目中分离 |
is_public | boolean | 否 | 允许搜索引擎索引文档 |
show_ai_chat | boolean | 否 | 在阅读器中显示AI聊天(Pro) |
show_toc | boolean | 否 | 在阅读器中显示目录(Pro) |
show_notes | boolean | 否 | 在阅读器中显示笔记(Pro) |
show_comments | boolean | 否 | 在阅读器中显示评论/反馈(Pro) |
show_summary | boolean | 否 | 在阅读器中显示AI摘要(Pro) |
DELETE
/api/v1/documents/{id}删除文档
永久删除文档。成功时返回204 No Content。
项目
POST
/api/v1/projects创建新项目
请求体
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
name | string | 是 | 项目名称(最大100字符) |
description | string | 否 | 项目描述(最大500字符) |
响应
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "My Project",
"description": "Project description",
"document_count": 0,
"member_count": 1,
"documents": [],
"created_at": "2025-01-04T12:00:00Z",
"updated_at": "2025-01-04T12:00:00Z"
}GET
/api/v1/projects获取项目列表
响应
{
"items": [
{
"id": "550e8400-...",
"name": "My Project",
"description": "Project description",
"document_count": 5,
"member_count": 3,
"created_at": "2025-01-04T12:00:00Z",
"updated_at": "2025-01-04T12:00:00Z"
}
],
"total": 2
}GET
/api/v1/projects/{id}获取项目详情和文档列表
返回包含文档列表的项目详情。仅所有者和成员可访问。
PATCH
/api/v1/projects/{id}更新项目(仅所有者)
请求体
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
name | string | 否 | 项目名称(最大100字符) |
description | string | 否 | 项目描述。使用空字符串 '' 移除描述 |
仅项目所有者可更改设置。
DELETE
/api/v1/projects/{id}删除项目(仅所有者)
删除项目。关联文档不会被删除,而是从项目中分离。返回204 No Content。
使用量与个人信息
GET
/api/v1/me获取个人信息
响应
{
"id": 12345,
"email": "user@example.com",
"display_name": "John Doe",
"plan": "pro",
"is_pro": true,
"created_at": "2025-01-01T00:00:00Z"
}GET
/api/v1/usage获取本月API使用量
响应
{
"month": "2025-01",
"docs_created": 23,
"docs_limit": 100,
"remaining": 77
}错误码
所有错误以包含错误码和消息的统一JSON格式返回。
| 状态码 | 描述 |
|---|---|
401 | 无效或缺少API密钥 |
403 | 权限不足(例如:不是项目所有者) |
404 | 资源未找到或不属于您 |
422 | 无效的请求体或参数 |
429 | 已达每月文档创建限制 |
速率限制
仅文档创建计入每月配额。其他所有操作不受限制。
| 操作 | 限制 |
|---|---|
| 文档创建(POST) | 每月100个 |
| 查询 / 更新 / 删除 | 无限制 |
| AI聊天(每文档) | 50个问题 |
准备开始了吗?立即创建您的API密钥。