# QuantJourney SDK
Lightweight Python SDK for calling the QuantJourney API server.
Features
- Login/refresh helpers (JWT)
- Lazy connector proxies (eod/fmp/sec/openfigi/fred/imf/cboe/ccxt/...)
- High-level helpers for Backtester/Analytics/Admin/Universe
- DataFrame helpers to reconstruct server payloads
Quick Start
```python
from quantjourney.sdk import QuantJourney
qj = QuantJourney(api_url="http://localhost:8001", tenant_id="jakub")
qj.auth.login(tenant_id="jakub", user_id="alice", password="secret")
prices = qj.eod.get_historical_prices(symbols=["AAPL"], start_date="2024-01-01", end_date="2024-02-01", frequency="1d", exchanges=["US"]) # dict
# Backtester helper returning DataFrames
prices_df, metrics_df, params_df, nav_s, meta = qj.bt.prepare_frames(
provider={"source":"fmp","granularity":"1d"},
trading_range={"start":"2024-01-01","end":"2024-02-01"},
instruments=["AAPL"],
persist=True,
)
```
Auth via ENV
```bash
export QJ_API=http://localhost:8001
export QJ_TENANT_ID=jakub
export QJ_USER_ID=alice
export QJ_PASSWORD=secret
```
```python
from quantjourney.sdk import QuantJourney
qj = QuantJourney.from_env()
print(qj.admin.routers())
```
Build & Publish
```bash
poetry install
poetry build
# twine upload dist/*
```
Raw data
{
"_id": null,
"home_page": "https://quantjourney.cloud",
"name": "quantjourney",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "finance, trading, data, sdk, fastapi",
"author": "QuantJourney",
"author_email": "support@quantjourney.pro",
"download_url": "https://files.pythonhosted.org/packages/ba/25/8dee13d92220f509e29abadcac44a79cec5bd65a707a63158cd41eaf9275/quantjourney-0.9.0.tar.gz",
"platform": null,
"description": "# QuantJourney SDK\n\nLightweight Python SDK for calling the QuantJourney API server.\n\nFeatures\n- Login/refresh helpers (JWT)\n- Lazy connector proxies (eod/fmp/sec/openfigi/fred/imf/cboe/ccxt/...)\n- High-level helpers for Backtester/Analytics/Admin/Universe\n- DataFrame helpers to reconstruct server payloads\n\nQuick Start\n```python\nfrom quantjourney.sdk import QuantJourney\n\nqj = QuantJourney(api_url=\"http://localhost:8001\", tenant_id=\"jakub\")\nqj.auth.login(tenant_id=\"jakub\", user_id=\"alice\", password=\"secret\")\n\nprices = qj.eod.get_historical_prices(symbols=[\"AAPL\"], start_date=\"2024-01-01\", end_date=\"2024-02-01\", frequency=\"1d\", exchanges=[\"US\"]) # dict\n\n# Backtester helper returning DataFrames\nprices_df, metrics_df, params_df, nav_s, meta = qj.bt.prepare_frames(\n provider={\"source\":\"fmp\",\"granularity\":\"1d\"},\n trading_range={\"start\":\"2024-01-01\",\"end\":\"2024-02-01\"},\n instruments=[\"AAPL\"],\n persist=True,\n)\n```\n\nAuth via ENV\n```bash\nexport QJ_API=http://localhost:8001\nexport QJ_TENANT_ID=jakub\nexport QJ_USER_ID=alice\nexport QJ_PASSWORD=secret\n```\n```python\nfrom quantjourney.sdk import QuantJourney\nqj = QuantJourney.from_env()\nprint(qj.admin.routers())\n```\n\nBuild & Publish\n```bash\npoetry install\npoetry build\n# twine upload dist/*\n```\n\n",
"bugtrack_url": null,
"license": "Proprietary",
"summary": "QuantJourney - SDK client for QuantJourney",
"version": "0.9.0",
"project_urls": {
"Homepage": "https://quantjourney.cloud",
"Repository": "https://github.com/QuantJourneyOrg/_repo_quantjourney_sdk"
},
"split_keywords": [
"finance",
" trading",
" data",
" sdk",
" fastapi"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "c4305660f7c7037a405ce6a4365b777b9050fba8c90a8f71b0d8006f4ba4c804",
"md5": "6b6e7dc68d0b17af9efc88ac405128d6",
"sha256": "eaab048c59a9504ecc40ac61ef53d31e67edb9bc1a954706b28666d5a74c6805"
},
"downloads": -1,
"filename": "quantjourney-0.9.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "6b6e7dc68d0b17af9efc88ac405128d6",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 23175,
"upload_time": "2025-10-18T11:54:11",
"upload_time_iso_8601": "2025-10-18T11:54:11.227275Z",
"url": "https://files.pythonhosted.org/packages/c4/30/5660f7c7037a405ce6a4365b777b9050fba8c90a8f71b0d8006f4ba4c804/quantjourney-0.9.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ba258dee13d92220f509e29abadcac44a79cec5bd65a707a63158cd41eaf9275",
"md5": "f06e7fa71a3f2ef3b8d643299c02f72f",
"sha256": "143f9d851b6dd93bc9b172a9761a217ed2d60f06e208ff4095cb0e7ea923f591"
},
"downloads": -1,
"filename": "quantjourney-0.9.0.tar.gz",
"has_sig": false,
"md5_digest": "f06e7fa71a3f2ef3b8d643299c02f72f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 14602,
"upload_time": "2025-10-18T11:54:12",
"upload_time_iso_8601": "2025-10-18T11:54:12.686462Z",
"url": "https://files.pythonhosted.org/packages/ba/25/8dee13d92220f509e29abadcac44a79cec5bd65a707a63158cd41eaf9275/quantjourney-0.9.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-18 11:54:12",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "QuantJourneyOrg",
"github_project": "_repo_quantjourney_sdk",
"github_not_found": true,
"lcname": "quantjourney"
}