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

# List projects for an organization

`GET /projects`

## Request

- Base URL: `https://api.ionworks.com`
- URL: `https://api.ionworks.com/projects`
- Auth: none declared

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.
    - `my_role` string, nullable: The caller's role in the project, or null if they are not a member.
    - `my_permissions` string[]: The permission actions the caller's project role grants, e.g. ``pipeline:read``. Empty if they are not a member.
  - `count` integer, required
  - `total` integer, required

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-30** `fb09ebb2c64e`: 1 warning, 2 info
  - removed the optional property `items/items/user_project_roles` from the response with the `200` status
  - added the optional property `items/items/my_permissions` to the response with the `200` status
  - added the optional property `items/items/my_role` to the response with the `200` status

[Operation history](https://skmtc.dev/ionworks/apis/ionworks-api/changes/projects/get.md)

---

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