---
title: "Reads all Subprojects"
method: GET
path: "/api/2026-07-01/resources/project_management/subprojects"
tags: ["ProjectManagement > Subproject"]
---

# Reads all Subprojects

`GET /api/2026-07-01/resources/project_management/subprojects`

###### **What does it do?**
This reads all subprojects created
###### **What params does it accept?**

  - `ids`: retrieve only the subprojects that matches the ids passed in the request.\n
  - `include_inputed_minutes`: if `true` we will perform the minutes calculations and will be return the total `inputed_minutes`. If the param is not passed in the request, its default value is `FALSE` so it will return `inputed_minutes: 0` and no minutes calculations will be performed.
  - `updated_after`: this parameter is needed to filter subprojects created or updated after a date.

###### **Is it related to other entities?**
A subproject is always related to a project, so you can use the query params to list only the subprojects that are related to a specific project.
###### **Who can use it?**
Only companies who have enabled the `projects_with_subprojects` feature and users with the permission of read subprojects.

## Query parameters

- `ids[]` string[] — Retrieve only the subprojects that matches the ids passed in the request.
- `project_ids[]` string[] — Retrieve only the subprojects that belongs to the project ids passed in the request.
- `name` string — Retrieve only the subprojects that matches the name passed in the request.
- `include_no_subproject` boolean
- `include_inputed_minutes` boolean — If `true` we will perform the minutes calculations and will be return the total `inputed_minutes`. If the param is not passed in the request, its default value is `FALSE` so it will return `inputed_minutes: 0` and no minutes calculations will be performed.
- `include_cost` boolean — If `true` we will perform the cost calculations and will be return the total `labor_cost_cents`. If the param is not passed in the request, its default value is `FALSE` so it will return `labor_cost_cents: 0` and no cost calculations will be performed.
- `updated_after` string — Retrieve only the subprojects that were updated after the date passed in the request.

## Response `200`

OK

- object
  - `data` ProjectManagementSubproject[]
    - `id` string — The id of the subproject
    - `name` string, required — The name of the subproject
    - `project_id` string, required — The id of the project
    - `inputed_minutes` integer — The total minutes tracked in the subproject (if requested)
    - `labor_cost_cents` integer — The total labor cost of the subproject in cents (if requested)
    - `description` string — The description of the subproject
    - `status` 'active' | 'closed' | 'draft' | 'processing' — The status of the subproject
    - `code` string — The code of the subproject
    - `start_date` string — The start date of the subproject
    - `due_date` string — The due date of the subproject
    - `is_billable` boolean — Whether the subproject is billable
  - `meta` PagedIndexMeta
    - `start_cursor` string
    - `end_cursor` string
    - `has_previous_page` boolean, required
    - `has_next_page` boolean, required
    - `limit` integer, required
    - `total` integer, required

---

[API](https://skmtc.dev/factorialhr/apis/factorial-api.md) · [All operations](https://skmtc.dev/factorialhr/apis/factorial-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/factorialhr/factorial-api/revisions/1a6bffb20f7d/schema)
