---
title: "Changes to List projects"
method: GET
path: "/api/v1/projects"
---

# Changes to List projects

`GET /api/v1/projects`

> Every recorded change to this operation, newest first.

## Timeline

Changed in 13 of 90 revisions.

- **2026-05-31** `28befcbfadda`: 1 breaking
- **2026-05-31** `edde330209e2`: 1 info
- **2026-05-06** `89876e7e51d6`: 1 info
- **2026-04-20** `69a36036d334`: 1 info
- **2025-10-10** `f36c4f94ae7b`: 2 info
- **2024-06-06** `8e82a2bd77e0`: 2 breaking, 23 info
- **2024-06-05** `e61df65649e2`: 9 breaking, 16 warning
- **2024-03-07** `71171a40d629`: 6 breaking, 30 info
- **2024-02-18** `88bbc1f38ff7`: 13 breaking, 23 warning
- **2024-02-10** `4ad0fff44c6c`: 1 breaking, 5 info
- **2024-01-24** `9dab078a46b5`: 1 info
- **2024-01-20** `70cd94370516`: 1 breaking
- **2023-07-08** `627936439128`: 12 breaking, 13 warning, 2 info

## Changes

- **2026-05-31** `28befcbfadda`: 1 breaking
  - the response property `data/items/tags/items/color` became optional for the status `200`
- **2026-05-31** `edde330209e2`: 1 info
  - added the optional property `data/items/tags` to the response with the `200` status
- **2026-05-06** `89876e7e51d6`: 1 info
  - added the new optional `query` request parameter `sort`
- **2026-04-20** `69a36036d334`: 1 info
  - the response required property `data/items/id` became read-only for the status `200`
- **2025-10-10** `f36c4f94ae7b`: 2 info
  - added the new optional `query` request parameter `page`
  - added the new optional `query` request parameter `per_page`
- **2024-06-06** `8e82a2bd77e0`: 2 breaking, 23 info
  - the response's body type changed from no type to `object` for status `default`
  - the `data/items/` response's property type changed from no type to `object` for status `200`
  - added the optional property `code` to the response with the `default` status
  - added the optional property `data/items/archived_at` to the response with the `200` status
  - added the optional property `data/items/assigned_user_id` to the response with the `200` status
  - added the optional property `data/items/client_id` to the response with the `200` status
  - added the optional property `data/items/created_at` to the response with the `200` status
  - added the optional property `data/items/custom_value1` to the response with the `200` status
  - added the optional property `data/items/custom_value2` to the response with the `200` status
  - added the optional property `data/items/custom_value3` to the response with the `200` status
  - added the optional property `data/items/custom_value4` to the response with the `200` status
  - added the optional property `data/items/due_date` to the response with the `200` status
  - added the optional property `data/items/number` to the response with the `200` status
  - added the optional property `data/items/private_notes` to the response with the `200` status
  - added the optional property `data/items/public_notes` to the response with the `200` status
  - added the optional property `data/items/updated_at` to the response with the `200` status
  - added the optional property `message` to the response with the `default` status
  - added the optional property `meta/pagination` to the response with the `200` status
  - added the required property `data/items/budgeted_hours` to the response with the `200` status
  - added the required property `data/items/color` to the response with the `200` status
  - added the required property `data/items/id` to the response with the `200` status
  - added the required property `data/items/is_deleted` to the response with the `200` status
  - added the required property `data/items/name` to the response with the `200` status
  - added the required property `data/items/task_rate` to the response with the `200` status
  - added the required property `data/items/user_id` to the response with the `200` status
- **2024-06-05** `e61df65649e2`: 9 breaking, 16 warning
  - the response's body type changed from `object` to no type for status `default`
  - the `data/items/` response's property type changed from `object` to no type for status `200`
  - removed the required property `data/items/budgeted_hours` from the response with the `200` status
  - removed the required property `data/items/color` from the response with the `200` status
  - removed the required property `data/items/id` from the response with the `200` status
  - removed the required property `data/items/is_deleted` from the response with the `200` status
  - removed the required property `data/items/name` from the response with the `200` status
  - removed the required property `data/items/task_rate` from the response with the `200` status
  - removed the required property `data/items/user_id` from the response with the `200` status
  - removed the optional property `code` from the response with the `default` status
  - removed the optional property `data/items/archived_at` from the response with the `200` status
  - removed the optional property `data/items/assigned_user_id` from the response with the `200` status
  - removed the optional property `data/items/client_id` from the response with the `200` status
  - removed the optional property `data/items/created_at` from the response with the `200` status
  - removed the optional property `data/items/custom_value1` from the response with the `200` status
  - removed the optional property `data/items/custom_value2` from the response with the `200` status
  - removed the optional property `data/items/custom_value3` from the response with the `200` status
  - removed the optional property `data/items/custom_value4` from the response with the `200` status
  - removed the optional property `data/items/due_date` from the response with the `200` status
  - removed the optional property `data/items/number` from the response with the `200` status
  - removed the optional property `data/items/private_notes` from the response with the `200` status
  - removed the optional property `data/items/public_notes` from the response with the `200` status
  - removed the optional property `data/items/updated_at` from the response with the `200` status
  - removed the optional property `message` from the response with the `default` status
  - removed the optional property `meta/pagination` from the response with the `200` status
- **2024-03-07** `71171a40d629`: 6 breaking, 30 info
  - the response's body type changed from no type to `object` for status `401`
  - the response's body type changed from no type to `object` for status `403`
  - the response's body type changed from no type to `object` for status `422`
  - the response's body type changed from no type to `object` for status `429`
  - the response's body type changed from no type to `object` for status `default`
  - the `data/items/` response's property type changed from no type to `object` for status `200`
  - added the optional property `code` to the response with the `default` status
  - added the optional property `data/items/archived_at` to the response with the `200` status
  - added the optional property `data/items/assigned_user_id` to the response with the `200` status
  - added the optional property `data/items/client_id` to the response with the `200` status
  - added the optional property `data/items/created_at` to the response with the `200` status
  - added the optional property `data/items/custom_value1` to the response with the `200` status
  - added the optional property `data/items/custom_value2` to the response with the `200` status
  - added the optional property `data/items/custom_value3` to the response with the `200` status
  - added the optional property `data/items/custom_value4` to the response with the `200` status
  - added the optional property `data/items/due_date` to the response with the `200` status
  - added the optional property `data/items/number` to the response with the `200` status
  - added the optional property `data/items/private_notes` to the response with the `200` status
  - added the optional property `data/items/public_notes` to the response with the `200` status
  - added the optional property `data/items/updated_at` to the response with the `200` status
  - added the optional property `errors` to the response with the `403` status
  - added the optional property `errors` to the response with the `422` status
  - added the optional property `errors` to the response with the `429` status
  - added the optional property `message` to the response with the `401` status
  - added the optional property `message` to the response with the `403` status
  - added the optional property `message` to the response with the `422` status
  - added the optional property `message` to the response with the `429` status
  - added the optional property `message` to the response with the `default` status
  - added the optional property `meta/pagination` to the response with the `200` status
  - added the required property `data/items/budgeted_hours` to the response with the `200` status
  - added the required property `data/items/color` to the response with the `200` status
  - added the required property `data/items/id` to the response with the `200` status
  - added the required property `data/items/is_deleted` to the response with the `200` status
  - added the required property `data/items/name` to the response with the `200` status
  - added the required property `data/items/task_rate` to the response with the `200` status
  - added the required property `data/items/user_id` to the response with the `200` status
- **2024-02-18** `88bbc1f38ff7`: 13 breaking, 23 warning
  - the response's body type changed from `object` to no type for status `401`
  - the response's body type changed from `object` to no type for status `403`
  - the response's body type changed from `object` to no type for status `422`
  - the response's body type changed from `object` to no type for status `429`
  - the response's body type changed from `object` to no type for status `default`
  - the `data/items/` response's property type changed from `object` to no type for status `200`
  - removed the required property `data/items/budgeted_hours` from the response with the `200` status
  - removed the required property `data/items/color` from the response with the `200` status
  - removed the required property `data/items/id` from the response with the `200` status
  - removed the required property `data/items/is_deleted` from the response with the `200` status
  - removed the required property `data/items/name` from the response with the `200` status
  - removed the required property `data/items/task_rate` from the response with the `200` status
  - removed the required property `data/items/user_id` from the response with the `200` status
  - removed the optional property `code` from the response with the `default` status
  - removed the optional property `data/items/archived_at` from the response with the `200` status
  - removed the optional property `data/items/assigned_user_id` from the response with the `200` status
  - removed the optional property `data/items/client_id` from the response with the `200` status
  - removed the optional property `data/items/created_at` from the response with the `200` status
  - removed the optional property `data/items/custom_value1` from the response with the `200` status
  - removed the optional property `data/items/custom_value2` from the response with the `200` status
  - removed the optional property `data/items/custom_value3` from the response with the `200` status
  - removed the optional property `data/items/custom_value4` from the response with the `200` status
  - removed the optional property `data/items/due_date` from the response with the `200` status
  - removed the optional property `data/items/number` from the response with the `200` status
  - removed the optional property `data/items/private_notes` from the response with the `200` status
  - removed the optional property `data/items/public_notes` from the response with the `200` status
  - removed the optional property `data/items/updated_at` from the response with the `200` status
  - removed the optional property `errors` from the response with the `403` status
  - removed the optional property `errors` from the response with the `422` status
  - removed the optional property `errors` from the response with the `429` status
  - removed the optional property `message` from the response with the `401` status
  - removed the optional property `message` from the response with the `403` status
  - removed the optional property `message` from the response with the `422` status
  - removed the optional property `message` from the response with the `429` status
  - removed the optional property `message` from the response with the `default` status
  - removed the optional property `meta/pagination` from the response with the `200` status
- **2024-02-10** `4ad0fff44c6c`: 1 breaking, 5 info
  - the `meta/pagination/links` response's property type changed from `array` to `object` for status `200`
  - added the media type `application/json` for the response with the status `401`
  - added the media type `application/json` for the response with the status `403`
  - added the media type `application/json` for the response with the status `422`
  - added the media type `application/json` for the response with the status `429`
  - added the media type `application/json` for the response with the status `default`
- **2024-01-24** `9dab078a46b5`: 1 info
  - endpoint added
- **2024-01-20** `70cd94370516`: 1 breaking
  - api path removed without deprecation
- **2023-07-08** `627936439128`: 12 breaking, 13 warning, 2 info
  - removed the media type `application/json` for the response with the status `401`
  - removed the media type `application/json` for the response with the status `403`
  - removed the media type `application/json` for the response with the status `422`
  - removed the media type `application/json` for the response with the status `429`
  - removed the media type `application/json` for the response with the status `default`
  - removed the required property `budgeted_hours` from the response with the `200` status
  - removed the required property `color` from the response with the `200` status
  - removed the required property `id` from the response with the `200` status
  - removed the required property `is_deleted` from the response with the `200` status
  - removed the required property `name` from the response with the `200` status
  - removed the required property `task_rate` from the response with the `200` status
  - removed the required property `user_id` from the response with the `200` status
  - removed the optional property `archived_at` from the response with the `200` status
  - removed the optional property `assigned_user_id` from the response with the `200` status
  - removed the optional property `client_id` from the response with the `200` status
  - removed the optional property `created_at` from the response with the `200` status
  - removed the optional property `custom_value1` from the response with the `200` status
  - removed the optional property `custom_value2` from the response with the `200` status
  - removed the optional property `custom_value3` from the response with the `200` status
  - removed the optional property `custom_value4` from the response with the `200` status
  - removed the optional property `due_date` from the response with the `200` status
  - removed the optional property `number` from the response with the `200` status
  - removed the optional property `private_notes` from the response with the `200` status
  - removed the optional property `public_notes` from the response with the `200` status
  - removed the optional property `updated_at` from the response with the `200` status
  - added the optional property `data` to the response with the `200` status
  - added the optional property `meta` to the response with the `200` status

---

[Operation](https://skmtc.dev/invoiceninja/apis/invoice-ninja-api-reference/docs/api/v1/projects/get.md) - [API](https://skmtc.dev/invoiceninja/apis/invoice-ninja-api-reference.md) - [Page](https://skmtc.dev/invoiceninja/apis/invoice-ninja-api-reference/changes/api/v1/projects/get)
