# Optiwork API Docs > API reference documentation for the Optiwork suite of microservices. > Each service below links to markdown mirrors of its reference pages > (append `.md`-style paths as listed). Raw OpenAPI YAML specs are under `/specs/`. ## Projects — Optiwork Projects API (v2026.07.23.1005) - [Service overview](https://docs.work.optidata.cloud/api/projects/index.md) - [OpenAPI spec (YAML)](https://docs.work.optidata.cloud/specs/optiwork-projects.openapi.yaml) - [Health check](https://docs.work.optidata.cloud/api/projects/operations/ping.md): `GET /ping` - [List boards the caller is a member of](https://docs.work.optidata.cloud/api/projects/operations/listboards.md): `GET /boards` - [Create a board](https://docs.work.optidata.cloud/api/projects/operations/createboard.md): `POST /boards` - [Get the caller's boards as a tree](https://docs.work.optidata.cloud/api/projects/operations/getboardtree.md): `GET /boards/tree` - [Reorder the caller's board list](https://docs.work.optidata.cloud/api/projects/operations/updateboardorder.md): `PATCH /boards/order` - [Get selected fields for a batch of boards](https://docs.work.optidata.cloud/api/projects/operations/getboardsinfobatch.md): `GET /boards/info/batch` - [Get a board with its full working set](https://docs.work.optidata.cloud/api/projects/operations/getboard.md): `GET /boards/{board}` - [Delete a board](https://docs.work.optidata.cloud/api/projects/operations/deleteboard.md): `DELETE /boards/{board}` - [Update a board](https://docs.work.optidata.cloud/api/projects/operations/updateboard.md): `PATCH /boards/{board}` - [Search cards and columns within a board](https://docs.work.optidata.cloud/api/projects/operations/searchboard.md): `GET /boards/{board}/search` - [Archive a board](https://docs.work.optidata.cloud/api/projects/operations/archiveboard.md): `POST /boards/{board}/archive` - [Unarchive a board](https://docs.work.optidata.cloud/api/projects/operations/unarchiveboard.md): `POST /boards/{board}/unarchive` - [Duplicate a board](https://docs.work.optidata.cloud/api/projects/operations/duplicateboard.md): `POST /boards/{board}/duplicate` - [Import cards into a board from an external tool](https://docs.work.optidata.cloud/api/projects/operations/importboard.md): `POST /boards/{board}/import` - [Export a board as a file download](https://docs.work.optidata.cloud/api/projects/operations/exportboard.md): `GET /boards/{board}/export` - [Export a board to Optiwork Drive](https://docs.work.optidata.cloud/api/projects/operations/exportboardtodrive.md): `POST /boards/{board}/export/drive` - [Change a board's visibility](https://docs.work.optidata.cloud/api/projects/operations/updateboardvisibility.md): `PUT /boards/{board}/visibility` - [List the members of a board](https://docs.work.optidata.cloud/api/projects/operations/listboardmembers.md): `GET /boards/{board}/members` - [Search users that could be added to the board](https://docs.work.optidata.cloud/api/projects/operations/listassignableusers.md): `GET /boards/{board}/members/assignables` - [Search users that can be @-mentioned on the board](https://docs.work.optidata.cloud/api/projects/operations/listmentionableusers.md): `GET /boards/{board}/members/mentionables` - [Set the caller's view mode for this board](https://docs.work.optidata.cloud/api/projects/operations/updatemyviewmode.md): `PATCH /boards/{board}/members/myself/view-mode` - [Set the caller's notification preferences for this board](https://docs.work.optidata.cloud/api/projects/operations/updatemynotificationpreferences.md): `PATCH /boards/{board}/members/myself/notifications/preferences` - [List the columns of a board](https://docs.work.optidata.cloud/api/projects/operations/listcolumns.md): `GET /boards/{board}/columns` - [Create a column](https://docs.work.optidata.cloud/api/projects/operations/createcolumn.md): `POST /boards/{board}/columns` - [Reorder the board's columns](https://docs.work.optidata.cloud/api/projects/operations/reordercolumns.md): `PATCH /boards/{board}/columns/order` - [Delete several columns at once](https://docs.work.optidata.cloud/api/projects/operations/batchdeletecolumns.md): `POST /boards/{board}/columns/delete/batch` - [Unarchive several columns at once](https://docs.work.optidata.cloud/api/projects/operations/batchunarchivecolumns.md): `POST /boards/{board}/columns/unarchive/batch` - [Delete a column](https://docs.work.optidata.cloud/api/projects/operations/deletecolumn.md): `DELETE /boards/{board}/columns/{column}` - [Update a column](https://docs.work.optidata.cloud/api/projects/operations/updatecolumn.md): `PATCH /boards/{board}/columns/{column}` - [List the cards of a column (slim)](https://docs.work.optidata.cloud/api/projects/operations/listcolumncards.md): `GET /boards/{board}/columns/{column}/cards` - [Archive a column](https://docs.work.optidata.cloud/api/projects/operations/archivecolumn.md): `POST /boards/{board}/columns/{column}/archive` - [Unarchive a column](https://docs.work.optidata.cloud/api/projects/operations/unarchivecolumn.md): `POST /boards/{board}/columns/{column}/unarchive` - [Sort a column's cards by a predefined criterion](https://docs.work.optidata.cloud/api/projects/operations/sortcolumncards.md): `POST /boards/{board}/columns/{column}/order` - [Move / reorder cards within or into a column](https://docs.work.optidata.cloud/api/projects/operations/movecards.md): `PATCH /boards/{board}/columns/{column}/cards/order` - [Create a card](https://docs.work.optidata.cloud/api/projects/operations/createcard.md): `POST /boards/{board}/cards` - [Delete several cards at once](https://docs.work.optidata.cloud/api/projects/operations/batchdeletecards.md): `POST /boards/{board}/cards/delete/batch` - [Unarchive several cards at once](https://docs.work.optidata.cloud/api/projects/operations/batchunarchivecards.md): `POST /boards/{board}/cards/unarchive/batch` - [Get a card](https://docs.work.optidata.cloud/api/projects/operations/getcard.md): `GET /boards/{board}/cards/{card}` - [Delete a card](https://docs.work.optidata.cloud/api/projects/operations/deletecard.md): `DELETE /boards/{board}/cards/{card}` - [Update a card](https://docs.work.optidata.cloud/api/projects/operations/updatecard.md): `PATCH /boards/{board}/cards/{card}` - [Archive a card](https://docs.work.optidata.cloud/api/projects/operations/archivecard.md): `POST /boards/{board}/cards/{card}/archive` - [Unarchive a card](https://docs.work.optidata.cloud/api/projects/operations/unarchivecard.md): `POST /boards/{board}/cards/{card}/unarchive` - [Duplicate a card in place](https://docs.work.optidata.cloud/api/projects/operations/copycard.md): `POST /boards/{board}/cards/{card}/copy` - [Get selected fields for a batch of cards (cross-board)](https://docs.work.optidata.cloud/api/projects/operations/getcardsinfobatch.md): `GET /cards/info/batch` - [Upload a file to a card](https://docs.work.optidata.cloud/api/projects/operations/uploadcardfile.md): `POST /boards/{board}/cards/{card}/files` - [Attach an existing Optiwork Drive file to a card](https://docs.work.optidata.cloud/api/projects/operations/attachdrivefiletocard.md): `POST /boards/{board}/cards/{card}/files/attach` - [Download a card file](https://docs.work.optidata.cloud/api/projects/operations/downloadcardfile.md): `GET /boards/{board}/cards/{card}/files/{file}/download` - [Get a signed view URL for a card file](https://docs.work.optidata.cloud/api/projects/operations/getcardfileviewurl.md): `GET /boards/{board}/cards/{card}/files/{file}/view` - [Delete a card file](https://docs.work.optidata.cloud/api/projects/operations/deletecardfile.md): `DELETE /boards/{board}/cards/{card}/files/{file}` - [Attach/detach card assignees](https://docs.work.optidata.cloud/api/projects/operations/synccardassignees.md): `POST /boards/{board}/cards/{card}/assignees/sync` - [Attach/detach card tags](https://docs.work.optidata.cloud/api/projects/operations/synccardtags.md): `POST /boards/{board}/cards/{card}/tags/sync` - [Get a card's recurrence rule](https://docs.work.optidata.cloud/api/projects/operations/getcardrecurrence.md): `GET /boards/{board}/cards/{card}/recurrence` - [Create or update a card's recurrence rule](https://docs.work.optidata.cloud/api/projects/operations/upsertcardrecurrence.md): `POST /boards/{board}/cards/{card}/recurrence` - [Stop a card's recurrence](https://docs.work.optidata.cloud/api/projects/operations/stopcardrecurrence.md): `DELETE /boards/{board}/cards/{card}/recurrence` - [Add a comment to a card](https://docs.work.optidata.cloud/api/projects/operations/addcomment.md): `POST /boards/{board}/cards/{card}/comments` - [Delete a comment](https://docs.work.optidata.cloud/api/projects/operations/deletecomment.md): `DELETE /boards/{board}/cards/{card}/comments/{comment}` - [Edit a comment](https://docs.work.optidata.cloud/api/projects/operations/updatecomment.md): `PATCH /boards/{board}/cards/{card}/comments/{comment}` - [Start a timer on a card](https://docs.work.optidata.cloud/api/projects/operations/starttimetracking.md): `POST /boards/{board}/cards/{card}/time-tracks/start` - [Stop the running timer on a card](https://docs.work.optidata.cloud/api/projects/operations/stoptimetracking.md): `POST /boards/{board}/cards/{card}/time-tracks/stop` - [Delete a time entry](https://docs.work.optidata.cloud/api/projects/operations/deletetimetrack.md): `DELETE /boards/{board}/cards/{card}/time-tracks/{timeTrack}` - [Edit a time entry](https://docs.work.optidata.cloud/api/projects/operations/updatetimetrack.md): `PATCH /boards/{board}/cards/{card}/time-tracks/{timeTrack}` - [Create a checklist on a card](https://docs.work.optidata.cloud/api/projects/operations/createchecklist.md): `POST /boards/{board}/cards/{card}/checklists` - [Reorder the checklists of a card](https://docs.work.optidata.cloud/api/projects/operations/reorderchecklists.md): `POST /boards/{board}/cards/{card}/checklists/reorder` - [Reorder checklist items (within and across checklists)](https://docs.work.optidata.cloud/api/projects/operations/reorderchecklistitems.md): `POST /boards/{board}/cards/{card}/checklists/items/reorder` - [Get a checklist with its items](https://docs.work.optidata.cloud/api/projects/operations/getchecklist.md): `GET /boards/{board}/cards/{card}/checklists/{checklist}` - [Delete a checklist](https://docs.work.optidata.cloud/api/projects/operations/deletechecklist.md): `DELETE /boards/{board}/cards/{card}/checklists/{checklist}` - [Rename a checklist](https://docs.work.optidata.cloud/api/projects/operations/updatechecklist.md): `PATCH /boards/{board}/cards/{card}/checklists/{checklist}` - [Add an item to a checklist](https://docs.work.optidata.cloud/api/projects/operations/createchecklistitem.md): `POST /boards/{board}/cards/{card}/checklists/{checklist}/items` - [Get a checklist item](https://docs.work.optidata.cloud/api/projects/operations/getchecklistitem.md): `GET /boards/{board}/cards/{card}/checklists/{checklist}/items/{checklistItem}` - [Delete a checklist item](https://docs.work.optidata.cloud/api/projects/operations/deletechecklistitem.md): `DELETE /boards/{board}/cards/{card}/checklists/{checklist}/items/{checklistItem}` - [Update a checklist item](https://docs.work.optidata.cloud/api/projects/operations/updatechecklistitem.md): `PATCH /boards/{board}/cards/{card}/checklists/{checklist}/items/{checklistItem}` - [Convert a checklist item into a card](https://docs.work.optidata.cloud/api/projects/operations/convertchecklistitemtocard.md): `POST /boards/{board}/cards/{card}/checklists/{checklist}/items/{checklistItem}/conversion` - [Attach/detach assignees on a checklist item](https://docs.work.optidata.cloud/api/projects/operations/syncchecklistitemassignees.md): `POST /boards/{board}/cards/{card}/checklists/{checklist}/items/{checklistItem}/assignees/sync` - [List a card's custom field values](https://docs.work.optidata.cloud/api/projects/operations/listcardcustomfields.md): `GET /boards/{board}/cards/{card}/custom-fields` - [Set several custom field values on a card](https://docs.work.optidata.cloud/api/projects/operations/bulkupdatecardcustomfields.md): `PUT /boards/{board}/cards/{card}/custom-fields` - [Clear a custom field value from a card](https://docs.work.optidata.cloud/api/projects/operations/clearcardcustomfield.md): `DELETE /boards/{board}/cards/{card}/custom-fields/{definition}` - [Set one custom field value on a card](https://docs.work.optidata.cloud/api/projects/operations/updatecardcustomfield.md): `PATCH /boards/{board}/cards/{card}/custom-fields/{definition}` - [List a board's custom field definitions](https://docs.work.optidata.cloud/api/projects/operations/listboardcustomfielddefinitions.md): `GET /boards/{board}/custom-fields/definitions` - [Create a custom field definition on a board](https://docs.work.optidata.cloud/api/projects/operations/createboardcustomfielddefinition.md): `POST /boards/{board}/custom-fields/definitions` - [Reorder a board's custom field definitions](https://docs.work.optidata.cloud/api/projects/operations/reorderboardcustomfielddefinitions.md): `PATCH /boards/{board}/custom-fields/definitions/reorder` - [Delete a custom field definition](https://docs.work.optidata.cloud/api/projects/operations/deleteboardcustomfielddefinition.md): `DELETE /boards/{board}/custom-fields/definitions/{definition}` - [Update a custom field definition](https://docs.work.optidata.cloud/api/projects/operations/updateboardcustomfielddefinition.md): `PATCH /boards/{board}/custom-fields/definitions/{definition}` - [List global custom field definitions](https://docs.work.optidata.cloud/api/projects/operations/listglobalcustomfielddefinitions.md): `GET /custom-fields/definitions/global` - [Create a global custom field definition](https://docs.work.optidata.cloud/api/projects/operations/createglobalcustomfielddefinition.md): `POST /custom-fields/definitions/global` - [Reorder global custom field definitions](https://docs.work.optidata.cloud/api/projects/operations/reorderglobalcustomfielddefinitions.md): `PATCH /custom-fields/definitions/global/reorder` - [Delete a global custom field definition](https://docs.work.optidata.cloud/api/projects/operations/deleteglobalcustomfielddefinition.md): `DELETE /custom-fields/definitions/global/{definition}` - [Update a global custom field definition](https://docs.work.optidata.cloud/api/projects/operations/updateglobalcustomfielddefinition.md): `PATCH /custom-fields/definitions/global/{definition}` - [Create a board tag](https://docs.work.optidata.cloud/api/projects/operations/createboardtag.md): `POST /boards/{board}/tags` - [Get a board tag](https://docs.work.optidata.cloud/api/projects/operations/getboardtag.md): `GET /boards/{board}/tags/{tag}` - [Delete a board tag](https://docs.work.optidata.cloud/api/projects/operations/deleteboardtag.md): `DELETE /boards/{board}/tags/{tag}` - [Update a board tag](https://docs.work.optidata.cloud/api/projects/operations/updateboardtag.md): `PATCH /boards/{board}/tags/{tag}` - [Create a common (tenant-wide) tag](https://docs.work.optidata.cloud/api/projects/operations/createcommontag.md): `POST /tags/common` - [Get a common tag](https://docs.work.optidata.cloud/api/projects/operations/getcommontag.md): `GET /tags/common/{tag}` - [Delete a common tag](https://docs.work.optidata.cloud/api/projects/operations/deletecommontag.md): `DELETE /tags/common/{tag}` - [Update a common tag](https://docs.work.optidata.cloud/api/projects/operations/updatecommontag.md): `PATCH /tags/common/{tag}` - [List contacts linked to a board](https://docs.work.optidata.cloud/api/projects/operations/listboardcontactlinks.md): `GET /boards/{board}/link/contacts` - [Link/unlink contacts on a board](https://docs.work.optidata.cloud/api/projects/operations/updateboardcontactlinks.md): `PATCH /boards/{board}/link/contacts` - [List contacts linked to a card](https://docs.work.optidata.cloud/api/projects/operations/listcardcontactlinks.md): `GET /boards/{board}/cards/{card}/link/contacts` - [Link/unlink contacts on a card](https://docs.work.optidata.cloud/api/projects/operations/updatecardcontactlinks.md): `PATCH /boards/{board}/cards/{card}/link/contacts` - [Get a user's upcoming tasks](https://docs.work.optidata.cloud/api/projects/operations/getuserdashboard.md): `GET /users/{user}/dashboard`