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

# Reads all Subprojects

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

## Request

- Base URL: `https://api.factorialhr.com`
- URL: `https://api.factorialhr.com/api/2026-10-01/resources/project_management/subprojects`
- Auth: one of:
  - OAuth 2
    - Authorization code: `https://id.factorialhr.com/oauth/authorize`
    - Token URL: `https://id.factorialhr.com/api/oauth/token` scopes: `project_management_projects`
  - API key in header `x-api-key`

###### **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', required: 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

## Changes

- **2026-11-03** `83ac9aa1de50`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/factorialhr/apis/factorial-api/changes/api/2026-10-01/resources/project_management/subprojects/get.md)

---

[API](https://skmtc.dev/factorialhr/apis/factorial-api.md) - [All operations](https://skmtc.dev/factorialhr/apis/factorial-api/llms.txt) - [OpenAPI document](https://skmtc.dev/factorialhr/apis/factorial-api/revisions/83ac9aa1de50?raw)
