Skip to main content

Shioaji

shioaji-logosinopac-logo

PyPI - Status PyPI - Python Version PyPI - Downloads Coverage doc Telegram Discord

繁體中文

Shioaji is a trading API provided by Sinopac that offers a comprehensive and user-friendly platform for accessing the Taiwan financial markets. Shioaji is a cross-language, cross-platform universal trading platform — accessible through native Python bindings (import shioaji as sj) or any HTTP-capable language (JavaScript/TypeScript, Go, C/C++, C#, Rust, Java/Kotlin) for trading stocks, futures, options, and combo orders. On the Python side, Shioaji integrates seamlessly with familiar packages such as numpy, scipy, pandas, pytorch, and tensorflow for building custom trading models; on the HTTP side, a built-in OpenAPI interactive document, SSE real-time streaming, and a visual Dashboard provide live monitoring of server status, SSE connections, CA certificates, accounts, and API usage. Whether for traders new to the world of programmatic trading or experienced developers seeking a more powerful platform, Shioaji is built to deliver. Sign up for a free account today and start trading with confidence.

The first Taiwan trading API with AI coding agent skill supportClaude Code & Codex CLI

AI Coding Agent Skills

Shioaji is the first Taiwan trading API with AI coding agent skill support. Get AI-assisted guidance on using the Shioaji API.

Claude Code

claude plugin marketplace add Sinotrade/Shioaji
claude plugin install shioaji

Multi-platform Installers (Cursor, Windsurf, Copilot, Codex, and more)

npx skills add Sinotrade/Shioaji                # skills.sh - 18+ agents
npx skillkit install Sinotrade/Shioaji          # skillkit - 32+ agents
npx openskills install Sinotrade/Shioaji        # openskills - universal

Installation

Expand the section that matches your installation preference.

Python Package
# uv (recommended)
uv add shioaji

# pip
pip install shioaji

CLI Tool
uv tool install shioaji
shioaji --help

Standalone Installer

Linux / macOS:

# Stable
curl -fsSL https://github.com/Sinotrade/Shioaji/releases/latest/download/install.sh | sh

# Pre-release
curl -fsSL https://github.com/Sinotrade/Shioaji/releases/latest/download/install.sh | CHANNEL=prerelease sh

# Specific version
curl -fsSL https://github.com/Sinotrade/Shioaji/releases/latest/download/install.sh | VERSION=v1.5.6 sh

Windows (PowerShell):

# Stable
irm https://github.com/Sinotrade/Shioaji/releases/latest/download/install.ps1 | iex

# Pre-release
$env:CHANNEL="prerelease"; irm https://github.com/Sinotrade/Shioaji/releases/latest/download/install.ps1 | iex

Quickstart

Expand the section that matches your preferred development language.

Python

Initialization (login + activate certificate)

import shioaji as sj

api = sj.Shioaji()
accounts = api.login(api_key="YOUR_KEY", secret_key="YOUR_SECRET")
api.activate_ca(
    ca_path="/c/your/ca/path/Sinopac.pfx",
    ca_passwd="YOUR_CA_PASSWORD",
)

Just import the API library like other popular Python packages and create the instance to start using it. After logging in, the API is ready for market data queries; once the certificate is activated, order placement is enabled.

Subscribe to Streaming Market Data

api.subscribe(api.Contracts.Stocks["2330"], quote_type="tick")
api.subscribe(api.Contracts.Stocks["2330"], quote_type="bid_ask")
api.subscribe(api.Contracts.Futures["TXFC0"], quote_type="tick")

Subscribe to real-time market data. Pass a contract into the subscribe function and specify a quote_type to begin receiving streaming data.

Place Order

contract = api.Contracts.Stocks["2890"]
order = sj.StockOrder(
    price=9.6,
    quantity=1,
    action=sj.Action.Buy,
    price_type=sj.StockPriceType.LMT,
    order_type=sj.OrderType.ROD,
    order_lot=sj.StockOrderLot.Common,
    account=api.stock_account,
)
trade = api.place_order(contract, order)

As with subscribing to market data using a contract, an order must first be defined and then passed alongside the contract into the place_order function. The function returns a trade object representing the order's status.

Cross-language

Start the Server

shioaji server start

Once the server is running, all trading capabilities are exposed as RESTful endpoints accessible from any HTTP-capable language (JavaScript, Go, C#, Java, Rust, C/C++, etc.).

Verify that the server has started successfully:

curl http://localhost:8080/api/v1/health

Getting Started

Once the server is running, the following entry points are available:

Purpose URL
Dashboard (live monitoring & management) http://localhost:8080/
OpenAPI document (browse API, run tests in-browser) http://localhost:8080/docs
Custom apps (entry point for self-uploaded web apps) http://localhost:8080/apps/<name>/

Open /docs to browse all endpoints, inspect request/response schemas, generate code samples in multiple languages, and test directly from the browser.

Custom Web Apps

Custom web apps can be uploaded from the Dashboard's Custom Apps card and run alongside the Dashboard; once uploaded, an app is served at http://localhost:8080/apps/<name>/.

  • Supported formats: a single HTML file, or a build output folder from frontend frameworks such as Vite / React / Vue (containing index.html).
  • Upload steps: log in to the Dashboard → click Custom AppsUpload → select the file or folder → set the application name <name>.
  • Project template: @sinotrade/create-shioaji-app — scaffolds a Shioaji frontend project with one command.

CLI

The shioaji CLI provides direct server management, market data queries, and order placement.

shioaji --help        # list all commands
shioaji tree --all    # show full command tree (with parameters and descriptions)

Server Management

Purpose Command
Start HTTP server (simulation mode) shioaji server start
Start HTTP server (production mode) shioaji server start --production
Check mode and authentication status shioaji server check
Show daemon status shioaji server status
Stop daemon shioaji server stop

Conclusion

This quickstart shows the multiple ways to access Shioaji — from native Python, HTTP API, and CLI to custom web apps. The focus is on building an easy-to-use, cross-language trading API that lets any developer trade Taiwan's financial markets with confidence.

For more usage details, see

doc

Communication

Telegram Discord

Releases and Contributing

Shioaji has a 14 day release cycle. See the release change log. Please let us know if you encounter a bug by filing an issue.

We appreciate all suggestions. If you have any idea you'd like to see implemented, feel free to discuss with us on Telegram or Discord.

The Team

Shioaji is currently maintained by Sally, Yvictor, Zecheng and Po Chien Yang with major contributions.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

shioaji-1.7.2-cp314-cp314t-manylinux_2_28_aarch64.whl (40.8 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ ARM64

shioaji-1.7.2-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (43.6 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ x86-64

shioaji-1.7.2-cp314-cp314t-macosx_11_0_arm64.whl (38.7 MB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

shioaji-1.7.2-cp314-cp314t-macosx_10_15_x86_64.whl (41.9 MB view details)

Uploaded CPython 3.14tmacOS 10.15+ x86-64

shioaji-1.7.2-cp37-abi3-win_amd64.whl (45.8 MB view details)

Uploaded CPython 3.7+Windows x86-64

shioaji-1.7.2-cp37-abi3-manylinux_2_28_aarch64.whl (40.8 MB view details)

Uploaded CPython 3.7+manylinux: glibc 2.28+ ARM64

shioaji-1.7.2-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (43.6 MB view details)

Uploaded CPython 3.7+manylinux: glibc 2.17+ x86-64

shioaji-1.7.2-cp37-abi3-macosx_11_0_arm64.whl (38.7 MB view details)

Uploaded CPython 3.7+macOS 11.0+ ARM64

shioaji-1.7.2-cp37-abi3-macosx_10_15_x86_64.whl (41.9 MB view details)

Uploaded CPython 3.7+macOS 10.15+ x86-64

File details

Details for the file shioaji-1.7.2-cp314-cp314t-manylinux_2_28_aarch64.whl.

File metadata

  • Download URL: shioaji-1.7.2-cp314-cp314t-manylinux_2_28_aarch64.whl
  • Upload date:
  • Size: 40.8 MB
  • Tags: CPython 3.14t, manylinux: glibc 2.28+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for shioaji-1.7.2-cp314-cp314t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2df5b2720da0682e92457cfd55e363718a0732480048d0210acf76bef791068a
MD5 40b36f03790e7f2b70b155543cf16bc8
BLAKE2b-256 826da9f9fedfd8fbeaccf11fafade957c8c55be766ecf30961675b73b8c0ba13

See more details on using hashes here.

File details

Details for the file shioaji-1.7.2-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

  • Download URL: shioaji-1.7.2-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 43.6 MB
  • Tags: CPython 3.14t, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for shioaji-1.7.2-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6678cf95b3b842915473d800f907654e40459cb589e34599c7073285eb9e91b6
MD5 8a08a70dd93ae10bc1fbf622ad26c369
BLAKE2b-256 ec31187bdeeebe0cb18c190b8d13d034a85236d68121dfaa1dcf2337b10e5ad1

See more details on using hashes here.

File details

Details for the file shioaji-1.7.2-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

  • Download URL: shioaji-1.7.2-cp314-cp314t-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 38.7 MB
  • Tags: CPython 3.14t, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for shioaji-1.7.2-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6f56f2e6e570adbe5f6eb4062746cd49fca2981e48daf96ace7297d1ff964c76
MD5 80d490493d52a8412bfbaa54d79294d0
BLAKE2b-256 9c9e28b6ae3f5682744c3add0f48597d0f40b2693dc1f9fc6892c60211995c78

See more details on using hashes here.

File details

Details for the file shioaji-1.7.2-cp314-cp314t-macosx_10_15_x86_64.whl.

File metadata

  • Download URL: shioaji-1.7.2-cp314-cp314t-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 41.9 MB
  • Tags: CPython 3.14t, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for shioaji-1.7.2-cp314-cp314t-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 784efdc95ebead973221cb36c3f72044c062efefeaf496beb3cfda82bee1333e
MD5 8653eb4477917b61994177d52123b5d7
BLAKE2b-256 d7584f7d5c8d45660857114b9227ba32253116ddb99de9b6a24edd9a8bf6a122

See more details on using hashes here.

File details

Details for the file shioaji-1.7.2-cp37-abi3-win_amd64.whl.

File metadata

  • Download URL: shioaji-1.7.2-cp37-abi3-win_amd64.whl
  • Upload date:
  • Size: 45.8 MB
  • Tags: CPython 3.7+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for shioaji-1.7.2-cp37-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 e0edc7d9eb3384c803140d41b3623961e7f426aa221e5a212dc2d3e566c174be
MD5 a031e4763085b59f4b41bd220287e7d8
BLAKE2b-256 1b4407aa28c2d7a176d38935aaa1750278ba623f5a15766413d2cce3a65f5eac

See more details on using hashes here.

File details

Details for the file shioaji-1.7.2-cp37-abi3-manylinux_2_28_aarch64.whl.

File metadata

  • Download URL: shioaji-1.7.2-cp37-abi3-manylinux_2_28_aarch64.whl
  • Upload date:
  • Size: 40.8 MB
  • Tags: CPython 3.7+, manylinux: glibc 2.28+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for shioaji-1.7.2-cp37-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d68f285d4ff73ac0fb8952f64a5e0c695853f7ee951d7c927e408f9ae89db896
MD5 1d4cb2eda205fe24819a39246eb57141
BLAKE2b-256 d104c7463deefc7cc87bfdc517b333f6b0c67fe6ec946977037763859bc1c8ca

See more details on using hashes here.

File details

Details for the file shioaji-1.7.2-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

  • Download URL: shioaji-1.7.2-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 43.6 MB
  • Tags: CPython 3.7+, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for shioaji-1.7.2-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 db558d722a82695e763d959766e407bf628c3ffc789e865adeaff2bd397a93e4
MD5 9bbb3bf33b1fb899e61ceea494d27abe
BLAKE2b-256 e3429862080ee5036fa4901998220b25a6eb45eac562d8cc10dddd843e54ee23

See more details on using hashes here.

File details

Details for the file shioaji-1.7.2-cp37-abi3-macosx_11_0_arm64.whl.

File metadata

  • Download URL: shioaji-1.7.2-cp37-abi3-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 38.7 MB
  • Tags: CPython 3.7+, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for shioaji-1.7.2-cp37-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 03005d3220fe726a3259dc862e00c6ef23bfc6beebf57a0f72f631bda8a38af8
MD5 e6b975ddf9063346beefb57c3f3718f5
BLAKE2b-256 9bad3c741ad460a341af5e109f0a5e52e4f4408369cfe3fba6d3308697bf9ce9

See more details on using hashes here.

File details

Details for the file shioaji-1.7.2-cp37-abi3-macosx_10_15_x86_64.whl.

File metadata

  • Download URL: shioaji-1.7.2-cp37-abi3-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 41.9 MB
  • Tags: CPython 3.7+, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for shioaji-1.7.2-cp37-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 0c56a2f21d8921736b6156efd13f2e5c391d4e7a2db3fa1528d932ee484f05c4
MD5 0a9b8de3a4b8d354bfd32739624da063
BLAKE2b-256 85d745ff306a522e93528f34188bd220b327682daf20cfd7a754b1524e44d67f

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.7.2

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page