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.
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.
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>/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
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 tokensAlways available to the agent
SKILL.md
4,938 tokensWhen the skill is activated
Reference documents
200,870 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- How to Use References / 如何使用參考文件
- Task Routing — "I want to..." / 任務路由
- Simulation vs Production Safety / 模擬與正式環境安全
- Rate Limits / 速率限制
- Trading Rule Sources / 交易規則來源
- Error Handling / 錯誤處理
- Logout / 登出
Files
../../../../.claude-plugin/marketplace.jsonasset492 bytes../../.claude-plugin/plugin.jsonasset719 bytesSKILL.mdcore19,377 bytesSKILL.mdcore19,377 bytesreferences/ACCOUNTING.mddoc25,977 bytesreferences/ADVANCED.mddoc27,595 bytesreferences/AGENTS.mddoc1,556 bytesreferences/AGENT_HARNESS.mddoc14,742 bytesreferences/CLI.mddoc54,915 bytesreferences/COMBO_ORDERS.mddoc25,471 bytesreferences/CONCEPTS.mddoc18,113 bytesreferences/CONTRACTS.mddoc15,902 bytesreferences/CONTRACT_FIELDS.mddoc12,519 bytesreferences/CPP.mddoc27,030 bytesreferences/CSHARP.mddoc23,723 bytesreferences/ERROR_CODES.mddoc24,537 bytesreferences/GO.mddoc28,811 bytesreferences/HTTP_API.mddoc58,198 bytesreferences/JAVA.mddoc29,170 bytesreferences/JAVASCRIPT.mddoc29,255 bytesreferences/MARKET_DATA.mddoc38,463 bytesreferences/MIGRATION.mddoc6,700 bytesreferences/OBSERVABILITY.mddoc9,279 bytesreferences/ORDERS.mddoc54,590 bytesreferences/PREPARE.mddoc70,067 bytesreferences/RESERVE.mddoc15,240 bytesreferences/RUST.mddoc16,767 bytesreferences/STREAMING.mddoc39,838 bytesreferences/STREAMING_ENRICHED.mddoc14,169 bytesreferences/STREAMING_SIGNALS.mddoc9,432 bytesreferences/TROUBLESHOOTING.mddoc45,489 bytesreferences/WATCHLIST.mddoc17,348 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubSkills 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 shellAutomated 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:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- 1 dangerous shell commandin 1 file: shioaji/references/TROUBLESHOOTING.md:636
- 436 network referencesin 28 files: shioaji/references/HTTP_API.md:57 shioaji/references/PREPARE.md:46 shioaji/references/JAVASCRIPT.md:43 and 25 more
- No hidden or obfuscated text
- No instruction overrides
- No executable scripts
- 97 references to secretsin 22 files: shioaji/references/PREPARE.md:106 shioaji/references/CLI.md:140 shioaji/references/CPP.md:39 and 19 more
- No requests to vote in Hot
Show all 534 signals by file
.claude-plugin/marketplace.json
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
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®ion=TW" - Network accessline 222
curl "http://localhost:8080/api/v1/data/contracts?security_type=STK®ion=TW" - Network accessline 223
curl "http://localhost:8080/api/v1/data/contracts?security_type=STK®ion=TW&page=1&page_size=500" - Network accessline 225
# Shard-aware queries. curl "http://localhost:8080/api/v1/data/contracts/futures?root=TXF®ion=TW" - Network accessline 226
curl "http://localhost:8080/api/v1/data/contracts/futures?root=TXF®ion=TW" - Network accessline 227
curl "http://localhost:8080/api/v1/data/contracts/options?root=TXO®ion=TW" - Network accessline 228
curl "http://localhost:8080/api/v1/data/contracts/warrants?underlying_code=2330®ion=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®ion=TW" - Network accessline 684
curl "http://localhost:8080/api/v1/data/contracts?security_type=STK®ion=TW" - Network accessline 686
# One-based pagination for a large UI curl "http://localhost:8080/api/v1/data/contracts?security_type=STK®ion=TW&page=1&page_size=500" - Network accessline 687
curl "http://localhost:8080/api/v1/data/contracts?security_type=STK®ion=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®ion=TW" - Network accessline 720
curl "http://localhost:8080/api/v1/data/contracts/options?root=TXO&option_right=C®ion=TW" - Network accessline 721
curl "http://localhost:8080/api/v1/data/contracts/warrants?underlying_code=2330®ion=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®ion=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
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
- Network access in prose of the SKILL.mdshioaji/SKILL.md:42Low confidence
- Network access in prose of the SKILL.mdshioaji/SKILL.md:43Low confidence
- Network access in prose of the SKILL.mdshioaji/SKILL.md:44Low confidence
- Network access in prose of the SKILL.mdshioaji/SKILL.md:45Low confidence
- Network access in prose of the SKILL.mdshioaji/SKILL.md:48Low confidence
- Network access in prose of the SKILL.mdshioaji/SKILL.md:50Low confidence
- Network access in prose of the SKILL.mdshioaji/SKILL.md:166Low confidence
- Network access in prose of the SKILL.mdshioaji/SKILL.md:175Low confidence
- Network access in prose of the SKILL.mdshioaji/SKILL.md:176Low confidence
- Network access in prose of the SKILL.mdshioaji/SKILL.md:177Low confidence
- Access to secrets in code of documentation: a variable, placeholder or call, not a stored valueshioaji/references/ACCOUNTING.md:77Low confidence
- Network access in code of documentationshioaji/references/ACCOUNTING.md:108Low confidence
- Network access in code of documentationshioaji/references/ACCOUNTING.md:166Low confidence
- Network access in code of documentationshioaji/references/ACCOUNTING.md:213Low confidence
- Network access in code of documentationshioaji/references/ACCOUNTING.md:214Low confidence
- Network access in code of documentationshioaji/references/ACCOUNTING.md:218Low confidence
- Network access in code of documentationshioaji/references/ACCOUNTING.md:219Low confidence
- Network access in code of documentationshioaji/references/ACCOUNTING.md:253Low confidence
- Network access in code of documentationshioaji/references/ACCOUNTING.md:305Low confidence
- Network access in code of documentationshioaji/references/ACCOUNTING.md:357Low confidence
- Network access in code of documentationshioaji/references/ACCOUNTING.md:404Low confidence
- Network access in code of documentationshioaji/references/ACCOUNTING.md:460Low confidence
- Network access in code of documentationshioaji/references/ACCOUNTING.md:461Low confidence
- Network access in code of documentationshioaji/references/ACCOUNTING.md:504Low confidence
- Network access in code of documentationshioaji/references/ACCOUNTING.md:505Low confidence
- Network access in code of documentationshioaji/references/ACCOUNTING.md:569Low confidence
- Access to secrets in code of documentation: a variable, placeholder or call, not a stored valueshioaji/references/ADVANCED.md:43Low confidence
- Access to secrets in code of documentation: a variable, placeholder or call, not a stored valueshioaji/references/ADVANCED.md:307Low confidence
- Network access in code of documentationshioaji/references/ADVANCED.md:660Low confidence
- Network access in code of documentationshioaji/references/ADVANCED.md:661Low confidence
- Network access in code of documentationshioaji/references/ADVANCED.md:665Low confidence
- Network access in code of documentationshioaji/references/ADVANCED.md:666Low confidence
- Network access in code of documentationshioaji/references/ADVANCED.md:678Low confidence
- Network access in code of documentationshioaji/references/ADVANCED.md:679Low confidence
- Network access in code of documentationshioaji/references/ADVANCED.md:680Low confidence
- Network access in code of documentationshioaji/references/ADVANCED.md:770Low confidence
- Network access in code of documentationshioaji/references/ADVANCED.md:771Low confidence
- Network access in code of documentationshioaji/references/ADVANCED.md:772Low confidence
- Network access in prose of documentationshioaji/references/AGENT_HARNESS.md:82Low confidence
- Network access in prose of documentationshioaji/references/AGENT_HARNESS.md:84Low confidence
- Access to secrets in code of documentationshioaji/references/AGENT_HARNESS.md:185Low confidence
- Access to secrets in prose of documentation: a variable, placeholder or call, not a stored valueshioaji/references/CLI.md:140Low confidence
- Network access in prose of documentationshioaji/references/CLI.md:150Low confidence
- Network access in prose of documentationshioaji/references/CLI.md:151Low confidence
- Network access in prose of documentationshioaji/references/CLI.md:152Low confidence
- Access to secrets in prose of documentation: a variable, placeholder or call, not a stored valueshioaji/references/CLI.md:315Low confidence
- Access to secrets in prose of documentation: a variable, placeholder or call, not a stored valueshioaji/references/CLI.md:329Low confidence
- Access to secrets in code of documentation: a variable, placeholder or call, not a stored valueshioaji/references/CLI.md:1256Low confidence
- Access to secrets in code of documentation: a variable, placeholder or call, not a stored valueshioaji/references/CLI.md:1257Low confidence
- Access to secrets in code of documentation: a variable, placeholder or call, not a stored valueshioaji/references/CLI.md:1269Low confidence
and 450 more
Only the first 500 facts are listed.
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Manifest .claude-plugin/marketplace.json | .claude/skills/<skill-name>/ |
| Codex | Native | Manifest plugins/shioaji/skills/shioaji/references/AGENTS.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md plugins/shioaji/skills/shioaji/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md plugins/shioaji/skills/shioaji/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md plugins/shioaji/skills/shioaji/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard 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.