Skip to content

Get project detail with runs

GET
/projects/{id}
curl --request GET \
--url https://example.com/api/projects/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0 \
--header 'Authorization: Bearer <token>'
id
required
string format: uuid

Project UUID

Project detail with run history

Media type application/json
object
project
required
object
id
required
string format: uuid
name
required
string
status
required
string
frontendRepo
required

Primary Lovable/frontend repo (owner/repo)

string
sourceRepo
required

Legacy alias of frontendRepo

string
targetRepo
string | null
backendRepo
string | null
repos
Array
object
repoSlug
required

GitHub repo in owner/repo format.

string
Example
TeamK2K/app-apphandoff
role
required
string
Allowed values: backend frontend shared monorepo
branch

Optional branch override. Empty means default branch.

string
appSubDir

Optional relative scan root inside the repo, such as apps/backend or apps/frontend.

string | null
id
string format: uuid
repoId
integer | null
ordinal
integer
commitSha
string | null
outputDestination
string | null
createdAt
required
string format: date-time
updatedAt
required
string format: date-time
lastScanAt
string | null format: date-time
last_scan_at

Snake_case alias of lastScanAt

string | null format: date-time
lastActivityAt

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.

string | null format: date-time
runCount
required

Null when run stats could not be loaded (distinct from zero runs)

integer | null
successCount
required

Null when run stats could not be loaded

integer | null
latestRunStatus
string | null
latestRunDate
string | null format: date-time
confidenceScore
number | null
routeCount
integer | null
ssrBlockerCount
integer | null
sourceAhead
required

Always false on GET /projects list; use GET /projects/{id}/sync-check for live GitHub ahead/behind

boolean
backendContext

Scanned backend context

object | null
lovableContext

Scanned Lovable context

object | null
lovableRepo
string | null
openapiValid
boolean | null
designDecisions
Array<object>
object
runs
required
Array<object>
object
id
required
string format: uuid
status
required
string
upstreamSha
string | null
converterVersion
string | null
llmAssist
boolean
outputDestination
string | null
repoUrl
string | null
jobPayload
object | null
startedAt
string | null format: date-time
completedAt
string | null format: date-time
createdAt
required
string format: date-time
errorMessage
string | null
confidenceScore
number | null
routeCount
integer | null
ssrBlockerCount
integer | null
reportJson
object | null
prUrl
string | null
prNumber
integer | null
prState
string | null

Invalid request

Media type application/json
object
error
required

Human-readable error message

string
code

Stable machine-readable error code for client branching

string
fieldErrors

First validation message per field path

object
key
additional properties
string
issues

Structured validation issues (Zod)

Array<object>
object
path
required
string
message
required
string
retryAfter

Seconds until rate limit resets (429 responses)

number

Not authenticated

Media type application/json
object
error
required

Human-readable error message

string
code

Stable machine-readable error code for client branching

string
fieldErrors

First validation message per field path

object
key
additional properties
string
issues

Structured validation issues (Zod)

Array<object>
object
path
required
string
message
required
string
retryAfter

Seconds until rate limit resets (429 responses)

number
reconnect

True if re-linking GitHub may fix the issue

boolean

Forbidden

Media type application/json
object
error
required

Human-readable error message

string
code

Stable machine-readable error code for client branching

string
fieldErrors

First validation message per field path

object
key
additional properties
string
issues

Structured validation issues (Zod)

Array<object>
object
path
required
string
message
required
string
retryAfter

Seconds until rate limit resets (429 responses)

number

Not found

Media type application/json
object
error
required

Human-readable error message

string
code

Stable machine-readable error code for client branching

string
fieldErrors

First validation message per field path

object
key
additional properties
string
issues

Structured validation issues (Zod)

Array<object>
object
path
required
string
message
required
string
retryAfter

Seconds until rate limit resets (429 responses)

number