GET사용 가능FRESH
API 카탈로그
모든 공개 엔드포인트의 카테고리, 선언된 상태와 실시간 상태, 캐시 TTL, 마지막 프로브 결과를 제공하며, 요청 한도와 오류 코드 표도 포함합니다.
GET
/api/meta/catalog요청
이 엔드포인트에는 파라미터가 없습니다.
요청 예시
curl -s "https://www.coinboss.com/api/meta/catalog"응답 필드
필드 표는 실제 응답에서 생성되므로 엔드포인트가 반환하는 내용을 그대로 보여 줍니다. 경로에서 a[]는 배열 항목을, {*}는 코인이나 거래소처럼 동적 이름을 키로 갖는 객체를 뜻합니다.
| 필드 | 타입 | 단위 | 설명 |
|---|---|---|---|
| success | boolean | — | 요청이 성공하면 true입니다. 실패하면 본문은 `{ success: false, code, error, request_id }`입니다. |
| schema | string | — | 이 응답의 스키마 ID(`coinboss.meta.catalog/1`). |
| now | number | ms | 응답이 생성된 서버 시각. |
| api_version | string | — | 공개 API의 버전(`v1`). |
| catalog_version | string | — | 엔드포인트 카탈로그의 버전으로, `2026.11.11`과 같은 릴리스 날짜입니다. |
| base_path | string | — | 모든 엔드포인트가 공유하는 경로 접두사(`/api`). |
| summary | object | — | 요약 블록. |
| summary.total | number | — | 합계. |
| summary.available | number | — | 데이터 사용 가능 여부. |
| summary.partial | number | — | 예상 데이터의 일부만 있으면 true. |
| summary.degraded | number | count | 실시간 상태가 `degraded`인 엔드포인트 수. |
| summary.down | number | count | 실시간 상태가 `down`인 엔드포인트 수. |
| summary.unavailable | number | — | 데이터가 없는 항목과 그 사유. 0으로 보고하는 일은 없습니다. |
| summary.unknown | number | count | 실시간 상태가 `unknown`인 엔드포인트 수(최근 프로브 결과 없음). |
| probe | object | — | 실시간 상태의 바탕이 되는 엔드포인트 프로브의 상태: 마지막 실행 시각, 그 이후 경과 시간, 실행 간격, 최신 여부. |
| probe.last_run_at | number | ms | 타임스탬프. |
| probe.age_s | number | s | 이 행이 마지막으로 갱신된 후 경과한 초. |
| probe.interval_s | number | s | 두 프로브 실행 사이의 예정 간격(300). |
| probe.fresh | boolean | — | 마지막 프로브 실행이 20분 이내이면 true. false이면 엔드포인트 상태는 `unknown`으로 보고됩니다. |
| probe.error | null | — | 오류 메시지(실패 시에만 존재). |
| categories | array | — | 엔드포인트가 하나 이상 있는 엔드포인트 카테고리로, 상태별 엔드포인트 수를 포함합니다. |
| categories[] | object | — | 카테고리 하나: `id`, `title`, `desc`, 각 상태에 해당하는 엔드포인트 수. |
| categories[].id | string | — | 식별자. |
| categories[].title | string | — | 카테고리의 표시 제목. |
| categories[].desc | string | — | 카테고리의 한 문장 설명. 작성된 것이 없으면 null. |
| categories[].total | number | — | 합계. |
| categories[].available | number | — | 데이터 사용 가능 여부. |
| categories[].partial | number | — | 예상 데이터의 일부만 있으면 true. |
| categories[].degraded | number | count | 해당 카테고리에서 실시간 상태가 `degraded`인 엔드포인트 수. |
| categories[].down | number | count | 해당 카테고리에서 실시간 상태가 `down`인 엔드포인트 수. |
| categories[].unavailable | number | — | 데이터가 없는 항목과 그 사유. 0으로 보고하는 일은 없습니다. |
| categories[].unknown | number | count | 해당 카테고리에서 실시간 상태가 `unknown`인 엔드포인트 수. |
| endpoints | array | — | 문서화된 모든 엔드포인트와 그 실시간 상태. |
| endpoints[] | object | — | 엔드포인트 하나: 식별 정보, 경로, 선언된 상태와 실시간 상태, 캐시 수명, 파라미터 이름, 마지막 프로브 결과. |
| endpoints[].id | string | — | 식별자. |
| endpoints[].cat | string | — | 엔드포인트가 속한 카테고리의 ID. |
| endpoints[].kind | string | — | 종류. |
| endpoints[].method | string | — | 산식 / 산출 방식 참고 사항. |
| endpoints[].path | string | — | 엔드포인트의 요청 경로. `:name` 세그먼트는 경로 파라미터입니다. |
| endpoints[].title | string | — | 엔드포인트의 짧은 표시 제목. |
| endpoints[].summary | string | — | 요약 블록. |
| endpoints[].declared | string | — | 프로브와 무관하게 카탈로그에 선언된 상태: `available`, `partial` 또는 `unavailable`. |
| endpoints[].status | string | — | 상태. |
| endpoints[].status_reason | string|null | — | `status`가 `available`이 아닌 이유, 일반 텍스트. 해당 상태이면 null. |
| endpoints[].stability | string | — | `stable`, `beta`(90일 사전 공지 없이 필드 구성이 바뀔 수 있음) 또는 `legacy`(계속 동작하며 대체 엔드포인트가 있음). |
| endpoints[].since | string|null | — | 기간의 시작 시각. |
| endpoints[].ttl_s | number|null | s | 엔드포인트 응답의 서버 측 캐시 수명. 캐시하지 않거나 해당 사항이 없으면 null. |
| endpoints[].params | array | — | 엔드포인트가 받는 모든 파라미터의 이름. 이 표를 생성한 샘플에서는 비어 있음 |
| endpoints[].params[] | string | — | 파라미터 이름 하나. |
| endpoints[].required | array | — | 반드시 보내야 하는 파라미터의 이름. 이 표를 생성한 샘플에서는 비어 있음 |
| endpoints[].probe | object | — | 엔드포인트의 마지막 프로브 결과: 점검 시각, HTTP 상태, `ok`, `schema_ok`, 지연 시간, 크기, 데이터 경과 시간, 마지막 성공, 연속 실패 횟수. 프로브된 적이 없으면 null. |
| endpoints[].probe.checked_at | number | ms | 타임스탬프. |
| endpoints[].probe.http | number | — | 가장 최근 프로브 요청의 HTTP 상태. |
| endpoints[].probe.ok | boolean | — | 가장 최근 프로브 요청이 유효한 JSON 본문과 함께 HTTP 200을 반환했으면 `true`. |
| endpoints[].probe.schema_ok | boolean | — | 프로브된 응답이 문서화된 필드 표와 일치했으면 `true`. 필드 표가 없으면 `null`. |
| endpoints[].probe.latency_ms | number | ms | 가장 최근 프로브 요청의 응답 시간. |
| endpoints[].probe.bytes | number | bytes | 프로브된 응답 본문의 크기. |
| endpoints[].probe.quality | null | — | 프로브된 응답이 보고한 `meta.quality`(FRESH / PARTIAL / STALE …). 엔드포인트가 이를 보고하지 않으면 `null`. |
| endpoints[].probe.data_age_s | number|null | s | 이벤트 후 경과한 초. |
| endpoints[].probe.last_ok_at | number | ms | 타임스탬프. |
| endpoints[].probe.fail_streak | number | count | 연속으로 실패한 프로브 수. 마지막 프로브가 성공했으면 0. |
| endpoints[].required[] | string | — | 필수 파라미터 이름 하나. |
| rate_limit | object | — | 공개 API의 요청 한도 규칙. |
| rate_limit.window_s | number | s | 집계 구간의 길이(60). |
| rate_limit.anonymous_per_min | number | count | API 키를 보내지 않을 때 클라이언트 IP당 허용되는 분당 요청 수. |
| rate_limit.scope | string | — | 요청을 집계하는 방식을 설명하는 텍스트: 익명이면 클라이언트 IP별, `CB-API-KEY` 헤더를 보내면 키별. |
| rate_limit.key_tiers_per_min | object | — | API 키 등급별로 허용되는 분당 요청 수, 키는 등급 이름. |
| rate_limit.key_tiers_per_min.hobbyist | number | count | `hobbyist` 등급 키의 분당 요청 수. |
| rate_limit.key_tiers_per_min.startup | number | count | `startup` 등급 키의 분당 요청 수. |
| rate_limit.key_tiers_per_min.standard | number | count | `standard` 등급 키의 분당 요청 수. |
| rate_limit.key_tiers_per_min.professional | number | count | `professional` 등급 키의 분당 요청 수. |
| rate_limit.exempt | array | — | 한도에 집계되지 않는 경로 패턴. |
| rate_limit.exempt[] | string | — | 면제되는 경로 패턴 하나, 예: `/api/coin-icon/*`. |
| rate_limit.headers | array | — | 요청 한도 상태를 알려 주는 응답 헤더의 이름. |
| rate_limit.headers[] | string | — | 헤더 이름 하나, 예: `X-RateLimit-Remaining`. |
| rate_limit.on_exceed | object | — | 한도를 초과했을 때 반환되는 내용: `http` 상태와 오류 `code`. |
| rate_limit.on_exceed.http | number | — | 한도를 초과했을 때 반환되는 HTTP 상태(429). |
| rate_limit.on_exceed.code | string | — | 코드. |
| errors | array | — | API가 반환할 수 있는 오류 코드로, 각각 HTTP 상태, 의미, 재시도 안내를 포함합니다. |
| errors[] | object | — | 오류 코드 하나. |
| errors[].code | string | — | 코드. |
| errors[].http | number|string | — | 이 코드와 함께 전송되는 HTTP 상태. 둘 이상이 해당하면 `501 / 503`와 같은 문자열. |
| errors[].meaning | string | — | 오류의 의미. |
| errors[].retry | string | — | 재시도 여부와 방법에 대한 안내. |
| errors[].legacy | boolean | — | HTTP 200과 `success: false`로 응답하는 이전 엔드포인트가 사용하는 코드에만 존재하며 값은 true입니다. 없을 수 있음 |
| status_legend | object | — | 각 엔드포인트 상태의 일반 텍스트 정의. |
| status_legend.available | string | — | 데이터 사용 가능 여부. |
| status_legend.partial | string | — | 예상 데이터의 일부만 있으면 true. |
| status_legend.degraded | string | — | 상태 `degraded`의 정의. |
| status_legend.down | string | — | 상태 `down`의 정의. |
| status_legend.unavailable | string | — | 데이터가 없는 항목과 그 사유. 0으로 보고하는 일은 없습니다. |
| status_legend.unknown | string | — | 상태 `unknown`의 정의. |
| meta | object | — | 이 응답의 엔벨로프: 스키마 ID, 생성 시스템, 타임스탬프, 캐시 수명, 신선도. |
| meta.schema | string | — | 이 응답의 스키마 ID. 최상위 `schema`와 같은 값입니다. |
| meta.source | array | — | 값의 출처. |
| meta.source[] | object | — | 값의 출처. |
| meta.source[].system | string | — | 데이터를 생성한 시스템. 개발자 센터 엔드포인트에서는 항상 `coinboss`입니다. |
| meta.source[].component | string | — | 데이터의 바탕이 되는 구성 요소: 엔드포인트 프로브와 데이터 품질 순찰. |
| meta.observed_at | null | — | 타임스탬프. |
| meta.received_at | number | ms | 타임스탬프. |
| meta.fetched_at | number | ms | CoinBoss가 소스에서 데이터를 가져온 시각. |
| meta.window | string | — | 구간. |
| meta.cache_ttl_s | number | s | 이 응답의 서버 측 캐시 수명. |
| meta.quality | string | — | 엔드포인트 프로브가 최근 20분 이내에 보고했으면 `FRESH`, 그렇지 않으면 `STALE`. |
| meta.is_stale | boolean | — | 행이 신선도 창보다 오래되면 true. 만료된 행은 합계에 사용하지 않습니다. |
| meta.fallback | string | — | 입력 데이터가 만료되었거나 없을 때 이 엔드포인트가 무엇을 반환하는지에 대한 일반 텍스트 설명. |
2026-11-11 23:01 UTC에 실제 응답 1건으로 생성.
응답 예시
/api/meta/catalog · 2026-11-13 03:53:45 UTC에 수집한 실제 응답. 긴 배열과 맵은 표시를 위해 줄였습니다: errors: 원래 항목 9개; endpoints: 원래 항목 299개; categories: 원래 항목 21개.
- "success"true
- "schema""coinboss.meta.catalog/1"
- "now"1794542025566
- "api_version""v1"
- "catalog_version""2026.11.12"
- "base_path""/api"
- "summary"
- "total"299
- "available"256
- "partial"17
- "degraded"17
- "down"8
- "unavailable"1
- "unknown"0
- "probe"
- "last_run_at"1794541726312
- "age_s"299
- "interval_s"300
- "fresh"true
- "error"null
- "categories"
- "endpoints"
- "rate_limit"
- "window_s"60
- "anonymous_per_min"1200
- "scope""per client IP for anonymous requests; per key when a CB-API-KEY header is sent"
- "key_tiers_per_min"
- "exempt"
- "headers"
- "on_exceed"
- "errors"
- "status_legend"
- "available""last probe returned HTTP 200 and the response matched the documented schema"
- "partial""works, but exchange / field coverage is incomplete (see status_reason)"
- "degraded""responding, but schema drift or stale data was detected by the last probe"
- "down""last probe failed"
- "unavailable""documented for completeness; no lawful public source yet, the endpoint returns nulls or is not served"
- "unknown""no probe result within the last 20 minutes"
- "meta"
- "schema""coinboss.meta.catalog/1"
- "source"
- "observed_at"null
- "received_at"1794541726312
- "fetched_at"1794542025566
- "window""latest"
- "cache_ttl_s"30
- "quality""FRESH"
- "is_stale"false
- "fallback""when the probe has not reported within 20 minutes every endpoint status becomes \"unknown\""
상세 정보
- 인증
- 없음. 공개 엔드포인트.
- 요청 한도
- IP당 분당 1200회
- 서버 캐시
- 30s
- 엣지 마이크로 캐시
- 10s
- 갱신 주기
- 요청 시 카탈로그 파일과 최신 프로브 결과로 다시 생성합니다(프로브는 5분마다 실행).
- 데이터 소스
- CoinBoss 엔드포인트 카탈로그 + sd_api_probe(API 프로브가 수행한 실제 호출의 결과).
- 타임스탬프
- 필드 설명에 별도 언급이 없는 한 Unix epoch 밀리초(UTC)
- 응답 형식
- json
- 안정성
- 안정
- 제공 시작
- 2026-11-11
실시간 상태
사용 가능2026-11-13 03:53:45 UTC 점검HTTP 2006 ms스키마 일치최신 데이터 포인트: 5m 경과
최근 30일 가용성
점검 408회 중 100% 통과
오류
실패한 호출은 모든 엔드포인트에서 동일한 구조로 반환됩니다. 전체 목록은 오류 페이지에 있습니다. 오류 및 요청 한도 →
| 코드 | HTTP | 의미 | 대응 방법 |
|---|---|---|---|
| INVALID_PARAM | 400 | 필수 파라미터가 누락되었거나 허용되지 않는 값입니다. 문제가 된 파라미터를 알 수 있으면 `param`에 그 이름이 들어갑니다. | 그대로 재시도하지 말고 요청을 수정하십시오. |
| UNAUTHORIZED | 401 | `CB-API-KEY` 헤더를 보냈지만 알 수 없거나 폐기된 키입니다. 공개 데이터에는 키가 필요 없으므로 헤더를 빼거나 유효한 키를 사용하십시오. | 그대로 재시도하지 마십시오. |
| FORBIDDEN | 403 | 해당 경로는 공개 API에 포함되지 않습니다(내부용 또는 계정 전용). | 재시도하지 마십시오. |
| NOT_FOUND | 404 | 알 수 없는 경로이거나, 요청한 코인 / 거래소 / 펀드가 존재하지 않습니다. | 재시도하지 말고 경로와 식별자를 카탈로그와 대조해 확인하십시오. |
| RATE_LIMITED | 429 | 요청 수가 분당 한도를 초과했습니다. `Retry-After`가 대기해야 할 초를 알려 줍니다. | `Retry-After`만큼 기다린 뒤 백오프를 적용해 재시도하십시오. |
| INTERNAL | 500 | 예기치 않은 서버 오류입니다. 메시지는 의도적으로 일반적인 내용만 담습니다. 신고할 때 `request_id`를 인용하십시오. | 몇 초 뒤 한 번 재시도하고, 계속되면 요청 ID와 함께 신고하십시오. |
| UPSTREAM_FAILED | 503 | 이 엔드포인트의 데이터 소스가 제시간에 응답하지 않았습니다. 그 대신 만료된 수치나 대체 수치를 반환하는 일은 없습니다. | 백오프를 적용해 재시도하고 상태 페이지를 확인하십시오. |
| UNAVAILABLE | 501 / 503 | 데이터셋이 일시적으로 준비되지 않았거나(캐시 워밍 중) 엔드포인트에 아직 합법적인 공개 소스가 없습니다. | 나중에 재시도하십시오. 설계상 사용 불가인 엔드포인트는 카탈로그에 표시되어 있습니다. |
| REQUEST_FAILED | 200 | 일부 이전 엔드포인트는 HTTP 200에 `success: false`로 응답합니다. HTTP 상태만 보지 말고 항상 `success`를 확인하십시오. | 메시지에 따라 다릅니다. 실패한 요청으로 처리하십시오. |
직접 실행
GET
/api/meta/catalog사용 가능파라미터
파라미터 없음.
요청 URL
https://www.coinboss.com/api/meta/catalog엔드포인트를 선택하고 “요청 보내기”를 누르십시오. 응답, 헤더, 소요 시간이 여기에 표시됩니다.
이 카테고리의 다른 엔드포인트
- 데이터 품질 매트릭스(수집기 관점) /api/sd/quality
- API 카탈로그 /api/meta/catalog
- 변경 내역 및 버전 관리 정책 /api/meta/changelog
- 엔드포인트 문서 /api/meta/endpoint
- OpenAPI 문서 /api/meta/openapi
- 데이터 품질 매트릭스 /api/meta/quality
- 서비스 상태 /api/meta/status
- 플랫폼에 등록된 코인 심볼인지 확인 /api/coin-exists
- 코인 심볼과 로컬 호스팅 아이콘 경로의 매핑 /api/coin-icons
- 코인 페이지 통합 요약 /api/content/coin
- 사이트 전체 섹션 요약 /api/content/summary
- 법정화폐 환율 표 /api/currency/fx
- 거래소 ID와 로컬 호스팅 아이콘 경로의 매핑 /api/exchange-icons
- 활성 상태 확인 /api/health
- 리서치 페이지 통계 /api/research/stats