供命令行、扣子编程、OpenClaw 等工具自动化创建与查看数据任务,无需打开网页。
https://quickform.cn(若自建部署,请替换为您自己的站点根地址)Content-Type: application/json)或 表单(application/x-www-form-urlencoded)429,并包含 retry_after 秒数)。说明:本文档涵盖两类能力
- CLI 接口(/cli/*):给“校园版/教师版迁移、脚本、大模型工具”调用的账号密码接口(无需 Cookie)。
- 网页端「任务导出 / 导入」:站内按钮触发的导出 ZIP / 导入 ZIP|JSON(需要网页登录)。
POST /cli/add创建一条新的数据任务,并返回用于提交数据的 apiid。
| 参数 | 必填 | 说明 |
|---|---|---|
| username | 是 | 用户名 |
| password | 是 | 密码 |
| task_name | 是 | 任务名称 |
| task_intro | 否 | 任务介绍/描述 |
(兼容字段:title 等同 task_name,description 等同 task_intro。)
{
"success": true,
"apiid": "a1b2c3d4ef"
}
apiid 即该任务的 API 标识,后续提交数据、拉取数据都使用此 id。
400:缺少必填参数 → { "success": false, "message": "缺少 username 或 password" } 等401:用户名或密码错误 → { "success": false, "message": "用户名或密码错误" }403:已达任务数量上限 → { "success": false, "message": "已达任务数量上限(当前 N 个)..." }403:从第二个任务起需先绑定/验证邮箱 → { "success": false, "code": "email_not_bound" | "email_not_verified", "message": "..." }500:服务器异常 → { "success": false, "message": "..." }# JSON
curl -X POST "https://quickform.cn/cli/add" \
-H "Content-Type: application/json" \
-d '{"username":"teacher1","password":"your_password","task_name":"课堂签到表","task_intro":"本周签到"}'
# 表单
curl -X POST "https://quickform.cn/cli/add" \
-d "username=teacher1&password=your_password&task_name=课堂签到表&task_intro=本周签到"
POST /cli/list获取当前账号下所有数据任务及其 apiid 与名称。
| 参数 | 必填 | 说明 |
|---|---|---|
| username | 是 | 用户名 |
| password | 是 | 密码 |
{
"success": true,
"tasks": [
{ "apiid": "a1b2c3d4ef", "name": "课堂签到表" },
{ "apiid": "x9y8z7w6vu", "name": "问卷回收" }
]
}
400:缺少 username 或 password401:用户名或密码错误curl -X POST "https://quickform.cn/cli/list" \
-H "Content-Type: application/json" \
-d '{"username":"teacher1","password":"your_password"}'
POST /cli/show通过 apiid 获取任务的基本信息与附件(用于“校园版/教师版”从在线版拉取任务并下载 HTML 附件)。
| 参数 | 必填 | 说明 |
|---|---|---|
| username | 是 | 用户名 |
| password | 是 | 密码 |
| apiid | 是 | 任务 API 标识 |
{
"success": true,
"apiid": "a1b2c3d4ef",
"name": "课堂签到表",
"intro": "任务描述(可空)",
"tutorial": "教程链接(可空)",
"share_url": "分享链接(可空)",
"attachments": [
{ "name": "index.html", "url": "https://quickform.cn/static/uploads/xxxxxxxx.html" }
]
}
attachments 应包含该任务的 HTML/HTM 页面附件(至少 1 个也可以)。attachments[].url 必须是 无需 Cookie/Session、无需登录即可下载的直链(否则导入端无法下载并改写 HTML 内的 API 地址)。.html/.htm;你也可以返回其它类型,但不会被迁移处理。400:缺少参数401:用户名或密码错误404:任务不存在或无权限curl -X POST "https://quickform.cn/cli/show" \
-H "Content-Type: application/json" \
-d '{"username":"teacher1","password":"your_password","apiid":"a1b2c3d4ef"}'
POST /cli/upload上传单个 HTML/HTM 文件,并绑定到某个已创建的任务(用于迁移导入端:后续需要带 taskid 的可访问页面)。
说明:CLI 上传时必须指定目标任务(
apiid推荐 /task_id或taskid/id)。否则会出现“未走教师认证/任务权限校验就拿到可访问公网 HTML”的问题。
multipart/form-datausername、password(表单字段)apiid(推荐)/ task_id(或 taskid)/ id(数据库ID,二选一:三者其一即可)file(文件字段,仅支持 .html / .htm,单文件最大 4MB){
"success": true,
"url": "https://quickform.cn/uploads/xxxxxxxx.html?taskid=a1b2c3d4ef",
"filename": "xxxxxxxx.html"
}
url:该文件的公网访问地址,可直接在浏览器或前端 iframe 中打开。url:在未通过教师认证(或未满足任务 HTML 审核条件)时,访问页面会显示“审核中/未通过”提示页,不会直接返回原始 HTML。filename:服务器保存后的文件名(随机命名,避免冲突)。若你需要该上传结果马上用于迁移导入/展示,请确保当前账号已满足“教师认证通过/任务 HTML 可访问”条件。
400:缺少参数、未选择文件、未提供目标任务参数(apiid/task_id/id 任意一个)、或文件格式/大小不符合(仅允许 .html/.htm,单文件 ≤ 4MB)→ { "success": false, "message": "..." }401:用户名或密码错误403:目标任务不存在或无权限(非任务所有者/无管理员权限)500:服务器保存失败curl -X POST "https://quickform.cn/cli/upload" \
-F "username=teacher1" \
-F "password=your_password" \
-F "apiid=a1b2c3d4ef" \
-F "file=@/path/to/your/page.html"
拿到 apiid 后,与网页端一致:
POST /api/<apiid> {"name":"张三","score":85} 成功:{ "message": "提交成功", "status": "success" }
获取全部提交数据:GET /api/<apiid>/all
返回:{ "submissions": [ ... ], "total_submissions": N }
简要查询(最新 3 条):GET /api/<apiid>
submissions、total_submissions、task_id、task_title 等完整提交地址示例:https://quickform.cn/api/a1b2c3d4ef
POST /cli/add,传入用户名、密码、任务名称(及可选介绍),得到 apiid。https://quickform.cn/api/<apiid>https://quickform.cn/api/a1b2c3d4efPOST /cli/list 获取当前用户下所有 apiid 与名称。这样即可在不打开 QuickForm 网页的情况下,完成任务的创建、列表查看与数据提交地址的配置。
如果你是在网页里操作(不是脚本/CLI),请看这里。
管理员可用环境变量控制是否启用:
TASK_MIGRATION_ACTIVE=1TASK_MIGRATION_ACTIVE=0GET /task/<task_id>/export_templatequickform-task-migration.json(manifest)html/ 目录下的页面文件(若该任务上传了 HTML/HTM)注意:导出通常仅任务创建者/管理员可用。
POST /task/import_template(multipart/form-data)/api/<old> → /api/<new>(可选同时替换站点根地址)。| 接口 | 成功时返回字段 | 说明 |
|---|---|---|
| POST /cli/add | success: true, apiid |
新任务的 API 标识 |
| POST /cli/list | success: true, tasks |
tasks 为 [{ apiid, name }, ...] |
| POST /cli/show | success: true, attachments |
迁移导出端:返回 HTML 附件直链 |
| POST /cli/upload | success: true, url, filename |
上传并绑定到任务的可访问页面地址与保存文件名(未认证时返回审核提示页) |
所有错误均为 success: false 且带 message 字段,便于 CLI 或技能内统一处理。