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

# List projects

`GET /projects`

## Request

- Base URL: `https://api.stoneproject.app/api/v1/public`
- URL: `https://api.stoneproject.app/api/v1/public/projects`
- Auth: HTTP bearer

## Query parameters

- `search` string
- `stage` 'lead' | 'design' | 'quoted' | 'approved' | 'template' | 'production' | 'installation' | 'invoice' | 'completed' | 'warranty' | 'cancelled' | 'lost'
- `status` string
- `client_id` string
- `assigned_to` integer
- `created_after` string, date-time
- `created_before` string, date-time
- `page` integer
- `per_page` integer

## Response `200`

OK

- object
  - `success` boolean
  - `message` string, nullable
  - `data` object
    - `items` Job[]
      - `id` string
      - `title` string
      - `description` string, nullable
      - `stage` string
      - `priority` string
      - `client_id` string, nullable
      - `assigned_to` integer, nullable
      - `estimated_value` number, nullable
      - `source` string, nullable
      - `address` string, nullable
      - `address_line_2` string, nullable
      - `city` string, nullable
      - `state` string, nullable
      - `zip_code` string, nullable
      - `country` string, nullable
      - `created_at` string, date-time, nullable
      - `updated_at` string, date-time, nullable
    - `meta` PageMeta
      - `current_page` integer
      - `last_page` integer
      - `per_page` integer
      - `total` integer

## Other responses

- `401`: Missing, invalid, revoked or expired token
- `403`: The token lacks the required scope
- `429`: Rate limit reached; retry after the Retry-After header

---

[API](https://skmtc.dev/stoneproject/apis/stone-project-public-api.md) · [All operations](https://skmtc.dev/stoneproject/apis/stone-project-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/stoneproject/apis/stone-project-public-api/revisions/7cebff773929?raw)
