Help centerDevelopers & automation
REST API
Read and change projects, tasks and comments from your own code.
On this page
Authenticate
Create a personal access token in Settings → AI assistants, then send it with every request. The token acts as you, with your access, in the workspace where you created it.
curl -H "Authorization: Bearer $JINKOUP_TOKEN" \
"https://jinkoup.com/api/v1/tasks?assignee=me&due=overdue"Base URL: https://jinkoup.com/api/v1. Requests and responses are JSON; errors look like { "error": "…" }.
Endpoints
| Method & path | What it does |
|---|---|
GET /me | You, your workspace and your role. |
GET /projects | Projects with their stages and open-task counts. |
GET /projects/:id/stages | A project's stages (columns), in order. |
GET /members | People in the workspace. |
GET /tasks | List tasks. Query: project_id, assignee (me / email / none), status (open / completed / all), due (overdue / today / next_7_days / no_date), limit (1–200), cursor, sort (created / updated), updated_since (ISO date-time), or q to search. Tasks include created_at and updated_at. |
POST /tasks | Create a task: title, plus optional project_id, stage, parent_task_id, assignee, due_date (YYYY-MM-DD), priority (low / medium / high), description. |
GET /tasks/:id | A task with description, subtasks, recent comments and attachments. |
PATCH /tasks/:id | Update title, due_date (“none” clears), priority, assignee, stage, description or completed. |
DELETE /tasks/:id | Delete a task with its subtasks, comments and files. |
GET /tasks/:id/comments | All comments, oldest first. |
POST /tasks/:id/comments | Add a comment: { "text": "…" }. @email mentions notify people. Returns the new comment. |
GET /comments | Recent comments on tasks you can see, newest first. Query: task_id, project_id, limit (1–100). |
GET /webhooks, POST /webhooks, DELETE /webhooks/:id, POST /webhooks/:id/test | Manage your webhooks in code. |
Create a task
curl -X POST https://jinkoup.com/api/v1/tasks \
-H "Authorization: Bearer $JINKOUP_TOKEN" \
-H "Content-Type: application/json" \
-d '{"title":"Renew domain","project_id":"…","due_date":"2026-10-20","assignee":"me","priority":"high"}'Good to know
- Lists are paginated: pass the returned
next_cursorascursorto get the next page. - Empty fields in
POST /tasksandPATCH /tasks/:idare ignored, so automation tools can send unmapped fields. Sendnoneto clear a value. - Status codes: 400 invalid input, 401 missing or bad token, 403 no access, 404 not found, 413 body over 1 MB.
- Cross-origin requests (CORS) are allowed.
Related articles
- WebhooksGet a signed JSON event at your URL whenever tasks change.
- Manage AI access and personal access tokensCreate and revoke tokens, and disconnect AI apps you've allowed.
- Zapier, Make and n8nAutomate JinkoUp with thousands of apps: the JinkoUp Zapier app, or webhooks and the REST API in Make and n8n.
Still stuck? Tell us what you were trying to do and we'll help.
Contact support