---
title: "List all projects"
method: GET
path: "/projects"
tags: ["Projects", "Pagination", "Search"]
---

# List all projects

`GET /projects`

## Query parameters

- `projectName` string — Filter projects by name
- `status` 'PLANNING' | 'ACTIVE' | 'COMPLETED' | 'ON_HOLD' — Status of the ongoing project's workflow
- `teamMembers` string — Filter projects by team member IDs according to `teamMembersFiltering`
- `teamMembersFiltering` 'ANY' | 'ALL' — If more than one ID is passed, return either projects with any of the team members (`ANY`) or with all of them (`ALL`)
- `budgetFrom` string — Minimum project budget amount
- `budgetTo` string — Maximum project budget amount
- `page` number — Page number to retrieve
- `pageSize` number — Number of elements per page
- `sortBy` 'name' | 'status' | 'startDate' | 'endDate' | 'teamSize' — Sort projects by field
- `sortOrder` 'asc' | 'desc' — Sort order

## Response `200`

Successful operation

- Project[]
  - `id` string, required
  - `name` string, required
  - `status` 'PLANNING' | 'ACTIVE' | 'COMPLETED' | 'ON_HOLD', required — Status of the ongoing project's workflow
  - `budget` number, required — Monetary value in EUR
  - `startDate` string, date, required
  - `endDate` string, date
  - `manager` integer, required
  - `description` string, required
  - `teamSize` integer, required

## Other responses

- `400` — Invalid projects search criteria
- `500` — An internal server error occurred.
- `503` — The service is temporarily unavailable. Maybe there is maintenance?

## Changes

> 28 revisions in range; 1 could not be searched.

- **2025-09-10** `36d88bab3a14` — 1 breaking, 1 info
  - removed the required property `items/team` from the response with the `200` status
  - added the required property `items/teamSize` to the response with the `200` status
- **2025-09-10** `417afc890070` — 1 info
  - added the required property `items/team` to the response with the `200` status
- **2025-02-03** `91c1a6d49e80` — 1 breaking, 2 warning, 4 info
  - removed the required property `items/team` from the response with the `200` status
  - deleted the `query` request parameter `_page`
  - deleted the `query` request parameter `_pageSize`
  - added the new optional `query` request parameter `page`
  - …3 more
- **2025-01-17** `4573748c6338` — 3 info
  - added the optional property `errorGUID` to the response with the `400` status
  - added the optional property `errorGUID` to the response with the `500` status
  - added the optional property `errorGUID` to the response with the `503` status
- **2025-01-17** `3aadb0e6d939` — 1 info
  - added the new optional `query` request parameter `_pageSize`

[Full history](https://skmtc.dev/ducin-public/apis/itcorpo-api/changes/projects/get.md)

---

[API](https://skmtc.dev/ducin-public/apis/itcorpo-api.md) · [All operations](https://skmtc.dev/ducin-public/apis/itcorpo-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/ducin-public/itcorpo-api/revisions/80675117301b/schema)
