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.
- {openstockapi-0.2.0/openstockapi.egg-info → openstockapi-0.2.1}/PKG-INFO +36 -36
- {openstockapi-0.2.0 → openstockapi-0.2.1}/README.md +235 -235
- {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/__init__.py +1 -1
- {openstockapi-0.2.0 → openstockapi-0.2.1/openstockapi.egg-info}/PKG-INFO +36 -36
- {openstockapi-0.2.0 → openstockapi-0.2.1}/pyproject.toml +1 -1
- {openstockapi-0.2.0 → openstockapi-0.2.1}/LICENSE +0 -0
- {openstockapi-0.2.0 → openstockapi-0.2.1}/NOTICE +0 -0
- {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/api/financial.py +0 -0
- {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/api/fund.py +0 -0
- {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/api/macro.py +0 -0
- {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/api/news.py +0 -0
- {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/api/orderbook.py +0 -0
- {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/api/stock.py +0 -0
- {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/api/trading.py +0 -0
- {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/config/settings.py +0 -0
- {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/core/base_provider.py +0 -0
- {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/core/exceptions.py +0 -0
- {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/core/http_client.py +0 -0
- {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/core/models.py +0 -0
- {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/core/models_fund.py +0 -0
- {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/core/models_macro.py +0 -0
- {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/core/models_news.py +0 -0
- {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/core/models_trading.py +0 -0
- {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/core/rate_limiter.py +0 -0
- {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/core/security.py +0 -0
- {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/core/types.py +0 -0
- {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/core/utils.py +0 -0
- {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/license/session.py +0 -0
- {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/providers/__init__.py +0 -0
- {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/providers/dnse.py +0 -0
- {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/providers/fmarket.py +0 -0
- {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/providers/kbs.py +0 -0
- {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/providers/mas.py +0 -0
- {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/providers/mbk.py +0 -0
- {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/providers/msn.py +0 -0
- {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/providers/tcbs.py +0 -0
- {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/providers/vci.py +0 -0
- {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi/providers/vndirect.py +0 -0
- {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi.egg-info/SOURCES.txt +0 -0
- {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi.egg-info/dependency_links.txt +0 -0
- {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi.egg-info/requires.txt +0 -0
- {openstockapi-0.2.0 → openstockapi-0.2.1}/openstockapi.egg-info/top_level.txt +0 -0
- {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.
|
|
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
|
|
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
|
|
40
|
+
<a href="./user_guide/getting_started.md"><strong> Read the Docs »</strong></a>
|
|
41
41
|
·
|
|
42
42
|
<a href="https://github.com/YOUR_USERNAME/openstockapi/issues/new?labels=bug">Report Bug</a>
|
|
43
43
|
·
|
|
@@ -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"
|
|
56
|
-
<li><a href="#quick-start"
|
|
57
|
-
<li><a href="#installation"
|
|
58
|
-
<li><a href="#usage"
|
|
59
|
-
<li><a href="#providers"
|
|
60
|
-
<li><a href="#data-modules"
|
|
61
|
-
<li><a href="#roadmap"
|
|
62
|
-
<li><a href="#contributing"
|
|
63
|
-
<li><a href="#changelog"
|
|
64
|
-
<li><a href="#license"
|
|
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
|
-
##
|
|
84
|
+
## Features
|
|
85
85
|
|
|
86
|
-
-
|
|
87
|
-
-
|
|
88
|
-
-
|
|
89
|
-
-
|
|
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
|
-
##
|
|
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
|
-
##
|
|
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
|
-
##
|
|
145
|
+
## Usage & Documentation
|
|
146
146
|
|
|
147
147
|
Full documentation, use case examples, and sample outputs are available in the User Guide:
|
|
148
148
|
|
|
149
|
-
|
|
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 | [
|
|
154
|
-
| 02 — Financial Statements | Balance sheet, income, cash flow, ratios | [
|
|
155
|
-
| 03 — Realtime Quote | Live price, order book depth | [
|
|
156
|
-
| 04 — Market Indices | VNINDEX, VN30 constituents | [
|
|
157
|
-
| 05 — Macro Indicators | CPI, M2 money supply, credit growth | [
|
|
158
|
-
| 06 — Mutual Funds | Fund NAV, portfolio holdings | [
|
|
159
|
-
| 07 — News & Events | Corporate news, dividends, events | [
|
|
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
|
-
##
|
|
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
|
-
##
|
|
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
|
-
##
|
|
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
|
-
##
|
|
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
|
-
##
|
|
247
|
+
## Changelog
|
|
248
248
|
|
|
249
249
|
See all version updates, new features, and bug fixes at:
|
|
250
250
|
|
|
251
|
-
|
|
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
|
-
##
|
|
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
|
|
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
|
|
14
|
-
·
|
|
15
|
-
<a href="https://github.com/YOUR_USERNAME/openstockapi/issues/new?labels=bug">Report Bug</a>
|
|
16
|
-
·
|
|
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"
|
|
29
|
-
<li><a href="#quick-start"
|
|
30
|
-
<li><a href="#installation"
|
|
31
|
-
<li><a href="#usage"
|
|
32
|
-
<li><a href="#providers"
|
|
33
|
-
<li><a href="#data-modules"
|
|
34
|
-
<li><a href="#roadmap"
|
|
35
|
-
<li><a href="#contributing"
|
|
36
|
-
<li><a href="#changelog"
|
|
37
|
-
<li><a href="#license"
|
|
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
|
-
##
|
|
58
|
-
|
|
59
|
-
-
|
|
60
|
-
-
|
|
61
|
-
-
|
|
62
|
-
-
|
|
63
|
-
|
|
64
|
-
<p align="right">(<a href="#readme-top">back to top ↑</a>)</p>
|
|
65
|
-
|
|
66
|
-
---
|
|
67
|
-
|
|
68
|
-
<a id="quick-start"></a>
|
|
69
|
-
##
|
|
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
|
-
##
|
|
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
|
-
##
|
|
119
|
-
|
|
120
|
-
Full documentation, use case examples, and sample outputs are available in the User Guide:
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
| Module | Description | Guide |
|
|
125
|
-
|--------|-------------|-------|
|
|
126
|
-
| 01 — OHLCV & Profile | Historical price data, company profile | [
|
|
127
|
-
| 02 — Financial Statements | Balance sheet, income, cash flow, ratios | [
|
|
128
|
-
| 03 — Realtime Quote | Live price, order book depth | [
|
|
129
|
-
| 04 — Market Indices | VNINDEX, VN30 constituents | [
|
|
130
|
-
| 05 — Macro Indicators | CPI, M2 money supply, credit growth | [
|
|
131
|
-
| 06 — Mutual Funds | Fund NAV, portfolio holdings | [
|
|
132
|
-
| 07 — News & Events | Corporate news, dividends, events | [
|
|
133
|
-
|
|
134
|
-
<p align="right">(<a href="#readme-top">back to top ↑</a>)</p>
|
|
135
|
-
|
|
136
|
-
---
|
|
137
|
-
|
|
138
|
-
<a id="providers"></a>
|
|
139
|
-
##
|
|
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
|
-
##
|
|
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
|
-
##
|
|
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
|
-
##
|
|
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
|
-
##
|
|
221
|
-
|
|
222
|
-
See all version updates, new features, and bug fixes at:
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
<p align="right">(<a href="#readme-top">back to top ↑</a>)</p>
|
|
227
|
-
|
|
228
|
-
---
|
|
229
|
-
|
|
230
|
-
<a id="license"></a>
|
|
231
|
-
##
|
|
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
|
+
·
|
|
15
|
+
<a href="https://github.com/YOUR_USERNAME/openstockapi/issues/new?labels=bug">Report Bug</a>
|
|
16
|
+
·
|
|
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,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openstockapi
|
|
3
|
-
Version: 0.2.
|
|
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
|
|
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
|
|
40
|
+
<a href="./user_guide/getting_started.md"><strong> Read the Docs »</strong></a>
|
|
41
41
|
·
|
|
42
42
|
<a href="https://github.com/YOUR_USERNAME/openstockapi/issues/new?labels=bug">Report Bug</a>
|
|
43
43
|
·
|
|
@@ -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"
|
|
56
|
-
<li><a href="#quick-start"
|
|
57
|
-
<li><a href="#installation"
|
|
58
|
-
<li><a href="#usage"
|
|
59
|
-
<li><a href="#providers"
|
|
60
|
-
<li><a href="#data-modules"
|
|
61
|
-
<li><a href="#roadmap"
|
|
62
|
-
<li><a href="#contributing"
|
|
63
|
-
<li><a href="#changelog"
|
|
64
|
-
<li><a href="#license"
|
|
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
|
-
##
|
|
84
|
+
## Features
|
|
85
85
|
|
|
86
|
-
-
|
|
87
|
-
-
|
|
88
|
-
-
|
|
89
|
-
-
|
|
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
|
-
##
|
|
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
|
-
##
|
|
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
|
-
##
|
|
145
|
+
## Usage & Documentation
|
|
146
146
|
|
|
147
147
|
Full documentation, use case examples, and sample outputs are available in the User Guide:
|
|
148
148
|
|
|
149
|
-
|
|
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 | [
|
|
154
|
-
| 02 — Financial Statements | Balance sheet, income, cash flow, ratios | [
|
|
155
|
-
| 03 — Realtime Quote | Live price, order book depth | [
|
|
156
|
-
| 04 — Market Indices | VNINDEX, VN30 constituents | [
|
|
157
|
-
| 05 — Macro Indicators | CPI, M2 money supply, credit growth | [
|
|
158
|
-
| 06 — Mutual Funds | Fund NAV, portfolio holdings | [
|
|
159
|
-
| 07 — News & Events | Corporate news, dividends, events | [
|
|
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
|
-
##
|
|
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
|
-
##
|
|
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
|
-
##
|
|
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
|
-
##
|
|
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
|
-
##
|
|
247
|
+
## Changelog
|
|
248
248
|
|
|
249
249
|
See all version updates, new features, and bug fixes at:
|
|
250
250
|
|
|
251
|
-
|
|
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
|
-
##
|
|
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
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|