지원 중단 사용량 보고서
GET /v1/reports/deprecation-usage · 권한 reports:read
제거가 예정된 작업을 아직 호출하는 클라이언트를 보여 주므로, 제거일 전에 마이그레이션할 수 있습니다(자세한 내용은 버전 관리 정책 참조). 호출은 UTC 일 단위로 집계되며 지원 중단, 클라이언트 및 SDK 버전별로 그룹화됩니다. 지원 중단된 작업이 없으면 보고서는 비어 있습니다.
환경은 항상 API 키에서 결정되며, 환경 매개변수는 없습니다. 행에는 IP 주소, User-Agent 또는 최종 사용자 식별자가 포함되지 않습니다.
요청
| 매개변수 | 위치 | 필수 | 설명 |
|---|---|---|---|
from |
query | 아니요 | 포함할 첫 날, 전체 날짜(YYYY-MM-DD, UTC). 기본값은 to에서 30일 전입니다. 요금제의 보고서 기록 범위(아래 참조)로 제한됩니다. |
to |
query | 아니요 | 포함할 마지막 날, 전체 날짜(YYYY-MM-DD, UTC). 기본값은 오늘입니다. from은 to보다 늦을 수 없습니다. |
limit |
query | 아니요 | 페이지 크기, 1~100. 기본값 50. |
cursor |
query | 아니요 | 이전 페이지의 next_cursor. 발급된 환경, from 및 to에서만 유효합니다. |
행은 deprecation_id, client_id, sdk_package, sdk_version 순서로 정렬됩니다. 범위의 양쪽 끝은 모두 포함됩니다. 기본 범위(from/to를 보내지 않음)에서 얻은 커서는 UTC 일이 바뀌면 작동하지 않습니다. 페이지를 넘길 때는 from과 to를 명시적으로 보내십시오.
요금제별 보고서 기록
| 요금제 | 기록 |
|---|---|
| Free | 30일 |
| Startup, Business | 13개월 |
| Enterprise | 25개월, 400일로 제한 |
보고서 테이블은 400일을 보관하므로 어떤 요금제도 400일보다 더 과거로 가지 않습니다. 허용된 기록보다 오래된 from은 422 report_range_exceeds_plan으로 실패합니다. 가장 이른 허용 날짜는 메시지와 errors[0].detail(earliest_allowed_date=YYYY-MM-DD)에 있습니다.
응답
200 OK. data에는 해당 페이지의 행이 들어 있으며, next_cursor는 마지막 페이지에서 null입니다.
| 필드 | 설명 |
|---|---|
deprecation_id |
지원 중단 레지스트리의 식별자(dep-YYYY-NN). |
client_id |
관리 API 키는 key_…, 관리 OAuth 클라이언트는 app_…, 대시보드는 dashboard. |
sdk_package |
Idp-Client 헤더의 SDK 패키지. 카탈로그에 없는 패키지는 other, 헤더가 없으면 none. |
sdk_version |
SemVer 버전 또는 빈 문자열. |
call_count |
범위 내 호출 수. |
last_seen_at |
범위 내 마지막 호출(RFC 3339, UTC). |
sunset_at |
지원 중단 레지스트리의 제거일(YYYY-MM-DD). 알 수 없으면 null. 이 날 이후 작업은 410 endpoint_sunset으로 응답합니다. |
{
"data": [
{
"deprecation_id": "dep-2027-01",
"client_id": "key_01j9xk3m7q8r2s4t6v8w0y2z4d",
"sdk_package": "keenauth-go",
"sdk_version": "1.4.0",
"call_count": 1280,
"last_seen_at": "2027-03-02T09:30:00Z",
"sunset_at": "2028-01-17"
}
],
"next_cursor": null
}
CSV
Accept: text/csv를 보내면 같은 열을 헤더 행과 함께 CSV(RFC 4180)로 받습니다. =, +, -, @, 탭 또는 캐리지 리턴으로 시작하는 텍스트 셀에는 스프레드시트가 수식으로 실행하지 않도록 작은따옴표가 앞에 붙습니다. 다음 페이지의 커서는 Link 헤더(rel="next")에 있으며, 범위가 그 링크에 명시됩니다.
deprecation_id,client_id,sdk_package,sdk_version,call_count,last_seen_at,sunset_at
dep-2027-01,key_01j9xk3m7q8r2s4t6v8w0y2z4d,keenauth-go,1.4.0,1280,2027-03-02T09:30:00Z,2028-01-17
참고
카운트는 분 단위로 수집되어 비동기로 보고서에 기록되므로, 가장 최근 호출은 나타나는 데 몇 분이 걸릴 수 있습니다. 장애가 나면 최대 60초 분량의 카운트가 유실될 수 있습니다. 이 보고서는 청구 입력값이 아닙니다.
오류
모든 오류는 안정적인 code가 있는 application/problem+json 본문입니다.
| HTTP | code |
발생 조건 |
|---|---|---|
| 400 | invalid_filter |
from 또는 to가 YYYY-MM-DD 날짜가 아니거나, 날짜가 반복되거나, from이 to보다 늦습니다. |
| 400 | invalid_cursor |
커서 형식이 잘못되었거나 이 환경과 범위에 대해 발급되지 않았습니다. |
| 422 | report_range_exceeds_plan |
from이 요금제의 보고서 기록보다 오래되었습니다. |
| 422 | validation_failed |
limit이 범위를 벗어났거나 매개변수가 반복되었습니다. |
| 401 | unauthenticated |
API 키가 없거나, 잘못되었거나, 폐기되었습니다. |
| 403 | insufficient_permissions |
키에 reports:read가 없습니다. |
| 429 | rate_limited |
요청 한도를 초과했습니다. Retry-After를 따르십시오. |
| 503 | service_unavailable |
보고 서비스를 일시적으로 사용할 수 없습니다. 나중에 다시 시도하십시오. |
예시
curl "https://api.eu.keenauth.com/v1/reports/deprecation-usage?from=2027-03-01&to=2027-03-31" \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
keenauth reports deprecation-usage --from 2027-03-01 --to 2027-03-31
keenauth reports deprecation-usage --format csv > deprecation-usage.csv