Semua endpoint di dokumen ini memakai method GET.
- Base URL:
http://127.0.0.1:50270 - Dari UI (dev): request ke
/apidi-proxy ke base URL di atas.
GET /api/health- Parameter: tidak ada
- Return:
{ ok: boolean, service: string, ts: string, root: string } - Deskripsi: Cek status layanan dan direktori kerja.
Contoh:
curl -s 'http://127.0.0.1:50270/api/health'GET /api/:code/bid-offer- Parameter path:
code<string>: Kode saham (contoh: BBCA, GOTO).
- Parameter query:
start<string>: (Wajib) Tanggal awal (yyyymmdd, 8 digit).end<string>: (Wajib) Tanggal akhir (yyyymmdd), harus ≥ start.
- Return:
Array<{ date, bidVolume, offerVolume }> - Deskripsi: Deret waktu volume bid dan offer untuk satu emiten dalam rentang tanggal. Subset dari OHLC (hanya field bid/offer).
- Error:
400jika code kosong atau start/end tidak valid.
Contoh:
curl -s 'http://127.0.0.1:50270/api/BBCA/bid-offer?start=20250101&end=20250301'GET /api/candidates- Parameter query:
date<string>: (Opsional) Tanggal snapshot summary (yyyymmdd). Bawaan: hari ini.defaultFilter<boolean>: (Opsional) Jika true, pakai set bawaan: excludeNotation, excludeCorpAction, excludeUma, perMax=25, roeMin=0, derMax=2, momentumMin=0, momentumWeek=26.derMax<number>: (Opsional) DER maksimal.excludeCorpAction<boolean>: (Opsional) Exclude saham dengan corporate action.excludeNotation<boolean>: (Opsional) Exclude saham dengan notation.excludeUma<boolean>: (Opsional) Exclude saham UMA.limit<number>: (Opsional) Limit hasil per halaman.minValue<number>: (Opsional) Nilai transaksi minimal.minVolume<number>: (Opsional) Volume minimal.momentumMin<number>: (Opsional) Momentum minimal (%).momentumWeek<number>: (Opsional) Periode momentum: 26 atau 52 minggu. Bawaan: 26.mw<number>: (Opsional) Bobot momentum (komposit).offset<number>: (Opsional) Offset pagination.perMax<number>: (Opsional) PER maksimal.perMin<number>: (Opsional) PER minimal.qw<number>: (Opsional) Bobot quality (komposit).roeMin<number>: (Opsional) ROE minimal.search<string>: (Opsional) Filter kandidat: kode, nama emiten, atau sektor mengandung teks ini (case insensitive).vw<number>: (Opsional) Bobot value (komposit).sector<string>: (Opsional) Filter kandidat hanya dari sektor ini (exact match).withSectorRank<boolean>: (Opsional) Sertakan sectorRank dan sectorPercentile per saham.
- Return:
{ date, totalCount, limit, offset, serverTimestamp, data[] } - Deskripsi: Saham terfilter (fundamental + likuiditas + flag + sector + search) dengan skor komposit dan pagination.
Contoh:
curl -s 'http://127.0.0.1:50270/api/candidates?defaultFilter=true&limit=10&offset=0'GET /api/:code/foreign- Parameter path:
code<string>: Kode saham (contoh: BBCA, GOTO).
- Parameter query:
start<string>: (Wajib) Tanggal awal (yyyymmdd, 8 digit).end<string>: (Wajib) Tanggal akhir (yyyymmdd), harus ≥ start.
- Return:
{ code, start, end, data: Array<{ date, buy, sell, net }>, summary: { totalBuy, totalSell, totalNet, dayCount } } - Deskripsi: Statistik aliran asing (buy, sell, net) per hari dalam rentang tanggal; plus agregat total dan jumlah hari.
- Error:
400jika code kosong atau start/end tidak valid.
Contoh:
curl -s 'http://127.0.0.1:50270/api/BBCA/foreign?start=20250101&end=20250301'GET /api/general- Parameter: tidak ada
- Return:
{ stockList, industries, sectors, subSectors, subIndustries } - Deskripsi: Metadata untuk filter: daftar saham (code, name) dan daftar unik industri, sektor, subsektor, subindustri.
Contoh:
curl -s 'http://127.0.0.1:50270/api/general'GET /api/history/bid-offer- Parameter query:
start<string>: (Wajib) Tanggal awal (yyyymmdd, 8 digit).end<string>: (Wajib) Tanggal akhir (yyyymmdd), harus ≥ start.limit<number>: (Opsional) Maksimal rentang hari. Bawaan: 365. Jika (end − start) melebihi limit, start digeser sehingga rentang = limit hari.
- Return:
{ start, end, byDate: Array<{ date, sectors: Record<string, { bidVolume, offerVolume, count }> }>, bySector: Array<{ sector, totalBid, totalOffer, dayCount, avgBid, avgOffer, ratio }> } - Deskripsi: Data historis agregat bid/offer per sektor: per tanggal (byDate) dan agregat per sektor (bySector) dengan total, rata-rata per hari, dan rasio bid/offer. Data diambil dari summary dalam rentang tanggal.
- Error:
400jika start atau end tidak valid (yyyymmdd) atau end < start.
Contoh:
curl -s 'http://127.0.0.1:50270/api/history/bid-offer?start=20250201&end=20250301'
curl -s 'http://127.0.0.1:50270/api/history/bid-offer?start=20240101&end=20250301&limit=90'GET /api/:code/ohlc- Parameter path:
code<string>: Kode saham (contoh: BBCA, GOTO).
- Parameter query:
start<string>: (Wajib) Tanggal awal (yyyymmdd, 8 digit).end<string>: (Wajib) Tanggal akhir (yyyymmdd), harus ≥ start.
- Return:
Array<{ date, open, high, low, close, volume, change, bidVolume, offerVolume }> - Deskripsi: Data OHLC + volume + change + bid/offer volume untuk satu emiten dalam rentang tanggal.
- Error:
400jika code kosong atau start/end tidak valid.
Contoh:
curl -s 'http://127.0.0.1:50270/api/BBCA/ohlc?start=20250101&end=20250301'GET /api/:code/rsi- Parameter path:
code<string>: Kode saham (contoh: BBCA, GOTO).
- Parameter query:
start<string>: (Wajib) Tanggal awal (yyyymmdd, 8 digit).end<string>: (Wajib) Tanggal akhir (yyyymmdd), harus ≥ start.
- Return:
{ code, start, end, period, data: Array<{ date, rsi }>, sector, sectorData: Array<{ date, rsi }> } - Deskripsi: Deret waktu RSI(14) untuk satu emiten dalam rentang tanggal. Jika saham punya sektor,
sectorDataberisi RSI rata-rata sektor per hari (berdasarkan saham-saham dalam sektor itu). - Error:
400jika code kosong atau start/end tidak valid.
Contoh:
curl -s 'http://127.0.0.1:50270/api/BBCA/rsi?start=20250101&end=20250301'GET /api/screener/bid-offer- Parameter query:
date<string>: (Opsional) Tanggal referensi (yyyymmdd). Bawaan: hari terakhir yang ada di summary.
- Return:
{ date, data: Array<{ sector, bidVolume, offerVolume, count }> }— agregat volume bid dan offer per sektor untuk satu hari.datadiurutkan berdasarkan total volume (bid + offer) menurun. - Deskripsi: Agregat volume bid dan offer per sektor (universe screener) untuk tanggal tertentu. Berguna untuk chart Bid vs Offer per sektor di Analisa Teknikal.
Contoh:
curl -s 'http://127.0.0.1:50270/api/screener/bid-offer'
curl -s 'http://127.0.0.1:50270/api/screener/bid-offer?date=20260312'GET /api/screener/ranked- Parameter query:
limit<number>: (Opsional) Limit hasil.mw<number>: (Opsional) Bobot momentum.offset<number>: (Opsional) Offset pagination.qw<number>: (Opsional) Bobot quality.vw<number>: (Opsional) Bobot value.withSectorRank<boolean>: (Opsional) Sertakan sectorRank dan sectorPercentile.
- Return:
Arraybaris ter-ranking (dengan pagination). - Deskripsi: Semua saham ter-ranking komposit tanpa filter tanggal/likuiditas.
Contoh:
curl -s 'http://127.0.0.1:50270/api/screener/ranked?limit=20&offset=0&withSectorRank=true'GET /api/screener/rsi- Parameter query:
date<string>: (Opsional) Tanggal referensi (yyyymmdd). Bawaan: hari terakhir yang ada di summary.period<number>: (Opsional) Periode RSI (1–100). Bawaan: 14.
- Return:
{ date, period, data: { byCode, bySector } }—byCode: array semua item (per code);bySector: key sector → array item. - Deskripsi: Satu nilai RSI terakhir per saham (seluruh universe). Tanpa pagination/sort; sort/filter di frontend.
rsinull jika data close tidak cukup.
Contoh:
curl -s 'http://127.0.0.1:50270/api/screener/rsi'
curl -s 'http://127.0.0.1:50270/api/screener/rsi?date=20260311&period=14'GET /api/sector/strength- Parameter query:
source<string>: (Opsional)ohlc= hitung return dari OHLC summary; kosong = pakai week26PC/week52PC dari screener.week<number>: (Opsional) Periode minggu: 26 atau 52. Bawaan: 26.
- Return:
Array<{ sector, avgMomentum, count, rank }> - Deskripsi: Rata-rata momentum per sektor, diurutkan per ranking.
Contoh:
curl -s 'http://127.0.0.1:50270/api/sector/strength?week=26'GET /api/stock/:code/detail- Parameter path:
code<string>: Kode saham.
- Parameter query:
date<string>: (Opsional) Tanggal snapshot untuk value/volume (yyyymmdd). Bawaan: hari ini.start<string>: (Wajib) Tanggal awal rentang OHLC (yyyymmdd).end<string>: (Wajib) Tanggal akhir rentang OHLC (yyyymmdd).
- Return: Objek detail saham: code, name, sector, industry, fundamental, skor value/quality/momentum/composite, value, volume, ohlc[], flags (hasNotation, hasCorpAction, hasUma).
- Deskripsi: Detail fundamental, skor komposit, dan deret waktu OHLC untuk satu saham.
- Error:
400jika start/end tidak valid;404jika saham tidak ditemukan.
Contoh:
curl -s 'http://127.0.0.1:50270/api/stock/BBCA/detail?start=20250101&end=20250301'