任务
任务 Console API 参考。
列出任务
列出当前 API key 用户在某个项目里自己拥有的任务。project_id 使用 personal 时会列出 Personal 任务。
GET /api/console/v1/projects/<project_id>/tasks?index=0&pageSize=50Authorization: Bearer <api_key>GET /api/console/v1/projects/personal/tasks?index=0&pageSize=50Authorization: Bearer <api_key>返回
{ "tasks": [ { "id": "<task_id>", "title": "Draft a launch checklist." } ]}示例
TypeScript
const BASE_URL = "https://api.syncless.ai"const API_KEY = "<api_key>"const PROJECT_ID = "<project_id>"const projectTasks = await fetch(BASE_URL + "/api/console/v1/projects/" + PROJECT_ID + "/tasks?index=0&pageSize=50", { headers: { "Authorization": "Bearer " + API_KEY, },})if (!projectTasks.ok) { throw new Error(await projectTasks.text())}console.log(await projectTasks.json())const personalTasks = await fetch(BASE_URL + "/api/console/v1/projects/personal/tasks?index=0&pageSize=50", { headers: { "Authorization": "Bearer " + API_KEY, },})if (!personalTasks.ok) { throw new Error(await personalTasks.text())}console.log(await personalTasks.json())Python
import requestsBASE_URL = "https://api.syncless.ai"API_KEY = "<api_key>"PROJECT_ID = "<project_id>"project_tasks = requests.get( BASE_URL + "/api/console/v1/projects/" + PROJECT_ID + "/tasks?index=0&pageSize=50", headers={ "Authorization": "Bearer " + API_KEY, },)project_tasks.raise_for_status()print(project_tasks.json())personal_tasks = requests.get( BASE_URL + "/api/console/v1/projects/personal/tasks?index=0&pageSize=50", headers={ "Authorization": "Bearer " + API_KEY, },)personal_tasks.raise_for_status()print(personal_tasks.json())cURL
curl "https://api.syncless.ai/api/console/v1/projects/<project_id>/tasks?index=0&pageSize=50" \ -H "Authorization: Bearer <api_key>"curl "https://api.syncless.ai/api/console/v1/projects/personal/tasks?index=0&pageSize=50" \ -H "Authorization: Bearer <api_key>"创建项目任务
在标准项目中创建一个任务,并立即发送第一条 prompt。传入 upstream_task_id 时,会在同一项目里的已有任务下游创建;不传时会创建无父级任务。
POST /api/console/v1/projects/<project_id>/tasksAuthorization: Bearer <api_key>Content-Type: application/json请求体
{ "blocks": [ { "type": "text", "text": "Draft a launch checklist." } ], "upstream_task_id": "<optional_upstream_task_id>"}{ "blocks": [ { "type": "text", "text": "Draft a root task." } ]}返回
{ "ok": true, "task": { "id": "<task_id>", "title": "Draft a launch checklist.", "upstreamTaskId": "<upstream_task_id>" }}示例
TypeScript
const BASE_URL = "https://api.syncless.ai"const API_KEY = "<api_key>"const PROJECT_ID = "<project_id>"const response = await fetch(BASE_URL + "/api/console/v1/projects/" + PROJECT_ID + "/tasks", { method: "POST", headers: { "Authorization": "Bearer " + API_KEY, "Content-Type": "application/json", }, body: JSON.stringify({ blocks: [ { type: "text", text: "Draft a launch checklist." }, ], upstream_task_id: "<upstream_task_id>", }),})if (!response.ok) { throw new Error(await response.text())}console.log(await response.json())Python
import jsonimport requestsBASE_URL = "https://api.syncless.ai"API_KEY = "<api_key>"PROJECT_ID = "<project_id>"body = json.dumps({ "blocks": [ {"type": "text", "text": "Draft a launch checklist."}, ], "upstream_task_id": "<upstream_task_id>",}).encode("utf-8")response = requests.post( BASE_URL + "/api/console/v1/projects/" + PROJECT_ID + "/tasks", data=body, headers={ "Authorization": "Bearer " + API_KEY, "Content-Type": "application/json", },)response.raise_for_status()print(response.json())cURL
curl -X POST "https://api.syncless.ai/api/console/v1/projects/<project_id>/tasks" \ -H "Authorization: Bearer <api_key>" \ -H "Content-Type: application/json" \ -d '{ "blocks": [ { "type": "text", "text": "Draft a launch checklist." } ], "upstream_task_id": "<upstream_task_id>" }'获取任务
获取当前 API key 用户在当前工作区内自己拥有的一个任务。
GET /api/console/v1/tasks/<task_id>Authorization: Bearer <api_key>返回
{ "task": { "id": "<task_id>", "title": "Draft a launch checklist." }}示例
TypeScript
const BASE_URL = "https://api.syncless.ai"const API_KEY = "<api_key>"const TASK_ID = "<task_id>"const response = await fetch(BASE_URL + "/api/console/v1/tasks/" + TASK_ID, { headers: { "Authorization": "Bearer " + API_KEY, },})if (!response.ok) { throw new Error(await response.text())}console.log(await response.json())Python
import requestsBASE_URL = "https://api.syncless.ai"API_KEY = "<api_key>"TASK_ID = "<task_id>"response = requests.get( BASE_URL + "/api/console/v1/tasks/" + TASK_ID, headers={ "Authorization": "Bearer " + API_KEY, },)response.raise_for_status()print(response.json())cURL
curl "https://api.syncless.ai/api/console/v1/tasks/<task_id>" \ -H "Authorization: Bearer <api_key>"列出任务消息
列出当前 API key 用户自己拥有的某个任务的历史消息。limit 最大为 20。
GET /api/console/v1/tasks/<task_id>/messages?limit=20Authorization: Bearer <api_key>返回
{ "ok": true, "taskId": "<task_id>", "messages": []}示例
TypeScript
const BASE_URL = "https://api.syncless.ai"const API_KEY = "<api_key>"const TASK_ID = "<task_id>"const response = await fetch(BASE_URL + "/api/console/v1/tasks/" + TASK_ID + "/messages?limit=20", { headers: { "Authorization": "Bearer " + API_KEY, },})if (!response.ok) { throw new Error(await response.text())}console.log(await response.json())Python
import requestsBASE_URL = "https://api.syncless.ai"API_KEY = "<api_key>"TASK_ID = "<task_id>"response = requests.get( BASE_URL + "/api/console/v1/tasks/" + TASK_ID + "/messages?limit=20", headers={ "Authorization": "Bearer " + API_KEY, },)response.raise_for_status()print(response.json())cURL
curl "https://api.syncless.ai/api/console/v1/tasks/<task_id>/messages?limit=20" \ -H "Authorization: Bearer <api_key>"向任务发送 prompt
向已有任务发送一条纯文本 prompt,并立刻返回。如果任务正在运行,API 会返回 400,错误码为 TASK_RUNNING。
POST /api/console/v1/tasks/<task_id>/sendAuthorization: Bearer <api_key>Content-Type: application/json请求体
[ { "type": "text", "text": "Continue with the implementation plan." }]返回
{ "ok": true }任务运行中错误
{ "error": "Task is currently running", "details": { "code": "TASK_RUNNING" }}示例
TypeScript
const BASE_URL = "https://api.syncless.ai"const API_KEY = "<api_key>"const TASK_ID = "<task_id>"const response = await fetch(BASE_URL + "/api/console/v1/tasks/" + TASK_ID + "/send", { method: "POST", headers: { "Authorization": "Bearer " + API_KEY, "Content-Type": "application/json", }, body: JSON.stringify([ { type: "text", text: "Continue with the implementation plan." }, ]),})if (!response.ok) { throw new Error(await response.text())}console.log(await response.json())Python
import jsonimport requestsBASE_URL = "https://api.syncless.ai"API_KEY = "<api_key>"TASK_ID = "<task_id>"body = json.dumps([ {"type": "text", "text": "Continue with the implementation plan."},]).encode("utf-8")response = requests.post( BASE_URL + "/api/console/v1/tasks/" + TASK_ID + "/send", data=body, headers={ "Authorization": "Bearer " + API_KEY, "Content-Type": "application/json", },)response.raise_for_status()print(response.json())cURL
curl -X POST "https://api.syncless.ai/api/console/v1/tasks/<task_id>/send" \ -H "Authorization: Bearer <api_key>" \ -H "Content-Type: application/json" \ -d '[ { "type": "text", "text": "Continue with the implementation plan." } ]'