{"openapi":"3.1.0","info":{"title":"x402 Task Management API","version":"2.0.0","description":"Pay-per-call coding-agent task/PM next-actions plan.","x-guidance":"POST /projects (free) to create a project, POST /projects/{id}/tasks (free) to add tasks, then GET /projects/{id}/plan (paid) for a computed next-actions plan: unblocked tasks, blocked tasks + reasons, critical path. You are charged only when the project has tasks to plan over — an unknown or empty project returns 404 and costs nothing.","x-payment-policy":"NEVER CHARGED FOR AN UNDELIVERABLE ANSWER. The x402 middleware cancels settlement for any response >= 400, so every error below moves $0.00 and emits no payment-response header. An empty plan over a task-less project is returned as 404, never as a billed 200."},"paths":{"/projects/{projectId}/plan":{"get":{"operationId":"projectPlan","summary":"Computed next-actions plan","tags":["Productivity"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Next-actions plan computed over at least one task. The only response you are charged for."},"402":{"description":"Payment Required"},"404":{"description":"NOT CHARGED. `project_not_found` (no such project) or `project_has_no_tasks` (project exists but has no tasks, so the plan would be empty). Both `retryable:false`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["project_not_found","project_has_no_tasks"]},"message":{"type":"string"},"charged":{"type":"boolean","enum":[false]},"retryable":{"type":"boolean","enum":[false]},"projectId":{"type":"string"},"taskCount":{"type":"integer"}}}}}},"405":{"description":"NOT CHARGED. Wrong HTTP verb for this resource; see the Allow header."},"503":{"description":"NOT CHARGED. `task_store_unavailable` — the project store could not be read. `retryable:true`."}}}}}}