---
title: "List workspace security project inventory"
method: GET
path: "/v1/workspaces/{workspace_id}/security-center/insights/projects"
tags: ["security-governance"]
---

# List workspace security project inventory

`GET /v1/workspaces/{workspace_id}/security-center/insights/projects`

**Plan:** `Enterprise`

Returns the review-priority-ranked project inventory for the workspace, sorted by the selected sort_by (default last_edited, or relevance when query is set) with offset-based paging behind the cursor.

## Path parameters

- `workspace_id` string, required — Workspace ID

## Query parameters

- `limit` integer — Max results per page.
- `cursor` string — Opaque cursor from a prior response. Omit on the first page.
- `query` string — Free-text search across project name and owner.
- `sort_by` 'review_priority_desc' | 'name_asc' | 'name_desc' | 'published_status_asc' | 'published_status_desc' | 'last_edited_asc' | 'last_edited_desc' | 'risk_factors_asc' | 'risk_factors_desc' | 'pii_findings_asc' | 'pii_findings_desc' | 'external_access_asc' | 'external_access_desc' | 'most_edited_24h' | 'most_edited_7d' | 'most_edited_30d' | 'most_visitors_24h' | 'most_visitors_7d' | 'most_visitors_30d' | 'last_scan_desc' | 'last_scan_asc' — Sort axis. When omitted, results sort by last_edited (or by relevance when 'query' is set).
- `activity` 'active' | 'inactive' | 'dead' — Activity bucket filter.
- `is_published` 'true' | 'false' — Filter by publishing status. Omit for no filter.
- `visibility` 'public' | 'private' | 'draft' — Filter by project visibility.
- `contains_pii` boolean — Filter to projects flagged with PII.
- `has_connectors` boolean — Filter to projects with at least one connector.
- `publish_status` string[], nullable — Repeat to include multiple publishing statuses. Omit for all.
- `review_priority` string[], nullable — Repeat to include multiple review priorities (needs_review=critical, review_recommended=high+medium, no_review_needed=low+minimal). Unscored projects are not filterable but may appear in results.
- `finding_id` string[], nullable — Repeat to filter to projects matching any of the listed catalog findings (e.g. public_pii_exposure, abandoned_published). Unknown finding ids return 400.

## Response `200`

OK

- V1WorkspaceInsightsProjectsBody
  - `activity_as_of` V1WorkspaceInsightsActivityFreshness
    - `edits_as_of` string, date-time — Data horizon for the edit counts.
    - `visitors_as_of` string, date-time — Data horizon for the visitor counts.
  - `applied_finding` V1WorkspaceInsightsFinding
    - `category` string, required — Finding category (e.g. data, access, exposure).
    - `description` string, required — Human-readable finding description.
    - `id` string, required — Stable finding-catalog slug (e.g. public_pii_exposure, orphaned_owner).
    - `project_count` integer, required — Projects matching this finding.
    - `severity` string, required — Review priority: needs_review | review_recommended | no_review_needed.
    - `title` string, required — Human-readable finding title.
  - `as_of` string, date-time — Conservative workspace-wide freshness horizon for the risk rollups; individual project rollups may be newer.
  - `data` V1WorkspaceInsightsProject[], nullable, required
    - `activity_group` string
    - `connectors` string[], nullable
    - `description` string
    - `display_name` string
    - `edge_functions` V1WorkspaceInsightsEdgeFunction[], nullable
      - `name` string, required — Edge function name.
    - `edit_count` integer, required
    - `edits_24h` integer, required
    - `edits_30d` integer, required
    - `edits_7d` integer, required
    - `generated_description` string
    - `id` string, required
    - `is_published` boolean
    - `last_edited_at` string, date-time
    - `last_security_scan_at` string, date-time
    - `matched_reason` V1WorkspaceInsightsReason
      - `category` string, required
      - `detail` string, required
      - `id` string, required — Stable risk-reason slug.
      - `label` string, required
      - `severity` string, required — Review priority: needs_review | review_recommended | no_review_needed.
      - `values` V1WorkspaceInsightsReasonValues
        - `connector_count` integer
        - `edge_function_count` integer
        - `error_count` integer
        - `info_count` integer
        - `open_pii_finding_count` integer
        - `secret_count` integer
        - `shared_user_count` integer
        - `warning_count` integer
    - `message_count` integer, required
    - `name` string
    - `og_image_url` string
    - `owner` V1WorkspaceInsightsOwner
      - `display_name` string — Project owner's display name.
    - `publish_visibility` string
    - `review_priority` string — Review priority: needs_review, review_recommended, no_review_needed, or unscored.
    - `review_priority_explanation` V1WorkspaceInsightsReason[], nullable, required
      - `category` string, required
      - `detail` string, required
      - `id` string, required — Stable risk-reason slug.
      - `label` string, required
      - `severity` string, required — Review priority: needs_review | review_recommended | no_review_needed.
      - `values` V1WorkspaceInsightsReasonValues
        - `connector_count` integer
        - `edge_function_count` integer
        - `error_count` integer
        - `info_count` integer
        - `open_pii_finding_count` integer
        - `secret_count` integer
        - `shared_user_count` integer
        - `warning_count` integer
    - `signals` V1WorkspaceInsightsSignals, required
      - `chat_attachment_count` integer, required
      - `connector_count` integer, required
      - `edge_function_count` integer, required
      - `error_count` integer, required
      - `external_collaborators_known` boolean, required
      - `has_chat_attachment` boolean, required
      - `has_external_collaborators` boolean, required
      - `has_pii` boolean, required
      - `has_project_asset` boolean, required
      - `has_project_secret` boolean, required
      - `info_count` integer, required
      - `is_orphaned` boolean, required
      - `is_public_published` boolean, required
      - `is_published` boolean, required
      - `lovable_cloud_enabled` boolean, required
      - `open_pii_finding_count` integer, required
      - `overshared` boolean, required
      - `project_asset_count` integer, required
      - `project_secret_count` integer, required
      - `shared_user_count` integer, required
      - `supabase_auth_providers` string[], nullable
      - `supabase_rls_enabled_table_count` integer
      - `supabase_signals_fetched_at` string, date-time
      - `supabase_storage_bucket_count` integer
      - `supabase_table_count` integer
      - `supply_chain_error_count` integer, required
      - `supply_chain_info_count` integer, required
      - `supply_chain_warning_count` integer, required
      - `warning_count` integer, required
    - `url` string
    - `visibility` string
    - `visitors_24h` integer, required
    - `visitors_30d` integer, required
    - `visitors_7d` integer, required
  - `pagination` Pagination, required
    - `has_more` boolean, required — Whether more results are available beyond this page
    - `next_cursor` string, nullable, required — Cursor for the next page; null when there are no more results
  - `total` integer, required — Total matching projects across all pages.

## Other responses

- `401` — Missing or invalid API key.
- `402` — This operation or requested configuration requires a workspace plan that includes this feature.
- `403` — The key or caller lacks the required scope or permission.
- `406` — The Accept header excludes every media type this endpoint produces.
- `429` — Too many requests. Retry after the interval in Retry-After when present.
- `default` — Error. The response body uses the standard error envelope; status matches the HTTP status code and type is a machine-readable error code.

---

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