> 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.

## Archived work orders: list with `include_archived`, fetch by ID

### Updated: `GET /work-orders`, `GET /projects/{project_id}/work-orders`, `GET /opportunities/{opportunity_id}/work-orders`, `GET /accounts/{account_id}/work-orders`

These list endpoints now support an `include_archived` query parameter.

```
GET /work-orders?include_archived=true
GET /projects/{project_id}/work-orders?include_archived=true
```

* By default only active work orders are returned, so existing behavior is unchanged.
* `include_archived=true` also returns archived work orders. The value is case-insensitive (`TRUE` works); any other value is treated as `false`.
* Archived work orders have `isActive: false`.
* Work orders whose parent project, opportunity, or account is archived are never returned, even with `include_archived=true`. **This is a change for `GET /work-orders`**, which previously returned active work orders under archived projects, opportunities, and accounts.
* The `/requests/{request_id}/work-orders` and `/clients/{client_id}/work-orders` aliases behave the same as their `/opportunities` and `/accounts` counterparts.

### Updated: `GET /work-orders/{work_order_id}`

Archived work orders can now be fetched by ID instead of returning not found. Check `isActive`, which is `false` for an archived work order.