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.4-cp314-cp314t-manylinux_2_28_aarch64.whl (41.6 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ ARM64

shioaji-1.7.4-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (44.4 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ x86-64

shioaji-1.7.4-cp314-cp314t-macosx_11_0_arm64.whl (39.4 MB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

shioaji-1.7.4-cp314-cp314t-macosx_10_15_x86_64.whl (42.6 MB view details)

Uploaded CPython 3.14tmacOS 10.15+ x86-64

shioaji-1.7.4-cp37-abi3-win_amd64.whl (46.7 MB view details)

Uploaded CPython 3.7+Windows x86-64

shioaji-1.7.4-cp37-abi3-manylinux_2_28_aarch64.whl (41.6 MB view details)

Uploaded CPython 3.7+manylinux: glibc 2.28+ ARM64

shioaji-1.7.4-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (44.4 MB view details)

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

shioaji-1.7.4-cp37-abi3-macosx_11_0_arm64.whl (39.4 MB view details)

Uploaded CPython 3.7+macOS 11.0+ ARM64

shioaji-1.7.4-cp37-abi3-macosx_10_15_x86_64.whl (42.7 MB view details)

Uploaded CPython 3.7+macOS 10.15+ x86-64

File details

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

File metadata

  • Download URL: shioaji-1.7.4-cp314-cp314t-manylinux_2_28_aarch64.whl
  • Upload date:
  • Size: 41.6 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.4-cp314-cp314t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c98e28178dae8aab641c9dc14c5085491a62af19a3fa76b3325000697cc07faa
MD5 2a0b4e3346900c946eba037ea598c1d4
BLAKE2b-256 bad7f2bddcf95764a0ce34bfab632aafc3c94059542fc1d3c90d5fd80b06479c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: shioaji-1.7.4-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 44.4 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.4-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 361a9414ea9fa160da264bf8e9dd301ba80c3982a1f8b4e527e0f0d13c78cc4a
MD5 35059af85032efdfa8df80656d4feb3f
BLAKE2b-256 0082303304ec897af11298cdc4d546b51142c5f2d0dcf59e0e443cdef5df2111

See more details on using hashes here.

File details

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

File metadata

  • Download URL: shioaji-1.7.4-cp314-cp314t-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 39.4 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.4-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8875a9e32c455368e2ab13a82d6ce72f2926d979b8818b03562f4be4b66860f5
MD5 51a42d9e6e95751e513331840473e8b3
BLAKE2b-256 6dc4dc4bfacb2c4852015c2b2480711a173769e7cfc5b8e995d51dc34a7392b2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: shioaji-1.7.4-cp314-cp314t-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 42.6 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.4-cp314-cp314t-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 543069e1acda42450e81487e5a4eaeec440dc981c8f38f4330fa45386ac6661b
MD5 d34b6082acddf2284df194610414e05b
BLAKE2b-256 60114b5c2d9984548e5b93f37787ce2920791bd15019f0b98c7937ecd1a88e7b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: shioaji-1.7.4-cp37-abi3-win_amd64.whl
  • Upload date:
  • Size: 46.7 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.4-cp37-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 9fa6c06f18232c5909ab343bfd1878b0d69d75188f5525f3186ce07ef53f0bc7
MD5 13c990a1f727cd96a55a4ccc59410297
BLAKE2b-256 3eeba5b307b1754f50b4b132ff46464c39a373ed52362eb80ef22dfe5131f0d7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: shioaji-1.7.4-cp37-abi3-manylinux_2_28_aarch64.whl
  • Upload date:
  • Size: 41.6 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.4-cp37-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e938d6c9826b70459cbc682ed2dd88ce9858818c4557c218aac1a2c98dadce21
MD5 81c736239ff2855981a1fed22f4295fd
BLAKE2b-256 9009e40c1b330ec1db7a73c793775879bb6fa9d30c72caf888eab75cbb054176

See more details on using hashes here.

File details

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

File metadata

  • Download URL: shioaji-1.7.4-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 44.4 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.4-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 02222da4fca566589c398fafe46df2795769cb35caf6c0fe91047cb98372eadb
MD5 9ac7982f9f18989c8e88ac8fc507c082
BLAKE2b-256 75f0659fbc0d459f0763e03b37bcd2884a682910f6c08fde1125c9295003104d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: shioaji-1.7.4-cp37-abi3-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 39.4 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.4-cp37-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0251fb75f44103a043b49b6cc551aafc60e53962c952cd3342cfc5d36b2defc6
MD5 ba634c9953bb2bd167c173f32b32241c
BLAKE2b-256 7085ee6397346b023f83ba0fc9c092c807f69223d910217176abf9d26c05e6e9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: shioaji-1.7.4-cp37-abi3-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 42.7 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.4-cp37-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 084575707fd74a6dd4470c079875b08f2165b8a89ac37e97879116b001bb8a4b
MD5 7a2a451184370933a7ad1485578f251b
BLAKE2b-256 cd4423510f7e43aae9b3f46fac11aa2b6f4f7f13d46e58e55defd75c2cb6acfb

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.7.4 This release

9 files

1.7.3

9 files

1.7.2

9 files

1.7.1

9 files

1.7.0

9 files

1.5.7

9 files

1.5.6

9 files

1.5.5

9 files

1.5.4

9 files

1.5.3

9 files

1.5.2

9 files

1.5.1

9 files

1.5.0

9 files

1.3.3

43 files

1.3.2

43 files

1.3.1

43 files

1.3.0

43 files

1.2.9

43 files

1.2.8

34 files

1.2.7

34 files

1.2.6

34 files

1.2.5

26 files

1.2.4

26 files

1.2.3

22 files

1.2.2

18 files

1.2.1

18 files

1.2.0

18 files

1.1.13

21 files

1.1.12

21 files

1.1.11

21 files

1.1.10

21 files

1.1.9

21 files

1.1.8

19 files

1.1.7

19 files

1.1.6

21 files

1.1.5

21 files

1.1.4

21 files

1.1.3

21 files

1.1.2

21 files

1.1.1

21 files

1.1.0

21 files

1.0.0

18 files

0.2.1.dev3

9 files

Supported by

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