REST API v1.0 Scale+

Documentació de l'API One Tasks

Integra One Tasks als teus fluxos de treball. Gestiona projectes, tasques, usuaris i registre de temps de forma programàtica.

https://api.onetasks.app/v1
Estat API: Operatiu

Introducció

L'API de One Tasks és una interfície RESTful que et permet interactuar programàticament amb totes les funcions de la plataforma. Utilitza verbs HTTP estàndard, retorna respostes JSON i utilitza API Keys per a l'autenticació.

REST

Verbs HTTP estàndard (GET, POST, PUT, PATCH, DELETE)

JSON

Totes les respostes en format JSON amb estructura consistent

HTTPS

Totes les peticions han d'usar TLS. HTTP no acceptat

URL Base
https://api.onetasks.app/v1

Autenticació

Totes les peticions a l'API requereixen autenticació mitjançant una API Key. Passa la teva clau a la capçalera Authorization com a Bearer token.

Cabecera
Authorization: Bearer ot_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxx
cURL
curl -H "Authorization: Bearer ot_live_xxxx" \
     -H "Content-Type: application/json" \
     https://api.onetasks.app/v1/projects
Mai exposis la teva API Key en codi del costat del client o repositoris públics. Rota les teves claus immediatament si sospites que han estat compromeses.

API Keys

Gestiona les teves API Keys des del panell d'administrador de One Tasks (Admin → API → Claus). Les API Keys estan disponibles a partir del pla Scale.

ot_live_... Producció

text-emerald-400

ot_test_... Prova

text-amber-400

Endpoints de Gestió de Claus

GET /api-keys
POST /api-keys
DELETE /api-keys/{id}
POST /api-keys — Crear Clau
{
  "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.
}

Àmbits Disponibles

Scope Descripció
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

Les peticions estan limitades per API Key. Els límits varien per pla.

Plan Peticions/min Peticions/dia Burst
Scale 60 10,000 100
Enterprise 300 100,000 500

La informació de rate limit es retorna a totes les capçaleres de resposta:

X-RateLimit-Limit:     60
X-RateLimit-Remaining: 58
X-RateLimit-Reset:     1710330060

Gestió d'Errors

L'API utilitza codis de resposta HTTP convencionals. Els errors segueixen una estructura consistent.

200
OK
201
Created
400
Bad Request
401
Unauthorized
403
Forbidden
404
Not Found
422
Unprocessable
429
Rate Limited
422 Exemple de Resposta d'Error
{
  "error": {
    "code": "VALIDATION_FAILED",
    "message": "The title field is required.",
    "details": {
      "title": ["required"],
      "due_date": ["must_be_future_date"]
    },
    "request_id": "req_abc123xyz"
  }
}

Projectes

Crea i gestiona els teus espais de treball i projectes.

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 — Exemple de Resposta
{
  "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 }
}

Tasques

CRUD complet per a tasques, assignats, subtasques i comentaris.

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 — Cos de la petició
{
  "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"]
}

Registre de Temps

Registra, actualitza i consulta entrades de temps per tasca, usuari o projecte.

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

Rep notificacions HTTP en temps real quan es produeixen esdeveniments al teu espai de treball.

task.created
task.updated
task.completed
time_entry.created
project.archived
sprint.started
Exemple de Payload Webhook
{
  "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 i Exemples de Codi

SDKs oficials i biblioteques de la comunitat per als llenguatges més populars.

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