---
title: "Api Projects List List"
method: GET
path: "/api/projects/list/"
tags: ["platformApi"]
---

# Api Projects List List

`GET /api/projects/list/`

GET/POST /api/projects/list/

Flat, paginated list of ALL the caller's projects (orgs/teams) across every
workspace they belong to. The "flatten, all" counterpart to the nested,
workspace-scoped ``/api/workspaces/<id>/projects/list/``. POST is the
filtering/search verb (POST-for-Filtering convention; the ``/list/`` suffix
makes the permission stack treat POST as a read).

JWT-only (no API-key auth): this is a user-centric switcher endpoint — "my
projects across my memberships" — like ``auth/teams/`` and
``CompanyOrganizationsView``. It is NOT an org-scoped resource, so it must
not be reachable by an org-scoped API key (which would otherwise leak every
membership on the underlying user account).

Each row carries its ``company_organization`` (workspace) so the FE can
group a flat list by workspace from one call.

## Query parameters

- `page` integer
- `page_size` integer

## Headers

- `Authorization` string, required

## Response `200`

- PaginatedProjectListList
  - `count` integer, required
  - `next` string, uri, nullable
  - `previous` string, uri, nullable
  - `total_count` integer
  - `current_filters` FilterParamDictPydantic — Pydantic model for FilterParamDict. A dictionary that maps metric names to their filter parameters. Each key is a metric name (str), and each value can be: - A single MetricFilterParamPydantic (one condition) - A List[MetricFilterParamPydantic] (multiple conditions for same metric) - A FilterBundlePydantic (nested filter bundle with connector) Note: Uses extra="allow" for dynamic metric name fields. The __pydantic_extra__ annotation tells Pydantic what types to expect for extra fields, and generates typed additionalProperties in JSON Schema.
  - `filters_data` PaginatedProjectListListFiltersData
  - `results` ProjectList[], required
    - `id` string, required
    - `unique_organization_id` string, required
    - `name` string, required
    - `logo` string, uri, nullable, required
    - `company_organization` union, required
      - CompanyOrganizationMini — Lean company-org identity for embedding in other payloads (grouping key). Kept intentionally minimal — just the identity + display name — so it can be prejoined onto per-team rows (see the ``/auth/teams/`` payload) without leaking billing fields or bloating the response.
        - `id` string, required
        - `unique_company_organization_id` string
        - `name` string, required
      - unknown

---

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