List user's projects
const url = 'https://example.com/api/projects';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://example.com/api/projects \ --header 'Authorization: Bearer <token>'Returns all projects for the authenticated user with run statistics and staleness info.
Authorizations
Section titled “Authorizations ”Responses
Section titled “ Responses ”Project list
object
object
Primary Lovable/frontend repo (owner/repo)
Legacy alias of frontendRepo
object
GitHub repo in owner/repo format.
Example
TeamK2K/app-apphandoffOptional branch override. Empty means default branch.
Optional relative scan root inside the repo, such as apps/backend or apps/frontend.
Snake_case alias of lastScanAt
Most recent agent (bot) or human (user) activity_events row for the project; null when no activity recorded. Drives the “Latest activity” sort on the projects list.
Null when run stats could not be loaded (distinct from zero runs)
Null when run stats could not be loaded
Always false on GET /projects list; use GET /projects/{id}/sync-check for live GitHub ahead/behind
Not authenticated
object
Human-readable error message
Stable machine-readable error code for client branching
First validation message per field path
object
Structured validation issues (Zod)
object
Seconds until rate limit resets (429 responses)
True if re-linking GitHub may fix the issue