---
title: "List projects for an organization"
method: GET
path: "/projects"
---

# List projects for an organization

`GET /projects`

List projects for an organization with pagination, filtering, and sorting.

Filter parameters support Supabase filter operators, per the field's
declared policy:
- Text fields (name, description): use ``ilike.%value%`` for partial match
- Date fields: use ``gte.value``, ``lte.value``, etc.
- Date range: use created_at_gt and created_at_lt for between queries

There is no ``created_by_email`` filter: the projects table records no
creator, so there is nothing to match against.

## Query parameters

- `limit` integer
- `offset` integer
- `name` string, nullable
- `description` string, nullable
- `created_at` string, nullable
- `created_at_gt` string, nullable
- `created_at_lt` string, nullable
- `updated_at` string, nullable
- `updated_at_gt` string, nullable
- `updated_at_lt` string, nullable
- `order_by` 'name' | 'created_at' | 'updated_at'
- `order` 'asc' | 'desc'

## Response `200`

Successful Response

- PaginatedResponseProject
  - `items` Project[], required
    - `name` string, required — The name of the project.
    - `description` string, nullable — An optional description for the project.
    - `id` string, required — The unique identifier for the project.
    - `organization_id` string, required — The ID of the organization this project belongs to.
    - `created_at` string, date-time, required — Timestamp of when the project was created.
    - `updated_at` string, date-time, required — Timestamp of when the project was last updated.
    - `created_by` string, nullable — User ID of the creator.
    - `user_project_roles` UserProjectRole[], nullable — The user project roles in the project.
      - `user_id` string, required — The ID of the user.
      - `project_id` string, required — The ID of the project.
      - `project_role_id` string, required — The ID of the project role.
      - `project_roles` ProjectRole
        - `id` string, required
        - `name` string, required
        - `created_at` string, date-time, required
        - `updated_at` string, date-time, required
        - `project_role_permissions` object[], nullable — The permissions for the project role.
      - `created_at` string, date-time, required — Timestamp of when the user project role was created.
      - `updated_at` string, date-time, required — Timestamp of when the user project role was last updated.
  - `count` integer, required
  - `total` integer, required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/ionworks/apis/fastapi.md) · [All operations](https://skmtc.dev/ionworks/apis/fastapi/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/ionworks/fastapi/revisions/7337a3cbdaf2/schema)
