Build on TaskInSync
A scoped-key REST API, a zero-dependency JavaScript SDK, HMAC-signed webhooks — and a 47-tool MCP server for AI agents.
Authentication
Create an API key in the app under Settings → API keys, then send it on every request as the x-api-key header. Keys are scoped:
- read — GET endpoints only
- write — everything, including create / update / delete
REST endpoints — base URL https://tasknest-production-8f56.up.railway.app/api/v1 · OpenAPI 3.0 spec
| Method | Path | Scope | What it does |
|---|---|---|---|
| GET | /projects | read | List your projects |
| GET | /projects/:id | read | One project (includes tasks) |
| GET | /projects/:id/tasks | read | List a project's tasks |
| GET | /projects/:id/tasks/:taskId | read | One task |
| POST | /projects/:id/tasks | write | Create a task |
| PATCH | /projects/:id/tasks/:taskId | write | Update task fields |
| PATCH | /projects/:id/tasks/:taskId/status | write | Move a task (workflow rules apply) |
| DELETE | /projects/:id/tasks/:taskId | write | Delete a task |
Responses use the envelope { "success": true, "data": … }; errors are { "success": false, "error": "…" } with a matching HTTP status.
Quickstart — curl
curl -H "x-api-key: tn_live_XXXX" \
https://tasknest-production-8f56.up.railway.app/api/v1/projects
curl -X POST -H "x-api-key: tn_live_XXXX" -H "Content-Type: application/json" \
-d '{"title":"Ship the integration","priority":"High"}' \
https://tasknest-production-8f56.up.railway.app/api/v1/projects/PROJECT_ID/tasks
Quickstart — JavaScript SDK
Zero dependencies, works in Node 18+ and the browser. Download tasknest-sdk.js or import it straight from this site:
import { TaskInSync } from 'https://taskinsync.com/sdk/tasknest-sdk.js';
const tn = new TaskInSync({ apiKey: 'tn_live_XXXX' });
const projects = await tn.projects.list();
const task = await tn.tasks.create(projects[0].id, {
title: 'Created from the SDK', priority: 'High', tags: ['api'],
});
await tn.tasks.updateStatus(projects[0].id, task.id, 'In Progress');
TaskInSyncError carrying { status, code, message } — e.g. a read-scope key calling a write endpoint rejects with status: 403.
GraphQL
One endpoint — POST https://tasknest-production-8f56.up.railway.app/api/graphql with your JWT (Authorization: Bearer …) and a body of { "query": "…" }. Queries: me, projects, project(id:), wikiPages(projectId:), search(q:). Mutations: createTask, updateTask, deleteTask — same validation and workflow rules as REST.
{ projects { id, name, taskCount } }
mutation {
createTask(projectId: "PROJECT_ID", title: "From GraphQL", priority: "High") { id, title, status }
}
errors array.
Also on the platform
- Webhooks — HMAC-signed outbound events with retries (app → Integrations).
- MCP server — 47 tools for AI agents (Claude, etc.) to read and act on your workspace.