Documentation

Aozo Projects API

Projects, tasks, boards and time tracking — the REST surface behind projects.aozo.in.

Base URLhttps://projects.aozo.in/api
AuthBearer JWT only
Formatapplication/json
⚠️ No API key support here

Unlike CRM and Accounting, Aozo Projects only accepts a Bearer JWT — there's no aozo_-prefixed key alternative.

Organization

MethodPathDescription
GET/organizationList orgs (auto-syncs from Central Auth)
POST/organizationCreate an org (name) — creator becomes ADMIN
GET/organization/:idOrg details, including subscription
GET/organization/:id/membersList members
GET/organization/:id/analyticsTask status distribution, completion leaderboard, 7-day trend

Projects

MethodPathDescription
GET/projectsList projects (?organizationId=) — scoped to your membership unless admin
POST/projectsCreate a project — requires workspace ADMIN/OWNER
PUT/projects/:idUpdate — admin or project MANAGER
DELETE/projects/:idDelete — org admin only
POST/projects/:id/membersAdd a member (userId, role)
PUT/projects/:id/members/:userIdUpdate a member's role
DELETE/projects/:id/members/:userIdRemove a member
GET/projects/:projectId/activitiesRecent activity log (last 20)
GET/projects/:id/linksImportant links attached to a project
POST/projects/:id/linksAdd a link (title, url, category) — admins/PMs
GET/projects/:id/credentialsCredentials attached to a project — admins/PMs
POST/projects/:id/credentialsAdd a credential (title, username, password, url) — admins/PMs
curl -X POST https://projects.aozo.in/api/projects \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "organizationId": "org_123",
    "name": "Website Revamp",
    "description": "Q3 redesign of the marketing site",
    "startDate": "2026-08-01",
    "endDate": "2026-09-15"
  }'

Tasks

MethodPathDescription
GET/tasksList tasks (?projectId= or ?organizationId=)
POST/tasksCreate a task (title, status, priority, dueDate, assigneeIds[])
PUT/tasks/:idUpdate a task
DELETE/tasks/:idDelete a task
GET/tasks/:id/commentsList comments on a task
POST/tasks/:id/commentsAdd a comment
POST/tasks/:id/subtasksAdd a subtask (title)
PUT/tasks/subtasks/:subtaskIdUpdate/complete a subtask
GET/tasks/:id/timelogsTime logged against a task
POST/tasks/:id/timelogsLog time (hours, description)
GET/tasks/projects/:projectId/timesheets/exportExport timesheets as CSV
POST/tasks/uploadUpload a file attachment (25MB limit)
🔗 Task comments are shared with Aozo Chat

Posting a comment on a task doesn't just save a row locally — it also creates (or reuses) a space named task-<taskId> in Aozo Chat and mirrors the comment there, so a task discussion shows up as a real chat thread your team can jump into.

Notifications

MethodPathDescription
GET/notifications/vapidPublicKeyPublic — web-push VAPID key
GET/notificationsList notifications
POST/notifications/readMark one or all as read
POST/notifications/subscribeRegister a push subscription