GET사용 가능FRESH
엔드포인트 문서
단일 엔드포인트의 전체 문서: 파라미터, 실제 응답에서 생성한 필드 표, 수집된 응답 예시, 검증된 샘플, 30일 프로브 이력, 오류와 한도.
GET
/api/meta/endpoint요청
쿼리 파라미터
| 이름 | 타입 | 필수 | 기본값 | 허용 값 | 설명 |
|---|---|---|---|---|---|
| id | string | 필수 | — | — | 카탈로그의 엔드포인트 ID(예: `sd-oi`). 알 수 없는 ID는 404를 반환합니다. 예시: sd-oi |
요청 예시
curl -s "https://www.coinboss.com/api/meta/endpoint?id=sd-oi"응답 필드
필드 표는 실제 응답에서 생성되므로 엔드포인트가 반환하는 내용을 그대로 보여 줍니다. 경로에서 a[]는 배열 항목을, {*}는 코인이나 거래소처럼 동적 이름을 키로 갖는 객체를 뜻합니다.
| 필드 | 타입 | 단위 | 설명 |
|---|---|---|---|
| success | boolean | — | 요청이 성공하면 true입니다. 실패하면 본문은 `{ success: false, code, error, request_id }`입니다. |
| schema | string | — | 이 응답의 스키마 ID(`coinboss.meta.endpoint/1`). |
| now | number | ms | 응답이 생성된 서버 시각. |
| endpoint | object | — | 엔드포인트의 카탈로그 레코드. 맵 키는 `id`, `path`, `status`, `params`, `category`, `sources`, `units`, `formula`와 같은 속성 이름입니다. 동적 키: id,cat,kind,method,path,title |
| endpoint.{*} | array|number|object|string|null | — | 속성 하나의 값: 텍스트, 숫자, 목록(`params`, `required`, `ts_fields`) 또는 객체(`probe`, `category`, `example_query`). 설정되지 않았으면 null. |
| endpoint.{*}[] | object|string | — | 목록 속성의 요소: `params`에서는 파라미터 정의, `required` / `ts_fields`에서는 이름. 없을 수 있음 |
| endpoint.{*}[].name | string | — | 이름. 없을 수 있음 |
| endpoint.{*}[].in | string | — | 파라미터를 보내는 위치: `query` 또는 `path`. 없을 수 있음 |
| endpoint.{*}[].type | string | — | 유형. 없을 수 있음 |
| endpoint.{*}[].required | boolean | — | 파라미터를 반드시 보내야 하면 true. 없을 수 있음 |
| endpoint.{*}[].default | null | — | 파라미터를 생략했을 때 사용되는 값. 기본값이 없으면 null. 없을 수 있음 |
| endpoint.{*}[].enum | null | — | 허용되는 값의 목록. 파라미터가 목록으로 제한되지 않으면 null. 없을 수 있음 |
| endpoint.{*}[].min | null | — | 최솟값. 없을 수 있음 |
| endpoint.{*}[].max | null | — | 최댓값. 없을 수 있음 |
| endpoint.{*}[].example | string | — | 파라미터의 예시 값. 제공된 것이 없으면 null. 없을 수 있음 |
| endpoint.{*}[].desc | string | — | 파라미터의 설명. 없을 수 있음 |
| endpoint.{*}.checked_at | number | ms | 타임스탬프. 없을 수 있음 |
| endpoint.{*}.http | number | — | 가장 최근 프로브 요청의 HTTP 상태. 없을 수 있음 |
| endpoint.{*}.ok | boolean | — | 가장 최근 프로브 요청이 유효한 JSON 본문과 함께 HTTP 200을 반환했으면 `true`. 없을 수 있음 |
| endpoint.{*}.schema_ok | boolean | — | 프로브된 응답이 문서화된 필드 표와 일치했으면 `true`. 필드 표가 없으면 `null`. 없을 수 있음 |
| endpoint.{*}.latency_ms | number | ms | 가장 최근 프로브 요청의 응답 시간. 없을 수 있음 |
| endpoint.{*}.bytes | number | bytes | 프로브된 응답 본문의 크기. 없을 수 있음 |
| endpoint.{*}.quality | null | — | 프로브된 응답이 보고한 `meta.quality`(FRESH / PARTIAL / STALE …). 엔드포인트가 이를 보고하지 않으면 `null`. 없을 수 있음 |
| endpoint.{*}.data_age_s | number|null | s | 이벤트 후 경과한 초. 없을 수 있음 |
| endpoint.{*}.last_ok_at | number | ms | 타임스탬프. 없을 수 있음 |
| endpoint.{*}.fail_streak | number | count | 연속으로 실패한 프로브 수. 마지막 프로브가 성공했으면 0. 없을 수 있음 |
| endpoint.{*}.id | string | — | 식별자. 없을 수 있음 |
| endpoint.{*}.title | string | — | 엔드포인트가 속한 카테고리의 표시 제목(`category` 안). 없을 수 있음 |
| endpoint.{*}.coin | string | — | 코인 심볼, 대문자(예: BTC). 없을 수 있음 |
| fields | array | — | 실제 응답에서 추론한 응답의 필드 표. 생성된 표가 없으면 null. |
| fields[] | object | — | 응답 필드 하나: `path`, `type`, `unit`, `desc` 및 플래그. |
| fields[].path | string | — | 응답 내 필드의 경로: `a.b`는 중첩, `[]`는 배열 항목, `{*}`는 맵의 값을 나타냅니다. |
| fields[].type | string | — | 유형. |
| fields[].unit | string|null | — | 이 객체에 있는 값의 단위. |
| fields[].desc | string | — | 필드의 설명. 작성된 것이 없으면 null. |
| fields[].optional | boolean | — | 샘플링한 응답 중 하나 이상에서 해당 필드가 누락되었을 때 존재하며 값은 true입니다. 없을 수 있음 |
| fields[].map | boolean | — | 객체가 고정된 필드가 아니라 데이터에 따라 달라지는 키(코인, 거래소, 날짜)를 가진 맵일 때 존재하며 값은 true입니다. 없을 수 있음 |
| fields[].keys | array | — | 맵에서 관측된 키의 샘플. `map`이 true인 필드에만 있습니다. 없을 수 있음 |
| fields[].keys[] | string | — | 샘플 키 하나. 없을 수 있음 |
| fields_generated_at | number | ms | 타임스탬프. |
| fields_generated_from | array | — | 필드 표를 추론하는 데 사용한 실제 응답의 요청 URL. 표가 없으면 null. |
| fields_generated_from[] | string | — | 쿼리 문자열을 포함한 샘플 요청 경로 하나. |
| example | object | — | 프로브가 캡처한 마지막 성공 실제 응답: `request`, `captured_at`, `truncated`(줄인 배열의 원래 길이), `body`. 없으면 null. |
| example.request | string | — | 캡처된 예시를 만들어 낸 요청(경로와 쿼리 문자열). |
| example.captured_at | number | ms | 타임스탬프. |
| example.truncated | object | — | 캡처된 예시에서 줄인 부분: 배열 또는 맵마다 생략된 항목 수. 키는 문서화 대상 엔드포인트에 따라 달라집니다. |
| example.body | object | — | 문서화 대상 엔드포인트의 캡처된 응답을 줄인 것. 구조는 `fields`에 설명된 대로입니다. |
| verified_samples | object|null | — | 프로브의 추가 샘플 요청 결과(`at`, 쿼리·HTTP 상태·지연 시간·스키마 점검을 담은 `samples`). 실행된 것이 없으면 null. |
| verified_samples.at | number | ms | 추가 샘플을 마지막으로 점검한 시각. |
| verified_samples.samples | array | — | 표본 수. |
| verified_samples.samples[] | object | — | 표본 수. |
| verified_samples.samples[].query | object | — | 샘플 요청의 쿼리 파라미터. |
| verified_samples.samples[].query.coin | string | — | 코인 심볼, 대문자(예: BTC). 없을 수 있음 |
| verified_samples.samples[].http | number | — | 반환된 HTTP 상태. |
| verified_samples.samples[].ok | boolean | — | 샘플이 예상한 결과(유효한 JSON과 함께 HTTP 200, 또는 예상된 오류 상태)를 반환했으면 `true`. |
| verified_samples.samples[].latency_ms | number | ms | 샘플 요청의 응답 시간. |
| verified_samples.samples[].schema_ok | boolean|null | — | 샘플 응답이 문서화된 필드 표와 일치했으면 `true`. 점검하지 않았으면 `null`. |
| verified_samples.samples[].quality | null | — | 샘플 응답이 보고한 `meta.quality`. 보고되지 않았으면 `null`. |
| verified_samples.samples[].note | string|null | — | 비고. |
| probe_detail | null | — | 마지막 프로브에서 발견된 스키마 차이: `missing`, `mismatched`, `undocumented` 필드 경로. 없으면 null. |
| uptime_30d | object | — | 최근 30일간 이 엔드포인트의 프로브 점검: 합계, 성공률, 일별 내역. |
| uptime_30d.checks | number | count | 최근 30일간 엔드포인트의 프로브 점검 횟수(추적이 더 늦게 시작되었으면 그보다 적은 일수). |
| uptime_30d.ok | number | count | 그중 성공한 점검 횟수. |
| uptime_30d.pct | number | % | 백분율. |
| uptime_30d.days | array | — | 일별 값 또는 일수. |
| uptime_30d.days[] | object | — | 일별 값 또는 일수. |
| uptime_30d.days[].day | string | — | 달력 날짜(UTC). |
| uptime_30d.days[].checks | number | count | 해당 일의 프로브 요청 수. |
| uptime_30d.days[].ok | number | count | 해당 일의 성공한 프로브 요청 수. |
| uptime_30d.days[].pct | number | % | 백분율. |
| uptime_30d.days[].avg_ms | number | ms | 해당 일의 평균 응답 시간. 점검이 없으면 `null`. |
| uptime_30d.days[].max_ms | number | ms | 해당 일의 가장 느린 응답. |
| 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입니다. 없을 수 있음 |
| 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 | — | 코드. |
| related | array | — | 이 엔드포인트를 포함한, 같은 카테고리의 모든 엔드포인트. |
| related[] | object | — | 엔드포인트 하나: `id`, `path`, `title`. |
| related[].id | string | — | 식별자. |
| related[].path | string | — | 엔드포인트의 요청 경로. |
| related[].title | string | — | 엔드포인트의 짧은 표시 제목. |
| 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 | — | 오류 메시지(실패 시에만 존재). |
| 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:03 UTC에 실제 응답 3건으로 생성.
응답 예시
/api/meta/endpoint?id=sd-oi · 2026-11-13 03:53:45 UTC에 수집한 실제 응답. 긴 배열과 맵은 표시를 위해 줄였습니다: errors: 원래 항목 9개; fields: 원래 항목 103개; related: 원래 항목 6개; endpoint: 원래 항목 35개; uptime_30d.days: 원래 항목 3개; verified_samples.samples: 원래 항목 4개.
- "success"true
- "schema""coinboss.meta.endpoint/1"
- "now"1794542025825
- "endpoint"
- "id""sd-oi"
- "cat""open-interest"
- "fields"
- "fields_generated_at"1794438008862
- "fields_generated_from"
- "/api/sd/oi?coin=BTC"
- "/api/sd/oi?coin=ETH"
- "/api/sd/oi?coin=SOL"
- "/api/sd/oi?coin=ARKM"
- "example"
- "request""/api/sd/oi?coin=BTC"
- "captured_at"1794541954384
- "truncated"
- "body"
- "verified_samples"
- "at"1794540459506
- "samples"
- "probe_detail"
- "missing"
- "mismatched"
- "undocumented"
- "uptime_30d"
- "checks"410
- "ok"410
- "pct"100
- "days"
- "errors"
- "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"
- "related"
- "probe"
- "last_run_at"1794541726312
- "age_s"300
- "interval_s"300
- "fresh"true
- "error"null
- "meta"
- "schema""coinboss.meta.endpoint/1"
- "source"
- "observed_at"null
- "received_at"1794541954384
- "fetched_at"1794542025825
- "window""latest"
- "cache_ttl_s"30
- "quality""FRESH"
- "is_stale"false
- "fallback""field table comes from the last schema generation; example is the last successful real response"
검증된 샘플
프로브는 위 예시 외에도 아래 파라미터로 이 엔드포인트를 호출하고 매번 스키마를 검사합니다.
| 파라미터 | HTTP | 지연 시간 | 결과 |
|---|---|---|---|
| id=sd-funding | 200 | 2 ms | 통과 FRESH |
| id=liquidations-overview | 200 | 2 ms | 통과 FRESH |
| — | 400 | 2 ms | 통과 예상된 오류 반환 |
2026-11-13 03:29:26 UTC 점검
상세 정보
- 인증
- 없음. 공개 엔드포인트.
- 요청 한도
- IP당 분당 1200회
- 서버 캐시
- 30s
- 엣지 마이크로 캐시
- 10s
- 데이터 소스
- CoinBoss 엔드포인트 카탈로그, API 프로브가 생성한 스키마, sd_api_probe.
- 타임스탬프
- 필드 설명에 별도 언급이 없는 한 Unix epoch 밀리초(UTC)
- 응답 형식
- json
- 안정성
- 안정
- 제공 시작
- 2026-11-11
실시간 상태
사용 가능2026-11-13 03:53:45 UTC 점검HTTP 2004 ms스키마 일치최신 데이터 포인트: 71s 경과
최근 30일 가용성
점검 407회 중 99.75% 통과
마지막 프로브에서 감지된 스키마 드리프트
- 반환되지만 문서에 없음: probe_detail.missing, probe_detail.mismatched, probe_detail.undocumented, probe_detail.undocumented[]
오류
실패한 호출은 모든 엔드포인트에서 동일한 구조로 반환됩니다. 전체 목록은 오류 페이지에 있습니다. 오류 및 요청 한도 →
| 코드 | 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/endpoint사용 가능파라미터
string — Endpoint id from the catalog (for example `sd-oi`). Unknown ids return 404.
요청 URL
https://www.coinboss.com/api/meta/endpoint?id=sd-oi엔드포인트를 선택하고 “요청 보내기”를 누르십시오. 응답, 헤더, 소요 시간이 여기에 표시됩니다.
이 카테고리의 다른 엔드포인트
- 데이터 품질 매트릭스(수집기 관점) /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