List projects
Changed onPlan: Business or higher
Scope: workspaces:read
Returns projects across the selected workspaces in one cursor-paginated list, sorted by last edited time descending then project ID ascending. Projects without a last edit use their update time for ordering; projects with neither sort last. Repeat workspace_id to select up to 10 workspaces. Every selected workspace must pass authorization; any failure rejects the whole request. Workspace-scoped API keys remain limited to their own workspace. Cursors are bound to the selected workspace set and filters. Reads are eventually consistent: recent changes may not appear immediately. Retry the read with backoff if an expected change is missing.
Request
- Base URLhttps://api.lovable.dev
- Auth
- API key in header Lovable-API-Key
- or HTTP bearer
Query parameters
Workspace IDs to list projects from. Repeat the parameter to select up to 10 workspaces; duplicates are ignored. Every workspace must be accessible to the caller. Workspace-scoped API keys can select only their own workspace.
[ "workspace_01jw3k9m2xq8r5v0c7d4e6f2gh" ]
Filter by the visibility field. Repeat to match any of the values. Omit to include every level you can access.
[ "workspace_edit" ]
Filter by whether the project is published. Omit for no filter.
Filter published projects by the publish_audience field, resolved the same way the response resolves it, including the workspace default. Repeat to match any value. Omit for no filter. Requires is_published to be true or omitted.
[ "workspace" ]
Filter by the folder_id field: projects placed directly in the folder, not those in folders nested inside it. Repeat to match any of the folders, for example a folder and its children from GET /v1/workspaces/{workspace_id}/folders. Omit for no filter.
[ "fold_01jw3k9m2xq8r5v0c7d4e6f2gh" ]
Filter by whether the project is in a folder. false selects projects whose folder_id is null. Omit for no filter. Cannot be false when folder_id is set.
Search project names, generated descriptions, and owner names or email addresses. Terms shorter than 3 characters are ignored.
Maximum number of items to return per page.
Pass pagination.next_cursor from the previous response to fetch the next page. Omit for the first page; keep the same filters and sort order across pages.
Headers
Stable API version to serve, as a YYYY-MM-DD date. Omit for the oldest supported stable version, currently 2026-09-11.
Comma-separated beta revision strings to enable on top of the stable version.
Response
OK
Example response
{
"data": [
{
"created_at": "2026-01-15T09:30:00Z",
"description": "A landing page for Acme with a hero, features, and pricing.",
"folder_id": "fold_01jw3k9m2xq8r5v0c7d4e6f2gh",
"id": "prj_01jw3k9m2xq8r5v0c7d4e6f2gh",
"is_published": true,
"last_edited_at": "2026-01-15T09:30:00Z",
"latest_screenshot_url": "https://screenshot2.lovable.dev/acme-landing-page.png",
"name": "Acme Landing Page",
"owner_id": "404666c6-b533-5d2c-9768-c425bf40559b",
"publish_audience": "public",
"visibility": "workspace_edit",
"workspace_id": "workspace_01jw3k9m2xq8r5v0c7d4e6f2gh"
}
],
"pagination": {
"has_more": true,
"next_cursor": "eyJ2IjoxLCJpZCI6InByal8wMWp3M2s5In0"
}
}Changes
- info
added the new optional
queryrequest parameterfolder_id - info
added the new optional
queryrequest parameteris_in_folder - info
added the required property
//to the response with the status
- info
- warning
deleted the
queryrequest parametertype - info
for the
headerrequest parameterLovable-Version, the format was generalized fromdateto no format - info
added the non-success response with the status
- warning