비동기 게시 작업의 배포 상태를 조회합니다.
게시 상태 조회
플랜:
Business 이상
스코프: projects:read
POST /v1/projects/{project_id}/publish가 시작한 비동기 게시의 상태를 반환합니다. 조회 키는 POST 응답의 id입니다. 배포가 성공해 url이 설정되거나 실패해 error_message가 원인을 설명할 때까지 poll합니다. 2초에 한 번보다 자주 poll하지 말고, 429 응답의 Retry-After를 항상 지키세요.
OpenAPI
| 항목 | 값 |
|---|---|
| Method | GET |
| Path | /v1/projects/{project_id}/publish/{deployment_id} |
| Operation ID | getDeployment |
| Source spec | https://api.lovable.dev/v1/openapi.yaml |
| Local snapshot | YAML 스냅샷 (SHA-256: bc092dc1fda1b7ab52f36a6cd24e2b4e25708ed028d7671820cad9a64639bf3d) |
GET /v1/projects/{project_id}/publish/{deployment_id}실패하면 error_class를 기준으로 다음 조치를 선택합니다.
error_class | 조치 |
|---|---|
transient | 백오프와 제한된 재시도 횟수를 두고 다시 게시합니다. |
code | 앱 코드 또는 SQL을 수정한 뒤 다시 게시합니다. |
configuration | 너무 큰 파일처럼 프로젝트에 커밋된 설정 문제를 수정한 뒤 다시 게시합니다. |
data | 프로덕션 데이터에 대한 마이그레이션 영향을 검토합니다. 데이터를 변경하기 전 사람의 승인을 받은 뒤 다시 게시합니다. |
integration | 외부 자격 증명, quota 또는 연결된 서비스를 복구한 뒤 다시 게시합니다. |
policy | 워크스페이스 관리자에게 차단 정책을 해제하거나 게시를 승인해 달라고 요청합니다. |
internal | 배포 ID와 함께 Lovable support에 문의합니다. |
error_class가 null이거나 알 수 없는 값이면 자동으로 재시도하지 말고 error_message를 보여 준 뒤 support에 문의하세요.
인증
Lovable-API-Key: lov_your-api-key 또는 Authorization: Bearer <key>를 보냅니다. 이 엔드포인트는 projects:read 스코프가 필요합니다.
매개변수
| 이름 | 위치 | 필수 | 타입 | 설명 |
|---|---|---|---|---|
project_id | path | 예 | string | 프로젝트 ID입니다. |
deployment_id | path | 예 | string | POST /v1/projects/{project_id}/publish가 반환한 배포 ID입니다. |
Lovable-Version | header | 아니요 | string | 제공받을 안정 API 버전입니다. YYYY-MM-DD 날짜 형식으로 보냅니다. 생략하면 현재 가장 오래된 지원 안정 버전인 2026-09-11이 사용됩니다. |
Lovable-Beta | header | 아니요 | string | 안정 버전 위에 활성화할 베타 리비전 문자열입니다. 여러 개는 쉼표로 구분합니다. |
예시
curl --request GET \
--url 'https://api.lovable.dev/v1/projects/project-id/publish/deployment-id' \
--header 'Lovable-API-Key: lov_your-api-key' \
--header 'Lovable-Version: 2026-09-11'const response = await fetch("https://api.lovable.dev/v1/projects/project-id/publish/deployment-id", {
method: "GET",
headers: {
"Lovable-API-Key": process.env.LOVABLE_API_KEY ?? "lov_your-api-key",
"Lovable-Version": "2026-09-11",
},
});
if (!response.ok) {
throw new Error(`Lovable API ${response.status}: ${await response.text()}`);
}
console.log(await response.json());응답
| 상태 | 본문 | 설명 |
|---|---|---|
200 | Deployment | 요청이 성공했습니다. |
400 | ErrorResponse | 요청 본문 또는 매개변수 형식이 잘못되었거나 검증에 실패했습니다. |
401 | ErrorResponse | API 키, 세션 토큰 또는 OAuth access token이 없거나 유효하지 않습니다. |
402 | ErrorResponse | Public API 접근에는 Business 이상 플랜이 필요합니다. |
403 | ErrorResponse | 키 또는 호출자에게 필요한 스코프나 권한이 없습니다. |
404 | ErrorResponse | 프로젝트가 존재하지 않거나 삭제되었거나 인증된 클라이언트가 접근할 수 없습니다. 배포가 없거나 다른 프로젝트에 속해도 404가 반환될 수 있습니다. |
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 초 단위입니다.
스키마
Deployment
| 필드 | 타입 | 필수 | 설명 |
|---|---|---|---|
id | string | 예 | 배포 ID입니다. |
status | string | 예 | 배포 진행 상태입니다. running, completed, error, unknown 중 하나입니다. running은 배포가 수락되었지만 완료가 보고되지 않았음을 뜻합니다. completed는 성공했고 url이 설정되었음을 뜻합니다. unknown은 배포는 존재하지만 워크플로 상태를 공개 상태로 매핑할 수 없다는 뜻입니다. 클라이언트는 새 값을 허용해야 합니다. |
url | string 또는 null | 예 | 성공한 배포가 만든 URL입니다. 이 배포가 성공하기 전까지는 null입니다. 이전 버전이 이미 게시되어 있어도 마찬가지입니다. |
error_message | string 또는 null | 예 | 배포 실패의 사람이 읽을 수 있는 이유입니다. 배포가 실패하지 않았으면 null입니다. |
error_class | string 또는 null | 예 | 실패를 어디에서 해결해야 하는지 나타냅니다. transient, code, configuration, data, integration, policy, internal 또는 null입니다. 알 수 없는 값이면 error_message를 보여 주고 자동 재시도 대신 support에 문의하세요. |
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: bc092dc1fda1b7ab52f36a6cd24e2b4e25708ed028d7671820cad9a64639bf3d)로 보존했습니다. 최신 전체 OpenAPI 계약은 https://api.lovable.dev/v1/openapi.yaml에서 확인할 수 있습니다.