Lovable한국어 문서
Security & Governance

보안 스캔 조회

Plan: Business or higher

Scope: projects:read

보안 스캔의 상태, 시각 정보, 요청된 검사 항목을 반환합니다. 발견 항목은 GET /v1/projects/{project_id}/security-scans/{scan_id}/findings에서 조회할 수 있습니다.

OpenAPI

항목
MethodGET
Path/v1/projects/{project_id}/security-scans/{scan_id}
Operation IDgetSecurityScan
Source spechttps://api.lovable.dev/v1/openapi.yaml
Local snapshotYAML 스냅샷 (SHA-256: ea1024dc27ada084cbd22805271e11aacec2cedcb6c3dbf7bfc8522eaa725659)
GET /v1/projects/{project_id}/security-scans/{scan_id}

인증 및 media type

  • 인증은 Lovable-API-Key header에 API 키를 보내거나 Authorization: Bearer <key> 형식으로 보냅니다.
  • 키는 하나의 워크스페이스에 바인딩되고 public:v1 audience를 가집니다. 다른 워크스페이스의 리소스는 존재하지 않는 리소스와 마찬가지로 404를 반환합니다.
  • 응답 본문이 있는 public:v1 엔드포인트는 application/json을 반환합니다. Accept: application/json, Accept: */*를 보내거나 Accept header를 생략하세요. JSON을 제외하는 Accept header는 406을 반환합니다.
  • 쓰기 스코프는 대응하는 읽기 스코프를 포함합니다. projects:writeprojects:read를, workspaces:writeworkspaces:read를 포함합니다. 프로젝트 계열과 워크스페이스 계열 사이에는 권한이 넘어가지 않습니다.

매개변수

이름위치필수타입제약설명
project_idpathstring-프로젝트 ID입니다.
scan_idpathstring-목록 엔드포인트가 반환한 보안 스캔 ID입니다.
Lovable-Versionheader아니요string-제공받을 안정 API 버전입니다. YYYY-MM-DD 날짜 형식으로 보냅니다. 생략하면 현재 가장 오래된 지원 안정 버전인 2026-09-11이 사용됩니다.
Lovable-Betaheader아니요string-안정 버전 위에 활성화할 베타 리비전 문자열입니다. 여러 개는 쉼표로 구분합니다.

요청 본문

요청 본문은 없습니다.

응답

상태본문 schema설명
200SecurityScan요청이 성공했습니다.
400ErrorResponse요청 본문이나 매개변수 형식이 잘못되었거나 검증에 실패했습니다. 실패한 각 필드는 errors에 나열됩니다.
401ErrorResponseAPI 키, session token, OAuth access token이 없거나 유효하지 않습니다.
402ErrorResponsePublic API 접근에는 Business 이상 플랜이 필요합니다. 일부 작업이나 구성에는 추가 기능 권한이 필요합니다.
403ErrorResponse키 또는 호출자에게 필요한 스코프나 권한이 없습니다. email_not_verified인 경우 계정 이메일을 인증한 뒤 다시 시도하세요.
404ErrorResponse프로젝트가 존재하지 않거나 삭제되었거나 인증된 클라이언트가 접근할 수 없습니다. 보안 스캔이 없거나 다른 프로젝트에 속한 경우도 포함됩니다.
406ErrorResponseAccept 헤더가 이 엔드포인트가 생성하는 모든 media type을 제외했습니다.
429ErrorResponse요청이 너무 많습니다. Retry-After가 있으면 해당 간격 뒤에 다시 시도하세요.
503ErrorResponse서비스를 일시적으로 사용할 수 없거나 처리 기한이 만료되었습니다(request_timeout). mutation은 완료될 수 있으므로 다시 시도하기 전에 리소스 상태를 확인하세요.
defaultErrorResponse오류입니다. 응답 본문은 표준 오류 envelope을 사용합니다. status는 HTTP 상태 코드와 같고 type은 machine-readable 오류 코드입니다.

응답 헤더

상태헤더타입설명
200Lovable-Betastring요청에 적용된 beta revision입니다. 쉼표로 구분됩니다. 요청이 beta revision을 선택한 경우에만 있습니다.
200Lovable-Versionstring요청을 처리한 안정 API 버전입니다. 버전 선택 전에 요청이 거부되었거나 버전 선택 자체가 실패한 경우에는 없습니다.
200X-Lovable-Unknown-Query-Paramsstring요청에 이 작업이 선언하지 않은 query parameter가 포함된 경우에만 있습니다. 무시된 매개변수 이름을 URL escape 후 쉼표로 구분해 최대 20개까지 제공합니다.
200X-Lovable-Unknown-Query-Params-Omittedinteger알 수 없는 매개변수가 20개를 넘어 무시되었을 때 X-Lovable-Unknown-Query-Params와 함께 제공됩니다. 해당 헤더에서 빠진 이름의 수입니다.
200X-RateLimit-Limitinteger소진에 가장 가까운 속도 제한에서 시간 창마다 허용되는 최대 요청 수입니다. 세 X-RateLimit 헤더는 모두 같은 제한을 설명합니다.
200X-RateLimit-RemainingintegerX-RateLimit-Limit가 설명하는 제한 안에서 아직 사용할 수 있는 요청 수입니다.
200X-RateLimit-ResetintegerX-RateLimit-Limit가 설명하는 제한이 다음에 용량을 회복하는 시각입니다. Unix timestamp 초 단위입니다. 알 수 없으면 생략됩니다.
200X-Request-Idstring이 요청의 식별자입니다. 오류 envelope의 request_id와 일치합니다. 실패를 보고할 때 이 값을 인용하세요.
400Lovable-Betastring요청에 적용된 beta revision입니다. 쉼표로 구분됩니다. 요청이 beta revision을 선택한 경우에만 있습니다.
400Lovable-Versionstring요청을 처리한 안정 API 버전입니다. 버전 선택 전에 요청이 거부되었거나 버전 선택 자체가 실패한 경우에는 없습니다.
400X-Lovable-Unknown-Query-Paramsstring요청에 이 작업이 선언하지 않은 query parameter가 포함된 경우에만 있습니다. 무시된 매개변수 이름을 URL escape 후 쉼표로 구분해 최대 20개까지 제공합니다.
400X-Lovable-Unknown-Query-Params-Omittedinteger알 수 없는 매개변수가 20개를 넘어 무시되었을 때 X-Lovable-Unknown-Query-Params와 함께 제공됩니다. 해당 헤더에서 빠진 이름의 수입니다.
400X-RateLimit-Limitinteger소진에 가장 가까운 속도 제한에서 시간 창마다 허용되는 최대 요청 수입니다. 세 X-RateLimit 헤더는 모두 같은 제한을 설명합니다.
400X-RateLimit-RemainingintegerX-RateLimit-Limit가 설명하는 제한 안에서 아직 사용할 수 있는 요청 수입니다.
400X-RateLimit-ResetintegerX-RateLimit-Limit가 설명하는 제한이 다음에 용량을 회복하는 시각입니다. Unix timestamp 초 단위입니다. 알 수 없으면 생략됩니다.
400X-Request-Idstring이 요청의 식별자입니다. 오류 envelope의 request_id와 일치합니다. 실패를 보고할 때 이 값을 인용하세요.
401WWW-Authenticatestring지원되는 인증 scheme을 식별하는 authentication challenge입니다.
401X-Lovable-Unknown-Query-Paramsstring요청에 이 작업이 선언하지 않은 query parameter가 포함된 경우에만 있습니다. 무시된 매개변수 이름을 URL escape 후 쉼표로 구분해 최대 20개까지 제공합니다.
401X-Lovable-Unknown-Query-Params-Omittedinteger알 수 없는 매개변수가 20개를 넘어 무시되었을 때 X-Lovable-Unknown-Query-Params와 함께 제공됩니다. 해당 헤더에서 빠진 이름의 수입니다.
401X-RateLimit-Limitinteger소진에 가장 가까운 속도 제한에서 시간 창마다 허용되는 최대 요청 수입니다. 세 X-RateLimit 헤더는 모두 같은 제한을 설명합니다.
401X-RateLimit-RemainingintegerX-RateLimit-Limit가 설명하는 제한 안에서 아직 사용할 수 있는 요청 수입니다.
401X-RateLimit-ResetintegerX-RateLimit-Limit가 설명하는 제한이 다음에 용량을 회복하는 시각입니다. Unix timestamp 초 단위입니다. 알 수 없으면 생략됩니다.
401X-Request-Idstring이 요청의 식별자입니다. 오류 envelope의 request_id와 일치합니다. 실패를 보고할 때 이 값을 인용하세요.
402X-Lovable-Unknown-Query-Paramsstring요청에 이 작업이 선언하지 않은 query parameter가 포함된 경우에만 있습니다. 무시된 매개변수 이름을 URL escape 후 쉼표로 구분해 최대 20개까지 제공합니다.
402X-Lovable-Unknown-Query-Params-Omittedinteger알 수 없는 매개변수가 20개를 넘어 무시되었을 때 X-Lovable-Unknown-Query-Params와 함께 제공됩니다. 해당 헤더에서 빠진 이름의 수입니다.
402X-RateLimit-Limitinteger소진에 가장 가까운 속도 제한에서 시간 창마다 허용되는 최대 요청 수입니다. 세 X-RateLimit 헤더는 모두 같은 제한을 설명합니다.
402X-RateLimit-RemainingintegerX-RateLimit-Limit가 설명하는 제한 안에서 아직 사용할 수 있는 요청 수입니다.
402X-RateLimit-ResetintegerX-RateLimit-Limit가 설명하는 제한이 다음에 용량을 회복하는 시각입니다. Unix timestamp 초 단위입니다. 알 수 없으면 생략됩니다.
402X-Request-Idstring이 요청의 식별자입니다. 오류 envelope의 request_id와 일치합니다. 실패를 보고할 때 이 값을 인용하세요.
403X-Lovable-Unknown-Query-Paramsstring요청에 이 작업이 선언하지 않은 query parameter가 포함된 경우에만 있습니다. 무시된 매개변수 이름을 URL escape 후 쉼표로 구분해 최대 20개까지 제공합니다.
403X-Lovable-Unknown-Query-Params-Omittedinteger알 수 없는 매개변수가 20개를 넘어 무시되었을 때 X-Lovable-Unknown-Query-Params와 함께 제공됩니다. 해당 헤더에서 빠진 이름의 수입니다.
403X-RateLimit-Limitinteger소진에 가장 가까운 속도 제한에서 시간 창마다 허용되는 최대 요청 수입니다. 세 X-RateLimit 헤더는 모두 같은 제한을 설명합니다.
403X-RateLimit-RemainingintegerX-RateLimit-Limit가 설명하는 제한 안에서 아직 사용할 수 있는 요청 수입니다.
403X-RateLimit-ResetintegerX-RateLimit-Limit가 설명하는 제한이 다음에 용량을 회복하는 시각입니다. Unix timestamp 초 단위입니다. 알 수 없으면 생략됩니다.
403X-Request-Idstring이 요청의 식별자입니다. 오류 envelope의 request_id와 일치합니다. 실패를 보고할 때 이 값을 인용하세요.
404Lovable-Betastring요청에 적용된 beta revision입니다. 쉼표로 구분됩니다. 요청이 beta revision을 선택한 경우에만 있습니다.
404Lovable-Versionstring요청을 처리한 안정 API 버전입니다. 버전 선택 전에 요청이 거부되었거나 버전 선택 자체가 실패한 경우에는 없습니다.
404X-Lovable-Unknown-Query-Paramsstring요청에 이 작업이 선언하지 않은 query parameter가 포함된 경우에만 있습니다. 무시된 매개변수 이름을 URL escape 후 쉼표로 구분해 최대 20개까지 제공합니다.
404X-Lovable-Unknown-Query-Params-Omittedinteger알 수 없는 매개변수가 20개를 넘어 무시되었을 때 X-Lovable-Unknown-Query-Params와 함께 제공됩니다. 해당 헤더에서 빠진 이름의 수입니다.
404X-RateLimit-Limitinteger소진에 가장 가까운 속도 제한에서 시간 창마다 허용되는 최대 요청 수입니다. 세 X-RateLimit 헤더는 모두 같은 제한을 설명합니다.
404X-RateLimit-RemainingintegerX-RateLimit-Limit가 설명하는 제한 안에서 아직 사용할 수 있는 요청 수입니다.
404X-RateLimit-ResetintegerX-RateLimit-Limit가 설명하는 제한이 다음에 용량을 회복하는 시각입니다. Unix timestamp 초 단위입니다. 알 수 없으면 생략됩니다.
404X-Request-Idstring이 요청의 식별자입니다. 오류 envelope의 request_id와 일치합니다. 실패를 보고할 때 이 값을 인용하세요.
406Lovable-Betastring요청에 적용된 beta revision입니다. 쉼표로 구분됩니다. 요청이 beta revision을 선택한 경우에만 있습니다.
406Lovable-Versionstring요청을 처리한 안정 API 버전입니다. 버전 선택 전에 요청이 거부되었거나 버전 선택 자체가 실패한 경우에는 없습니다.
406X-Lovable-Unknown-Query-Paramsstring요청에 이 작업이 선언하지 않은 query parameter가 포함된 경우에만 있습니다. 무시된 매개변수 이름을 URL escape 후 쉼표로 구분해 최대 20개까지 제공합니다.
406X-Lovable-Unknown-Query-Params-Omittedinteger알 수 없는 매개변수가 20개를 넘어 무시되었을 때 X-Lovable-Unknown-Query-Params와 함께 제공됩니다. 해당 헤더에서 빠진 이름의 수입니다.
406X-RateLimit-Limitinteger소진에 가장 가까운 속도 제한에서 시간 창마다 허용되는 최대 요청 수입니다. 세 X-RateLimit 헤더는 모두 같은 제한을 설명합니다.
406X-RateLimit-RemainingintegerX-RateLimit-Limit가 설명하는 제한 안에서 아직 사용할 수 있는 요청 수입니다.
406X-RateLimit-ResetintegerX-RateLimit-Limit가 설명하는 제한이 다음에 용량을 회복하는 시각입니다. Unix timestamp 초 단위입니다. 알 수 없으면 생략됩니다.
406X-Request-Idstring이 요청의 식별자입니다. 오류 envelope의 request_id와 일치합니다. 실패를 보고할 때 이 값을 인용하세요.
429Retry-Afterinteger다시 시도하기 전에 기다릴 초 단위 시간입니다. minimum: 1입니다. limiter가 재시도 지연 시간을 계산할 수 있을 때 제공됩니다.
429X-Lovable-Unknown-Query-Paramsstring요청에 이 작업이 선언하지 않은 query parameter가 포함된 경우에만 있습니다. 무시된 매개변수 이름을 URL escape 후 쉼표로 구분해 최대 20개까지 제공합니다.
429X-Lovable-Unknown-Query-Params-Omittedinteger알 수 없는 매개변수가 20개를 넘어 무시되었을 때 X-Lovable-Unknown-Query-Params와 함께 제공됩니다. 해당 헤더에서 빠진 이름의 수입니다.
429X-RateLimit-Limitinteger소진에 가장 가까운 속도 제한에서 시간 창마다 허용되는 최대 요청 수입니다. 세 X-RateLimit 헤더는 모두 같은 제한을 설명합니다.
429X-RateLimit-RemainingintegerX-RateLimit-Limit가 설명하는 제한 안에서 아직 사용할 수 있는 요청 수입니다.
429X-RateLimit-ResetintegerX-RateLimit-Limit가 설명하는 제한이 다음에 용량을 회복하는 시각입니다. Unix timestamp 초 단위입니다. 알 수 없으면 생략됩니다.
429X-Request-Idstring이 요청의 식별자입니다. 오류 envelope의 request_id와 일치합니다. 실패를 보고할 때 이 값을 인용하세요.
503Lovable-Betastring요청에 적용된 beta revision입니다. 쉼표로 구분됩니다. 요청이 beta revision을 선택한 경우에만 있습니다.
503Lovable-Versionstring요청을 처리한 안정 API 버전입니다. 버전 선택 전에 요청이 거부되었거나 버전 선택 자체가 실패한 경우에는 없습니다.
503X-Lovable-Unknown-Query-Paramsstring요청에 이 작업이 선언하지 않은 query parameter가 포함된 경우에만 있습니다. 무시된 매개변수 이름을 URL escape 후 쉼표로 구분해 최대 20개까지 제공합니다.
503X-Lovable-Unknown-Query-Params-Omittedinteger알 수 없는 매개변수가 20개를 넘어 무시되었을 때 X-Lovable-Unknown-Query-Params와 함께 제공됩니다. 해당 헤더에서 빠진 이름의 수입니다.
503X-RateLimit-Limitinteger소진에 가장 가까운 속도 제한에서 시간 창마다 허용되는 최대 요청 수입니다. 세 X-RateLimit 헤더는 모두 같은 제한을 설명합니다.
503X-RateLimit-RemainingintegerX-RateLimit-Limit가 설명하는 제한 안에서 아직 사용할 수 있는 요청 수입니다.
503X-RateLimit-ResetintegerX-RateLimit-Limit가 설명하는 제한이 다음에 용량을 회복하는 시각입니다. Unix timestamp 초 단위입니다. 알 수 없으면 생략됩니다.
503X-Request-Idstring이 요청의 식별자입니다. 오류 envelope의 request_id와 일치합니다. 실패를 보고할 때 이 값을 인용하세요.
defaultLovable-Betastring요청에 적용된 beta revision입니다. 쉼표로 구분됩니다. 요청이 beta revision을 선택한 경우에만 있습니다.
defaultLovable-Versionstring요청을 처리한 안정 API 버전입니다. 버전 선택 전에 요청이 거부되었거나 버전 선택 자체가 실패한 경우에는 없습니다.
defaultX-Lovable-Unknown-Query-Paramsstring요청에 이 작업이 선언하지 않은 query parameter가 포함된 경우에만 있습니다. 무시된 매개변수 이름을 URL escape 후 쉼표로 구분해 최대 20개까지 제공합니다.
defaultX-Lovable-Unknown-Query-Params-Omittedinteger알 수 없는 매개변수가 20개를 넘어 무시되었을 때 X-Lovable-Unknown-Query-Params와 함께 제공됩니다. 해당 헤더에서 빠진 이름의 수입니다.
defaultX-RateLimit-Limitinteger소진에 가장 가까운 속도 제한에서 시간 창마다 허용되는 최대 요청 수입니다. 세 X-RateLimit 헤더는 모두 같은 제한을 설명합니다.
defaultX-RateLimit-RemainingintegerX-RateLimit-Limit가 설명하는 제한 안에서 아직 사용할 수 있는 요청 수입니다.
defaultX-RateLimit-ResetintegerX-RateLimit-Limit가 설명하는 제한이 다음에 용량을 회복하는 시각입니다. Unix timestamp 초 단위입니다. 알 수 없으면 생략됩니다.
defaultX-Request-Idstring이 요청의 식별자입니다. 오류 envelope의 request_id와 일치합니다. 실패를 보고할 때 이 값을 인용하세요.

Schema

필드 이름과 enum 값은 OpenAPI contract의 식별자를 그대로 유지합니다. 설명은 한국어로 옮겼습니다. null이 타입에 포함된 필드는 값이 없을 수 있습니다.

SecurityScan

필드필수타입제약설명예시
commit_sha`string \null`-스캔이 시작되었을 때 프로젝트의 Git commit SHA입니다. 사용할 수 없으면 null입니다.
finished_at`string \null`format: date-time스캔이 완료된 UTC 시각입니다. 아직 실행 중이면 null입니다.
idstring-보안 스캔 ID입니다.a1b2c3d4-e5f6-7890-abcd-ef1234567890
requested_scannersarray of string-이 스캔에 요청된 보안 검사 식별자입니다.-
started_atstringformat: date-time스캔이 시작된 UTC 시각입니다.2026-01-15T09:30:00Z
statusstringenum: running, completed, failed전체 스캔 상태입니다. 스캔이 끝났다는 사실이 보안 문제가 없다는 뜻은 아닙니다. 값이 추가될 수 있으므로 클라이언트는 알 수 없는 값을 허용해야 합니다.completed

ErrorResponse

공통 오류 응답입니다. 작업에 따라 특정 상태 코드에 다른 응답 본문이 문서화될 수 있습니다. 예를 들어 멤버별 credit 한도 일괄 업데이트 결과가 해당됩니다.

필드필수타입제약설명예시
detail`string \null`-이번 오류에 대한 사람이 읽을 수 있는 안내입니다. 적용되지 않으면 null입니다. invalid_request에서는 validation failed이며 실행 가능한 필드 메시지는 errors에 있습니다. 다른 오류 유형은 재인증 안내 같은 정보를 제공할 수 있습니다.
errors`array \null`-검증 실패 시 필드 단위 오류 상세 정보입니다. 필드 단위 상세 정보가 적용되지 않으면 null입니다.
props`object \null`-오류별 metadata입니다. 적용되지 않으면 null입니다. key는 type에 따라 달라집니다. security_critical_findings에는 finding_refs 문자열 배열이 포함되고, retired_versionretired_beta에는 migration_url 문자열 URL이 포함될 수 있습니다. 인식하지 못한 key는 무시하세요.
request_idstring-X-Request-Id 응답 헤더에서 반복되는 이 요청의 식별자입니다. 실패를 보고할 때 이 값을 인용하세요.4bf92f3577b34da6a3ce929d0e0e4736
statusinteger-본문에 반복되는 HTTP 상태 코드입니다.429
titlestring-사람이 읽을 수 있는 오류 요약입니다. 문구는 바뀔 수 있으므로 애플리케이션의 오류 처리는 type을 기준으로 결정하세요.Too Many Requests
typestring-안정적인 machine-readable 오류 유형입니다. URI가 아니라 rate_limited 같은 snake_case token입니다. 클라이언트는 이 값으로 분기할 수 있으며 새 유형은 추가될 수 있습니다.rate_limited

On this page