REST API v1.0 Scale+

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
API Status: Operational

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.

REST

Standard HTTP verbs (GET, POST, PUT, PATCH, DELETE)

JSON

All responses in JSON format with consistent structure

HTTPS

All requests must use TLS. HTTP not accepted

Base URL
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.

Header
Authorization: Bearer ot_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxx
cURL
curl -H "Authorization: Bearer ot_live_xxxx" \
     -H "Content-Type: application/json" \
     https://api.onetasks.app/v1/projects
Never expose your API key in client-side code or public repositories. Rotate your keys immediately if you suspect they have been compromised.

API Keys

Manage your API keys from the One Tasks admin panel (Admin → API → Keys). API keys are available from the Scale plan onwards.

ot_live_... Production

text-emerald-400

ot_test_... Test

text-amber-400

Key Management Endpoints

GET /api-keys
POST /api-keys
DELETE /api-keys/{id}
POST /api-keys — Create Key
{
  "name": "Integration Zapier",
  "scopes": ["projects:read", "tasks:write", "time:read"],
  "expires_at": "2027-01-01"  // optional
}
201 Created
{
  "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.

200
OK
201
Created
400
Bad Request
401
Unauthorized
403
Forbidden
404
Not Found
422
Unprocessable
429
Rate Limited
422 Error Response Example
{
  "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.

GET /v1/projects
POST /v1/projects
GET /v1/projects/{id}
PUT /v1/projects/{id}
DELETE /v1/projects/{id}
GET /v1/projects/{id}/members
POST /v1/projects/{id}/members
GET /v1/projects — Response Example
{
  "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.

GET /v1/projects/{id}/tasks
POST /v1/projects/{id}/tasks
GET /v1/tasks/{id}
PATCH /v1/tasks/{id}
DELETE /v1/tasks/{id}
POST /v1/tasks/{id}/assignees
POST /v1/tasks/{id}/complete
GET /v1/tasks/{id}/subtasks
POST /v1/tasks/{id}/subtasks
GET /v1/tasks/{id}/comments
POST /v1/tasks/{id}/comments
POST /v1/projects/{id}/tasks — Request body
{
  "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.

GET /v1/time-entries
POST /v1/time-entries
PATCH /v1/time-entries/{id}
DELETE /v1/time-entries/{id}
POST /v1/tasks/{id}/timer/start
POST /v1/tasks/{id}/timer/stop
GET /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
Webhook Payload Example
{
  "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.

JavaScript / Node.js
npm install @onetasks/sdk
PHP
composer require onetasks/sdk
Python
pip install onetasks
JavaScript / Node.js
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
<?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
One Tasks

© 2026 One Tasks · Nex Group Agency