lopjlb
Thin Python client + CLI for LOPJLB quantitative equity research.
Talks only to https://www.lopjlb.com/bff/api/ (never api.lopjlb.com).
Four peer surfaces over one BFF (CLI does not call MCP):
| Surface | Install / use |
|---|---|
| REST | curl https://www.lopjlb.com/bff/api/… |
| CLI | uv tool install lopjlb · brew install lopjlb/tap/lopjlb · curl -fsSL https://www.lopjlb.com/install.sh | sh |
| PyPI | pip install lopjlb / import lopjlb |
| HTTP MCP | Cursor / Claude → POST /bff/api/mcp (Enterprise hosts) |
License: Proprietary — not open source. Copyright © LOPJLB Research. All rights reserved.
See the repository LICENSE. You may use this client only to access LOPJLB’s published services under LOPJLB’s terms; you may not relicense or redistribute it as free/open source.
Install
# recommended
uv tool install lopjlb
# or
pipx install lopjlb
pip install lopjlb
# one-liner
curl -fsSL https://www.lopjlb.com/install.sh | sh
# Homebrew (after tap publish)
brew install lopjlb/tap/lopjlb
Free research needs no browser and no API key.
Free (no account)
Sample single-name research — direction, HMM regime, thin signal-card teaser, earnings CallCards.
Full PF / composite packs need Pro or an Enterprise key. Anon freemium ticker routes: 30/min · 500/day.
import lopjlb
print(lopjlb.regime())
t = lopjlb.Ticker("AAPL")
print(t.summary()) # direction, regime, teaser (+ next_actions via CLI)
print(t.intel()) # earnings CallCard / rollup
print(t.info) # company profile
lopjlb ticker AAPL
lopjlb ticker AAPL intel
lopjlb regime
lopjlb hours # world exchange open/closed (see /market-hours)
lopjlb treasuries # US yield curve (see /treasury-rates)
lopjlb search NVDA
lopjlb schema # CLI → REST map (not MCP)
lopjlb doctor
Stdout is JSON (pretty on a TTY). Errors go to stderr as JSON with retryable. Product research commands do not prompt; lopjlb auth claim is the exception (opens AuthKit and asks for the page code).
Agent Registration (optional)
Bind a WorkOS user to an agent registration via AuthKit (claim UI is hosted by AuthKit — not lopjlb.com). Skill: npx skills add lopjlb/lopjlb-skill. Docs: https://www.lopjlb.com/auth.md
lopjlb auth claim --email you@example.com # opens verification URI; paste page code
lopjlb auth token --print # short-lived Bearer for BFF REST
Claim does not grant Enterprise. Pro follows the claimed user’s Stripe/IAP entitlement. MCP still needs an API key.
Enterprise (REST)
Mint a key in Settings after a live Enterprise entitlement is active (browser once), then:
export LOPJLB_API_KEY=lopjlb_live_…
lopjlb screen # Pro REST via Enterprise key
lopjlb export signals --format csv --out signals.csv # --out required
lopjlb intraday AAPL
client = lopjlb.Client(api_key="lopjlb_live_…")
Optional MCP debug smoke (hosts should call /mcp directly):
lopjlb debug mcp tools
lopjlb debug mcp call get_market_regime
Errors: 401 bad key · 402 entitlement · 429 rate limit.
Not included
Raw OHLCV dumps / FMP passthrough. Use sparklines / charts via the API or the stock page.
Metadata
Release files for lopjlb 0.1.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| lopjlb-0.1.7.tar.gz | 27.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| lopjlb-0.1.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 51.2 kB
Release files / lopjlb-0.1.7.tar.gz
| Download URL | lopjlb-0.1.7.tar.gz |
|---|---|
| Size | 27.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
24f87e1c757a25fa019874c7ac1aa67a978fddd2a4d369d033feacbc809ee797
|
|
BLAKE2b-256 checksum How to use checksums |
0ab3f4ad624a9665d6edaf11fe44c403191c72069b5a86ba345bec3e764e7e72
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / lopjlb-0.1.7-py3-none-any.whl
| Download URL | lopjlb-0.1.7-py3-none-any.whl |
|---|---|
| Size | 24.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ffad797ee183f1db0de86139e1e70a3f118b8f5491736e137a231dcd14c0d85c
|
|
BLAKE2b-256 checksum How to use checksums |
7fadf44caa11863cf74b6fa2452dd18932c0fe7c470ece26aaef4d60b3f10103
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|