canonical: https://jentic.com/apis/awork.com/awork

# awork API v1

The awork API is the integration surface for awork's project management, time tracking, and team collaboration platform aimed at agencies and professional-services teams. It exposes 672 operations across 474 paths covering projects, tasks, task lists and templates, timesheets, planner schedules, absences, clients, users, teams, and workspace settings. Authentication uses OAuth 2.0 bearer tokens issued by awork's identity service, and the API mirrors the entities and permissions visible in the awork web app.

## For AI agents

Manage projects, tasks, time entries, planner bookings, and absences in awork so agents can drive end-to-end agency and services workflows.

## Scope

Does not handle invoicing, payments, or general accounting - use for project, task, time, planner, and absence workflows in awork only.

## Capabilities

- Create, update, and transition projects with task lists, members, and templates via /projects endpoints
- Manage tasks across projects including assignments, dependencies, priorities, and tags
- Log and retrieve time entries against tasks and projects through awork's time-tracking endpoints
- Schedule team members in the planner and record absences so capacity views stay accurate
- Manage clients, users, teams, roles, and workspace-level settings programmatically

## Use cases

### Project Setup from Templates

Agencies start every engagement from a project template covering tasks, sections, and roles. The `/projects/templates` endpoints let an agent clone a template into a new project for a specific client and team, replacing 30-45 minutes of clicking through the awork UI per new engagement.

Example prompt: Create a project named 'Acme Brand Refresh' for client {id} from template {templateId}, assign three named team members, and return the new project ID

### Time Tracking and Capacity Monitoring

Operations teams use awork's time-tracking endpoints to capture time entries and the planner endpoints to compare booked capacity against logged time. Surfacing under- or over-utilisation early means staffing decisions happen before deadlines slip rather than after.

Example prompt: Pull the last week's time entries grouped by user and compare to that week's planner bookings; flag users with more than 20% deviation

### Task Triage and Prioritisation

Project managers use the /tasks endpoints to list, filter, and reassign tasks across projects so agents can triage the team's workload. Filters by tag, priority, status, and assignee mean an agent can pull 'overdue and blocked' tasks across the workspace and act on them in bulk.

Example prompt: List all tasks across active projects tagged 'blocker' with due dates in the past, then post each to the assignee's chat as a reminder

### Absence and Resource Planning

HR-light operations and resourcing leads manage absences and planner bookings through awork's absence and planner endpoints. The data feeds capacity views so project managers can plan around vacations and sick days without spreadsheets.

Example prompt: Add a vacation absence for user {id} from 2026-07-10 to 2026-07-21, then list any planner bookings overlapping that range and notify the project owners

### Agent-Driven Project Operations via Jentic

AI agents handling project status, time logging, and planner updates call awork through Jentic so a single conversational request can update tasks, log time, and adjust schedules without bouncing between tools. Jentic exposes the 672 awork operations as discoverable tools indexed by intent.

Example prompt: Given a Slack message 'log 1.5h on the Acme website task yesterday', search Jentic for 'log time entry awork', load the schema, and post the time entry against the matching task

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/projects` | List projects in the workspace |
| GET | `/projects/{projectId}` | Retrieve a project by ID |
| POST | `/projects/{projectId}/changestatus` | Change a project's status |
| POST | `/projects/{projectId}/members` | Add a member to a project |
| POST | `/projects/batch/{operation}` | Run a batch operation across projects |
| GET | `/projects/key/{projectKey}` | Retrieve a project by its short key |

## Key resources

- **Projects** — Manage projects, statuses, members, templates, and project types
- **Tasks** — Tasks across projects with assignments, tags, and dependencies
- **Time Tracking** — Log and retrieve time entries against tasks and projects
- **Planner and Absences** — Resource planner bookings and team absences
- **Clients and Users** — Client records, users, teams, and workspace settings

## Why Jentic

- **Setup:** Wiring the awork API by hand means running its OAuth2 flow, refreshing bearer tokens yourself, and finding the right operation among hundreds of project, task, time, and planner routes. Through Jentic you install once, import the awork API from the API Directory, store the OAuth credentials once, and your agent calls it.
- **Permission scoping:** awork puts the project id in the URL path, such as `/projects/{projectId}` and `/projects/{projectId}/changestatus`, so a rule can pin the agent to one project. You choose which operations it may call, such as reading projects or adding members, so a status change or batch operation is only available if you include it.
- **Credential handling:** Your awork OAuth client credentials and refresh token are stored once, encrypted, by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'log a time entry' or 'create a project from a template', and Jentic returns the matching awork operation with its request and response schemas so the agent calls the right endpoint without enumerating hundreds of routes.

## Related APIs

- **ClickUp** — ClickUp targets a broader audience with more configurable views; awork is more opinionated for agency project management.
- **Asana** — Asana is widely adopted for cross-functional task management but lacks awork's integrated time tracking and planner.
- **monday.com** — monday.com is more flexible per-board but has weaker built-in time tracking compared to awork.
- **Stripe** — Pair awork project and time data with Stripe to invoice clients for tracked hours and handle payment.

## FAQ

### What authentication does the awork API use?

The awork API uses OAuth 2.0 with bearer tokens. Your application authenticates against awork's identity provider, receives a token, and includes it as 'Authorization: Bearer <token>' on each call. Through Jentic, OAuth credentials and refresh tokens live in your Jentic One instance and tokens are refreshed automatically.

### Can I create projects from templates with the awork API?

Yes. awork exposes project-template endpoints so an agent can clone a template into a new project complete with task lists, sections, and default assignments. Pair this with `/projects/{projectId}/members` to attach the project team in the same flow.

### What are the rate limits for the awork API?

awork applies per-workspace throttling that scales with subscription tier; bursts beyond a few requests per second can return HTTP 429. Watch the response headers for retry guidance and prefer the batch endpoints under `/projects/batch/{operation}` for bulk changes rather than per-record loops.

### How do I log a time entry through Jentic?

Search Jentic for 'log a time entry awork', load the schema for the awork time-entry endpoint, and execute with the user, task, date, and duration. Jentic returns the matching operation so the agent does not have to traverse 672 paths to find it.

### Does the awork API expose absences and planner bookings?

Yes. awork's absence endpoints record vacations, sick days, and other absences per user, and the planner endpoints book users onto projects across days or hours. Together they keep capacity reporting accurate without separate HR or scheduling tools.

### Is there a sandbox for the awork API?

awork does not publish a separate sandbox tenant. The standard pattern is to create a free trial or test workspace, generate OAuth credentials in that workspace, and develop against it before pointing your integration at the production workspace.

### Can I limit what my agent is allowed to do with the awork API?

Yes. Because Jentic One is self-hosted, your own rules decide which awork operations and OAuth credentials the agent may use. awork puts the project id in the URL path, such as `/projects/{projectId}` and `/projects/{projectId}/changestatus`, so a rule can pin the agent to a single project. You also choose which operations it can call, so read-only access to /projects stays separate from a status change, adding a member, or a `/projects/batch/{operation}` bulk action, each of which is available only if you include it.
