Security & Governance
개인정보 발견 항목 목록 조회
Plan:
Enterprise
Scope: projects:read
프로젝트에서 발견된 personally identifiable information(PII) 항목을 최신순으로 반환합니다. 열린 항목, 무시된 항목, 수정된 항목이 모두 포함됩니다. 워크스페이스에서 개인정보 탐지가 켜져 있어야 하며, 그렇지 않으면 이 엔드포인트는 404를 반환합니다.
OpenAPI
| 항목 | 값 |
|---|---|
| Method | GET |
| Path | /v1/projects/{project_id}/pii-labels |
| Operation ID | listPiiLabels |
| Source spec | https://api.lovable.dev/v1/openapi.yaml |
| Local snapshot | YAML 스냅샷 (SHA-256: 1105182d8bcb08fafda3b3c6692ef31414cbe899939c412e5505a1823211b773) |
GET /v1/projects/{project_id}/pii-labels인증 및 media type
- 인증은
Lovable-API-Keyheader에 API 키를 보내거나Authorization: Bearer <key>형식으로 보냅니다. - 키는 하나의 워크스페이스에 바인딩되고
public:v1audience를 가집니다. 다른 워크스페이스의 리소스는 존재하지 않는 리소스와 마찬가지로404를 반환합니다. - 응답 본문이 있는
public:v1엔드포인트는application/json을 반환합니다.Accept: application/json,Accept: */*를 보내거나Acceptheader를 생략하세요. JSON을 제외하는Acceptheader는406을 반환합니다. - 쓰기 스코프는 대응하는 읽기 스코프를 포함합니다.
projects:write는projects:read를,workspaces:write는workspaces:read를 포함합니다. 프로젝트 계열과 워크스페이스 계열 사이에는 권한이 넘어가지 않습니다. - 목록 작업은
limit과cursor를 받고data와pagination.next_cursor,pagination.has_more를 반환합니다. 다음 페이지는next_cursor를cursor로 전달해 가져옵니다. cursor는 opaque 값입니다.
매개변수
| 이름 | 위치 | 필수 | 타입 | 제약 | 설명 |
|---|---|---|---|---|---|
project_id | path | 예 | string | - | 프로젝트 ID입니다. |
limit | query | 아니요 | integer | default: 50min: 1max: 100format: int64 | 페이지마다 반환할 최대 항목 수입니다. |
cursor | query | 아니요 | string | - | 다음 페이지를 가져오려면 이전 응답의 pagination.next_cursor를 전달합니다. 첫 페이지에서는 생략합니다. 페이지를 넘길 때 같은 필터와 정렬 순서를 유지하세요. |
Lovable-Version | header | 아니요 | string | - | 제공받을 안정 API 버전입니다. YYYY-MM-DD 날짜 형식으로 보냅니다. 생략하면 현재 가장 오래된 지원 안정 버전인 2026-09-11이 사용됩니다. |
Lovable-Beta | header | 아니요 | string | - | 안정 버전 위에 활성화할 베타 리비전 문자열입니다. 여러 개는 쉼표로 구분합니다. |
요청 본문
요청 본문은 없습니다.
응답
| 상태 | 본문 schema | 설명 |
|---|---|---|
200 | PiiLabelPage | 요청이 성공했습니다. |
400 | ErrorResponse | 요청 본문이나 매개변수 형식이 잘못되었거나 검증에 실패했습니다. 실패한 각 필드는 errors에 나열됩니다. |
401 | ErrorResponse | API 키, session token, OAuth access token이 없거나 유효하지 않습니다. |
402 | ErrorResponse | Public API 접근에는 Business 이상 플랜이 필요합니다. 일부 작업이나 구성에는 추가 기능 권한이 필요합니다. |
403 | ErrorResponse | 키 또는 호출자에게 필요한 스코프나 권한이 없습니다. email_not_verified인 경우 계정 이메일을 인증한 뒤 다시 시도하세요. |
404 | ErrorResponse | 프로젝트가 존재하지 않거나 삭제되었거나 인증된 클라이언트가 접근할 수 없습니다. 워크스페이스에서 개인정보 탐지가 꺼져 있는 경우도 포함됩니다. |
406 | ErrorResponse | Accept 헤더가 이 엔드포인트가 생성하는 모든 media type을 제외했습니다. |
429 | ErrorResponse | 요청이 너무 많습니다. Retry-After가 있으면 해당 간격 뒤에 다시 시도하세요. |
503 | ErrorResponse | 서비스를 일시적으로 사용할 수 없거나 처리 기한이 만료되었습니다(request_timeout). mutation은 완료될 수 있으므로 다시 시도하기 전에 리소스 상태를 확인하세요. |
default | ErrorResponse | 오류입니다. 응답 본문은 표준 오류 envelope을 사용합니다. status는 HTTP 상태 코드와 같고 type은 machine-readable 오류 코드입니다. |
응답 헤더
| 상태 | 헤더 | 타입 | 설명 |
|---|---|---|---|
200 | Lovable-Beta | string | 요청에 적용된 beta revision입니다. 쉼표로 구분됩니다. 요청이 beta revision을 선택한 경우에만 있습니다. |
200 | Lovable-Version | string | 요청을 처리한 안정 API 버전입니다. 버전 선택 전에 요청이 거부되었거나 버전 선택 자체가 실패한 경우에는 없습니다. |
200 | X-Lovable-Unknown-Query-Params | string | 요청에 이 작업이 선언하지 않은 query parameter가 포함된 경우에만 있습니다. 무시된 매개변수 이름을 URL escape 후 쉼표로 구분해 최대 20개까지 제공합니다. |
200 | X-Lovable-Unknown-Query-Params-Omitted | integer | 알 수 없는 매개변수가 20개를 넘어 무시되었을 때 X-Lovable-Unknown-Query-Params와 함께 제공됩니다. 해당 헤더에서 빠진 이름의 수입니다. |
200 | X-RateLimit-Limit | integer | 소진에 가장 가까운 속도 제한에서 시간 창마다 허용되는 최대 요청 수입니다. 세 X-RateLimit 헤더는 모두 같은 제한을 설명합니다. |
200 | X-RateLimit-Remaining | integer | X-RateLimit-Limit가 설명하는 제한 안에서 아직 사용할 수 있는 요청 수입니다. |
200 | X-RateLimit-Reset | integer | X-RateLimit-Limit가 설명하는 제한이 다음에 용량을 회복하는 시각입니다. Unix timestamp 초 단위입니다. 알 수 없으면 생략됩니다. |
200 | X-Request-Id | string | 이 요청의 식별자입니다. 오류 envelope의 request_id와 일치합니다. 실패를 보고할 때 이 값을 인용하세요. |
400 | Lovable-Beta | string | 요청에 적용된 beta revision입니다. 쉼표로 구분됩니다. 요청이 beta revision을 선택한 경우에만 있습니다. |
400 | Lovable-Version | string | 요청을 처리한 안정 API 버전입니다. 버전 선택 전에 요청이 거부되었거나 버전 선택 자체가 실패한 경우에는 없습니다. |
400 | X-Lovable-Unknown-Query-Params | string | 요청에 이 작업이 선언하지 않은 query parameter가 포함된 경우에만 있습니다. 무시된 매개변수 이름을 URL escape 후 쉼표로 구분해 최대 20개까지 제공합니다. |
400 | X-Lovable-Unknown-Query-Params-Omitted | integer | 알 수 없는 매개변수가 20개를 넘어 무시되었을 때 X-Lovable-Unknown-Query-Params와 함께 제공됩니다. 해당 헤더에서 빠진 이름의 수입니다. |
400 | X-RateLimit-Limit | integer | 소진에 가장 가까운 속도 제한에서 시간 창마다 허용되는 최대 요청 수입니다. 세 X-RateLimit 헤더는 모두 같은 제한을 설명합니다. |
400 | X-RateLimit-Remaining | integer | X-RateLimit-Limit가 설명하는 제한 안에서 아직 사용할 수 있는 요청 수입니다. |
400 | X-RateLimit-Reset | integer | X-RateLimit-Limit가 설명하는 제한이 다음에 용량을 회복하는 시각입니다. Unix timestamp 초 단위입니다. 알 수 없으면 생략됩니다. |
400 | X-Request-Id | string | 이 요청의 식별자입니다. 오류 envelope의 request_id와 일치합니다. 실패를 보고할 때 이 값을 인용하세요. |
401 | WWW-Authenticate | string | 지원되는 인증 scheme을 식별하는 authentication challenge입니다. |
401 | X-Lovable-Unknown-Query-Params | string | 요청에 이 작업이 선언하지 않은 query parameter가 포함된 경우에만 있습니다. 무시된 매개변수 이름을 URL escape 후 쉼표로 구분해 최대 20개까지 제공합니다. |
401 | X-Lovable-Unknown-Query-Params-Omitted | integer | 알 수 없는 매개변수가 20개를 넘어 무시되었을 때 X-Lovable-Unknown-Query-Params와 함께 제공됩니다. 해당 헤더에서 빠진 이름의 수입니다. |
401 | X-RateLimit-Limit | integer | 소진에 가장 가까운 속도 제한에서 시간 창마다 허용되는 최대 요청 수입니다. 세 X-RateLimit 헤더는 모두 같은 제한을 설명합니다. |
401 | X-RateLimit-Remaining | integer | X-RateLimit-Limit가 설명하는 제한 안에서 아직 사용할 수 있는 요청 수입니다. |
401 | X-RateLimit-Reset | integer | X-RateLimit-Limit가 설명하는 제한이 다음에 용량을 회복하는 시각입니다. Unix timestamp 초 단위입니다. 알 수 없으면 생략됩니다. |
401 | X-Request-Id | string | 이 요청의 식별자입니다. 오류 envelope의 request_id와 일치합니다. 실패를 보고할 때 이 값을 인용하세요. |
402 | X-Lovable-Unknown-Query-Params | string | 요청에 이 작업이 선언하지 않은 query parameter가 포함된 경우에만 있습니다. 무시된 매개변수 이름을 URL escape 후 쉼표로 구분해 최대 20개까지 제공합니다. |
402 | X-Lovable-Unknown-Query-Params-Omitted | integer | 알 수 없는 매개변수가 20개를 넘어 무시되었을 때 X-Lovable-Unknown-Query-Params와 함께 제공됩니다. 해당 헤더에서 빠진 이름의 수입니다. |
402 | X-RateLimit-Limit | integer | 소진에 가장 가까운 속도 제한에서 시간 창마다 허용되는 최대 요청 수입니다. 세 X-RateLimit 헤더는 모두 같은 제한을 설명합니다. |
402 | X-RateLimit-Remaining | integer | X-RateLimit-Limit가 설명하는 제한 안에서 아직 사용할 수 있는 요청 수입니다. |
402 | X-RateLimit-Reset | integer | X-RateLimit-Limit가 설명하는 제한이 다음에 용량을 회복하는 시각입니다. Unix timestamp 초 단위입니다. 알 수 없으면 생략됩니다. |
402 | X-Request-Id | string | 이 요청의 식별자입니다. 오류 envelope의 request_id와 일치합니다. 실패를 보고할 때 이 값을 인용하세요. |
403 | X-Lovable-Unknown-Query-Params | string | 요청에 이 작업이 선언하지 않은 query parameter가 포함된 경우에만 있습니다. 무시된 매개변수 이름을 URL escape 후 쉼표로 구분해 최대 20개까지 제공합니다. |
403 | X-Lovable-Unknown-Query-Params-Omitted | integer | 알 수 없는 매개변수가 20개를 넘어 무시되었을 때 X-Lovable-Unknown-Query-Params와 함께 제공됩니다. 해당 헤더에서 빠진 이름의 수입니다. |
403 | X-RateLimit-Limit | integer | 소진에 가장 가까운 속도 제한에서 시간 창마다 허용되는 최대 요청 수입니다. 세 X-RateLimit 헤더는 모두 같은 제한을 설명합니다. |
403 | X-RateLimit-Remaining | integer | X-RateLimit-Limit가 설명하는 제한 안에서 아직 사용할 수 있는 요청 수입니다. |
403 | X-RateLimit-Reset | integer | X-RateLimit-Limit가 설명하는 제한이 다음에 용량을 회복하는 시각입니다. Unix timestamp 초 단위입니다. 알 수 없으면 생략됩니다. |
403 | X-Request-Id | string | 이 요청의 식별자입니다. 오류 envelope의 request_id와 일치합니다. 실패를 보고할 때 이 값을 인용하세요. |
404 | Lovable-Beta | string | 요청에 적용된 beta revision입니다. 쉼표로 구분됩니다. 요청이 beta revision을 선택한 경우에만 있습니다. |
404 | Lovable-Version | string | 요청을 처리한 안정 API 버전입니다. 버전 선택 전에 요청이 거부되었거나 버전 선택 자체가 실패한 경우에는 없습니다. |
404 | X-Lovable-Unknown-Query-Params | string | 요청에 이 작업이 선언하지 않은 query parameter가 포함된 경우에만 있습니다. 무시된 매개변수 이름을 URL escape 후 쉼표로 구분해 최대 20개까지 제공합니다. |
404 | X-Lovable-Unknown-Query-Params-Omitted | integer | 알 수 없는 매개변수가 20개를 넘어 무시되었을 때 X-Lovable-Unknown-Query-Params와 함께 제공됩니다. 해당 헤더에서 빠진 이름의 수입니다. |
404 | X-RateLimit-Limit | integer | 소진에 가장 가까운 속도 제한에서 시간 창마다 허용되는 최대 요청 수입니다. 세 X-RateLimit 헤더는 모두 같은 제한을 설명합니다. |
404 | X-RateLimit-Remaining | integer | X-RateLimit-Limit가 설명하는 제한 안에서 아직 사용할 수 있는 요청 수입니다. |
404 | X-RateLimit-Reset | integer | X-RateLimit-Limit가 설명하는 제한이 다음에 용량을 회복하는 시각입니다. Unix timestamp 초 단위입니다. 알 수 없으면 생략됩니다. |
404 | X-Request-Id | string | 이 요청의 식별자입니다. 오류 envelope의 request_id와 일치합니다. 실패를 보고할 때 이 값을 인용하세요. |
406 | Lovable-Beta | string | 요청에 적용된 beta revision입니다. 쉼표로 구분됩니다. 요청이 beta revision을 선택한 경우에만 있습니다. |
406 | Lovable-Version | string | 요청을 처리한 안정 API 버전입니다. 버전 선택 전에 요청이 거부되었거나 버전 선택 자체가 실패한 경우에는 없습니다. |
406 | X-Lovable-Unknown-Query-Params | string | 요청에 이 작업이 선언하지 않은 query parameter가 포함된 경우에만 있습니다. 무시된 매개변수 이름을 URL escape 후 쉼표로 구분해 최대 20개까지 제공합니다. |
406 | X-Lovable-Unknown-Query-Params-Omitted | integer | 알 수 없는 매개변수가 20개를 넘어 무시되었을 때 X-Lovable-Unknown-Query-Params와 함께 제공됩니다. 해당 헤더에서 빠진 이름의 수입니다. |
406 | X-RateLimit-Limit | integer | 소진에 가장 가까운 속도 제한에서 시간 창마다 허용되는 최대 요청 수입니다. 세 X-RateLimit 헤더는 모두 같은 제한을 설명합니다. |
406 | X-RateLimit-Remaining | integer | X-RateLimit-Limit가 설명하는 제한 안에서 아직 사용할 수 있는 요청 수입니다. |
406 | X-RateLimit-Reset | integer | X-RateLimit-Limit가 설명하는 제한이 다음에 용량을 회복하는 시각입니다. Unix timestamp 초 단위입니다. 알 수 없으면 생략됩니다. |
406 | X-Request-Id | string | 이 요청의 식별자입니다. 오류 envelope의 request_id와 일치합니다. 실패를 보고할 때 이 값을 인용하세요. |
429 | Retry-After | integer | 다시 시도하기 전에 기다릴 초 단위 시간입니다. minimum: 1입니다. limiter가 재시도 지연 시간을 계산할 수 있을 때 제공됩니다. |
429 | X-Lovable-Unknown-Query-Params | string | 요청에 이 작업이 선언하지 않은 query parameter가 포함된 경우에만 있습니다. 무시된 매개변수 이름을 URL escape 후 쉼표로 구분해 최대 20개까지 제공합니다. |
429 | X-Lovable-Unknown-Query-Params-Omitted | integer | 알 수 없는 매개변수가 20개를 넘어 무시되었을 때 X-Lovable-Unknown-Query-Params와 함께 제공됩니다. 해당 헤더에서 빠진 이름의 수입니다. |
429 | X-RateLimit-Limit | integer | 소진에 가장 가까운 속도 제한에서 시간 창마다 허용되는 최대 요청 수입니다. 세 X-RateLimit 헤더는 모두 같은 제한을 설명합니다. |
429 | X-RateLimit-Remaining | integer | X-RateLimit-Limit가 설명하는 제한 안에서 아직 사용할 수 있는 요청 수입니다. |
429 | X-RateLimit-Reset | integer | X-RateLimit-Limit가 설명하는 제한이 다음에 용량을 회복하는 시각입니다. Unix timestamp 초 단위입니다. 알 수 없으면 생략됩니다. |
429 | X-Request-Id | string | 이 요청의 식별자입니다. 오류 envelope의 request_id와 일치합니다. 실패를 보고할 때 이 값을 인용하세요. |
503 | Lovable-Beta | string | 요청에 적용된 beta revision입니다. 쉼표로 구분됩니다. 요청이 beta revision을 선택한 경우에만 있습니다. |
503 | Lovable-Version | string | 요청을 처리한 안정 API 버전입니다. 버전 선택 전에 요청이 거부되었거나 버전 선택 자체가 실패한 경우에는 없습니다. |
503 | X-Lovable-Unknown-Query-Params | string | 요청에 이 작업이 선언하지 않은 query parameter가 포함된 경우에만 있습니다. 무시된 매개변수 이름을 URL escape 후 쉼표로 구분해 최대 20개까지 제공합니다. |
503 | X-Lovable-Unknown-Query-Params-Omitted | integer | 알 수 없는 매개변수가 20개를 넘어 무시되었을 때 X-Lovable-Unknown-Query-Params와 함께 제공됩니다. 해당 헤더에서 빠진 이름의 수입니다. |
503 | X-RateLimit-Limit | integer | 소진에 가장 가까운 속도 제한에서 시간 창마다 허용되는 최대 요청 수입니다. 세 X-RateLimit 헤더는 모두 같은 제한을 설명합니다. |
503 | X-RateLimit-Remaining | integer | X-RateLimit-Limit가 설명하는 제한 안에서 아직 사용할 수 있는 요청 수입니다. |
503 | X-RateLimit-Reset | integer | X-RateLimit-Limit가 설명하는 제한이 다음에 용량을 회복하는 시각입니다. Unix timestamp 초 단위입니다. 알 수 없으면 생략됩니다. |
503 | X-Request-Id | string | 이 요청의 식별자입니다. 오류 envelope의 request_id와 일치합니다. 실패를 보고할 때 이 값을 인용하세요. |
default | Lovable-Beta | string | 요청에 적용된 beta revision입니다. 쉼표로 구분됩니다. 요청이 beta revision을 선택한 경우에만 있습니다. |
default | Lovable-Version | string | 요청을 처리한 안정 API 버전입니다. 버전 선택 전에 요청이 거부되었거나 버전 선택 자체가 실패한 경우에는 없습니다. |
default | X-Lovable-Unknown-Query-Params | string | 요청에 이 작업이 선언하지 않은 query parameter가 포함된 경우에만 있습니다. 무시된 매개변수 이름을 URL escape 후 쉼표로 구분해 최대 20개까지 제공합니다. |
default | X-Lovable-Unknown-Query-Params-Omitted | integer | 알 수 없는 매개변수가 20개를 넘어 무시되었을 때 X-Lovable-Unknown-Query-Params와 함께 제공됩니다. 해당 헤더에서 빠진 이름의 수입니다. |
default | X-RateLimit-Limit | integer | 소진에 가장 가까운 속도 제한에서 시간 창마다 허용되는 최대 요청 수입니다. 세 X-RateLimit 헤더는 모두 같은 제한을 설명합니다. |
default | X-RateLimit-Remaining | integer | X-RateLimit-Limit가 설명하는 제한 안에서 아직 사용할 수 있는 요청 수입니다. |
default | X-RateLimit-Reset | integer | X-RateLimit-Limit가 설명하는 제한이 다음에 용량을 회복하는 시각입니다. Unix timestamp 초 단위입니다. 알 수 없으면 생략됩니다. |
default | X-Request-Id | string | 이 요청의 식별자입니다. 오류 envelope의 request_id와 일치합니다. 실패를 보고할 때 이 값을 인용하세요. |
Schema
필드 이름과 enum 값은 OpenAPI contract의 식별자를 그대로 유지합니다. 설명은 한국어로 옮겼습니다. null이 타입에 포함된 필드는 값이 없을 수 있습니다.
PiiLabelPage
| 필드 | 필수 | 타입 | 제약 | 설명 |
|---|---|---|---|---|
data | 예 | array of PiiLabel | - | 이 페이지의 항목입니다. 항목이 없으면 빈 배열입니다. |
pagination | 예 | Pagination | - | 더 많은 결과가 있는지와 다음 페이지를 가져올 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_version과 retired_beta에는 migration_url 문자열 URL이 포함될 수 있습니다. 인식하지 못한 key는 무시하세요. |
request_id | 예 | string | - | X-Request-Id 응답 헤더에서 반복되는 이 요청의 식별자입니다. 실패를 보고할 때 이 값을 인용하세요. | 4bf92f3577b34da6a3ce929d0e0e4736 |
status | 예 | integer | - | 본문에 반복되는 HTTP 상태 코드입니다. | 429 |
title | 예 | string | - | 사람이 읽을 수 있는 오류 요약입니다. 문구는 바뀔 수 있으므로 애플리케이션의 오류 처리는 type을 기준으로 결정하세요. | Too Many Requests |
type | 예 | string | - | 안정적인 machine-readable 오류 유형입니다. URI가 아니라 rate_limited 같은 snake_case token입니다. 클라이언트는 이 값으로 분기할 수 있으며 새 유형은 추가될 수 있습니다. | rate_limited |
PiiLabel
| 필드 | 필수 | 타입 | 제약 | 설명 | 예시 |
|---|---|---|---|---|---|
found_at | 예 | string | format: date-time | label이 기록된 시각입니다. | 2026-01-15T09:30:00Z |
id | 예 | string | - | 이 개인정보 발견 항목의 고유 ID입니다. | pii_01jw3k9m2xq8r5v0c7d4e6f2gh |
quote | 예 | `string \ | null` | - | 탐지된 값의 sample입니다. 기록되지 않았으면 null입니다. 마스킹되지 않은 개인정보를 포함할 수 있습니다. |
source | 예 | string | enum: chat, upload, cloud_storage, cloud_sql, connector | 개인정보가 탐지된 위치입니다. 값이 추가될 수 있으므로 클라이언트는 알 수 없는 값을 허용해야 합니다. | chat |
status | 예 | string | enum: open, ignored, fixed | 개인정보 발견 항목의 검토 상태입니다. resolved 발견 항목은 표시된 콘텐츠가 redact되었거나 제거되었음을 뜻합니다. 값이 추가될 수 있으므로 클라이언트는 알 수 없는 값을 허용해야 합니다. | open |
Pagination
| 필드 | 필수 | 타입 | 제약 | 설명 | 예시 |
|---|---|---|---|---|---|
has_more | 예 | boolean | - | 이 페이지 뒤에 더 많은 결과가 있는지 여부입니다. | true |
next_cursor | 예 | `string \ | null` | - | 다음 페이지를 가져오려면 이 값을 cursor query parameter로 전달합니다. opaque string으로 취급하세요. 더 이상 결과가 없으면 null입니다. |