projects

Plan: Business or higher

Scope: projects:write

Updates project sharing or the human-readable name. The description is generated by the agent and cannot be edited through this endpoint. Omitted fields keep their current values. This does not change access to the published app; use PATCH /v1/projects/{project_id}/publish for that.

patch/v1/projects/{project_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

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.

Request body

namestring

Project display name, 1-100 Unicode code points. Must contain a non-whitespace character. Allows Unicode letters, combining marks, numbers, space separators (Zs), punctuation - _ . ' · & ( ) [ ] | , ! : ‘ ’, and the zero-width non-joiner/joiner U+200C/U+200D. Other characters (including 🚀, tabs, and line breaks), links, recognized domain names, and IP addresses are rejected. Leading and trailing spaces are preserved. Omit to keep the current name.

visibility'restricted' | 'workspace_edit' | 'workspace_view'

Who can open the project in the Lovable editor. restricted: only the project owner, invited collaborators, and the workspace owner (Business or Enterprise). workspace_edit: every workspace member, at the access level their workspace role grants. workspace_view: every workspace member, with the access their workspace role grants capped at read; explicit project, folder, and group grants still permit editing (Business or Enterprise). Published app access is configured separately via publish_audience. Omit to keep the current setting.

Example request

{
  "name": "Acme Landing Page",
  "visibility": "workspace_edit"
}

Response

OK

created_atstring date-time nullable required

When the project was created; null when unavailable.

descriptionstring nullable required

AI-written summary of what the project does; null until the agent has completed a response for the project.

folder_idstring nullable required

ID of the folder the project is in; null when it is in none. A project is in at most one folder, and a folder can be nested in another. Folder names and nesting come from GET /v1/workspaces/{workspace_id}/folders.

idstring required

Project ID.

is_publishedboolean required

Whether the project is published.

is_remixboolean required

Whether the project was created by remixing another project. The source project is not identified.

last_edited_atstring date-time nullable required

When the project last received an edit or a user chat message; null when neither has happened.

latest_commit_shastring nullable required

SHA of the latest commit; null before the first commit.

latest_screenshot_urlstring nullable required

URL of the latest screenshot; null until one has been captured.

namestring nullable required

Human-readable project name; null when none is set.

owner_idstring nullable required

Project owner user UUID, matching the OAuth subject for clients using derived UUIDs. Null when unavailable.

preview_urlstring nullable required

URL of the project's main preview. Serves the latest successful preview build at the same address across commits; it is not pinned to a commit or draft. Uses the workspace's branded hostname unless the project opts out, and may change when branding changes. Null when the environment has no preview host; a URL does not mean a preview build is ready. Contains no authentication token; opening it requires a Lovable login unless the project is publicly remixable. To embed it from a third-party origin, use POST /v1/projects/{project_id}/embed-url.

publish_audience'public' | 'workspace' | 'custom' | 'null' nullable required

Who can open the published app: the audience set via POST or PATCH /v1/projects/{project_id}/publish; null while the app is not published. More values may be added; clients must tolerate unknown values.

visibility'restricted' | 'workspace_edit' | 'workspace_view' | 'null' nullable required

Who can open the project in the Lovable editor. restricted: only the project owner, invited collaborators, and the workspace owner (Business or Enterprise). workspace_edit: every workspace member, at the access level their workspace role grants. workspace_view: every workspace member, with the access their workspace role grants capped at read; explicit project, folder, and group grants still permit editing (Business or Enterprise). Null when no setting is stored. Published app access is configured separately via publish_audience. More values may be added; clients must tolerate unknown values.

workspace_idstring required

Workspace the project belongs to.

Example response

{
  "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_commit_sha": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0",
  "latest_screenshot_url": "https://screenshot2.lovable.dev/acme-landing-page.png",
  "name": "Acme Landing Page",
  "owner_id": "404666c6-b533-5d2c-9768-c425bf40559b",
  "preview_url": "https://id-preview--fa8b85cf-b9ff-4f1c-989a-74c32d1326f4.lovable.app",
  "publish_audience": "public",
  "publish_audience_targets": [
    {
      "id": "grp_01jw3k9m2xq8r5v0c7d4e6f2gh",
      "type": "group"
    }
  ],
  "visibility": "workspace_edit",
  "workspace_id": "workspace_01jw3k9m2xq8r5v0c7d4e6f2gh"
}

Changes