openstockapi 0.2.0__tar.gz → 0.2.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. {openstockapi-0.2.0/openstockapi.egg-info → openstockapi-0.2.1}/PKG-INFO +36 -36
  2. {openstockapi-0.2.0 → openstockapi-0.2.1}/README.md +235 -235
  3. {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/__init__.py +1 -1
  4. {openstockapi-0.2.0 → openstockapi-0.2.1/openstockapi.egg-info}/PKG-INFO +36 -36
  5. {openstockapi-0.2.0 → openstockapi-0.2.1}/pyproject.toml +1 -1
  6. {openstockapi-0.2.0 → openstockapi-0.2.1}/LICENSE +0 -0
  7. {openstockapi-0.2.0 → openstockapi-0.2.1}/NOTICE +0 -0
  8. {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/api/financial.py +0 -0
  9. {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/api/fund.py +0 -0
  10. {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/api/macro.py +0 -0
  11. {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/api/news.py +0 -0
  12. {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/api/orderbook.py +0 -0
  13. {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/api/stock.py +0 -0
  14. {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/api/trading.py +0 -0
  15. {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/config/settings.py +0 -0
  16. {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/core/base_provider.py +0 -0
  17. {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/core/exceptions.py +0 -0
  18. {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/core/http_client.py +0 -0
  19. {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/core/models.py +0 -0
  20. {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/core/models_fund.py +0 -0
  21. {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/core/models_macro.py +0 -0
  22. {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/core/models_news.py +0 -0
  23. {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/core/models_trading.py +0 -0
  24. {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/core/rate_limiter.py +0 -0
  25. {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/core/security.py +0 -0
  26. {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/core/types.py +0 -0
  27. {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/core/utils.py +0 -0
  28. {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/license/session.py +0 -0
  29. {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/providers/__init__.py +0 -0
  30. {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/providers/dnse.py +0 -0
  31. {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/providers/fmarket.py +0 -0
  32. {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/providers/kbs.py +0 -0
  33. {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/providers/mas.py +0 -0
  34. {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/providers/mbk.py +0 -0
  35. {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/providers/msn.py +0 -0
  36. {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/providers/tcbs.py +0 -0
  37. {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/providers/vci.py +0 -0
  38. {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/providers/vndirect.py +0 -0
  39. {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi.egg-info/SOURCES.txt +0 -0
  40. {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi.egg-info/dependency_links.txt +0 -0
  41. {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi.egg-info/requires.txt +0 -0
  42. {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi.egg-info/top_level.txt +0 -0
  43. {openstockapi-0.2.0 → openstockapi-0.2.1}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: openstockapi
3
- Version: 0.2.0
3
+ Version: 0.2.1
4
4
  Summary: Vietnam stock market data library — open source data plane
5
5
  Author-email: Your Name <your.email@example.com>
6
6
  License: AGPL-3.0-only
@@ -26,7 +26,7 @@ Requires-Dist: ruff; extra == "dev"
26
26
  Dynamic: license-file
27
27
 
28
28
  <div align="center">
29
- <h1>📈 OpenStockAPI</h1>
29
+ <h1> OpenStockAPI</h1>
30
30
  <p><strong>A modular, multi-source Python Data Plane for Vietnamese & International financial market data.</strong></p>
31
31
 
32
32
  <p>
@@ -37,7 +37,7 @@ Dynamic: license-file
37
37
  </p>
38
38
 
39
39
  <p>
40
- <a href="./user_guide/getting_started.md"><strong>📖 Read the Docs »</strong></a>
40
+ <a href="./user_guide/getting_started.md"><strong> Read the Docs »</strong></a>
41
41
  &nbsp;·&nbsp;
42
42
  <a href="https://github.com/YOUR_USERNAME/openstockapi/issues/new?labels=bug">Report Bug</a>
43
43
  &nbsp;·&nbsp;
@@ -52,16 +52,16 @@ Dynamic: license-file
52
52
  <summary>📋 Table of Contents</summary>
53
53
  <ol>
54
54
  <li><a href="#about">About The Project</a></li>
55
- <li><a href="#features">✨ Features</a></li>
56
- <li><a href="#quick-start">🚀 Quick Start</a></li>
57
- <li><a href="#installation">📦 Installation</a></li>
58
- <li><a href="#usage">📖 Usage & Documentation</a></li>
59
- <li><a href="#providers">🗂 Supported Providers</a></li>
60
- <li><a href="#data-modules">📊 Data Modules</a></li>
61
- <li><a href="#roadmap">🗺 Roadmap</a></li>
62
- <li><a href="#contributing">🤝 Contributing</a></li>
63
- <li><a href="#changelog">📄 Changelog</a></li>
64
- <li><a href="#license">📝 License</a></li>
55
+ <li><a href="#features"> Features</a></li>
56
+ <li><a href="#quick-start"> Quick Start</a></li>
57
+ <li><a href="#installation"> Installation</a></li>
58
+ <li><a href="#usage"> Usage & Documentation</a></li>
59
+ <li><a href="#providers"> Supported Providers</a></li>
60
+ <li><a href="#data-modules"> Data Modules</a></li>
61
+ <li><a href="#roadmap"> Roadmap</a></li>
62
+ <li><a href="#contributing"> Contributing</a></li>
63
+ <li><a href="#changelog"> Changelog</a></li>
64
+ <li><a href="#license"> License</a></li>
65
65
  </ol>
66
66
  </details>
67
67
 
@@ -81,19 +81,19 @@ It is designed to be the upstream data acquisition layer for financial applicati
81
81
  ---
82
82
 
83
83
  <a id="features"></a>
84
- ## Features
84
+ ## Features
85
85
 
86
- - **🌏 Multi-market Support** — Covers Vietnamese (`VN`) equities and can be extended to International (`US`) markets with the same API.
87
- - **🔄 Automatic Multi-source Fallback** — Integrates providers (KBS, VCI, MSN, MAS, Maybank, Fmarket) with transparent automatic failover when any source is unavailable.
88
- - **🏷 Freemium Tier Access Control** — Supports `Free`, `Pro` (200 req/min), and `Premium` (500 req/min) tiers with a client-side Token Bucket Rate Limiter.
89
- - **⚡ Async Support** — First-class `async/await` support via `async_ohlcv()` for high-throughput data pipelines.
86
+ - ** Multi-market Support** — Covers Vietnamese (`VN`) equities and can be extended to International (`US`) markets with the same API.
87
+ - ** Automatic Multi-source Fallback** — Integrates providers (KBS, VCI, MSN, MAS, Maybank, Fmarket) with transparent automatic failover when any source is unavailable.
88
+ - ** Freemium Tier Access Control** — Supports `Free`, `Pro` (200 req/min), and `Premium` (500 req/min) tiers with a client-side Token Bucket Rate Limiter.
89
+ - ** Async Support** — First-class `async/await` support via `async_ohlcv()` for high-throughput data pipelines.
90
90
 
91
91
  <p align="right">(<a href="#readme-top">back to top ↑</a>)</p>
92
92
 
93
93
  ---
94
94
 
95
95
  <a id="quick-start"></a>
96
- ## 🚀 Quick Start
96
+ ## Quick Start
97
97
 
98
98
  ```python
99
99
  import openstockapi as osapi
@@ -123,7 +123,7 @@ events = osapi.company_events("FPT", limit=5)
123
123
  ---
124
124
 
125
125
  <a id="installation"></a>
126
- ## 📦 Installation
126
+ ## Installation
127
127
 
128
128
  **Minimum install:**
129
129
  ```bash
@@ -142,28 +142,28 @@ pip install openstockapi[pandas]
142
142
  ---
143
143
 
144
144
  <a id="usage"></a>
145
- ## 📖 Usage & Documentation
145
+ ## Usage & Documentation
146
146
 
147
147
  Full documentation, use case examples, and sample outputs are available in the User Guide:
148
148
 
149
- 👉 **[User Guide — Getting Started](./user_guide/getting_started.md)**
149
+ **[User Guide — Getting Started](./user_guide/getting_started.md)**
150
150
 
151
151
  | Module | Description | Guide |
152
152
  |--------|-------------|-------|
153
- | 01 — OHLCV & Profile | Historical price data, company profile | [📄](./user_guide/01_stock_market_data.md) |
154
- | 02 — Financial Statements | Balance sheet, income, cash flow, ratios | [📄](./user_guide/02_financial_statements.md) |
155
- | 03 — Realtime Quote | Live price, order book depth | [📄](./user_guide/03_realtime_quote.md) |
156
- | 04 — Market Indices | VNINDEX, VN30 constituents | [📄](./user_guide/04_order_book.md) |
157
- | 05 — Macro Indicators | CPI, M2 money supply, credit growth | [📄](./user_guide/05_macro_indicators.md) |
158
- | 06 — Mutual Funds | Fund NAV, portfolio holdings | [📄](./user_guide/06_mutual_funds.md) |
159
- | 07 — News & Events | Corporate news, dividends, events | [📄](./user_guide/07_news_and_events.md) |
153
+ | 01 — OHLCV & Profile | Historical price data, company profile | [](./user_guide/01_stock_market_data.md) |
154
+ | 02 — Financial Statements | Balance sheet, income, cash flow, ratios | [](./user_guide/02_financial_statements.md) |
155
+ | 03 — Realtime Quote | Live price, order book depth | [](./user_guide/03_realtime_quote.md) |
156
+ | 04 — Market Indices | VNINDEX, VN30 constituents | [](./user_guide/04_order_book.md) |
157
+ | 05 — Macro Indicators | CPI, M2 money supply, credit growth | [](./user_guide/05_macro_indicators.md) |
158
+ | 06 — Mutual Funds | Fund NAV, portfolio holdings | [](./user_guide/06_mutual_funds.md) |
159
+ | 07 — News & Events | Corporate news, dividends, events | [](./user_guide/07_news_and_events.md) |
160
160
 
161
161
  <p align="right">(<a href="#readme-top">back to top ↑</a>)</p>
162
162
 
163
163
  ---
164
164
 
165
165
  <a id="providers"></a>
166
- ## 🗂 Supported Providers
166
+ ## Supported Providers
167
167
 
168
168
  | Provider | Source | Tier | Data Types |
169
169
  |----------|--------|------|------------|
@@ -182,7 +182,7 @@ Full documentation, use case examples, and sample outputs are available in the U
182
182
  ---
183
183
 
184
184
  <a id="data-modules"></a>
185
- ## 📊 Data Modules Overview
185
+ ## Data Modules Overview
186
186
 
187
187
  ```
188
188
  openstockapi
@@ -208,7 +208,7 @@ openstockapi
208
208
  ---
209
209
 
210
210
  <a id="roadmap"></a>
211
- ## 🗺 Roadmap
211
+ ## Roadmap
212
212
 
213
213
  - [x] Vietnamese equity OHLCV (KBS, VCI, MSN)
214
214
  - [x] Financial statements (MAS, VCI)
@@ -225,7 +225,7 @@ openstockapi
225
225
  ---
226
226
 
227
227
  <a id="contributing"></a>
228
- ## 🤝 Contributing
228
+ ## Contributing
229
229
 
230
230
  Contributions are welcome! If you'd like to add a new provider, fix a bug, or improve documentation:
231
231
 
@@ -244,18 +244,18 @@ python uat/run_uat.py
244
244
  ---
245
245
 
246
246
  <a id="changelog"></a>
247
- ## 📄 Changelog
247
+ ## Changelog
248
248
 
249
249
  See all version updates, new features, and bug fixes at:
250
250
 
251
- 👉 **[CHANGELOG.md](./CHANGELOG.md)**
251
+ **[CHANGELOG.md](./CHANGELOG.md)**
252
252
 
253
253
  <p align="right">(<a href="#readme-top">back to top ↑</a>)</p>
254
254
 
255
255
  ---
256
256
 
257
257
  <a id="license"></a>
258
- ## 📝 License
258
+ ## License
259
259
 
260
260
  Distributed under the **GNU Affero General Public License v3.0 (AGPL-3.0)**. See [`LICENSE`](LICENSE) for more information.
261
261
 
@@ -1,235 +1,235 @@
1
- <div align="center">
2
- <h1>📈 OpenStockAPI</h1>
3
- <p><strong>A modular, multi-source Python Data Plane for Vietnamese & International financial market data.</strong></p>
4
-
5
- <p>
6
- <a href="https://pypi.org/project/openstockapi/"><img src="https://img.shields.io/pypi/v/openstockapi.svg?color=blue&label=PyPI" alt="PyPI version"></a>
7
- <a href="https://pypi.org/project/openstockapi/"><img src="https://img.shields.io/pypi/dm/openstockapi.svg?color=brightgreen&label=Downloads" alt="Downloads"></a>
8
- <a href="https://pypi.org/project/openstockapi/"><img src="https://img.shields.io/pypi/pyversions/openstockapi.svg" alt="Python Version"></a>
9
- <a href="LICENSE"><img src="https://img.shields.io/badge/license-AGPL%203.0-orange.svg" alt="License"></a>
10
- </p>
11
-
12
- <p>
13
- <a href="./user_guide/getting_started.md"><strong>📖 Read the Docs »</strong></a>
14
- &nbsp;·&nbsp;
15
- <a href="https://github.com/YOUR_USERNAME/openstockapi/issues/new?labels=bug">Report Bug</a>
16
- &nbsp;·&nbsp;
17
- <a href="https://github.com/YOUR_USERNAME/openstockapi/issues/new?labels=enhancement">Request Feature</a>
18
- </p>
19
- </div>
20
-
21
- ---
22
-
23
- <!-- TABLE OF CONTENTS -->
24
- <details>
25
- <summary>📋 Table of Contents</summary>
26
- <ol>
27
- <li><a href="#about">About The Project</a></li>
28
- <li><a href="#features">✨ Features</a></li>
29
- <li><a href="#quick-start">🚀 Quick Start</a></li>
30
- <li><a href="#installation">📦 Installation</a></li>
31
- <li><a href="#usage">📖 Usage & Documentation</a></li>
32
- <li><a href="#providers">🗂 Supported Providers</a></li>
33
- <li><a href="#data-modules">📊 Data Modules</a></li>
34
- <li><a href="#roadmap">🗺 Roadmap</a></li>
35
- <li><a href="#contributing">🤝 Contributing</a></li>
36
- <li><a href="#changelog">📄 Changelog</a></li>
37
- <li><a href="#license">📝 License</a></li>
38
- </ol>
39
- </details>
40
-
41
- ---
42
-
43
- <a id="about"></a>
44
- ## About The Project
45
-
46
- **OpenStockAPI** is an open-source Python library that acts as a modular **Data Plane** for collecting and standardizing financial data from multiple Vietnamese and international sources.
47
-
48
- It is designed to be the upstream data acquisition layer for financial applications — handling provider fallback, rate limiting, and tier-based access control — so your application logic never has to worry about data source reliability.
49
-
50
- > 📘 A Vietnamese version of this README is available: **[README_VN.md](./README_VN.md)**
51
-
52
- <p align="right">(<a href="#readme-top">back to top ↑</a>)</p>
53
-
54
- ---
55
-
56
- <a id="features"></a>
57
- ## Features
58
-
59
- - **🌏 Multi-market Support** — Covers Vietnamese (`VN`) equities and can be extended to International (`US`) markets with the same API.
60
- - **🔄 Automatic Multi-source Fallback** — Integrates providers (KBS, VCI, MSN, MAS, Maybank, Fmarket) with transparent automatic failover when any source is unavailable.
61
- - **🏷 Freemium Tier Access Control** — Supports `Free`, `Pro` (200 req/min), and `Premium` (500 req/min) tiers with a client-side Token Bucket Rate Limiter.
62
- - **⚡ Async Support** — First-class `async/await` support via `async_ohlcv()` for high-throughput data pipelines.
63
-
64
- <p align="right">(<a href="#readme-top">back to top ↑</a>)</p>
65
-
66
- ---
67
-
68
- <a id="quick-start"></a>
69
- ## 🚀 Quick Start
70
-
71
- ```python
72
- import openstockapi as osapi
73
-
74
- # Initialize with your API key (required for all tiers)
75
- # Register for free at: https://openstockapi.com/register
76
- osapi.init("free_YOUR_KEY") # or "pro_YOUR_KEY" / "premium_YOUR_KEY"
77
-
78
- # Historical OHLCV price data
79
- df = osapi.ohlcv("VNM", resolution="1D", start="2025-01-01", end="2025-12-31")
80
- print(df.head())
81
-
82
- # Company financial statements
83
- bs = osapi.balance_sheet("VNM", period="annual")
84
-
85
- # Realtime market quote
86
- quote = osapi.quote("HPG")
87
- print(f"{quote.symbol}: {quote.price:,.0f} VND ({quote.pct_change:+.2f}%)")
88
-
89
- # Corporate news & events
90
- news = osapi.company_news("FPT", limit=5)
91
- events = osapi.company_events("FPT", limit=5)
92
- ```
93
-
94
- <p align="right">(<a href="#readme-top">back to top ↑</a>)</p>
95
-
96
- ---
97
-
98
- <a id="installation"></a>
99
- ## 📦 Installation
100
-
101
- **Minimum install:**
102
- ```bash
103
- pip install openstockapi
104
- ```
105
-
106
- **With Pandas DataFrame & Excel export support:**
107
- ```bash
108
- pip install openstockapi[pandas]
109
- ```
110
-
111
- **Requirements:** Python 3.8+
112
-
113
- <p align="right">(<a href="#readme-top">back to top ↑</a>)</p>
114
-
115
- ---
116
-
117
- <a id="usage"></a>
118
- ## 📖 Usage & Documentation
119
-
120
- Full documentation, use case examples, and sample outputs are available in the User Guide:
121
-
122
- 👉 **[User Guide — Getting Started](./user_guide/getting_started.md)**
123
-
124
- | Module | Description | Guide |
125
- |--------|-------------|-------|
126
- | 01 — OHLCV & Profile | Historical price data, company profile | [📄](./user_guide/01_stock_market_data.md) |
127
- | 02 — Financial Statements | Balance sheet, income, cash flow, ratios | [📄](./user_guide/02_financial_statements.md) |
128
- | 03 — Realtime Quote | Live price, order book depth | [📄](./user_guide/03_realtime_quote.md) |
129
- | 04 — Market Indices | VNINDEX, VN30 constituents | [📄](./user_guide/04_order_book.md) |
130
- | 05 — Macro Indicators | CPI, M2 money supply, credit growth | [📄](./user_guide/05_macro_indicators.md) |
131
- | 06 — Mutual Funds | Fund NAV, portfolio holdings | [📄](./user_guide/06_mutual_funds.md) |
132
- | 07 — News & Events | Corporate news, dividends, events | [📄](./user_guide/07_news_and_events.md) |
133
-
134
- <p align="right">(<a href="#readme-top">back to top ↑</a>)</p>
135
-
136
- ---
137
-
138
- <a id="providers"></a>
139
- ## 🗂 Supported Providers
140
-
141
- | Provider | Source | Tier | Data Types |
142
- |----------|--------|------|------------|
143
- | `kbs` | KB Securities Vietnam | Free | OHLCV, Profile, News, Events |
144
- | `vci` | Vietcap Securities | Free | OHLCV, Profile, Financial Statements, Insider/Foreign/Prop Trading, Events |
145
- | `msn` | MSN Finance (Bing) | Free | OHLCV (VN & International) |
146
- | `mas` | MAS (Mass Asset Securities) | Free | Financial Statements, Ratios |
147
- | `mbk` | Maybank Securities Vietnam | Free | Macro Indicators (M2, Credit) |
148
- | `fmarket` | Fmarket Vietnam | Free | Mutual Fund NAV & Holdings |
149
- | `tcbs` | TCBS (Techcom Securities) | Free | Realtime Quote, Order Book |
150
-
151
- > Providers are tried in priority order per data type. If one fails, the next is used automatically.
152
-
153
- <p align="right">(<a href="#readme-top">back to top ↑</a>)</p>
154
-
155
- ---
156
-
157
- <a id="data-modules"></a>
158
- ## 📊 Data Modules Overview
159
-
160
- ```
161
- openstockapi
162
- ├── ohlcv() # Historical OHLCV (sync)
163
- ├── async_ohlcv() # Historical OHLCV (async)
164
- ├── profile() # Company profile
165
- ├── balance_sheet() # Balance sheet
166
- ├── income_statement() # Income statement
167
- ├── cashflow() # Cash flow statement
168
- ├── ratios() # Financial ratios (PE, PB, ROE...)
169
- ├── quote() # Realtime price quote
170
- ├── order_book() # Order book depth
171
- ├── market_index() # Market index OHLCV
172
- ├── index_constituents() # Index member list
173
- ├── macro_indicators() # Macroeconomic data
174
- ├── fund_details() # Mutual fund info
175
- ├── company_news() # Corporate news
176
- └── company_events() # Corporate events (dividends, ESOP...)
177
- ```
178
-
179
- <p align="right">(<a href="#readme-top">back to top ↑</a>)</p>
180
-
181
- ---
182
-
183
- <a id="roadmap"></a>
184
- ## 🗺 Roadmap
185
-
186
- - [x] Vietnamese equity OHLCV (KBS, VCI, MSN)
187
- - [x] Financial statements (MAS, VCI)
188
- - [x] Macroeconomic indicators (World Bank, Maybank)
189
- - [x] Mutual fund data (Fmarket)
190
- - [x] Corporate news & events (KBS, VCI)
191
- - [ ] International equity OHLCV
192
- - [ ] Cryptocurrency data
193
- - [ ] Derivatives / Futures data
194
- - [ ] WebSocket streaming quotes
195
-
196
- <p align="right">(<a href="#readme-top">back to top ↑</a>)</p>
197
-
198
- ---
199
-
200
- <a id="contributing"></a>
201
- ## 🤝 Contributing
202
-
203
- Contributions are welcome! If you'd like to add a new provider, fix a bug, or improve documentation:
204
-
205
- 1. Fork the repository
206
- 2. Create a feature branch: `git checkout -b feature/new-provider`
207
- 3. Commit your changes
208
- 4. Open a Pull Request
209
-
210
- Please make sure your changes pass the UAT suite before submitting:
211
- ```bash
212
- python uat/run_uat.py
213
- ```
214
-
215
- <p align="right">(<a href="#readme-top">back to top ↑</a>)</p>
216
-
217
- ---
218
-
219
- <a id="changelog"></a>
220
- ## 📄 Changelog
221
-
222
- See all version updates, new features, and bug fixes at:
223
-
224
- 👉 **[CHANGELOG.md](./CHANGELOG.md)**
225
-
226
- <p align="right">(<a href="#readme-top">back to top ↑</a>)</p>
227
-
228
- ---
229
-
230
- <a id="license"></a>
231
- ## 📝 License
232
-
233
- Distributed under the **GNU Affero General Public License v3.0 (AGPL-3.0)**. See [`LICENSE`](LICENSE) for more information.
234
-
235
- <p align="right">(<a href="#readme-top">back to top ↑</a>)</p>
1
+ <div align="center">
2
+ <h1> OpenStockAPI</h1>
3
+ <p><strong>A modular, multi-source Python Data Plane for Vietnamese & International financial market data.</strong></p>
4
+
5
+ <p>
6
+ <a href="https://pypi.org/project/openstockapi/"><img src="https://img.shields.io/pypi/v/openstockapi.svg?color=blue&label=PyPI" alt="PyPI version"></a>
7
+ <a href="https://pypi.org/project/openstockapi/"><img src="https://img.shields.io/pypi/dm/openstockapi.svg?color=brightgreen&label=Downloads" alt="Downloads"></a>
8
+ <a href="https://pypi.org/project/openstockapi/"><img src="https://img.shields.io/pypi/pyversions/openstockapi.svg" alt="Python Version"></a>
9
+ <a href="LICENSE"><img src="https://img.shields.io/badge/license-AGPL%203.0-orange.svg" alt="License"></a>
10
+ </p>
11
+
12
+ <p>
13
+ <a href="./user_guide/getting_started.md"><strong> Read the Docs »</strong></a>
14
+ &nbsp;·&nbsp;
15
+ <a href="https://github.com/YOUR_USERNAME/openstockapi/issues/new?labels=bug">Report Bug</a>
16
+ &nbsp;·&nbsp;
17
+ <a href="https://github.com/YOUR_USERNAME/openstockapi/issues/new?labels=enhancement">Request Feature</a>
18
+ </p>
19
+ </div>
20
+
21
+ ---
22
+
23
+ <!-- TABLE OF CONTENTS -->
24
+ <details>
25
+ <summary>📋 Table of Contents</summary>
26
+ <ol>
27
+ <li><a href="#about">About The Project</a></li>
28
+ <li><a href="#features"> Features</a></li>
29
+ <li><a href="#quick-start"> Quick Start</a></li>
30
+ <li><a href="#installation"> Installation</a></li>
31
+ <li><a href="#usage"> Usage & Documentation</a></li>
32
+ <li><a href="#providers"> Supported Providers</a></li>
33
+ <li><a href="#data-modules"> Data Modules</a></li>
34
+ <li><a href="#roadmap"> Roadmap</a></li>
35
+ <li><a href="#contributing"> Contributing</a></li>
36
+ <li><a href="#changelog"> Changelog</a></li>
37
+ <li><a href="#license"> License</a></li>
38
+ </ol>
39
+ </details>
40
+
41
+ ---
42
+
43
+ <a id="about"></a>
44
+ ## About The Project
45
+
46
+ **OpenStockAPI** is an open-source Python library that acts as a modular **Data Plane** for collecting and standardizing financial data from multiple Vietnamese and international sources.
47
+
48
+ It is designed to be the upstream data acquisition layer for financial applications — handling provider fallback, rate limiting, and tier-based access control — so your application logic never has to worry about data source reliability.
49
+
50
+ > 📘 A Vietnamese version of this README is available: **[README_VN.md](./README_VN.md)**
51
+
52
+ <p align="right">(<a href="#readme-top">back to top ↑</a>)</p>
53
+
54
+ ---
55
+
56
+ <a id="features"></a>
57
+ ## Features
58
+
59
+ - ** Multi-market Support** — Covers Vietnamese (`VN`) equities and can be extended to International (`US`) markets with the same API.
60
+ - ** Automatic Multi-source Fallback** — Integrates providers (KBS, VCI, MSN, MAS, Maybank, Fmarket) with transparent automatic failover when any source is unavailable.
61
+ - ** Freemium Tier Access Control** — Supports `Free`, `Pro` (200 req/min), and `Premium` (500 req/min) tiers with a client-side Token Bucket Rate Limiter.
62
+ - ** Async Support** — First-class `async/await` support via `async_ohlcv()` for high-throughput data pipelines.
63
+
64
+ <p align="right">(<a href="#readme-top">back to top ↑</a>)</p>
65
+
66
+ ---
67
+
68
+ <a id="quick-start"></a>
69
+ ## Quick Start
70
+
71
+ ```python
72
+ import openstockapi as osapi
73
+
74
+ # Initialize with your API key (required for all tiers)
75
+ # Register for free at: https://openstockapi.com/register
76
+ osapi.init("free_YOUR_KEY") # or "pro_YOUR_KEY" / "premium_YOUR_KEY"
77
+
78
+ # Historical OHLCV price data
79
+ df = osapi.ohlcv("VNM", resolution="1D", start="2025-01-01", end="2025-12-31")
80
+ print(df.head())
81
+
82
+ # Company financial statements
83
+ bs = osapi.balance_sheet("VNM", period="annual")
84
+
85
+ # Realtime market quote
86
+ quote = osapi.quote("HPG")
87
+ print(f"{quote.symbol}: {quote.price:,.0f} VND ({quote.pct_change:+.2f}%)")
88
+
89
+ # Corporate news & events
90
+ news = osapi.company_news("FPT", limit=5)
91
+ events = osapi.company_events("FPT", limit=5)
92
+ ```
93
+
94
+ <p align="right">(<a href="#readme-top">back to top ↑</a>)</p>
95
+
96
+ ---
97
+
98
+ <a id="installation"></a>
99
+ ## Installation
100
+
101
+ **Minimum install:**
102
+ ```bash
103
+ pip install openstockapi
104
+ ```
105
+
106
+ **With Pandas DataFrame & Excel export support:**
107
+ ```bash
108
+ pip install openstockapi[pandas]
109
+ ```
110
+
111
+ **Requirements:** Python 3.8+
112
+
113
+ <p align="right">(<a href="#readme-top">back to top ↑</a>)</p>
114
+
115
+ ---
116
+
117
+ <a id="usage"></a>
118
+ ## Usage & Documentation
119
+
120
+ Full documentation, use case examples, and sample outputs are available in the User Guide:
121
+
122
+ **[User Guide — Getting Started](./user_guide/getting_started.md)**
123
+
124
+ | Module | Description | Guide |
125
+ |--------|-------------|-------|
126
+ | 01 — OHLCV & Profile | Historical price data, company profile | [](./user_guide/01_stock_market_data.md) |
127
+ | 02 — Financial Statements | Balance sheet, income, cash flow, ratios | [](./user_guide/02_financial_statements.md) |
128
+ | 03 — Realtime Quote | Live price, order book depth | [](./user_guide/03_realtime_quote.md) |
129
+ | 04 — Market Indices | VNINDEX, VN30 constituents | [](./user_guide/04_order_book.md) |
130
+ | 05 — Macro Indicators | CPI, M2 money supply, credit growth | [](./user_guide/05_macro_indicators.md) |
131
+ | 06 — Mutual Funds | Fund NAV, portfolio holdings | [](./user_guide/06_mutual_funds.md) |
132
+ | 07 — News & Events | Corporate news, dividends, events | [](./user_guide/07_news_and_events.md) |
133
+
134
+ <p align="right">(<a href="#readme-top">back to top ↑</a>)</p>
135
+
136
+ ---
137
+
138
+ <a id="providers"></a>
139
+ ## Supported Providers
140
+
141
+ | Provider | Source | Tier | Data Types |
142
+ |----------|--------|------|------------|
143
+ | `kbs` | KB Securities Vietnam | Free | OHLCV, Profile, News, Events |
144
+ | `vci` | Vietcap Securities | Free | OHLCV, Profile, Financial Statements, Insider/Foreign/Prop Trading, Events |
145
+ | `msn` | MSN Finance (Bing) | Free | OHLCV (VN & International) |
146
+ | `mas` | MAS (Mass Asset Securities) | Free | Financial Statements, Ratios |
147
+ | `mbk` | Maybank Securities Vietnam | Free | Macro Indicators (M2, Credit) |
148
+ | `fmarket` | Fmarket Vietnam | Free | Mutual Fund NAV & Holdings |
149
+ | `tcbs` | TCBS (Techcom Securities) | Free | Realtime Quote, Order Book |
150
+
151
+ > Providers are tried in priority order per data type. If one fails, the next is used automatically.
152
+
153
+ <p align="right">(<a href="#readme-top">back to top ↑</a>)</p>
154
+
155
+ ---
156
+
157
+ <a id="data-modules"></a>
158
+ ## Data Modules Overview
159
+
160
+ ```
161
+ openstockapi
162
+ ├── ohlcv() # Historical OHLCV (sync)
163
+ ├── async_ohlcv() # Historical OHLCV (async)
164
+ ├── profile() # Company profile
165
+ ├── balance_sheet() # Balance sheet
166
+ ├── income_statement() # Income statement
167
+ ├── cashflow() # Cash flow statement
168
+ ├── ratios() # Financial ratios (PE, PB, ROE...)
169
+ ├── quote() # Realtime price quote
170
+ ├── order_book() # Order book depth
171
+ ├── market_index() # Market index OHLCV
172
+ ├── index_constituents() # Index member list
173
+ ├── macro_indicators() # Macroeconomic data
174
+ ├── fund_details() # Mutual fund info
175
+ ├── company_news() # Corporate news
176
+ └── company_events() # Corporate events (dividends, ESOP...)
177
+ ```
178
+
179
+ <p align="right">(<a href="#readme-top">back to top ↑</a>)</p>
180
+
181
+ ---
182
+
183
+ <a id="roadmap"></a>
184
+ ## Roadmap
185
+
186
+ - [x] Vietnamese equity OHLCV (KBS, VCI, MSN)
187
+ - [x] Financial statements (MAS, VCI)
188
+ - [x] Macroeconomic indicators (World Bank, Maybank)
189
+ - [x] Mutual fund data (Fmarket)
190
+ - [x] Corporate news & events (KBS, VCI)
191
+ - [ ] International equity OHLCV
192
+ - [ ] Cryptocurrency data
193
+ - [ ] Derivatives / Futures data
194
+ - [ ] WebSocket streaming quotes
195
+
196
+ <p align="right">(<a href="#readme-top">back to top ↑</a>)</p>
197
+
198
+ ---
199
+
200
+ <a id="contributing"></a>
201
+ ## Contributing
202
+
203
+ Contributions are welcome! If you'd like to add a new provider, fix a bug, or improve documentation:
204
+
205
+ 1. Fork the repository
206
+ 2. Create a feature branch: `git checkout -b feature/new-provider`
207
+ 3. Commit your changes
208
+ 4. Open a Pull Request
209
+
210
+ Please make sure your changes pass the UAT suite before submitting:
211
+ ```bash
212
+ python uat/run_uat.py
213
+ ```
214
+
215
+ <p align="right">(<a href="#readme-top">back to top ↑</a>)</p>
216
+
217
+ ---
218
+
219
+ <a id="changelog"></a>
220
+ ## Changelog
221
+
222
+ See all version updates, new features, and bug fixes at:
223
+
224
+ **[CHANGELOG.md](./CHANGELOG.md)**
225
+
226
+ <p align="right">(<a href="#readme-top">back to top ↑</a>)</p>
227
+
228
+ ---
229
+
230
+ <a id="license"></a>
231
+ ## License
232
+
233
+ Distributed under the **GNU Affero General Public License v3.0 (AGPL-3.0)**. See [`LICENSE`](LICENSE) for more information.
234
+
235
+ <p align="right">(<a href="#readme-top">back to top ↑</a>)</p>
@@ -1,4 +1,4 @@
1
- __version__ = "0.2.0"
1
+ __version__ = "0.2.1"
2
2
 
3
3
  from openstockapi.api.stock import ohlcv, profile, quote, async_ohlcv
4
4
  from openstockapi.api.financial import income_statement, balance_sheet, cashflow, ratios
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: openstockapi
3
- Version: 0.2.0
3
+ Version: 0.2.1
4
4
  Summary: Vietnam stock market data library — open source data plane
5
5
  Author-email: Your Name <your.email@example.com>
6
6
  License: AGPL-3.0-only
@@ -26,7 +26,7 @@ Requires-Dist: ruff; extra == "dev"
26
26
  Dynamic: license-file
27
27
 
28
28
  <div align="center">
29
- <h1>📈 OpenStockAPI</h1>
29
+ <h1> OpenStockAPI</h1>
30
30
  <p><strong>A modular, multi-source Python Data Plane for Vietnamese & International financial market data.</strong></p>
31
31
 
32
32
  <p>
@@ -37,7 +37,7 @@ Dynamic: license-file
37
37
  </p>
38
38
 
39
39
  <p>
40
- <a href="./user_guide/getting_started.md"><strong>📖 Read the Docs »</strong></a>
40
+ <a href="./user_guide/getting_started.md"><strong> Read the Docs »</strong></a>
41
41
  &nbsp;·&nbsp;
42
42
  <a href="https://github.com/YOUR_USERNAME/openstockapi/issues/new?labels=bug">Report Bug</a>
43
43
  &nbsp;·&nbsp;
@@ -52,16 +52,16 @@ Dynamic: license-file
52
52
  <summary>📋 Table of Contents</summary>
53
53
  <ol>
54
54
  <li><a href="#about">About The Project</a></li>
55
- <li><a href="#features">✨ Features</a></li>
56
- <li><a href="#quick-start">🚀 Quick Start</a></li>
57
- <li><a href="#installation">📦 Installation</a></li>
58
- <li><a href="#usage">📖 Usage & Documentation</a></li>
59
- <li><a href="#providers">🗂 Supported Providers</a></li>
60
- <li><a href="#data-modules">📊 Data Modules</a></li>
61
- <li><a href="#roadmap">🗺 Roadmap</a></li>
62
- <li><a href="#contributing">🤝 Contributing</a></li>
63
- <li><a href="#changelog">📄 Changelog</a></li>
64
- <li><a href="#license">📝 License</a></li>
55
+ <li><a href="#features"> Features</a></li>
56
+ <li><a href="#quick-start"> Quick Start</a></li>
57
+ <li><a href="#installation"> Installation</a></li>
58
+ <li><a href="#usage"> Usage & Documentation</a></li>
59
+ <li><a href="#providers"> Supported Providers</a></li>
60
+ <li><a href="#data-modules"> Data Modules</a></li>
61
+ <li><a href="#roadmap"> Roadmap</a></li>
62
+ <li><a href="#contributing"> Contributing</a></li>
63
+ <li><a href="#changelog"> Changelog</a></li>
64
+ <li><a href="#license"> License</a></li>
65
65
  </ol>
66
66
  </details>
67
67
 
@@ -81,19 +81,19 @@ It is designed to be the upstream data acquisition layer for financial applicati
81
81
  ---
82
82
 
83
83
  <a id="features"></a>
84
- ## Features
84
+ ## Features
85
85
 
86
- - **🌏 Multi-market Support** — Covers Vietnamese (`VN`) equities and can be extended to International (`US`) markets with the same API.
87
- - **🔄 Automatic Multi-source Fallback** — Integrates providers (KBS, VCI, MSN, MAS, Maybank, Fmarket) with transparent automatic failover when any source is unavailable.
88
- - **🏷 Freemium Tier Access Control** — Supports `Free`, `Pro` (200 req/min), and `Premium` (500 req/min) tiers with a client-side Token Bucket Rate Limiter.
89
- - **⚡ Async Support** — First-class `async/await` support via `async_ohlcv()` for high-throughput data pipelines.
86
+ - ** Multi-market Support** — Covers Vietnamese (`VN`) equities and can be extended to International (`US`) markets with the same API.
87
+ - ** Automatic Multi-source Fallback** — Integrates providers (KBS, VCI, MSN, MAS, Maybank, Fmarket) with transparent automatic failover when any source is unavailable.
88
+ - ** Freemium Tier Access Control** — Supports `Free`, `Pro` (200 req/min), and `Premium` (500 req/min) tiers with a client-side Token Bucket Rate Limiter.
89
+ - ** Async Support** — First-class `async/await` support via `async_ohlcv()` for high-throughput data pipelines.
90
90
 
91
91
  <p align="right">(<a href="#readme-top">back to top ↑</a>)</p>
92
92
 
93
93
  ---
94
94
 
95
95
  <a id="quick-start"></a>
96
- ## 🚀 Quick Start
96
+ ## Quick Start
97
97
 
98
98
  ```python
99
99
  import openstockapi as osapi
@@ -123,7 +123,7 @@ events = osapi.company_events("FPT", limit=5)
123
123
  ---
124
124
 
125
125
  <a id="installation"></a>
126
- ## 📦 Installation
126
+ ## Installation
127
127
 
128
128
  **Minimum install:**
129
129
  ```bash
@@ -142,28 +142,28 @@ pip install openstockapi[pandas]
142
142
  ---
143
143
 
144
144
  <a id="usage"></a>
145
- ## 📖 Usage & Documentation
145
+ ## Usage & Documentation
146
146
 
147
147
  Full documentation, use case examples, and sample outputs are available in the User Guide:
148
148
 
149
- 👉 **[User Guide — Getting Started](./user_guide/getting_started.md)**
149
+ **[User Guide — Getting Started](./user_guide/getting_started.md)**
150
150
 
151
151
  | Module | Description | Guide |
152
152
  |--------|-------------|-------|
153
- | 01 — OHLCV & Profile | Historical price data, company profile | [📄](./user_guide/01_stock_market_data.md) |
154
- | 02 — Financial Statements | Balance sheet, income, cash flow, ratios | [📄](./user_guide/02_financial_statements.md) |
155
- | 03 — Realtime Quote | Live price, order book depth | [📄](./user_guide/03_realtime_quote.md) |
156
- | 04 — Market Indices | VNINDEX, VN30 constituents | [📄](./user_guide/04_order_book.md) |
157
- | 05 — Macro Indicators | CPI, M2 money supply, credit growth | [📄](./user_guide/05_macro_indicators.md) |
158
- | 06 — Mutual Funds | Fund NAV, portfolio holdings | [📄](./user_guide/06_mutual_funds.md) |
159
- | 07 — News & Events | Corporate news, dividends, events | [📄](./user_guide/07_news_and_events.md) |
153
+ | 01 — OHLCV & Profile | Historical price data, company profile | [](./user_guide/01_stock_market_data.md) |
154
+ | 02 — Financial Statements | Balance sheet, income, cash flow, ratios | [](./user_guide/02_financial_statements.md) |
155
+ | 03 — Realtime Quote | Live price, order book depth | [](./user_guide/03_realtime_quote.md) |
156
+ | 04 — Market Indices | VNINDEX, VN30 constituents | [](./user_guide/04_order_book.md) |
157
+ | 05 — Macro Indicators | CPI, M2 money supply, credit growth | [](./user_guide/05_macro_indicators.md) |
158
+ | 06 — Mutual Funds | Fund NAV, portfolio holdings | [](./user_guide/06_mutual_funds.md) |
159
+ | 07 — News & Events | Corporate news, dividends, events | [](./user_guide/07_news_and_events.md) |
160
160
 
161
161
  <p align="right">(<a href="#readme-top">back to top ↑</a>)</p>
162
162
 
163
163
  ---
164
164
 
165
165
  <a id="providers"></a>
166
- ## 🗂 Supported Providers
166
+ ## Supported Providers
167
167
 
168
168
  | Provider | Source | Tier | Data Types |
169
169
  |----------|--------|------|------------|
@@ -182,7 +182,7 @@ Full documentation, use case examples, and sample outputs are available in the U
182
182
  ---
183
183
 
184
184
  <a id="data-modules"></a>
185
- ## 📊 Data Modules Overview
185
+ ## Data Modules Overview
186
186
 
187
187
  ```
188
188
  openstockapi
@@ -208,7 +208,7 @@ openstockapi
208
208
  ---
209
209
 
210
210
  <a id="roadmap"></a>
211
- ## 🗺 Roadmap
211
+ ## Roadmap
212
212
 
213
213
  - [x] Vietnamese equity OHLCV (KBS, VCI, MSN)
214
214
  - [x] Financial statements (MAS, VCI)
@@ -225,7 +225,7 @@ openstockapi
225
225
  ---
226
226
 
227
227
  <a id="contributing"></a>
228
- ## 🤝 Contributing
228
+ ## Contributing
229
229
 
230
230
  Contributions are welcome! If you'd like to add a new provider, fix a bug, or improve documentation:
231
231
 
@@ -244,18 +244,18 @@ python uat/run_uat.py
244
244
  ---
245
245
 
246
246
  <a id="changelog"></a>
247
- ## 📄 Changelog
247
+ ## Changelog
248
248
 
249
249
  See all version updates, new features, and bug fixes at:
250
250
 
251
- 👉 **[CHANGELOG.md](./CHANGELOG.md)**
251
+ **[CHANGELOG.md](./CHANGELOG.md)**
252
252
 
253
253
  <p align="right">(<a href="#readme-top">back to top ↑</a>)</p>
254
254
 
255
255
  ---
256
256
 
257
257
  <a id="license"></a>
258
- ## 📝 License
258
+ ## License
259
259
 
260
260
  Distributed under the **GNU Affero General Public License v3.0 (AGPL-3.0)**. See [`LICENSE`](LICENSE) for more information.
261
261
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "openstockapi"
7
- version = "0.2.0"
7
+ version = "0.2.1"
8
8
  description = "Vietnam stock market data library — open source data plane"
9
9
  readme = "README.md"
10
10
  authors = [
File without changes
File without changes
File without changes