Skip to content

nbsp1221/tossinvest-openapi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

8 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

tossinvest-openapi

CI npm version PyPI version License: MIT Toss Securities OpenAPI

ํ† ์Šค์ฆ๊ถŒ Open API๋ฅผ ์œ„ํ•œ ๋น„๊ณต์‹ SDK ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค. TypeScript SDK๋Š” npm ํŒจํ‚ค์ง€๋กœ, Python SDK๋Š” PyPI ํŒจํ‚ค์ง€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Note

์ด ํ”„๋กœ์ ํŠธ๋Š” ํ† ์Šค์ฆ๊ถŒ ๊ณต์‹ OpenAPI ๋ฌธ์„œ์— ๊ณต๊ฐœ๋œ ์—”๋“œํฌ์ธํŠธ๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ† ์Šค์ฆ๊ถŒ ๋˜๋Š” ๋น„๋ฐ”๋ฆฌํผ๋ธ”๋ฆฌ์นด๊ฐ€ ๊ณต์‹ ์ œ๊ณตํ•˜๊ฑฐ๋‚˜ ๋ณด์ฆํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

English

๋น ๋ฅธ ์‹œ์ž‘

TypeScript SDK๋Š” npm ํŒจํ‚ค์ง€๋กœ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

npm install tossinvest-openapi
# or
pnpm add tossinvest-openapi
import { TossInvestClient } from "tossinvest-openapi";

const client = new TossInvestClient({
  clientId: process.env.TOSS_INVEST_CLIENT_ID!,
  clientSecret: process.env.TOSS_INVEST_CLIENT_SECRET!,
});

const accounts = await client.getAccounts();
const prices = await client.getPrices({ symbols: "005930,AAPL" });

console.log({
  accountCount: accounts.length,
  priceCount: prices.length,
});

Python SDK๋Š” PyPI ํŒจํ‚ค์ง€๋กœ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

pip install tossinvest-openapi
from tossinvest_openapi import TossInvestClient

with TossInvestClient(
    client_id="...",
    client_secret="...",
) as client:
    accounts = client.get_accounts()
    prices = client.get_prices(symbols="005930,AAPL")

Warning

clientSecret / client_secret์€ ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ํ™˜๊ฒฝ์—์„œ๋งŒ ์‚ฌ์šฉํ•˜์„ธ์š”. ๋ธŒ๋ผ์šฐ์ €, ๋ชจ๋ฐ”์ผ ์•ฑ, ๊ณต๊ฐœ ์ €์žฅ์†Œ, ํด๋ผ์ด์–ธํŠธ ๋ฒˆ๋“ค์— ํฌํ•จํ•˜๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค.

ํŒจํ‚ค์ง€ ์ƒํƒœ

ํŒจํ‚ค์ง€ ์ƒํƒœ ์„ค๋ช…
TypeScript ์‚ฌ์šฉ ๊ฐ€๋Šฅ, 0.x ๊ณต์‹ OpenAPI 1.1.1์˜ ๊ณ„์ขŒ, ์‹œ์„ธ, ์ฃผ๋ฌธ API๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
Python ์‚ฌ์šฉ ๊ฐ€๋Šฅ, 0.x sync client๋กœ ๊ณ„์ขŒ, ์‹œ์„ธ, ์ฃผ๋ฌธ API๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
OpenAPI 1.1.1 ๊ธฐ์ค€ ๊ณต์‹ OpenAPI ๋ฌธ์„œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํƒ€์ž…๊ณผ ๋ฉ”์„œ๋“œ๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

์ง€์› ๋ฒ”์œ„

SDK๋Š” Toss Securities OpenAPI 1.1.1 ๋ฌธ์„œ์˜ ์ฃผ์š” API๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์˜์—ญ ์ง€์›
OAuth2 Client Credentials ์ธ์ฆ ์ง€์›
๊ณ„์ขŒ ๋ชฉ๋ก/์ž”๊ณ /๋ณด์œ  ์ข…๋ชฉ ์ง€์›
๊ตญ๋‚ด/ํ•ด์™ธ ์‹œ์„ธ ์กฐํšŒ ์ง€์›
์ฃผ๋ฌธ ๊ฐ€๋Šฅ ๊ธˆ์•ก/๋งค๋„ ๊ฐ€๋Šฅ ์ˆ˜๋Ÿ‰/์ˆ˜์ˆ˜๋ฃŒ ์‚ฌ์ „ ํ™•์ธ ์ง€์›
์ฃผ๋ฌธ ์ƒ์„ฑ/์ •์ •/์ทจ์†Œ ์ง€์›
์ฃผ๋ฌธ ๋ชฉ๋ก/์ƒ์„ธ ์กฐํšŒ ์ง€์›
WebSocket/์‹ค์‹œ๊ฐ„ streaming ๋ฏธ์ง€์›

์ž์„ธํ•œ ์‚ฌ์šฉ๋ฒ•์€ TypeScript package README์™€ Python package README๋ฅผ ํ™•์ธํ•˜์„ธ์š”.

์™œ ์ด SDK๋ฅผ ์“ฐ๋‚˜์š”?

  • ๊ณต์‹ Toss Securities Open API ์Šคํ‚ค๋งˆ์—์„œ ํŒŒ์ƒ๋œ TypeScript/Python ํƒ€์ž…์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • OAuth2 Client Credentials ์ธ์ฆ์„ SDK๊ฐ€ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  • ๊ธฐ๋ณธ ์‘๋‹ต์€ result๋ฅผ unwrapํ•˜๊ณ , ํ•„์š”ํ•˜๋ฉด ์›๋ณธ ์‘๋‹ต๊ณผ HTTP metadata๋„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ฃผ๋ฌธ API๋Š” ๋ช…์‹œ์ ์œผ๋กœ ๋…ธ์ถœํ•˜๋˜ state-changing operation์œผ๋กœ ๋‹ค๋ฃน๋‹ˆ๋‹ค.
  • reverse engineered API, private Toss app/web API, ๋น„๊ณต๊ฐœ ์—”๋“œํฌ์ธํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Examples

๊ฐœ๋ฐœ

ํ•„์š”ํ•œ ๋„๊ตฌ๋Š” mise๋กœ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

mise install
mise run install
mise run check

๋ฆด๋ฆฌ์ฆˆ

TypeScript ํŒจํ‚ค์ง€๋Š” npm์— tossinvest-openapi๋กœ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค. Python ํŒจํ‚ค์ง€๋Š” PyPI์— tossinvest-openapi๋กœ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค. ๋ฒ„์ „๋ณ„ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ CHANGELOG๋ฅผ ํ™•์ธํ•˜์„ธ์š”.

๋ณด์•ˆ

credential, access token, ๊ณ„์ขŒ ์ •๋ณด, ์ฃผ๋ฌธ payload๋ฅผ public issue์— ์˜ฌ๋ฆฌ์ง€ ๋งˆ์„ธ์š”. ๋ณด์•ˆ ์ด์Šˆ๋Š” SECURITY๋ฅผ ๋”ฐ๋ผ ๋ณด๊ณ ํ•˜์„ธ์š”.

๊ธฐ์—ฌ

๊ฐœ๋ฐœ ํ™˜๊ฒฝ, ๊ฒ€์ฆ ๋ช…๋ น, ๋ฌธ์„œ ๊ทœ์น™์€ CONTRIBUTING์„ ํ™•์ธํ•˜์„ธ์š”.

๋งํฌ

About

๐Ÿ“ˆ Unofficial SDK for Toss Securities Open API

Topics

Resources

License

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Packages

 
 
 

Contributors