+
+

TaskFlow API Documentation

+

Build powerful integrations with TaskFlow's RESTful API. Access projects, tasks, users, and more programmatically.

+ +
+ + +
+
+ API Status: Operational +
+
+
+ +
+

Introduction

+

The TaskFlow API is a RESTful API that allows you to integrate TaskFlow's project management capabilities into your applications. Our API follows standard HTTP conventions and returns JSON responses.

+ +
+
ℹ️
+
+

Base URL

+ https://api.taskflow.com/v2 +
+
+ +

Key Features

+
    +
  • RESTful architecture with predictable URLs
  • +
  • JSON request and response bodies
  • +
  • Standard HTTP status codes
  • +
  • OAuth 2.0 and API key authentication
  • +
  • Rate limiting and pagination
  • +
  • Comprehensive error messages
  • +
  • Real-time webhooks
  • +
  • SDKs for popular languages
  • +
+
+ +
+

Authentication

+

TaskFlow API supports two authentication methods: API Keys for server-to-server communication and OAuth 2.0 for user-facing applications.

+ +
+
+

API Key Authentication

+

Include your API key in the Authorization header:

+ +
+
+ Request Headers + +
+
Authorization: Bearer your_api_key_here
+Content-Type: application/json
+
+
+ +
+

OAuth 2.0

+

For user-facing applications, use OAuth 2.0 with the authorization code flow:

+ +
+
+ Authorization URL + +
+
https://api.taskflow.com/oauth/authorize?
+  client_id=your_client_id&
+  redirect_uri=your_redirect_uri&
+  response_type=code&
+  scope=read write
+
+
+
+
+ +
+

Rate Limiting

+

API requests are rate limited to ensure fair usage and system stability.

+ +
+
+

Free Tier

+
1,000 requests/hour
+
Burst: 100 requests/minute
+
+
+

Pro Tier

+
10,000 requests/hour
+
Burst: 500 requests/minute
+
+
+

Enterprise

+
100,000 requests/hour
+
Burst: 2,000 requests/minute
+
+
+ +

Rate Limit Headers

+
+
+ Response Headers +
+
X-RateLimit-Limit: 1000
+X-RateLimit-Remaining: 999
+X-RateLimit-Reset: 1640995200
+
+
+ +
+

Error Handling

+

TaskFlow API uses conventional HTTP response codes and returns detailed error information in JSON format.

+ +
+
+
200
+
+

OK

+

Request succeeded

+
+
+
+
400
+
+

Bad Request

+

Invalid request parameters

+
+
+
+
401
+
+

Unauthorized

+

Invalid or missing authentication

+
+
+
+
403
+
+

Forbidden

+

Insufficient permissions

+
+
+
+
404
+
+

Not Found

+

Resource not found

+
+
+
+
429
+
+

Too Many Requests

+

Rate limit exceeded

+
+
+
+ +

Error Response Format

+
+
+ Error Response + +
+
{
+  "error": {
+    "code": "validation_error",
+    "message": "The request contains invalid parameters",
+    "details": [
+      {
+        "field": "name",
+        "message": "Name is required"
+      }
+    ],
+    "request_id": "req_1234567890"
+  }
+}
+
+
+ +
+

Projects

+

Projects are the top-level containers for organizing tasks and team collaboration.

+ +
+
+
+
GET
+
/projects
+
List Projects
+
+ +
+

Retrieve a list of projects accessible to the authenticated user.

+ +

Query Parameters

+
+
+
limit
+
integer
+
Number of results to return (1-100, default: 20)
+
+
+
offset
+
integer
+
Number of results to skip (default: 0)
+
+
+
status
+
string
+
Filter by status: active, completed, archived
+
+
+ +
+
+ Example Request +
+ + + +
+ +
+
+
curl -X GET "https://api.taskflow.com/v2/projects?limit=10&status=active" \
+  -H "Authorization: Bearer your_api_key_here" \
+  -H "Content-Type: application/json"
+
const response = await fetch('https://api.taskflow.com/v2/projects?limit=10&status=active', {
+  method: 'GET',
+  headers: {
+    'Authorization': 'Bearer your_api_key_here',
+    'Content-Type': 'application/json'
+  }
+});
+
+const projects = await response.json();
+
import requests
+
+headers = {
+    'Authorization': 'Bearer your_api_key_here',
+    'Content-Type': 'application/json'
+}
+
+response = requests.get(
+    'https://api.taskflow.com/v2/projects',
+    headers=headers,
+    params={'limit': 10, 'status': 'active'}
+)
+
+projects = response.json()
+
+
+ +
+
+ Example Response + +
+
{
+  "data": [
+    {
+      "id": "proj_1234567890",
+      "name": "Website Redesign",
+      "description": "Complete overhaul of company website",
+      "status": "active",
+      "created_at": "2025-01-15T10:30:00Z",
+      "updated_at": "2025-01-20T14:22:00Z",
+      "owner": {
+        "id": "user_0987654321",
+        "name": "John Doe",
+        "email": "john@company.com"
+      },
+      "team_id": "team_1122334455",
+      "task_count": 24,
+      "completed_tasks": 12,
+      "progress": 50.0,
+      "due_date": "2025-03-01T00:00:00Z",
+      "tags": ["design", "frontend", "priority-high"]
+    }
+  ],
+  "pagination": {
+    "limit": 10,
+    "offset": 0,
+    "total": 1,
+    "has_more": false
+  }
+}
+
+ +
+ +
+
+
+ +
+
+
POST
+
/projects
+
Create Project
+
+ +
+

Create a new project.

+ +

Request Body

+
+
+
name
+
string
+
Project name (1-100 characters)
+
+
+
description
+
string
+
Project description (max 1000 characters)
+
+
+
team_id
+
string
+
ID of the team to assign the project to
+
+
+
due_date
+
string
+
Due date in ISO 8601 format
+
+
+
tags
+
array
+
Array of tag strings
+
+
+ +
+
+ Example Request + +
+
curl -X POST "https://api.taskflow.com/v2/projects" \
+  -H "Authorization: Bearer your_api_key_here" \
+  -H "Content-Type: application/json" \
+  -d '{
+    "name": "Mobile App Development",
+    "description": "Build iOS and Android mobile applications",
+    "team_id": "team_1122334455",
+    "due_date": "2025-06-01T00:00:00Z",
+    "tags": ["mobile", "ios", "android"]
+  }'
+
+
+
+
+
+ +
+

Tasks

+

Tasks represent individual work items within projects.

+ +
+
+
+
GET
+
/projects/{project_id}/tasks
+
List Tasks
+
+ +
+

Retrieve tasks for a specific project.

+ +

Path Parameters

+
+
+
project_id
+
string
+
The ID of the project
+
+
+ +

Query Parameters

+
+
+
status
+
string
+
Filter by status: todo, in_progress, completed
+
+
+
assignee_id
+
string
+
Filter by assigned user ID
+
+
+
priority
+
string
+
Filter by priority: low, medium, high, urgent
+
+
+ +
+
+ Example Response + +
+
{
+  "data": [
+    {
+      "id": "task_9876543210",
+      "title": "Design homepage mockup",
+      "description": "Create wireframes and visual mockups for the new homepage",
+      "status": "in_progress",
+      "priority": "high",
+      "created_at": "2025-01-16T09:15:00Z",
+      "updated_at": "2025-01-18T11:30:00Z",
+      "due_date": "2025-01-25T17:00:00Z",
+      "assignee": {
+        "id": "user_1357924680",
+        "name": "Jane Smith",
+        "email": "jane@company.com"
+      },
+      "project_id": "proj_1234567890",
+      "tags": ["design", "homepage"],
+      "time_estimate": 480,
+      "time_spent": 240,
+      "subtasks": [
+        {
+          "id": "subtask_1111111111",
+          "title": "Create wireframes",
+          "completed": true
+        },
+        {
+          "id": "subtask_2222222222",
+          "title": "Design visual mockups",
+          "completed": false
+        }
+      ]
+    }
+  ],
+  "pagination": {
+    "limit": 20,
+    "offset": 0,
+    "total": 1,
+    "has_more": false
+  }
+}
+
+
+
+
+
+ +
+

Users

+

Manage user accounts and profiles.

+ +
+
+
+
GET
+
/users/me
+
Get Current User
+
+ +
+

Retrieve information about the authenticated user.

+ +
+
+ Example Response + +
+
{
+  "id": "user_0987654321",
+  "name": "John Doe",
+  "email": "john@company.com",
+  "avatar_url": "https://cdn.taskflow.com/avatars/user_0987654321.jpg",
+  "role": "admin",
+  "created_at": "2024-12-01T10:00:00Z",
+  "last_active": "2025-01-20T15:30:00Z",
+  "timezone": "America/New_York",
+  "preferences": {
+    "notifications": {
+      "email": true,
+      "push": true,
+      "desktop": false
+    },
+    "theme": "light"
+  },
+  "subscription": {
+    "plan": "pro",
+    "status": "active",
+    "expires_at": "2025-12-01T00:00:00Z"
+  }
+}
+
+
+
+
+
+ +
+

Teams

+

Manage teams and team memberships.

+ +
+
+
+
GET
+
/teams
+
List Teams
+
+ +
+

Retrieve teams that the authenticated user belongs to.

+ +
+
+ Example Response + +
+
{
+  "data": [
+    {
+      "id": "team_1122334455",
+      "name": "Design Team",
+      "description": "UI/UX designers and visual artists",
+      "created_at": "2024-11-15T08:00:00Z",
+      "member_count": 8,
+      "project_count": 12,
+      "owner": {
+        "id": "user_0987654321",
+        "name": "John Doe",
+        "email": "john@company.com"
+      },
+      "members": [
+        {
+          "id": "user_1357924680",
+          "name": "Jane Smith",
+          "email": "jane@company.com",
+          "role": "member",
+          "joined_at": "2024-11-20T10:30:00Z"
+        }
+      ]
+    }
+  ],
+  "pagination": {
+    "limit": 20,
+    "offset": 0,
+    "total": 1,
+    "has_more": false
+  }
+}
+
+
+
+
+
+ +
+

Webhooks

+

Set up real-time notifications for events in your TaskFlow account.

+ +
+

Supported Events

+
+
+
project.created
+
New project created
+
+
+
project.updated
+
Project details changed
+
+
+
task.created
+
New task created
+
+
+
task.completed
+
Task marked as completed
+
+
+
user.invited
+
User invited to team
+
+
+
comment.added
+
Comment added to task
+
+
+
+ +
+
+
+
POST
+
/webhooks
+
Create Webhook
+
+ +
+

Create a new webhook endpoint.

+ +
+
+ Example Request + +
+
curl -X POST "https://api.taskflow.com/v2/webhooks" \
+  -H "Authorization: Bearer your_api_key_here" \
+  -H "Content-Type: application/json" \
+  -d '{
+    "url": "https://your-app.com/webhooks/taskflow",
+    "events": ["task.created", "task.completed"],
+    "secret": "your_webhook_secret"
+  }'
+
+
+
+
+
+ + + +
+

SDKs

+

Official SDKs and libraries for popular programming languages.

+ +
+
+
🟨
+

JavaScript/Node.js

+

Official JavaScript SDK for browser and Node.js applications.

+
+ npm install @taskflow/sdk +
+ +
+ +
+
🐍
+

Python

+

Official Python SDK with async support.

+
+ pip install taskflow-sdk +
+ +
+ +
+
+

Java

+

Official Java SDK for enterprise applications.

+
+ implementation 'com.taskflow:sdk:2.1.0' +
+ +
+ +
+
🔷
+

Go

+

Official Go SDK with full API coverage.

+
+ go get github.com/taskflow/go-sdk +
+ +
+
+
+ +
+

Changelog

+

Recent updates and changes to the TaskFlow API.

+ +
+
+
2025-01-15
+
v2.1.0
+
+

New Features

+
    +
  • Added search endpoint with full-text search capabilities
  • +
  • Introduced webhook support for real-time notifications
  • +
  • Added subtasks support in task objects
  • +
+

Improvements

+
    +
  • Increased rate limits for Pro and Enterprise tiers
  • +
  • Enhanced error messages with more detailed information
  • +
  • Added time tracking fields to tasks
  • +
+
+
+ +
+
2024-12-20
+
v2.0.0
+
+

Breaking Changes

+
    +
  • Updated authentication to use Bearer tokens
  • +
  • Changed date format to ISO 8601
  • +
  • Renamed several field names for consistency
  • +
+

New Features

+
    +
  • Added teams endpoint
  • +
  • Introduced pagination for all list endpoints
  • +
  • Added OAuth 2.0 support
  • +
+
+
+
+
+ +
+

Support

+

Get help with the TaskFlow API.

+ +
+
+
📚
+

Documentation

+

Comprehensive guides and tutorials

+ View Docs +
+ +
+
💬
+

Community Forum

+

Ask questions and share knowledge

+ Join Forum +
+ +
+
🎫
+

Support Tickets

+

Get direct help from our team

+ Contact Support +
+ +
+
📊
+

API Status

+

Check current API status and uptime

+ View Status +
+
+
+