关于 tossinvest-skill
tossinvest-skill 提供使用 Toss Securities Open API 的指南和命令行工具,面向 API 开发者及账户操作人员。它附带官方 API 参考资料,并为实时订单变更设置执行保护。
主要功能
- 01用于认证和查询端点的命令行工具
- 02访问市场、账户和订单数据
- 03通过 REST 请求调用支持的端点
- 04模拟运行及受保护的实时订单操作
- 05速率限制重试和响应处理
适用场景
- 01查询股票价格和市场数据
- 02查看账户持仓和订单历史
- 03通过明确的执行标志创建或管理订单
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ beoks/ tossinvest-skill --skill tossinvest-skill安装后在 Claude Code 中输入/tossinvest-skill确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
.gitignoreREADME.mdagents/openai.yamlreferences/current-api.mdapi-reference-index.mdworkflows.mdofficial-overview.mdasyncapi.jsonopenapi.jsonscripts/tossinvest.pyscripts/tests/test_tossinvest.py详细介绍
Toss Securities Open API
概述
使用此技能构建或操作 Toss Securities Open API。随附的参考资料保留了官方 OpenAPI 源文件,scripts/tossinvest.py 则提供确定性的 CLI,用于身份验证、市场数据、账户数据、订单历史记录、订单信息,以及由用户委托的自主订单变更。
来源选择
- 随附的官方参考资料于 2026-09-08 更新(OpenAPI 1.2.14)。这些资料是一个快照;如需了解未来的 API 变更,请再次查看官方来源。
- 阅读
references/current-api.md,了解新增的 REST API、更新后的订单规则和 WebSocket 路由。CLI 可通过request支持新的 REST 端点;但它不实现 WebSocket 客户端。 - 阅读
references/asyncapi.json,了解准确的实时订阅和消息架构。 - 阅读
references/workflows.md,了解任务路由、端点分组、安全规则、速率限制和常见工作流。 - 当需要了解确切的请求参数、架构、枚举值、示例或响应封装时,阅读
references/openapi.json。 - 阅读
references/official-overview.md,了解官方快速入门、速率限制模型和错误模型。 - 阅读
references/api-reference-index.md,查找官方的各 API 和模型 Markdown 页面。
凭据
使用 TOSS_API_KEY 作为 OAuth 客户端 ID,使用 TOSS_SECRET_KEY 作为 OAuth 客户端密钥。存在以下别名时也接受:TOSSINVEST_CLIENT_ID、TOSS_CLIENT_ID、TOSSINVEST_CLIENT_SECRET 和 TOSS_CLIENT_SECRET。随附的 CLI 会先读取进程环境变量,再回退到 ~/.zshrc、~/.zprofile 或 ~/.profile 中的简单赋值。
更改 shell 凭据后,请在调用进程中重新加载,或启动新的 shell:继承的环境变量优先于 shell 文件回退值。遇到 invalid_client 时,检查配置的客户端 ID/密钥;遇到 403 时,检查 WTS Open API 允许的 IP 列表。不要反复重新获取令牌来排查授权错误。
切勿打印密钥。除非用户明确需要将完整访问令牌用于外部工具,否则避免打印;默认情况下,scripts/tossinvest.py token 会对令牌进行脱敏。
CLI 快速入门
在技能目录中运行:
python3 scripts/tossinvest.py list-endpoints
python3 scripts/tossinvest.py token
python3 scripts/tossinvest.py stocks --symbols 005930,AAPL
python3 scripts/tossinvest.py prices --symbols 005930,AAPL
python3 scripts/tossinvest.py accounts
账户、资产、订单历史记录和订单信息 API 需要账户序号:
python3 scripts/tossinvest.py holdings --account 1
python3 scripts/tossinvest.py buying-power --account 1 --currency KRW
python3 scripts/tossinvest.py orders --account 1 --status OPEN
为方便起见,可设置 TOSSINVEST_ACCOUNT、TOSS_ACCOUNT 或 TOSS_ACCOUNT_SEQ,然后省略 --account。
交易操作
将通过 request 执行的 create-order、modify-order、cancel-order 以及条件订单的创建、修改和取消视为会产生实际金融影响的操作。条件订单可能在 Agent 未运行时于之后触发交易;授权必须涵盖此行为及其到期时间。
- 当用户以自然语言委托自主交易时,将此委托视为允许在指令有效期间反复执行买入、卖出、修改和取消操作。委托执行期间无需逐笔订单重新确认。
- 使用当前账户状态、市场时段、购买力、可卖数量、警告、费用、价格、订单簿、成交记录和 K 线数据来决定每次实际变更。
- 实际变更前优先立即进行一次试运行,以验证确切的请求正文;如果该操作仍符合委托目标且当前市场数据仍然适用,则自主执行同一操作。
- 执行实际变更后,检查订单状态,并在适当时继续委托循环:等待、修改、取消、下达后续订单,或以简短报告结束。
- 执行实际订单变更时,必须同时指定
--execute和--yes。 - 创建订单时优先使用
--client-order-id。除非同时提供--allow-no-client-order-id,否则 CLI 会阻止缺少此参数的实际create-order调用。
试运行示例:
python3 scripts/tossinvest.py create-order --account 1 --symbol 005930 --side BUY --order-type LIMIT --quantity 1 --price 70000 --client-order-id test-001
实际执行示例:
python3 scripts/tossinvest.py create-order --account 1 --symbol 005930 --side BUY --order-type LIMIT --quantity 1 --price 70000 --client-order-id test-001 --execute --yes
响应处理
预期成功的非身份验证响应使用包含 result 的通用 JSON 信封。OAuth 令牌响应使用 OAuth2 格式。发生错误时,记录 HTTP 状态、X-Request-Id,并在其不可用时使用 referenceId、x-amz-cf-id 或旧版 cf-ray 作为备用值,同时记录 Toss 错误代码、消息、数据及速率限制标头。
CLI 会自动处理两种失败情况:
- 使用缓存令牌时遇到 401:重新获取令牌一次并重试。每个客户端只能有一个有效访问令牌,因此其他进程获取令牌会在不提示的情况下使缓存失效。
- 遇到 429:最多重试
--max-retries次(默认值为 2,或使用TOSSINVEST_MAX_RETRIES),并根据Retry-After或X-RateLimit-Reset等待,同时加入随机抖动。传入--max-retries 0可禁用重试。
不使用 CLI 调用 API 时,请实现相同的行为。list-endpoints 会报告每个端点的 rateLimitGroup——按组控制循环请求速率,并在 X-RateLimit-Remaining 降至零之前密切关注。
CLI 会解码 gzip 响应。如果订单结果无法确定,请先检查订单状态再重试,并在 10 分钟的有效窗口内保留相同的请求正文和 clientOrderId;如果无法核对结果,请停止操作。