---
title: "List projects"
method: GET
path: "/api/v1/projects"
tags: ["projects"]
---

# List projects

`GET /api/v1/projects`

## Request

- Base URL: `https://demo.invoiceninja.com`
- URL: `https://demo.invoiceninja.com/api/v1/projects`
- Auth: none declared. Required headers: `X-API-TOKEN`, `X-Requested-With`
- TypeScript: <https://skmtc.dev/invoiceninja/apis/invoice-ninja-api-reference/docs/api/v1/projects/get.ts> (a function with typed inputs; its response is checked against the schema)

Lists projects

## Query parameters

- `include` string
- `index` string
- `per_page` integer
- `page` integer
- `sort` string[]

## Headers

- `X-API-TOKEN` string, required
- `X-Requested-With` string, required

## Response `200`

A list of projects

- object
  - `data` Project[]
    - `id` string, required: The project hashed id
    - `user_id` string, required: The user hashed id
    - `assigned_user_id` string: The assigned user identifier associated with the project
    - `client_id` string: The client identifier associated with the project
    - `name` string, required: The name of the project
    - `task_rate` number, float, required: The default rate per task for the project
    - `due_date` string, date: The due date for the project
    - `private_notes` string: Private notes associated with the project
    - `budgeted_hours` number, float, required: The number of budgeted hours for the project
    - `custom_value1` string: Custom value field 1
    - `custom_value2` string: Custom value field 2
    - `custom_value3` string: Custom value field 3
    - `custom_value4` string: Custom value field 4
    - `created_at` number: The timestamp of the project creation
    - `updated_at` number: The timestamp of the last project update
    - `archived_at` number: The timestamp of the project deletion
    - `public_notes` string: Public notes associated with the project
    - `is_deleted` boolean, required: A flag indicating if the project is deleted
    - `number` string: The project number
    - `color` string, required: The color associated with the project
    - `tags` TagAssignment[]: Tags assigned to the project
      - `id` string, required: The hashed tag id
      - `name` string, required: The tag name
      - `color` string, nullable: The tag color as a hex value, or null when unset
  - `meta` Meta
    - `pagination` Pagination
      - `total` integer: The total number of items
      - `count` integer: The number of items per page
      - `per_page` integer: The number of items per page
      - `current_page` integer: The current page number
      - `total_pages` integer: The total number of pages
      - `links` object: The pagination links

## Other responses

- `401`: Authentication error
- `403`: Authorization error
- `422`: Validation error
- `429`: Rate Limit Exceeded
- `5XX`: Server error
- `default`: Unexpected Error

## 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`

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

---

[API](https://skmtc.dev/invoiceninja/apis/invoice-ninja-api-reference.md) - [All operations](https://skmtc.dev/invoiceninja/apis/invoice-ninja-api-reference/llms.txt) - [OpenAPI document](https://skmtc.dev/invoiceninja/apis/invoice-ninja-api-reference/revisions/bcda1f823746?raw)
