# IDX (Bursa Efek Indonesia) — Zapi reference > Data Bursa Efek Indonesia: ringkasan saham & indeks, top movers, broker, emiten, laporan keuangan, berita, dan passthrough ke ratusan endpoint /primary/. **Base URL:** `https://api.zapi.ink` **Auth:** Send `x-api-key: YOUR_KEY` header on every request. Get a free key at https://zapi.ink/dashboard/keys. **Response envelope:** `{ content, message, errors }` **Rate limit:** 60 req/min on free tier. **Related:** - Detail page: https://zapi.ink/api/finance/idx - Endpoint catalog: https://zapi.ink/category/finance - Concise index: https://zapi.ink/llms.txt - Full reference: https://zapi.ink/llms-full.txt --- ## IDX (Bursa Efek Indonesia) **Category:** finance · **Slug:** `idx` **Detail page:** https://zapi.ink/api/finance/idx Data Bursa Efek Indonesia: ringkasan saham & indeks, top movers, broker, emiten, laporan keuangan, berita, dan passthrough ke ratusan endpoint /primary/. **Tags:** idx, saham, stock, bursa, indonesia, finance ### Ringkasan Saham Ringkasan perdagangan semua saham (harga, volume, value, frekuensi). - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:idx/stock-summary` - **Cache TTL:** 60s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `length` | number | query | no | Jumlah baris per halaman (default 20, max 5000) | | `start` | number | query | no | Offset awal (default 0) | | `date` | string | query | no | Tanggal data (YYYYMMDD atau YYYY-MM-DD). Default hari bursa terakhir. Bisa ambil data historis. | | `code` | string | query | no | Filter kode saham tertentu (opsional) | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:idx/stock-summary?length=20&start=0&date=20260612&code=BBCA" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:idx/stock-summary?length=20&start=0&date=20260612&code=BBCA", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:idx/stock-summary?length=20&start=0&date=20260612&code=BBCA", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "data": [ { "No": 98, "Bid": 6425, "Low": 6400, "Date": "2026-08-21T00:00:00", "High": 6475, "Close": 6450, "Offer": 6450, "Value": 648871165000, "Change": 50, "Volume": 100684300, "persen": null, "Remarks": "CDMO1UQNCNU600G111------------", "Previous": 6400, "BidVolume": 801100, "Frequency": 23357, "OpenPrice": 6400, "StockCode": "BBCA", "StockName": "Bank Central Asia Tbk.", "FirstTrade": 6400, "ForeignBuy": 79920800, "percentage": null, "ForeignSell": 38182500, "OfferVolume": 6599000, "ListedShares": 122042299500, "DelistingDate": "", "IDStockSummary": 4077957, "TradebleShares": 122042299500, "WeightForIndex": 38391910182, "IndexIndividual": 18415.9, "NonRegularValue": 13729287044, "NonRegularVolume": 2124613, "NonRegularFrequency": 20 } ], "start": 0, "length": 20, "dataset": "stock-summary", "provider": "idx", "recordsTotal": 1, "recordsFiltered": 963 } ``` --- ### Ringkasan Indeks Ringkasan semua indeks IDX (IHSG/COMPOSITE, LQ45, IDX30, dll). - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:idx/index-summary` - **Cache TTL:** 60s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `length` | number | query | no | Jumlah indeks (default 50) | | `start` | number | query | no | Offset (default 0) | | `date` | string | query | no | Tanggal data (YYYYMMDD atau YYYY-MM-DD). Default hari bursa terakhir. | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:idx/index-summary?length=50&start=0&date=20260612" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:idx/index-summary?length=50&start=0&date=20260612", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:idx/index-summary?length=50&start=0&date=20260612", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "data": [ { "No": 1, "Date": "2026-06-12T00:00:00", "Close": 6007.656, "Value": 21654846683780, "Change": 121.624, "Lowest": 5952.852, "Volume": 34775696450, "Highest": 6074.072, "Previous": 5886.032, "Frequency": 2346364, "IndexCode": "COMPOSITE", "MarketCapital": 10524297346477400, "NumberOfStock": 913, "IndexSummaryID": 193005 }, { "No": 2, "Date": "2026-06-12T00:00:00", "Close": 597.448, "Value": 12206901755616, "Change": 10.606, "Lowest": 594.635, "Volume": 12651287578, "Highest": 607.958, "Previous": 586.842, "Frequency": 819004, "IndexCode": "LQ45", "MarketCapital": 4125839000206770, "NumberOfStock": 45, "IndexSummaryID": 193006 }, { "No": 3, "Date": "2026-06-12T00:00:00", "Close": 87.187, "Value": 9911848320501, "Change": 1.362, "Lowest": 86.992, "Volume": 3945789568, "Highest": 88.837, "Previous": 85.825, "Frequency": 586876, "IndexCode": "IDXLQ45LCL", "MarketCapital": 4303050354047150, "NumberOfStock": 37, "IndexSummaryID": 193045 }, { "No": 4, "Date": "2026-06-12T00:00:00", "Close": 338.988, "Value": 10146806912295, "Change": 4.6, "Lowest": 338.707, "Volume": 10087520928, "Highest": 345.174, "Previous": 334.388, "Frequency": 623335, "IndexCode": "IDX30", "MarketCapital": 3507589087883250, "NumberOfStock": 30, "IndexSummaryID": 193014 }, { "No": 5, "Date": "2026-06-12T00:00:00", "Close": 89.678, "Value": 16205619462397, "Change": 1.963, "Lowest": 88.938, "Volume": 16349915979, "Highest": 91.217, "Previous": 87.715, "Frequency": 1172821, "IndexCode": "IDX80", "MarketCapital": 4994502370344020, "NumberOfStock": 80, "IndexSummaryID": 193025 } ], "dataset": "index-summary", "provider": "idx", "recordsTotal": 45 } ``` --- ### Top Movers Saham paling aktif: top gainer, loser, volume, value, frequent. - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:idx/top-movers` - **Cache TTL:** 60s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `type` | enum(gainer|loser|volume|value|frequent) | query | yes | Jenis: gainer (naik), loser (turun), volume, value, frequent (paling sering) | | `resultCount` | number | query | no | Jumlah saham teratas yang dikembalikan (default 10) | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:idx/top-movers?type=gainer&resultCount=10" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:idx/top-movers?type=gainer&resultCount=10", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:idx/top-movers?type=gainer&resultCount=10", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "data": [ { "Code": "KIOS", "Price": 91, "Value": 4186683900, "Change": 23, "Volume": 49168300, "Percent": 33.82, "Frequency": 2892 }, { "Code": "ASPR", "Price": 216, "Value": 140679325600, "Change": 51, "Volume": 705910000, "Percent": 30.91, "Frequency": 38164 }, { "Code": "PART", "Price": 100, "Value": 2590827500, "Change": 20, "Volume": 27542300, "Percent": 25, "Frequency": 2324 }, { "Code": "BUKK", "Price": 1005, "Value": 280842500, "Change": 200, "Volume": 289400, "Percent": 24.84, "Frequency": 212 }, { "Code": "RLCO", "Price": 3020, "Value": 11771918000, "Change": 600, "Volume": 4123100, "Percent": 24.79, "Frequency": 4944 } ], "type": "gainer", "dataset": "top-movers", "provider": "idx", "resultCount": 5 } ``` --- ### Ringkasan Broker Ringkasan perdagangan per broker/anggota bursa. - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:idx/broker-summary` - **Cache TTL:** 60s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `length` | number | query | no | Jumlah broker (default 50) | | `start` | number | query | no | Offset (default 0) | | `date` | string | query | no | Tanggal data (YYYYMMDD atau YYYY-MM-DD). Default hari bursa terakhir. | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:idx/broker-summary?length=50&start=0&date=20260612" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:idx/broker-summary?length=50&start=0&date=20260612", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:idx/broker-summary?length=50&start=0&date=20260612", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "data": [ { "No": 1, "Date": "2026-06-12T00:00:00", "Value": 1187317700, "IDFirm": "AD", "Volume": 5131200, "FirmName": "Sukadana Prima Sekuritas", "Frequency": 204, "IDBrokerSummary": 957287 }, { "No": 2, "Date": "2026-06-12T00:00:00", "Value": 3582812000, "IDFirm": "AF", "Volume": 5211500, "FirmName": "Harita Kencana Sekuritas", "Frequency": 145, "IDBrokerSummary": 957288 }, { "No": 3, "Date": "2026-06-12T00:00:00", "Value": 198130186500, "IDFirm": "AG", "Volume": 296854100, "FirmName": "Kiwoom Sekuritas Indonesia", "Frequency": 22106, "IDBrokerSummary": 957289 } ], "start": 0, "length": 3, "dataset": "broker-summary", "provider": "idx", "recordsTotal": 88 } ``` --- ### Emiten Tercatat Profil perusahaan/emiten tercatat di BEI. - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:idx/companies` - **Cache TTL:** 21600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `length` | number | query | no | Jumlah emiten per halaman (default 20, max 1000) | | `start` | number | query | no | Offset (default 0) | | `code` | string | query | no | Filter kode emiten tertentu (opsional) | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:idx/companies?length=20&start=0&code=BBCA" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:idx/companies?length=20&start=0&code=BBCA", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:idx/companies?length=20&start=0&code=BBCA", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "data": [ { "id": 0, "BAE": "PT. Datindo Entrycom", "Fax": "(021) 2553 3066", "Logo": "/Portals/0/StaticData/ListedCompanies/LogoEmiten/AADI.jpg", "NPKP": "", "NPWP": "02.433.115.9-091.000", "Email": "corsec@adaroindonesia.com", "Alamat": "Cyber 2 Tower Lantai 26\nJl. H.R. Rasuna Said Blok X-5, No.13\nJakarta 12950 - Indonesia", "DataID": 0, "Divisi": null, "Sektor": "Energi", "Status": 0, "Telepon": "(021) 2553 3065", "Website": "www.adaroindonesia.com", "Industri": "Batu Bara", "SubSektor": "Minyak, Gas & Batu Bara", "KodeDivisi": null, "KodeEmiten": "AADI", "NamaEmiten": "PT Adaro Andalan Indonesia Tbk", "JenisEmiten": null, "SubIndustri": "Produksi Batu Bara", "EfekEmiten_EBA": false, "EfekEmiten_ETF": false, "EfekEmiten_SPEI": false, "PapanPencatatan": "Utama", "EfekEmiten_Saham": true, "TanggalPencatatan": "2024-12-05T00:00:00", "KegiatanUsahaUtama": "Perkebunan kelapa sawit, karet dan tanaman penghasil getah lain, perusahaan holding, dan konsultasi manajemen lainnya", "EfekEmiten_Obligasi": false }, { "id": 0, "BAE": "PT. Raya Saham Registra", "Fax": "461-6655, 461-6677, 461-6688", "Logo": "/Portals/0/StaticData/ListedCompanies/LogoEmiten/AALI.jpg", "NPKP": "", "NPWP": "001.334.427.0-054.000", "Email": "Investor@astra-agro.co.id", "Alamat": "Jl. Puloayang Raya Kawasan Industri Pulo Gadung, OR, 1, Jatinegara, Cakung, Kota ADM, Jakarta Timur, DKI Jakarta, 13930", "DataID": 0, "Divisi": null, "Sektor": "Barang Konsumen Primer", "Status": 0, "Telepon": "461-65-55", "Website": "http://www.astra-agro.co.id", "Industri": "Produk Makanan Pertanian", "SubSektor": "Makanan & Minuman", "KodeDivisi": null, "KodeEmiten": "AALI", "NamaEmiten": "Astra Agro Lestari Tbk", "JenisEmiten": null, "SubIndustri": "Perkebunan & Tanaman Pangan", "EfekEmiten_EBA": false, "EfekEmiten_ETF": false, "EfekEmiten_SPEI": false, "PapanPencatatan": "Utama", "EfekEmiten_Saham": true, "TanggalPencatatan": "1997-12-09T00:00:00", "KegiatanUsahaUtama": "Agriculture Plantation", "EfekEmiten_Obligasi": false } ], "start": 0, "length": 2, "dataset": "listed-companies", "provider": "idx", "recordsTotal": 958, "recordsFiltered": 958 } ``` --- ### Daftar Securities Daftar saham tercatat: kode, nama, listing date, jumlah saham, papan. - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:idx/securities` - **Cache TTL:** 21600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `length` | number | query | no | Jumlah per halaman (default 20, max 1000) | | `start` | number | query | no | Offset (default 0) | | `code` | string | query | no | Filter kode saham (opsional) | | `sector` | string | query | no | Filter sektor (opsional) | | `board` | string | query | no | Filter papan pencatatan: Utama/Pengembangan/Akselerasi/Ekonomi-Baru (opsional) | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:idx/securities?length=20&start=0&code=BBCA§or=Financials&board=Utama" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:idx/securities?length=20&start=0&code=BBCA§or=Financials&board=Utama", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:idx/securities?length=20&start=0&code=BBCA§or=Financials&board=Utama", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "data": [ { "Code": "AALI", "Name": "Astra Agro Lestari Tbk.", "Shares": 1924688333, "ListingDate": "1997-12-09T00:00:00", "ListingBoard": "Utama" }, { "Code": "ABBA", "Name": "Mahaka Media Tbk.", "Shares": 3935892857, "ListingDate": "2002-04-03T00:00:00", "ListingBoard": "Pemantauan Khusus" }, { "Code": "ABDA", "Name": "Asuransi Bina Dana Arta Tbk.", "Shares": 620806680, "ListingDate": "1989-07-06T00:00:00", "ListingBoard": "Pengembangan" } ], "start": 0, "length": 3, "dataset": "securities", "provider": "idx", "recordsTotal": 957, "recordsFiltered": 957 } ``` --- ### Laporan Keuangan Laporan keuangan emiten per tahun/periode (link file). - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:idx/financial-report` - **Cache TTL:** 21600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `year` | number | query | yes | Tahun laporan | | `period` | enum(tw1|tw2|tw3|audit) | query | no | Periode: tw1/tw2/tw3 (triwulan) atau audit (tahunan). Default audit | | `code` | string | query | no | Filter kode emiten (opsional) | | `length` | number | query | no | Jumlah baris (default 20) | | `start` | number | query | no | Offset (default 0) | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:idx/financial-report?year=2024&period=audit&code=BBCA&length=20&start=0" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:idx/financial-report?year=2024&period=audit&code=BBCA&length=20&start=0", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:idx/financial-report?year=2024&period=audit&code=BBCA&length=20&start=0", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "data": [ { "KodeEmiten": "AADI", "NamaEmiten": "PT Adaro Andalan Indonesia Tbk", "Attachments": [ { "File_ID": "edca4d28-7ff8-4c32-b18e-14141cb0dd59", "File_Name": "AnnualReport2024-AADI.pdf", "File_Path": "/Portals/0/StaticData/NewsAndAnnouncement/ANNOUNCEMENTSTOCK/From_EREP/202504/52ff57ad3c_f6912de316.pdf", "File_Size": 0, "File_Type": ".pdf", "NamaEmiten": "PT Adaro Andalan Indonesia Tbk", "Emiten_Code": "AADI", "Report_Type": "rdf", "Report_Year": "2024", "File_Modified": "2025-03-04T18:44:28.883", "Report_Period": "Audit" }, { "File_ID": "96655ee5-3cb9-4c0e-95d9-16db102cc978", "File_Name": "FinancialStatement-2024-Tahunan-AADI.xlsx", "File_Path": "/Portals/0/StaticData/ListedCompanies/Corporate_Actions/New_Info_JSX/Jenis_Informasi/01_Laporan_Keuangan/02_Soft_Copy_Laporan_Keuangan//Laporan Keuangan Tahun 2024/Audit/AADI/FinancialStatement-2024-Tahunan-AADI.xlsx", "File_Size": 367860, "File_Type": ".xlsx", "NamaEmiten": "PT Adaro Andalan Indonesia Tbk", "Emiten_Code": "AADI", "Report_Type": "rdf", "Report_Year": "2024", "File_Modified": "2025-03-04T18:44:28.883", "Report_Period": "Audit" }, { "File_ID": "0949d36e-9a7a-4add-8b07-2e2399aeac61", "File_Name": "Checklist Pengungkapan LK 31 Desember 2024 AADI.pdf", "File_Path": "/Portals/0/StaticData/ListedCompanies/Corporate_Actions/New_Info_JSX/Jenis_Informasi/01_Laporan_Keuangan/02_Soft_Copy_Laporan_Keuangan//Laporan Keuangan Tahun 2024/Audit/AADI/Checklist Pengungkapan LK 31 Desember 2024 AADI.pdf", "File_Size": 704955, "File_Type": ".pdf", "NamaEmiten": "PT Adaro Andalan Indonesia Tbk", "Emiten_Code": "AADI", "Report_Type": "rdf", "Report_Year": "2024", "File_Modified": "2025-03-04T18:44:28.883", "Report_Period": "Audit" }, { "File_ID": "bd296b95-7ee6-4846-b2c9-59a2ada5e06d", "File_Name": "FS 31 December 2024 AADI.pdf", "File_Path": "/Portals/0/StaticData/ListedCompanies/Corporate_Actions/New_Info_JSX/Jenis_Informasi/01_Laporan_Keuangan/02_Soft_Copy_Laporan_Keuangan//Laporan Keuangan Tahun 2024/Audit/AADI/FS 31 December 2024 AADI.pdf", "File_Size": 5432342, "File_Type": ".pdf", "NamaEmiten": "PT Adaro Andalan Indonesia Tbk", "Emiten_Code": "AADI", "Report_Type": "rdf", "Report_Year": "2024", "File_Modified": "2025-03-04T18:44:28.883", "Report_Period": "Audit" }, { "File_ID": "a97b2840-c80c-402b-99ee-6660a9922549", "File_Name": "FinancialStatement-2024-Tahunan-AADI.pdf", "File_Path": "/Portals/0/StaticData/ListedCompanies/Corporate_Actions/New_Info_JSX/Jenis_Informasi/01_Laporan_Keuangan/02_Soft_Copy_Laporan_Keuangan//Laporan Keuangan Tahun 2024/Audit/AADI/FinancialStatement-2024-Tahunan-AADI.pdf", "File_Size": 891780, "File_Type": ".pdf", "NamaEmiten": "PT Adaro Andalan Indonesia Tbk", "Emiten_Code": "AADI", "Report_Type": "rdf", "Report_Year": "2024", "File_Modified": "2025-03-04T18:44:28.883", "Report_Period": "Audit" }, { "File_ID": "2ac61344-c584-4dff-a805-a6fb291dc445", "File_Name": "inlineXBRL.zip", "File_Path": "/Portals/0/StaticData/ListedCompanies/Corporate_Actions/New_Info_JSX/Jenis_Informasi/01_Laporan_Keuangan/02_Soft_Copy_Laporan_Keuangan//Laporan Keuangan Tahun 2024/Audit/AADI/inlineXBRL.zip", "File_Size": 273599, "File_Type": ".zip", "NamaEmiten": "PT Adaro Andalan Indonesia Tbk", "Emiten_Code": "AADI", "Report_Type": "rdf", "Report_Year": "2024", "File_Modified": "2025-03-04T18:44:28.883", "Report_Period": "Audit" }, { "File_ID": "48834fc8-0ac3-4fda-933b-da8fa22f0a3e", "File_Name": "AnnualReport2024-AADI-att1.pdf", "File_Path": "/Portals/0/StaticData/NewsAndAnnouncement/ANNOUNCEMENTSTOCK/From_EREP/202504/dd68aa1634_ccc31cec64.pdf", "File_Size": 0, "File_Type": ".pdf", "NamaEmiten": "PT Adaro Andalan Indonesia Tbk", "Emiten_Code": "AADI", "Report_Type": "rdf", "Report_Year": "2024", "File_Modified": "2025-03-04T18:44:28.883", "Report_Period": "Audit" }, { "File_ID": "109b23cc-ef8c-438e-ad40-e4cd8aa8fdd9", "File_Name": "instance.zip", "File_Path": "/Portals/0/StaticData/ListedCompanies/Corporate_Actions/New_Info_JSX/Jenis_Informasi/01_Laporan_Keuangan/02_Soft_Copy_Laporan_Keuangan//Laporan Keuangan Tahun 2024/Audit/AADI/instance.zip", "File_Size": 143996, "File_Type": ".zip", "NamaEmiten": "PT Adaro Andalan Indonesia Tbk", "Emiten_Code": "AADI", "Report_Type": "rdf", "Report_Year": "2024", "File_Modified": "2025-03-04T18:44:28.883", "Report_Period": "Audit" } ], "Report_Year": "2024", "File_Modified": "2025-03-04T18:44:28.883", "Report_Period": "Audit" }, { "KodeEmiten": "AALI", "NamaEmiten": "Astra Agro Lestari Tbk", "Attachments": [ { "File_ID": "9d040440-11e2-44e2-a4b3-0afffce8a8b8", "File_Name": "instance.zip", "File_Path": "/Portals/0/StaticData/ListedCompanies/Corporate_Actions/New_Info_JSX/Jenis_Informasi/01_Laporan_Keuangan/02_Soft_Copy_Laporan_Keuangan//Laporan Keuangan Tahun 2024/Audit/AALI/instance.zip", "File_Size": 124227, "File_Type": ".zip", "NamaEmiten": "Astra Agro Lestari Tbk", "Emiten_Code": "AALI", "Report_Type": "rdf", "Report_Year": "2024", "File_Modified": "2025-02-20T18:52:30.817", "Report_Period": "Audit" }, { "File_ID": "babe240e-7b3a-48e2-a0ca-32f53516bc2e", "File_Name": "AnnualReport2024-AALI-att1.pdf", "File_Path": "/Portals/0/StaticData/NewsAndAnnouncement/ANNOUNCEMENTSTOCK/From_EREP/202503/dcb2b35d05_b2fb6becaa.pdf", "File_Size": 0, "File_Type": ".pdf", "NamaEmiten": "Astra Agro Lestari Tbk", "Emiten_Code": "AALI", "Report_Type": "rdf", "Report_Year": "2024", "File_Modified": "2025-02-20T18:52:30.817", "Report_Period": "Audit" }, { "File_ID": "c5873da8-a4f2-42b7-b065-5c013847bc9f", "File_Name": "AALI Surat Pernyataan Direksi LK Tahunan 2024.pdf", "File_Path": "/Portals/0/StaticData/ListedCompanies/Corporate_Actions/New_Info_JSX/Jenis_Informasi/01_Laporan_Keuangan/02_Soft_Copy_Laporan_Keuangan//Laporan Keuangan Tahun 2024/Audit/AALI/AALI Surat Pernyataan Direksi LK Tahunan 2024.pdf", "File_Size": 387898, "File_Type": ".pdf", "NamaEmiten": "Astra Agro Lestari Tbk", "Emiten_Code": "AALI", "Report_Type": "rdf", "Report_Year": "2024", "File_Modified": "2025-02-20T18:52:30.817", "Report_Period": "Audit" }, { "File_ID": "1c5cd578-a398-4d0c-85a1-7b6ca4987f8a", "File_Name": "AALI LK Tahunan 2024.pdf", "File_Path": "/Portals/0/StaticData/ListedCompanies/Corporate_Actions/New_Info_JSX/Jenis_Informasi/01_Laporan_Keuangan/02_Soft_Copy_Laporan_Keuangan//Laporan Keuangan Tahun 2024/Audit/AALI/AALI LK Tahunan 2024.pdf", "File_Size": 3197496, "File_Type": ".pdf", "NamaEmiten": "Astra Agro Lestari Tbk", "Emiten_Code": "AALI", "Report_Type": "rdf", "Report_Year": "2024", "File_Modified": "2025-02-20T18:52:30.817", "Report_Period": "Audit" }, { "File_ID": "c181691a-f95d-4433-91d5-84a3084be6e9", "File_Name": "FinancialStatement-2024-Tahunan-AALI.pdf", "File_Path": "/Portals/0/StaticData/ListedCompanies/Corporate_Actions/New_Info_JSX/Jenis_Informasi/01_Laporan_Keuangan/02_Soft_Copy_Laporan_Keuangan//Laporan Keuangan Tahun 2024/Audit/AALI/FinancialStatement-2024-Tahunan-AALI.pdf", "File_Size": 800894, "File_Type": ".pdf", "NamaEmiten": "Astra Agro Lestari Tbk", "Emiten_Code": "AALI", "Report_Type": "rdf", "Report_Year": "2024", "File_Modified": "2025-02-20T18:52:30.817", "Report_Period": "Audit" }, { "File_ID": "7892d4ec-62dc-45fc-8ba9-a76d117dfbaa", "File_Name": "FinancialStatement-2024-Tahunan-AALI.xlsx", "File_Path": "/Portals/0/StaticData/ListedCompanies/Corporate_Actions/New_Info_JSX/Jenis_Informasi/01_Laporan_Keuangan/02_Soft_Copy_Laporan_Keuangan//Laporan Keuangan Tahun 2024/Audit/AALI/FinancialStatement-2024-Tahunan-AALI.xlsx", "File_Size": 317450, "File_Type": ".xlsx", "NamaEmiten": "Astra Agro Lestari Tbk", "Emiten_Code": "AALI", "Report_Type": "rdf", "Report_Year": "2024", "File_Modified": "2025-02-20T18:52:30.817", "Report_Period": "Audit" }, { "File_ID": "9bcea6a0-5e5a-4147-abc2-acddc0b32df4", "File_Name": "AALI Checklist Pengungkapan LK AALI 2024.pdf", "File_Path": "/Portals/0/StaticData/ListedCompanies/Corporate_Actions/New_Info_JSX/Jenis_Informasi/01_Laporan_Keuangan/02_Soft_Copy_Laporan_Keuangan//Laporan Keuangan Tahun 2024/Audit/AALI/AALI Checklist Pengungkapan LK AALI 2024.pdf", "File_Size": 969992, "File_Type": ".pdf", "NamaEmiten": "Astra Agro Lestari Tbk", "Emiten_Code": "AALI", "Report_Type": "rdf", "Report_Year": "2024", "File_Modified": "2025-02-20T18:52:30.817", "Report_Period": "Audit" }, { "File_ID": "149f5493-e3d6-4fa5-9246-c3a20f005695", "File_Name": "AnnualReport2024-AALI.pdf", "File_Path": "/Portals/0/StaticData/NewsAndAnnouncement/ANNOUNCEMENTSTOCK/From_EREP/202503/7bf46a818f_3ba87d6580.pdf", "File_Size": 0, "File_Type": ".pdf", "NamaEmiten": "Astra Agro Lestari Tbk", "Emiten_Code": "AALI", "Report_Type": "rdf", "Report_Year": "2024", "File_Modified": "2025-02-20T18:52:30.817", "Report_Period": "Audit" } ], "Report_Year": "2024", "File_Modified": "2025-02-20T18:52:30.817", "Report_Period": "Audit" }, { "KodeEmiten": "ABBA", "NamaEmiten": "Mahaka Media Tbk", "Attachments": [ { "File_ID": "8283aeb0-8e02-4b1b-91b7-02257c5532bd", "File_Name": "AnnualReport2024-ABBA.pdf", "File_Path": "/Portals/0/StaticData/NewsAndAnnouncement/ANNOUNCEMENTSTOCK/From_EREP/202505/57d67f88ce_bf92dc00a5.pdf", "File_Size": 0, "File_Type": ".pdf", "NamaEmiten": "Mahaka Media Tbk", "Emiten_Code": "ABBA", "Report_Type": "rdf", "Report_Year": "2024", "File_Modified": "2025-03-27T00:15:30.017", "Report_Period": "Audit" }, { "File_ID": "fe5a1e16-22d1-4fe5-9176-1690139036e1", "File_Name": "inlineXBRL.zip", "File_Path": "/Portals/0/StaticData/ListedCompanies/Corporate_Actions/New_Info_JSX/Jenis_Informasi/01_Laporan_Keuangan/02_Soft_Copy_Laporan_Keuangan//Laporan Keuangan Tahun 2024/Audit/ABBA/inlineXBRL.zip", "File_Size": 221844, "File_Type": ".zip", "NamaEmiten": "Mahaka Media Tbk", "Emiten_Code": "ABBA", "Report_Type": "rdf", "Report_Year": "2024", "File_Modified": "2025-03-27T00:15:30.017", "Report_Period": "Audit" }, { "File_ID": "92511c9f-5772-4454-ac1e-19666e315b18", "File_Name": "AnnualReport2024-ABBA-att1.pdf", "File_Path": "/Portals/0/StaticData/NewsAndAnnouncement/ANNOUNCEMENTSTOCK/From_EREP/202505/8d0ec2f5d0_7ad9ace030.pdf", "File_Size": 0, "File_Type": ".pdf", "NamaEmiten": "Mahaka Media Tbk", "Emiten_Code": "ABBA", "Report_Type": "rdf", "Report_Year": "2024", "File_Modified": "2025-03-27T00:15:30.017", "Report_Period": "Audit" }, { "File_ID": "17f0c06e-5acc-4461-9cf5-22bbdb2433a9", "File_Name": "instance.zip", "File_Path": "/Portals/0/StaticData/ListedCompanies/Corporate_Actions/New_Info_JSX/Jenis_Informasi/01_Laporan_Keuangan/02_Soft_Copy_Laporan_Keuangan//Laporan Keuangan Tahun 2024/Audit/ABBA/instance.zip", "File_Size": 111972, "File_Type": ".zip", "NamaEmiten": "Mahaka Media Tbk", "Emiten_Code": "ABBA", "Report_Type": "rdf", "Report_Year": "2024", "File_Modified": "2025-03-27T00:15:30.017", "Report_Period": "Audit" }, { "File_ID": "0175e873-dc52-4d3b-9ed2-2cd12aef8044", "File_Name": "FinancialStatement-2024-Tahunan-ABBA.xlsx", "File_Path": "/Portals/0/StaticData/ListedCompanies/Corporate_Actions/New_Info_JSX/Jenis_Informasi/01_Laporan_Keuangan/02_Soft_Copy_Laporan_Keuangan//Laporan Keuangan Tahun 2024/Audit/ABBA/FinancialStatement-2024-Tahunan-ABBA.xlsx", "File_Size": 307403, "File_Type": ".xlsx", "NamaEmiten": "Mahaka Media Tbk", "Emiten_Code": "ABBA", "Report_Type": "rdf", "Report_Year": "2024", "File_Modified": "2025-03-27T00:15:30.017", "Report_Period": "Audit" }, { "File_ID": "154f052f-044c-45a7-ba1a-3a78baaf1e05", "File_Name": "Surat_Pengantar LK ABBA.pdf", "File_Path": "/Portals/0/StaticData/ListedCompanies/Corporate_Actions/New_Info_JSX/Jenis_Informasi/01_Laporan_Keuangan/02_Soft_Copy_Laporan_Keuangan//Laporan Keuangan Tahun 2024/Audit/ABBA/Surat_Pengantar LK ABBA.pdf", "File_Size": 286181, "File_Type": ".pdf", "NamaEmiten": "Mahaka Media Tbk", "Emiten_Code": "ABBA", "Report_Type": "rdf", "Report_Year": "2024", "File_Modified": "2025-03-27T00:15:30.017", "Report_Period": "Audit" }, { "File_ID": "51e228be-e2bd-41fb-baa4-a06fbb4d4738", "File_Name": "Lapkeu ABBA 31 Des 24_IDX.pdf", "File_Path": "/Portals/0/StaticData/ListedCompanies/Corporate_Actions/New_Info_JSX/Jenis_Informasi/01_Laporan_Keuangan/02_Soft_Copy_Laporan_Keuangan//Laporan Keuangan Tahun 2024/Audit/ABBA/Lapkeu ABBA 31 Des 24_IDX.pdf", "File_Size": 8920519, "File_Type": ".pdf", "NamaEmiten": "Mahaka Media Tbk", "Emiten_Code": "ABBA", "Report_Type": "rdf", "Report_Year": "2024", "File_Modified": "2025-03-27T00:15:30.017", "Report_Period": "Audit" }, { "File_ID": "22609fcf-2156-4996-ac00-ae881f0ac1a1", "File_Name": "Surat Pernyataan Direksi PT ABBA.pdf", "File_Path": "/Portals/0/StaticData/ListedCompanies/Corporate_Actions/New_Info_JSX/Jenis_Informasi/01_Laporan_Keuangan/02_Soft_Copy_Laporan_Keuangan//Laporan Keuangan Tahun 2024/Audit/ABBA/Surat Pernyataan Direksi PT ABBA.pdf", "File_Size": 444924, "File_Type": ".pdf", "NamaEmiten": "Mahaka Media Tbk", "Emiten_Code": "ABBA", "Report_Type": "rdf", "Report_Year": "2024", "File_Modified": "2025-03-27T00:15:30.017", "Report_Period": "Audit" } ], "Report_Year": "2024", "File_Modified": "2025-03-27T00:15:30.017", "Report_Period": "Audit" } ], "year": 2024, "period": "audit", "dataset": "financial-report", "provider": "idx", "recordsTotal": 936 } ``` --- ### Aktivitas Pasar Saham suspend, relisting, dan UMA (Unusual Market Activity). - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:idx/market-activity` - **Cache TTL:** 1800s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `type` | enum(suspend|relisting|uma) | query | yes | Jenis: suspend (saham disuspend), relisting, uma (Unusual Market Activity) | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:idx/market-activity?type=suspend" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:idx/market-activity?type=suspend", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:idx/market-activity?type=suspend", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "data": { "Results": [ { "Judul": "UMA atas Saham PT Solusi Environment Asia Tbk. (SOFA)", "UMAID": null, "Status": null, "UMADate": "2026-06-11T00:00:00", "CompanyID": "SOFA", "Attachment": "/Portals/0/StaticData/NewsAndAnnouncement/UMA/2026/JUN/20260611-WAS_UMA_SOFA.pdf", "CompanyName": null, "AnnouncementNo": null }, { "Judul": "UMA atas Saham PT Sinarmas Multiartha Tbk. (SMMA)", "UMAID": null, "Status": null, "UMADate": "2026-06-09T00:00:00", "CompanyID": "SMMA", "Attachment": "/Portals/0/StaticData/NewsAndAnnouncement/UMA/2026/JUN/20260609-WAS_UMA_SMMA.pdf", "CompanyName": null, "AnnouncementNo": null }, { "Judul": "UMA atas Saham PT Sentul City Tbk. (BKSL)", "UMAID": null, "Status": null, "UMADate": "2026-06-08T00:00:00", "CompanyID": "BKSL", "Attachment": "/Portals/0/StaticData/NewsAndAnnouncement/UMA/2026/JUN/20260608-WAS_UMA_BKSL.pdf", "CompanyName": null, "AnnouncementNo": null }, { "Judul": "UMA atas Saham PT Techno9 Indonesia Tbk. (NINE)", "UMAID": null, "Status": null, "UMADate": "2026-06-08T00:00:00", "CompanyID": "NINE", "Attachment": "/Portals/0/StaticData/NewsAndAnnouncement/UMA/2026/JUN/20260608-WAS_UMA_NINE.pdf", "CompanyName": null, "AnnouncementNo": null }, { "Judul": "UMA atas Saham PT Kedoya Adyaraya Tbk. (RSGK)", "UMAID": null, "Status": null, "UMADate": "2026-06-08T00:00:00", "CompanyID": "RSGK", "Attachment": "/Portals/0/StaticData/NewsAndAnnouncement/UMA/2026/JUN/20260608-WAS_UMA_RSGK.pdf", "CompanyName": null, "AnnouncementNo": null }, { "Judul": "UMA atas Saham PT First Media Tbk. (KBLV)", "UMAID": null, "Status": null, "UMADate": "2026-06-08T00:00:00", "CompanyID": "KBLV", "Attachment": "/Portals/0/StaticData/NewsAndAnnouncement/UMA/2026/JUN/20260608-WAS_UMA_KBLV.pdf", "CompanyName": null, "AnnouncementNo": null }, { "Judul": "UMA atas Saham PT RMK Energy Tbk. (RMKE)", "UMAID": null, "Status": null, "UMADate": "2026-06-08T00:00:00", "CompanyID": "RMKE", "Attachment": "/Portals/0/StaticData/NewsAndAnnouncement/UMA/2026/JUN/20260608-WAS_UMA_RMKE.pdf", "CompanyName": null, "AnnouncementNo": null } ], "ResultCount": 0, "SearchCriteria": { "DateTo": null, "Keyword": "not used", "DateFrom": null, "pagesize": 10, "indexfrom": 0 } }, "type": "uma", "dataset": "market-activity", "provider": "idx" } ``` --- ### Berita & Pengumuman Berita dan pengumuman bursa, bisa dicari per kata kunci. - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:idx/news` - **Cache TTL:** 1800s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `keyword` | string | query | no | Kata kunci pencarian (opsional) | | `length` | number | query | no | Jumlah berita (default 10) | | `start` | number | query | no | Offset (default 0) | | `dateFrom` | string | query | no | Tanggal mulai filter (YYYYMMDD atau YYYY-MM-DD, opsional) | | `dateTo` | string | query | no | Tanggal akhir filter (YYYYMMDD atau YYYY-MM-DD, opsional) | | `locale` | enum(id|en) | query | no | Bahasa (id/en, default id) | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:idx/news?keyword=dividen&length=10&start=0&dateFrom=20260101&dateTo=20260613&locale=id" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:idx/news?keyword=dividen&length=10&start=0&dateFrom=20260101&dateTo=20260613&locale=id", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:idx/news?keyword=dividen&length=10&start=0&dateFrom=20260101&dateTo=20260613&locale=id", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "data": [ { "Id": 11692, "Tags": "RUPST", "Links": [ { "Rel": "self", "Href": "/api/api/publication/news/11692", "Method": "GET" } ], "Title": "Panggilan Rapat Umum Pemegang Saham Tahunan PT Bursa Efek Indonesia Tahun 2026", "ItemId": "2fb61ad4-2b66-f111-b149-dacbee12ffcb", "Locale": "id-id", "Summary": "Panggilan Rapat Umum Pemegang Saham Tahunan PT Bursa Efek Indonesia Tahun 2026", "ImageUrl": "/media/1557/logo-bursa-efek-indonesia-final.jpg", "PathBase": null, "PathFile": null, "IsHeadline": true, "PublishedDate": "2026-06-12T08:00:00" }, { "Id": 11694, "Tags": "Go Public,Workshop", "Links": [ { "Rel": "self", "Href": "/api/api/publication/news/11694", "Method": "GET" } ], "Title": "Go Public Workshop “Go Public Sebagai Solusi Pendanaan di Tengah Tantangan Ekonomi Daerah” Kota Jayapura", "ItemId": "b1c02193-3766-f111-b149-dacbee12ffcb", "Locale": "id-id", "Summary": "Go Public Workshop “Go Public Sebagai Solusi Pendanaan di Tengah Tantangan Ekonomi Daerah” Kota Jayapura", "ImageUrl": "/media/bmwgnbax/gpw-jayapura.jpg", "PathBase": null, "PathFile": null, "IsHeadline": true, "PublishedDate": "2026-06-02T12:00:00" }, { "Id": 11695, "Tags": "Go Public,Workshop", "Links": [ { "Rel": "self", "Href": "/api/api/publication/news/11695", "Method": "GET" } ], "Title": "Go Public Workshop “Go Public Sebagai Solusi Pendanaan di Tengah Tantangan Ekonomi Daerah” Kota Jayapura", "ItemId": "b1c02193-3766-f111-b149-dacbee12ffcb", "Locale": "en-us", "Summary": "Go Public Workshop “Go Public Sebagai Solusi Pendanaan di Tengah Tantangan Ekonomi Daerah” Kota Jayapura", "ImageUrl": "/media/bmwgnbax/gpw-jayapura.jpg", "PathBase": null, "PathFile": null, "IsHeadline": true, "PublishedDate": "2026-06-02T12:00:00" } ], "dataset": "news", "keyword": "saham", "provider": "idx" } ``` --- ### Index Halaman Index semua halaman publik idx.co.id (464 URL), terkategorikan per section. - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:idx/sitemap` - **Cache TTL:** 86400s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `locale` | enum(id|en|all) | query | no | Filter bahasa URL: id, en, atau all (default id) | | `section` | string | query | no | Filter section tertentu (mis. data-pasar, perusahaan-tercatat, berita) | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:idx/sitemap?locale=id§ion=data-pasar" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:idx/sitemap?locale=id§ion=data-pasar", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:idx/sitemap?locale=id§ion=data-pasar", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "note": "Menampilkan 7 URL di section \"idx-syariah\".", "urls": [ "https://www.idx.co.id/id/idx-syariah/edukasi-pasar-modal-syariah", "https://www.idx.co.id/id/idx-syariah/fatwa-regulasi", "https://www.idx.co.id/id/idx-syariah/hubungi-kami", "https://www.idx.co.id/id/idx-syariah/indeks-saham-syariah", "https://www.idx.co.id/id/idx-syariah/pertanyaan-dan-jawaban", "https://www.idx.co.id/id/idx-syariah/produk-syariah", "https://www.idx.co.id/id/idx-syariah/transaksi-sesuai-syariah" ], "locale": "id", "dataset": "sitemap", "provider": "idx", "totalUrls": 232, "sectionCounts": { "faq": 1, "akun": 5, "masuk": 2, "berita": 11, "daftar": 1, "https:": 1, "produk": 13, "sitemap": 1, "sign-out": 1, "investhub": 13, "peraturan": 7, "data-pasar": 113, "notifikasi": 1, "idx-syariah": 7, "market-data": 17, "tentang-bei": 14, "lupa-password": 1, "daftar-istilah": 1, "hasil-pencarian": 1, "verifikasi-email": 1, "form-atur-password": 1, "perusahaan-tercatat": 13, "verifikasi-email-sukses": 1, "anggota-bursa-dan-partisipan": 5 } } ``` --- ### Raw Passthrough Akses endpoint data IDX /primary/... apa pun sebagai JSON (fleksibel, ratusan endpoint). - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:idx/raw` - **Cache TTL:** 1800s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `path` | string | query | yes | IDX endpoint path after /primary/, shaped Module/GetXxx. Valid modules: TradingSummary, ListedCompany, StockData, Home, NewsAnnouncement, ExchangeMember, ListingActivity, BondSukuk, Slb, DerivativesData, StructuredWarrant, Regulation, and more. | | `query` | string | query | no | Raw query string appended to the endpoint (optional) — e.g. length=20&start=0&kodeEmiten=BBCA. IDX only reads dates as YYYYMMDD, so `dateFrom`/`dateTo` are normalised when unambiguous and dropped when empty. | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:idx/raw?path=TradingSummary%2FGetStockSummary&query=length%3D10%26start%3D0" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:idx/raw?path=TradingSummary%2FGetStockSummary&query=length%3D10%26start%3D0", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:idx/raw?path=TradingSummary%2FGetStockSummary&query=length%3D10%26start%3D0", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "data": [ { "No": 1, "Bid": 8625, "Low": 8050, "Date": "2026-06-12T00:00:00", "High": 8850, "Close": 8650, "Offer": 8650, "Value": 182271837500, "Change": 600, "Volume": 21262200, "persen": null, "Remarks": "XDMO1SD0F10000A121------------", "Previous": 8050, "BidVolume": 29200, "Frequency": 9962, "OpenPrice": 8100, "StockCode": "AADI", "StockName": "Adaro Andalan Indonesia Tbk.", "FirstTrade": 8075, "ForeignBuy": 5896500, "percentage": null, "ForeignSell": 9874800, "OfferVolume": 67500, "ListedShares": 7786891760, "DelistingDate": "", "IDStockSummary": 4031673, "TradebleShares": 7786891760, "WeightForIndex": 1486517637, "IndexIndividual": 155.9, "NonRegularValue": 5466551, "NonRegularVolume": 659, "NonRegularFrequency": 16 }, { "No": 2, "Bid": 6175, "Low": 6025, "Date": "2026-06-12T00:00:00", "High": 6325, "Close": 6175, "Offer": 6225, "Value": 18983070000, "Change": 125, "Volume": 3068700, "persen": null, "Remarks": "--MO113E100000D232------------", "Previous": 6050, "BidVolume": 51900, "Frequency": 3424, "OpenPrice": 6075, "StockCode": "AALI", "StockName": "Astra Agro Lestari Tbk.", "FirstTrade": 6050, "ForeignBuy": 1104500, "percentage": null, "ForeignSell": 1285200, "OfferVolume": 3000, "ListedShares": 1924688333, "DelistingDate": "", "IDStockSummary": 4031674, "TradebleShares": 1924688333, "WeightForIndex": 390711732, "IndexIndividual": 501.6, "NonRegularValue": 0, "NonRegularVolume": 0, "NonRegularFrequency": 0 }, { "No": 3, "Bid": 35, "Low": 35, "Date": "2026-06-12T00:00:00", "High": 35, "Close": 35, "Offer": 36, "Value": 10220000, "Change": 0, "Volume": 292000, "persen": null, "Remarks": "--U-4100000000E614-E---------X", "Previous": 35, "BidVolume": 8000, "Frequency": 59, "OpenPrice": 0, "StockCode": "ABBA", "StockName": "Mahaka Media Tbk.", "FirstTrade": 0, "ForeignBuy": 0, "percentage": null, "ForeignSell": 0, "OfferVolume": 1020800, "ListedShares": 3935892857, "DelistingDate": "", "IDStockSummary": 4031675, "TradebleShares": 3935892857, "WeightForIndex": 1298844643, "IndexIndividual": 77.3, "NonRegularValue": 0, "NonRegularVolume": 0, "NonRegularFrequency": 0 }, { "No": 4, "Bid": 3220, "Low": 3100, "Date": "2026-06-12T00:00:00", "High": 3430, "Close": 3390, "Offer": 3390, "Value": 33689000, "Change": 60, "Volume": 10200, "persen": null, "Remarks": "--UO2105000000G412------------", "Previous": 3330, "BidVolume": 100, "Frequency": 35, "OpenPrice": 3430, "StockCode": "ABDA", "StockName": "Asuransi Bina Dana Arta Tbk.", "FirstTrade": 3340, "ForeignBuy": 0, "percentage": null, "ForeignSell": 0, "OfferVolume": 8600, "ListedShares": 620806680, "DelistingDate": "", "IDStockSummary": 4031676, "TradebleShares": 620806680, "WeightForIndex": 81325675, "IndexIndividual": 773.9, "NonRegularValue": 0, "NonRegularVolume": 0, "NonRegularFrequency": 0 }, { "No": 5, "Bid": 2400, "Low": 2300, "Date": "2026-06-12T00:00:00", "High": 2440, "Close": 2420, "Offer": 2420, "Value": 1755194000, "Change": 120, "Volume": 739300, "persen": null, "Remarks": "--MO1135000000A121------------", "Previous": 2300, "BidVolume": 33500, "Frequency": 486, "OpenPrice": 2300, "StockCode": "ABMM", "StockName": "ABM Investama Tbk.", "FirstTrade": 2350, "ForeignBuy": 135000, "percentage": null, "ForeignSell": 89800, "OfferVolume": 20700, "ListedShares": 2753165000, "DelistingDate": "", "IDStockSummary": 4031677, "TradebleShares": 2753165000, "WeightForIndex": 413800700, "IndexIndividual": 64.5, "NonRegularValue": 0, "NonRegularVolume": 0, "NonRegularFrequency": 0 }, { "No": 6, "Bid": 356, "Low": 352, "Date": "2026-06-12T00:00:00", "High": 360, "Close": 356, "Offer": 358, "Value": 11953271200, "Change": 4, "Volume": 33615200, "persen": null, "Remarks": "CDMO1835UK6000E743------------", "Previous": 352, "BidVolume": 1716000, "Frequency": 3109, "OpenPrice": 356, "StockCode": "ACES", "StockName": "Aspirasi Hidup Indonesia Tbk.", "FirstTrade": 356, "ForeignBuy": 3864700, "percentage": null, "ForeignSell": 7173800, "OfferVolume": 446300, "ListedShares": 17120389700, "DelistingDate": "", "IDStockSummary": 4031678, "TradebleShares": 17120389700, "WeightForIndex": 6846443841, "IndexIndividual": 434.1, "NonRegularValue": 0, "NonRegularVolume": 0, "NonRegularFrequency": 0 }, { "No": 7, "Bid": 61, "Low": 60, "Date": "2026-06-12T00:00:00", "High": 65, "Close": 61, "Offer": 62, "Value": 245539000, "Change": 1, "Volume": 3937300, "persen": null, "Remarks": "--UO2100000000E413------------", "Previous": 60, "BidVolume": 574400, "Frequency": 489, "OpenPrice": 60, "StockCode": "ACRO", "StockName": "Samcro Hyosung Adilestari Tbk.", "FirstTrade": 60, "ForeignBuy": 144900, "percentage": null, "ForeignSell": 84100, "OfferVolume": 500, "ListedShares": 3469345537, "DelistingDate": "", "IDStockSummary": 4031679, "TradebleShares": 749273042, "WeightForIndex": 729950301, "IndexIndividual": 56.5, "NonRegularValue": 0, "NonRegularVolume": 0, "NonRegularFrequency": 0 }, { "No": 8, "Bid": 71, "Low": 70, "Date": "2026-06-12T00:00:00", "High": 71, "Close": 71, "Offer": 72, "Value": 12333000, "Change": 1, "Volume": 173800, "persen": null, "Remarks": "--U-4105000000J211-E---------X", "Previous": 70, "BidVolume": 178500, "Frequency": 56, "OpenPrice": 0, "StockCode": "ACST", "StockName": "Acset Indonusa Tbk.", "FirstTrade": 0, "ForeignBuy": 0, "percentage": null, "ForeignSell": 0, "OfferVolume": 20600, "ListedShares": 17675160000, "DelistingDate": "", "IDStockSummary": 4031680, "TradebleShares": 17675160000, "WeightForIndex": 1560716628, "IndexIndividual": 5.2, "NonRegularValue": 0, "NonRegularVolume": 0, "NonRegularFrequency": 0 } ], "path": "TradingSummary/GetStockSummary", "provider": "idx", "recordsTotal": 959, "recordsFiltered": 959 } ``` --- ### Announcements Keterbukaan informasi seluruh emiten, terbaru dulu. Berbasis halaman: pakai `page`, bukan offset. - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:idx/announcements` - **Cache TTL:** 300s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `page` | number | query | no | Halaman ke berapa (default 1). Upstream berbasis halaman, bukan offset | | `length` | number | query | no | Jumlah pengumuman per halaman (default 20, maks 100) | | `locale` | enum(id|en) | query | no | Bahasa pengumuman (default id) | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:idx/announcements?page=1&length=20&locale=id" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:idx/announcements?page=1&length=20&locale=id", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:idx/announcements?page=1&length=20&locale=id", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "data": [ { "id": "20260802163712-045a/DIR/SP-MGU/VII/2026_id-id", "code": "FOLK", "type": "STOCK", "title": "Penyampaian Bukti Iklan Informasi Laporan Keuangan Interim", "attachments": [ { "url": "https://www.idx.co.id/StaticData/NewsAndAnnouncement/ANNOUNCEMENTSTOCK/From_EREP/202608/f0a450fdce_6f5321d463.pdf", "fileName": "f0a450fdce_6f5321d463.pdf" }, { "url": "https://www.idx.co.id/StaticData/NewsAndAnnouncement/ANNOUNCEMENTSTOCK/From_EREP/202608/2e469f5e3d_cd42b96455.pdf", "fileName": "2e469f5e3d_cd42b96455.pdf" } ], "publishedAt": "2026-08-02T16:37:12", "announcementNo": "045a/DIR/SP-MGU/VII/2026" }, { "id": "20260802072958-053/SLIS/VIII/2026_id-id", "code": "SLIS", "type": "STOCK", "title": "Penyampaian Bukti Iklan Informasi Laporan Keuangan Interim", "attachments": [ { "url": "https://www.idx.co.id/StaticData/NewsAndAnnouncement/ANNOUNCEMENTSTOCK/From_EREP/202608/977e0ae856_8adcd7e223.pdf", "fileName": "977e0ae856_8adcd7e223.pdf" }, { "url": "https://www.idx.co.id/StaticData/NewsAndAnnouncement/ANNOUNCEMENTSTOCK/From_EREP/202608/eac4821036_79437e2dc4.pdf", "fileName": "eac4821036_79437e2dc4.pdf" } ], "publishedAt": "2026-08-02T07:29:58", "announcementNo": "053/SLIS/VIII/2026" }, { "id": "20260802025556-18/SAVITRA/VII/2026_id-id", "code": "VISI", "type": "STOCK", "title": "Penyampaian Laporan Keuangan Interim Yang Tidak Diaudit", "attachments": [ { "url": "https://www.idx.co.id/StaticData/NewsAndAnnouncement/ANNOUNCEMENTSTOCK/From_EREP/202608/20260802030815-64113-0/FinancialStatement-2026-II-VISI.pdf", "fileName": "FinancialStatement-2026-II-VISI.pdf" }, { "url": "https://www.idx.co.id/StaticData/NewsAndAnnouncement/ANNOUNCEMENTSTOCK/From_EREP/202608/20260802030815-64113-0/2026TW2 VISI Laporan Keuangan.pdf", "fileName": "2026TW2 VISI Laporan Keuangan.pdf" }, { "url": "https://www.idx.co.id/StaticData/NewsAndAnnouncement/ANNOUNCEMENTSTOCK/From_EREP/202608/20260802030815-64113-0/FinancialStatement-2026-II-VISI.xlsx", "fileName": "FinancialStatement-2026-II-VISI.xlsx" }, { "url": "https://www.idx.co.id/StaticData/NewsAndAnnouncement/ANNOUNCEMENTSTOCK/From_EREP/202608/20260802030815-64113-0/I 1 Laporan Penilaian atas Properti VISI.pdf", "fileName": "I 1 Laporan Penilaian atas Properti VISI.pdf" }, { "url": "https://www.idx.co.id/StaticData/NewsAndAnnouncement/ANNOUNCEMENTSTOCK/From_EREP/202608/20260802030815-64113-0/I.2. Laporan Pendapat Kewajaran Short Form_FO VISI.pdf", "fileName": "I.2. Laporan Pendapat Kewajaran Short Form_FO VISI.pdf" } ], "publishedAt": "2026-08-02T02:55:56", "announcementNo": "18/SAVITRA/VII/2026" }, { "id": "20260802015716-JGI-_id-id", "code": "KAQI", "type": "STOCK", "title": "Penyampaian Laporan Keuangan Interim Yang Tidak Diaudit", "attachments": [ { "url": "https://www.idx.co.id/StaticData/NewsAndAnnouncement/ANNOUNCEMENTSTOCK/From_EREP/202608/20260802021030-63811-0/FinancialStatement-2026-II-KAQI.pdf", "fileName": "FinancialStatement-2026-II-KAQI.pdf" }, { "url": "https://www.idx.co.id/StaticData/NewsAndAnnouncement/ANNOUNCEMENTSTOCK/From_EREP/202608/20260802021030-63811-0/FinancialStatement-2026-II-KAQI.xlsx", "fileName": "FinancialStatement-2026-II-KAQI.xlsx" }, { "url": "https://www.idx.co.id/StaticData/NewsAndAnnouncement/ANNOUNCEMENTSTOCK/From_EREP/202608/20260802021030-63811-0/inlineXBRL.zip", "fileName": "inlineXBRL.zip" }, { "url": "https://www.idx.co.id/StaticData/NewsAndAnnouncement/ANNOUNCEMENTSTOCK/From_EREP/202608/20260802021030-63811-0/instance.zip", "fileName": "instance.zip" }, { "url": "https://www.idx.co.id/StaticData/NewsAndAnnouncement/ANNOUNCEMENTSTOCK/From_EREP/202608/20260802021030-63811-0/LK Triwulan 2 2026 - KAQI.pdf", "fileName": "LK Triwulan 2 2026 - KAQI.pdf" } ], "publishedAt": "2026-08-02T01:57:16", "announcementNo": "JGI-" }, { "id": "20260801160933-296/CORSEC-MPR/VIII/2026_id-id", "code": "MANG", "type": "STOCK", "title": "Penyampaian Bukti Iklan Informasi Laporan Keuangan Interim", "attachments": [ { "url": "https://www.idx.co.id/StaticData/NewsAndAnnouncement/ANNOUNCEMENTSTOCK/From_EREP/202608/0791062731_4460c064b2.pdf", "fileName": "0791062731_4460c064b2.pdf" }, { "url": "https://www.idx.co.id/StaticData/NewsAndAnnouncement/ANNOUNCEMENTSTOCK/From_EREP/202608/31cce1a139_9bfa0daec2.pdf", "fileName": "31cce1a139_9bfa0daec2.pdf" } ], "publishedAt": "2026-08-01T16:09:33", "announcementNo": "296/CORSEC-MPR/VIII/2026" } ], "page": 1, "total": 249151, "length": 5, "locale": "id", "dataset": "announcements", "provider": "idx" } ``` --- ### Company Announcements Keterbukaan informasi satu emiten — riwayat aksi korporasi per kode saham, lengkap dengan lampiran PDF. - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:idx/company-announcements` - **Cache TTL:** 600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `code` | string | query | yes | Kode emiten, 4 huruf | | `length` | number | query | no | Jumlah pengumuman (default 20, maks 100) | | `start` | number | query | no | Offset baris (default 0) | | `locale` | enum(id|en) | query | no | Bahasa pengumuman (default id) | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:idx/company-announcements?code=BBCA&length=20&start=0&locale=id" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:idx/company-announcements?code=BBCA&length=20&start=0&locale=id", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:idx/company-announcements?code=BBCA&length=20&start=0&locale=id", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "code": "BBCA", "data": [ { "id": "20260731175614-0069/CVG/2026_id-id", "code": "BBCA", "type": "STOCK", "title": "Perubahan dalam pengendalian baik langsung maupun tidak langsung terhadap Emiten atau Perusahaan Publik", "formId": "11000", "subject": "Perubahan dalam pengendalian b", "createdAt": "2026-07-31T18:30:02", "attachments": [ { "url": "https://www.idx.co.id/StaticData/NewsAndAnnouncement/ANNOUNCEMENTSTOCK/From_EREP/202607/59c9d62180_96a02df66f.pdf", "fileName": "59c9d62180_96a02df66f.pdf" }, { "url": "https://www.idx.co.id/StaticData/NewsAndAnnouncement/ANNOUNCEMENTSTOCK/From_EREP/202607/0b9ec31383_5b374efdf5.pdf", "fileName": "0b9ec31383_5b374efdf5.pdf" }, { "url": "https://www.idx.co.id/StaticData/NewsAndAnnouncement/ANNOUNCEMENTSTOCK/From_EREP/202607/db24579a40_b573109a83.pdf", "fileName": "db24579a40_b573109a83.pdf" } ], "publishedAt": "2026-07-31T17:56:14", "announcementNo": "0069/CVG/2026" }, { "id": "20260728181934-0064/ESG/2026_id-id", "code": "BBCA", "type": "STOCK", "title": "Penyampaian Press Release terkait Informasi Ringkasan Kinerja Keuangan Kuartal II Tahun 2026 (unaudited) PT Bank Central Asia Tbk (\"Perseroan\")", "formId": "11000", "subject": "Penyampaian Press Release terk", "createdAt": "2026-07-28T18:30:02", "attachments": [ { "url": "https://www.idx.co.id/StaticData/NewsAndAnnouncement/ANNOUNCEMENTSTOCK/From_EREP/202607/9956e3a8ee_1a56c5de11.pdf", "fileName": "9956e3a8ee_1a56c5de11.pdf" }, { "url": "https://www.idx.co.id/StaticData/NewsAndAnnouncement/ANNOUNCEMENTSTOCK/From_EREP/202607/7ce136cfc4_ec3dd6d7b3.pdf", "fileName": "7ce136cfc4_ec3dd6d7b3.pdf" }, { "url": "https://www.idx.co.id/StaticData/NewsAndAnnouncement/ANNOUNCEMENTSTOCK/From_EREP/202607/baeecd07ff_9a67b3ef57.pdf", "fileName": "baeecd07ff_9a67b3ef57.pdf" } ], "publishedAt": "2026-07-28T18:19:34", "announcementNo": "0064/ESG/2026" }, { "id": "20260728162427-018/ATX/2026_id-id", "code": "BBCA", "type": "STOCK", "title": "Penyampaian Laporan Keuangan Interim Yang Tidak Diaudit", "formId": "11000", "createdAt": "2026-07-30T13:00:08", "attachments": [ { "url": "https://www.idx.co.id/StaticData/NewsAndAnnouncement/ANNOUNCEMENTSTOCK/From_EREP/202607/20260728163316-62836-0/FinancialStatement-2026-II-BBCA.pdf", "fileName": "FinancialStatement-2026-II-BBCA.pdf" }, { "url": "https://www.idx.co.id/StaticData/NewsAndAnnouncement/ANNOUNCEMENTSTOCK/From_EREP/202607/20260728163316-62836-0/FinancialStatement-2026-II-BBCA.xlsx", "fileName": "FinancialStatement-2026-II-BBCA.xlsx" }, { "url": "https://www.idx.co.id/StaticData/NewsAndAnnouncement/ANNOUNCEMENTSTOCK/From_EREP/202607/20260728163316-62836-0/inlineXBRL.zip", "fileName": "inlineXBRL.zip" }, { "url": "https://www.idx.co.id/StaticData/NewsAndAnnouncement/ANNOUNCEMENTSTOCK/From_EREP/202607/20260728163316-62836-0/instance.zip", "fileName": "instance.zip" }, { "url": "https://www.idx.co.id/StaticData/NewsAndAnnouncement/ANNOUNCEMENTSTOCK/From_EREP/202607/20260728163316-62836-0/Lapkeu BCA Jun26.pdf", "fileName": "Lapkeu BCA Jun26.pdf" } ], "publishedAt": "2026-07-28T16:24:27", "announcementNo": "018/ATX/2026" }, { "id": "20260710105147-00981/DIR/2026_id-id", "code": "BBCA", "type": "STOCK", "title": "Laporan Pengalihan Kembali Saham Hasil Buy Back", "formId": "11000", "subject": "Laporan Pengalihan Kembali Sah", "createdAt": "2026-07-10T11:00:02", "attachments": [ { "url": "https://www.idx.co.id/StaticData/NewsAndAnnouncement/ANNOUNCEMENTSTOCK/From_EREP/202607/cd76c6d811_d338ec9267.pdf", "fileName": "cd76c6d811_d338ec9267.pdf" }, { "url": "https://www.idx.co.id/StaticData/NewsAndAnnouncement/ANNOUNCEMENTSTOCK/From_EREP/202607/7bb835fe3d_b356f2dad6.pdf", "fileName": "7bb835fe3d_b356f2dad6.pdf" } ], "publishedAt": "2026-07-10T10:51:47", "announcementNo": "00981/DIR/2026" }, { "id": "20260710105119-0981/DIR/2026_id-id", "code": "BBCA", "type": "STOCK", "title": "Laporan Pengalihan Kembali Saham Hasil Buy Back", "formId": "11000", "subject": "Laporan Pengalihan Kembali Sah", "createdAt": "2026-07-10T11:00:02", "attachments": [ { "url": "https://www.idx.co.id/StaticData/NewsAndAnnouncement/ANNOUNCEMENTSTOCK/From_EREP/202607/0cb6f181fc_a9f10cbeaf.pdf", "fileName": "0cb6f181fc_a9f10cbeaf.pdf" }, { "url": "https://www.idx.co.id/StaticData/NewsAndAnnouncement/ANNOUNCEMENTSTOCK/From_EREP/202607/55a68a68f2_56424250f3.pdf", "fileName": "55a68a68f2_56424250f3.pdf" } ], "publishedAt": "2026-07-10T10:51:19", "announcementNo": "0981/DIR/2026" } ], "start": 0, "total": 213, "length": 5, "locale": "id", "dataset": "company-announcements", "provider": "idx" } ``` --- ### Foreign Flow Beli/jual investor asing per saham per hari bursa. Satuannya LEMBAR SAHAM, bukan rupiah. Bisa diurutkan berdasar net, buy, sell, atau kode. - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:idx/foreign-flow` - **Cache TTL:** 60s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `date` | string | query | no | Tanggal bursa (YYYYMMDD atau YYYY-MM-DD). Default: hari bursa terakhir | | `code` | string | query | no | Saring satu kode emiten saja (opsional) | | `sort` | enum(net|buy|sell|code) | query | no | Urutan: net (asing beli bersih terbesar), buy, sell, atau code. Default net | | `length` | number | query | no | Jumlah baris (default 50, maks 200) | | `start` | number | query | no | Offset baris (default 0) | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:idx/foreign-flow?date=2026-07-31&code=BBCA&sort=net&length=20&start=0" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:idx/foreign-flow?date=2026-07-31&code=BBCA&sort=net&length=20&start=0", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:idx/foreign-flow?date=2026-07-31&code=BBCA&sort=net&length=20&start=0", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "data": [ { "code": "IATA", "name": "Karya Pacific Energy Tbk.", "close": 76, "value": 116766853900, "volume": 1640828700, "foreignBuyShares": 243242400, "netForeignShares": 88222700, "foreignSellShares": 155019700 }, { "code": "MDIA", "name": "Intermedia Capital Tbk.", "close": 191, "value": 203053711800, "volume": 1136885000, "foreignBuyShares": 205545700, "netForeignShares": 81968300, "foreignSellShares": 123577400 }, { "code": "BBRI", "name": "Bank Rakyat Indonesia (Persero) Tbk.", "close": 3040, "value": 684938094000, "volume": 226634400, "foreignBuyShares": 153647100, "netForeignShares": 76995400, "foreignSellShares": 76651700 }, { "code": "DMAS", "name": "Puradelta Lestari Tbk.", "close": 148, "value": 23774851200, "volume": 161620100, "foreignBuyShares": 80222700, "netForeignShares": 72178500, "foreignSellShares": 8044200 }, { "code": "PACK", "name": "Abadi Nusantara Hijau Investama Tbk.", "close": 248, "value": 66056582800, "volume": 275994200, "foreignBuyShares": 83806000, "netForeignShares": 51360600, "foreignSellShares": 32445400 } ], "date": "2026-07-31T00:00:00", "sort": "net", "unit": "shares", "start": 0, "total": 963, "length": 5, "dataset": "foreign-flow", "provider": "idx" } ``` --- ### Margin Summary Ringkasan perdagangan efek margin. Terbit per periode margin, bukan harian — perhatikan tanggal pada respons. - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:idx/margin-summary` - **Cache TTL:** 3600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `date` | string | query | no | Tanggal periode (YYYYMMDD atau YYYY-MM-DD). Default: periode terakhir | | `length` | number | query | no | Jumlah baris (default 50, maks 300) | | `start` | number | query | no | Offset baris (default 0) | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:idx/margin-summary?date=2026-07-14&length=50&start=0" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:idx/margin-summary?date=2026-07-14&length=50&start=0", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:idx/margin-summary?date=2026-07-14&length=50&start=0", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "data": [ { "low": 8350, "code": "AADI", "high": 8500, "close": 8400, "value": 4010085000, "change": 25, "volume": 474200, "frequency": 178 }, { "low": 6300, "code": "AALI", "high": 6375, "close": 6300, "value": 247640000, "change": 0, "volume": 39000, "frequency": 62 }, { "low": 2350, "code": "ABMM", "high": 2420, "close": 2370, "value": 17927000, "change": 60, "volume": 7600, "frequency": 12 }, { "low": 344, "code": "ACES", "high": 350, "close": 346, "value": 402922600, "change": -4, "volume": 1165000, "frequency": 101 }, { "low": 158, "code": "ADHI", "high": 163, "close": 161, "value": 30115900, "change": 3, "volume": 187300, "frequency": 37 } ], "date": "2026-07-14T00:00:00", "start": 0, "total": 220, "length": 5, "dataset": "margin-summary", "provider": "idx" } ``` --- ### Ownership Files Indeks publikasi Data Kepemilikan Saham dari KSEI: tanggal, kategori, dan tautan berkas. Berisi tautan, bukan isi berkasnya. - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:idx/ownership-files` - **Cache TTL:** 3600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `category` | enum(lima-persen|satu-persen|klasifikasi|tipe) | query | no | Saring satu kategori. Default: semua kategori | | `length` | number | query | no | Jumlah berkas (default 50, maks 200) | | `start` | number | query | no | Offset baris (default 0) | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:idx/ownership-files?category=lima-persen&length=30&start=0" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:idx/ownership-files?category=lima-persen&length=30&start=0", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:idx/ownership-files?category=lima-persen&length=30&start=0", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "data": [ { "url": "https://www.idx.co.id/Media/cqiex5iv/peng-2026-07-30-00043-lima-persen.xlsx", "category": "lima-persen", "fileName": "peng-2026-07-30-00043-lima-persen.xlsx", "publishedAt": "2026-07-30", "categoryLabel": "Pemegang saham di atas 5%" }, { "url": "https://www.idx.co.id/Media/uznhesu0/peng-2026-07-29-00042-lima-persen.xlsx", "category": "lima-persen", "fileName": "peng-2026-07-29-00042-lima-persen.xlsx", "publishedAt": "2026-07-29", "categoryLabel": "Pemegang saham di atas 5%" }, { "url": "https://www.idx.co.id/Media/z1ymz1fw/peng-2026-07-28-00041-lima-persen.xlsx", "category": "lima-persen", "fileName": "peng-2026-07-28-00041-lima-persen.xlsx", "publishedAt": "2026-07-28", "categoryLabel": "Pemegang saham di atas 5%" }, { "url": "https://www.idx.co.id/Media/myaod41g/peng-2026-07-27-00040-lima-persen.xlsx", "category": "lima-persen", "fileName": "peng-2026-07-27-00040-lima-persen.xlsx", "publishedAt": "2026-07-27", "categoryLabel": "Pemegang saham di atas 5%" }, { "url": "https://www.idx.co.id/Media/oiyfshho/peng-2026-07-24-00039-lima-persen.xlsx", "category": "lima-persen", "fileName": "peng-2026-07-24-00039-lima-persen.xlsx", "publishedAt": "2026-07-24", "categoryLabel": "Pemegang saham di atas 5%" } ], "start": 0, "total": 61, "length": 5, "source": "KSEI", "dataset": "ownership-files", "provider": "idx" } ``` --- ### Exchange Members Daftar induk 90 Anggota Bursa. Isi `code` untuk profil lengkap satu broker: lisensi, status keanggotaan, pemegang saham beserta status kepemilikan asing/lokal, modal disetor, MKBD, dan jumlah kantor cabang. `view=full` menambahkan kategori dan persentase kepemilikan asing untuk seluruh 90 anggota sekaligus. - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:idx/brokers` - **Cache TTL:** 21600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `code` | string | query | no | Two-letter exchange member code. Returns one broker's full profile. | | `view` | enum(list|full) | query | no | `list` (default) returns all 90 members in one upstream call. `full` adds ownership category and foreign ownership per member — one upstream call each, ~38s, cached. | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:idx/brokers?code=YU&view=list" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:idx/brokers?code=YU&view=list", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:idx/brokers?code=YU&view=list", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "city": "Jakarta Selatan", "code": "YU", "logo": "https://www.idx.co.id/StaticData/Brokers/Logo/YU.jpg", "mkbd": 944675696954.63, "name": "CGS INTERNATIONAL SEKURITAS INDONESIA", "email": "jk.compliance@cgsi.com", "phone": "5151330", "address": "Gedung Bursa Efek Indonesia Tower 2, 20, Jl. Jend. Sudirman Kav. 52-53 , Kav 52-53", "dataset": "brokers", "license": "APERD, DMA, DMA AO, LP SW, Margin, Online, Online AO, Penjamin Emisi Efek, Perantara Pedagang Efek, RT AO, SOTS", "website": "www.cgsi.co.id", "category": "patungan", "provider": "idx", "branchCount": 27, "memberStatus": "Aktif", "shareholders": [ { "name": "CGS INTERNATIONAL SECURITIES PTE. LTD.", "type": "Badan Hukum", "country": "Singapura", "sharePct": 85, "ownership": "asing" }, { "name": "CGS International Konsultan Manajemen Indonesia, PT", "type": "Badan Hukum", "country": "Indonesia", "sharePct": 9.96, "ownership": "lokal" }, { "name": "CGS INTERNATIONAL SECURITIES SINGAPORE PTE. LTD.", "type": "Badan Hukum", "country": "Singapura", "sharePct": 5.04, "ownership": "asing" } ], "paidUpCapital": 356000000000, "foreignOwnershipPct": 90.04 } ``` --- ### Stock History Riwayat harian satu saham dalam satu panggilan, sampai 2020: OHLC, volume, nilai, frekuensi, bid/offer, saham tercatat, plus arus beli/jual investor asing dalam lembar dan nilai rupiah turunannya. Terima rentang `from`/`to` atau `length` hari bursa. - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:idx/stock-history` - **Cache TTL:** 60s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `code` | string | query | yes | Stock code. Required. | | `from` | string | query | no | Start date (YYYY-MM-DD or YYYYMMDD). When set, `length` is derived from the range. | | `to` | string | query | no | End date (YYYY-MM-DD or YYYYMMDD). Defaults to the latest trading day. | | `length` | number | query | no | Number of trading days when `from` is not set (default 30, max 2000) | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:idx/stock-history?code=BBCA&from=2026-07-01&to=2026-08-08&length=30" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:idx/stock-history?code=BBCA&from=2026-07-01&to=2026-08-08&length=30", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:idx/stock-history?code=BBCA&from=2026-07-01&to=2026-08-08&length=30", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "to": "2026-08-07", "code": "SSIA", "from": "2026-07-01", "name": "Surya Semesta Internusa Tbk.", "unit": "shares", "count": 28, "items": [ { "bid": 1670, "low": 1655, "date": "2026-08-07", "high": 1690, "open": 1655, "close": 1670, "offer": 1675, "value": 14356282500, "change": 15, "volume": 8596500, "previous": 1655, "frequency": 2165, "listedShares": 4705249440, "foreignBuyValue": 1265192000, "netForeignValue": 781560000, "foreignBuyShares": 757600, "foreignSellValue": 483632000, "netForeignShares": 468000, "foreignSellShares": 289600 }, { "bid": 1655, "low": 1655, "date": "2026-08-06", "high": 1710, "open": 1685, "close": 1655, "offer": 1660, "value": 19197284000, "change": -15, "volume": 11447000, "previous": 1670, "frequency": 3305, "listedShares": 4705249440, "foreignBuyValue": 1200702500, "netForeignValue": -3797066500, "foreignBuyShares": 725500, "foreignSellValue": 4997769000, "netForeignShares": -2294300, "foreignSellShares": 3019800 }, { "bid": 1670, "low": 1660, "date": "2026-08-05", "high": 1685, "open": 1675, "close": 1670, "offer": 1675, "value": 21255486500, "change": 15, "volume": 12726200, "previous": 1655, "frequency": 3174, "listedShares": 4705249440, "foreignBuyValue": 2823469000, "netForeignValue": 947057000, "foreignBuyShares": 1690700, "foreignSellValue": 1876412000, "netForeignShares": 567100, "foreignSellShares": 1123600 }, { "bid": 1655, "low": 1635, "date": "2026-08-04", "high": 1690, "open": 1650, "close": 1655, "offer": 1660, "value": 24366083500, "change": 5, "volume": 14631400, "previous": 1650, "frequency": 3001, "listedShares": 4705249440, "foreignBuyValue": 3981102500, "netForeignValue": 2325606000, "foreignBuyShares": 2405500, "foreignSellValue": 1655496500, "netForeignShares": 1405200, "foreignSellShares": 1000300 }, { "bid": 1650, "low": 1650, "date": "2026-08-03", "high": 1695, "open": 1665, "close": 1650, "offer": 1655, "value": 21072123500, "change": 0, "volume": 12636800, "previous": 1650, "frequency": 3471, "listedShares": 4705249440, "foreignBuyValue": 995940000, "netForeignValue": -4350555000, "foreignBuyShares": 603600, "foreignSellValue": 5346495000, "netForeignShares": -2636700, "foreignSellShares": 3240300 }, { "bid": 1650, "low": 1615, "date": "2026-07-31", "high": 1690, "open": 1630, "close": 1650, "offer": 1655, "value": 29946218500, "change": 40, "volume": 18079300, "previous": 1610, "frequency": 3994, "listedShares": 4705249440, "foreignBuyValue": 2134605000, "netForeignValue": 637560000, "foreignBuyShares": 1293700, "foreignSellValue": 1497045000, "netForeignShares": 386400, "foreignSellShares": 907300 }, { "bid": 1610, "low": 1575, "date": "2026-07-30", "high": 1610, "open": 1605, "close": 1610, "offer": 1615, "value": 14342819000, "change": 25, "volume": 9012100, "previous": 1585, "frequency": 2335, "listedShares": 4705249440, "foreignBuyValue": 3586597000, "netForeignValue": 2784173000, "foreignBuyShares": 2227700, "foreignSellValue": 802424000, "netForeignShares": 1729300, "foreignSellShares": 498400 }, { "bid": 1580, "low": 1555, "date": "2026-07-29", "high": 1655, "open": 1605, "close": 1585, "offer": 1585, "value": 21078841000, "change": -20, "volume": 13196700, "previous": 1605, "frequency": 4871, "listedShares": 4705249440, "foreignBuyValue": 3144323000, "netForeignValue": -2024996000, "foreignBuyShares": 1983800, "foreignSellValue": 5169319000, "netForeignShares": -1277600, "foreignSellShares": 3261400 } ], "dataset": "stock-history", "provider": "idx", "valueBasis": "close" } ``` --- ### Company Profile Profil lengkap satu emiten: sektor, papan pencatatan, kegiatan usaha, sekretaris perusahaan, direksi, komisaris, komite audit, pemegang saham, anak perusahaan, riwayat dividen, dan obligasi yang diterbitkan. - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:idx/company-profile` - **Cache TTL:** 21600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `code` | string | query | yes | Stock code. Required. | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:idx/company-profile?code=BBCA" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:idx/company-profile?code=BBCA", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:idx/company-profile?code=BBCA", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "fax": "021-23588300", "code": "BBCA", "logo": "https://www.idx.co.id/Portals/0/StaticData/ListedCompanies/LogoEmiten/BBCA.jpg", "name": "PT Bank Central Asia Tbk.", "bonds": [ { "isin": "IDA0000918A5", "name": "Obligasi Subordinasi Berkelanjutan I Bank Central Asia Tahap I Tahun 2018 Seri A", "rating": "AA", "nominal": 435000000000, "trustee": "PT Bank Rakyat Indonesia (Persero) Tbk.", "listingDate": "2018-07-06", "maturityDate": "2025-07-05" }, { "isin": "IDA0000918B3", "name": "Obligasi Subordinasi Berkelanjutan I Bank Central Asia Tahap I Tahun 2018 Seri B", "rating": "AA", "nominal": 65000000000, "trustee": "PT Bank Rakyat Indonesia (Persero) Tbk.", "listingDate": "2018-07-06", "maturityDate": "2030-07-05" } ], "email": "investor_relations@bca.co.id", "phone": "021-23588000", "sector": "Keuangan", "address": "Menara BCA, Grand Indonesia\r\nJalan MH Thamrin No. 1\r\nJakarta 10310", "dataset": "company-profile", "website": "www.bca.co.id", "industry": "Bank", "provider": "idx", "directors": [ { "name": "Gregory Hendra Lembong", "title": "PRESIDEN DIREKTUR" }, { "name": "Armand Wahyudi Hartono", "title": "WAKIL PRESIDEN DIREKTUR" }, { "name": "John Kosasih", "title": "WAKIL PRESIDEN DIREKTUR" }, { "name": "Tan Ho Hien/Subur atau dipanggil Subur Tan", "title": "DIREKTUR" }, { "name": "Lianawaty Suwono", "title": "DIREKTUR" }, { "name": "Santoso", "title": "DIREKTUR" }, { "name": "Vera Eve Lim", "title": "DIREKTUR" }, { "name": "Haryanto Tiara Budiman", "title": "DIREKTUR" } ], "dividends": [ { "type": "dti", "exDate": "2026-06-17", "cumDate": "2026-06-15", "bookYear": "2026", "cashTotal": 0, "recordDate": "2026-06-18", "bonusShares": 0, "paymentDate": "2026-06-26", "cashPerShare": 20 } ], "subSector": "Bank", "listingDate": "2000-05-31", "subIndustry": "Bank", "listingBoard": "Utama", "mainBusiness": "Jasa Perbankan", "shareholders": [ { "name": "PT Dwimuria Investama Andalan", "shares": 67729950000, "category": "Lebih dari 5%", "sharePct": 54.942 }, { "name": "Saham Treasury", "shares": 433298700, "category": "Saham Treasury", "sharePct": 0.351 }, { "name": "Masyarakat Warkat", "shares": 3091408880, "category": "Masyarakat Warkat", "sharePct": 2.508 }, { "name": "Masyarakat Non Warkat", "shares": 51940016778, "category": "Masyarakat Non Warkat", "sharePct": 42.134 }, { "name": "Antonius Widodo Mulyono", "shares": 681407, "category": "Direksi", "sharePct": 0.001 }, { "name": "Jahja Setiaatmadja", "shares": 35802700, "category": "Komisaris", "sharePct": 0.03 }, { "name": "Armand Wahyudi Hartono", "shares": 4256065, "category": "Direksi", "sharePct": 0.003 }, { "name": "Tan Ho Hien/Subur disebut juga Subur Tan", "shares": 11788002, "category": "Direksi", "sharePct": 0.01 } ], "subsidiaries": [ { "name": "PT Asuransi Jiwa BCA", "unit": "JUTAAN", "business": "Asuransi Jiwa", "currency": "IDR", "location": "Jakarta", "totalAssets": 4676146, "ownershipPct": 90, "commercialYear": "2014", "operatingStatus": "Beroperasi" }, { "name": "PT Asuransi Umum BCA", "unit": "JUTAAN", "business": "Asuransi umum atau\r\nkerugian", "currency": "IDR", "location": "Jakarta", "totalAssets": 3454384, "ownershipPct": 100, "commercialYear": "1989", "operatingStatus": "Beroperasi" }, { "name": "PT Bank BCA Syariah", "unit": "JUTAAN", "business": "perbankan syariah", "currency": "IDR", "location": "Jakarta", "totalAssets": 19207364, "ownershipPct": 100, "commercialYear": "1992", "operatingStatus": "Beroperasi" }, { "name": "PT Bank Digital BCA", "unit": "JUTAAN", "business": "Perbankan", "currency": "IDR", "location": "Jakarta", "totalAssets": 18923844, "ownershipPct": 100, "commercialYear": "1965", "operatingStatus": "Beroperasi" }, { "name": "PT BCA Finance", "unit": "JUTAAN", "business": "Pembiayaan investasi, modal\r\nkerja, pembiayaan\r\nmultiguna, sewa\r\noperasi, keg\r\npembiayaan lain\r\nbrdsrkn\r\npersetujuan instansi\r\nyg berwenang", "currency": "IDR", "location": "Jakarta", "totalAssets": 10371197, "ownershipPct": 100, "commercialYear": "1981", "operatingStatus": "Beroperasi" }, { "name": "PT BCA Sekuritas", "unit": "JUTAAN", "business": "Perantara perdagangan efek dan penjamin emisi efek", "currency": "IDR", "location": "Jakarta", "totalAssets": 2518673, "ownershipPct": 90, "commercialYear": "1992", "operatingStatus": "Beroperasi" }, { "name": "PT Central Capital Ventura", "unit": "JUTAAN", "business": "Modal ventura", "currency": "IDR", "location": "Jakarta", "totalAssets": 468985, "ownershipPct": 100, "commercialYear": "2017", "operatingStatus": "Beroperasi" } ], "commissioners": [ { "name": "Sumantri Slamet", "title": "KOMISARIS" }, { "name": "Jahja Setiaatmadja", "title": "PRESIDEN KOMISARIS" }, { "name": "Tonny Kusnadi", "title": "KOMISARIS" }, { "name": "Raden Pardede", "title": "KOMISARIS" } ], "auditCommittee": [ { "name": "Sumantri Slamet", "title": "KETUA" }, { "name": "Rallyati A. Wibowo", "title": "ANGGOTA" }, { "name": "Prabowo", "title": "ANGGOTA" } ], "corporateSecretary": [ { "name": "Rudy Budiardjo", "email": "corporate_secretary@bca.co.id", "phone": "021-23588000" } ] } ``` --- ### Corporate Calendar Kalender emiten: RUPS, jadwal dividen, dan jatuh tempo obligasi. `range=m` untuk sebulan penuh di sekitar tanggal, `range=d` untuk satu hari. - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:idx/calendar` - **Cache TTL:** 3600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `date` | string | query | no | Anchor date (YYYY-MM-DD or YYYYMMDD). Defaults to today. | | `range` | enum(m|d) | query | no | `m` for the whole month around the date (default), `d` for that single day. | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:idx/calendar?date=2026-08-08&range=m" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:idx/calendar?date=2026-08-08&range=m", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:idx/calendar?date=2026-08-08&range=m", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "date": "2026-08-08", "count": 155, "items": [ { "id": 216022, "code": "PPLN", "date": "2026-08-01", "type": "obligasiJatuhTempo", "description": "Jatuh Tempo Obligasi / Sukuk Korporasi emisi Sukuk Ijarah Berkelanjutan III PLN Tahap IV Tahun 2019 seri Sukuk Ijarah Berkelanjutan III PLN Tahap IV Tahun 2019 Seri B" }, { "id": 216023, "code": "PPLN", "date": "2026-08-01", "type": "obligasiJatuhTempo", "description": "Jatuh Tempo Obligasi / Sukuk Korporasi emisi Obligasi Berkelanjutan III PLN Tahap IV Tahun 2019 seri Obligasi Berkelanjutan III PLN Tahap IV Tahun 2019 Seri B" }, { "id": 215852, "code": "AKRA", "date": "2026-08-03", "description": "tanggal ex Dividen Tunai Interim PT AKR Corporindo Tbk." }, { "id": 214565, "code": "NASI", "date": "2026-08-03", "step": "rencana", "type": "Rencana", "location": "Akan ditentukan kemudian", "description": "Pemberitahuan RUPS Rencana PT Wahana Inti Makmur Tbk" }, { "id": 216052, "code": "INTP", "date": "2026-08-03", "description": "Laporan Pembelian Kembali Saham (Buyback)" }, { "id": 216053, "code": "AYAM", "date": "2026-08-03", "type": "Tahunan", "location": "Cyber 2 Tower Lantai 17, Jl. H.R. Rasuna Said, Blok X-5, Jakarta Selatan, Daerah Khusus Ibukota Jakarta 12950 serta melalui aplikasi Zoom.", "description": "Hasil RUPS Tahunan 31-12-2025 PT Janu Putra Sejahtera Tbk." }, { "id": 216055, "code": "TAMU", "date": "2026-08-03", "type": "Tahunan", "location": "Jl. Balikpapan no.5D, Gambir, Jakarta Pusat", "description": "Hasil RUPS Tahunan 31-12-2025 PT Pelayaran Tamarin Samudra Tbk." }, { "id": 216046, "code": "ERAA", "date": "2026-08-03", "description": "Laporan Pembelian Kembali Saham (Buyback)" } ], "range": "m", "dataset": "calendar", "provider": "idx" } ``` --- ### IPO & Relisting Perusahaan yang baru tercatat dan relisting, terbaru dulu. Filter `year` untuk satu tahun pencatatan. - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:idx/ipo` - **Cache TTL:** 21600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `year` | number | query | no | Filter by listing year. | | `length` | number | query | no | Rows to return (default 20, max 200) | | `start` | number | query | no | Row offset (default 0) | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:idx/ipo?year=2026&length=20&start=0" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:idx/ipo?year=2026&length=20&start=0", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:idx/ipo?year=2026&length=20&start=0", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "items": [ { "code": "RANS", "name": "PT Rans Entertainmen Indonesia Tbk", "listingDate": "2026-07-10", "listingType": "baru", "listingBoard": "Pengembangan", "securityType": "saham", "sharesOffered": 12609250000 }, { "code": "PRDL", "name": "PT Prodia Diagnostic Line Tbk", "listingDate": "2026-07-09", "listingType": "baru", "listingBoard": "Pengembangan", "securityType": "saham", "sharesOffered": 1742900000 }, { "code": "BACH", "name": "PT Bach Multi Global Tbk", "listingDate": "2026-07-08", "listingType": "baru", "listingBoard": "Utama", "securityType": "saham", "sharesOffered": 4084430000 }, { "code": "EMMI", "name": "PT Esa Medika Mandiri Tbk", "listingDate": "2026-07-08", "listingType": "baru", "listingBoard": "Pengembangan", "securityType": "saham", "sharesOffered": 1742857000 }, { "code": "JECX", "name": "PT Nitrasanata Dharma Tbk", "listingDate": "2026-07-07", "listingType": "baru", "listingBoard": "Utama", "securityType": "saham", "sharesOffered": 3253222300 }, { "code": "JELI", "name": "PT Niramas Utama Tbk", "listingDate": "2026-07-07", "listingType": "baru", "listingBoard": "Pengembangan", "securityType": "saham", "sharesOffered": 1266000000 }, { "code": "WBSA", "name": "PT BSA Logistics Indonesia Tbk", "listingDate": "2026-04-10", "listingType": "baru", "listingBoard": "Pengembangan", "securityType": "saham", "sharesOffered": 8675000000 } ], "start": 0, "total": 7, "length": 8, "dataset": "ipo", "provider": "idx" } ``` --- ### Info Perdagangan Harian Top-of-book satu saham — best bid/offer beserta volumenya, plus OHLC hari berjalan. - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:idx/trading-info-daily` - **Cache TTL:** 60s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `code` | string | query | yes | Stock code. Required. | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:idx/trading-info-daily?code=BBCA" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:idx/trading-info-daily?code=BBCA", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:idx/trading-info-daily?code=BBCA", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "bid": 0, "low": 6275, "code": "BBCA", "high": 6350, "open": 6300, "close": 6350, "offer": 6350, "value": 360448775000, "change": -25, "volume": 56953500, "dataset": "trading-info-daily", "remarks": "", "previous": 6375, "provider": "idx", "bidVolume": 0, "boardCode": "RG", "frequency": 11663, "summaryId": 11997304, "updatedAt": "2026-08-14T16:33:53", "offerVolume": 289500, "listedShares": 122042299500, "individualIndex": 18130.4258 } ``` --- ### Saham Dapat Dipinjam Daftar saham SBL beserta volume tersedia dan biaya pinjamnya — proksi short interest IDX. - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:idx/lendable-stock` - **Cache TTL:** 1800s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `code` | string | query | no | Return only this stock code. Omit for every lendable stock. | | `sort` | enum(volume|code) | query | no | Order: `volume` (largest borrowable size first, default) or `code`. | | `view` | enum(list|full) | query | no | `list` (default) returns the lendable stocks in one upstream call. `full` adds the top-borrowed and top-lender boards and the daily .xlsx archive — four more upstream calls, several seconds slower. | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:idx/lendable-stock?code=BBCA&sort=volume&view=list" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:idx/lendable-stock?code=BBCA&sort=volume&view=list", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:idx/lendable-stock?code=BBCA&sort=volume&view=list", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "code": "BBCA", "view": "list", "count": 1, "files": null, "items": [ { "code": "BBCA", "volume": 4293090, "regularBorrowFee": "18%", "frontEndBorrowFee": "5%-20%" } ], "total": 294, "dataset": "lendable-stock", "provider": "idx", "topActive": null, "topLenderByValue": null, "topLenderByFrequency": null } ``` --- ### Unusual Market Activity Pengumuman UMA berhalaman beserta tautan PDF-nya. - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:idx/uma` - **Cache TTL:** 1800s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `page` | number | query | no | Page number (default 1). | | `length` | number | query | no | Rows per page (default 20, max 100). | | `keyword` | string | query | no | Free-text filter over the announcement title. | | `dateFrom` | string | query | no | Earliest UMA date (YYYYMMDD or YYYY-MM-DD). | | `dateTo` | string | query | no | Latest UMA date (YYYYMMDD or YYYY-MM-DD). | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:idx/uma?page=1&length=20&keyword=FUTR&dateFrom=20260101&dateTo=20260812" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:idx/uma?page=1&length=20&keyword=FUTR&dateFrom=20260101&dateTo=20260812", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:idx/uma?page=1&length=20&keyword=FUTR&dateFrom=20260101&dateTo=20260812", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "page": 1, "count": 2, "items": [ { "id": "20260811081324", "code": "FUTR", "date": "2026-08-11", "name": "Futura Energi Global Tbk.", "title": "UMA atas Saham PT Futura Energi Global Tbk. (FUTR)", "status": "A", "attachment": "https://www.idx.co.id/Portals/0/StaticData/NewsAndAnnouncement/UMA/2026/AGU/20260811-UMA_FUTR.pdf", "announcementNo": "Peng-UMA-00237/BEI.WAS/08-2026" }, { "id": "20260313074313", "code": "FUTR", "date": "2026-03-12", "name": "Futura Energi Global Tbk.", "title": "UMA atas Saham PT Futura Energi Global Tbk. (FUTR)", "status": "A", "attachment": "https://www.idx.co.id/Portals/0/StaticData/NewsAndAnnouncement/UMA/2026/MAR/20260312-WAS_UMA_FUTR.pdf", "announcementNo": "Peng-UMA-00101/BEI.WAS/03-2026" } ], "total": 2, "dateTo": "20260812", "dataset": "uma", "hasMore": false, "keyword": "FUTR", "dateFrom": "20260101", "nextPage": null, "provider": "idx" } ``` --- ### Kontrak Berjangka Papan kontrak berjangka IDX — open interest, harga settlement, dan best bid/offer. - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:idx/derivatives` - **Cache TTL:** 300s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `code` | string | query | no | Return only this contract code. Omit for the whole board. | | `underlying` | string | query | no | Return every contract on this underlying stock code. | | `sort` | enum(volume|openInterest|code) | query | no | Order: `volume` (default), `openInterest`, or `code`. | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:idx/derivatives?code=BBCAN6&underlying=BBCA&sort=volume" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:idx/derivatives?code=BBCAN6&underlying=BBCA&sort=volume", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:idx/derivatives?code=BBCAN6&underlying=BBCA&sort=volume", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "code": "BBCAN6", "count": 0, "items": [], "dataset": "derivatives", "provider": "idx", "underlying": "BBCA" } ``` --- ### Konstituen Indeks Papan indeks langsung — 45 indeks IDX dengan nilai buka, tinggi, rendah, dan terakhir. - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:idx/index-constituent` - **Cache TTL:** 300s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `code` | string | query | no | Return only this index code. Omit for every index. | | `group` | enum(all|main|sector) | query | no | `all` (default) returns both boards. `main` is the 34 headline indices (COMPOSITE, LQ45, IDX30…). `sector` is the 11 IDX-IC sector indices (IDXENERGY, IDXFINANCE…). | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:idx/index-constituent?code=LQ45&group=all" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:idx/index-constituent?code=LQ45&group=all", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:idx/index-constituent?code=LQ45&group=all", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "code": "LQ45", "count": 1, "group": "all", "items": [ { "low": 624.297, "code": "LQ45", "date": "2026-08-14", "high": 633.127, "last": 632.283, "group": "main", "change": 5.12, "previous": 627.165, "changePercent": 0.82 } ], "dataset": "index-constituent", "provider": "idx" } ``` --- ### Riwayat Suspensi Riwayat suspensi saham berhalaman, lengkap dengan tautan PDF pengumumannya. - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:idx/suspension` - **Cache TTL:** 1800s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `page` | number | query | no | Page number (default 1). | | `length` | number | query | no | Rows per page (default 20, max 100). | | `keyword` | string | query | no | Free-text filter over the announcement title. | | `type` | string | query | no | Announcement type code as IDX publishes it, e.g. SPT for a suspension notice. | | `dateFrom` | string | query | no | Earliest announcement date (YYYYMMDD or YYYY-MM-DD). Defaults to three years back. | | `dateTo` | string | query | no | Latest announcement date (YYYYMMDD or YYYY-MM-DD). | | `locale` | enum(id|en) | query | no | Announcement language (default id). | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:idx/suspension?page=1&length=20&keyword=TRUK&type=SPT&dateFrom=20200101&dateTo=20260812&locale=id" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:idx/suspension?page=1&length=20&keyword=TRUK&type=SPT&dateFrom=20200101&dateTo=20260812&locale=id", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:idx/suspension?page=1&length=20&keyword=TRUK&type=SPT&dateFrom=20200101&dateTo=20260812&locale=id", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "page": 1, "type": "SPT", "count": 9, "items": [ { "code": "TRUK", "date": "2026-08-11", "title": "Penghentian Sementara Perdagangan (Suspend) Saham PT Guna Timur Raya Tbk. (TRUK)", "infoType": "SPT", "attachment": "https://www.idx.co.id/Portals/0/StaticData/NewsAndAnnouncement/ANNOUNCEMENTSTOCK/Exchange/2026/AGU/20260811-WAS_Suspensi_TRUK.pdf" }, { "code": "BIPI", "date": "2026-01-09", "title": "Penghentian Sementara Perdagangan Saham PT Astrindo Nusantara Infrastruktur Tbk. (BIPI)", "infoType": "SPT", "attachment": "https://www.idx.co.id/Portals/0/StaticData/NewsAndAnnouncement/ANNOUNCEMENTSTOCK/Exchange/2026/JAN/20260109-WAS_Suspensi_BIPI.pdf" }, { "code": "BIPI", "date": "2026-01-07", "title": "Penghentian Sementara Perdagangan Saham PT Astrindo Nusantara Infrastruktur Tbk. (BIPI)", "infoType": "SPT", "attachment": "https://www.idx.co.id/Portals/0/StaticData/NewsAndAnnouncement/ANNOUNCEMENTSTOCK/Exchange/2026/JAN/20260107-WAS_Suspensi_BIPI.pdf" }, { "code": "RAJA", "date": "2025-10-10", "title": "Penghentian Sementara Perdagangan Saham dan Waran Terstruktur (WT) PT Rukun Raharja Tbk.(RAJA, RAJADRCG6A, RAJAHDCK6A, RAJAZPCK6A)", "infoType": "SPT", "attachment": "https://www.idx.co.id/Portals/0/StaticData/NewsAndAnnouncement/ANNOUNCEMENTSTOCK/Exchange/2025/OKT/20251010-WAS_Suspensi_RAJA.pdf" }, { "code": "PTRO", "date": "2025-10-03", "title": "Penghentian Sementara Perdagangan Saham dan Waran Terstruktur (WT) PT Petrosea Tbk. (PTRO, PTRODRCG6A, PTROYUCK6A, PTROZPCK6A, PTROHDCK6A)", "infoType": "SPT", "attachment": "https://www.idx.co.id/Portals/0/StaticData/NewsAndAnnouncement/ANNOUNCEMENTSTOCK/Exchange/2025/OKT/20251003-WAS_Suspensi_PTRO-20251006164428.pdf" }, { "code": "TRUK", "date": "2025-09-18", "title": "Penghentian Sementara Perdagangan Saham PT Guna Timur Raya Tbk. (TRUK)", "infoType": "SPT", "attachment": "https://www.idx.co.id/Portals/0/StaticData/NewsAndAnnouncement/ANNOUNCEMENTSTOCK/Exchange/2025/SEP/20250918-WAS_Suspensi_TRUK .pdf" } ], "total": 9, "dateTo": "20260812", "locale": "id", "dataset": "suspension", "hasMore": false, "keyword": "TRUK", "dateFrom": "20200101", "nextPage": null, "provider": "idx" } ``` --- ### Bonds & Sukuk Seluruh efek utang yang tercatat di ETP IDX — kupon, jatuh tempo, rating, ISIN, nominal, dan jumlah beredar. Satu daftar bercampur obligasi negara dan korporasi; `type` yang membedakan. - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:idx/bonds` - **Cache TTL:** 21600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `search` | string | query | no | Saring berdasarkan ticker atau nama (dicocokkan di sisi kita). | | `type` | string | query | no | Saring jenis instrumen, mis. BOND. | | `length` | number | query | no | Jumlah baris (default 50, maks 500) | | `start` | number | query | no | Offset baris (default 0) | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:idx/bonds?search=FR00&type=BOND&length=50&start=0" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:idx/bonds?search=FR00&type=BOND&length=50&start=0", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:idx/bonds?search=FR00&type=BOND&length=50&start=0", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "type": "BOND", "items": [ { "isin": "IDG000006800", "name": "Obligasi Negara Th. 2006 Seri FR0037", "type": "BOND", "coupon": 12, "ticker": "FR0037", "nominal": 2450000000000, "currency": "IDR", "benchmark": false, "maturityDate": "2026-09-15", "couponFrequency": "Semi-Annual", "firstTradingDate": "2006-05-19", "amountOutstanding": 2417000000000 }, { "isin": "IDG000007402", "name": "Obligasi Negara Th. 2007 Seri FR0042", "type": "BOND", "coupon": 10.25, "ticker": "FR0042", "nominal": 14426000000000, "currency": "IDR", "benchmark": false, "maturityDate": "2027-07-15", "couponFrequency": "Semi-Annual", "firstTradingDate": "2007-01-25", "amountOutstanding": 14252100000000 }, { "isin": "IDG000007808", "name": "Obligasi Negara Th. 2007 Seri FR0045", "type": "BOND", "coupon": 9.75, "ticker": "FR0045", "nominal": 6400000000000, "currency": "IDR", "benchmark": false, "maturityDate": "2037-05-15", "couponFrequency": "Semi-Annual", "firstTradingDate": "2007-05-25", "amountOutstanding": 9624304000000 }, { "isin": "IDG000008004", "name": "Obligasi Negara Th. 2007 Seri FR0047", "type": "BOND", "coupon": 10, "ticker": "FR0047", "nominal": 7850000000000, "currency": "IDR", "benchmark": false, "maturityDate": "2028-02-15", "couponFrequency": "Semi-Annual", "firstTradingDate": "2007-08-31", "amountOutstanding": 19896000000000 }, { "isin": "IDG000008301", "name": "Obligasi Negara RI Seri FR0050", "type": "BOND", "coupon": 10.5, "ticker": "FR0050", "nominal": 1200000000000, "currency": "IDR", "benchmark": false, "maturityDate": "2038-07-15", "couponFrequency": "Semi-Annual", "firstTradingDate": "2008-01-25", "amountOutstanding": 15661000000000 }, { "isin": "IDG000009002", "name": "Obligasi Negara RI Seri FR0052", "type": "BOND", "coupon": 10.5, "ticker": "FR0052", "nominal": 1000000000000, "currency": "IDR", "benchmark": false, "maturityDate": "2030-08-15", "couponFrequency": "Semi-Annual", "firstTradingDate": "2009-08-21", "amountOutstanding": 23500000000000 } ], "start": 0, "total": 43, "length": 50, "search": "FR00", "dataset": "bonds", "provider": "idx" } ``` --- ### Bond Tickers Kode seluruh efek utang di ETP, tanpa detail — untuk autocomplete. - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:idx/bond-tickers` - **Cache TTL:** 21600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `search` | string | query | no | Saring kode yang mengandung teks ini. | | `length` | number | query | no | Jumlah kode (default 200, maks 2000) | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:idx/bond-tickers?search=FR0&length=100" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:idx/bond-tickers?search=FR0&length=100", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:idx/bond-tickers?search=FR0&length=100", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "count": 54, "items": [ "FR0037", "FR0042", "FR0045", "FR0047", "FR0050", "FR0052" ], "total": 54, "search": "FR0", "dataset": "bond-tickers", "provider": "idx" } ``` --- ### Bond Daily Summary Ringkasan harian per instrumen utang: bid/ask indikatif dan order, harga tertinggi/terendah/terakhir, frekuensi, volume, dan nilai. - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:idx/bond-daily` - **Cache TTL:** 1800s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `length` | number | query | no | Jumlah baris (default 50, maks 500) | | `start` | number | query | no | Offset baris (default 0) | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:idx/bond-daily?length=50&start=0" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:idx/bond-daily?length=50&start=0", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:idx/bond-daily?length=50&start=0", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "date": "2026-08-14", "items": [ { "low": 91.45, "asOf": "2026-08-14T19:41:00", "high": 91.45, "last": 91.45, "value": 46700900000, "volume": 50000000000, "frequency": 1, "instrument": "PBSG002", "orderBestAsk": 0, "orderBestBid": 0, "orderFrequency": 0, "indicativeBestAsk": 0, "indicativeBestBid": 0 }, { "low": 99.6, "asOf": "2026-08-14T19:41:00", "high": 99.6, "last": 99.6, "value": 39870960000, "volume": 40000000000, "frequency": 4, "instrument": "FR0107", "orderBestAsk": 99.6, "orderBestBid": 99.3, "orderFrequency": 12, "indicativeBestAsk": 99.6, "indicativeBestBid": 99.35 }, { "low": 99.5, "asOf": "2026-08-14T19:41:00", "high": 99.5, "last": 99.5, "value": 9957740000, "volume": 10000000000, "frequency": 1, "instrument": "FR0106", "orderBestAsk": 99.75, "orderBestBid": 99.5, "orderFrequency": 11, "indicativeBestAsk": 99.75, "indicativeBestBid": 99.5 }, { "low": 95.85, "asOf": "2026-08-14T19:41:00", "high": 96.1, "last": 96.1, "value": 147316550000, "volume": 150000000000, "frequency": 15, "instrument": "FR0108", "orderBestAsk": 95.85, "orderBestBid": 96.1, "orderFrequency": 20, "indicativeBestAsk": 95.85, "indicativeBestBid": 96.1 }, { "low": 95.75, "asOf": "2026-08-14T19:41:00", "high": 96, "last": 95.9, "value": 590498500000, "volume": 600000000000, "frequency": 13, "instrument": "FR0109", "orderBestAsk": 95.75, "orderBestBid": 95.9, "orderFrequency": 19, "indicativeBestAsk": 95.75, "indicativeBestBid": 95.9 }, { "low": 95.8, "asOf": "2026-08-14T19:41:00", "high": 96.5, "last": 96.5, "value": 188453299368, "volume": 194244000000, "frequency": 9, "instrument": "PBS038", "orderBestAsk": 96.5, "orderBestBid": 95.8, "orderFrequency": 6, "indicativeBestAsk": 96.5, "indicativeBestBid": 95.85 } ], "start": 0, "total": 9, "length": 50, "dataset": "bond-daily", "provider": "idx" } ``` --- ### Bond Trades Transaksi obligasi per cetakan — harga, yield, volume, nilai, dan tanggal settlement. - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:idx/bond-trades` - **Cache TTL:** 900s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `instrument` | string | query | no | Saring satu instrumen. | | `length` | number | query | no | Jumlah baris (default 50, maks 500) | | `start` | number | query | no | Offset baris (default 0) | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:idx/bond-trades?instrument=FR0109&length=50&start=0" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:idx/bond-trades?instrument=FR0109&length=50&start=0", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:idx/bond-trades?instrument=FR0109&length=50&start=0", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "items": [ { "price": 95.75, "value": 9575000000, "yield": 6.9747, "status": "DONE", "volume": 10000000000, "tradedAt": "2026-08-14T09:15:02", "instrument": "FR0109", "settlementDate": "2026-08-19" }, { "price": 95.8, "value": 9580000000, "yield": 6.9614, "status": "DONE", "volume": 10000000000, "tradedAt": "2026-08-14T09:21:49", "instrument": "FR0109", "settlementDate": "2026-08-19" }, { "price": 95.8, "value": 9580000000, "yield": 6.9614, "status": "DONE", "volume": 10000000000, "tradedAt": "2026-08-14T09:21:49", "instrument": "FR0109", "settlementDate": "2026-08-19" }, { "price": 95.85, "value": 9585000000, "yield": 6.9481, "status": "DONE", "volume": 10000000000, "tradedAt": "2026-08-14T09:29:38", "instrument": "FR0109", "settlementDate": "2026-08-19" }, { "price": 95.85, "value": 9585000000, "yield": 6.9481, "status": "DONE", "volume": 10000000000, "tradedAt": "2026-08-14T09:29:38", "instrument": "FR0109", "settlementDate": "2026-08-19" }, { "price": 95.85, "value": 9585000000, "yield": 6.9481, "status": "DONE", "volume": 10000000000, "tradedAt": "2026-08-14T09:29:38", "instrument": "FR0109", "settlementDate": "2026-08-19" } ], "start": 0, "total": 6, "length": 50, "dataset": "bond-trades", "provider": "idx", "instrument": "FR0109" } ``` --- ### Bond Repo Ringkasan repo obligasi harian: tenor, repo rate tertinggi/terendah/terakhir, frekuensi dan volumenya. - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:idx/bond-repo` - **Cache TTL:** 1800s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `length` | number | query | no | Jumlah baris (default 50, maks 500) | | `start` | number | query | no | Offset baris (default 0) | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:idx/bond-repo?length=50&start=0" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:idx/bond-repo?length=50&start=0", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:idx/bond-repo?length=50&start=0", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "date": "2026-08-14", "items": [ { "asOf": "2026-08-14T09:26:35.577", "tenor": "2W", "value": 0, "volume": 0, "termDays": 14, "frequency": 0, "instrument": "FR0059", "orderBestBid": 0, "latestRepoRate": 0, "lowestRepoRate": 0, "orderBestOffer": 6.65, "highestRepoRate": 0, "indicativeBestBid": 0, "indicativeBestOffer": 0 }, { "asOf": "2026-08-14T10:29:20.25", "tenor": "1W", "value": 0, "volume": 0, "termDays": 7, "frequency": 0, "instrument": "FR0064", "orderBestBid": 6.6, "latestRepoRate": 0, "lowestRepoRate": 0, "orderBestOffer": 0, "highestRepoRate": 0, "indicativeBestBid": 0, "indicativeBestOffer": 0 }, { "asOf": "2026-08-14T15:01:13.08", "tenor": "O/N", "value": 1002560810000, "volume": 1000000000000, "termDays": 4, "frequency": 2, "instrument": "FR0064", "orderBestBid": 0, "latestRepoRate": 6.2, "lowestRepoRate": 6.2, "orderBestOffer": 0, "highestRepoRate": 6.2, "indicativeBestBid": 0, "indicativeBestOffer": 0 }, { "asOf": "2026-08-14T09:05:07.263", "tenor": "1W", "value": 1052558350000, "volume": 1000000000000, "termDays": 7, "frequency": 4, "instrument": "FR0078", "orderBestBid": 0, "latestRepoRate": 6.55, "lowestRepoRate": 6.55, "orderBestOffer": 0, "highestRepoRate": 6.55, "indicativeBestBid": 0, "indicativeBestOffer": 0 }, { "asOf": "2026-08-14T14:04:35.387", "tenor": "2D", "value": 1028307000000, "volume": 1000000000000, "termDays": 5, "frequency": 1, "instrument": "FR0096", "orderBestBid": 0, "latestRepoRate": 6.45, "lowestRepoRate": 6.45, "orderBestOffer": 0, "highestRepoRate": 6.45, "indicativeBestBid": 0, "indicativeBestOffer": 0 }, { "asOf": "2026-08-14T10:30:51.7", "tenor": "O/N", "value": 999147700000, "volume": 1000000000000, "termDays": 4, "frequency": 2, "instrument": "FR0100", "orderBestBid": 6.05, "latestRepoRate": 6.05, "lowestRepoRate": 6.05, "orderBestOffer": 0, "highestRepoRate": 6.05, "indicativeBestBid": 0, "indicativeBestOffer": 0 } ], "start": 0, "total": 18, "length": 50, "dataset": "bond-repo", "provider": "idx" } ``` --- ### Bond Index (INDOBeX) Indeks obligasi Indonesia. Tiap kelompok membawa beberapa sub-indeks sekaligus — ICBI, INDOBeX-CP/GP/EY/GY — beserta perubahan nilai dan persennya. - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:idx/bond-index` - **Cache TTL:** 1800s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `type` | enum(composite|government|corporate) | query | no | Kelompok indeks. Default composite. | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:idx/bond-index?type=composite" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:idx/bond-index?type=composite", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:idx/bond-index?type=composite", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "type": "composite", "count": 5, "items": [ { "code": "ICBI (Indonesia Composite Bond Index)", "date": "2025-01-20", "value": 392.7881, "change": 0.0443, "changePercent": 0.0113 }, { "code": "INDOBeX-CP", "date": "2025-01-20", "value": 114.8109, "change": -0.0093, "changePercent": -0.0081 }, { "code": "INDOBeX-GP", "date": "2025-01-20", "value": 116.6675, "change": 0.0124, "changePercent": 0.0106 }, { "code": "INDOBeX-EY", "date": "2025-01-20", "value": 7.062, "change": -0.0031, "changePercent": -0.0439 }, { "code": "INDOBeX-GY", "date": "2025-01-20", "value": 7.1079, "change": 0.0014, "changePercent": 0.0195 } ], "dataset": "bond-index", "provider": "idx" } ``` --- ### Government Bond Issuers Seri surat utang negara yang tercatat di IDX. - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:idx/bond-issuers` - **Cache TTL:** 86400s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `search` | string | query | no | Saring kode atau nama. | | `length` | number | query | no | Jumlah baris (default 50, maks 500) | | `start` | number | query | no | Offset baris (default 0) | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:idx/bond-issuers?search=FR0&length=50&start=0" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:idx/bond-issuers?search=FR0&length=50&start=0", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:idx/bond-issuers?search=FR0&length=50&start=0", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "items": [ { "code": "FR0037", "name": "Obligasi Negara Th. 2006 Seri FR0037" }, { "code": "FR0040", "name": "Obligasi Negara Th. 2006 Seri FR0040" }, { "code": "FR0042", "name": "Obligasi Negara Th. 2007 Seri FR0042" }, { "code": "FR0044", "name": "Obligasi Negara Th. 2007 Seri FR0044" }, { "code": "FR0045", "name": "Obligasi Negara Th. 2007 Seri FR0045" }, { "code": "FR0047", "name": "Obligasi Negara Th. 2007 Seri FR0047" } ], "start": 0, "total": 177, "length": 50, "search": "FR0", "dataset": "bond-issuers", "provider": "idx" } ``` --- ### Market Participants Partisipan pasar IDX — bank kustodian dan lembaga yang bukan Anggota Bursa, dengan penanda dealer utama SBN. Berbeda dari `idx/brokers` yang berisi 90 Anggota Bursa. - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:idx/participants` - **Cache TTL:** 86400s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `search` | string | query | no | Saring kode atau nama. | | `length` | number | query | no | Jumlah baris (default 50, maks 500) | | `start` | number | query | no | Offset baris (default 0) | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:idx/participants?search=BCA&length=50&start=0" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:idx/participants?search=BCA&length=50&start=0", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:idx/participants?search=BCA&length=50&start=0", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "items": [], "start": 0, "total": 141, "length": 50, "search": "BCA", "dataset": "participants", "provider": "idx" } ``` --- ### Primary Dealers Dealer utama Surat Berharga Negara yang terdaftar di IDX. - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:idx/primary-dealers` - **Cache TTL:** 86400s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `length` | number | query | no | Jumlah baris (default 50, maks 500) | | `start` | number | query | no | Offset baris (default 0) | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:idx/primary-dealers?length=50&start=0" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:idx/primary-dealers?length=50&start=0", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:idx/primary-dealers?length=50&start=0", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "items": [ { "code": "ANZP", "name": "Bank ANZ Indonesia" }, { "code": "BBCA", "name": "Bank Central Asia, Tbk." }, { "code": "BBII", "name": "Bank Maybank Indonesia Tbk" }, { "code": "BBNI", "name": "Bank Negara Indonesia (Persero) Tbk" }, { "code": "BBRI", "name": "Bank Rakyat Indonesia (Persero) Tbk" }, { "code": "BBTN", "name": "Bank Tabungan Negara (Persero), Tbk." } ], "start": 0, "total": 21, "length": 50, "dataset": "primary-dealers", "provider": "idx" } ``` --- ### Issued Share History Riwayat perubahan jumlah saham tercatat — waran, right issue, konversi — beserta jumlah saham sebelum dan sesudah tindakan. - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:idx/issued-history` - **Cache TTL:** 21600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `code` | string | query | no | Filter to one issuer code. Applied upstream, so the result spans that issuer's whole history. | | `action` | string | query | no | Filter by corporate-action type, applied to the covered rows. | | `page` | number | query | no | Page number (default 1). | | `limit` | number | query | no | Rows per page (default 50, max 500). | | `start` | number | query | no | Deprecated row offset. Use `page`. Honoured for existing callers. | | `length` | number | query | no | Deprecated page size. Use `limit`. Honoured for existing callers. | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:idx/issued-history?code=BBCA&action=Waran&page=1&limit=50&start=0&length=50" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:idx/issued-history?code=BBCA&action=Waran&page=1&limit=50&start=0&length=50", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:idx/issued-history?code=BBCA&action=Waran&page=1&limit=50&start=0&length=50", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "code": "INDF", "page": 1, "count": 32, "items": [ { "code": "INDF", "action": "Stock Split", "shares": 7324800000, "listingDate": "2007-09-29", "sharesAfter": 9444189000 }, { "code": "INDF", "action": "ESOP", "shares": 880500, "listingDate": "2004-05-24", "sharesAfter": 9444189000 }, { "code": "INDF", "action": "ESOP", "shares": 1000, "listingDate": "2004-05-10", "sharesAfter": 9443308500 }, { "code": "INDF", "action": "ESOP", "shares": 1000, "listingDate": "2004-04-28", "sharesAfter": 9443307500 }, { "code": "INDF", "action": "ESOP", "shares": 2000, "listingDate": "2004-04-22", "sharesAfter": 9443306500 }, { "code": "INDF", "action": "ESOP", "shares": 9000, "listingDate": "2004-02-09", "sharesAfter": 9443304500 }, { "code": "INDF", "action": "ESOP", "shares": 26000, "listingDate": "2004-02-06", "sharesAfter": 9443295500 }, { "code": "INDF", "action": "ESOP", "shares": 57101000, "listingDate": "2003-07-12", "sharesAfter": 9443269500 } ], "limit": 50, "total": 32, "source": "idx-listing-activity", "dataset": "issued-history", "hasMore": false, "nextPage": null, "provider": "idx", "coverageEnd": "2007-09-29", "coverageKey": "listingDate", "coverageStart": "1994-07-14", "upstreamTotal": 32, "completeForQuery": true } ``` --- ### Reference Lists Daftar acuan IDX: sektor, papan pencatatan, atau jam pasar. - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:idx/reference` - **Cache TTL:** 86400s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `set` | enum(sectors|boards|market-time) | query | no | Daftar acuan yang diminta. Default sectors. | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:idx/reference?set=sectors" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:idx/reference?set=sectors", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:idx/reference?set=sectors", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "set": "sectors", "count": 11, "items": [ "Healthcare", "Basic Materials", "Financials", "Transportation & Logistic", "Technology", "Consumer Non-Cyclicals" ], "dataset": "reference", "provider": "idx" } ``` --- ### Structured Warrants Waran terstruktur — penyedia likuiditas per seri, plus jenis waran yang tersedia. - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:idx/warrant-providers` - **Cache TTL:** 21600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `search` | string | query | no | Saring kode waran atau penerbitnya. | | `length` | number | query | no | Jumlah baris (default 50, maks 500) | | `start` | number | query | no | Offset baris (default 0) | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:idx/warrant-providers?search=BBCA&length=50&start=0" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:idx/warrant-providers?search=BBCA&length=50&start=0", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:idx/warrant-providers?search=BBCA&length=50&start=0", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "items": [ { "type": "call", "intRow": 2, "kodeAB": "DR", "kodeSW": "BBCADRCX6A", "source": "SPOP", "lastTradingDate": "2026-11-23T00:00:00", "firstTradingDate": "2024-11-26T00:00:00" }, { "type": "call", "intRow": 9, "kodeAB": "HD", "kodeSW": "BBCAHDCQ7A", "source": "SPOP", "lastTradingDate": "2027-08-09T00:00:00", "firstTradingDate": "2025-08-13T00:00:00" }, { "type": "call", "intRow": 195, "kodeAB": "ZP", "kodeSW": "BBCAZPCZ6A", "source": "SPOP", "lastTradingDate": "2026-12-23T00:00:00", "firstTradingDate": "2026-04-02T00:00:00" }, { "type": "call", "intRow": 258, "kodeAB": "DR", "kodeSW": "BBCADRCH7A", "source": "SPOP", "lastTradingDate": "2027-03-23T00:00:00", "firstTradingDate": "2026-05-21T00:00:00" }, { "type": "call", "intRow": 285, "kodeAB": "HD", "kodeSW": "BBCAHDCG7A", "source": "SPOP", "lastTradingDate": "2027-02-04T00:00:00", "firstTradingDate": "2026-06-05T00:00:00" }, { "type": "call", "intRow": 315, "kodeAB": "BQ", "kodeSW": "BBCABQCU6A", "source": "SPOP", "lastTradingDate": "2026-09-25T00:00:00", "firstTradingDate": "2026-06-08T00:00:00" } ], "start": 0, "total": 575, "types": [ "call", "put" ], "length": 50, "search": "BBCA", "dataset": "warrant-providers", "provider": "idx" } ``` --- ### Press Releases Siaran pers Bursa Efek Indonesia, berhalaman. - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:idx/press-release` - **Cache TTL:** 3600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `page` | number | query | no | Nomor halaman, mulai 1. Default 1. | | `length` | number | query | no | Item per halaman (default 20, maks 100) | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:idx/press-release?page=1&length=20" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:idx/press-release?page=1&length=20", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:idx/press-release?page=1&length=20", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "page": 1, "count": 20, "items": [ { "id": 2680, "title": "HUT ke-49 Pasar Modal Indonesia, RUPSLB, dan Dinamika Perdagangan BEI Pekan Ini", "locale": "id-id", "summary": "HUT ke-49 Pasar Modal Indonesia, RUPSLB, dan Dinamika Perdagangan BEI Pekan Ini", "imageUrl": "https://www.idx.co.id/media/1557/logo-bursa-efek-indonesia-final.jpg", "publishedAt": "2026-08-14T21:42:34" }, { "id": 2678, "title": "RUPSLB BEI 2026 Setujui Pengangkatan Komisaris, Persiapan Demutualisasi Terus Berjalan", "locale": "id-id", "summary": "RUPSLB BEI 2026 Setujui Pengangkatan Komisaris, Persiapan Demutualisasi Terus Berjalan \n\n­­­", "imageUrl": "https://www.idx.co.id/media/1557/logo-bursa-efek-indonesia-final.jpg", "publishedAt": "2026-08-12T11:47:00" }, { "id": 2676, "title": "BEI Luncurkan ETF Emas, Perluas Akses Investasi Emas melalui Pasar Modal Indonesia", "locale": "id-id", "summary": "BEI Luncurkan ETF Emas, Perluas Akses Investasi Emas melalui Pasar Modal Indonesia", "imageUrl": "https://www.idx.co.id/media/1557/logo-bursa-efek-indonesia-final.jpg", "publishedAt": "2026-08-10T20:25:15.353" }, { "id": 2674, "title": "49 Tahun Pasar Modal Indonesia: Transformasi Berkelanjutan untuk Pasar Modal Tepercaya dan Tangguh", "locale": "id-id", "summary": "49 Tahun Pasar Modal Indonesia: Transformasi Berkelanjutan untuk Pasar Modal Tepercaya dan Tangguh", "imageUrl": "https://www.idx.co.id/media/1557/logo-bursa-efek-indonesia-final.jpg", "publishedAt": "2026-08-10T17:58:24.7" }, { "id": 2672, "title": "Investor Pasar Modal Lampaui 30 Juta SID, BEI Terus Dorong Reformasi dan Pendalaman Pasar", "locale": "id-id", "summary": "Jakarta – PT Bursa Efek Indonesia (BEI) kembali mencatatkan tonggak penting dalam pengembangan pasar modal Indonesia. Pada penutupan perdagangan Jumat (7/8/2026)", "imageUrl": "https://www.idx.co.id/media/1557/logo-bursa-efek-indonesia-final.jpg", "publishedAt": "2026-08-07T23:09:51" }, { "id": 2670, "title": "BEI Sempurnakan Notasi Khusus dan Tampilan Kolom Remarks dalam JATS Sebagai Bagian dari Transformasi Pasar Modal", "locale": "id-id", "summary": "BEI Sempurnakan Notasi Khusus dan Tampilan Kolom Remarks dalam JATS Sebagai Bagian dari Transformasi Pasar Modal", "imageUrl": "https://www.idx.co.id/media/1557/logo-bursa-efek-indonesia-final.jpg", "publishedAt": "2026-08-03T15:55:24.38" } ], "total": 1274, "length": 20, "dataset": "press-release", "hasMore": true, "provider": "idx" } ``` --- ### Futures Contracts Kode kontrak berjangka yang terdaftar di IDX. Papan harganya ada di `idx/derivatives`. - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:idx/futures-contracts` - **Cache TTL:** 86400s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `search` | string | query | no | Saring kode yang mengandung teks ini. | | `length` | number | query | no | Jumlah kode (default 200, maks 1000) | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:idx/futures-contracts?search=BBCA&length=100" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:idx/futures-contracts?search=BBCA&length=100", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:idx/futures-contracts?search=BBCA&length=100", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "count": 32, "items": [ "BBCAF5", "BBCAF6", "BBCAG5", "BBCAG6", "BBCAH4", "BBCAH5" ], "total": 32, "search": "BBCA", "dataset": "futures-contracts", "provider": "idx" } ``` --- ### Additional Listings Additional listed shares for one calendar month — every event that changed a company's - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:idx/additional-listings` - **Cache TTL:** 21600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `year` | number | query | no | Report year. Defaults to the current month in Jakarta (UTC+7). | | `month` | number | query | no | Report month, 1-12. Defaults to the current month in Jakarta (UTC+7). | | `page` | number | query | no | Page number (default 1). | | `length` | number | query | no | Rows per page (default 20, max 200). | | `search` | string | query | no | Filter on code or company name, applied upstream. | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:idx/additional-listings?year=2026&month=7&page=1&length=20&search=BBCA" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:idx/additional-listings?year=2026&month=7&page=1&length=20&search=BBCA", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:idx/additional-listings?year=2026&month=7&page=1&length=20&search=BBCA", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "page": 1, "year": 2025, "count": 20, "items": [ { "code": "ACRO", "name": "Samcro Hyosung Adilestari Tbk.", "shares": 7235, "lastDate": "2025-06-25", "startDate": "2025-06-03", "actionType": "Warrant" }, { "code": "AMMS", "name": "Agung Menjangan Mas Tbk.", "shares": 156196, "lastDate": "2025-06-26", "startDate": "2025-06-03", "actionType": "Warrant" }, { "code": "BATR", "name": "Benteng Api Technic Tbk.", "shares": 3067, "lastDate": "2025-06-12", "startDate": "2025-06-03", "actionType": "Warrant" }, { "code": "BVIC", "name": "Bank Victoria International Tbk.", "shares": 59938, "lastDate": "2025-06-26", "startDate": "2025-06-03", "actionType": "Warrant" }, { "code": "CYBR", "name": "ITSEC Asia Tbk.", "shares": 6879123, "lastDate": "2025-06-25", "startDate": "2025-06-03", "actionType": "Warrant" }, { "code": "GRPM", "name": "Graha Prima Mentari Tbk.", "shares": 721, "lastDate": "2025-06-18", "startDate": "2025-06-03", "actionType": "Warrant" }, { "code": "HAJJ", "name": "Arsy Buana Travelindo Tbk.", "shares": 110810, "lastDate": "2025-06-25", "startDate": "2025-06-03", "actionType": "Warrant" }, { "code": "HALO", "name": "Haloni Jane Tbk.", "shares": 116801, "lastDate": "2025-06-22", "startDate": "2025-06-12", "actionType": "Warrant" } ], "month": 6, "total": 27, "source": "idx-statistic", "dataset": "additional-listings", "hasMore": true, "nextPage": 2, "provider": "idx", "sourceUrl": "https://www.idx.co.id/id/data-pasar/laporan-statistik/digital-statistic/monthly/corporate-action-of-listed-companies/additional-listed-shares", "coverageEnd": "2025-06-30", "coverageKey": "startDate", "sourcePeriod": "2025-06", "coverageStart": "2025-06-01", "sourceDataset": "LINK_LISTING", "completeForQuery": false } ``` --- ### Delistings Companies delisted in one calendar month, with the date they first listed and the last - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:idx/delistings` - **Cache TTL:** 21600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `year` | number | query | no | Report year. Defaults to the current month in Jakarta (UTC+7). | | `month` | number | query | no | Report month, 1-12. Defaults to the current month in Jakarta (UTC+7). | | `page` | number | query | no | Page number (default 1). | | `length` | number | query | no | Rows per page (default 20, max 200). | | `search` | string | query | no | Filter on code or company name, applied upstream. | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:idx/delistings?year=2026&month=7&page=1&length=20&search=BBCA" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:idx/delistings?year=2026&month=7&page=1&length=20&search=BBCA", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:idx/delistings?year=2026&month=7&page=1&length=20&search=BBCA", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "page": 1, "year": 2025, "count": 2, "items": [ { "code": "MASA", "name": "Multistrada Arah Sarana Tbk", "listingDate": "2005-06-09", "regularPrice": 6200, "delistingDate": "2025-10-30", "lastTradingDate": "2025-10-29", "marketCapMillionIdr": 56934271.059, "listedSharesThousands": 9182946.945 }, { "code": "MFIN", "name": "Mandala Multifinance Tbk", "listingDate": "2005-09-06", "regularPrice": 890, "delistingDate": "2025-10-02", "lastTradingDate": "2025-10-01", "marketCapMillionIdr": 4450000, "listedSharesThousands": 5000000 } ], "month": 10, "total": 2, "source": "idx-statistic", "dataset": "delistings", "hasMore": false, "nextPage": null, "provider": "idx", "sourceUrl": "https://www.idx.co.id/id/data-pasar/laporan-statistik/digital-statistic/monthly/corporate-action-of-listed-companies/delisted-company", "coverageEnd": "2025-10-31", "coverageKey": "delistingDate", "sourcePeriod": "2025-10", "coverageStart": "2025-10-01", "sourceDataset": "LINK_DELISTING", "completeForQuery": true } ``` --- ### Dividends Dividend announcements for one calendar month, with the cum, ex, record and payment - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:idx/dividends` - **Cache TTL:** 21600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `year` | number | query | no | Report year. Defaults to the current month in Jakarta (UTC+7). | | `month` | number | query | no | Report month, 1-12. Defaults to the current month in Jakarta (UTC+7). | | `page` | number | query | no | Page number (default 1). | | `length` | number | query | no | Rows per page (default 20, max 200). | | `search` | string | query | no | Filter on code or company name, applied upstream. | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:idx/dividends?year=2026&month=7&page=1&length=20&search=BBCA" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:idx/dividends?year=2026&month=7&page=1&length=20&search=BBCA", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:idx/dividends?year=2026&month=7&page=1&length=20&search=BBCA", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "page": 1, "year": 2025, "count": 11, "items": [ { "code": "SMAR", "name": "Sinar Mas Agro Resources and Technology Tbk.", "exDate": "2025-02-06", "cumDate": "2025-01-06", "currency": "IDR", "noteCode": "F", "recordDate": "2025-07-06", "paymentDate": "2026-01-06", "cashDividend": 95, "datesConsistent": true }, { "code": "SPTO", "name": "Surya Pertiwi Tbk.", "exDate": "2025-02-06", "cumDate": "2025-01-06", "currency": "IDR", "noteCode": "F", "recordDate": "2025-07-06", "paymentDate": "2026-04-06", "cashDividend": 50, "datesConsistent": true }, { "code": "CHEM", "name": "Chemstar Indonesia Tbk.", "exDate": "2025-02-06", "cumDate": "2025-01-06", "currency": "IDR", "noteCode": "F", "recordDate": "2025-07-06", "paymentDate": "2024-05-07", "cashDividend": 0.13, "datesConsistent": false }, { "code": "CHIP", "name": "Pelita Teknologi Global Tbk.", "exDate": "2025-02-06", "cumDate": "2025-01-06", "currency": "IDR", "noteCode": "F", "recordDate": "2025-07-06", "paymentDate": "2024-05-07", "cashDividend": 3.05, "datesConsistent": false }, { "code": "DSNG", "name": "Dharma Satya Nusantara Tbk.", "exDate": "2025-02-06", "cumDate": "2025-01-06", "currency": "IDR", "noteCode": "F", "recordDate": "2025-07-06", "paymentDate": "2024-04-07", "cashDividend": 22, "datesConsistent": false }, { "code": "VISI", "name": "Satu Visi Putra Tbk.", "exDate": "2025-02-06", "cumDate": "2025-01-06", "currency": "IDR", "noteCode": "F", "recordDate": "2025-07-06", "paymentDate": "2024-05-07", "cashDividend": 1, "datesConsistent": false }, { "code": "JKON", "name": "Jaya Konstruksi Manggala Pratama Tbk.", "exDate": "2025-02-06", "cumDate": "2025-01-06", "currency": "IDR", "noteCode": "F", "recordDate": "2025-07-06", "paymentDate": "2024-05-07", "cashDividend": 4.25, "datesConsistent": false }, { "code": "PART", "name": "Cipta Perdana Lancar Tbk.", "exDate": "2025-07-11", "cumDate": "2025-07-10", "currency": "IDR", "noteCode": "F", "recordDate": "2025-07-10", "paymentDate": "2025-08-01", "cashDividend": 1.709, "datesConsistent": true } ], "month": 7, "total": 11, "source": "idx-statistic", "dataset": "dividends", "hasMore": false, "nextPage": null, "provider": "idx", "sourceUrl": "https://www.idx.co.id/id/data-pasar/laporan-statistik/digital-statistic/monthly/corporate-action-of-listed-companies/dividend-announcement", "coverageEnd": "2025-07-31", "coverageKey": "recordDate", "sourcePeriod": "2025-07", "coverageStart": "2025-07-01", "sourceDataset": "LINK_DIVIDEND", "completeForQuery": true } ``` --- ### New Listings Newly listed stocks for one calendar month, with the offering price, par value and the - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:idx/new-listings` - **Cache TTL:** 21600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `year` | number | query | no | Report year. Defaults to the current month in Jakarta (UTC+7). | | `month` | number | query | no | Report month, 1-12. Defaults to the current month in Jakarta (UTC+7). | | `page` | number | query | no | Page number (default 1). | | `length` | number | query | no | Rows per page (default 20, max 200). | | `search` | string | query | no | Filter on code or company name, applied upstream. | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:idx/new-listings?year=2026&month=7&page=1&length=20&search=BBCA" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:idx/new-listings?year=2026&month=7&page=1&length=20&search=BBCA", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:idx/new-listings?year=2026&month=7&page=1&length=20&search=BBCA", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "page": 1, "year": 2025, "count": 2, "items": [ { "code": "RLCO", "name": "Abadi Lestari Indonesia Tbk.", "parValue": 50, "fundRaised": 105000000000, "listingDate": "2025-12-08", "listedShares": 3125000000, "offeringPrice": 168, "sharesOffered": 625000000 }, { "code": "SUPA", "name": "Super Bank Indonesia Tbk.", "parValue": 100, "fundRaised": 2798198810500, "listingDate": "2025-12-17", "listedShares": 33558047450, "offeringPrice": 635, "sharesOffered": 4406612300 } ], "month": 12, "total": 2, "source": "idx-statistic", "dataset": "new-listings", "hasMore": false, "nextPage": null, "provider": "idx", "sourceUrl": "https://www.idx.co.id/id/data-pasar/laporan-statistik/digital-statistic/monthly/corporate-action-of-listed-companies/stock-new-listings", "coverageEnd": "2025-12-31", "coverageKey": "listingDate", "sourcePeriod": "2025-12", "coverageStart": "2025-12-01", "sourceDataset": "LINK_STOCK_NEW_LISTING", "completeForQuery": true } ``` --- ### Rights Offerings Rights offerings for one calendar month — ratio, ex price and ex date, the inputs a - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:idx/rights-offerings` - **Cache TTL:** 21600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `year` | number | query | no | Report year. Defaults to the current month in Jakarta (UTC+7). | | `month` | number | query | no | Report month, 1-12. Defaults to the current month in Jakarta (UTC+7). | | `page` | number | query | no | Page number (default 1). | | `length` | number | query | no | Rows per page (default 20, max 200). | | `search` | string | query | no | Filter on code or company name, applied upstream. | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:idx/rights-offerings?year=2026&month=7&page=1&length=20&search=BBCA" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:idx/rights-offerings?year=2026&month=7&page=1&length=20&search=BBCA", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:idx/rights-offerings?year=2026&month=7&page=1&length=20&search=BBCA", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "page": 1, "year": 2025, "count": 2, "items": [ { "code": "CSIS", "name": "Cahayasakti Investindo Sukses Tbk.", "ratio": "10:4", "exDate": "2025-12-22", "exPrice": 380, "recordDate": "2025-12-23", "fundRaisedMillionIdr": 198664, "sharesIssuedMillions": 522.8 }, { "code": "GMFI", "name": "Garuda Maintenance Facility Aero Asia Tbk.", "ratio": "10:4", "exDate": "2025-12-17", "exPrice": 0, "recordDate": "2025-12-18", "fundRaisedMillionIdr": 0, "sharesIssuedMillions": 90050.6874 } ], "month": 12, "total": 2, "source": "idx-statistic", "dataset": "rights-offerings", "hasMore": false, "nextPage": null, "provider": "idx", "sourceUrl": "https://www.idx.co.id/id/data-pasar/laporan-statistik/digital-statistic/monthly/corporate-action-of-listed-companies/right-offerings", "coverageEnd": "2025-12-31", "coverageKey": "recordDate", "sourcePeriod": "2025-12", "coverageStart": "2025-12-01", "sourceDataset": "LINK_RIGHT_OFFERING", "completeForQuery": true } ``` --- ### Stock Splits Stock splits and reverse stocks for one calendar month, with the price adjustment factor a raw IDX price series needs to survive a split (magnitude from the ratio, direction from the par move — IDX's own SS/RS label is passed through unmapped, it has been wrong). Same coverage contract as the other corporate-action reports. completeForQuery=true means every record the IDX monthly statistic report holds for this query was returned; an empty result with completeForQuery=true means no matching record exists within that report's scope for the covered period — it does not claim that no corporate action exists outside the underlying report. sourceDataset + sourcePeriod name the exact report-month; sourceUrl is the report's page. - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:idx/stock-splits` - **Cache TTL:** 21600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `year` | number | query | no | Report year. Defaults to the current month in Jakarta (UTC+7). | | `month` | number | query | no | Report month, 1-12. Defaults to the current month in Jakarta (UTC+7). | | `page` | number | query | no | Page number (default 1). | | `length` | number | query | no | Rows per page (default 20, max 200). | | `search` | string | query | no | Filter on code or company name, applied upstream. | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:idx/stock-splits?year=2026&month=7&page=1&length=20&search=RAJA" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:idx/stock-splits?year=2026&month=7&page=1&length=20&search=RAJA", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:idx/stock-splits?year=2026&month=7&page=1&length=20&search=RAJA", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "page": 1, "year": 2026, "count": 3, "items": [ { "code": "RAJA", "name": "Rukun Raharja Tbk.", "ratio": "1:5", "actionCode": "SS", "listingDate": "2026-07-16", "listedShares": 21135412500, "nominalValue": 25, "nominalValueNew": 5, "priceAdjustmentFactor": 0.2, "additionalListedShares": 16908330000 }, { "code": "MLPT", "name": "Multipolar Technology Tbk.", "ratio": "1:25", "actionCode": "SS", "listingDate": "2026-07-29", "listedShares": 46875000000, "nominalValue": 100, "nominalValueNew": 4, "priceAdjustmentFactor": 0.04, "additionalListedShares": 45000000000 }, { "code": "RMKE", "name": "RMK Energy Tbk.", "ratio": "1:5", "actionCode": "SS", "listingDate": "2026-07-17", "listedShares": 21875000000, "nominalValue": 100, "nominalValueNew": 20, "priceAdjustmentFactor": 0.2, "additionalListedShares": 17500000000 } ], "month": 7, "total": 3, "source": "idx-statistic", "dataset": "stock-splits", "hasMore": false, "nextPage": null, "provider": "idx", "sourceUrl": "https://www.idx.co.id/id/data-pasar/laporan-statistik/digital-statistic/monthly/corporate-action-of-listed-companies/stock-splits-and-reverse-stocks", "coverageEnd": "2026-07-31", "coverageKey": "listingDate", "sourcePeriod": "2026-07", "coverageStart": "2026-07-01", "sourceDataset": "LINK_STOCK_SPLIT", "completeForQuery": true } ``` --- ### Corporate Actions Every corporate action for one issuer or the whole market across a month range, merged from the six IDX statistic reports (dividend, rights, additional-listing, delisting, new-listing, stock-split), with an explicit coverage and completeness contract. With code, identityStatus says whether the issuer is listed today (verified), delisted but known to IDX's issued-shares ledger (historical), untraceable (unknown), or unchecked within the time budget (unverified); a malformed code is a 400. completeForQuery=true means every record the IDX monthly statistic report holds for this query was returned; an empty result with completeForQuery=true means no matching record exists within that report's scope for the covered period — it does not claim that no corporate action exists outside the underlying report. sourceDataset + sourcePeriod name the exact report-month; sourceUrl is the report's page. - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:idx/corporate-actions` - **Cache TTL:** 21600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `code` | string | query | no | Issuer code — four letters (five for a preferred line such as MYRXP), case-insensitive; anything else is rejected with 400. Omit to cover the whole market. When given, the response carries `identityStatus`: `verified` (listed today), `historical` (delisted, but IDX's issued-shares ledger still knows it), `unknown` (no trace anywhere IDX exposes — not a guess either way), `unverified` (the check could not run; rows are still valid). | | `from` | string | query | no | First month to cover, YYYY-MM. Defaults to 11 months before `to`. Max span 12 months. | | `to` | string | query | no | Last month to cover, YYYY-MM. Defaults to the current month in Jakarta (UTC+7). | | `type` | string | query | no | Action types, comma-separated. One or more of: dividend, rights, additional-listing, delisting, new-listing, stock-split. Defaults to all six. Each type costs one upstream call per month, so narrowing this is the fastest way to cut latency. | | `page` | number | query | no | Page number (default 1). | | `limit` | number | query | no | Rows per page (default 50, max 200). | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:idx/corporate-actions?code=BBCA&from=2025-11&to=2026-04&type=dividend&page=1&limit=50" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:idx/corporate-actions?code=BBCA&from=2025-11&to=2026-04&type=dividend&page=1&limit=50", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:idx/corporate-actions?code=BBCA&from=2025-11&to=2026-04&type=dividend&page=1&limit=50", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "code": "BBCA", "page": 1, "count": 2, "items": [ { "code": "BBCA", "date": "2026-04-01", "name": "Bank Central Asia Tbk.", "type": "dividend", "exDate": "2026-03-31", "cumDate": "2026-03-30", "currency": "IDR", "recordDate": "2026-04-01", "paymentDate": "2026-04-08", "cashDividend": 281, "sourcePeriod": "2026-04", "sourceDataset": "LINK_DIVIDEND", "datesConsistent": true }, { "code": "BBCA", "date": "2025-12-04", "name": "Bank Central Asia Tbk.", "type": "dividend", "exDate": "2025-12-05", "cumDate": "2025-12-04", "currency": "IDR", "noteCode": "I", "recordDate": "2025-12-04", "paymentDate": "2025-12-22", "cashDividend": 55, "sourcePeriod": "2025-12", "sourceDataset": "LINK_DIVIDEND", "datesConsistent": true } ], "limit": 50, "total": 2, "types": [ "dividend", "rights", "additional-listing", "delisting", "new-listing", "stock-split" ], "source": "idx-statistic", "dataset": "corporate-actions", "hasMore": false, "nextPage": null, "provider": "idx", "sourceUrl": "https://www.idx.co.id/id/data-pasar/laporan-statistik/digital-statistic/monthly/corporate-action-of-listed-companies", "coverageEnd": "2026-08-31", "coverageStart": "2025-09-01", "coverageMonths": 12, "identityStatus": "verified", "completeForQuery": false, "segmentsAnswered": 72, "unverifiedMonths": [], "segmentsRequested": 72, "unpublishedMonths": [ "2026-08" ] } ``` --- _Generated: 2026-09-25T14:29:25.453Z_