공모주 달력 API v1

국내 공모주(IPO)의 수요예측·청약·상장 일정을 JSON 으로 제공합니다. 읽기 전용입니다.

← 서비스 소개로

엔드포인트

GEThttps://squvwhyjaiyqtxnqmdlz.supabase.co/functions/v1/api_v1/upcoming-ipos

인증은 X-API-Key 헤더로 합니다. 키가 없거나 무효면 401 입니다.

빠른 시작

청약 진행 중인 종목

curl -s -H "X-API-Key: $NKS_API_KEY" \
  "https://squvwhyjaiyqtxnqmdlz.supabase.co/functions/v1/api_v1/upcoming-ipos?status=sub&limit=5"

필터·응답 필드·오류 형식은 아래 섹션을 펼쳐서 보세요.

키 요청

아래 주소로 서비스명사용 목적을 적어 보내 주시면 키를 발급해 드립니다. 예상 호출량이 하루 100회를 넘으면 함께 알려 주세요.

data.olivet@gmail.com

쿼리 파라미터 status · limit · from · to · spac
이름기본설명
status 전체 진행 단계로 거릅니다. 수요예측예정 수요예측 청약예정 청약 상장예정 상장완료
URL 인코딩이 번거로우면 영문 별칭도 됩니다: demand_upcoming demand sub_upcoming sub listing_upcoming listed
limit20최대 100. 넘기면 100으로 잘립니다.
fromYYYY-MM-DD. 이 날짜 이후의 일정을 가진 종목.
toYYYY-MM-DD. 이 날짜 이전의 일정을 가진 종목.
spacfalse 면 스팩(기업인수목적회사) 제외.

from/to 는 종목의 일정(수요예측·청약·환불·상장) 중 하나라도 그 기간에 걸리면 포함합니다.

페이지네이션은 없습니다. offset·page 같은 파라미터가 없고 limit 상한이 100입니다. 응답의 totallimit 적용 건수라 잘렸는지는 알 수 있으니, total 이 100을 넘으면 from/to/status 로 범위를 좁혀 주세요.

정렬은 sub_startdemand_startlisting_date 중 처음 있는 값의 오름차순입니다(셋 다 없으면 맨 뒤). limit 은 이 순서의 앞에서부터 자릅니다.

응답 최상위 · items[] · 호환성

최상위

필드타입설명
versionstring스키마 버전. 현재 "v1".
updated_atstring|null데이터가 마지막으로 갱신된 시각(ISO 8601).
countnumber이번 응답의 항목 수.
totalnumber필터를 통과한 전체 수(limit 적용 전).
itemsarray아래 항목 배열.

items[]

필드타입설명
idstring종목 고유 ID(UUID).
corp_namestring종목명.
stock_codestring|null종목코드. 현재 미수집이라 항상 null.
marketstring|nullKOSPI / KOSDAQ.
is_spacboolean스팩 여부.
statusstring|null응답 시점(KST) 기준으로 계산한 진행 단계.
demand_start / demand_enddate|null수요예측 기간.
sub_start / sub_enddate|null청약 기간.
refund_datedate|null증거금 환불일.
listing_datedate|null상장일.
price_low / price_highnumber|null희망공모가 밴드(원).
price_finalnumber|null확정공모가(원).
lead_managersstring[]주관사 목록. 없으면 빈 배열.
industrystring|null업종명.
ceostring|null대표자.
est_datedate|null설립일.
homepagestring|null회사 홈페이지.
dart_urlstring|nullDART 공시 원문 링크.
detail_urlstring|null예약 필드. 현재 항상 null.
subscription_brokersstring[]청약 가능 증권사(인수회사 포함). 주관사 목록과 다를 수 있습니다. 확정 전이면 빈 배열. 2026-09 추가.

날짜는 YYYY-MM-DD 문자열입니다. 미정·미수집 값은 필드를 빼지 않고 null 로 옵니다.

호환성

필드는 추가될 수 있습니다. 모르는 필드는 무시하도록 만들어 주세요. 기존 필드를 삭제하거나 이름·타입을 바꾸지 않습니다. 그런 변경이 필요하면 /v2 를 새로 냅니다.

예시 기간 조회 · 응답 형태

이번 달 일정 (스팩 제외)

curl -s -H "X-API-Key: $NKS_API_KEY" \
  "https://squvwhyjaiyqtxnqmdlz.supabase.co/functions/v1/api_v1/upcoming-ipos?from=2026-09-01&to=2026-09-30&spac=false&limit=100"

응답 예

{
  "version": "v1",
  "updated_at": "2026-08-24T00:05:12.481Z",
  "count": 1,
  "total": 3,
  "items": [
    {
      "id": "0f8c...",
      "corp_name": "케이스타반도체",
      "stock_code": null,
      "market": "KOSDAQ",
      "is_spac": false,
      "status": "청약",
      "demand_start": "2026-08-10",
      "demand_end": "2026-08-11",
      "sub_start": "2026-08-17",
      "sub_end": "2026-08-18",
      "refund_date": "2026-08-20",
      "listing_date": "2026-08-27",
      "price_low": 14000,
      "price_high": 16000,
      "price_final": 16000,
      "lead_managers": ["한국투자증권", "NH투자증권"],
      "industry": "전자부품·컴퓨터·영상·음향 및 통신장비 제조업",
      "ceo": "김상우",
      "est_date": "2015-03-12",
      "homepage": "https://kstar-semi.co.kr",
      "dart_url": "https://dart.fss.or.kr/dsaf001/main.do?rcpNo=2026...",
      "detail_url": null,
      "subscription_brokers": ["한국투자증권", "NH투자증권", "유안타증권"]
    }
  ]
}
캐시 ETag · 304

응답에 ETagCache-Control 이 붙습니다. 받은 ETag그대로 If-None-Match 에 넣어 재요청하면 데이터가 그대로일 때 304 가 옵니다. 앞에 W/ 가 붙어 있어도 떼지 말고 받은 그대로 보내세요.

Cache-Controlprivate 입니다 — 응답이 키마다 다르므로 (X-RateLimit-*) 공유 캐시(CDN·프록시)에는 저장하지 마세요. 클라이언트 로컬 캐시는 그대로 쓰시면 됩니다.

304 는 본문 전송이 없어 빠르지만 호출 수에는 포함됩니다. 하루 몇 회 수준이면 굳이 쓰지 않아도 됩니다 — 아껴지는 것은 대역폭뿐입니다.

날짜 경계는 서버가 처리합니다. status 는 저장된 값이 아니라 응답 시점의 한국 날짜로 계산하는데, 그 날짜가 ETag 와 캐시 수명에 함께 반영됩니다. 자정을 넘기면 새 본문이 옵니다.

다만 최상위 updated_at원본이 마지막으로 바뀐 시각이라 신선도 판정에는 부족합니다(수집이 하루 쉬면 어제 값 그대로입니다) — 받은 시각은 소비하는 쪽에서 따로 기록해 주세요.

오류 400 · 401 · 404 · 429 · 500 · 잔여 호출량 헤더

모든 오류는 같은 형태입니다.

{ "error": { "code": "rate_limited", "message": "일 한도 초과. 상향은 문의: ..." } }
상태code
400invalid_status쿼리 파라미터가 잘못됨(메시지에 사용 가능한 값 포함).
401invalid_key키가 없거나 무효/비활성.
404not_found없는 경로.
429rate_limited일 한도 초과. Retry-After 초 뒤(KST 자정) 초기화.
500internal서버 오류.

잔여 호출량 헤더

한도가 걸린 키로 호출하면 응답에 아래 헤더가 함께 옵니다. 브라우저에서도 읽을 수 있게 노출돼 있으니, 한도에 부딪히기 전에 미리 조절하는 데 쓰세요.

헤더
X-RateLimit-Limit이 키의 하루 한도.
X-RateLimit-Remaining오늘 남은 호출 수.
Retry-After429 에만 붙습니다. 몇 초 뒤에 한도가 풀리는지(=KST 자정까지).

키에 따라 한도가 없을 수 있습니다. 그런 키에는 위 두 헤더가 붙지 않고 429 도 발생하지 않습니다 — 헤더가 없다고 오류로 처리하지 마세요.

이용 조건 출처 표기 · 한도 · 면책
  1. 출처 표기 필수 — 데이터를 노출하는 화면·콘텐츠에 "공모주 달력(newkstock.com)"을 밝혀 주세요.
  2. 무료 키는 하루 100회 — 그 이상이 필요하면 위 키 요청 주소로 문의해 주세요.
  3. 사전 고지 후 변경·중단될 수 있습니다 — 스키마 변경은 필드 추가 위주이며, 호환 불가한 변경은 새 버전(/v2)으로 냅니다.
  4. 투자 판단 책임 없음 — 공개 공시를 가공한 정보이며 정확성을 보증하지 않습니다. 투자 자문이 아닙니다.