/api/meta/catalog
GET사용 가능FRESH

API 카탈로그

모든 공개 엔드포인트의 카테고리, 선언된 상태와 실시간 상태, 캐시 TTL, 마지막 프로브 결과를 제공하며, 요청 한도와 오류 코드 표도 포함합니다.

GET/api/meta/catalog

요청

이 엔드포인트에는 파라미터가 없습니다.

요청 예시

curl -s "https://www.coinboss.com/api/meta/catalog"

응답 필드

필드 표는 실제 응답에서 생성되므로 엔드포인트가 반환하는 내용을 그대로 보여 줍니다. 경로에서 a[]는 배열 항목을, {*}는 코인이나 거래소처럼 동적 이름을 키로 갖는 객체를 뜻합니다.

필드타입단위설명
successboolean—요청이 성공하면 true입니다. 실패하면 본문은 `{ success: false, code, error, request_id }`입니다.
schemastring—이 응답의 스키마 ID(`coinboss.meta.catalog/1`).
nownumberms응답이 생성된 서버 시각.
api_versionstring—공개 API의 버전(`v1`).
catalog_versionstring—엔드포인트 카탈로그의 버전으로, `2026.11.11`과 같은 릴리스 날짜입니다.
base_pathstring—모든 엔드포인트가 공유하는 경로 접두사(`/api`).
summaryobject—요약 블록.
summary.totalnumber—합계.
summary.availablenumber—데이터 사용 가능 여부.
summary.partialnumber—예상 데이터의 일부만 있으면 true.
summary.degradednumbercount실시간 상태가 `degraded`인 엔드포인트 수.
summary.downnumbercount실시간 상태가 `down`인 엔드포인트 수.
summary.unavailablenumber—데이터가 없는 항목과 그 사유. 0으로 보고하는 일은 없습니다.
summary.unknownnumbercount실시간 상태가 `unknown`인 엔드포인트 수(최근 프로브 결과 없음).
probeobject—실시간 상태의 바탕이 되는 엔드포인트 프로브의 상태: 마지막 실행 시각, 그 이후 경과 시간, 실행 간격, 최신 여부.
probe.last_run_atnumberms타임스탬프.
probe.age_snumbers이 행이 마지막으로 갱신된 후 경과한 초.
probe.interval_snumbers두 프로브 실행 사이의 예정 간격(300).
probe.freshboolean—마지막 프로브 실행이 20분 이내이면 true. false이면 엔드포인트 상태는 `unknown`으로 보고됩니다.
probe.errornull—오류 메시지(실패 시에만 존재).
categoriesarray—엔드포인트가 하나 이상 있는 엔드포인트 카테고리로, 상태별 엔드포인트 수를 포함합니다.
categories[]object—카테고리 하나: `id`, `title`, `desc`, 각 상태에 해당하는 엔드포인트 수.
categories[].idstring—식별자.
categories[].titlestring—카테고리의 표시 제목.
categories[].descstring—카테고리의 한 문장 설명. 작성된 것이 없으면 null.
categories[].totalnumber—합계.
categories[].availablenumber—데이터 사용 가능 여부.
categories[].partialnumber—예상 데이터의 일부만 있으면 true.
categories[].degradednumbercount해당 카테고리에서 실시간 상태가 `degraded`인 엔드포인트 수.
categories[].downnumbercount해당 카테고리에서 실시간 상태가 `down`인 엔드포인트 수.
categories[].unavailablenumber—데이터가 없는 항목과 그 사유. 0으로 보고하는 일은 없습니다.
categories[].unknownnumbercount해당 카테고리에서 실시간 상태가 `unknown`인 엔드포인트 수.
endpointsarray—문서화된 모든 엔드포인트와 그 실시간 상태.
endpoints[]object—엔드포인트 하나: 식별 정보, 경로, 선언된 상태와 실시간 상태, 캐시 수명, 파라미터 이름, 마지막 프로브 결과.
endpoints[].idstring—식별자.
endpoints[].catstring—엔드포인트가 속한 카테고리의 ID.
endpoints[].kindstring—종류.
endpoints[].methodstring—산식 / 산출 방식 참고 사항.
endpoints[].pathstring—엔드포인트의 요청 경로. `:name` 세그먼트는 경로 파라미터입니다.
endpoints[].titlestring—엔드포인트의 짧은 표시 제목.
endpoints[].summarystring—요약 블록.
endpoints[].declaredstring—프로브와 무관하게 카탈로그에 선언된 상태: `available`, `partial` 또는 `unavailable`.
endpoints[].statusstring—상태.
endpoints[].status_reasonstring|null—`status`가 `available`이 아닌 이유, 일반 텍스트. 해당 상태이면 null.
endpoints[].stabilitystring—`stable`, `beta`(90일 사전 공지 없이 필드 구성이 바뀔 수 있음) 또는 `legacy`(계속 동작하며 대체 엔드포인트가 있음).
endpoints[].sincestring|null—기간의 시작 시각.
endpoints[].ttl_snumber|nulls엔드포인트 응답의 서버 측 캐시 수명. 캐시하지 않거나 해당 사항이 없으면 null.
endpoints[].paramsarray—엔드포인트가 받는 모든 파라미터의 이름. 이 표를 생성한 샘플에서는 비어 있음
endpoints[].params[]string—파라미터 이름 하나.
endpoints[].requiredarray—반드시 보내야 하는 파라미터의 이름. 이 표를 생성한 샘플에서는 비어 있음
endpoints[].probeobject—엔드포인트의 마지막 프로브 결과: 점검 시각, HTTP 상태, `ok`, `schema_ok`, 지연 시간, 크기, 데이터 경과 시간, 마지막 성공, 연속 실패 횟수. 프로브된 적이 없으면 null.
endpoints[].probe.checked_atnumberms타임스탬프.
endpoints[].probe.httpnumber—가장 최근 프로브 요청의 HTTP 상태.
endpoints[].probe.okboolean—가장 최근 프로브 요청이 유효한 JSON 본문과 함께 HTTP 200을 반환했으면 `true`.
endpoints[].probe.schema_okboolean—프로브된 응답이 문서화된 필드 표와 일치했으면 `true`. 필드 표가 없으면 `null`.
endpoints[].probe.latency_msnumberms가장 최근 프로브 요청의 응답 시간.
endpoints[].probe.bytesnumberbytes프로브된 응답 본문의 크기.
endpoints[].probe.qualitynull—프로브된 응답이 보고한 `meta.quality`(FRESH / PARTIAL / STALE …). 엔드포인트가 이를 보고하지 않으면 `null`.
endpoints[].probe.data_age_snumber|nulls이벤트 후 경과한 초.
endpoints[].probe.last_ok_atnumberms타임스탬프.
endpoints[].probe.fail_streaknumbercount연속으로 실패한 프로브 수. 마지막 프로브가 성공했으면 0.
endpoints[].required[]string—필수 파라미터 이름 하나.
rate_limitobject—공개 API의 요청 한도 규칙.
rate_limit.window_snumbers집계 구간의 길이(60).
rate_limit.anonymous_per_minnumbercountAPI 키를 보내지 않을 때 클라이언트 IP당 허용되는 분당 요청 수.
rate_limit.scopestring—요청을 집계하는 방식을 설명하는 텍스트: 익명이면 클라이언트 IP별, `CB-API-KEY` 헤더를 보내면 키별.
rate_limit.key_tiers_per_minobject—API 키 등급별로 허용되는 분당 요청 수, 키는 등급 이름.
rate_limit.key_tiers_per_min.hobbyistnumbercount`hobbyist` 등급 키의 분당 요청 수.
rate_limit.key_tiers_per_min.startupnumbercount`startup` 등급 키의 분당 요청 수.
rate_limit.key_tiers_per_min.standardnumbercount`standard` 등급 키의 분당 요청 수.
rate_limit.key_tiers_per_min.professionalnumbercount`professional` 등급 키의 분당 요청 수.
rate_limit.exemptarray—한도에 집계되지 않는 경로 패턴.
rate_limit.exempt[]string—면제되는 경로 패턴 하나, 예: `/api/coin-icon/*`.
rate_limit.headersarray—요청 한도 상태를 알려 주는 응답 헤더의 이름.
rate_limit.headers[]string—헤더 이름 하나, 예: `X-RateLimit-Remaining`.
rate_limit.on_exceedobject—한도를 초과했을 때 반환되는 내용: `http` 상태와 오류 `code`.
rate_limit.on_exceed.httpnumber—한도를 초과했을 때 반환되는 HTTP 상태(429).
rate_limit.on_exceed.codestring—코드.
errorsarray—API가 반환할 수 있는 오류 코드로, 각각 HTTP 상태, 의미, 재시도 안내를 포함합니다.
errors[]object—오류 코드 하나.
errors[].codestring—코드.
errors[].httpnumber|string—이 코드와 함께 전송되는 HTTP 상태. 둘 이상이 해당하면 `501 / 503`와 같은 문자열.
errors[].meaningstring—오류의 의미.
errors[].retrystring—재시도 여부와 방법에 대한 안내.
errors[].legacyboolean—HTTP 200과 `success: false`로 응답하는 이전 엔드포인트가 사용하는 코드에만 존재하며 값은 true입니다. 없을 수 있음
status_legendobject—각 엔드포인트 상태의 일반 텍스트 정의.
status_legend.availablestring—데이터 사용 가능 여부.
status_legend.partialstring—예상 데이터의 일부만 있으면 true.
status_legend.degradedstring—상태 `degraded`의 정의.
status_legend.downstring—상태 `down`의 정의.
status_legend.unavailablestring—데이터가 없는 항목과 그 사유. 0으로 보고하는 일은 없습니다.
status_legend.unknownstring—상태 `unknown`의 정의.
metaobject—이 응답의 엔벨로프: 스키마 ID, 생성 시스템, 타임스탬프, 캐시 수명, 신선도.
meta.schemastring—이 응답의 스키마 ID. 최상위 `schema`와 같은 값입니다.
meta.sourcearray—값의 출처.
meta.source[]object—값의 출처.
meta.source[].systemstring—데이터를 생성한 시스템. 개발자 센터 엔드포인트에서는 항상 `coinboss`입니다.
meta.source[].componentstring—데이터의 바탕이 되는 구성 요소: 엔드포인트 프로브와 데이터 품질 순찰.
meta.observed_atnull—타임스탬프.
meta.received_atnumberms타임스탬프.
meta.fetched_atnumbermsCoinBoss가 소스에서 데이터를 가져온 시각.
meta.windowstring—구간.
meta.cache_ttl_snumbers이 응답의 서버 측 캐시 수명.
meta.qualitystring—엔드포인트 프로브가 최근 20분 이내에 보고했으면 `FRESH`, 그렇지 않으면 `STALE`.
meta.is_staleboolean—행이 신선도 창보다 오래되면 true. 만료된 행은 합계에 사용하지 않습니다.
meta.fallbackstring—입력 데이터가 만료되었거나 없을 때 이 엔드포인트가 무엇을 반환하는지에 대한 일반 텍스트 설명.

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": [
      • { … 10 },
      • { … 10 }
      ],
    • "endpoints": [
      • { … 16 },
      • { … 16 }
      ],
    • "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": { … 4 },
      • "exempt": [ … 1 ],
      • "headers": [ … 4 ],
      • "on_exceed": { … 2 }
      },
    • "errors": [
      • { … 4 },
      • { … 4 }
      ],
    • "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": [ … 1 ],
      • "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_PARAM400필수 파라미터가 누락되었거나 허용되지 않는 값입니다. 문제가 된 파라미터를 알 수 있으면 `param`에 그 이름이 들어갑니다.그대로 재시도하지 말고 요청을 수정하십시오.
UNAUTHORIZED401`CB-API-KEY` 헤더를 보냈지만 알 수 없거나 폐기된 키입니다. 공개 데이터에는 키가 필요 없으므로 헤더를 빼거나 유효한 키를 사용하십시오.그대로 재시도하지 마십시오.
FORBIDDEN403해당 경로는 공개 API에 포함되지 않습니다(내부용 또는 계정 전용).재시도하지 마십시오.
NOT_FOUND404알 수 없는 경로이거나, 요청한 코인 / 거래소 / 펀드가 존재하지 않습니다.재시도하지 말고 경로와 식별자를 카탈로그와 대조해 확인하십시오.
RATE_LIMITED429요청 수가 분당 한도를 초과했습니다. `Retry-After`가 대기해야 할 초를 알려 줍니다.`Retry-After`만큼 기다린 뒤 백오프를 적용해 재시도하십시오.
INTERNAL500예기치 않은 서버 오류입니다. 메시지는 의도적으로 일반적인 내용만 담습니다. 신고할 때 `request_id`를 인용하십시오.몇 초 뒤 한 번 재시도하고, 계속되면 요청 ID와 함께 신고하십시오.
UPSTREAM_FAILED503이 엔드포인트의 데이터 소스가 제시간에 응답하지 않았습니다. 그 대신 만료된 수치나 대체 수치를 반환하는 일은 없습니다.백오프를 적용해 재시도하고 상태 페이지를 확인하십시오.
UNAVAILABLE501 / 503데이터셋이 일시적으로 준비되지 않았거나(캐시 워밍 중) 엔드포인트에 아직 합법적인 공개 소스가 없습니다.나중에 재시도하십시오. 설계상 사용 불가인 엔드포인트는 카탈로그에 표시되어 있습니다.
REQUEST_FAILED200일부 이전 엔드포인트는 HTTP 200에 `success: false`로 응답합니다. HTTP 상태만 보지 말고 항상 `success`를 확인하십시오.메시지에 따라 다릅니다. 실패한 요청으로 처리하십시오.

직접 실행

GET/api/meta/catalog사용 가능
파라미터

파라미터 없음.

요청 URLhttps://www.coinboss.com/api/meta/catalog
엔드포인트를 선택하고 “요청 보내기”를 누르십시오. 응답, 헤더, 소요 시간이 여기에 표시됩니다.