Api Workspaces Projects List List

GET/POST /api/workspaces/<id>/projects/list/ Nested, workspace-scoped list of projects (orgs/teams) under one workspace — the "nested, scoped" counterpart to the flat ``/api/projects/list/``. The ``/list/`` suffix marks this as the pure list+search endpoint (POST filters, it does not create). Access is scoped via the same membership rule as the rest of the suite (:func:`accessible_workspaces_q`): a regular user can only enumerate projects of a workspace they can access (404 otherwise, so a workspace's existence is not disclosed). JWT-only (no API-key auth): scoping is by the authenticated *user's* membership, so an org-scoped API key must not reach it.

Authentication

AuthorizationBearer
JWT access token or Respan API key

Path parameters

unique_company_organization_idstringRequired

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