Documentation
Everything you need to connect to the TaskFlow platform, manage tasks programmatically, and build AI-powered automations.
Getting Started
TaskFlow provides a full REST API that allows you to manage every aspect of your workspace programmatically. The API supports both browser-based access and API key authentication for external integrations.
Base URL
Authentication
There are two ways to authenticate with the TaskFlow API:
- Browser session — Full access when using the platform directly in a browser. No additional setup needed.
- API Key — For external integrations, AI agents, and programmatic access. Include the key in the request header.
API Key Permissions
API keys can be scoped with granular permissions. Use the resource:action format:
| Permission | Description |
|---|---|
* | Full access to all resources |
tasks:read | Read tasks and subtasks |
tasks:write | Create and update tasks |
tasks:delete | Delete tasks |
companies:read | Read companies |
projects:read | Read projects |
folders:read | Read folders |
goals:read | Read goals |
tags:read | Read tags |
tags:write | Create and update tags |
statuses:read | Read statuses |
statuses:write | Create and update statuses |
users:read | Read users |
users:write | Create and update users |
agents:read | Read AI agents |
agents:write | Create and update agents |
teams:read | Read teams |
teams:write | Create and update teams |
assignments:write | Manage assignments |
templates:read | Read templates |
views:read | Read saved views |
analytics:read | Read analytics data |
Entity Hierarchy
TaskFlow uses a structured hierarchy to organize work:
Each level is optional. Tasks can exist without being assigned to any parent entity, or they can be deeply nested within the full hierarchy.
Tasks API
The core resource for managing work items.
Create a task
Archive tasks
Reorder a task
Task object fields
| Field | Type | Description |
|---|---|---|
title | string | Task name (required) |
notes | string | Detailed description |
priority | string | none, low, medium, high |
status_id | string | Status identifier |
folder_id | string | Parent folder |
goal_id | string | Parent goal |
due_date | string | ISO date (YYYY-MM-DD) |
start_date | string | ISO date (YYYY-MM-DD) |
parent_task_id | string | Parent task (for subtasks) |
recurrence_rule | string | daily, weekly, monthly, yearly |
Subtasks
Subtasks are created via POST /api/tasks with the parent_task_id field set to the parent task's ID. They inherit folder and goal from their parent and can be nested to unlimited depth.
Comments & Time Tracking
Comments
Time Tracking
Attachments
Upload and manage file attachments on tasks.
Uploads use multipart/form-data with a file field. Delete requests send the attachment ID in the body.
Dependencies
Create blocking relationships between tasks.
The GET response returns { "blocking": [...], "blocked_by": [...] }. A task cannot depend on itself, and circular dependencies are rejected with a 409 status.
Custom Fields
Add arbitrary key-value metadata to tasks.
Organization API
Manage your workspace hierarchy. All resources support full CRUD operations.
Companies
Projects
Folders
Goals
Organization fields
| Resource | POST / PUT Fields |
|---|---|
companies | name, description, color, sort_order |
projects | name, description, color, company_id, sort_order |
folders | name, color, company_id, project_id, sort_order |
goals | name, description, folder_id, color, sort_order, start_date, due_date |
Tags & Statuses
Tags
Statuses
Users
Manage workspace members.
Both name and email are required. Emails must be unique (returns 409 on conflict). Default role is member.
AI Agents
AI agents are first-class entities in TaskFlow. Each agent can have its own API key, webhook URL, and task assignments.
Create an AI agent
When create_api_key is set to true, the response will include the raw API key once. Store it securely — it cannot be retrieved again.
API Keys
Create an API key
Assignments
Assign tasks, folders, goals, or projects to users, teams, or AI agents. Assignments cascade down the hierarchy automatically.
Assign an AI agent to a task
Webhooks
Configure webhook URLs on AI agents to receive real-time notifications when task events occur. TaskFlow will POST event data to your endpoint.
Webhook events
| Event | Trigger |
|---|---|
task_created | A new task is created and assigned to the agent |
task_updated | An assigned task is modified |
task_completed | An assigned task is marked as complete |
task_assigned | The agent is assigned to a task |
Webhook payload
Webhook delivery history
Each delivery attempt is logged with status code, response body, and timestamp for debugging.
Teams
Teams can contain both human users and AI agents. When a team is assigned to a task, all team members inherit the assignment.
Templates & Views
Templates
Save task configurations as reusable templates, then instantiate them to create pre-configured tasks.
Saved Views
Save filter and display configurations for quick access.
Activity & Analytics
Activity Log
Track changes and actions across your workspace.
GET supports limit and offset query parameters for pagination.
Analytics
Get workspace-wide statistics and trends.
Returns an object with: totalTasks, completedTasks, overdueTasks, dueSoon, completionRate, byPriority, byStatus, trend, goalProgress, and timeThisWeek.
Additional Endpoints
Search
Additional query parameters: priority, due_before, due_after, completed. Returns up to 50 results.
Bulk Operations
Import / Export
Favorites
Notifications
POST actions: generate (auto-create overdue/due-soon alerts), mark_all_read, mark_read (with id), clear_all.
Recent Items
Undo
Undo snapshots expire after 30 seconds. Call /api/undo with { "undo_id": "..." } to restore.
Rate Limiting
API requests are rate-limited per API key. The current limits are generous for normal usage:
- 100 requests per minute per API key
- Browser sessions are not rate-limited
- Rate limit headers are included in all responses