Lovable한국어 문서
Security & Governance

보안 스캔 발견 항목 목록 조회

Plan: Business or higher

Scope: projects:read

스캔 스냅샷의 발견 항목 한 페이지를 반환합니다. 이전 스캔에서 재사용된 결과와 fixed 또는 ignored로 표시된 발견 항목도 포함됩니다. 항목은 scanner_name 오름차순으로 정렬되고 각 scanner 안에서는 안정적인 순서를 유지합니다. 전체 스냅샷을 가져오려면 pagination.has_morefalse가 될 때까지 pagination.next_cursor를 따라가세요.

OpenAPI

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

인증 및 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를 포함합니다. 프로젝트 계열과 워크스페이스 계열 사이에는 권한이 넘어가지 않습니다.
  • 목록 작업은 limitcursor를 받고 datapagination.next_cursor, pagination.has_more를 반환합니다. 다음 페이지는 next_cursorcursor로 전달해 가져옵니다. cursor는 opaque 값입니다.

매개변수

이름위치필수타입제약설명
project_idpathstring-프로젝트 ID입니다.
scan_idpathstring-목록 엔드포인트가 반환한 보안 스캔 ID입니다.
limitquery아니요integerdefault: 50
min: 1
max: 100
format: int64
페이지마다 반환할 최대 항목 수입니다.
cursorquery아니요string-다음 페이지를 가져오려면 이전 응답의 pagination.next_cursor를 전달합니다. 첫 페이지에서는 생략합니다. 페이지를 넘길 때 같은 필터와 정렬 순서를 유지하세요.
Lovable-Versionheader아니요string-제공받을 안정 API 버전입니다. YYYY-MM-DD 날짜 형식으로 보냅니다. 생략하면 현재 가장 오래된 지원 안정 버전인 2026-09-11이 사용됩니다.
Lovable-Betaheader아니요string-안정 버전 위에 활성화할 베타 리비전 문자열입니다. 여러 개는 쉼표로 구분합니다.

요청 본문

요청 본문은 없습니다.

응답

상태본문 schema설명
200SecurityFindingPage요청이 성공했습니다.
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이 타입에 포함된 필드는 값이 없을 수 있습니다.

SecurityFindingPage

필드필수타입제약설명
dataarray of SecurityFinding-이 페이지의 항목입니다. 항목이 없으면 빈 배열입니다.
paginationPagination-더 많은 결과가 있는지와 다음 페이지를 가져올 cursor입니다.

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

SecurityFinding

필드필수타입제약설명예시
category`string \null`-발견 category입니다. scanner가 category를 보고하지 않으면 null입니다.
created_atstringformat: date-time이 발견 항목이 처음 기록된 UTC 시각입니다.2026-01-15T09:30:00Z
description`string \null`-사람이 읽을 수 있는 발견 항목 요약입니다. scanner가 보고하지 않으면 null입니다.
idstring-이 발견 항목의 안정적인 식별자입니다.b2c3d4e5-f6a7-8901-bcde-f23456789012
levelstringenum: error, warn, infoscanner가 보고한 severity입니다. 값이 추가될 수 있으므로 클라이언트는 알 수 없는 값을 허용해야 합니다.error
namestring-짧은 발견 항목 제목입니다.Row-level security disabled on a public table
scanner_namestring-이 발견 항목을 생성한 scanner 이름입니다.agent_security
statusstringenum: open, fixed, ignored, suppressed보안 발견 항목의 검토 상태입니다. suppressed는 발견 항목이 인용하는 모든 deep-scan check가 해당 프로젝트에서 꺼져 있다는 뜻입니다. 해결된 것이 아니라 숨겨진 상태입니다. 값이 추가될 수 있으므로 클라이언트는 알 수 없는 값을 허용해야 합니다.open
updated_atstringformat: date-time이 발견 항목이 마지막으로 업데이트된 UTC 시각입니다.2026-01-15T09:30:00Z

Pagination

필드필수타입제약설명예시
has_moreboolean-이 페이지 뒤에 더 많은 결과가 있는지 여부입니다.true
next_cursor`string \null`-다음 페이지를 가져오려면 이 값을 cursor query parameter로 전달합니다. opaque string으로 취급하세요. 더 이상 결과가 없으면 null입니다.

On this page