Api Projects List 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.

Authentication

AuthorizationBearer
JWT access token or Respan API key

Query parameters

pageintegerOptional
A page number within the paginated result set.
page_sizeintegerOptional
Number of results to return per page.

Response

countinteger
resultslist of objects
nextstring or nullformat: "uri"
previousstring or nullformat: "uri"
total_countinteger
current_filtersobject

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_dataobject