Upbit read api
Use when adding, reviewing, or debugging Upbit read-only market data integrations, limited to current ticker prices, ticker lists by quote currency, and candle OHLCV data. Includes endpoint selection, response field mapping, and Upbit rate-limit handling. Do not use for orders, accounts, deposits, withdrawals, authenticated Exchange APIs, or trading automation.From its SKILL.md
npx -y skills add dd3ok/upbit-read-api-skill --skill upbit-read-apiAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
7.0 KB, ~1.7k tokens by cl100k_base, as published. Nobody here has run it
Upbit Read API
Mission
Implement or inspect read-only Upbit market-data integrations for:
- current price / ticker snapshots
- ticker lists by quote currency
- candles / OHLCV for chart analysis
Keep the integration read-only. Do not add order, account, deposit, withdrawal, Travel Rule, API-key, or authenticated Exchange API behavior under this skill.
Preferred Approach
Use a thin httpx or equivalent HTTP adapter unless the task explicitly requires the official SDK.
- These APIs are simple unauthenticated REST
GETendpoints. - Avoid adding
upbit-sdkonly for ticker/candle reads if a project already has an HTTP client. - Normalize Upbit responses into local DTOs before passing data to chart, indicator, or briefing services.
Use the official SDK only when the user asks for SDK adoption, typed SDK models, or a wider Upbit integration beyond these read APIs.
Base URLs
For Korea/Upbit KR:
https://api.upbit.com
For global regions:
- Singapore:
https://sg-api.upbit.com - Indonesia:
https://id-api.upbit.com - Thailand:
https://th-api.upbit.com
Use market codes in {QUOTE}-{BASE} form, for example KRW-BTC, BTC-ETH, USDT-BTC.
Supported Endpoints
Trading Pair List
Use this when the integration needs the supported market universe.
GET /v1/market/all- Optional params:
is_details=truewhen warning/detail fields are needed
- Key fields:
marketkorean_nameenglish_namemarket_warning
Current Prices By Pair
Use this when the integration already has specific market codes.
GET /v1/ticker- Params:
markets=KRW-BTC,KRW-ETH
- Key fields:
markettrade_priceopening_pricehigh_pricelow_priceprev_closing_pricechangechange_pricechange_ratesigned_change_pricesigned_change_ratetrade_volumeacc_trade_priceacc_trade_price_24hacc_trade_volumeacc_trade_volume_24htrade_timestamptimestamp
Map trade_price to current/close price. Map acc_trade_price_24h or acc_trade_price to trading value depending on the requested horizon.
Ticker List By Quote Currency
Use this when the integration needs all tickers under one or more quote markets.
GET /v1/ticker/all- Params:
- Korean API:
quote_currencies=KRW,BTC,USDT - Some older English docs use
quoteCurrencies; preferquote_currenciesfor current Korean/global docs.
- Korean API:
- Response fields are ticker snapshot fields, same shape as
/v1/ticker.
Prefer this over calling /v1/ticker repeatedly for every pair in a quote market.
Candles
Use candles as the input for chart analysis and local indicator calculation.
- Seconds:
GET /v1/candles/seconds - Minutes:
GET /v1/candles/minutes/{unit} - Days:
GET /v1/candles/days - Weeks:
GET /v1/candles/weeks - Months:
GET /v1/candles/months - Years:
GET /v1/candles/years
Minute units:
1,3,5,10,15,30,60,240
Common params:
market=KRW-BTCcount=200maximum per request for recent candlesto=<ISO datetime>for pagination/backfill before a cutoff
Key fields:
marketcandle_date_time_utccandle_date_time_kstopening_pricehigh_pricelow_pricetrade_pricecandle_acc_trade_pricecandle_acc_trade_volumetimestampunitfor minute candles
Map opening_price, high_price, low_price, trade_price, and candle_acc_trade_volume into OHLCV bars. Treat candle_acc_trade_price as candle trading value.
Candle Caveats
- Candles are generated only when trades occurred in that interval.
- Missing intervals are expected and should not be filled silently unless the target analysis explicitly defines a fill policy.
- 1-second candle data has limited retention; current docs state up to 3 months.
- For
toparams containing+,:, or spaces, rely on HTTP-client params encoding instead of manually concatenating query strings.
Rate Limits
Upbit applies second-based rate limits by Rate Limit group.
Read-only Quotation REST APIs are measured by IP. The relevant groups are:
market: trading pair list, up to 10 requests/secticker:/v1/tickerand/v1/ticker/all, up to 10 requests/seccandle: all candle endpoints, up to 10 requests/sec
Important handling rules:
- Limits are shared within the same group. For example
/v1/tickerand/v1/ticker/allboth spend fromticker. - Check the
Remaining-Reqresponse header after every request. - Header shape:
group=ticker; min=1800; sec=9 - Treat
secas the remaining requests in the current second. Ignoremin; official docs mark it as deprecated/fixed. - On HTTP
429, back off immediately. - Repeated limit violations can return HTTP
418with a temporary IP/account block; stop requests until the block duration passes. - Requests with an
Originheader can be subject to a stricter policy for Quotation REST/WebSocket requests. Do not send browser-likeOriginheaders from server-side clients.
Recommended defaults:
- Use one shared limiter per process and per group:
market,ticker,candle. - Cap each group at 8 requests/sec locally, not 10, to leave headroom for concurrent jobs.
- Batch pairs in
/v1/ticker?markets=...and use/v1/ticker/allfor quote-market sweeps. - For candle backfills, page sequentially with
toand obey thecandlelimiter. - Log
Remaining-Req, status code, endpoint group, and market code, but never log credentials or unrelated private data.
Implementation Checklist
- Keep the client unauthenticated and read-only.
- Choose the narrowest endpoint:
- exact pairs:
/v1/ticker - all pairs under quote market:
/v1/ticker/all - chart bars: candle endpoint by interval
- exact pairs:
- Validate market code format before calling the API.
- Use an HTTP client with structured query params.
- Normalize Upbit field names at the adapter boundary.
- Preserve raw payload only if the target project's retention policy allows it.
- Enforce group-aware rate limiting and parse
Remaining-Req. - Do not compute indicators in the API client. Compute them after candle normalization.
Official References
- Upbit Developer Center:
https://docs.upbit.com/kr - Rate limits:
https://docs.upbit.com/kr/reference/rate-limits - Trading pair list:
https://global-docs.upbit.com/reference/listing-market-list - Tickers by pair:
https://global-docs.upbit.com/reference/tickers - Tickers by quote currency:
https://docs.upbit.com/kr/reference/tickers_by_quote - Minute candles:
https://global-docs.upbit.com/reference/list-candles-minutes - REST best practices:
https://global-docs.upbit.com/docs/rest-api-best-practice
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.