{"openapi":"3.1.0","info":{"title":"밤사이 API","version":"1.0.0","description":"Compares Hyperliquid Korean stock perps with KRX quotes to report the premium (arbitrage) and the next opening price. All prices are in KRW (perps converted via Upbit KRW/USDC). Orders default to dryRun; live orders require a Bearer token."},"servers":[{"url":"/api"}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer"}}},"paths":{"/v1/status":{"get":{"operationId":"getStatus","summary":"Current domestic market status (regular/NXT/closed) and next open time","responses":{"200":{"description":"OK"}}}},"/v1/assets":{"get":{"operationId":"listAssets","summary":"List of supported assets","responses":{"200":{"description":"OK"}}}},"/v1/arb":{"get":{"operationId":"getArbitrage","summary":"Premium between the two markets and net arbitrage after costs","description":"premiumPct>0 means the perp is more expensive. The premium reverts to a usual level, not 0: normalPremiumPct is the median regular-session premium over the last 5 trading days and deviationPct = premiumPct − normalPremiumPct. net.netPct is the expected net return (%) on that deviation after fees, taxes, FX and funding. mode=gap means the domestic market is closed and the value is relative to the last close.","parameters":[{"name":"asset","in":"query","required":false,"schema":{"type":"string","enum":["SMSN","SKHX","HYUNDAI","SKHY","KR200","EWY","KORU"]},"description":"All assets if omitted"},{"name":"stockFeeBps","in":"query","required":false,"schema":{"type":"number"},"description":"Broker fee, one way, bp (default 1.5)"},{"name":"stockTaxBps","in":"query","required":false,"schema":{"type":"number"},"description":"Sell-side tax bp (default 20)"},{"name":"perpFeeBps","in":"query","required":false,"schema":{"type":"number"},"description":"HL taker bp (default 0.9)"},{"name":"fxFeeBps","in":"query","required":false,"schema":{"type":"number"},"description":"Upbit fee bp (default 5)"},{"name":"leverage","in":"query","required":false,"schema":{"type":"number"},"description":"Perp margin multiple (default 2)"},{"name":"holdHours","in":"query","required":false,"schema":{"type":"number"},"description":"Expected holding hours (default 1)"}],"responses":{"200":{"description":"OK"}}}},"/v1/perps":{"get":{"operationId":"listPerps","summary":"Hyperliquid state for every listed Korean product (mid, 24h-ago price, hourly funding, open interest, 24h volume, max leverage)","responses":{"200":{"description":"OK"}}}},"/v1/predict":{"get":{"operationId":"predictOpen","summary":"Forecast of the next KRX opening price (probability up, expected open, 80% band)","description":"probUp: probability the open is above the reference close. band80: 80% probability band. thin: true when Hyperliquid trades under $1M overnight (forecast less reliable). Forecast of the domestic re-open (KRX + NXT, 08:00–08:10 average) relative to the 20:00 close. backtest.followRatePct: share of re-opens since 2026-04-13 that moved the way Hyperliquid moved while the domestic market was closed (moves within ±0.05% excluded); coverage80Pct/maePct: accuracy of the expected open (walk-forward).","parameters":[{"name":"asset","in":"query","required":false,"schema":{"type":"string","enum":["SMSN","SKHX","HYUNDAI","SKHY","KR200","EWY","KORU"]},"description":"All assets if omitted"}],"responses":{"200":{"description":"OK"}}}},"/v1/convergence":{"get":{"operationId":"getConvergence","summary":"Per past re-open day (08:00): Hyperliquid move while closed vs actual re-open move, and which side converged","description":"follow: yes/no/flat (flat = either move within ±0.05%). absorptionPct: actual move / Hyperliquid move (100 = followed exactly). meetPoint over 08:00–09:00: 0 = Hyperliquid moved to the stock, 1 = stock moved to Hyperliquid. nightUsd / nightKrw: Hyperliquid volume 20:00→08:00 (KRW at that night's USDC rate). backtest.liquidRatePct: follow rate on nights with at least $1M traded.","parameters":[{"name":"asset","in":"query","required":true,"schema":{"type":"string","enum":["SMSN","SKHX","HYUNDAI","SKHY","KR200","EWY","KORU"]},"description":"SMSN/SKHX/HYUNDAI: KRX stocks (premium + prediction). SKHY: SK hynix ADR, compared with 0.1 share (premium only). KR200/EWY/KORU: Hyperliquid price only"},{"name":"limit","in":"query","schema":{"type":"integer"}}],"responses":{"200":{"description":"OK"}}}},"/v1/series":{"get":{"operationId":"getSeries","summary":"Chart series (perp and KRX candles, FX rate, premium, funding, Hyperliquid listedAt). Daily perp bars run 20:00→20:00 KST like the domestic day","parameters":[{"name":"asset","in":"query","required":true,"schema":{"type":"string","enum":["SMSN","SKHX","HYUNDAI","SKHY","KR200","EWY","KORU"]},"description":"SMSN/SKHX/HYUNDAI: KRX stocks (premium + prediction). SKHY: SK hynix ADR, compared with 0.1 share (premium only). KR200/EWY/KORU: Hyperliquid price only"},{"name":"interval","in":"query","schema":{"type":"string","enum":["1m","5m","15m","1h","1d"]}}],"responses":{"200":{"description":"OK"}}}},"/v1/orderbook":{"get":{"operationId":"getOrderbook","summary":"Perp orderbook + KRX/NXT orderbook (when KIS is connected)","parameters":[{"name":"asset","in":"query","required":true,"schema":{"type":"string","enum":["SMSN","SKHX","HYUNDAI","SKHY","KR200","EWY","KORU"]},"description":"SMSN/SKHX/HYUNDAI: KRX stocks (premium + prediction). SKHY: SK hynix ADR, compared with 0.1 share (premium only). KR200/EWY/KORU: Hyperliquid price only"}],"responses":{"200":{"description":"OK"}}}},"/v1/news":{"get":{"operationId":"getNews","summary":"Top issue per day (1 per day)","parameters":[{"name":"asset","in":"query","required":true,"schema":{"type":"string","enum":["SMSN","SKHX","HYUNDAI","SKHY","KR200","EWY","KORU"]},"description":"SMSN/SKHX/HYUNDAI: KRX stocks (premium + prediction). SKHY: SK hynix ADR, compared with 0.1 share (premium only). KR200/EWY/KORU: Hyperliquid price only"}],"responses":{"200":{"description":"OK"}}}},"/v1/flows":{"get":{"operationId":"getFlows","summary":"Net buying by investor type, program trading (KIS)","parameters":[{"name":"asset","in":"query","required":true,"schema":{"type":"string","enum":["SMSN","SKHX","HYUNDAI","SKHY","KR200","EWY","KORU"]},"description":"SMSN/SKHX/HYUNDAI: KRX stocks (premium + prediction). SKHY: SK hynix ADR, compared with 0.1 share (premium only). KR200/EWY/KORU: Hyperliquid price only"}],"responses":{"200":{"description":"OK"}}}},"/v1/orders/krx":{"post":{"operationId":"orderKrx","summary":"Domestic stock order (KIS). dryRun defaults to true","parameters":[{"name":"asset","in":"query","required":true,"schema":{"type":"string","enum":["SMSN","SKHX","HYUNDAI","SKHY","KR200","EWY","KORU"]},"description":"SMSN/SKHX/HYUNDAI: KRX stocks (premium + prediction). SKHY: SK hynix ADR, compared with 0.1 share (premium only). KR200/EWY/KORU: Hyperliquid price only"}],"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["side","qty"],"properties":{"side":{"enum":["buy","sell"]},"qty":{"type":"integer"},"price":{"type":"number","description":"Market order if omitted"},"exchange":{"enum":["KRX","NXT","SOR"]},"dryRun":{"type":"boolean","default":true}}}}}},"responses":{"200":{"description":"OK"}}}},"/v1/orders/perp":{"post":{"operationId":"orderPerp","summary":"Hyperliquid perp order (server agent wallet). dryRun defaults to true, testnet by default","parameters":[{"name":"asset","in":"query","required":true,"schema":{"type":"string","enum":["SMSN","SKHX","HYUNDAI","SKHY","KR200","EWY","KORU"]},"description":"SMSN/SKHX/HYUNDAI: KRX stocks (premium + prediction). SKHY: SK hynix ADR, compared with 0.1 share (premium only). KR200/EWY/KORU: Hyperliquid price only"}],"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["side","size"],"properties":{"side":{"enum":["buy","sell"]},"size":{"type":"number","description":"Contracts (1 = 1 share)"},"price":{"type":"number","description":"IOC market order if omitted"},"leverage":{"type":"integer"},"reduceOnly":{"type":"boolean"},"network":{"enum":["testnet","mainnet"],"default":"testnet"},"dryRun":{"type":"boolean","default":true}}}}}},"responses":{"200":{"description":"OK"}}}},"/v1/orders/pair":{"post":{"operationId":"orderPair","summary":"Arbitrage pair order (perp on one side + stock on the opposite side, same size)","parameters":[{"name":"asset","in":"query","required":true,"schema":{"type":"string","enum":["SMSN","SKHX","HYUNDAI","SKHY","KR200","EWY","KORU"]},"description":"SMSN/SKHX/HYUNDAI: KRX stocks (premium + prediction). SKHY: SK hynix ADR, compared with 0.1 share (premium only). KR200/EWY/KORU: Hyperliquid price only"}],"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["notionalKrw","direction"],"properties":{"notionalKrw":{"type":"number"},"direction":{"enum":["perp_short_stock_long","perp_long_stock_short"]},"network":{"enum":["testnet","mainnet"]},"dryRun":{"type":"boolean","default":true}}}}}},"responses":{"200":{"description":"OK"}}}},"/v1/account/krx":{"get":{"operationId":"krxAccount","summary":"Domestic brokerage balance (only when live orders are enabled)","security":[{"bearer":[]}],"responses":{"200":{"description":"OK"}}}},"/v1/account/perp":{"get":{"operationId":"perpAccount","summary":"HL positions and open orders (xyz dex)","parameters":[{"name":"user","in":"query","schema":{"type":"string"}},{"name":"network","in":"query","schema":{"enum":["testnet","mainnet"]}}],"responses":{"200":{"description":"OK"}}}}}}