정확한 HTTPS origin 하나에서 iframe으로 로드할 수 있는 1시간짜리 미리보기 URL을 만듭니다.
임베드 URL 만들기
플랜:
Business 이상
스코프: projects:write
정확한 HTTPS origin 하나에서 iframe으로 로드할 수 있는 미리보기 URL을 만듭니다. URL은 1시간 동안 유효합니다. 방문자는 Lovable 로그인이 필요 없습니다. 이 URL은 프로젝트의 빌드된 미리보기를 보여 주며 에디터나 게시된 앱에 대한 접근 권한을 부여하지 않습니다.
OpenAPI
| 항목 | 값 |
|---|---|
| Method | POST |
| Path | /v1/projects/{project_id}/embed-url |
| Operation ID | createEmbedUrl |
| Source spec | https://api.lovable.dev/v1/openapi.yaml |
| Local snapshot | YAML 스냅샷 (SHA-256: f6d037d61eadfb5757a0f7cf0fb2b0c0eefd3bc5604e87f3a540fe1ed1302301) |
POST /v1/projects/{project_id}/embed-url인증
Lovable-API-Key: lov_your-api-key 또는 Authorization: Bearer <key>를 보냅니다. 이 엔드포인트는 projects:write 스코프가 필요합니다.
매개변수
| 이름 | 위치 | 필수 | 타입 | 설명 |
|---|---|---|---|---|
project_id | path | 예 | string | 프로젝트 ID입니다. |
Lovable-Version | header | 아니요 | string | 제공받을 안정 API 버전입니다. YYYY-MM-DD 날짜 형식으로 보냅니다. 생략하면 현재 가장 오래된 지원 안정 버전인 2026-09-11이 사용됩니다. |
Lovable-Beta | header | 아니요 | string | 안정 버전 위에 활성화할 베타 리비전 문자열입니다. 여러 개는 쉼표로 구분합니다. |
요청 본문
요청 본문은 필수입니다. Content-Type은 application/json입니다. 본문은 CreateEmbedURLRequest 스키마를 사용합니다.
| 필드 | 타입 | 필수 | 설명 |
|---|---|---|---|
parent_origin | string | 예 | 미리보기를 임베드할 수 있는 HTTPS origin입니다. 소문자 hostname을 사용해야 하며 port, trailing slash, path, query, fragment를 포함할 수 없습니다. 미리보기 URL은 이 origin의 iframe에서만 로드됩니다. |
예시
curl --request POST \
--url 'https://api.lovable.dev/v1/projects/project-id/embed-url' \
--header 'Lovable-API-Key: lov_your-api-key' \
--header 'Lovable-Version: 2026-09-11' \
--header 'Content-Type: application/json' \
--data '{"parent_origin": "https://acme.com"}'const response = await fetch("https://api.lovable.dev/v1/projects/project-id/embed-url", {
method: "POST",
headers: {
"Lovable-API-Key": process.env.LOVABLE_API_KEY ?? "lov_your-api-key",
"Lovable-Version": "2026-09-11",
"Content-Type": "application/json",
},
body: JSON.stringify({
"parent_origin": "https://acme.com",
}),
});
if (!response.ok) {
throw new Error(`Lovable API ${response.status}: ${await response.text()}`);
}
console.log(await response.json());응답
| 상태 | 본문 | 설명 |
|---|---|---|
200 | CreateEmbedURLResponse | 임베드 URL이 만들어졌습니다. 토큰은 1시간 뒤 만료됩니다. |
400 | ErrorResponse | 요청 본문 또는 매개변수 형식이 잘못되었거나 검증에 실패했습니다. |
401 | ErrorResponse | API 키, 세션 토큰 또는 OAuth access token이 없거나 유효하지 않습니다. |
402 | ErrorResponse | Public API 접근에는 Business 이상 플랜이 필요합니다. |
403 | ErrorResponse | 키 또는 호출자에게 필요한 스코프나 권한이 없습니다. |
404 | ErrorResponse | 프로젝트가 존재하지 않거나 삭제되었거나 인증된 클라이언트가 접근할 수 없습니다. |
406 | ErrorResponse | Accept 헤더가 이 엔드포인트가 생성하는 모든 미디어 타입을 제외합니다. |
429 | ErrorResponse | 요청이 너무 많습니다. Retry-After가 있으면 해당 간격 뒤에 재시도합니다. |
503 | ErrorResponse | 서비스를 일시적으로 사용할 수 없거나 처리 기한이 만료되었습니다. 변이가 완료될 수 있으므로 재시도 전에 리소스 상태를 확인하세요. |
default | ErrorResponse | 오류입니다. 응답 본문은 표준 오류 envelope을 사용하며 status는 HTTP 상태 코드와 같고 type은 machine-readable 오류 코드입니다. |
응답 헤더
모든 응답에는 상황에 따라 다음 공통 헤더가 포함될 수 있습니다: Lovable-Version, Lovable-Beta, X-Request-Id, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-Lovable-Unknown-Query-Params, X-Lovable-Unknown-Query-Params-Omitted. X-Lovable-Unknown-Query-Params는 이 작업이 선언하지 않은 query parameter가 있을 때 URL escape된 이름을 최대 20개까지 쉼표로 제공하며, 20개를 넘으면 X-Lovable-Unknown-Query-Params-Omitted가 누락된 개수(minimum: 1)를 제공합니다. 401 응답은 string인 WWW-Authenticate를, 429 응답은 integer인 Retry-After를 포함합니다. Retry-After는 minimum: 1입니다. X-RateLimit-Reset은 지연 시간이 아니라 Unix timestamp 초 단위입니다.
스키마
CreateEmbedURLResponse
| 필드 | 타입 | 필수 | 설명 |
|---|---|---|---|
embed_url | string | 예 | parent_origin의 iframe에서 사용할 미리보기 URL입니다. expires_at까지 Lovable 로그인 없이 빌드된 미리보기를 볼 수 있습니다. |
expires_at | string, date-time | 예 | 임베드 URL 토큰이 만료되어 미리보기를 더 이상 로드하지 않는 시각입니다. |
ErrorResponse
공통 오류 응답입니다.
| 필드 | 타입 | 필수 | 설명 |
|---|---|---|---|
detail | `string \ | null` | 예 |
errors | `array \ | null` | 예 |
props | `object \ | null` | 예 |
request_id | string | 예 | X-Request-Id 응답 헤더에서 반복되는 이 요청의 식별자입니다. |
status | integer | 예 | 본문에 반복되는 HTTP 상태 코드입니다. |
title | string | 예 | 사람이 읽을 수 있는 오류 요약입니다. |
type | string | 예 | 안정적인 machine-readable 오류 유형입니다. |
원본에 포함된 이 작업의 OpenAPI 스냅샷은 YAML 스냅샷 (SHA-256: f6d037d61eadfb5757a0f7cf0fb2b0c0eefd3bc5604e87f3a540fe1ed1302301)로 보존했습니다. 최신 전체 OpenAPI 계약은 https://api.lovable.dev/v1/openapi.yaml에서 확인할 수 있습니다.