One Tasks API Documentation
Integrate One Tasks into your workflows. Manage projects, tasks, users and time tracking programmatically through our REST API.
https://api.onetasks.app/v1
Introduction
The One Tasks API is a RESTful interface that allows you to interact programmatically with all features of the platform. It uses standard HTTP verbs, returns JSON responses, and uses API keys for authentication.
Standard HTTP verbs (GET, POST, PUT, PATCH, DELETE)
All responses in JSON format with consistent structure
All requests must use TLS. HTTP not accepted
https://api.onetasks.app/v1
Authentication
All API requests require authentication using an API key. Pass your key in the Authorization header as a Bearer token.
Authorization: Bearer ot_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxx
curl -H "Authorization: Bearer ot_live_xxxx" \ -H "Content-Type: application/json" \ https://api.onetasks.app/v1/projects
API Keys
Manage your API keys from the One Tasks admin panel (Admin → API → Keys). API keys are available from the Scale plan onwards.
text-emerald-400
text-amber-400
Key Management Endpoints
/api-keys
/api-keys
/api-keys/{id}
{
"name": "Integration Zapier",
"scopes": ["projects:read", "tasks:write", "time:read"],
"expires_at": "2027-01-01" // optional
}
{
"id": "key_abc123",
"name": "Integration Zapier",
"key": "ot_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"scopes": ["projects:read", "tasks:write", "time:read"],
"created_at": "2026-03-13T10:00:00Z",
"expires_at": "2027-01-01T00:00:00Z"
// ⚠ The key is only shown once. Store it securely.
}
Available Scopes
| Scope | Description |
|---|---|
projects:read |
Read projects and their settings |
projects:write |
Create and update projects |
tasks:read |
Read tasks and their data |
tasks:write |
Create, update and complete tasks |
users:read |
Read workspace users |
users:write |
Invite and manage users |
time:read |
Read time entries |
time:write |
Create and edit time entries |
sprints:read |
Read sprints |
sprints:write |
Create and manage sprints |
webhooks:manage |
Create and manage webhooks |
* |
Full access (all scopes) |
Rate Limits
Requests are rate-limited per API key. Limits vary by plan.
| Plan | Requests/min | Requests/day | Burst |
|---|---|---|---|
| Scale | 60 | 10,000 | 100 |
| Enterprise | 300 | 100,000 | 500 |
Rate limit info is returned in every response header:
X-RateLimit-Limit: 60 X-RateLimit-Remaining: 58 X-RateLimit-Reset: 1710330060
Error Handling
The API uses conventional HTTP response codes. Errors follow a consistent structure.
{
"error": {
"code": "VALIDATION_FAILED",
"message": "The title field is required.",
"details": {
"title": ["required"],
"due_date": ["must_be_future_date"]
},
"request_id": "req_abc123xyz"
}
}
Projects
Create and manage your workspaces and projects.
/v1/projects
/v1/projects
/v1/projects/{id}
/v1/projects/{id}
/v1/projects/{id}
/v1/projects/{id}/members
/v1/projects/{id}/members
{
"data": [
{
"id": "proj_abc123",
"name": "One Tasks Landing",
"description": "Rediseño web Q1 2026",
"status": "active",
"members_count": 4,
"tasks_count": 17,
"color": "#2563EB",
"created_at": "2026-01-15T09:00:00Z"
}
],
"meta": { "total": 12, "page": 1, "per_page": 20 }
}
Tasks
Full CRUD for tasks, assignees, subtasks and comments.
/v1/projects/{id}/tasks
/v1/projects/{id}/tasks
/v1/tasks/{id}
/v1/tasks/{id}
/v1/tasks/{id}
/v1/tasks/{id}/assignees
/v1/tasks/{id}/complete
/v1/tasks/{id}/subtasks
/v1/tasks/{id}/subtasks
/v1/tasks/{id}/comments
/v1/tasks/{id}/comments
{
"title": "Diseñar pantalla de onboarding",
"description": "Incluir los pasos 1-3 del flujo",
"priority": "high", // low | medium | high | urgent
"status": "pending", // pending | in_progress | review | done
"due_date": "2026-04-01",
"assignees": ["usr_abc", "usr_xyz"],
"estimated_hours": 4,
"tags": ["design", "frontend"]
}
Time Tracking
Log, update and query time entries by task, user or project.
/v1/time-entries
/v1/time-entries
/v1/time-entries/{id}
/v1/time-entries/{id}
/v1/tasks/{id}/timer/start
/v1/tasks/{id}/timer/stop
/v1/reports/time
Webhooks
Receive real-time HTTP notifications when events occur in your workspace.
task.created
task.updated
task.completed
time_entry.created
project.archived
sprint.started
{
"event": "task.completed",
"timestamp": "2026-03-13T15:30:00Z",
"workspace_id": "ws_abc123",
"data": {
"task": {
"id": "task_xyz",
"title": "Diseñar pantalla de onboarding",
"completed_by": "usr_abc",
"project_id": "proj_abc123"
}
}
}
SDKs & Code Examples
Official SDKs and community libraries for popular languages.
npm install @onetasks/sdk
composer require onetasks/sdk
pip install onetasks
import OneTasks from '@onetasks/sdk'; const client = new OneTasks({ apiKey: 'ot_live_xxxxxxxxxxxx' }); // Create a task const task = await client.tasks.create({ project_id: 'proj_abc123', title: 'Fix mobile nav bug', priority: 'high', assignees: ['usr_abc'] }); console.log(task.id); // task_xyz789
<?php use OneTasks\Client; $client = new Client('ot_live_xxxxxxxxxxxx'); // List projects $projects = $client->projects()->list(); // Create a task $task = $client->tasks()->create([ 'project_id' => 'proj_abc123', 'title' => 'Fix mobile nav bug', 'priority' => 'high', ]); echo $task->id; // task_xyz789
© 2026 One Tasks · Nex Group Agency