Skip to main content

Shioaji — cross-language, cross-platform universal trading API. Native Python bindings, HTTP API with SSE streaming, standalone CLI, and a visual dashboard.

Project description

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://raw.githubusercontent.com/sinotrade/shioaji/master/install.sh | sh

# Pre-release
curl -fsSL https://raw.githubusercontent.com/sinotrade/shioaji/master/install.sh | CHANNEL=prerelease sh

# Specific version
curl -fsSL https://raw.githubusercontent.com/sinotrade/shioaji/master/install.sh | VERSION=v1.5.0 sh

Windows (PowerShell):

# Stable
irm https://raw.githubusercontent.com/sinotrade/shioaji/master/install.ps1 | iex

# Pre-release
$env:CHANNEL="prerelease"; irm https://raw.githubusercontent.com/sinotrade/shioaji/master/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.

Project details


Release history Release notifications | RSS feed

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

Uploaded CPython 3.14tmanylinux: glibc 2.28+ ARM64

shioaji-1.5.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (37.7 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ x86-64

shioaji-1.5.0-cp314-cp314t-macosx_11_0_arm64.whl (33.4 MB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

shioaji-1.5.0-cp314-cp314t-macosx_10_15_x86_64.whl (36.3 MB view details)

Uploaded CPython 3.14tmacOS 10.15+ x86-64

shioaji-1.5.0-cp37-abi3-win_amd64.whl (39.7 MB view details)

Uploaded CPython 3.7+Windows x86-64

shioaji-1.5.0-cp37-abi3-manylinux_2_28_aarch64.whl (35.4 MB view details)

Uploaded CPython 3.7+manylinux: glibc 2.28+ ARM64

shioaji-1.5.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (37.7 MB view details)

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

shioaji-1.5.0-cp37-abi3-macosx_11_0_arm64.whl (33.4 MB view details)

Uploaded CPython 3.7+macOS 11.0+ ARM64

shioaji-1.5.0-cp37-abi3-macosx_10_15_x86_64.whl (36.3 MB view details)

Uploaded CPython 3.7+macOS 10.15+ x86-64

File details

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

File metadata

  • Download URL: shioaji-1.5.0-cp314-cp314t-manylinux_2_28_aarch64.whl
  • Upload date:
  • Size: 35.4 MB
  • Tags: CPython 3.14t, manylinux: glibc 2.28+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","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.5.0-cp314-cp314t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c4b1609212449b416a4c5012965faef453a3ff915782e919013238fd6eb51ca6
MD5 f72bb0fab04c0d0e52705ebe277a658e
BLAKE2b-256 8d946069737b67f3df14d2263096efc93f3a1695178c7ebd2ae6cea6dc292433

See more details on using hashes here.

File details

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

File metadata

  • Download URL: shioaji-1.5.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 37.7 MB
  • Tags: CPython 3.14t, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","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.5.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 12aab50ff2b2acdef09bdd21376cb0a302a3e131fa358e3f293027a6a73d9dca
MD5 3d990fa7a5ce70331f5fc36dadf0db86
BLAKE2b-256 91fe7d720c1ed5c5df060876ee6606fec73fe42fed09cf767db62a72a8078881

See more details on using hashes here.

File details

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

File metadata

  • Download URL: shioaji-1.5.0-cp314-cp314t-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 33.4 MB
  • Tags: CPython 3.14t, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","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.5.0-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 920821401bc2053bd2a0e64882d8bac9f0c6237bfc91bf802c190d26fd805657
MD5 a52557dae9fc38ad44188a2e9ce9316a
BLAKE2b-256 d2f0e40bf5cb50591e37a72938b637c47513786d4032285a4d189780cffeb2bf

See more details on using hashes here.

File details

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

File metadata

  • Download URL: shioaji-1.5.0-cp314-cp314t-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 36.3 MB
  • Tags: CPython 3.14t, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","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.5.0-cp314-cp314t-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 6246b7af96bb24b58059f69a5af6b18db0c06f852433b1a98d59785e489845fb
MD5 9cc7385649efa6c50d21c3f9d4ad9010
BLAKE2b-256 ddbc3628672c77a1d79c1e7f67e12f536814a1b7ece94db820e20d435d73899a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: shioaji-1.5.0-cp37-abi3-win_amd64.whl
  • Upload date:
  • Size: 39.7 MB
  • Tags: CPython 3.7+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","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.5.0-cp37-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 b4f8680d2d5fa0d92d9a4ba1d44868714fe51f5f43757613b39d8f36f0dac335
MD5 006ce5dfe1c1451bea0f29078615917b
BLAKE2b-256 82a7e87f564ec34a953331e8a4832141ce50b38c456d938429b69fd20559a7ea

See more details on using hashes here.

File details

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

File metadata

  • Download URL: shioaji-1.5.0-cp37-abi3-manylinux_2_28_aarch64.whl
  • Upload date:
  • Size: 35.4 MB
  • Tags: CPython 3.7+, manylinux: glibc 2.28+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","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.5.0-cp37-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 6f7aa924717d7099578a26c67ddc142f7f9934f661e2a964f002f105da040b90
MD5 db29cd2444c15915e3fd1e59f378ccfe
BLAKE2b-256 b49dc69bb73910845616a93d0920b3c496d70957dd69eb375aedb396037bc3a4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: shioaji-1.5.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 37.7 MB
  • Tags: CPython 3.7+, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","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.5.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ee00c5e5584c417259fd2cf73615220e95230b933ab8b1479b21fc2aa4b8a4f2
MD5 6ccabf0a7b757fa5e4f9f3ce1a886fc4
BLAKE2b-256 fd1bf8d38bf0353e0ab1098dc952f17d39da528dd09c5a997daf7ccebb2f4843

See more details on using hashes here.

File details

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

File metadata

  • Download URL: shioaji-1.5.0-cp37-abi3-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 33.4 MB
  • Tags: CPython 3.7+, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","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.5.0-cp37-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 80b19288f80cb98e29a4f99e2d844c8ac71bea5bd99b5620b519c6e130d8157a
MD5 25b3f6f86e6fbf7f30a0c34526969c09
BLAKE2b-256 8ccd9322d0759c6e0ffb99e0a82411ea22fcb59ad0e7c43df42280d0c4f60b44

See more details on using hashes here.

File details

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

File metadata

  • Download URL: shioaji-1.5.0-cp37-abi3-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 36.3 MB
  • Tags: CPython 3.7+, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","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.5.0-cp37-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 338b86195ec06caa66b4c2bff25e07b4868be14691c45d31b6dda52f7ed239bb
MD5 4a05bd0b381f489b65d79fef479e66c8
BLAKE2b-256 02fdc347c3184524b327a261d12b95fbca8434a2575a8241ffd18b23d824e9f5

See more details on using hashes here.

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