국내 공모주(IPO)의 수요예측·청약·상장 일정을 JSON 으로 제공합니다. 읽기 전용입니다.
← 서비스 소개로인증은 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회를 넘으면 함께 알려 주세요.
| 이름 | 기본 | 설명 |
|---|---|---|
status |
전체 |
진행 단계로 거릅니다.
수요예측예정 수요예측 청약예정
청약 상장예정 상장완료URL 인코딩이 번거로우면 영문 별칭도 됩니다: demand_upcoming demand sub_upcoming
sub listing_upcoming listed
|
limit | 20 | 최대 100. 넘기면 100으로 잘립니다. |
from | — | YYYY-MM-DD. 이 날짜 이후의 일정을 가진 종목. |
to | — | YYYY-MM-DD. 이 날짜 이전의 일정을 가진 종목. |
spac | — | false 면 스팩(기업인수목적회사) 제외. |
from/to 는 종목의 일정(수요예측·청약·환불·상장) 중
하나라도 그 기간에 걸리면 포함합니다.
페이지네이션은 없습니다. offset·page 같은
파라미터가 없고 limit 상한이 100입니다. 응답의 total 이
limit 적용 전 건수라 잘렸는지는 알 수 있으니,
total 이 100을 넘으면 from/to/status 로
범위를 좁혀 주세요.
정렬은 sub_start → demand_start → listing_date 중
처음 있는 값의 오름차순입니다(셋 다 없으면 맨 뒤).
limit 은 이 순서의 앞에서부터 자릅니다.
| 필드 | 타입 | 설명 |
|---|---|---|
version | string | 스키마 버전. 현재 "v1". |
updated_at | string|null | 데이터가 마지막으로 갱신된 시각(ISO 8601). |
count | number | 이번 응답의 항목 수. |
total | number | 필터를 통과한 전체 수(limit 적용 전). |
items | array | 아래 항목 배열. |
| 필드 | 타입 | 설명 |
|---|---|---|
id | string | 종목 고유 ID(UUID). |
corp_name | string | 종목명. |
stock_code | string|null | 종목코드. 현재 미수집이라 항상 null. |
market | string|null | KOSPI / KOSDAQ. |
is_spac | boolean | 스팩 여부. |
status | string|null | 응답 시점(KST) 기준으로 계산한 진행 단계. |
demand_start / demand_end | date|null | 수요예측 기간. |
sub_start / sub_end | date|null | 청약 기간. |
refund_date | date|null | 증거금 환불일. |
listing_date | date|null | 상장일. |
price_low / price_high | number|null | 희망공모가 밴드(원). |
price_final | number|null | 확정공모가(원). |
lead_managers | string[] | 주관사 목록. 없으면 빈 배열. |
industry | string|null | 업종명. |
ceo | string|null | 대표자. |
est_date | date|null | 설립일. |
homepage | string|null | 회사 홈페이지. |
dart_url | string|null | DART 공시 원문 링크. |
detail_url | string|null | 예약 필드. 현재 항상 null. |
subscription_brokers | string[] | 청약 가능 증권사(인수회사 포함). 주관사 목록과 다를 수 있습니다. 확정 전이면 빈 배열. 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 와 Cache-Control 이 붙습니다.
받은 ETag 를 그대로 If-None-Match 에 넣어
재요청하면 데이터가 그대로일 때 304 가 옵니다.
앞에 W/ 가 붙어 있어도 떼지 말고 받은 그대로 보내세요.
Cache-Control 은 private 입니다 — 응답이 키마다 다르므로
(X-RateLimit-*) 공유 캐시(CDN·프록시)에는 저장하지 마세요.
클라이언트 로컬 캐시는 그대로 쓰시면 됩니다.
304 는 본문 전송이 없어 빠르지만 호출 수에는 포함됩니다.
하루 몇 회 수준이면 굳이 쓰지 않아도 됩니다 — 아껴지는 것은 대역폭뿐입니다.
날짜 경계는 서버가 처리합니다. status 는 저장된 값이 아니라
응답 시점의 한국 날짜로 계산하는데, 그 날짜가 ETag 와 캐시 수명에
함께 반영됩니다. 자정을 넘기면 새 본문이 옵니다.
다만 최상위 updated_at 은 원본이 마지막으로 바뀐 시각이라
신선도 판정에는 부족합니다(수집이 하루 쉬면 어제 값 그대로입니다) —
받은 시각은 소비하는 쪽에서 따로 기록해 주세요.
모든 오류는 같은 형태입니다.
{ "error": { "code": "rate_limited", "message": "일 한도 초과. 상향은 문의: ..." } }
| 상태 | code | 뜻 |
|---|---|---|
| 400 | invalid_status 등 | 쿼리 파라미터가 잘못됨(메시지에 사용 가능한 값 포함). |
| 401 | invalid_key | 키가 없거나 무효/비활성. |
| 404 | not_found | 없는 경로. |
| 429 | rate_limited | 일 한도 초과. Retry-After 초 뒤(KST 자정) 초기화. |
| 500 | internal | 서버 오류. |
한도가 걸린 키로 호출하면 응답에 아래 헤더가 함께 옵니다. 브라우저에서도 읽을 수 있게 노출돼 있으니, 한도에 부딪히기 전에 미리 조절하는 데 쓰세요.
| 헤더 | 뜻 |
|---|---|
X-RateLimit-Limit | 이 키의 하루 한도. |
X-RateLimit-Remaining | 오늘 남은 호출 수. |
Retry-After | 429 에만 붙습니다. 몇 초 뒤에 한도가 풀리는지(=KST 자정까지). |
키에 따라 한도가 없을 수 있습니다. 그런 키에는 위 두 헤더가 붙지 않고
429 도 발생하지 않습니다 — 헤더가 없다고 오류로 처리하지 마세요.