> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.coperniq.io/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.coperniq.io/_mcp/server.

Today’s release focuses on improving Work Orders creation, tightening schemas, and cleaning up the docs.

### What’s new?

* Create Work Order: You can now create a work order under a specific phase instance using `templateId` and `phaseInstanceId`. The response includes `id`, `createdAt`, `updatedAt`, `description`, `position`, `phaseInstanceId`, `projectId`, and `createdById`.
* Full CRUD on Catalog Items: You can now, get, create, update, and delete catalog items in your company settings.
* Form Retrieval: You can now get forms on a project and get form details.
* Project Phase Instances: Getting a project by ID now includes the phase instances for that project.

### Changes

* Work Orders
  * POST `/projects/{projectId}/work-orders` requires `templateId` and `phaseInstanceId`.
* Catalogs & Catalog Items
  * GET `/catalog-items` returns catalogs with their catalog items.
  * GET `/catalog-items/{catalogItemId}` returns a catalog item.
  * POST `/catalog-items` creates a catalog item.
  * PATCH `/catalog-items/{catalogItemId}` updates a catalog item.
* Forms
  * GET `/projects/{projectId}/forms` returns a list of the forms on a project.
  * GET `/forms/{formId}` returns the form details, including field values.
* Projects
  * GET `/projects/{projectId}` includes an array of `phaseInstances`.

### Notes

* The provided `phaseInstanceId` must belong to the project where the work order is created.