Command-line interface to JLCPCB order data. Retrieves order history, PCB/SMT/3DP order details, cost breakdowns, and personal parts inventory via JLCPCB's web API.
No official API keys needed — this tool uses browser-based login for authentication and direct HTTP requests for data access.
pip install git+https://github.com/hatlabs/jlcpcb-cli.gitOr for development:
git clone https://github.com/hatlabs/jlcpcb-cli.git
cd jlcpcb-cli
pip install -e ".[dev]"Login via Google/Apple/password in a real Chrome window:
jlcpcb-cli loginSession cookies are persisted to ~/.jlcpcb-cli/browser-cookies.json. Re-run login when the session expires.
Playwright is only needed for login: pip install jlcpcb-cli[login]
jlcpcb-cli --json orders list
jlcpcb-cli --json orders list --limit 5 --page 2
jlcpcb-cli --json orders list --status shipped
jlcpcb-cli --json orders list --search "Y41"Status filters: all, shipped, production, cancelled, unpaid, review
jlcpcb-cli --json orders get W2025122821367552Returns detailed information for all orders in a batch, including:
- PCB orders: Layer count, dimensions, surface finish, copper weight, impedance control, cost breakdown
- SMT orders: BOM/coordinate files, assembly costs, patch side
- 3DP orders: Status, dates, costs
jlcpcb-cli --json parts inventory
jlcpcb-cli --json parts inventory --search "resistor" --limit 10Lists components stored at JLCPCB (your personal inventory).
jlcpcb-cli --json parts list-orders
jlcpcb-cli --json parts get-order POB0202603031859897JLCPCB groups orders into batches (prefixed W). A batch may contain multiple orders (e.g., PCB + SMT assembly for the same board). Each order has a type:
| Type | Description |
|---|---|
pcb |
PCB manufacturing |
smt |
SMT assembly |
3dp |
3D printing (JLC3DP) |
- Python 3.10+
- Playwright (only for
jlcpcb-cli login):pip install jlcpcb-cli[login]