Not in the top 1,000 by GitHub stars

Sinotrade/Shioaji

Shioaji all new cross platform api for trading ( 跨平台證券交易API )

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

plugins/shioaji/skills/shioaji/SKILL.md

Week of Nov 2, 2026 · +14 / −1 lines

Before Not checked yet → After Network or broad shell

7ebda6c9385c → 3c82ff44694a

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → 7ebda6c9385c

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit 3c82ff44694ad7d1ba9d8c1f3ad7f4d4a3b237c5

git clone --filter=blob:none --no-checkout https://github.com/Sinotrade/Shioaji.git .hotskills/sinotrade-shioaji && git -C .hotskills/sinotrade-shioaji checkout --detach 3c82ff44694ad7d1ba9d8c1f3ad7f4d4a3b237c5 # Copy each selected skill directory from .hotskills/sinotrade-shioaji into .claude/skills/<skill-name>/
git clone --filter=blob:none --no-checkout https://github.com/Sinotrade/Shioaji.git .hotskills/sinotrade-shioaji && git -C .hotskills/sinotrade-shioaji checkout --detach 3c82ff44694ad7d1ba9d8c1f3ad7f4d4a3b237c5 # Copy each selected skill directory from .hotskills/sinotrade-shioaji into .agents/skills/<skill-name>/
530GitHub stars
1star in 7 days
1skill in this repository
6commits in 30 days

Heat

2.9
  • Star growth, last 7 daysNot available
  • Star growth, last 24 hoursNot available
  • Rank movement, last 7 daysNot available
  • Commits, last 30 daysNot available
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekNot available

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Oct 25, 2026Nov 2, 2026530

30-day change not yet available: not enough history.

Individual skills in this repository

  • shioaji plugins/shioaji/skills/shioaji

How it works

shioaji

When your agent uses it

Shioaji (SJ) is SinoPac/永豐金證券's API for trading Taiwan markets (台股/期權 on TWSE, TPEX, TAIFEX). Use for any Shioaji task, or for Taiwan trading automation where Shioaji may apply: Python sync/async code, the `shioaji` CLI, the local HTTP API server with SSE streaming, or HTTP clients in JS/TS, Go, C/C++, C#, Rust, Java/Kotlin. Covers login, API keys and CA, contracts, placing and managing orders (下單/改單/刪單), order reports, real-time quotes and K-bars (即時行情), historical data, market signals, accounts and positions, watchlists, reserve orders, migration, and troubleshooting errors. Also use when someone wants to start using Shioaji or get SinoPac API access for the first time. US/HK markets are not supported yet. Not for other brokers or generic indicators without Shioaji data.

What it loads into context

Frontmatter

238 tokens

Always available to the agent

SKILL.md

4,938 tokens

When the skill is activated

Reference documents

200,870 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. How to Use References / 如何使用參考文件
  2. Task Routing — "I want to..." / 任務路由
  3. Simulation vs Production Safety / 模擬與正式環境安全
  4. Rate Limits / 速率限制
  5. Trading Rule Sources / 交易規則來源
  6. Error Handling / 錯誤處理
  7. Logout / 登出

Files

  • ../../../../.claude-plugin/marketplace.jsonasset492 bytes
  • ../../.claude-plugin/plugin.jsonasset719 bytes
  • SKILL.mdcore19,377 bytes
  • SKILL.mdcore19,377 bytes
  • references/ACCOUNTING.mddoc25,977 bytes
  • references/ADVANCED.mddoc27,595 bytes
  • references/AGENTS.mddoc1,556 bytes
  • references/AGENT_HARNESS.mddoc14,742 bytes
  • references/CLI.mddoc54,915 bytes
  • references/COMBO_ORDERS.mddoc25,471 bytes
  • references/CONCEPTS.mddoc18,113 bytes
  • references/CONTRACTS.mddoc15,902 bytes
  • references/CONTRACT_FIELDS.mddoc12,519 bytes
  • references/CPP.mddoc27,030 bytes
  • references/CSHARP.mddoc23,723 bytes
  • references/ERROR_CODES.mddoc24,537 bytes
  • references/GO.mddoc28,811 bytes
  • references/HTTP_API.mddoc58,198 bytes
  • references/JAVA.mddoc29,170 bytes
  • references/JAVASCRIPT.mddoc29,255 bytes
  • references/MARKET_DATA.mddoc38,463 bytes
  • references/MIGRATION.mddoc6,700 bytes
  • references/OBSERVABILITY.mddoc9,279 bytes
  • references/ORDERS.mddoc54,590 bytes
  • references/PREPARE.mddoc70,067 bytes
  • references/RESERVE.mddoc15,240 bytes
  • references/RUST.mddoc16,767 bytes
  • references/STREAMING.mddoc39,838 bytes
  • references/STREAMING_ENRICHED.mddoc14,169 bytes
  • references/STREAMING_SIGNALS.mddoc9,432 bytes
  • references/TROUBLESHOOTING.mddoc45,489 bytes
  • references/WATCHLIST.mddoc17,348 bytes

No excerpt is shown for this license. Read the source on GitHub.

View the complete source on GitHub

Skills included

  • shioaji

Repository facts

License
No license detected
Created
Nov 21, 2018
Last pushed
Nov 5, 2026
Forks
42
Open issues
47
Project activity
Active

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 6, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 1 note
  • plugins/shioaji/skills/shioaji/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
Show all 534 signals by file

.claude-plugin/marketplace.json

  • Network accessline 3
    "owner": {     "name": "Sinotrade",     "url": "https://github.com/Sinotrade"
  • Network accessline 4
    "name": "Sinotrade",     "url": "https://github.com/Sinotrade"   },
  • Network accessline 5
    "url": "https://github.com/Sinotrade"

plugins/shioaji/.claude-plugin/plugin.json

  • Network accessline 5
    "author": {     "name": "Sinotrade",     "url": "https://github.com/Sinotrade"
  • Network accessline 6
    "name": "Sinotrade",     "url": "https://github.com/Sinotrade"   },
  • Network accessline 7
    "url": "https://github.com/Sinotrade"
  • Network accessline 8
    },   "homepage": "https://sinotrade.github.io/",   "repository": "https://github.com/Sinotrade/Shioaji",
  • Network accessline 9
    "homepage": "https://sinotrade.github.io/",
  • Network accessline 10
    "repository": "https://github.com/Sinotrade/Shioaji",

plugins/shioaji/skills/shioaji/SKILL.md

  • Network accessline 42
    - Before the user answers the first onboarding question, do not run commands, inspect files, mention Python versions, mention existing projects, or discuss local environments. The first step is not "check the folder"; it is "check whether t
  • Network accessline 43
    - The first substantive response must check the basic gates before any technical setup: SinoPac securities/futures account, desired market access (stock / futures-options / both), API key/secret, direct API agreement signing, simulation log
  • Network accessline 44
    - Onboarding order matters: after account opening, confirm/create API Key and Secret Key at `https://www.sinotrade.com.tw/newweb/PythonAPIKey/`; signing pages do not issue API keys. After signing, do not jump straight to CA; confirm API cre
  • Network accessline 45
    - When presenting onboarding steps as a table/list, write the explicit correct URL for each web step. Never use the generic SinoPac home page as the account-opening URL. Open account uses `https://www.sinotrade.com.tw/openact?strProd=0254&s
  • Network accessline 48
    - Do **not** move into installation, project setup, `.env`, `.venv`, `uv sync`, code examples, local file inspection, or order examples until the user confirms the relevant onboarding gates are done or explicitly asks for that technical ste
  • Network accessline 50
    - For signing, give the direct product page, not the generic signing center: stock <https://www.sinotrade.com.tw/newweb/signCenter/S_openAPI/>; futures/options <https://www.sinotrade.com.tw/newweb/signCenter/F_openApi/>.
  • Network accessline 166
    Source 來源:[Shioaji 使用限制](https://sinotrade.github.io/zh/tutor/limit/)
  • Network accessline 175
    - [TWSE 集中市場交易制度介紹](https://www.twse.com.tw/zh/products/system/trading.html)
  • Network accessline 176
    - [TPEx 盤中全面逐筆交易專區](https://www.tpex.org.tw/zh-tw/mainboard/trading/rules/continuous.html)
  • Network accessline 177
    - [TAIFEX 委託單種介紹](https://www.taifex.com.tw/cht/4/oamIntroduction)

plugins/shioaji/skills/shioaji/references/ACCOUNTING.md

  • Access to secretsline 77
    [Credential-related source omitted]
  • Network accessline 108
    curl -X POST http://localhost:8080/api/v1/portfolio/account_balance \
  • Network accessline 166
    curl -X POST http://localhost:8080/api/v1/portfolio/margin \
  • Network accessline 213
    # Common positions 整股持倉 curl -X POST http://localhost:8080/api/v1/portfolio/position_unit \
  • Network accessline 214
    curl -X POST http://localhost:8080/api/v1/portfolio/position_unit \
  • Network accessline 218
    # Odd lot positions 零股持倉 curl -X POST http://localhost:8080/api/v1/portfolio/position_unit \
  • Network accessline 219
    curl -X POST http://localhost:8080/api/v1/portfolio/position_unit \
  • Network accessline 253
    curl -X POST http://localhost:8080/api/v1/portfolio/position_detail \
  • Network accessline 305
    curl -X POST http://localhost:8080/api/v1/portfolio/profit_loss \
  • Network accessline 357
    curl -X POST http://localhost:8080/api/v1/portfolio/profit_loss_detail \
  • Network accessline 404
    curl -X POST http://localhost:8080/api/v1/portfolio/profitloss_sum \
  • Network accessline 460
    # Legacy format (single object) 舊格式(單一物件) curl -X POST http://localhost:8080/api/v1/portfolio/settlement \
  • Network accessline 461
    curl -X POST http://localhost:8080/api/v1/portfolio/settlement \
  • Network accessline 504
    # New format (list) 新格式(列表) curl -X POST http://localhost:8080/api/v1/portfolio/settlements \
  • Network accessline 505
    curl -X POST http://localhost:8080/api/v1/portfolio/settlements \
  • Network accessline 569
    curl -X POST http://localhost:8080/api/v1/portfolio/trading_limits \

plugins/shioaji/skills/shioaji/references/ADVANCED.md

  • Access to secretsline 43
    [Credential-related source omitted]
  • Access to secretsline 307
    [Credential-related source omitted]
  • Network accessline 660
    # Subscribe first 先訂閱 curl -X POST http://localhost:8080/api/v1/stream/subscribe \
  • Network accessline 661
    curl -X POST http://localhost:8080/api/v1/stream/subscribe \
  • Network accessline 665
    # Listen to SSE stream 監聽 SSE 串流 curl -N http://localhost:8080/api/v1/stream/data/tick_stk
  • Network accessline 666
    curl -N http://localhost:8080/api/v1/stream/data/tick_stk
  • Network accessline 678
    ## Disabled by default. Confirm simulation/production mode, account, ## payload, response status, and order-event handling in ORDERS.md before enabling. # curl -X POST http://localhost:8080/api/v1/order/place_order \
  • Network accessline 679
    ## payload, response status, and order-event handling in ORDERS.md before enabling. # curl -X POST http://localhost:8080/api/v1/order/place_order \ #   -H "Content-Type: application/json" \
  • Network accessline 680
    # curl -X POST http://localhost:8080/api/v1/order/place_order \
  • Network accessline 770
    // JavaScript example — consume SSE stream // JavaScript 範例 — 消費 SSE 串流 const es = new EventSource("http://localhost:8080/api/v1/stream/data");
  • Network accessline 771
    // JavaScript 範例 — 消費 SSE 串流 const es = new EventSource("http://localhost:8080/api/v1/stream/data"); es.addEventListener("tick_stk", (event) => {
  • Network accessline 772
    const es = new EventSource("http://localhost:8080/api/v1/stream/data");

plugins/shioaji/skills/shioaji/references/AGENT_HARNESS.md

  • Network accessline 82
    | --- | --- | --- | | macOS/Linux Unix socket | `SJ_AGENT_HARNESS_BROKER_SOCKET` | Broker verifies the CLI executable and its process ancestry | | Windows desktop localhost HTTP | `SJ_AGENT_HARNESS_BROKER_URL=http://127.0.0.1:<random>/v1/ex
  • Network accessline 84
    [Credential-related source omitted]
  • Access to secretsline 185
    [Credential-related source omitted]

plugins/shioaji/skills/shioaji/references/CLI.md

  • Access to secretsline 140
    [Credential-related source omitted]
  • Network accessline 150
    | `SJ_TIMEOUT` | Solace request-reply timeout in milliseconds (default: 60000) | | `SJ_AGENT_HARNESS_BROKER_SOCKET` | Trusted Unix approval broker socket; preferred when both broker transports are present | | `SJ_AGENT_HARNESS_BROKER_URL` |
  • Network accessline 151
    | `SJ_AGENT_HARNESS_BROKER_SOCKET` | Trusted Unix approval broker socket; preferred when both broker transports are present | | `SJ_AGENT_HARNESS_BROKER_URL` | Trusted loopback HTTP broker URL; must be exactly `http://localhost-or-loopback/
  • Network accessline 152
    | `SJ_AGENT_HARNESS_BROKER_URL` | Trusted loopback HTTP broker URL; must be exactly `http://localhost-or-loopback/v1/exchange` |
  • Access to secretsline 315
    [Credential-related source omitted]
  • Access to secretsline 329
    [Credential-related source omitted]
  • Access to secretsline 1256
    [Credential-related source omitted]
  • Access to secretsline 1257
    [Credential-related source omitted]
  • Access to secretsline 1269
    [Credential-related source omitted]
  • Access to secretsline 1270
    [Credential-related source omitted]
  • Access to secretsline 1284
    [Credential-related source omitted]
  • Access to secretsline 1293
    [Credential-related source omitted]
  • Access to secretsline 1296
    [Credential-related source omitted]
  • Access to secretsline 1299
    [Credential-related source omitted]
  • Access to secretsline 1302
    [Credential-related source omitted]

plugins/shioaji/skills/shioaji/references/COMBO_ORDERS.md

  • Network accessline 491
    # Managed form (recommended). The server validates the exchange strategy and # derives per-leg actions from order.action. Buy time spread = sell near, buy far. curl -X POST http://localhost:8080/api/v1/order/place_comboorder \
  • Network accessline 492
    # derives per-leg actions from order.action. Buy time spread = sell near, buy far. curl -X POST http://localhost:8080/api/v1/order/place_comboorder \   -H "Content-Type: application/json" \
  • Network accessline 493
    curl -X POST http://localhost:8080/api/v1/order/place_comboorder \
  • Network accessline 513
    # Legacy directed form; retained for compatibility. curl -X POST http://localhost:8080/api/v1/order/place_comboorder \
  • Network accessline 514
    curl -X POST http://localhost:8080/api/v1/order/place_comboorder \
  • Network accessline 578
    - [TAIFEX order types and combo definitions](https://www.taifex.com.tw/cht/4/oamIntroduction)
  • Network accessline 579
    - [TAIFEX TCP/IP TMP specification](https://www.taifex.com.tw/cht/8/techDocsDetails?idx=4), v2.18.8 dated 2026-07-06, especially sections 3.5.2–3.5.4 for option combo examples, futures time-spread encoding, BS1/BS2, and product/compound-pro

plugins/shioaji/skills/shioaji/references/CONCEPTS.md

  • Network accessline 41
    shioaji CLI ─┐ curl / SDK ──┤──HTTP/localhost──→  daemon (one trading core)  ──→ SinoPac backend
  • Network accessline 42
    curl / SDK ──┤──HTTP/localhost──→  daemon (one trading core)  ──→ SinoPac backend
  • Access to secretsline 168
    [Credential-related source omitted]

plugins/shioaji/skills/shioaji/references/CONTRACTS.md

  • Access to secretsline 43
    [Credential-related source omitted]
  • Access to secretsline 199
    [Credential-related source omitted]
  • Network accessline 215
    # Exact code; security_type is optional and can narrow ambiguous codes. curl "http://localhost:8080/api/v1/data/contracts/2330?region=TW&security_type=STK"
  • Network accessline 216
    curl "http://localhost:8080/api/v1/data/contracts/2330?region=TW&security_type=STK"
  • Network accessline 218
    # Flat typed info; security_type is the OpenAPI discriminator. curl "http://localhost:8080/api/v1/data/contracts/2330/info?region=TW&security_type=STK"
  • Network accessline 219
    curl "http://localhost:8080/api/v1/data/contracts/2330/info?region=TW&security_type=STK"
  • Network accessline 221
    # All STK bases, or a one-based page for a large UI. curl "http://localhost:8080/api/v1/data/contracts?security_type=STK&region=TW"
  • Network accessline 222
    curl "http://localhost:8080/api/v1/data/contracts?security_type=STK&region=TW"
  • Network accessline 223
    curl "http://localhost:8080/api/v1/data/contracts?security_type=STK&region=TW&page=1&page_size=500"
  • Network accessline 225
    # Shard-aware queries. curl "http://localhost:8080/api/v1/data/contracts/futures?root=TXF&region=TW"
  • Network accessline 226
    curl "http://localhost:8080/api/v1/data/contracts/futures?root=TXF&region=TW"
  • Network accessline 227
    curl "http://localhost:8080/api/v1/data/contracts/options?root=TXO&region=TW"
  • Network accessline 228
    curl "http://localhost:8080/api/v1/data/contracts/warrants?underlying_code=2330&region=TW"
  • Network accessline 264
    curl -N "http://localhost:8080/api/v1/stream/data/contract_event?region=TW&security_type=STK"

plugins/shioaji/skills/shioaji/references/CPP.md

  • Access to secretsline 39
    [Credential-related source omitted]
  • Network accessline 58
    find_package(CURL REQUIRED)
  • Network accessline 223
    /// Construct client for local server (no auth needed).     /// 建立本地伺服器用戶端(不需認證)。     explicit ShioajiClient(const std::string& base_url = "http://localhost:8080");
  • Network accessline 225
    explicit ShioajiClient(const std::string& base_url = "http://localhost:8080");
  • Access to secretsline 230
    [Credential-related source omitted]
  • Network accessline 235
    // Disable copy (CURL handle is not copyable)
  • Access to secretsline 256
    [Credential-related source omitted]
  • Access to secretsline 280
    [Credential-related source omitted]
  • Access to secretsline 283
    [Credential-related source omitted]
  • Access to secretsline 291
    [Credential-related source omitted]
  • Access to secretsline 292
    [Credential-related source omitted]
  • Access to secretsline 295
    [Credential-related source omitted]
  • Network accessline 429
    // GET /api/v1/auth/accounts auto client = shioaji::ShioajiClient("http://localhost:8080");
  • Network accessline 430
    auto client = shioaji::ShioajiClient("http://localhost:8080");
  • Network accessline 687
    CURL* curl = curl_easy_init();
  • Network accessline 688
    if (!curl) { std::cerr << "curl init failed\n"; return 1; }
  • Access to secretsline 693
    [Credential-related source omitted]
  • Network accessline 695
    const std::string base = "http://localhost:8080";
  • Access to secretsline 768
    [Credential-related source omitted]
  • Network accessline 775
    auto client = shioaji::ShioajiClient(     "https://your-server.com",
  • Network accessline 776
    "https://your-server.com",
  • Access to secretsline 777
    [Credential-related source omitted]
  • Network accessline 797
    # Download the spec curl -s http://localhost:8080/openapi.json -o openapi.json
  • Network accessline 798
    curl -s http://localhost:8080/openapi.json -o openapi.json
  • Network accessline 800
    # Generate C client with openapi-generator openapi-generator generate \   -i http://localhost:8080/openapi.json \
  • Network accessline 801
    openapi-generator generate    -i http://localhost:8080/openapi.json
  • Network accessline 802
    -i http://localhost:8080/openapi.json \
  • Network accessline 806
    # Or use the C++ generator (experimental) openapi-generator generate \   -i http://localhost:8080/openapi.json \
  • Network accessline 807
    openapi-generator generate    -i http://localhost:8080/openapi.json
  • Network accessline 808
    -i http://localhost:8080/openapi.json \
  • Network accessline 816
    # See the place_order request schema curl -s http://localhost:8080/openapi.json | jq '.paths["/api/v1/order/place_order"].post.requestBody.content["application/json"].schema'
  • Network accessline 817
    curl -s http://localhost:8080/openapi.json | jq '.paths["/api/v1/order/place_order"].post.requestBody.content["application/json"].schema'
  • Network accessline 819
    # List all schema definitions curl -s http://localhost:8080/openapi.json | jq '.components.schemas | keys[]'
  • Network accessline 820
    curl -s http://localhost:8080/openapi.json | jq '.components.schemas | keys[]'

plugins/shioaji/skills/shioaji/references/CSHARP.md

  • Access to secretsline 38
    [Credential-related source omitted]
  • Network accessline 205
    /// 建立本地伺服器用戶端(不需認證)。     /// </summary>     public ShioajiClient(string baseUrl = "http://localhost:8080")
  • Network accessline 206
    /// </summary>     public ShioajiClient(string baseUrl = "http://localhost:8080")     {
  • Network accessline 207
    public ShioajiClient(string baseUrl = "http://localhost:8080")
  • Access to secretsline 221
    [Credential-related source omitted]
  • Network accessline 497
    # Generate client (server must be running) / 產生用戶端(伺服器須執行中) nswag openapi2csclient \   /input:http://localhost:8080/openapi.json \
  • Network accessline 498
    nswag openapi2csclient    /input:http://localhost:8080/openapi.json
  • Network accessline 499
    /input:http://localhost:8080/openapi.json \
  • Network accessline 514
    var apiClient = new ShioajiApiClient("http://localhost:8080", new HttpClient());
  • Network accessline 591
    var baseUrl = "http://localhost:8080";
  • Access to secretsline 595
    [Credential-related source omitted]
  • Access to secretsline 670
    [Credential-related source omitted]
  • Network accessline 677
    using var client = new ShioajiClient(     "https://your-server.com",
  • Network accessline 678
    "https://your-server.com",
  • Access to secretsline 679
    [Credential-related source omitted]

plugins/shioaji/skills/shioaji/references/ERROR_CODES.md

  • Network accessline 6
    > 錯誤訊息文字可能隨伺服器版本微調,比對時抓關鍵字即可,不要求逐字相同。 > 第 2.2–2.5 節與第 3 節的訊息由後端或交易所回傳,不在 SDK 原始碼中;其中的交易所規則(如集合競價時段、STATUS 49)見 [SKILL.md](../SKILL.md) 交易規則來源。 > 處理方法分三類:**自行處理**(修正後即可重試)、**等待重試**(稍後再試,勿密集輪詢)、**聯絡永豐**(重試無效,請附完整錯誤訊息至客服群組詢問:[Telegram](https:/
  • Network accessline 8
    > 處理方法分三類:**自行處理**(修正後即可重試)、**等待重試**(稍後再試,勿密集輪詢)、**聯絡永豐**(重試無效,請附完整錯誤訊息至客服群組詢問:[Telegram](https://t.me/joinchat/973EyAQlrfthZTk1) 或 [Discord](https://discord.gg/5nzmWCTnG7))。
  • Access to secretsline 78
    [Credential-related source omitted]
  • Network accessline 85
    | Exception | 訊息 | 處理方法 | |---|---|---| | `CaExpiredError` | `Ca has expired!` | 自行處理:至新理財網 API 管理頁(<https://www.sinotrade.com.tw/newweb/PythonAPIKey/>)重新申請並下載憑證,再重新啟用,見 [PREPARE.md](PREPARE.md) |
  • Network accessline 86
    |---|---|---| | `CaExpiredError` | `Ca has expired!` | 自行處理:至新理財網 API 管理頁(<https://www.sinotrade.com.tw/newweb/PythonAPIKey/>)重新申請並下載憑證,再重新啟用,見 [PREPARE.md](PREPARE.md) | | `CaPasswordError` | `Ca Password Incorrect` | 自行處理:確認 CA 密碼(預設為身分證字
  • Network accessline 87
    | `CaExpiredError` | `Ca has expired!` | 自行處理:至新理財網 API 管理頁(<https://www.sinotrade.com.tw/newweb/PythonAPIKey/>)重新申請並下載憑證,再重新啟用,見 [PREPARE.md](PREPARE.md) |
  • Network accessline 100
    | 401 | `Token is expired` | Token 已逾期(登入超過 24 小時),或觸發使用限制被踢退 | 自行處理:重新登入即可;若是超限被踢退,等 1 分鐘後再重登 | | 401 | `Could not validate credentials` | Token 無效(格式錯誤或環境不符) | 自行處理:重新登入;確認模擬/正式環境一致 | | 401 | `Token doesn't have permission` | API Key 權限未開
  • Network accessline 101
    | 401 | `Could not validate credentials` | Token 無效(格式錯誤或環境不符) | 自行處理:重新登入;確認模擬/正式環境一致 | | 401 | `Token doesn't have permission` | API Key 權限未開放該功能 | 自行處理:至新理財網 API 管理頁(<https://www.sinotrade.com.tw/newweb/PythonAPIKey/>)確認並調整 API Key 的權限設定
  • Network accessline 102
    | 401 | `Token doesn't have permission` | API Key 權限未開放該功能 | 自行處理:至新理財網 API 管理頁(<https://www.sinotrade.com.tw/newweb/PythonAPIKey/>)確認並調整 API Key 的權限設定 |
  • Network accessline 103
    | 400 | `key: {key_id} not exist.` | API Key 不存在(打錯或已刪除) | 自行處理:核對 API Key;必要時至 API 管理頁重新申請 | | 400 | `key: {key_id} not match signature.` | Secret Key 錯誤(與 API Key 不成對) | 自行處理:核對金鑰;必要時至 API 管理頁重新產生 | | 400 | `{key_id} is expired.` | API Ke
  • Network accessline 104
    | 400 | `key: {key_id} not match signature.` | Secret Key 錯誤(與 API Key 不成對) | 自行處理:核對金鑰;必要時至 API 管理頁重新產生 | | 400 | `{key_id} is expired.` | API Key 已過期 | 自行處理:至新理財網 API 管理頁(<https://www.sinotrade.com.tw/newweb/PythonAPIKey/>)重新申請 API Key | 
  • Network accessline 105
    | 400 | `{key_id} is expired.` | API Key 已過期 | 自行處理:至新理財網 API 管理頁(<https://www.sinotrade.com.tw/newweb/PythonAPIKey/>)重新申請 API Key |
  • Network accessline 107
    | 400 | `Token doesn't have production permission.` | API Key 沒有正式環境權限 | 自行處理:至 API 管理頁確認權限;或先用模擬環境 | | 451 | `Too Many Connections.` | 同一 person_id 最多 5 條連線,每次 `api.login()` 都算一條;常見原因是程式結束前沒 `logout()` 或程式沒真正關掉 | 自行處理:每次用完呼叫 `api.logout()`
  • Network accessline 108
    | 451 | `Too Many Connections.` | 同一 person_id 最多 5 條連線,每次 `api.login()` 都算一條;常見原因是程式結束前沒 `logout()` 或程式沒真正關掉 | 自行處理:每次用完呼叫 `api.logout()`;若都有登出仍發生,關閉殘留程式或重開機後再登入;見 [CONCEPTS.md](CONCEPTS.md) | | 400 | `Sign data is timeout.`(登入時出現) | 本機時間與
  • Network accessline 109
    | 400 | `Sign data is timeout.`(登入時出現) | 本機時間與伺服器相差超過 receive_window(預設 30 秒) | 自行處理:先校準系統時間,見 [TROUBLESHOOTING.md](TROUBLESHOOTING.md) 登入簽章逾時與 <https://sinotrade.github.io/zh/tutor/login/#_1> |
  • Access to secretsline 175
    [Credential-related source omitted]
  • Network accessline 250
    2. **自行處理類**(參數錯、Token 過期、未帶 CA、未更新狀態、金鑰/權限設定):修正後即可重試;金鑰與權限問題到新理財網 API 管理頁自行調整。 3. **等待重試類**(維護、忙線、`操作異常`):等待後再試,不要密集輪詢——可能觸發封鎖。 4. **聯絡永豐類**(下單中台異常、風控、額度、簽署、被封鎖):重試無效,請使用者附上完整錯誤訊息至客服群組([Telegram](https://t.me/joinchat/973EyAQlrfthZTk1) 或 
  • Network accessline 252
    4. **聯絡永豐類**(下單中台異常、風控、額度、簽署、被封鎖):重試無效,請使用者附上完整錯誤訊息至客服群組([Telegram](https://t.me/joinchat/973EyAQlrfthZTk1) 或 [Discord](https://discord.gg/5nzmWCTnG7))詢問;額度與風控類也可洽所屬營業員。

plugins/shioaji/skills/shioaji/references/GO.md

  • Access to secretsline 44
    [Credential-related source omitted]
  • Network accessline 46
    伺服器預設在 `http://localhost:8080` 啟動。
  • Network accessline 47
    The server starts at `http://localhost:8080` by default.
  • Access to secretsline 50
    [Credential-related source omitted]
  • Network accessline 259
    type Client struct { 	BaseURL    string 	HTTPClient *http.Client
  • Network accessline 260
    BaseURL    string 	HTTPClient *http.Client 	apiKey     string
  • Network accessline 261
    HTTPClient *http.Client
  • Network accessline 270
    return &Client{ 		BaseURL:    baseURL, 		HTTPClient: &http.Client{},
  • Network accessline 271
    [Credential-related source omitted]
  • Network accessline 272
    HTTPClient: &http.Client{},
  • Network accessline 507
    client := shioaji.NewClient("http://localhost:8080", "", "")
  • Network accessline 520
    resp, err := http.Get("http://localhost:8080/api/v1/auth/accounts")
  • Network accessline 552
    }) resp, _ := http.Post(     "http://localhost:8080/api/v1/data/snapshots",
  • Network accessline 553
    resp, _ := http.Post(     "http://localhost:8080/api/v1/data/snapshots",     "application/json",
  • Network accessline 554
    "http://localhost:8080/api/v1/data/snapshots",
  • Network accessline 666
    resp, err := http.Get("http://localhost:8080/api/v1/stream/data/tick_stk")
  • Network accessline 759
    # 產生 Go 客戶端 | Generate Go client oapi-codegen -package shioaji http://localhost:8080/openapi.json > pkg/shioaji/generated.go
  • Network accessline 760
    oapi-codegen -package shioaji http://localhost:8080/openapi.json > pkg/shioaji/generated.go
  • Network accessline 766
    # 只產生型別 | Types only oapi-codegen -generate types -package shioaji \   http://localhost:8080/openapi.json > pkg/shioaji/types_gen.go
  • Network accessline 767
    oapi-codegen -generate types -package shioaji    http://localhost:8080/openapi.json > pkg/shioaji/types_gen.go
  • Network accessline 768
    http://localhost:8080/openapi.json > pkg/shioaji/types_gen.go
  • Network accessline 770
    # 只產生客戶端 | Client only oapi-codegen -generate client -package shioaji \   http://localhost:8080/openapi.json > pkg/shioaji/client_gen.go
  • Network accessline 771
    oapi-codegen -generate client -package shioaji    http://localhost:8080/openapi.json > pkg/shioaji/client_gen.go
  • Network accessline 772
    http://localhost:8080/openapi.json > pkg/shioaji/client_gen.go
  • Network accessline 798
    // 初始化 | Initialize 	// ================================================================ 	client := shioaji.NewClient("http://localhost:8080", "", "")
  • Network accessline 800
    client := shioaji.NewClient("http://localhost:8080", "", "")

plugins/shioaji/skills/shioaji/references/HTTP_API.md

  • Network accessline 57
    **Base URL**: `http://127.0.0.1:8080` (default)
  • Access to secretsline 64
    [Credential-related source omitted]
  • Access to secretsline 67
    [Credential-related source omitted]
  • Access to secretsline 74
    [Credential-related source omitted]
  • Network accessline 93
    # Localhost -- no auth needed curl http://127.0.0.1:8080/api/v1/auth/accounts
  • Network accessline 94
    curl http://127.0.0.1:8080/api/v1/auth/accounts
  • Network accessline 96
    [Credential-related source omitted]
  • Network accessline 97
    [Credential-related source omitted]
  • Access to secretsline 97
    [Credential-related source omitted]
  • Network accessline 98
    http://192.168.1.100:8080/api/v1/auth/accounts
  • Access to secretsline 109
    [Credential-related source omitted]
  • Network accessline 140
    The default plaintext listener serves HTTP/1.1. HTTP/2 is enabled on the TLS listener and negotiated through ALPN; browsers do not use HTTP/2 over the default plaintext `http://` URL. Configure either static TLS or ACME, then use
  • Network accessline 141
    listener and negotiated through ALPN; browsers do not use HTTP/2 over the default plaintext `http://` URL. Configure either static TLS or ACME, then use an `https://` URL. Do not configure static TLS and ACME together.
  • Network accessline 142
    default plaintext `http://` URL. Configure either static TLS or ACME, then use
  • Network accessline 143
    an `https://` URL. Do not configure static TLS and ACME together.
  • Network accessline 145
    預設明文 listener 使用 HTTP/1.1。HTTP/2 由 TLS listener 透過 ALPN 協商; 瀏覽器不會在預設 `http://` URL 上直接使用 HTTP/2。要讓 Web App 直接走
  • Network accessline 146
    瀏覽器不會在預設 `http://` URL 上直接使用 HTTP/2。要讓 Web App 直接走
  • Network accessline 148
    `https://`。Static TLS 與 ACME 不可同時設定。
  • Access to secretsline 166
    [Credential-related source omitted]
  • Network accessline 170
    Use `https://localhost:8080` from the browser so the certificate hostname matches. REST and the aggregate SSE stream can share the same HTTP/2 connection; subscription changes remain ordinary REST requests.
  • Network accessline 175
    curl --http2 -sS -o /dev/null \
  • Network accessline 177
    https://localhost:8080/api/v1/health
  • Network accessline 179
    curl -sS https://localhost:8080/openapi.json | jq '.openapi'
  • Network accessline 180
    curl -N https://localhost:8080/api/v1/stream/data
  • Network accessline 193
    HTTP/1.1 on TCP and adds QUIC on the same numeric UDP port. HTTPS responses advertise HTTP/3 through `Alt-Svc`; capable browsers normally upgrade automatically, so application URLs remain `https://...`.
  • Network accessline 195
    automatically, so application URLs remain `https://...`.
  • Network accessline 201
    # Requires a curl build with HTTP/3 support.
  • Network accessline 202
    curl --http3-only -sS -o /dev/null \
  • Network accessline 204
    https://localhost:8080/api/v1/health
  • Network accessline 206
    # Confirm discovery from the TCP HTTPS endpoint. curl --http2 -sSI https://localhost:8080/api/v1/health | grep -i '^alt-svc:'
  • Network accessline 207
    curl --http2 -sSI https://localhost:8080/api/v1/health | grep -i '^alt-svc:'
  • Network accessline 233
    export SJ_HTTP_ACME_CACHE="$HOME/.shioaji/acme" export SJ_HTTP_ACME_DIRECTORY_NAME=lets_encrypt_staging export SJ_HTTP_ACME_DIRECTORY_URL=https://acme-staging-v02.api.letsencrypt.org/directory
  • Network accessline 234
    export SJ_HTTP_ACME_DIRECTORY_NAME=lets_encrypt_staging export SJ_HTTP_ACME_DIRECTORY_URL=https://acme-staging-v02.api.letsencrypt.org/directory export SJ_HTTP3=true
  • Network accessline 235
    export SJ_HTTP_ACME_DIRECTORY_URL=https://acme-staging-v02.api.letsencrypt.org/directory
  • Network accessline 683
    # All Base records for one type curl "http://localhost:8080/api/v1/data/contracts?security_type=STK&region=TW"
  • Network accessline 684
    curl "http://localhost:8080/api/v1/data/contracts?security_type=STK&region=TW"
  • Network accessline 686
    # One-based pagination for a large UI curl "http://localhost:8080/api/v1/data/contracts?security_type=STK&region=TW&page=1&page_size=500"
  • Network accessline 687
    curl "http://localhost:8080/api/v1/data/contracts?security_type=STK&region=TW&page=1&page_size=500"
  • Network accessline 697
    curl "http://localhost:8080/api/v1/data/contracts/IX0001?region=TW&security_type=IND"
  • Network accessline 705
    curl "http://localhost:8080/api/v1/data/contracts/2330/info?region=TW&security_type=STK"
  • Network accessline 719
    curl "http://localhost:8080/api/v1/data/contracts/futures?root=TXF&region=TW"
  • Network accessline 720
    curl "http://localhost:8080/api/v1/data/contracts/options?root=TXO&option_right=C&region=TW"
  • Network accessline 721
    curl "http://localhost:8080/api/v1/data/contracts/warrants?underlying_code=2330&region=TW"
  • Network accessline 731
    curl -X POST http://localhost:8080/api/v1/data/contracts/combo \
  • Network accessline 744
    curl "http://localhost:8080/api/v1/data/contracts/combo/futures?root=TXF&region=TW"
  • Network accessline 761
    curl -X POST http://localhost:8080/api/v1/stream/subscribe \
  • Network accessline 779
    curl -N http://localhost:8080/api/v1/stream/data/bidask_fop
  • Network accessline 812
    curl -N "http://localhost:8080/api/v1/stream/data/contract_event?region=TW&security_type=STK"
  • Network accessline 1167
    curl -N "http://localhost:8080/api/v1/stream/data?region=TW&security_type=STK"
  • Network accessline 1287
    curl -X POST http://127.0.0.1:8080/api/v1/apps/my-dashboard \
  • Network accessline 1326
    Open `http://localhost:8080/docs` in a browser. The Scalar UI lets you:
  • Network accessline 1335
    # Download the full OpenAPI spec curl -s http://localhost:8080/openapi.json | jq .
  • Network accessline 1336
    curl -s http://localhost:8080/openapi.json | jq .
  • Network accessline 1338
    # List all available endpoints curl -s http://localhost:8080/openapi.json | jq '.paths | keys[]'
  • Network accessline 1339
    curl -s http://localhost:8080/openapi.json | jq '.paths | keys[]'
  • Network accessline 1341
    # Get the request schema for a specific endpoint (e.g., place_order) curl -s http://localhost:8080/openapi.json | jq '.paths["/api/v1/order/place_order"].post.requestBody.content["application/json"].schema'
  • Network accessline 1342
    curl -s http://localhost:8080/openapi.json | jq '.paths["/api/v1/order/place_order"].post.requestBody.content["application/json"].schema'
  • Network accessline 1344
    # Get the response schema curl -s http://localhost:8080/openapi.json | jq '.paths["/api/v1/order/place_order"].post.responses["200"].content["application/json"].schema'
  • Network accessline 1345
    curl -s http://localhost:8080/openapi.json | jq '.paths["/api/v1/order/place_order"].post.responses["200"].content["application/json"].schema'
  • Network accessline 1347
    # List all schema definitions (reusable types) curl -s http://localhost:8080/openapi.json | jq '.components.schemas | keys[]'
  • Network accessline 1348
    curl -s http://localhost:8080/openapi.json | jq '.components.schemas | keys[]'
  • Network accessline 1350
    # Get a specific schema (e.g., StockOrder fields) curl -s http://localhost:8080/openapi.json | jq '.components.schemas["StockOrder"]'
  • Network accessline 1351
    curl -s http://localhost:8080/openapi.json | jq '.components.schemas["StockOrder"]'
  • Network accessline 1353
    # Find all required fields for a request curl -s http://localhost:8080/openapi.json | jq '.components.schemas["PlaceOrderRequest"].required'
  • Network accessline 1354
    curl -s http://localhost:8080/openapi.json | jq '.components.schemas["PlaceOrderRequest"].required'
  • Network accessline 1356
    # Get enum values for a field (e.g., Action) curl -s http://localhost:8080/openapi.json | jq '.components.schemas["Action"]'
  • Network accessline 1357
    curl -s http://localhost:8080/openapi.json | jq '.components.schemas["Action"]'
  • Access to secretsline 1373
    [Credential-related source omitted]
  • Network accessline 1399
    1. **Upload** via `POST /api/v1/apps/{name}` with multipart form data 2. **Access** at `http://host:port/apps/{name}/index.html`
  • Network accessline 1400
    2. **Access** at `http://host:port/apps/{name}/index.html`

plugins/shioaji/skills/shioaji/references/JAVA.md

  • Access to secretsline 40
    [Credential-related source omitted]
  • Network accessline 42
    The server runs at `http://localhost:8080` with all endpoints under `/api/v1/`.
  • Network accessline 51
    <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0"
  • Network accessline 52
    <project xmlns="http://maven.apache.org/POM/4.0.0"
  • Network accessline 53
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  • Network accessline 54
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
  • Network accessline 55
    http://maven.apache.org/xsd/maven-4.0.0.xsd">
  • Network accessline 329
    public ShioajiClient() {         this("http://localhost:8080");
  • Network accessline 330
    this("http://localhost:8080");
  • Network accessline 625
    class ShioajiClient(private val baseUrl: String = "http://localhost:8080") {
  • Network accessline 711
    fun tickStkFlow(baseUrl: String = "http://localhost:8080"): Flow<TickData> = callbackFlow {
  • Network accessline 758
    # Make sure the server is running first openapi-generator generate \   -i http://localhost:8080/openapi.json \
  • Network accessline 759
    openapi-generator generate    -i http://localhost:8080/openapi.json
  • Network accessline 760
    -i http://localhost:8080/openapi.json \
  • Network accessline 764
    # Or for Kotlin: openapi-generator generate \   -i http://localhost:8080/openapi.json \
  • Network accessline 765
    openapi-generator generate    -i http://localhost:8080/openapi.json
  • Network accessline 766
    -i http://localhost:8080/openapi.json \

plugins/shioaji/skills/shioaji/references/JAVASCRIPT.md

  • Access to secretsline 41
    [Credential-related source omitted]
  • Network accessline 43
    伺服器預設在 `http://localhost:8080` 啟動。
  • Network accessline 44
    The server starts at `http://localhost:8080` by default.
  • Network accessline 46
    For a browser client to negotiate HTTP/2 directly, configure a trusted TLS certificate on the Shioaji server and use `https://localhost:8080`; browsers do
  • Network accessline 47
    certificate on the Shioaji server and use `https://localhost:8080`; browsers do
  • Network accessline 48
    not use HTTP/2 on the default plaintext URL. Local development can use mkcert. With `SJ_HTTP3=true`, capable browsers discover QUIC through `Alt-Svc` and keep the same `https://` application URL. See [HTTP_API.md](HTTP_API.md) for the
  • Network accessline 49
    With `SJ_HTTP3=true`, capable browsers discover QUIC through `Alt-Svc` and keep the same `https://` application URL. See [HTTP_API.md](HTTP_API.md) for the static-TLS, mkcert, ACME, UDP-port, and protocol-verification procedures.
  • Network accessline 50
    the same `https://` application URL. See [HTTP_API.md](HTTP_API.md) for the
  • Network accessline 53
    瀏覽器要直接協商 HTTP/2,必須先替 Shioaji server 設定受信任 TLS 憑證, 並使用 `https://localhost:8080`;預設明文 URL 不會使用 HTTP/2。本機開發可用
  • Network accessline 54
    並使用 `https://localhost:8080`;預設明文 URL 不會使用 HTTP/2。本機開發可用
  • Network accessline 56
    應用程式仍使用相同的 `https://` URL。
  • Access to secretsline 59
    [Credential-related source omitted]
  • Network accessline 308
    /**    * @param baseUrl - API 伺服器位址 | API server URL (default: http://localhost:8080)
  • Network accessline 309
    * @param baseUrl - API 伺服器位址 | API server URL (default: http://localhost:8080)
  • Access to secretsline 310
    [Credential-related source omitted]
  • Network accessline 312
    */   constructor(     baseUrl: string = "http://localhost:8080",
  • Network accessline 313
    constructor(     baseUrl: string = "http://localhost:8080",     apiKey?: string,
  • Network accessline 314
    baseUrl: string = "http://localhost:8080",
  • Network accessline 331
    ): Promise<T> {     const url = `${this.baseUrl}/api/v1${path}`;     const res = await fetch(url, {
  • Network accessline 332
    const url = `${this.baseUrl}/api/v1${path}`;     const res = await fetch(url, {       method,
  • Network accessline 333
    const res = await fetch(url, {
  • Network accessline 483
    const resp = await fetch("http://localhost:8080/api/v1/auth/accounts");
  • Network accessline 500
    const resp = await fetch("http://localhost:8080/api/v1/data/snapshots", {
  • Network accessline 588
    // on this same connection are unaffected. const es = new EventSource(   "http://localhost:8080/api/v1/stream/data?region=TW&security_type=STK"
  • Network accessline 589
    const es = new EventSource(   "http://localhost:8080/api/v1/stream/data?region=TW&security_type=STK" );
  • Network accessline 590
    "http://localhost:8080/api/v1/stream/data?region=TW&security_type=STK"
  • Network accessline 624
    When local TLS is enabled, change the URL above to `https://localhost:8080/api/v1/stream/data?...`. The browser negotiates
  • Network accessline 625
    `https://localhost:8080/api/v1/stream/data?...`. The browser negotiates
  • Network accessline 637
    // 非 localhost 帶認證 | With auth for non-localhost const url = "http://localhost:8080/api/v1/stream/data?region=TW";
  • Network accessline 638
    const url = "http://localhost:8080/api/v1/stream/data?region=TW";
  • Network accessline 724
    // 使用 | Usage const cleanup = createReconnectingStream(   "http://localhost:8080/api/v1/stream/data?region=TW",
  • Network accessline 725
    const cleanup = createReconnectingStream(   "http://localhost:8080/api/v1/stream/data?region=TW",   "tick_stk",
  • Network accessline 726
    "http://localhost:8080/api/v1/stream/data?region=TW",
  • Network accessline 743
    # 產生 TypeScript 型別 | Generate TypeScript types npx openapi-typescript http://localhost:8080/openapi.json -o src/shioaji.d.ts
  • Network accessline 744
    npx openapi-typescript http://localhost:8080/openapi.json -o src/shioaji.d.ts
  • Network accessline 767
    const client = createClient<paths>({   baseUrl: "http://localhost:8080/api/v1",
  • Network accessline 768
    baseUrl: "http://localhost:8080/api/v1",
  • Network accessline 790
    // 初始化 | Initialize   // ================================================================   const client = new ShioajiClient("http://localhost:8080");
  • Network accessline 792
    const client = new ShioajiClient("http://localhost:8080");
  • Network accessline 841
    // ================================================================   const es = new EventSource(     "http://localhost:8080/api/v1/stream/data?region=TW"
  • Network accessline 842
    const es = new EventSource(     "http://localhost:8080/api/v1/stream/data?region=TW"   );
  • Network accessline 843
    "http://localhost:8080/api/v1/stream/data?region=TW"

plugins/shioaji/skills/shioaji/references/MARKET_DATA.md

  • Access to secretsline 91
    [Credential-related source omitted]
  • Network accessline 121
    # POST /api/v1/data/snapshots curl -X POST http://localhost:8080/api/v1/data/snapshots \
  • Network accessline 122
    curl -X POST http://localhost:8080/api/v1/data/snapshots \
  • Network accessline 254
    # POST /api/v1/data/ticks curl -X POST http://localhost:8080/api/v1/data/ticks \
  • Network accessline 255
    curl -X POST http://localhost:8080/api/v1/data/ticks \
  • Network accessline 263
    # With time range 附時間區間 curl -X POST http://localhost:8080/api/v1/data/ticks \
  • Network accessline 264
    curl -X POST http://localhost:8080/api/v1/data/ticks \
  • Network accessline 274
    # Last N ticks 最後 N 筆 curl -X POST http://localhost:8080/api/v1/data/ticks \
  • Network accessline 275
    curl -X POST http://localhost:8080/api/v1/data/ticks \
  • Network accessline 462
    # POST /api/v1/data/kbars curl -X POST http://localhost:8080/api/v1/data/kbars \
  • Network accessline 463
    curl -X POST http://localhost:8080/api/v1/data/kbars \
  • Network accessline 708
    # POST /api/v1/data/daily_quotes curl -X POST http://localhost:8080/api/v1/data/daily_quotes \
  • Network accessline 709
    curl -X POST http://localhost:8080/api/v1/data/daily_quotes \
  • Network accessline 794
    # POST /api/v1/data/credit_enquire curl -X POST http://localhost:8080/api/v1/data/credit_enquire \
  • Network accessline 795
    curl -X POST http://localhost:8080/api/v1/data/credit_enquire \
  • Network accessline 845
    # POST /api/v1/data/short_stock_sources curl -X POST http://localhost:8080/api/v1/data/short_stock_sources \
  • Network accessline 846
    curl -X POST http://localhost:8080/api/v1/data/short_stock_sources \
  • Network accessline 915
    # POST /api/v1/data/scanner curl -X POST http://localhost:8080/api/v1/data/scanner \
  • Network accessline 916
    curl -X POST http://localhost:8080/api/v1/data/scanner \
  • Network accessline 977
    # GET /api/v1/data/regulatory_punish curl http://localhost:8080/api/v1/data/regulatory_punish
  • Network accessline 978
    curl http://localhost:8080/api/v1/data/regulatory_punish
  • Network accessline 1022
    # GET /api/v1/data/regulatory_notice curl http://localhost:8080/api/v1/data/regulatory_notice
  • Network accessline 1023
    curl http://localhost:8080/api/v1/data/regulatory_notice

plugins/shioaji/skills/shioaji/references/MIGRATION.md

  • Access to secretsline 37
    [Credential-related source omitted]
  • Access to secretsline 39
    [Credential-related source omitted]
  • Access to secretsline 140
    [Credential-related source omitted]

plugins/shioaji/skills/shioaji/references/OBSERVABILITY.md

  • Network accessline 43
    curl --fail --get "$SHIOAJI_SERVER_URL/api/v1/monitor/metrics" \

plugins/shioaji/skills/shioaji/references/ORDERS.md

  • Access to secretsline 46
    [Credential-related source omitted]
  • Network accessline 104
    # POST /api/v1/order/place_order curl -X POST http://localhost:8080/api/v1/order/place_order \
  • Network accessline 105
    curl -X POST http://localhost:8080/api/v1/order/place_order \
  • Network accessline 354
    # POST /api/v1/order/place_order curl -X POST http://localhost:8080/api/v1/order/place_order \
  • Network accessline 355
    curl -X POST http://localhost:8080/api/v1/order/place_order \
  • Network accessline 484
    # First refresh/list trades and copy the target trade.order.id. curl -X POST http://localhost:8080/api/v1/order/trades \
  • Network accessline 485
    curl -X POST http://localhost:8080/api/v1/order/trades \
  • Network accessline 489
    # POST /api/v1/order/update_price curl -X POST http://localhost:8080/api/v1/order/update_price \
  • Network accessline 490
    curl -X POST http://localhost:8080/api/v1/order/update_price \
  • Network accessline 507
    # First refresh/list trades and copy the target trade.order.id. curl -X POST http://localhost:8080/api/v1/order/trades \
  • Network accessline 508
    curl -X POST http://localhost:8080/api/v1/order/trades \
  • Network accessline 512
    # POST /api/v1/order/update_qty curl -X POST http://localhost:8080/api/v1/order/update_qty \
  • Network accessline 513
    curl -X POST http://localhost:8080/api/v1/order/update_qty \
  • Network accessline 529
    # First refresh/list trades and copy the target trade.order.id. curl -X POST http://localhost:8080/api/v1/order/trades \
  • Network accessline 530
    curl -X POST http://localhost:8080/api/v1/order/trades \
  • Network accessline 534
    # POST /api/v1/order/cancel_order curl -X POST http://localhost:8080/api/v1/order/cancel_order \
  • Network accessline 535
    curl -X POST http://localhost:8080/api/v1/order/cancel_order \
  • Network accessline 658
    # POST /api/v1/order/trade_cache_health (1.7.6+) curl -X POST http://localhost:8080/api/v1/order/trade_cache_health \
  • Network accessline 659
    curl -X POST http://localhost:8080/api/v1/order/trade_cache_health \
  • Network accessline 685
    # Cache-only: no upstream update_status request. curl -X POST http://localhost:8080/api/v1/order/trades \
  • Network accessline 686
    curl -X POST http://localhost:8080/api/v1/order/trades \
  • Network accessline 690
    # Authoritative reconciliation; omitting refresh has the same behavior. curl -X POST http://localhost:8080/api/v1/order/trades \
  • Network accessline 691
    curl -X POST http://localhost:8080/api/v1/order/trades \
  • Network accessline 792
    # POST /api/v1/order/order_deal_records curl -X POST http://localhost:8080/api/v1/order/order_deal_records \
  • Network accessline 793
    curl -X POST http://localhost:8080/api/v1/order/order_deal_records \
  • Access to secretsline 883
    [Credential-related source omitted]
  • Network accessline 1043
    # Subscribe — required before opening /stream/data/order_event curl -X POST http://localhost:8080/api/v1/auth/subscribe_trade \
  • Network accessline 1044
    curl -X POST http://localhost:8080/api/v1/auth/subscribe_trade \
  • Network accessline 1048
    # Unsubscribe curl -X POST http://localhost:8080/api/v1/auth/unsubscribe_trade \
  • Network accessline 1049
    curl -X POST http://localhost:8080/api/v1/auth/unsubscribe_trade \

plugins/shioaji/skills/shioaji/references/PREPARE.md

  • Network accessline 46
    Onboarding step order is strict. If the user says "I opened the account", the next gate is API Key / Secret Key creation at <https://www.sinotrade.com.tw/newweb/PythonAPIKey/>, not signing. If the user says "I signed", do not assume they re
  • Network accessline 47
    開通步驟順序要嚴格。使用者說「開好戶」後,下一關是到 <https://www.sinotrade.com.tw/newweb/PythonAPIKey/> 建立 API Key / Secret Key,不是簽署。使用者說「簽署好了」時,不要假設已取得 API Key / Secret Key;簽署頁不會發 API 憑證。簽署後先確認 API 憑證並進入模擬登入/下單測試。除非使用者明確要求正式就緒或前面關卡都完成,不要直接跳 CA。CA 下載在 API 管理頁(<http
  • Network accessline 55
    For account opening, use the official Shioaji campaign open-account URL: <https://www.sinotrade.com.tw/openact?strProd=0254&strWeb=0684&s=013299&utm_source=shioaji>. Do not replace it with the generic SinoPac home page (`https://www.sinotra
  • Network accessline 56
    開戶請使用 Shioaji 指定開戶連結: <https://www.sinotrade.com.tw/openact?strProd=0254&strWeb=0684&s=013299&utm_source=shioaji>。不要改成永豐首頁(`https://www.sinotrade.com.tw/`)或泛稱「永豐金證券」連結。
  • Network accessline 61
    | User says 使用者說 | Next response 下一步 | |---|---| | "I do not have an account yet" / 「還沒開戶」 | "第一步先開立永豐帳戶。請使用這個開戶頁: <https://www.sinotrade.com.tw/openact?strProd=0254&strWeb=0684&s=013299&utm_source=shioaji>。完成後回來告訴我「開好戶了」,我再帶你做 API Key。" |
  • Network accessline 62
    |---|---| | "I do not have an account yet" / 「還沒開戶」 | "第一步先開立永豐帳戶。請使用這個開戶頁: <https://www.sinotrade.com.tw/openact?strProd=0254&strWeb=0684&s=013299&utm_source=shioaji>。完成後回來告訴我「開好戶了」,我再帶你做 API Key。" | | "I opened the account" / 「開好戶了」 | "很好
  • Network accessline 63
    | "I do not have an account yet" / 「還沒開戶」 | "第一步先開立永豐帳戶。請使用這個開戶頁: <https://www.sinotrade.com.tw/openact?strProd=0254&strWeb=0684&s=013299&utm_source=shioaji>。完成後回來告訴我「開好戶了」,我再帶你做 API Key。" |
  • Network accessline 64
    | "I opened the account" / 「開好戶了」 | "很好,下一步是建立 API Key / Secret Key。請到 API 管理頁 <https://www.sinotrade.com.tw/newweb/PythonAPIKey/> 新增 API KEY。這一步不是去證券/期貨簽署頁。完成後請確認你已經在本機安全保存 Secret Key;不要貼到對話。" |
  • Network accessline 65
    | "I created API Key" / 「金鑰建好了」 | "下一步是簽署對應商品的 API 約定書。證券: <https://www.sinotrade.com.tw/newweb/signCenter/S_openAPI/>;期貨/選擇權: <https://www.sinotrade.com.tw/newweb/signCenter/F_openApi/>。完成後告訴我你簽了哪些商品。" |
  • Network accessline 66
    | "I signed" / 「簽署好了」 | "很好。請先確認你已經有 API Key / Secret Key 並已安全保存。接下來是模擬登入/下單測試,不是 CA。你要建立新的入門專案,還是只在目前資料夾跑一次性測試?" | | "Simulation test passed" / 「模擬測試通過」 | "下一步才是正式環境就緒: 需要正式權限、CA 憑證與 production login 檢查。若你只想先練習模擬,可以先停在這裡。" | | "I need prod
  • Network accessline 68
    | "I need production readiness" / 「我要正式環境就緒」 | "請到 API 管理頁 <https://www.sinotrade.com.tw/newweb/PythonAPIKey/> 下載 CA 憑證,或用 eleader;不要用簽署頁下載 CA。" |
  • Network accessline 73
    | Step 步驟 | URL | |---|---| | SinoPac account opening 開立永豐帳戶 | <https://www.sinotrade.com.tw/openact?strProd=0254&strWeb=0684&s=013299&utm_source=shioaji> |
  • Network accessline 74
    |---|---| | SinoPac account opening 開立永豐帳戶 | <https://www.sinotrade.com.tw/openact?strProd=0254&strWeb=0684&s=013299&utm_source=shioaji> | | API Key / Secret Key creation 建立金鑰 | <https://www.sinotrade.com.tw/newweb/PythonAPIKey/> |
  • Network accessline 75
    | SinoPac account opening 開立永豐帳戶 | <https://www.sinotrade.com.tw/openact?strProd=0254&strWeb=0684&s=013299&utm_source=shioaji> |
  • Network accessline 76
    | API Key / Secret Key creation 建立金鑰 | <https://www.sinotrade.com.tw/newweb/PythonAPIKey/> |
  • Network accessline 77
    | Stock API signing 證券 API 簽署 | <https://www.sinotrade.com.tw/newweb/signCenter/S_openAPI/> | | Futures/options API signing 期貨/選擇權 API 簽署 | <https://www.sinotrade.com.tw/newweb/signCenter/F_openApi/> | | CA certificate download CA 憑證下載 | <h
  • Network accessline 78
    | Futures/options API signing 期貨/選擇權 API 簽署 | <https://www.sinotrade.com.tw/newweb/signCenter/F_openApi/> |
  • Network accessline 79
    | CA certificate download CA 憑證下載 | <https://www.sinotrade.com.tw/newweb/PythonAPIKey/> |
  • Access to secretsline 106
    [Credential-related source omitted]
  • Network accessline 114
    3. Check whether credentials + CA exist in `.env` / secret store — **do not ask the user to paste secrets**. If credentials are ready but no local config exists, create a placeholder `.env` for local editing. 檢查 `.env`/secret store 是否已有金鑰與憑
  • Network accessline 115
    4. If credentials are missing, guide the user through official key creation + CA download (Steps 2 & 4). 缺金鑰就引導 Step 2、4。 5. If signing is incomplete, send the user to the direct signing page for the needed product: stock API signing <https
  • Network accessline 116
    5. If signing is incomplete, send the user to the direct signing page for the needed product: stock API signing <https://www.sinotrade.com.tw/newweb/signCenter/S_openAPI/> or futures/options API signing <https://www.sinotrade.com.tw/newweb/
  • Network accessline 133
    Tutorial 教學: <https://sinotrade.github.io/tutor/prepare/open_account/> · Open account 開戶: <https://www.sinotrade.com.tw/openact?strProd=0254&strWeb=0684&s=013299&utm_source=shioaji>
  • Network accessline 140
    Tutorial 教學: <https://sinotrade.github.io/tutor/prepare/token/> · Portal 入口: <https://www.sinotrade.com.tw/newweb/PythonAPIKey/>
  • Access to secretsline 149
    [Credential-related source omitted]
  • Network accessline 175
    Tutorial 教學: <https://sinotrade.github.io/tutor/prepare/terms/>
  • Network accessline 183
    1. **Sign the API documents** on the direct page for the product you will trade — stock API signing: <https://www.sinotrade.com.tw/newweb/signCenter/S_openAPI/>; futures/options API signing: <https://www.sinotrade.com.tw/newweb/signCenter/F
  • Network accessline 184
    2. **Run the required simulation tests** (`simulation=True`): a **login test** plus a **`place_order` test** for each signed product (stock test uses 2890; futures uses a near-month TXF contract). The first test order also prints a one-time
  • Network accessline 186
    4. **Verify** on the same direct signing page (stock <https://www.sinotrade.com.tw/newweb/signCenter/S_openAPI/> · futures/options <https://www.sinotrade.com.tw/newweb/signCenter/F_openApi/>), or log in to production and read the `signed` f
  • Access to secretsline 202
    [Credential-related source omitted]
  • Network accessline 250
    Tutorial 教學: <https://sinotrade.github.io/tutor/prepare/token/>
  • Network accessline 257
    - **Method 1 — New SinoTrade web (recommended, cross-platform 跨平台,推薦):** on the **API 管理頁面** (<https://www.sinotrade.com.tw/newweb/PythonAPIKey/>), click **下載憑證 ("Download Certificate")**, then move the downloaded `Sinopac.pfx` to the path 
  • Network accessline 258
    - **Method 2 — eleader (Windows only 僅 Windows):** download **eleader** from <https://www.sinotrade.com.tw/CSCenter/CSCenter_13_3>, log in, go to **帳戶資料 → (3303) 帳號資料設定**, click **步驟說明**, and follow **CA 操作步驟說明**. 下載 eleader 登入後,帳戶資料 →(3303
  • Access to secretsline 271
    [Credential-related source omitted]
  • Access to secretsline 273
    [Credential-related source omitted]
  • Access to secretsline 274
    [Credential-related source omitted]
  • Network accessline 302
    - Prerequisites 前置: Chrome or Edge; the **Claude in Chrome** extension **≥ 1.0.36**; Claude Code **≥ 2.0.73**; a direct Anthropic plan (Pro/Max/Team/Enterprise). Not supported on Brave/Arc/WSL, nor via Bedrock/Vertex/Foundry. (Web Store: <h
  • Network accessline 308
    agent-browser open "https://www.sinotrade.com.tw/newweb/PythonAPIKey/"
  • Network accessline 324
    1. Open account page (if no SinoPac account). 無帳戶先開戶頁。 2. Open the direct API signing page for the needed product: stock <https://www.sinotrade.com.tw/newweb/signCenter/S_openAPI/> or futures/options <https://www.sinotrade.com.tw/newweb/sig
  • Network accessline 325
    2. Open the direct API signing page for the needed product: stock <https://www.sinotrade.com.tw/newweb/signCenter/S_openAPI/> or futures/options <https://www.sinotrade.com.tw/newweb/signCenter/F_openApi/>. 開對應商品的 API 簽署頁。
  • Network accessline 340
    |---|---|---| | SinoPac account 帳戶 | Login works; account list is non-empty 登入成功且帳戶列表非空 | Open account page; guide opening 開戶頁引導 | | API documents signed 已簽署 | Required accounts show `signed=True` after login 所需帳戶 `signed=True` | Open the d
  • Network accessline 341
    | SinoPac account 帳戶 | Login works; account list is non-empty 登入成功且帳戶列表非空 | Open account page; guide opening 開戶頁引導 | | API documents signed 已簽署 | Required accounts show `signed=True` after login 所需帳戶 `signed=True` | Open the direct product 
  • Network accessline 342
    | API documents signed 已簽署 | Required accounts show `signed=True` after login 所需帳戶 `signed=True` | Open the direct product signing page: stock <https://www.sinotrade.com.tw/newweb/signCenter/S_openAPI/> or futures/options <https://www.sinot
  • Access to secretsline 352
    [Credential-related source omitted]
  • Network accessline 363
    Shioaji prepare status: - Done: installation, simulation login, stock simulation order test - Needs user action: sign futures API document at https://www.sinotrade.com.tw/newweb/signCenter/F_openApi/
  • Network accessline 364
    - Done: installation, simulation login, stock simulation order test - Needs user action: sign futures API document at https://www.sinotrade.com.tw/newweb/signCenter/F_openApi/ - Blocked: production readiness — API Key lacks 正式環境 permission
  • Network accessline 365
    - Needs user action: sign futures API document at https://www.sinotrade.com.tw/newweb/signCenter/F_openApi/
  • Network accessline 446
    - Releases: <https://github.com/Sinotrade/Shioaji/releases>
  • Access to secretsline 471
    [Credential-related source omitted]
  • Access to secretsline 525
    [Credential-related source omitted]
  • Access to secretsline 531
    [Credential-related source omitted]
  • Access to secretsline 544
    [Credential-related source omitted]
  • Access to secretsline 545
    [Credential-related source omitted]
  • Access to secretsline 552
    [Credential-related source omitted]
  • Access to secretsline 561
    [Credential-related source omitted]
  • Access to secretsline 572
    [Credential-related source omitted]
  • Access to secretsline 588
    [Credential-related source omitted]
  • Access to secretsline 589
    [Credential-related source omitted]
  • Access to secretsline 592
    [Credential-related source omitted]
  • Access to secretsline 593
    [Credential-related source omitted]
  • Access to secretsline 597
    [Credential-related source omitted]
  • Access to secretsline 652
    [Credential-related source omitted]
  • Access to secretsline 672
    [Credential-related source omitted]
  • Network accessline 688
    This example uses [uvloop](https://pypi.org/project/uvloop/) (`pip install uvloop`), the recommended event loop for `ShioajiAsync` under high-throughput streaming. `uvloop.run(...)` is the preferred entry point since uvloop 0.18 (older vers
  • Network accessline 690
    本範例使用 [uvloop](https://pypi.org/project/uvloop/)(`pip install uvloop`),這是 `ShioajiAsync` 在高吞吐串流時建議的 event loop。自 uvloop 0.18 起建議使用 `uvloop.run(...)`(舊版則在 `asyncio.run(main())` 之前呼叫一次 `uvloop.install()`)。若是 Windows 使用者,uvloop 不支援(僅 Linux/mac
  • Access to secretsline 1023
    [Credential-related source omitted]
  • Access to secretsline 1024
    [Credential-related source omitted]
  • Access to secretsline 1030
    [Credential-related source omitted]
  • Access to secretsline 1031
    [Credential-related source omitted]

plugins/shioaji/skills/shioaji/references/RESERVE.md

  • Access to secretsline 101
    [Credential-related source omitted]
  • Network accessline 122
    curl -X POST http://localhost:8080/api/v1/order/stock_reserve_summary \
  • Network accessline 163
    curl -X POST http://localhost:8080/api/v1/order/stock_reserve_detail \
  • Network accessline 208
    curl -X POST http://localhost:8080/api/v1/order/reserve_stock \
  • Network accessline 262
    curl -X POST http://localhost:8080/api/v1/order/earmarking_detail \
  • Network accessline 308
    curl -X POST http://localhost:8080/api/v1/order/reserve_earmarking \

plugins/shioaji/skills/shioaji/references/RUST.md

  • Access to secretsline 34
    [Credential-related source omitted]
  • Network accessline 36
    The server runs at `http://localhost:8080` with all endpoints under `/api/v1/`.
  • Network accessline 212
    const BASE_URL: &str = "http://localhost:8080";
  • Network accessline 355
    const BASE_URL: &str = "http://localhost:8080";
  • Network accessline 422
    # Make sure the server is running first openapi-generator generate \   -i http://localhost:8080/openapi.json \
  • Network accessline 423
    openapi-generator generate    -i http://localhost:8080/openapi.json
  • Network accessline 424
    -i http://localhost:8080/openapi.json \

plugins/shioaji/skills/shioaji/references/STREAMING.md

  • Access to secretsline 46
    [Credential-related source omitted]
  • Network accessline 152
    # POST /api/v1/stream/subscribe curl -X POST http://localhost:8080/api/v1/stream/subscribe \
  • Network accessline 153
    curl -X POST http://localhost:8080/api/v1/stream/subscribe \
  • Network accessline 163
    # POST /api/v1/stream/unsubscribe curl -X POST http://localhost:8080/api/v1/stream/unsubscribe \
  • Network accessline 164
    curl -X POST http://localhost:8080/api/v1/stream/unsubscribe \
  • Access to secretsline 378
    [Credential-related source omitted]
  • Network accessline 695
    # Market data: subscribe per contract before opening tick/bidask/quote streams curl -X POST http://localhost:8080/api/v1/stream/subscribe \
  • Network accessline 696
    curl -X POST http://localhost:8080/api/v1/stream/subscribe \
  • Network accessline 700
    # Index: use the exchange/master code. Tick/BidAsk/Quote all map to QUO/v1/IND. curl -X POST http://localhost:8080/api/v1/stream/subscribe \
  • Network accessline 701
    curl -X POST http://localhost:8080/api/v1/stream/subscribe \
  • Network accessline 706
    # require target_code from contract lookup. Regular futures codes do not. # Step 1: look up TXFR1 and read the returned target_code, for example TXFF6. curl "http://localhost:8080/api/v1/data/contracts/TXFR1?security_type=FUT"
  • Network accessline 708
    curl "http://localhost:8080/api/v1/data/contracts/TXFR1?security_type=FUT"
  • Network accessline 710
    # Step 2: subscribe with both code=TXFR1 and the returned target_code. # For TXFR1/TXFR2, missing target_code can return 200 but only emit SSE heartbeats. curl -X POST http://localhost:8080/api/v1/stream/subscribe \
  • Network accessline 711
    # For TXFR1/TXFR2, missing target_code can return 200 but only emit SSE heartbeats. curl -X POST http://localhost:8080/api/v1/stream/subscribe \   -H "Content-Type: application/json" \
  • Network accessline 712
    curl -X POST http://localhost:8080/api/v1/stream/subscribe \
  • Network accessline 717
    # REQUIRED for /stream/data/order_event in production and simulation — without it the SSE # stream only emits heartbeats. Mirrors api.subscribe_trade(account) in Python. curl -X POST http://localhost:8080/api/v1/auth/subscribe_trade \
  • Network accessline 718
    # stream only emits heartbeats. Mirrors api.subscribe_trade(account) in Python. curl -X POST http://localhost:8080/api/v1/auth/subscribe_trade \   -H "Content-Type: application/json" \
  • Network accessline 719
    curl -X POST http://localhost:8080/api/v1/auth/subscribe_trade \
  • Network accessline 723
    # Connect to SSE (all channels). These filters affect contract_event only. curl -N "http://localhost:8080/api/v1/stream/data?region=TW&security_type=STK"
  • Network accessline 724
    curl -N "http://localhost:8080/api/v1/stream/data?region=TW&security_type=STK"
  • Network accessline 726
    # Or connect to a specific channel 或連接特定頻道 curl -N http://localhost:8080/api/v1/stream/data/tick_stk
  • Network accessline 727
    curl -N http://localhost:8080/api/v1/stream/data/tick_stk
  • Network accessline 728
    curl -N http://localhost:8080/api/v1/stream/data/quote_idx
  • Network accessline 729
    curl -N http://localhost:8080/api/v1/stream/data/order_event
  • Network accessline 777
    # GET /api/v1/stream/status curl http://localhost:8080/api/v1/stream/status
  • Network accessline 778
    curl http://localhost:8080/api/v1/stream/status
  • Network accessline 793
    const es = new EventSource("http://localhost:8080/api/v1/stream/data?region=TW");

plugins/shioaji/skills/shioaji/references/STREAMING_ENRICHED.md

  • Network accessline 256
    curl -X POST localhost:8080/api/v1/stream/subscribe/index_components \
  • Network accessline 257
    -H 'Content-Type: application/json' \   -d '{"index":{"security_type":"IND","exchange":"TSE","code":"IX0001","target_code":null},"projection":{"kind":"ranking","target":"group","metric":"contribution","order":"abs_desc","limit":10}}' curl -
  • Network accessline 259
    curl -N localhost:8080/api/v1/stream/data/index_components

plugins/shioaji/skills/shioaji/references/STREAMING_SIGNALS.md

  • Network accessline 104
    # preset rule 規則類 curl -X POST localhost:8080/api/v1/stream/subscribe/scanner -H 'Content-Type: application/json' \
  • Network accessline 105
    curl -X POST localhost:8080/api/v1/stream/subscribe/scanner -H 'Content-Type: application/json' \
  • Network accessline 106
    -d '{"scanner":{"kind":"preset_rule","id":"trade_price_drop"},"region":"TW","security_type":"STK","exchange":"TSE"}' # status filter 狀態過濾(plain string 字串形式) curl -X POST localhost:8080/api/v1/stream/subscribe/scanner -H 'Content-Type: appli
  • Network accessline 107
    # status filter 狀態過濾(plain string 字串形式) curl -X POST localhost:8080/api/v1/stream/subscribe/scanner -H 'Content-Type: application/json' \   -d '{"scanner":"simtrade","region":"TW","security_type":"STK","exchange":"TSE"}'
  • Network accessline 108
    curl -X POST localhost:8080/api/v1/stream/subscribe/scanner -H 'Content-Type: application/json' \
  • Network accessline 110
    curl -N localhost:8080/api/v1/stream/data/scanner

plugins/shioaji/skills/shioaji/references/TROUBLESHOOTING.md

  • Network accessline 44
    # HTTP: check usage from the running server # HTTP:從執行中的 server 檢查用量 curl http://localhost:8080/api/v1/auth/usage
  • Network accessline 46
    curl http://localhost:8080/api/v1/auth/usage
  • Network accessline 95
    # Check contract first 先確認合約 curl "http://localhost:8080/api/v1/data/contracts/2330?security_type=STK"
  • Network accessline 96
    curl "http://localhost:8080/api/v1/data/contracts/2330?security_type=STK"
  • Network accessline 98
    # Then query a known trading day 再查一個已知交易日 curl -X POST http://localhost:8080/api/v1/data/ticks \
  • Network accessline 99
    curl -X POST http://localhost:8080/api/v1/data/ticks \
  • Access to secretsline 204
    [Credential-related source omitted]
  • Access to secretsline 264
    [Credential-related source omitted]
  • Access to secretsline 310
    [Credential-related source omitted]
  • Access to secretsline 330
    [Credential-related source omitted]
  • Access to secretsline 395
    [Credential-related source omitted]
  • Access to secretsline 404
    [Credential-related source omitted]
  • Access to secretsline 548
    [Credential-related source omitted]
  • Network accessline 553
    [Credential-related source omitted]
  • Network accessline 554
    [Credential-related source omitted]
  • Access to secretsline 554
    [Credential-related source omitted]
  • Network accessline 555
    http://your-server:8080/api/v1/auth/accounts
  • Access to secretsline 564
    [Credential-related source omitted]
  • Access to secretsline 565
    [Credential-related source omitted]
  • Network accessline 573
    - The default plaintext `http://` listener is HTTP/1.1. Configure
  • Network accessline 574
    `SJ_HTTP_TLS_CERT` and `SJ_HTTP_TLS_KEY`, then use the matching `https://`
  • Network accessline 577
    do not use ACME for localhost. - Verify outside the app with   `curl --http2 -sS -o /dev/null -w 'HTTP %{http_version}\n' https://localhost:8080/api/v1/health`.
  • Network accessline 579
    `curl --http2 -sS -o /dev/null -w 'HTTP %{http_version}\n' https://localhost:8080/api/v1/health`.
  • Network accessline 583
    - Generate the certificate for every hostname/IP the client actually uses,   and open the URL with a matching name. A certificate for `localhost` does   not validate `https://192.168.x.x`.
  • Network accessline 584
    and open the URL with a matching name. A certificate for `localhost` does   not validate `https://192.168.x.x`. - Run `mkcert -install` in the same OS/browser trust environment. Container,
  • Network accessline 585
    not validate `https://192.168.x.x`.
  • Network accessline 596
    QUIC uses the same numeric UDP port. - First verify the TCP HTTPS response contains `Alt-Svc`, then test with a curl   build that supports `--http3-only`. Browser upgrade is automatic and may
  • Network accessline 597
    - First verify the TCP HTTPS response contains `Alt-Svc`, then test with a curl   build that supports `--http3-only`. Browser upgrade is automatic and may   occur after the first HTTPS response.
  • Dangerous shell operationline 636
    rm /path/to/shioaji.sock
  • Network accessline 648
    - Ensure you subscribe to at least one contract before connecting to the SSE endpoint, and branch on `success` in `SubscriptionResponse`   確保在連接 SSE 端點前至少訂閱一個合約,並檢查 `SubscriptionResponse.success` - Use `curl -N` (no buffering) to see events
  • Network accessline 649
    確保在連接 SSE 端點前至少訂閱一個合約,並檢查 `SubscriptionResponse.success` - Use `curl -N` (no buffering) to see events in real time   使用 `curl -N`(無緩衝)即時查看事件
  • Network accessline 650
    - Use `curl -N` (no buffering) to see events in real time
  • Network accessline 651
    使用 `curl -N`(無緩衝)即時查看事件
  • Network accessline 654
    # 1. Subscribe first 先訂閱 curl -X POST http://localhost:8080/api/v1/stream/subscribe \
  • Network accessline 655
    curl -X POST http://localhost:8080/api/v1/stream/subscribe \
  • Network accessline 659
    # 2. Then connect to SSE 再連接 SSE curl -N http://localhost:8080/api/v1/stream/data
  • Network accessline 660
    curl -N http://localhost:8080/api/v1/stream/data
  • Network accessline 674
    # Continuous futures alias example 連續月範例 curl "http://localhost:8080/api/v1/data/contracts/TXFR1?security_type=FUT"
  • Network accessline 675
    curl "http://localhost:8080/api/v1/data/contracts/TXFR1?security_type=FUT"
  • Network accessline 677
    curl -X POST http://localhost:8080/api/v1/stream/subscribe \

plugins/shioaji/skills/shioaji/references/WATCHLIST.md

  • Access to secretsline 75
    [Credential-related source omitted]
  • Network accessline 96
    curl -X GET http://localhost:8080/api/v1/watchlist
  • Network accessline 131
    curl -X GET http://localhost:8080/api/v1/watchlist/{id}
  • Network accessline 173
    curl -X POST http://localhost:8080/api/v1/watchlist \
  • Network accessline 219
    curl -X DELETE http://localhost:8080/api/v1/watchlist/{id}
  • Network accessline 264
    curl -X PUT http://localhost:8080/api/v1/watchlist/{id} \
  • Network accessline 310
    curl -X POST http://localhost:8080/api/v1/watchlist/{id}/contracts \
  • Network accessline 355
    curl -X DELETE http://localhost:8080/api/v1/watchlist/{id}/contracts \

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

Signal confidence: 500 facts

and 450 more

Only the first 500 facts are listed.

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeNativeManifest .claude-plugin/marketplace.json.claude/skills/<skill-name>/
CodexNativeManifest plugins/shioaji/skills/shioaji/references/AGENTS.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md plugins/shioaji/skills/shioaji/SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md plugins/shioaji/skills/shioaji/SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md plugins/shioaji/skills/shioaji/SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md plugins/shioaji/skills/shioaji/SKILL.md.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.