---
title: "Create embed URL"
method: POST
path: "/v1/projects/{project_id}/embed-url"
tags: ["projects"]
---

# Create embed URL

`POST /v1/projects/{project_id}/embed-url`

**Plan:** `All plans`

Creates a one-hour static preview URL that can be framed by one exact HTTPS parent origin. The token is anonymous and cannot access live previews or published modes.

## Path parameters

- `project_id` string, required — Project ID

## Request body

- V1CreateEmbedURLInputBody
  - `parent_origin` string, required — Exact HTTPS origin allowed to frame the static preview

## Response `200`

OK

- V1CreateEmbedURLOutputBody
  - `embed_url` string, required — Origin-bound static preview URL
  - `expires_at` string, date-time, required — Embed URL token expiration time

## Other responses

- `401` — Missing or invalid API key.
- `403` — The key or caller lacks the required scope or permission.
- `406` — The Accept header excludes every media type this endpoint produces.
- `429` — Too many requests. Retry after the interval in Retry-After when present.
- `default` — Error. The response body uses the standard error envelope; status matches the HTTP status code and type is a machine-readable error code.

---

[API](https://skmtc.net/lovable/apis/lovable-api.md) · [All operations](https://skmtc.net/lovable/apis/lovable-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lovable/lovable-api/revisions/aa8d44585147/schema)
