Can an AI agent use TickTick?
As of 6 Oct 2026, an AI agent gets into TickTick on its own and does 57% of the core work.
- Find: Some docs for agents: An MCP server.
- Access: Sign-up in a browser.
- Use: 57% of the work.
- Pay: Reaches the checkout: Stopped at the card form.
- Leave: Leaves on its own: Nothing to cancel, deletes its account.
To reach L4 · Runs on its own: do 80% of the core work (now 57%).
What the levels meanDriven 6 Oct 20261 drive so farRules of 15 Oct 2026Claim this page
Written and checked by our agents from this drive's record. How we write.
Who gets in
- Agents on a serverGet in on their own.
- Signed agentsThe sign-up page opens.
- Agents in a person's browserNot measured yet.
Sign-up page checked 13 Oct 2026. Signed agents: the ones Cloudflare verifies. Where agents come from
What an agent can do in TickTick.
On its own
- Create, organize, tag, prioritize and repeat tasks
- Build lists and switch them to a Kanban board
- Leave comments on tasks and break them into checklists and subtasks
3 more
- Log a timed focus session on a task
- Set a reminder on a task
- Start a habit and record daily check-ins
What it can't, and why
- Sign up or get an API key without using the web appNo sign-up API; the key is only made in web settings, no device-login option
- Create a countdown to a dateThe product only lets the agent list countdowns, not create one
- See streaks for habits the agent createdThose habits never appeared in the regular app
2 more
- Delete the account without using the web appNo account-deletion endpoint exists
- Pay for Premium without a cardOnly a card-based checkout page is offered
Can an AI agent sign up for TickTick on its own?
Yes, in a browser, without a human. No sign-up API; web form (email + password) at /signup, no CAPTCHA, straight into the web app
Does TickTick have an MCP server, and can an agent connect to it?
Yes. TickTick has an official MCP server. The server lists 55 tools, signs an agent in with OAuth and speaks the 28 Jul 2026 MCP spec.
A new agent can get in on its own: in the drive of 6 Oct 2026, our agent signed up, verified and got its key without a person. Through the MCP server, 7 of our agent's 8 attempts worked.
What the drive found
API–OpenAPIMCP · official–CLI–SDK–llms.txt–Webhooks–SandboxHow does an AI agent get a TickTick API key?
In the drive of 6 Oct 2026, our agent got its TickTick API key in a browser, without a person. Personal API key made in Settings > Account > API Keys (docs say 'API Token'); OAuth is authorization_code only with browser consent, DCR registration, no device flow
Can an AI agent delete its TickTick account?
Yes, in a browser, without a human. Settings > Account > Delete Account (2 confirmations + password); key 401 right after; no deletion API
Can an AI agent pay for TickTick?
Reaches the checkout: stopped at the card form.
- Stripe Checkout
It has a free plan.
What would let agents pay on their own
- Accept x402 or MPP on your API. Answer an unpaid call with 402 and a payment challenge, so an agent pays per call or buys credits without an account or a card.Step-by-step guide
- List your plans on Stripe Projects. Agents buy a plan with `stripe projects add`, paid with a token under a spend cap the owner sets (projects.dev).Step-by-step guide
No x402/MPP/UCP/402; no billing API; Premium US$4.99/month via Stripe Checkout with card fields (not paid)
From the drive of 6 Oct 2026.
For the team behind TickTick.
Where agents stop in TickTick today, and the fixes that get them further, highest impact first.
The fixes, highest impact first
- Offer a device flow for API accessStep-by-step guide
- Return 4xx with clear validation errors
- Add countdown create, update and delete
3 more fixes
- Show API-created habits and update streaks
- Reject Premium-only fields with clear errors
- Offer account deletion through the API
- Claim it free and reply next to the result.
- A Drive, $49: your private report, with where agents stop, the evidence and the fixes that move your level.
- Fixed something? Order a Drive ($49) any time, or the Monthly drive ($29/month).
Details
Your API, MCP server or CLI is the product? An Audit ($299) also checks every documented route, MCP tool and CLI command against your docs. Compare plans.
Already claimed it? Open it in your dashboard.
Rather not be driven? Block AgentDrivesAgent in robots.txt or write to us. We stop driving it ourselves; this page stays, with its date.
Embed the badge on your site
Behind the level.
The part scores and the measures behind them.
Part scores and the measures · paid plans
Part scores
Agent-ready setup
- llms.txt: not found
- OpenAPI: not found
- MCP server: found
- CLI: not found
Not measured in this drive: Holds up, Docs match (part of an Audit).
Security: reported privately to the owner
The measures
- Work done57
- Reliability100
- Crash test–
Needs a paid plan
Not counted in the level. Our drive used free plan.
| Capability | Plan |
|---|---|
| View schedule in multiple calendar layouts | Premium |
| Capture tasks by voice | Premium |
| Set a task's time duration | Premium |
For agents and builders.
The drive as data, every checkpoint and all 42 attempts.
How an agent connects · 5 tips
/api/tools/ticktick.json/tools/ticktick.mdMCP get_tool {"slug":"ticktick"}
- Make a personal API key once in the web settings, then use MCP at https://mcp.ticktick.com (2026-07-28, Bearer key) or REST at api.ticktick.com/open/v1
- MCP argument names differ from REST (e.g. checklist_item_id); errors are clear pydantic messages
- Tagging a task does not create a tag object; POST /open/v1/tag if it must be listed
- Validation errors come as HTTP 500; read errorMessage
- Free plan silently drops task duration
Every checkpoint, in detail · 9 checkpoints
- DocsHeadlessPublic markdown API reference at developer.ticktick.com/docs/openapi.md; MCP help article on help.ticktick.com
- Sign upIn a browserNo sign-up API; web form (email + password) at /signup, no CAPTCHA, straight into the web app
- VerifyHeadlessWelcome mail within 1 min; verify link worked with plain HTTP GET; verification not required to use the app
- KeyIn a browserPersonal API key made in Settings > Account > API Keys (docs say 'API Token'); OAuth is authorization_code only with browser consent, DCR registration, no device flow
- First callHeadlessGET /open/v1/project with Bearer key -> 200
- First actionHeadlessMCP create_task created a task, read back via GET /open/v1/project/{p}/task/{id}
- PayIn a browserNo x402/MPP/UCP/402; no billing API; Premium US$4.99/month via Stripe Checkout with card fields (not paid)
- CancelNot neededNothing to cancel: our agent used the free plan.
- DeleteIn a browserSettings > Account > Delete Account (2 confirmations + password); key 401 right after; no deletion API
The attempt log · 42 attempts
| Capability | Route | Result | Evidence |
|---|---|---|---|
| robots.txt / aipref: Fetch robots.txt | api | done ✓ | GET https://ticktick.com/robots.txt 200: User-agent: * Allow: / with Disallows (/static,/forum,/oauth,...); no Content-Usage or Content-signal lines |
| llms.txt: Fetch /llms.txt on ticktick.com and developer.ticktick.com | api | failed ✓ | both 404 HTML |
| well-known cards: ai-catalog.json, agent-card.json, agent.json, mcp/server-card.json, ucp, auth.md, SKILL.md on ticktick.com | api | failed ✓ | all 404 text/html |
| OAuth AS metadata: GET /.well-known/oauth-authorization-server | api | done ✓ | ticktick.com 200 application/json: issuer https://ticktick.com, registration_endpoint https://api.ticktick.com/oauth/register (dynamic), grant_types authorization_code only, code_challenge_methods plain,S256; no client_id_metadata_document_supported, no device_authorization_endpoint, no agent_auth |
| API docs: Read developer docs | api | done ✓ | https://developer.ticktick.com/docs/openapi.md (docsify markdown, 102 KB): Task, Project, Project Group, Column, Tag, Focus, Countdown, Habit, Comment endpoints under /open/v1; OAuth2 + personal API token (Settings > Account > API Token) |
| markdown docs: Accept: text/markdown on docs page; .md URL | api | partial ✓ | Accept: text/markdown on /docs/index.html -> text/html, no Vary: Accept; raw markdown served at /docs/openapi.md (application/octet-stream) because the docs are docsify |
| MCP server/discover: POST server/discover to https://mcp.ticktick.com/ unauthenticated | mcp | done ✓ | 401 application/json, WWW-Authenticate: Bearer error=invalid_token, resource_metadata=https://mcp.ticktick.com/.well-known/oauth-protected-resource |
| MCP PRM: GET https://mcp.ticktick.com/.well-known/oauth-protected-resource | mcp | done ✓ | 200 application/json {"resource":"https://mcp.ticktick.com/","authorization_servers":["https://ticktick.com/"],"scopes_supported":["tasks:write","tasks:read"]} |
| MCP server card: GET https://mcp.ticktick.com/server-card | mcp | failed ✓ | 404 text/plain Not Found |
| Find docs: Find API docs | api | done ✓ | https://developer.ticktick.com/docs/openapi.md (public, no login); MCP help article https://help.ticktick.com/articles/7438129581631995904 |
| Sign up: Create account | none | failed ✓ | No documented sign-up API/CLI; Open API docs require an existing TickTick account (OAuth or personal API token from web app). Only route is the web form. |
| Sign up: Create account via web form | browser | done ✓ | https://ticktick.com/signup: email + password, Sign Up -> landed in /webapp/#p/inbox/tasks immediately; no CAPTCHA seen (captcha flags all false) |
| Verify email: Open verification link from welcome mail | api | done ✓ | Welcome mail from noreply@mail.ticktick.com arrived within 1 min. - TickTick' |
| Get API credentials: Create personal API key | browser | done ✓ | Settings > Account > API Keys > Manage > Enable Key > name 'AgentDrives' > Add -> key tp_04cd…(masked), copied with the Copy button; docs call it 'Settings > Account > API Token' (UI says 'API Keys') |
| First API call: GET /open/v1/project with bearer key | api | done ✓ | 200 application/json [] (new account, no custom lists) |
| MCP server/discover (auth): POST server/discover with bearer key | mcp | done ✓ | 200 {"result":{"supportedVersions":["2026-07-28"],"capabilities":{"prompts","resources","tools"}, serverInfo "TickTick MCP Server"}}; legacy initialize offering 2026-07-28 answers protocolVersion 2025-11-25 |
| MCP tools/list: tools/list via 2026-07-28 | mcp | done ✓ | 55 tools: projects, tasks, habits, focus, columns, comments, countdowns (list only), project groups, tags, search/fetch |
| First real action: Create a task via MCP create_task | mcp | done ✓ | tools/call create_task -> task 6ac47d15… in inbox133815812; GET /open/v1/project/inbox133815812/task/6ac47d15… returned title 'AgentDrives MCP task', priority 3 |
| Create and manage a task: Create (MCP), read, complete, list completed, delete a task | mcp | done ✓ | MCP create_task -> id 6ac47d15…; API GET task 200 same title; POST /open/v1/project/{p}/task/{id}/complete -> status 2; POST /open/v1/task/completed lists it; DELETE -> 200 |
| Organize tasks into lists (projects): Create list, add tasks, read list data | api | done ✓ | POST /open/v1/project -> 6ac47d1f… 'AgentDrives List'; POST /open/v1/task with projectId; GET /open/v1/project/6ac47d1f…/data shows both tasks |
| View schedule in multiple calendar layouts: Calendar layouts | none | plan_gated | https://ticktick.com/about/upgrade: 'Multiple Calendar Views' listed under Premium (US$49.99/Year); Free has 'Calendar View: Basic'; no API for views |
| Track a habit with check-ins and streak stats: Create daily habit, check in 3 days, read back | api | partial ✓ | POST /open/v1/habit -> 6ac47d6c…; POST /open/v1/habit/{id}/checkin stamps 20261004-06 status 2 -> 200; GET /open/v1/habit/checkins returns all 3 check-ins; but GET /open/v1/habit/{id} shows totalCheckIns 0, currentStreak null |
| Run a Pomodoro focus timer on a task: Log a 25-min pomodoro on a task | api | done ✓ | POST /open/v1/focus type 0, taskId 6ac47d26…, 04:00-04:25 -> id 6ac47d78…, duration 1500000; GET /open/v1/focus/{id}?type=0 and GET /open/v1/focus?from..to both return it |
| Set a reminder/notification on a task: Task with reminder 15 min before | api | done ✓ | POST /open/v1/task reminders ['TRIGGER:-PT15M'] -> GET /open/v1/project/{p}/data shows reminders ['TRIGGER:-PT15M'] |
| Capture tasks by voice: Voice capture | none | plan_gated | Map marks paid; pricing page lists 'AI Features' in Premium compare table; no API |
| Track a countdown to an important date: Create a countdown | api | failed ✓ | Docs only have GET /open/v1/countdown (returns []); no create endpoint in docs or MCP (only list_countdowns) |
| Switch list to Kanban view: Switch list to kanban and add a column | api | done ✓ | POST /open/v1/project/6ac47d1f… viewMode kanban -> 200 viewMode kanban; POST /open/v1/project/{id}/column 'Doing' -> GET column lists it |
| Apply a smart filter: Filter high priority tasks with tag | api | done ✓ | POST /open/v1/task/filter {tag:[agentdrives],priority:[5],status:[0]} -> exactly the tagged High task |
| Add tags to a task: Tag a task, create tag, filter by tag | api | done ✓ | Task created with tags ['agentdrives'] (read back in project data); POST /open/v1/tag -> GET /open/v1/tag lists it; filter by tag returns the task |
| Add checklist items: Task with 2 checklist items, complete one | mcp | done ✓ | POST /open/v1/task items Outline/Draft -> kind CHECKLIST; MCP complete_checklist_item (first try failed: param is checklist_item_id, clear pydantic error) -> GET shows Outline status 1 |
| Set task priority: High priority task | api | done ✓ | priority 5 set on create, read back in project data and filter priority [5] |
| Break a task into subtasks: Create subtask under parent | api | done ✓ | POST /open/v1/task parentId 6ac47d26… -> project data shows child parentId set and parent childIds ['6ac47d2d…'] |
| Set a recurring rule: Weekly repeating task, complete it | api | done ✓ | repeatFlag RRULE:FREQ=WEEKLY;INTERVAL=1; complete -> task stays status 0 with dueDate moved 2026-10-08 -> 2026-10-15 |
| Set a task's time duration: Task 09:00-10:30 | api | plan_gated ✓ | POST and update with startDate 09:00, dueDate 10:30 -> both returned startDate=dueDate=10:30 (no error); pricing page lists 'Task Duration' under Premium |
| Comment on a task: Add and read a comment | api | done ✓ | POST /open/v1/project/{p}/task/{t}/comment -> id 6ac47d32…; GET …/comments returns it (GET on …/comment singular -> 500 'Request method GET not supported') |
| API errors: Error shapes | api | done ✓ | Empty title -> HTTP 500 application/json {errorCode:app_runtime, errorMessage:'task title is empty'}; unknown project -> 500 'Unknown exception'; no token -> 401 WWW-Authenticate Bearer |
| Track a habit with check-ins and streak stats: Check the API-created habit and its streak in the web app | browser | failed ✓ | https://ticktick.com/webapp/#q/all/habit shows 'Develop a habit' (empty) after reload, also after updating the habit with iconRes/color; GET /open/v1/habit still lists it; GET /open/v1/habit/sections [] |
| Pay: Probe agent payment rails and checkout | browser | done ✓ | x402./mpp./agents.ticktick.com do not resolve; no 402 on api.ticktick.com (401 Bearer); no /.well-known/ucp, no openapi.json, no ticktick listing in x402 Bazaar or mpp.dev/api/services; Settings > Premium > US$4.99/Month > Upgrade Now -> Stripe Checkout (checkout.stripe.com, 'TickTick Limited', card fields, page loads hCaptcha script, checkbox 'I am an AI agent and have followed the instructions above'). Not paid. |
| Clean up created data: Delete focus, list, tag | api | done ✓ | DELETE /open/v1/focus/{id}?type=0 -> 200 then GET 404; DELETE /open/v1/project/{id} -> 200, GET /open/v1/project []; MCP delete_tag -> deleted, GET /open/v1/tag [] |
| Delete account: Delete account and data | none | failed ✓ | No account-deletion endpoint in the Open API docs or the 55 MCP tools |
| Delete account: Delete account in web app | browser | done ✓ | Settings > Account > Delete Account: tick two confirmations, enter password, Confirm -> logged out to https://ticktick.com/; afterwards GET /open/v1/project with the key -> 401 invalid_token and MCP tools/call -> 401 |
| Cancel plan: Cancel subscription | none | skipped | No plan was started (free plan); Premium is a Stripe Checkout subscription; no billing API in docs |
Also in Task management.
AkiflowL1Can't sign up on its ownTickTick vs Akiflow
TaskadeL1Can't sign up on its ownTickTick vs Taskade
TodoistL1Can't sign up on its ownTickTick vs Todoist