공모주 달력 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회를 넘으면 함께 알려 주세요.

[email protected]

쿼리 파라미터 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 는 종목의 일정(수요예측·청약·환불·상장) 중 하나라도 그 기간에 걸리면 포함합니다.

응답 최상위 · 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.

날짜는 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
    }
  ]
}
캐시 ETag · 304

응답에 ETagCache-Control: public, s-maxage=3600 이 붙습니다. If-None-Match 로 재요청하면 데이터가 그대로일 때 304 가 옵니다 (본문 전송이 없어 빠릅니다. 단, 호출 수에는 포함됩니다).

오류 400 · 401 · 404 · 429 · 500

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

{ "error": { "code": "rate_limited", "message": "일 한도 초과. 상향은 문의: ..." } }
상태code
400invalid_status쿼리 파라미터가 잘못됨(메시지에 사용 가능한 값 포함).
401invalid_key키가 없거나 무효/비활성.
404not_found없는 경로.
429rate_limited일 한도 초과. Retry-After 초 뒤(KST 자정) 초기화.
500internal서버 오류.
이용 조건 출처 표기 · 한도 · 면책
  1. 출처 표기 필수 — 데이터를 노출하는 화면·콘텐츠에 "공모주 달력(newkstock.com)"을 밝혀 주세요.
  2. 무료 키는 하루 100회 — 그 이상이 필요하면 위 키 요청 주소로 문의해 주세요.
  3. 사전 고지 후 변경·중단될 수 있습니다 — 스키마 변경은 필드 추가 위주이며, 호환 불가한 변경은 새 버전(/v2)으로 냅니다.
  4. 투자 판단 책임 없음 — 공개 공시를 가공한 정보이며 정확성을 보증하지 않습니다. 투자 자문이 아닙니다.