Everything the app does, it does through a REST API you can call yourself.
https://api.atwork.soRoutes are versioned, so paths start with /v1/. Authenticate with a bearer token on every request:
Authorization: Bearer YOUR_TOKENCreate a token under Profile settings → API tokens. It carries your access — see API tokens.
| Purpose | Call |
|---|---|
| List sheets | GET /v1/sheets |
| Get one sheet, with its attributes | GET /v1/sheets/:sheetId |
| Create a sheet | POST /v1/sheets |
| The available field types | GET /v1/sheets/data-types |
Fetching a sheet returns its attributes — that is where you find the field ids and codes you need for everything else.
| Purpose | Call |
|---|---|
| Read items | POST /v1/sheets/:sheetId/get-items |
| Create an item | POST /v1/sheets/:sheetId/items |
| Update an item | PATCH /v1/sheets/:sheetId/items/:itemId |
| Delete an item | DELETE /v1/sheets/:sheetId/items/:itemId |
| Duplicate items | POST /v1/sheets/:sheetId/items/duplicate |
Reading items is a POST, not a GET — the filter, sort and pagination go in the request body, which would not fit sensibly in a query string. That surprises people, so it is worth stating plainly.
| Purpose | Call |
|---|---|
| Add a field | POST /v1/sheets/:sheetId/attributes |
| Update a field | PATCH /v1/sheets/:sheetId/attributes/:attrId |
| Add an option to a select field | POST /v1/sheets/attribute-options/:attrId |
| Create a view | POST /v1/sheets/:sheetId/view |
The same pattern covers the rest of the product — /v1/agents, /v1/calendars, /v1/dashboards, /v1/notifications, /v1/page, /v1/integrations, /v1/availability and more.
If you want an AI assistant to work with your workspace rather than writing code, use the MCP server instead — see Use Atwork from an AI assistant.
Related: API tokens · Use Atwork from an AI assistant (MCP)