---
title: "Get Projects V2"
method: POST
path: "/public/v2/projects/paginated"
tags: ["projects"]
---

# Get Projects V2

`POST /public/v2/projects/paginated`

Gets projects optimized for V2 with pagination and server-side run counts.

## Query parameters

- `actions` ProjectAction[] — Actions to include in the 'permissions' field.
- `include_logstreams` boolean — When true, include log streams (id and name) for each project.
- `metric_id` string, uuid, nullable — Filters logstreams to those with this metric enabled. Affects both the log_streams list (when include_logstreams=true) and the num_logstreams count.
- `starting_token` integer
- `limit` integer

## Request body

- ApiSchemasProjectV2ProjectCollectionParams
  - `filters` union[]
    - union
      - ApiSchemasProjectV2ProjectNameFilter
        - `name` 'name'
        - `operator` 'eq' | 'ne' | 'contains' | 'one_of' | 'not_in', required
        - `value` union, required
          - string
          - string[]
        - `case_sensitive` boolean
      - ApiSchemasProjectV2ProjectCreatorFilter
        - `name` 'creator'
        - `operator` 'eq' | 'ne' | 'one_of' | 'not_in' | 'contains'
        - `value` union, required
          - string, uuid4
          - union[]
            - union
              - …
          - string
      - ApiSchemasProjectV2ProjectCreatedAtFilter
        - `name` 'created_at'
        - `operator` 'eq' | 'ne' | 'gt' | 'gte' | 'lt' | 'lte', required
        - `value` string, date-time, required
      - ApiSchemasProjectV2ProjectUpdatedAtFilter
        - `name` 'updated_at'
        - `operator` 'eq' | 'ne' | 'gt' | 'gte' | 'lt' | 'lte', required
        - `value` string, date-time, required
      - ProjectNumLogstreamsFilter
        - `name` 'num_logstreams'
        - `operator` 'eq' | 'ne' | 'gt' | 'gte' | 'lt' | 'lte' | 'between', required
        - `value` union, required
          - integer
          - number
          - integer[]
          - number[]
      - ProjectNumExperimentsFilter
        - `name` 'num_experiments'
        - `operator` 'eq' | 'ne' | 'gt' | 'gte' | 'lt' | 'lte' | 'between', required
        - `value` union, required
          - integer
          - number
          - integer[]
          - number[]
      - ApiSchemasProjectV2ProjectBookmarkFilter
        - `name` 'bookmark'
        - `value` boolean, required
  - `sort` union
    - ApiSchemasProjectV2ProjectNameSort
      - `name` 'name'
      - `ascending` boolean
      - `sort_type` 'column'
    - ApiSchemasProjectV2ProjectCreatedAtSort
      - `name` 'created_at'
      - `ascending` boolean
      - `sort_type` 'column'
    - ApiSchemasProjectV2ProjectUpdatedAtSort
      - `name` 'updated_at'
      - `ascending` boolean
      - `sort_type` 'column'
    - ProjectNumLogstreamsSort
      - `name` 'num_logstreams'
      - `ascending` boolean
      - `sort_type` 'column'
    - ProjectNumExperimentsSort
      - `name` 'num_experiments'
      - `ascending` boolean
      - `sort_type` 'column'

## Response `200`

Successful Response

- ApiSchemasProjectV2GetProjectsPaginatedResponse — Response model for the V2 projects paginated endpoint.
  - `starting_token` integer
  - `limit` integer
  - `paginated` boolean
  - `next_starting_token` integer, nullable
  - `projects` ProjectItem[], required
    - `id` string, uuid4, required
    - `permissions` Permission[]
      - `action` union, required
        - 'update' | 'delete' | 'read_api_keys' | 'change_role_to_admin' | 'change_role_to_manager' | 'change_role_to_user' | 'change_role_to_read_only'
        - 'update' | 'list_members' | 'join' | 'request_to_join'
        - 'update_role' | 'delete'
        - 'update' | 'delete' | 'rename' | 'share' | 'create_run' | 'delete_run' | 'rename_run' | 'move_run' | 'export_data' | 'configure_human_feedback' | 'record_human_feedback' | 'log_data' | 'toggle_metric' | 'edit_alert' | 'create_stage' | 'edit_stage' | 'configure_crown_logic' | 'delete_data' | 'set_metric' | 'edit_run_tags' | 'dismiss_alert' | 'edit_slice' | 'edit_edit' | 'update_control_bindings' | 'use_control_runtime'
        - 'update' | 'delete' | 'share' | 'export' | 'autotune_apply'
        - 'update' | 'delete'
        - 'update' | 'delete'
        - 'update' | 'delete'
        - 'update' | 'delete'
        - 'update' | 'delete' | 'share' | 'export' | 'rename'
        - 'update' | 'delete' | 'share' | 'read_secrets'
        - 'rename' | 'delete' | 'delete_log_data' | 'read_settings' | 'update_settings' | 'read_cost_settings' | 'read_ai_usage'
        - 'update' | 'delete' | 'share' | 'record_annotation'
        - 'create' | 'read' | 'update' | 'delete' — Actions on Agent Control's org-scoped ``control`` resource.
      - `allowed` boolean, required
      - `message` string, nullable
    - `name` string, required
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
    - `bookmark` boolean
    - `num_logstreams` integer, nullable — Count of runs with task_type=15
    - `num_experiments` integer, nullable — Count of runs with task_type=16
    - `created_by_user` UserInfo — A user's basic information, used for display purposes.
      - `id` string, uuid4, required
      - `email` string, required
      - `first_name` string, nullable
      - `last_name` string, nullable
    - `description` string, nullable
    - `labels` ProjectLabels[] — List of labels associated with the project.
    - `log_streams` LogStreamInfo[], nullable — Log streams for this project. Only populated when include_logstreams=True.
      - `id` string, uuid4, required
      - `name` string, required
  - `total_count` integer, required — Total number of projects matching the filters.

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/galileo/apis/galileo-api-server.md) · [All operations](https://skmtc.net/galileo/apis/galileo-api-server/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/galileo/galileo-api-server/versions/933e8c8e6366/schema)
