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

Uploaded CPython 3.14tmanylinux: glibc 2.28+ ARM64

shioaji-1.5.7-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (38.4 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ x86-64

shioaji-1.5.7-cp314-cp314t-macosx_11_0_arm64.whl (33.9 MB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

shioaji-1.5.7-cp314-cp314t-macosx_10_15_x86_64.whl (36.7 MB view details)

Uploaded CPython 3.14tmacOS 10.15+ x86-64

shioaji-1.5.7-cp37-abi3-win_amd64.whl (40.4 MB view details)

Uploaded CPython 3.7+Windows x86-64

shioaji-1.5.7-cp37-abi3-manylinux_2_28_aarch64.whl (36.0 MB view details)

Uploaded CPython 3.7+manylinux: glibc 2.28+ ARM64

shioaji-1.5.7-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (38.4 MB view details)

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

shioaji-1.5.7-cp37-abi3-macosx_11_0_arm64.whl (33.9 MB view details)

Uploaded CPython 3.7+macOS 11.0+ ARM64

shioaji-1.5.7-cp37-abi3-macosx_10_15_x86_64.whl (36.7 MB view details)

Uploaded CPython 3.7+macOS 10.15+ x86-64

File details

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

File metadata

  • Download URL: shioaji-1.5.7-cp314-cp314t-manylinux_2_28_aarch64.whl
  • Upload date:
  • Size: 36.0 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.5.7-cp314-cp314t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e0e8f3e6bc0011521ff7ff3628e04431ce6ea00acfe3cf7625df92d2c6ad57a8
MD5 654646ca6fd4c745735d1a8a34023d95
BLAKE2b-256 9076af210b777708b2c62706cb8fb98493fea09fe826943f5173fb2e7d7e51b0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: shioaji-1.5.7-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 38.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.5.7-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c7b6b9849d9576571925539a2d80c0b0091c7e702b1177dcda185a4741259d36
MD5 f987b9d55008a4ca5be3f434836ba3b6
BLAKE2b-256 fdcfeaa06a49c54cdec07e1d6585c7d53a0655668f536fe925ad985ef25cdd4e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: shioaji-1.5.7-cp314-cp314t-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 33.9 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.5.7-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ca3e00586b92deca5fc054a2b54dbed1374b53b2ae525caa478f76a71e75932b
MD5 5a9dab8d5a1235254549fcb5b413e2c5
BLAKE2b-256 6b3aadfd6d1f2b558ad086d7c52f3233ac3207d13db67b1bb9576cc2bdef2d14

See more details on using hashes here.

File details

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

File metadata

  • Download URL: shioaji-1.5.7-cp314-cp314t-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 36.7 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.5.7-cp314-cp314t-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 1997f04494586019bf1defbcc47e0c69f13092ae697d54ccae97394263f83c48
MD5 b69b40f35d5a874b1440484c9ba21252
BLAKE2b-256 29ffb188eb572ac11dcc430d7595e87174ebb8ce46ba2516b2a4f4eb59bf3c2b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: shioaji-1.5.7-cp37-abi3-win_amd64.whl
  • Upload date:
  • Size: 40.4 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.5.7-cp37-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 b08e954fa549addf1653da2172e9e26d2ac7e113cfe42671101a4033815f546b
MD5 2713af8a8e316be27655e8826b20a05d
BLAKE2b-256 ee470355012a423b42f1b3d3d49226ab7d9425d1d8c20bca50172f452d25b7b0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: shioaji-1.5.7-cp37-abi3-manylinux_2_28_aarch64.whl
  • Upload date:
  • Size: 36.0 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.5.7-cp37-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4302279acf7dafbfed7b1c2fb154a9947696ffaf3d93b3d80c36687eefc8a174
MD5 5b766de61979f3d7bac5b10fcffa35aa
BLAKE2b-256 c5396d2e84b2e7e4345675dd08db489334ac5351d5a651141a4c4762c8effdf2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: shioaji-1.5.7-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 38.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.5.7-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4e0df434839fe58215824db660dfd7b9a5b9ec2aca941b93f12af822b85e826a
MD5 d3ca3f2de068048172f80820e864c5b6
BLAKE2b-256 0e8dc30371fb79b17d708d8493dbeef9fa9f41b6ba4a3bc2757d7c1600b5363c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: shioaji-1.5.7-cp37-abi3-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 33.9 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.5.7-cp37-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a13aec8be00ccd15ea427b4711eae9a61c806e2c7ee4f1c52a99a5aeb1c8f717
MD5 e172f05060e9cfd119f11d247b8fe658
BLAKE2b-256 10224894d8c40800bf213f5131c7bed310ace926839ec9f28ffdec1b0210ccea

See more details on using hashes here.

File details

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

File metadata

  • Download URL: shioaji-1.5.7-cp37-abi3-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 36.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.5.7-cp37-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 4a558577342158ff85ed1e288b56a2e343eb32e53f670cc2e989dfbe01a410f2
MD5 5b20c1ea82a8df28c7ae42d60231b962
BLAKE2b-256 f005cea6e4152ede11864416ad7219e93e420ebf11a076bcf2c73af1c013b7b2

See more details on using hashes here.

Release history Release notifications | RSS feed

Supported by

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