퀵스타트

첫 요청을 보내고 응답을 읽는 방법.

현재 거래정지 가져오기

curl https://upcuit.com/api/v1/halts

응답 구조

{ data, meta } 형태입니다. data는 거래정지 목록, meta는 신선도 정보를 담습니다.

{
  "api_version": 1,
  "data": [
    {
      "symbol": "ABCD",
      "name": "Example Corp",
      "market": "NASDAQ",
      "status": "halted",
      "reasons": [{ "code": "LUDP", "title": "Volatility Trading Pause" }],
      "pause_threshold_price": 12.34,
      "halted_at": "2026-06-11T13:30:05-04:00",
      "halted_at_epoch_ms": 1781112605000,
      "halted_at_local": { "date": "06/11/2026", "time": "13:30:05", "tz": "America/New_York" },
      "resumed_at": null,
      "resumed_at_epoch_ms": null,
      "resumed_at_local": null,
      "quote_resumed_at": null,
      "quote_resumed_at_epoch_ms": null
    }
  ],
  "meta": {
    "generated_at": "2026-06-11T17:30:08Z",
    "fetched_at": "2026-06-11T17:30:06Z",
    "data_changed_at": "2026-06-11T17:29:55Z",
    "data_age_ms": 2000,
    "stale": false,
    "count": 1,
    "source": "nasdaq"
  }
}

조건부 요청

목록 응답에는 ETag가 포함됩니다. 다시 보내면 변경이 없을 때 본문 전송을 건너뜁니다.

curl -H 'If-None-Match: "v1-..."' https://upcuit.com/api/v1/halts   # 변경 없음 -> 304

폴링

약 3초보다 자주 폴링하지 마세요. 응답은 엣지 캐시되므로 더 자주 요청해도 동일한 데이터를 받습니다. 신선도는 meta.stalemeta.data_age_ms로 판단하세요.