@invezgo/sdk 1.0.1 โ†’ 1.3.0

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.
package/README.md CHANGED
@@ -1,350 +1,313 @@
1
- <div align="center">
2
-
3
- ![Versi](https://img.shields.io/badge/versi-1.0.0-blue.svg)
4
- ![Lisensi](https://img.shields.io/badge/lisensi-MIT-green.svg)
5
- ![TypeScript](https://img.shields.io/badge/TypeScript-Siap-blue.svg)
6
- ![Node](https://img.shields.io/badge/node-%3E%3D14.0.0-brightgreen.svg)
7
-
8
- # ๐Ÿ“ˆ Invezgo SDK
9
-
10
- **SDK Resmi JavaScript/TypeScript untuk Invezgo API โ€” Platform AI & Data Pasar Saham Indonesia**
11
-
12
- SDK ini menyediakan akses mudah ke **API Saham Indonesia** dari platform **Invezgo**, mencakup data **Bursa Efek Indonesia (BEI)**, **laporan keuangan emiten**, **Bandarmology**, **Foreign Flow**, **AI Insight**, dan banyak lagi.
13
-
14
- [โœจ Fitur](#-fitur) โ€ข [โš™๏ธ Instalasi](#-instalasi) โ€ข [๐Ÿš€ Mulai Cepat](#-mulai-cepat) โ€ข [๐Ÿ“š Dokumentasi](#-dokumentasi) โ€ข [๐Ÿ’ก Contoh](#-contoh) โ€ข [๐Ÿ“– API Reference](#-api-reference)
15
-
16
- </div>
17
-
18
- ---
19
-
20
- ## ๐Ÿ‡ฎ๐Ÿ‡ฉ Tentang Invezgo
21
-
22
- **Invezgo** adalah **platform analisis saham berbasis kecerdasan buatan (AI)** yang berfokus pada pasar modal Indonesia.
23
- Misi kami adalah membantu investor ritel mendapatkan **akses setara terhadap data, wawasan, dan analisis pasar saham** melalui kombinasi teknologi data, AI, dan antarmuka yang mudah digunakan.
24
-
25
- Invezgo menyediakan:
26
- - ๐Ÿ“Š **Data pasar saham Indonesia (BEI)** secara real-time
27
- - ๐Ÿงฎ **Analisis otomatis** seperti Bandarmology, Foreign Flow, dan akumulasi investor
28
- - ๐Ÿค– **AI Insight** yang menjelaskan pola perdagangan dan perilaku pasar
29
- - ๐Ÿ“ˆ **Laporan keuangan & indikator fundamental** yang terintegrasi
30
- - ๐Ÿง  **Alat riset seperti screener, portofolio, watchlist, dan jurnal trading**
31
-
32
- Dengan **Invezgo SDK**, Anda dapat mengintegrasikan seluruh fitur tersebut langsung ke aplikasi Anda โ€” baik untuk **Fintech**, **dashboard analisis saham**, **screener otomatis**, atau **riset kuantitatif**.
33
-
34
- ---
35
-
36
- ## โœจ Fitur Utama
37
-
38
- - ๐Ÿ”ฅ **Dukungan Penuh TypeScript** โ€” Semua endpoint memiliki definisi tipe lengkap
39
- - ๐Ÿ“ฆ **Dual Module (CJS & ESM)** โ€” Dapat digunakan di Node.js maupun browser modern
40
- - ๐ŸŽฏ **Cakupan Lengkap** โ€” Mencakup semua endpoint API Invezgo
41
- - ๐Ÿ›ก๏ธ **Error Handling Terstruktur** โ€” Menampilkan kode, pesan, dan detail error
42
- - โšก **Async/Await Modern** โ€” Memanfaatkan sintaks modern yang mudah dibaca
43
- - ๐Ÿ“š **Dokumentasi Lengkap** โ€” Mendukung IntelliSense & komentar JSDoc
44
- - ๐Ÿš€ **Tanpa Dependensi** โ€” Ringan, cepat, dan efisien
45
- - ๐Ÿ” **Keamanan Otomatis** โ€” Autentikasi via Bearer Token
46
- - ๐ŸŒ **Node.js & Browser** โ€” Dapat digunakan di server maupun aplikasi web
47
-
48
- ---
49
-
50
- ## โš™๏ธ Instalasi
51
-
52
- Pasang SDK menggunakan npm, yarn, atau pnpm:
53
-
54
- ```bash
55
- # Menggunakan npm
56
- npm install @invezgo/sdk
57
-
58
- # Menggunakan yarn
59
- yarn add @invezgo/sdk
60
-
61
- # Menggunakan pnpm
62
- pnpm add @invezgo/sdk
63
- ```
64
-
65
- ---
66
-
67
- ## ๐Ÿš€ Mulai Cepat
68
-
69
- ### 1๏ธโƒฃ Dapatkan API Key Anda
70
-
71
- Untuk mulai menggunakan SDK, Anda membutuhkan API key dari Invezgo:
72
-
73
- - ๐Ÿ”‘ [Pengaturan API Key](https://invezgo.com/id/setting/api)
74
- - ๐Ÿ’ณ [Paket Langganan](https://invezgo.com/subscription)
75
-
76
- ---
77
-
78
- ### 2๏ธโƒฃ Contoh JavaScript (CommonJS)
79
-
80
- ```javascript
81
- const { Invezgo } = require('@invezgo/sdk');
82
-
83
- const client = new Invezgo({
84
- apiKey: 'api-key-anda'
85
- });
86
-
87
- // Ambil daftar seluruh saham
88
- (async () => {
89
- try {
90
- const stocks = await client.analysis.getStockList();
91
- console.log(`Ditemukan ${stocks.length} saham`);
92
- console.log(stocks[0]); // { code: 'BBCA', name: 'Bank Central Asia', logo: '...' }
93
- } catch (error) {
94
- console.error('Terjadi kesalahan:', error.message);
95
- }
96
- })();
97
- ```
98
-
99
- ---
100
-
101
- ### 3๏ธโƒฃ Contoh TypeScript / ES Modules
102
-
103
- ```typescript
104
- import Invezgo from '@invezgo/sdk';
105
-
106
- const client = new Invezgo({
107
- apiKey: 'api-key-anda'
108
- });
109
-
110
- (async () => {
111
- try {
112
- const info = await client.analysis.getInformation('BBCA');
113
- console.log(info.name); // Bank Central Asia
114
- console.log(info.sector); // Keuangan
115
- } catch (error) {
116
- console.error('Error:', error);
117
- }
118
- })();
119
- ```
120
-
121
- ---
122
-
123
- ## ๐Ÿ“š Dokumentasi
124
-
125
- ### Konfigurasi
126
-
127
- ```typescript
128
- import Invezgo from '@invezgo/sdk';
129
-
130
- const client = new Invezgo({
131
- apiKey: 'api-key-anda', // Wajib
132
- baseURL: 'https://api.invezgo.com', // Opsional
133
- timeout: 30000 // Opsional (default 30 detik)
134
- });
135
- ```
136
-
137
- ---
138
-
139
- ### Kategori Endpoint
140
-
141
- | Kategori | Deskripsi | Jumlah Metode |
142
- |----------|------------|---------------|
143
- | **`analysis`** | Analisis saham, grafik, data keuangan | 30+ |
144
- | **`watchlists`** | Manajemen watchlist pribadi | 7 |
145
- | **`journals`** | Catatan transaksi/jurnal trading | 5 |
146
- | **`portfolios`** | Portofolio & ringkasan investasi | 2 |
147
- | **`ai`** | Analisis saham dengan AI | 10 |
148
- | **`search`** | Pencarian saham & pengguna | 3 |
149
- | **`profile`** | Profil pengguna & sosial | 8 |
150
- | **`membership`** | Langganan & transaksi paket | 5 |
151
- | **`posts`** | Konten komunitas & postingan | 8 |
152
- | **`trades`** | Data transaksi realisasi | 4 |
153
- | **`screener`** | Filter saham otomatis | 3 |
154
- | **`health`** | Status kesehatan API | 3 |
155
-
156
- ---
157
-
158
- ## ๐Ÿ’ก Contoh Penggunaan
159
-
160
- ### ๐Ÿ“Š Analisis Saham
161
-
162
- ```typescript
163
- import Invezgo from '@invezgo/sdk';
164
- const client = new Invezgo({ apiKey: 'api-key-anda' });
165
-
166
- // Ambil seluruh daftar saham
167
- const stocks = await client.analysis.getStockList();
168
- console.log(`Total saham: ${stocks.length}`);
169
-
170
- // Ambil informasi perusahaan
171
- const info = await client.analysis.getInformation('BBCA');
172
- console.log(info.name); // Bank Central Asia
173
- console.log(info.sector); // Keuangan
174
- ```
175
-
176
- ---
177
-
178
- ### ๐Ÿ’ฐ Laporan Keuangan Emiten
179
-
180
- ```typescript
181
- // Ambil laporan Neraca (Balance Sheet)
182
- const balanceSheet = await client.analysis.getFinancialStatement('BBCA', {
183
- statement: 'BS',
184
- type: 'Q',
185
- limit: 10
186
- });
187
-
188
- console.log(balanceSheet.rows);
189
- console.log(balanceSheet.columns);
190
- ```
191
-
192
- ---
193
-
194
- ### ๐Ÿงญ Broker & Bandarmology
195
-
196
- ```typescript
197
- // Ambil data ringkasan broker untuk saham tertentu
198
- const summary = await client.analysis.getBrokerSummaryStock('BBCA', {
199
- from: '2024-12-01',
200
- to: '2024-12-30',
201
- investor: 'all',
202
- market: 'RG'
203
- });
204
- console.log(summary);
205
- ```
206
-
207
- ---
208
-
209
- ### ๐Ÿค– Analisis AI
210
-
211
- ```typescript
212
- // Analisis AI terhadap aktivitas broker
213
- const result = await client.ai.analyzeInventoryChart('BBCA', {
214
- from: '2024-12-01',
215
- to: '2024-12-30',
216
- scope: 'vol',
217
- investor: 'all',
218
- limit: 5,
219
- market: 'RG'
220
- });
221
-
222
- console.log(result.summary);
223
- ```
224
-
225
- ---
226
-
227
- ### ๐Ÿ”Ž Screener Saham Otomatis
228
-
229
- ```typescript
230
- const results = await client.screener.screen({
231
- columns: ['volume', 'close', 'value'],
232
- conditions: [
233
- { ratio: 'BASIC', column: 'close', operator: '>=', value: '5000' },
234
- { ratio: 'COMPARE', column: 'value', compare: 'volume', operator: '>', multiply: 'x', value: '1' }
235
- ]
236
- });
237
- ```
238
-
239
- ---
240
-
241
- ## ๐Ÿ“– Referensi API
242
-
243
- Tersedia lebih dari **100 endpoint terstruktur** dalam kategori berikut:
244
-
245
- - `analysis.getStockList()`, `getBrokerList()`, `getInformation(code)`
246
- - `getChart(code, {from, to})`, `getOrderBook(code)`, `getIntraday(code)`
247
- - `getTopChange(date)`, `getTopForeign(date)`, `getTopAccumulation(date)`
248
- - `getFinancialStatement(code, {...})`
249
- - `getKeyStat(code, {...})`, `getKeyStatChart(...)`
250
- - `getShareholder(code)`, `getShareholderKSEI(...)`, `getInsider(...)`
251
- - `getBrokerSummaryStock(...)`, `getInventoryChartStock(...)`
252
- - `ai.analyzeInventoryChart(...)`, `ai.analyzeShareholderAbove(...)`
253
- - `watchlists.*`, `journals.*`, `portfolios.*`, `screener.*`, `health.*`
254
-
255
- ---
256
-
257
- ## ๐Ÿ” Keamanan
258
-
259
- 1. Jangan pernah commit **API key** ke repositori publik
260
- 2. Gunakan **environment variable** di server:
261
- ```typescript
262
- const client = new Invezgo({
263
- apiKey: process.env.INVEZGO_API_KEY!
264
- });
265
- ```
266
- 3. Gunakan kunci berbeda untuk *dev* dan *production*
267
- 4. Lakukan rotasi API key secara berkala
268
-
269
- ---
270
-
271
- ## ๐ŸŒ Kompatibilitas
272
-
273
- SDK ini menggunakan `fetch` API bawaan yang tersedia di:
274
-
275
- - โœ… Browser modern (Chrome, Edge, Safari, Firefox)
276
- - โœ… Node.js 18+
277
- - โš ๏ธ Node.js 14โ€“17 โ†’ butuh `node-fetch`
278
- - โš ๏ธ Browser lama โ†’ butuh `whatwg-fetch`
279
-
280
- ---
281
-
282
- ## โš ๏ธ Penanganan Error
283
-
284
- ```typescript
285
- import { Invezgo, InvezgoError } from '@invezgo/sdk';
286
-
287
- try {
288
- await client.analysis.getInformation('INVALID');
289
- } catch (err) {
290
- if (err instanceof InvezgoError) {
291
- console.error('Kode:', err.statusCode);
292
- console.error('Pesan:', err.message);
293
- }
294
- }
295
- ```
296
-
297
- ---
298
-
299
- ## ๐Ÿง  FAQ
300
-
301
- **Apakah data ini real-time?**
302
- > Sebagian data seperti harga dan orderbook bersifat real-time (jika tersedia). Beberapa data seperti laporan keuangan bersifat periodik (EoD atau kuartalan).
303
-
304
- **Apakah aman digunakan di frontend?**
305
- > Sebaiknya gunakan server (backend) untuk menyimpan API key, atau gunakan token scoped khusus frontend.
306
-
307
- **Apakah SDK ini gratis?**
308
- > Beberapa endpoint memerlukan langganan. Lihat [Paket Langganan](https://invezgo.com/subscription).
309
-
310
- ---
311
-
312
- ## ๐Ÿค Kontribusi
313
-
314
- Kami sangat terbuka terhadap kontribusi komunitas.
315
- Langkahnya:
316
-
317
- 1. Fork repository ini
318
- 2. Buat branch baru: `git checkout -b fitur-baru`
319
- 3. Commit perubahan: `git commit -m "feat: tambah fitur baru"`
320
- 4. Push: `git push origin fitur-baru`
321
- 5. Buka Pull Request
322
-
323
- ---
324
-
325
- ## ๐Ÿ“ Lisensi
326
-
327
- Proyek ini dirilis di bawah **MIT License** โ€” silakan lihat [LICENSE](LICENSE).
328
-
329
- ---
330
-
331
- ## ๐Ÿ”— Tautan Penting
332
-
333
- - ๐ŸŒ [Website Invezgo](https://invezgo.com)
334
- - ๐Ÿ“š [Dokumentasi API](https://api.invezgo.com)
335
- - ๐Ÿ”‘ [Dapatkan API Key](https://invezgo.com/id/setting/api)
336
- - ๐Ÿ’ณ [Langganan Paket](https://invezgo.com/subscription)
337
- - ๐Ÿ“‹ [Syarat & Ketentuan](https://invezgo.com/terms)
338
- - ๐Ÿ”’ [Kebijakan Privasi](https://invezgo.com/privacy-policy)
339
- - ๐Ÿ› [Laporkan Bug](https://github.com/Invezgo/invezgo-js-sdk/issues)
340
-
341
- ---
342
-
343
- <div align="center">
344
-
345
- Made with โค๏ธ by the [Invezgo](https://invezgo.com) team
346
- **Empowering Indonesian investors with better data, better insights, and better decisions**
347
-
348
- โญ [Beri bintang di GitHub](https://github.com/Invezgo/invezgo-js-sdk)
349
-
350
- </div>
1
+ <div align="center">
2
+
3
+ # ๐Ÿ“ˆ Invezgo SDK - API Saham Indonesia Resmi untuk JavaScript & TypeScript
4
+
5
+ ![API Saham Indonesia](https://img.shields.io/badge/API%20Saham%20Indonesia-Lengkap-blue)
6
+ ![Official SDK](https://img.shields.io/badge/SDK-Resmi-green)
7
+ ![TypeScript](https://img.shields.io/badge/TypeScript-Ready-3178C6)
8
+ ![Node](https://img.shields.io/badge/Node-%3E%3D14-brightgreen)
9
+
10
+ **SDK resmi untuk integrasi API Saham Indonesia yang lengkap, resmi, dan performance-oriented.**
11
+
12
+ Dirancang untuk developer yang membangun aplikasi saham, dashboard analitik, screener, alert engine, watchlist, jurnal transaksi, dan backend service yang membutuhkan akses stabil ke **API Saham Indonesia** dari Invezgo.
13
+
14
+ [๐ŸŒ Website Invezgo](https://invezgo.com) โ€ข [๐Ÿ“š Dokumentasi API](https://api.invezgo.com/documentation)
15
+
16
+ </div>
17
+
18
+ ---
19
+
20
+ ## ๐Ÿš€ Mengapa Invezgo untuk API Saham Indonesia
21
+
22
+ Jika Anda mencari **API Saham Indonesia** yang siap dipakai untuk production, `@invezgo/sdk` memberikan surface integrasi yang lebih rapi dibanding request manual. SDK ini dibuat untuk mempermudah integrasi **API Saham Indonesia resmi** ke aplikasi JavaScript dan TypeScript dengan kontrak yang konsisten, typing yang jelas, dan footprint runtime yang ringan.
23
+
24
+ Keunggulan utamanya:
25
+
26
+ - โœ… **Resmi**: mengikuti surface API resmi Invezgo
27
+ - โœ… **Lengkap**: mencakup data saham, broker, index, screener, alert, watchlist, jurnal, portofolio, post, dan recommendation
28
+ - โœ… **Cepat dan ringan**: memakai `fetch` native tanpa dependency runtime tambahan
29
+ - โœ… **Developer-first**: mendukung TypeScript, DTO terstruktur, `CJS`, `ESM`, dan error handling yang jelas
30
+ - โœ… **Production-ready**: cocok untuk backend service, internal tools, fintech product, dan dashboard monitoring
31
+
32
+ ---
33
+
34
+ ## ๐ŸŽฏ Cocok untuk Use Case Berikut
35
+
36
+ - ๐Ÿ“Š Dashboard berbasis **API Saham Indonesia**
37
+ - ๐Ÿค– Screener saham Indonesia dengan formula custom
38
+ - ๐Ÿ”” Alert saham dan monitoring market behavior
39
+ - ๐Ÿงพ Jurnal transaksi dan manajemen watchlist
40
+ - ๐Ÿ’ผ Portofolio dan personal investment tools
41
+ - ๐Ÿ—๏ธ Backend integration untuk aplikasi fintech dan wealth platform
42
+ - ๐Ÿง  Research tooling untuk quant, trader, dan analis
43
+
44
+ ---
45
+
46
+ ## ๐Ÿ“ฆ Instalasi
47
+
48
+ ```bash
49
+ npm install @invezgo/sdk
50
+ ```
51
+
52
+ ---
53
+
54
+ ## ๐Ÿ›’ Cara Mulai dan Berlangganan
55
+
56
+ Sebelum menggunakan SDK ini, Anda perlu memiliki akses aktif ke **API Saham Indonesia** dari Invezgo.
57
+
58
+ ### 1. Pilih paket langganan API
59
+
60
+ Kunjungi halaman resmi API Saham Indonesia Invezgo untuk melihat paket yang tersedia dan memilih plan yang sesuai dengan kebutuhan aplikasi Anda:
61
+
62
+ - Paket API Saham Indonesia: [https://invezgo.com/id/data-api-saham-indonesia](https://invezgo.com/id/data-api-saham-indonesia)
63
+
64
+ ### 2. Login ke akun Invezgo
65
+
66
+ Setelah memilih paket, login ke akun Invezgo Anda melalui website utama:
67
+
68
+ - Website Invezgo: [https://invezgo.com](https://invezgo.com)
69
+
70
+ ### 3. Generate API key
71
+
72
+ Setelah langganan aktif, generate API key dari dashboard akun Invezgo Anda. API key inilah yang akan dipakai untuk autentikasi semua request ke **API Saham Indonesia**.
73
+
74
+ ### 4. Install SDK
75
+
76
+ Install package JavaScript/TypeScript resmi:
77
+
78
+ ```bash
79
+ npm install @invezgo/sdk
80
+ ```
81
+
82
+ ### 5. Simpan API key di environment variable
83
+
84
+ Contoh yang direkomendasikan:
85
+
86
+ ```bash
87
+ INVEZGO_API_KEY=your_api_key_here
88
+ ```
89
+
90
+ ### 6. Mulai integrasi
91
+
92
+ Gunakan API key tersebut untuk mengakses endpoint Invezgo melalui SDK:
93
+
94
+ ```ts
95
+ import Invezgo from '@invezgo/sdk';
96
+
97
+ const client = new Invezgo({
98
+ apiKey: process.env.INVEZGO_API_KEY!,
99
+ });
100
+ ```
101
+
102
+ ---
103
+
104
+ ## โšก Quick Start
105
+
106
+ ```ts
107
+ import Invezgo from '@invezgo/sdk';
108
+
109
+ const client = new Invezgo({
110
+ apiKey: process.env.INVEZGO_API_KEY!,
111
+ });
112
+
113
+ const stocks = await client.analysis.getStockList();
114
+ const indexes = await client.analysis.getIndexList();
115
+ const intraday = await client.analysis.getIntradayData('BBCA', 'RG');
116
+
117
+ console.log(stocks[0]);
118
+ console.log(indexes[0]);
119
+ console.log(intraday.close);
120
+ ```
121
+
122
+ ---
123
+
124
+ ## ๐Ÿงฉ Fitur Utama API Saham Indonesia di SDK Ini
125
+
126
+ ### ๐Ÿ“ˆ Data pasar dan analysis yang lengkap
127
+
128
+ Modul `analysis` mencakup endpoint penting untuk **API Saham Indonesia**, termasuk:
129
+
130
+ - daftar saham dan broker BEI
131
+ - daftar index IDX
132
+ - top gainer, top loser, top foreign, top accumulation, dan top retail flow
133
+ - chart saham dan index
134
+ - intraday chart, intraday summary, dan order book
135
+ - broker summary, broker stalker, inventory chart, momentum chart
136
+ - shareholder data, shareholder relation, insider activity, dan corporate action calendar
137
+ - financial statement dan key statistics
138
+
139
+ ### ๐Ÿ›ก๏ธ SDK resmi yang lebih aman untuk production
140
+
141
+ Menggunakan SDK resmi membantu mengurangi mismatch pada path, query params, payload, dan struktur response. Untuk tim yang membangun produk berbasis **API Saham Indonesia resmi**, pendekatan ini membuat proses development dan maintenance lebih efisien.
142
+
143
+ ### โš™๏ธ Ringan dan fokus pada performa
144
+
145
+ `Invezgo SDK` tidak membawa dependency runtime tambahan. Ini relevan untuk aplikasi yang sensitif terhadap startup time, cold start, footprint container, atau deployment serverless.
146
+
147
+ ### ๐Ÿ‘จโ€๐Ÿ’ป Developer experience yang rapi
148
+
149
+ - TypeScript-first
150
+ - `InvezgoError` untuk error handling terstruktur
151
+ - deklarasi tipe untuk DTO dan response utama
152
+ - output build untuk `require` dan `import`
153
+
154
+ ---
155
+
156
+ ## ๐Ÿ—‚๏ธ Modul yang Tersedia
157
+
158
+ - `alerts`
159
+ - `analysis`
160
+ - `watchlists`
161
+ - `journals`
162
+ - `portfolios`
163
+ - `search`
164
+ - `profile`
165
+ - `membership`
166
+ - `posts`
167
+ - `recommendation`
168
+ - `trades`
169
+ - `screener`
170
+ - `usage`
171
+
172
+ ---
173
+
174
+ ## ๐Ÿ’ก Contoh Integrasi API Saham Indonesia
175
+
176
+ ### ๐Ÿ”” Alert saham
177
+
178
+ ```ts
179
+ await client.alerts.add({
180
+ name: 'Breakout volume',
181
+ formula: 'close > ema(20) and volume > sma(volume, 20)',
182
+ category: ['COMPOSITE'],
183
+ every: 'END_OF_DAY',
184
+ send: 'IN_OUT',
185
+ });
186
+ ```
187
+
188
+ ### ๐Ÿ“Š Analysis dan data intraday
189
+
190
+ ```ts
191
+ const topRetail = await client.analysis.getTopRitel('2026-03-10');
192
+
193
+ const intraday = await client.analysis.getIntradayData('BBCA', 'RG');
194
+
195
+ const calendar = await client.analysis.getCalendar({
196
+ code: 'BBCA',
197
+ page: 1,
198
+ limit: 10,
199
+ });
200
+ ```
201
+
202
+ ### ๐Ÿ‘€ Watchlist
203
+
204
+ ```ts
205
+ await client.watchlists.add({
206
+ group: 'banking',
207
+ code: 'BBCA',
208
+ price: 9000,
209
+ scope: ['private'],
210
+ note: 'Area pantau',
211
+ });
212
+
213
+ await client.watchlists.updateGroup('group-id', {
214
+ name: 'Big Caps',
215
+ });
216
+ ```
217
+
218
+ ### ๐Ÿงพ Jurnal transaksi
219
+
220
+ ```ts
221
+ await client.journals.add({
222
+ code: 'BBCA',
223
+ broker: 'AK',
224
+ date: '2026-03-10',
225
+ lot: 10,
226
+ fee: 15000,
227
+ price: 9050,
228
+ status: 'BUY',
229
+ scope: ['private'],
230
+ note: 'Entry bertahap',
231
+ });
232
+ ```
233
+
234
+ ### ๐Ÿ”Ž Screener saham Indonesia
235
+
236
+ ```ts
237
+ const results = await client.screener.screen({
238
+ formula: 'close > ema(20)',
239
+ category: ['COMPOSITE', 'IDXFINANCE'],
240
+ });
241
+ ```
242
+
243
+ ### ๐Ÿค Recommendation
244
+
245
+ ```ts
246
+ const recommendations = await client.recommendation.getUserRecommendations();
247
+ ```
248
+
249
+ ### ๐Ÿ“Š API Usage Statistics
250
+
251
+ ```ts
252
+ const usage = await client.usage.getApiUsage();
253
+ console.log(`Remaining API calls: ${usage.remaining}/${usage.limit}`);
254
+ ```
255
+
256
+ ---
257
+
258
+ ## ๐Ÿ—๏ธ Keunggulan untuk Tim Developer
259
+
260
+ Saat membangun aplikasi di atas **API Saham Indonesia**, tim engineering biasanya membutuhkan kontrak yang jelas, integrasi yang ringan, dan surface yang mudah dipelihara. `Invezgo SDK` membantu menyederhanakan proses tersebut sehingga tim dapat fokus pada logic produk, bukan pada detail HTTP request yang berulang.
261
+
262
+ Secara praktis, manfaatnya:
263
+
264
+ - mengurangi boilerplate request manual
265
+ - mengurangi risiko typo pada endpoint dan payload
266
+ - mempercepat onboarding engineer baru
267
+ - mempermudah review, testing, dan maintenance
268
+
269
+ ---
270
+
271
+ ## ๐Ÿ”„ Catatan Migrasi Versi 1.2.0
272
+
273
+ - ditambahkan `client.usage` untuk memantau limit dan kuota penggunaan API key
274
+ - ditambahkan endpoint analysis baru: `getMultiTimeChart`, `getShareholderHigh`, `getShareholderClassification`, dan `getShareholderClassifyTable`
275
+ - tipe data fully typed untuk seluruh endpoint yang baru ditambahkan
276
+
277
+ ## ๐Ÿ”„ Catatan Migrasi Versi 1.1.0
278
+
279
+ - ditambahkan `client.alerts`
280
+ - ditambahkan `client.recommendation`
281
+ - ditambahkan endpoint analysis baru seperti index list, top retail flow, intraday summary, sector stalker, shareholder 1%, dan corporate action calendar
282
+ - DTO `watchlists`, `journals`, `membership`, dan `screener` sudah mengikuti skema request terbaru
283
+ - `client.ai` dan `client.health` dihapus karena tidak lagi tersedia pada kontrak API terbaru
284
+
285
+ ---
286
+
287
+ ## ๐Ÿ› ๏ธ Build
288
+
289
+ ```bash
290
+ npm run build
291
+ ```
292
+
293
+ ---
294
+
295
+ ## ๐Ÿง  Tipe yang Diekspor
296
+
297
+ SDK ini mengekspor tipe inti seperti:
298
+
299
+ - `InvezgoConfig`
300
+ - `Stock`, `Broker`, `StockIndex`
301
+ - `TopChangeResponse`, `TopRetailResponse`
302
+ - `IntradayStockData`, `IntradayIndexData`
303
+ - `ShareholderRelationResponse`
304
+ - `FinancialStatementResponse`, `KeyStatResponse`
305
+ - DTO endpoint seperti `AlertDto`, `CreateWatchlistDto`, `AddJournalTransactionDto`, `ScreenDto`
306
+
307
+ ---
308
+
309
+ ## ๐Ÿ”— Referensi
310
+
311
+ - ๐ŸŒ Website utama: [https://invezgo.com](https://invezgo.com)
312
+ - ๐Ÿ“š Dokumentasi API: [https://api.invezgo.com/documentation](https://api.invezgo.com/documentation)
313
+ - ๐Ÿงช Contoh tambahan: [`docs/EXAMPLES.md`](./docs/EXAMPLES.md)