deploy-domains

Get publish status

Changed on

Plan: Business or higher

Scope: projects:read

Returns the status of an async publish started with POST /v1/projects/{project_id}/publish, keyed by the id it returned. Poll until deployment succeeds (url is set) or fails (error_message explains the failure). Poll no more than once every 2 seconds and honor Retry-After on 429 responses.

On failure, use error_class to choose the next action.

error_classAction
transientRetry publishing with backoff and a bounded retry limit.
codeFix the app code or SQL, then publish again.
configurationFix configuration committed in the project, such as an oversized file, then publish again.
dataReview the migration against production data. Obtain human approval before changing data, then publish again.
integrationRepair external credentials, quota, or the connected service, then publish again.
policyAsk the workspace administrator to lift the blocking policy or approve the publish.
internalContact Lovable support with the deployment ID.

If error_class is null or unrecognized, show error_message and contact support instead of automatically retrying.

get/v1/projects/{project_id}/publish/{deployment_id}

Request

  • Base URL
    https://api.lovable.dev
  • Auth
    • API key in header Lovable-API-Key
    • or HTTP bearer

Path parameters

project_idstring required

Project ID.

Example:prj_01jw3k9m2xq8r5v0c7d4e6f2gh
deployment_idstring required

Deployment ID returned by POST /v1/projects/{project_id}/publish.

Example:c3d4e5f6-a7b8-9012-cdef-345678901234

Headers

Lovable-Versionstring

Stable API version to serve, as a YYYY-MM-DD date. Omit for the oldest supported stable version, currently 2026-09-11.

Lovable-Betastring

Comma-separated beta revision strings to enable on top of the stable version.

Response

OK

error_class'transient' | 'code' | 'configuration' | 'data' | 'integration' | 'policy' | 'internal' | 'null' nullable required

Where to address the failure; see the operation description for the action for each class. Null when no failure category is available. More values may be added; for unknown values, show error_message and contact support instead of automatically retrying.

error_messagestring nullable required

Human-readable reason for a deployment failure; null unless the deployment failed.

idstring required

Deployment ID.

status'running' | 'completed' | 'error' | 'unknown' required

Deployment progress. running means the deployment was accepted and has not reported completion. completed means the deployment succeeded and url is set. unknown means the deployment exists but its workflow state has no recognized public mapping; it confirms neither success nor failure. Poll again with backoff and a bounded timeout, then report an indeterminate result if it persists. Unknown or mismatched deployment IDs return HTTP 404. Clients must tolerate new values.

urlstring nullable required

URL produced by this successful deployment; null until this deployment succeeds, even when an older version is published.

Example response

{
  "error_class": "configuration",
  "error_message": "Missing environment variable VITE_API_URL",
  "id": "c3d4e5f6-a7b8-9012-cdef-345678901234",
  "status": "completed",
  "url": "https://acme-landing-page.lovable.app"
}

Changes

    • info

      for the header request parameter Lovable-Version, the format was generalized from date to no format

    • info

      added the non-success response with the status

    • info

      added the non-success response with the status