# Finance — Zapi reference
> Every Finance endpoint on Zapi, with parameters, request shape and an example response.
**Base URL:** `https://api.zapi.ink`
**Auth:** Send `x-api-key: YOUR_KEY` header on every request. Get a key at https://zapi.ink/dashboard/keys (free tier — 600 req/mo, no credit card).
**Response envelope:** `{ status: "success" | "error", message: string, content: }`
**Rate limit:** 60 req/min (free tier). Per-endpoint cache TTL is documented below.
**Errors:** standard HTTP codes (`401` invalid key, `429` rate limited, `5xx` upstream). Body always has `{ status: "error", message, errors? }`.
```bash
curl "https://api.zapi.ink/v1/CATEGORY:SCRAPER/ENDPOINT?param=value" \
-H "x-api-key: $ZAPI_KEY"
```
**Category page:** https://zapi.ink/category/finance
**Full catalog:** https://zapi.ink/apis · **Index:** https://zapi.ink/llms-full.txt
---
## Antam
**Category:** finance · **Slug:** `antam`
**Detail page:** https://zapi.ink/api/finance/antam
Antam's own price list — the Indonesian retail gold benchmark, quoted per bar
**Tags:** finance, antam
### Harga
Antam's own price list — the Indonesian retail gold benchmark, quoted per bar
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:antam/harga`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `series` | string | query | no | Filter by series name, case-insensitive substring. Omit for every series. |
| `metal` | enum(gold|silver|all) | query | no | Restrict to gold or silver products. Default all. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:antam/harga?series=batangan&metal=gold" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:antam/harga?series=batangan&metal=gold", {
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:antam/harga?series=batangan&metal=gold",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"asOf": "2026-08-21",
"count": 17,
"items": [
{
"metal": "gold",
"series": "Emas Batangan",
"taxLabel": "Harga (+Pajak PPh 0.25%)",
"basePrice": 1412500,
"taxedPrice": 1416031,
"weightGram": 0.5,
"weightText": "0.5 gr",
"taxedPrices": [
{
"label": "Harga (+Pajak PPh 0.25%)",
"price": 1416031
}
],
"basePricePerGram": 2825000
},
{
"metal": "gold",
"series": "Emas Batangan",
"taxLabel": "Harga (+Pajak PPh 0.25%)",
"basePrice": 2725000,
"taxedPrice": 2731813,
"weightGram": 1,
"weightText": "1 gr",
"taxedPrices": [
{
"label": "Harga (+Pajak PPh 0.25%)",
"price": 2731813
}
],
"basePricePerGram": 2725000
},
{
"metal": "gold",
"series": "Emas Batangan",
"taxLabel": "Harga (+Pajak PPh 0.25%)",
"basePrice": 5390000,
"taxedPrice": 5403475,
"weightGram": 2,
"weightText": "2 gr",
"taxedPrices": [
{
"label": "Harga (+Pajak PPh 0.25%)",
"price": 5403475
}
],
"basePricePerGram": 2695000
},
{
"metal": "gold",
"series": "Emas Batangan",
"taxLabel": "Harga (+Pajak PPh 0.25%)",
"basePrice": 8060000,
"taxedPrice": 8080150,
"weightGram": 3,
"weightText": "3 gr",
"taxedPrices": [
{
"label": "Harga (+Pajak PPh 0.25%)",
"price": 8080150
}
],
"basePricePerGram": 2686667
},
{
"metal": "gold",
"series": "Emas Batangan",
"taxLabel": "Harga (+Pajak PPh 0.25%)",
"basePrice": 13400000,
"taxedPrice": 13433500,
"weightGram": 5,
"weightText": "5 gr",
"taxedPrices": [
{
"label": "Harga (+Pajak PPh 0.25%)",
"price": 13433500
}
],
"basePricePerGram": 2680000
},
{
"metal": "gold",
"series": "Emas Batangan",
"taxLabel": "Harga (+Pajak PPh 0.25%)",
"basePrice": 26745000,
"taxedPrice": 26811863,
"weightGram": 10,
"weightText": "10 gr",
"taxedPrices": [
{
"label": "Harga (+Pajak PPh 0.25%)",
"price": 26811863
}
],
"basePricePerGram": 2674500
},
{
"metal": "gold",
"series": "Emas Batangan",
"taxLabel": "Harga (+Pajak PPh 0.25%)",
"basePrice": 66737000,
"taxedPrice": 66903843,
"weightGram": 25,
"weightText": "25 gr",
"taxedPrices": [
{
"label": "Harga (+Pajak PPh 0.25%)",
"price": 66903843
}
],
"basePricePerGram": 2669480
},
{
"metal": "gold",
"series": "Emas Batangan",
"taxLabel": "Harga (+Pajak PPh 0.25%)",
"basePrice": 133395000,
"taxedPrice": 133728488,
"weightGram": 50,
"weightText": "50 gr",
"taxedPrices": [
{
"label": "Harga (+Pajak PPh 0.25%)",
"price": 133728488
}
],
"basePricePerGram": 2667900
}
],
"metal": "all",
"total": 23,
"series": "batangan",
"dataset": "harga",
"currency": "IDR",
"provider": "antam",
"seriesAvailable": [
"Emas Batangan",
"Emas Batangan Gift Series",
"Emas Batangan Batik Seri III",
"Emas Batangan Karapan Sapi",
"Koin Perak Gunung Bromo",
"Perak Murni",
"Perak Heritage",
"Liontin Batik Seri III"
]
}
```
---
### Buyback
What Antam pays to take a bar back. One number for the whole product line — the
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:antam/buyback`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `x` | string | query | no | Unused — the buyback price takes no parameters. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:antam/buyback?x=" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:antam/buyback?x=", {
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:antam/buyback?x=",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"metal": "gold",
"dataset": "buyback",
"currency": "IDR",
"provider": "antam",
"pricePerGram": 2585000,
"appliesToAllDenominations": true
}
```
---
## Bareksa
**Category:** finance · **Slug:** `bareksa`
**Detail page:** https://zapi.ink/api/finance/bareksa
Bareksa's bond list — coupon, yield, modified duration, Pefindo rating and
**Tags:** finance, bareksa
### Bonds
Bareksa's bond list — coupon, yield, modified duration, Pefindo rating and
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:bareksa/bonds`
- **Cache TTL:** 600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `type` | enum(all|government|corporate) | query | no | Issuer type. Default all |
| `currency` | string | query | no | Restrict to issues denominated in this currency |
| `query` | string | query | no | Filter by bond code, name or issuer substring |
| `page` | number | query | no | Page number. Default 1 |
| `count` | number | query | no | Items per page. Default 100, max 500 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:bareksa/bonds?type=government¤cy=IDR&query=PLN&page=1&count=100" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:bareksa/bonds?type=government¤cy=IDR&query=PLN&page=1&count=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:bareksa/bonds?type=government¤cy=IDR&query=PLN&page=1&count=100",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"page": 1,
"type": "government",
"count": 100,
"items": [
{
"code": "FR0031",
"name": "Obligasi Negara Republik Indonesia Seri FR0031",
"yield": 8.16803,
"bondId": "5",
"issuer": "The Government of Indonesia",
"sector": "Pemerintah",
"currency": "IDR",
"lowPrice": 105.38,
"highPrice": 105.411,
"lastPrice": 105.411,
"prevPrice": 105.46,
"priceDate": "2019-09-04",
"couponRate": 11,
"issuerType": "government",
"maturityDate": "2020-11-15",
"ratingPefindo": null,
"modifiedDuration": 0.24496634653705,
"nominalOutstanding": 17890000000000,
"timeToMaturityYears": 1.29
},
{
"code": "FR0032",
"name": "Obligasi Negara Republik Indonesia Seri FR0032",
"yield": 15.6,
"bondId": "6",
"issuer": "The Government of Indonesia",
"sector": "Pemerintah",
"currency": "IDR",
"lowPrice": 101.576,
"highPrice": 101.576,
"lastPrice": 101.576,
"prevPrice": 101.4,
"priceDate": "2018-05-15",
"couponRate": 15,
"issuerType": "government",
"maturityDate": "2018-07-15",
"ratingPefindo": null,
"modifiedDuration": -0.12492590587467,
"nominalOutstanding": 918492000000,
"timeToMaturityYears": -1.09
},
{
"code": "FR0034",
"name": "Obligasi Negara Republik Indonesia Seri FR0034",
"yield": 9.16758,
"bondId": "7",
"issuer": "The Government of Indonesia",
"sector": "Pemerintah",
"currency": "IDR",
"lowPrice": 110.48,
"highPrice": 110.66,
"lastPrice": 110.66,
"prevPrice": 111.65,
"priceDate": "2019-09-02",
"couponRate": 12.8,
"issuerType": "government",
"maturityDate": "2021-06-15",
"ratingPefindo": null,
"modifiedDuration": 0.26277878660994,
"nominalOutstanding": 16286400000000,
"timeToMaturityYears": 1.88
},
{
"code": "FR0035",
"name": "Obligasi Negara Republik Indonesia Seri FR0035",
"yield": 9.35081,
"bondId": "8",
"issuer": "The Government of Indonesia",
"sector": "Pemerintah",
"currency": "IDR",
"lowPrice": 116.13,
"highPrice": 116.15,
"lastPrice": 116.15,
"prevPrice": 116,
"priceDate": "2019-03-05",
"couponRate": 12.9,
"issuerType": "government",
"maturityDate": "2022-06-15",
"ratingPefindo": null,
"modifiedDuration": 0.21900614853409,
"nominalOutstanding": 11023750000000,
"timeToMaturityYears": 2.89
},
{
"code": "FR0036",
"name": "Obligasi Negara Republik Indonesia Seri FR0036",
"yield": 5.21739,
"bondId": "9",
"issuer": "The Government of Indonesia",
"sector": "Pemerintah",
"currency": "IDR",
"lowPrice": 100.167,
"highPrice": 100.17,
"lastPrice": 100.167,
"prevPrice": 100.25,
"priceDate": "2019-09-02",
"couponRate": 11.5,
"issuerType": "government",
"maturityDate": "2019-09-15",
"ratingPefindo": null,
"modifiedDuration": 0.028433729798763,
"nominalOutstanding": 9422500000000,
"timeToMaturityYears": 0.1
},
{
"code": "FR0037",
"name": "Obligasi Negara Republik Indonesia Seri FR0037",
"yield": 9.3559,
"bondId": "10",
"issuer": "The Government of Indonesia",
"sector": "Pemerintah",
"currency": "IDR",
"lowPrice": 122.75,
"highPrice": 122.75,
"lastPrice": 122.75,
"prevPrice": 126.5,
"priceDate": "2019-03-04",
"couponRate": 12,
"issuerType": "government",
"maturityDate": "2026-09-15",
"ratingPefindo": null,
"modifiedDuration": 0.19494832814027,
"nominalOutstanding": 2450000000000,
"timeToMaturityYears": 7.2
},
{
"code": "FR0038",
"name": "Obligasi Negara Republik Indonesia Seri FR0038",
"yield": 11.7985,
"bondId": "11",
"issuer": "The Government of Indonesia",
"sector": "Pemerintah",
"currency": "IDR",
"lowPrice": 100.4,
"highPrice": 100.45,
"lastPrice": 100.45,
"prevPrice": 102.7,
"priceDate": "2018-07-20",
"couponRate": 11.6,
"issuerType": "government",
"maturityDate": "2018-08-15",
"ratingPefindo": null,
"modifiedDuration": -0.14626950718739,
"nominalOutstanding": 3337862000000,
"timeToMaturityYears": -1
},
{
"code": "FR0039",
"name": "Obligasi Negara Republik Indonesia Seri FR0039",
"yield": 9.04407,
"bondId": "12",
"issuer": "The Government of Indonesia",
"sector": "Pemerintah",
"currency": "IDR",
"lowPrice": 116.1,
"highPrice": 116.1,
"lastPrice": 116.1,
"prevPrice": 114.66,
"priceDate": "2019-03-18",
"couponRate": 11.75,
"issuerType": "government",
"maturityDate": "2023-08-15",
"ratingPefindo": null,
"modifiedDuration": 0.20448186807331,
"nominalOutstanding": 4175000000000,
"timeToMaturityYears": 4.07
}
],
"query": null,
"total": 119,
"dataset": "bonds",
"hasMore": true,
"currency": null,
"nextPage": 2,
"provider": "bareksa"
}
```
---
### Fund Nav
Daily NAV history for one Bareksa fund.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:bareksa/fund-nav`
- **Cache TTL:** 600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `fund` | string | query | yes | Fund code, ISIN, or the numeric fund id from `funds` |
| `period` | enum(mtd|1m|3m|6m|ytd|1y) | query | no | History window: mtd, 1m, 3m, 6m, ytd, 1y. Longer windows are behind the provider's paid tier. Default 1y |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:bareksa/fund-nav?fund=ABWFKF2&period=1y" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:bareksa/fund-nav?fund=ABWFKF2&period=1y", {
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:bareksa/fund-nav?fund=ABWFKF2&period=1y",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"fund": "ABWFKF2",
"name": "Allianz Fixed Income Fund 2 Kelas A",
"count": 240,
"items": [
{
"nav": 1678.9871,
"date": "2025-08-20"
},
{
"nav": 1682.7054,
"date": "2025-08-21"
},
{
"nav": 1681.3435,
"date": "2025-08-22"
},
{
"nav": 1684.6852,
"date": "2025-08-25"
},
{
"nav": 1686.0469,
"date": "2025-08-26"
},
{
"nav": 1686.9194,
"date": "2025-08-27"
},
{
"nav": 1688.3712,
"date": "2025-08-28"
},
{
"nav": 1685.3419,
"date": "2025-08-29"
}
],
"fundId": "2281",
"period": "1y",
"dataset": "fund-nav",
"endDate": "2026-08-20",
"currency": "IDR",
"provider": "bareksa",
"startDate": "2025-08-20",
"inceptionNav": 1000,
"inceptionDate": "2016-07-20"
}
```
---
### Funds
Bareksa's buyable mutual-fund universe — NAV, AUM, returns and the risk
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:bareksa/funds`
- **Cache TTL:** 600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `type` | enum(all|pasar-uang|pendapatan-tetap|saham|campuran|indeks-etf) | query | no | Fund type. Default all |
| `sharia` | enum(true|false) | query | no | Keep only Sharia funds, or only conventional ones. Default all |
| `im` | string | query | no | Filter by investment manager name substring |
| `query` | string | query | no | Filter by fund name, code or ISIN substring |
| `page` | number | query | no | Page number. Default 1 |
| `count` | number | query | no | Items per page. Default 50, max 200 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:bareksa/funds?type=saham&sharia=true&im=Allianz&query=obligasi&page=1&count=50" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:bareksa/funds?type=saham&sharia=true&im=Allianz&query=obligasi&page=1&count=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:bareksa/funds?type=saham&sharia=true&im=Allianz&query=obligasi&page=1&count=50",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"im": null,
"page": 1,
"type": "saham",
"count": 47,
"items": [
{
"aum": 16557427146,
"nav": 634.95,
"rar": {
"asOf": "2026-08-20",
"oneYear": -4.92746,
"overall": null,
"tenYear": null,
"twoYear": -4.31274,
"fiveYear": -1.25895,
"fourYear": -2.7706,
"sixMonth": null,
"inception": null,
"sevenYear": -0.80832,
"threeYear": -3.45486
},
"beta": null,
"code": "AAFEJSF",
"name": "Avrist Ada Saham Blue Safir Kelas A",
"type": "saham",
"aumUsd": 927275.27,
"fundId": "2576",
"jensen": null,
"minBuy": 10000,
"rating": {
"asOf": "2026-07-31",
"oneYear": 1.50366,
"overall": null,
"tenYear": null,
"twoYear": null,
"fiveYear": null,
"fourYear": null,
"sixMonth": null,
"inception": null,
"sevenYear": null,
"threeYear": null
},
"sharpe": {
"asOf": "2026-08-20",
"oneYear": -5.83226,
"overall": null,
"tenYear": null,
"twoYear": -5.34561,
"fiveYear": -2.62248,
"fourYear": -4.0792,
"sixMonth": null,
"inception": null,
"sevenYear": -2.03433,
"threeYear": -4.62929
},
"navDate": "2026-08-20",
"returns": {
"mtd": 3.916,
"ytd": -31.516,
"oneDay": 2.1350000000000002,
"oneWeek": 3.254,
"oneYear": -30.3,
"tenYear": null,
"twoYear": -42.702,
"fiveYear": -30.980999999999998,
"oneMonth": 2.8209999999999997,
"sixMonth": -25.72,
"inception": -36.504999999999995,
"threeYear": -44.823,
"threeMonth": 1.7399999999999998
},
"treynor": null,
"ageYears": 9.364383561643836,
"aumUnits": 27098067,
"currency": "IDR",
"isSharia": false,
"isinCode": "IDN000284205",
"aumPeriod": "2026-07-01",
"isBuyable": true,
"managerId": "6",
"typeLabel": "Saham",
"isNewcomer": false,
"buyFeeLabel": "Maks. 5%",
"managerLogo": "https://media.bareksa.com/cms/media/assets/image/2020/02/15689_avrist-asset-management--square-_70_70_r.png",
"managerName": "Avrist Asset Management, PT",
"minBuyLabel": "IDR 10.000,00",
"riskOneYear": 0.01835,
"sellFeeLabel": "Maks 5%",
"inceptionDate": "2017-04-12",
"minBuyCurrency": "IDR",
"buyFeeMaxPercent": 5,
"custodianFeeLabel": "Maks.0.25%",
"sellFeeMaxPercent": 5,
"switchingFeeLabel": "Tidak Ada",
"managementFeeLabel": "Maks. 5%",
"custodianFeeMaxPercent": 0.25,
"switchingFeeMaxPercent": 0,
"managementFeeMaxPercent": 5
},
{
"aum": 964019539318,
"nav": 51588.32,
"rar": {
"asOf": "2026-08-20",
"oneYear": -1.83128,
"overall": null,
"tenYear": 0.18639,
"twoYear": -2.32826,
"fiveYear": -0.09932,
"fourYear": -1.14225,
"sixMonth": null,
"inception": null,
"sevenYear": -0.24792,
"threeYear": -1.62806
},
"beta": null,
"code": "AAKEKDS",
"name": "Batavia Dana Saham",
"type": "saham",
"aumUsd": 53988549.47,
"fundId": "16",
"jensen": null,
"minBuy": 10000,
"rating": {
"asOf": "2026-07-31",
"oneYear": 3.00393,
"overall": null,
"tenYear": null,
"twoYear": null,
"fiveYear": null,
"fourYear": null,
"sixMonth": null,
"inception": null,
"sevenYear": null,
"threeYear": null
},
"sharpe": {
"asOf": "2026-08-20",
"oneYear": -3.0978,
"overall": null,
"tenYear": -1.31257,
"twoYear": -3.63537,
"fiveYear": -1.72637,
"fourYear": -2.76517,
"sixMonth": null,
"inception": null,
"sevenYear": -1.65516,
"threeYear": -3.10811
},
"navDate": "2026-08-20",
"returns": {
"mtd": 3.5860000000000003,
"ytd": -7.965999999999999,
"oneDay": 1.6070000000000002,
"oneWeek": 2.196,
"oneYear": -9.157,
"tenYear": -8.702,
"twoYear": -20.769000000000002,
"fiveYear": -6.379,
"oneMonth": 2.4299999999999997,
"sixMonth": -11.508000000000001,
"inception": 5058.832,
"threeYear": -20.180999999999997,
"threeMonth": 5.579
},
"treynor": null,
"ageYears": 29.698630136986303,
"aumUnits": 19356936,
"currency": "IDR",
"isSharia": false,
"isinCode": "IDN000022407",
"aumPeriod": "2026-07-01",
"isBuyable": true,
"managerId": "11",
"typeLabel": "Saham",
"isNewcomer": false,
"buyFeeLabel": "Maks. 2%",
"managerLogo": "https://media.bareksa.com/cms/media/assets/image/2025/10/16098_batavia-asset-management--square-_70_70_r.png",
"managerName": "Batavia Prosperindo Aset Manajemen, PT",
"minBuyLabel": "IDR 10.000",
"riskOneYear": 0.01311,
"sellFeeLabel": "Maks. 2%",
"inceptionDate": "1996-12-16",
"minBuyCurrency": "IDR",
"buyFeeMaxPercent": 2,
"custodianFeeLabel": "Maks. 0,2%",
"sellFeeMaxPercent": 2,
"switchingFeeLabel": "Maks. 1%",
"managementFeeLabel": "Maks. 3%",
"custodianFeeMaxPercent": 0.2,
"switchingFeeMaxPercent": 1,
"managementFeeMaxPercent": 3
},
{
"aum": 187303994844,
"nav": 2825.32,
"rar": {
"asOf": "2026-08-20",
"oneYear": -1.51279,
"overall": null,
"tenYear": 0.53676,
"twoYear": -1.36404,
"fiveYear": 0.43684,
"fourYear": -0.66287,
"sixMonth": null,
"inception": null,
"sevenYear": 0.24686,
"threeYear": -0.99681
},
"beta": null,
"code": "AAKEKSO",
"name": "Batavia Dana Saham Optimal",
"type": "saham",
"aumUsd": 10489695.05,
"fundId": "18",
"jensen": null,
"minBuy": 10000,
"rating": {
"asOf": "2026-07-31",
"oneYear": 3.00405,
"overall": null,
"tenYear": null,
"twoYear": null,
"fiveYear": null,
"fourYear": null,
"sixMonth": null,
"inception": null,
"sevenYear": null,
"threeYear": null
},
"sharpe": {
"asOf": "2026-08-20",
"oneYear": -2.83798,
"overall": null,
"tenYear": -1.01185,
"twoYear": -2.71539,
"fiveYear": -1.24444,
"fourYear": -2.34268,
"sixMonth": null,
"inception": null,
"sevenYear": -1.19859,
"threeYear": -2.52323
},
"navDate": "2026-08-20",
"returns": {
"mtd": 4.024,
"ytd": -6.177,
"oneDay": 1.387,
"oneWeek": 2.329,
"oneYear": -7.46,
"tenYear": 2.768,
"twoYear": -13.403,
"fiveYear": 2.528,
"oneMonth": 3.4840000000000004,
"sixMonth": -9.25,
"inception": 182.532,
"threeYear": -13.772,
"threeMonth": 6.407
},
"treynor": null,
"ageYears": 19.852054794520548,
"aumUnits": 68962143,
"currency": "IDR",
"isSharia": false,
"isinCode": "IDN000040607",
"aumPeriod": "2026-07-01",
"isBuyable": true,
"managerId": "11",
"typeLabel": "Saham",
"isNewcomer": false,
"buyFeeLabel": "Maks. 2%",
"managerLogo": "https://media.bareksa.com/cms/media/assets/image/2025/10/16098_batavia-asset-management--square-_70_70_r.png",
"managerName": "Batavia Prosperindo Aset Manajemen, PT",
"minBuyLabel": "IDR 10.000",
"riskOneYear": 0.01252,
"sellFeeLabel": "Maks. 2%",
"inceptionDate": "2006-10-19",
"minBuyCurrency": "IDR",
"buyFeeMaxPercent": 2,
"custodianFeeLabel": "Maks. 0,2%",
"sellFeeMaxPercent": 2,
"switchingFeeLabel": "Maks. 1%",
"managementFeeLabel": "Maks. 3%",
"custodianFeeMaxPercent": 0.2,
"switchingFeeMaxPercent": 1,
"managementFeeMaxPercent": 3
},
{
"aum": 1061925754392,
"nav": 856.4283,
"rar": {
"asOf": "2026-08-20",
"oneYear": -1.10583,
"overall": null,
"tenYear": -0.26638,
"twoYear": -1.18471,
"fiveYear": -0.05304,
"fourYear": -1.14114,
"sixMonth": null,
"inception": null,
"sevenYear": -0.32473,
"threeYear": -1.07185
},
"beta": null,
"code": "AAGEKSS",
"name": "BNI-AM Inspiring Equity Fund",
"type": "saham",
"aumUsd": 59471648.43,
"fundId": "542",
"jensen": null,
"minBuy": 10000,
"rating": {
"asOf": "2026-07-31",
"oneYear": 3.00411,
"overall": null,
"tenYear": null,
"twoYear": null,
"fiveYear": null,
"fourYear": null,
"sixMonth": null,
"inception": null,
"sevenYear": null,
"threeYear": null
},
"sharpe": {
"asOf": "2026-08-20",
"oneYear": -2.19837,
"overall": null,
"tenYear": -1.65627,
"twoYear": -2.38213,
"fiveYear": -1.59336,
"fourYear": -2.64401,
"sixMonth": null,
"inception": null,
"sevenYear": -1.62681,
"threeYear": -2.43087
},
"navDate": "2026-08-20",
"returns": {
"mtd": 2.842,
"ytd": -13.837,
"oneDay": 1.318,
"oneWeek": 2.165,
"oneYear": -7.292,
"tenYear": -27.265,
"twoYear": -14.015,
"fiveYear": -7.0889999999999995,
"oneMonth": 2.9010000000000002,
"sixMonth": -14.81,
"inception": -14.357000000000001,
"threeYear": -16.633,
"threeMonth": 3.565
},
"treynor": null,
"ageYears": 12.38082191780822,
"aumUnits": 1275187304,
"currency": "IDR",
"isSharia": false,
"isinCode": "IDN000175007",
"aumPeriod": "2026-07-01",
"isBuyable": true,
"managerId": "7",
"typeLabel": "Saham",
"isNewcomer": false,
"buyFeeLabel": "Maks. 2%",
"managerLogo": "https://media.bareksa.com/cms/media/assets/image/2020/02/15692_bni-asset-management--square-_70_70_r.png",
"managerName": "BNI Asset Management, PT",
"minBuyLabel": "IDR 10.000,00",
"riskOneYear": 0.01519,
"sellFeeLabel": "Maks. 2%",
"inceptionDate": "2014-04-07",
"minBuyCurrency": "IDR",
"buyFeeMaxPercent": 2,
"custodianFeeLabel": "Maks. 0,2%",
"sellFeeMaxPercent": 2,
"switchingFeeLabel": "Maks. 2%",
"managementFeeLabel": "Maks. 2,99 %",
"custodianFeeMaxPercent": 0.2,
"switchingFeeMaxPercent": 2,
"managementFeeMaxPercent": 2.99
},
{
"aum": 519316738095,
"nav": 16161.49,
"rar": {
"asOf": "2026-08-20",
"oneYear": -2.16228,
"overall": null,
"tenYear": 0.06685,
"twoYear": -1.96587,
"fiveYear": 0.2546,
"fourYear": -0.75388,
"sixMonth": null,
"inception": null,
"sevenYear": -0.06019,
"threeYear": -1.38484
},
"beta": null,
"code": "AAHEKEQ",
"name": "BNP Paribas Ekuitas",
"type": "saham",
"aumUsd": 29083598.68,
"fundId": "25",
"jensen": null,
"minBuy": null,
"rating": {
"asOf": "2026-07-31",
"oneYear": 3.00396,
"overall": null,
"tenYear": null,
"twoYear": null,
"fiveYear": null,
"fourYear": null,
"sixMonth": null,
"inception": null,
"sevenYear": null,
"threeYear": null
},
"sharpe": {
"asOf": "2026-08-20",
"oneYear": -3.40311,
"overall": null,
"tenYear": -1.40036,
"twoYear": -3.30996,
"fiveYear": -1.45163,
"fourYear": -2.43664,
"sixMonth": null,
"inception": null,
"sevenYear": -1.45008,
"threeYear": -2.90883
},
"navDate": "2026-08-20",
"returns": {
"mtd": 3.47,
"ytd": -10.943999999999999,
"oneDay": 1.926,
"oneWeek": 2.378,
"oneYear": -10.746,
"tenYear": -14.359,
"twoYear": -17.939,
"fiveYear": -0.5329999999999999,
"oneMonth": 2.769,
"sixMonth": -12.508,
"inception": 1516.1490000000001,
"threeYear": -17.594,
"threeMonth": 3.466
},
"treynor": null,
"ageYears": 25.610958904109587,
"aumUnits": 33248031,
"currency": "IDR",
"isSharia": false,
"isinCode": "IDN000038007",
"aumPeriod": "2026-07-01",
"isBuyable": true,
"managerId": "8",
"typeLabel": "Saham",
"isNewcomer": false,
"buyFeeLabel": "Maks. 3%, Min. 1%",
"managerLogo": "https://media.bareksa.com/cms/media/assets/image/2020/02/15693_bnp-paribas-asset-management--square-_70_70_r.png",
"managerName": "BNP Paribas Asset Management, PT",
"minBuyLabel": null,
"riskOneYear": 0.01338,
"sellFeeLabel": "Maks. 1%",
"inceptionDate": "2001-01-16",
"minBuyCurrency": null,
"buyFeeMaxPercent": 3,
"custodianFeeLabel": "Maks. 0,25%",
"sellFeeMaxPercent": 1,
"switchingFeeLabel": "Maks. 1%",
"managementFeeLabel": "Maks. 2,5%",
"custodianFeeMaxPercent": 0.25,
"switchingFeeMaxPercent": 1,
"managementFeeMaxPercent": 2.5
},
{
"aum": 294530148699,
"nav": 2554.47,
"rar": {
"asOf": "2026-08-20",
"oneYear": -1.8366,
"overall": null,
"tenYear": 0.12809,
"twoYear": -1.72874,
"fiveYear": 0.03117,
"fourYear": -0.693,
"sixMonth": null,
"inception": null,
"sevenYear": -0.11701,
"threeYear": -1.2693
},
"beta": null,
"code": "AAHEKIP",
"name": "BNP Paribas Infrastruktur Plus",
"type": "saham",
"aumUsd": 16494743.99,
"fundId": "26",
"jensen": null,
"minBuy": null,
"rating": {
"asOf": "2026-07-31",
"oneYear": 3.00404,
"overall": null,
"tenYear": null,
"twoYear": null,
"fiveYear": null,
"fourYear": null,
"sixMonth": null,
"inception": null,
"sevenYear": null,
"threeYear": null
},
"sharpe": {
"asOf": "2026-08-20",
"oneYear": -3.08932,
"overall": null,
"tenYear": -1.30762,
"twoYear": -3.09097,
"fiveYear": -1.62828,
"fourYear": -2.36939,
"sixMonth": null,
"inception": null,
"sevenYear": -1.46267,
"threeYear": -2.8055
},
"navDate": "2026-08-20",
"returns": {
"mtd": 3.166,
"ytd": -9.968,
"oneDay": 1.748,
"oneWeek": 2.297,
"oneYear": -9.389,
"tenYear": -13.778000000000002,
"twoYear": -16.156000000000002,
"fiveYear": -4.553999999999999,
"oneMonth": 2.588,
"sixMonth": -12.069,
"inception": 155.447,
"threeYear": -16.471,
"threeMonth": 4.224
},
"treynor": null,
"ageYears": 19.46849315068493,
"aumUnits": 118950165,
"currency": "IDR",
"isSharia": false,
"isinCode": "IDN000045804",
"aumPeriod": "2026-07-01",
"isBuyable": true,
"managerId": "8",
"typeLabel": "Saham",
"isNewcomer": false,
"buyFeeLabel": "Maks. 2%",
"managerLogo": "https://media.bareksa.com/cms/media/assets/image/2020/02/15693_bnp-paribas-asset-management--square-_70_70_r.png",
"managerName": "BNP Paribas Asset Management, PT",
"minBuyLabel": null,
"riskOneYear": 0.01325,
"sellFeeLabel": "Maks. 1,25%",
"inceptionDate": "2007-03-08",
"minBuyCurrency": null,
"buyFeeMaxPercent": 2,
"custodianFeeLabel": "Maks.0,25%",
"sellFeeMaxPercent": 1.25,
"switchingFeeLabel": "Maks. 1%",
"managementFeeLabel": "Maks. 2,5%",
"custodianFeeMaxPercent": 0.25,
"switchingFeeMaxPercent": 1,
"managementFeeMaxPercent": 2.5
},
{
"aum": 235039790095,
"nav": 22234.71,
"rar": {
"asOf": "2026-08-20",
"oneYear": -2.32779,
"overall": null,
"tenYear": -0.04238,
"twoYear": -2.06554,
"fiveYear": -0.16924,
"fourYear": -0.87613,
"sixMonth": null,
"inception": null,
"sevenYear": -0.25496,
"threeYear": -1.53572
},
"beta": null,
"code": "AAHEKPO",
"name": "BNP Paribas Pesona",
"type": "saham",
"aumUsd": 13163070.68,
"fundId": "29",
"jensen": null,
"minBuy": null,
"rating": {
"asOf": "2026-07-31",
"oneYear": 2.00369,
"overall": null,
"tenYear": null,
"twoYear": null,
"fiveYear": null,
"fourYear": null,
"sixMonth": null,
"inception": null,
"sevenYear": null,
"threeYear": null
},
"sharpe": {
"asOf": "2026-08-20",
"oneYear": -3.53756,
"overall": null,
"tenYear": -1.53744,
"twoYear": -3.40181,
"fiveYear": -1.87344,
"fourYear": -2.55203,
"sixMonth": null,
"inception": null,
"sevenYear": -1.66462,
"threeYear": -3.05167
},
"navDate": "2026-08-20",
"returns": {
"mtd": 3.512,
"ytd": -13.214,
"oneDay": 1.5150000000000001,
"oneWeek": 1.949,
"oneYear": -11.749,
"tenYear": -17.747,
"twoYear": -18.781,
"fiveYear": -7.41,
"oneMonth": 2.555,
"sixMonth": -15.329999999999998,
"inception": 2123.471,
"threeYear": -19.094,
"threeMonth": 0.8099999999999999
},
"treynor": null,
"ageYears": 28.882191780821916,
"aumUnits": 10942129,
"currency": "IDR",
"isSharia": false,
"isinCode": "IDN000019205",
"aumPeriod": "2026-07-01",
"isBuyable": true,
"managerId": "8",
"typeLabel": "Saham",
"isNewcomer": false,
"buyFeeLabel": "Maks. 2%",
"managerLogo": "https://media.bareksa.com/cms/media/assets/image/2020/02/15693_bnp-paribas-asset-management--square-_70_70_r.png",
"managerName": "BNP Paribas Asset Management, PT",
"minBuyLabel": null,
"riskOneYear": 0.01372,
"sellFeeLabel": "Maks. 1,25%",
"inceptionDate": "1997-10-10",
"minBuyCurrency": null,
"buyFeeMaxPercent": 2,
"custodianFeeLabel": "Maks. 0,25%",
"sellFeeMaxPercent": 1.25,
"switchingFeeLabel": "Maks. 1%",
"managementFeeLabel": "Maks. 2,5%",
"custodianFeeMaxPercent": 0.25,
"switchingFeeMaxPercent": 1,
"managementFeeMaxPercent": 2.5
},
{
"aum": 199149293600,
"nav": 2479.9,
"rar": {
"asOf": "2026-08-20",
"oneYear": -0.37557,
"overall": null,
"tenYear": 0.22917,
"twoYear": -0.05519,
"fiveYear": 0.97679,
"fourYear": 0.25036,
"sixMonth": null,
"inception": null,
"sevenYear": 0.30682,
"threeYear": 0.05469
},
"beta": null,
"code": "AAHESPS",
"name": "BNP Paribas Pesona Syariah",
"type": "saham",
"aumUsd": 11153074.24,
"fundId": "30",
"jensen": null,
"minBuy": null,
"rating": {
"asOf": "2026-07-31",
"oneYear": 2.50382,
"overall": null,
"tenYear": null,
"twoYear": null,
"fiveYear": null,
"fourYear": null,
"sixMonth": null,
"inception": null,
"sevenYear": null,
"threeYear": null
},
"sharpe": {
"asOf": "2026-08-20",
"oneYear": -1.52122,
"overall": null,
"tenYear": -1.32657,
"twoYear": -1.37733,
"fiveYear": -0.75671,
"fourYear": -1.42553,
"sixMonth": null,
"inception": null,
"sevenYear": -1.16829,
"threeYear": -1.46446
},
"navDate": "2026-08-20",
"returns": {
"mtd": 5.745,
"ytd": -7.921,
"oneDay": 1.603,
"oneWeek": 3.322,
"oneYear": -3.71,
"tenYear": -6.834999999999999,
"twoYear": -3.614,
"fiveYear": 12.227,
"oneMonth": 5.222,
"sixMonth": -13.19,
"inception": 147.99,
"threeYear": -3.087,
"threeMonth": 4.041
},
"treynor": null,
"ageYears": 19.304109589041097,
"aumUnits": 84918225,
"currency": "IDR",
"isSharia": true,
"isinCode": "IDN000047107",
"aumPeriod": "2026-07-01",
"isBuyable": true,
"managerId": "8",
"typeLabel": "Saham",
"isNewcomer": false,
"buyFeeLabel": "Maks. 1,5%",
"managerLogo": "https://media.bareksa.com/cms/media/assets/image/2020/02/15693_bnp-paribas-asset-management--square-_70_70_r.png",
"managerName": "BNP Paribas Asset Management, PT",
"minBuyLabel": null,
"riskOneYear": 0.01449,
"sellFeeLabel": "Maks. 1,5%",
"inceptionDate": "2007-05-07",
"minBuyCurrency": null,
"buyFeeMaxPercent": 1.5,
"custodianFeeLabel": "Maks. 0,25%",
"sellFeeMaxPercent": 1.5,
"switchingFeeLabel": "Maks. 1%",
"managementFeeLabel": "Maks. 2%",
"custodianFeeMaxPercent": 0.25,
"switchingFeeMaxPercent": 1,
"managementFeeMaxPercent": 2
}
],
"query": null,
"total": 47,
"sharia": null,
"dataset": "funds",
"hasMore": false,
"nextPage": null,
"provider": "bareksa"
}
```
---
## Bea
**Category:** finance · **Slug:** `bea`
**Detail page:** https://zapi.ink/api/finance/bea
BEA regional income — state and county personal income, from the bulk zips.
**Tags:** finance, bea
### Regional
BEA regional income — state and county personal income, from the bulk zips.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:bea/regional`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `archive` | string | query | no | Regional dataset archive — CAINC1 (annual county and state personal income), sqinc (quarterly state income), CAINC4, CAINC30 and the rest of the CA/SA/SQ family. Default CAINC1. |
| `table` | string | query | no | Table inside the archive, when it holds more than one. Default the first. |
| `geo` | string | query | no | Two-letter state code for the per-state file, or ALL_AREAS for every area in one. Default ALL_AREAS. |
| `area` | string | query | no | Case-insensitive filter over the area name and FIPS code. |
| `line` | number | query | no | Only the rows carrying this LineCode — 1 is total personal income in most tables. |
| `from` | string | query | no | Earliest period — a year for annual archives, 2020Q1 for quarterly ones. |
| `to` | string | query | no | Latest period, same format as `from`. |
| `length` | number | query | no | Rows to return. Default 100, max 2000. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:bea/regional?archive=CAINC1&table=SQINC1&geo=WA&area=Seattle&line=1&from=2020&to=2024&length=50" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:bea/regional?archive=CAINC1&table=SQINC1&geo=WA&area=Seattle&line=1&from=2020&to=2024&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:bea/regional?archive=CAINC1&table=SQINC1&geo=WA&area=Seattle&line=1&from=2020&to=2024&length=50",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": null,
"geo": "ALL_AREAS",
"area": null,
"from": null,
"line": null,
"count": 100,
"entry": "CAINC1__ALL_AREAS_1969_2024.csv",
"items": [
{
"unit": "Thousands of dollars",
"count": 56,
"table": "CAINC1",
"region": null,
"values": [
{
"value": 24897613000,
"period": "2024"
},
{
"value": 23577208000,
"period": "2023"
},
{
"value": 22144814000,
"period": "2022"
},
{
"value": 21484168000,
"period": "2021"
},
{
"value": 19613059000,
"period": "2020"
},
{
"value": 18349584000,
"period": "2019"
},
{
"value": 17514402000,
"period": "2018"
},
{
"value": 16658962000,
"period": "2017"
}
],
"geoFips": "00000",
"geoName": "United States",
"lineCode": 1,
"description": "Personal income (thousands of dollars)",
"latestValue": 24897613000,
"latestPeriod": "2024",
"industryClassification": "..."
},
{
"unit": "Number of persons",
"count": 56,
"table": "CAINC1",
"region": null,
"values": [
{
"value": 340110988,
"period": "2024"
},
{
"value": 336806231,
"period": "2023"
},
{
"value": 334017321,
"period": "2022"
},
{
"value": 332099760,
"period": "2021"
},
{
"value": 331577720,
"period": "2020"
},
{
"value": 330226227,
"period": "2019"
},
{
"value": 328529577,
"period": "2018"
},
{
"value": 326608609,
"period": "2017"
}
],
"geoFips": "00000",
"geoName": "United States",
"lineCode": 2,
"description": "Population (persons) 1/",
"latestValue": 340110988,
"latestPeriod": "2024",
"industryClassification": "..."
},
{
"unit": "Dollars",
"count": 56,
"table": "CAINC1",
"region": null,
"values": [
{
"value": 73204,
"period": "2024"
},
{
"value": 70002,
"period": "2023"
},
{
"value": 66298,
"period": "2022"
},
{
"value": 64692,
"period": "2021"
},
{
"value": 59151,
"period": "2020"
},
{
"value": 55567,
"period": "2019"
},
{
"value": 53311,
"period": "2018"
},
{
"value": 51006,
"period": "2017"
}
],
"geoFips": "00000",
"geoName": "United States",
"lineCode": 3,
"description": "Per capita personal income (dollars) 2/",
"latestValue": 73204,
"latestPeriod": "2024",
"industryClassification": "..."
},
{
"unit": "Thousands of dollars",
"count": 56,
"table": "CAINC1",
"region": "5",
"values": [
{
"value": 295590485,
"period": "2024"
},
{
"value": 279484602,
"period": "2023"
},
{
"value": 262425794,
"period": "2022"
},
{
"value": 255682271,
"period": "2021"
},
{
"value": 230878360,
"period": "2020"
},
{
"value": 215151792,
"period": "2019"
},
{
"value": 205674190,
"period": "2018"
},
{
"value": 197963769,
"period": "2017"
}
],
"geoFips": "01000",
"geoName": "Alabama",
"lineCode": 1,
"description": "Personal income (thousands of dollars)",
"latestValue": 295590485,
"latestPeriod": "2024",
"industryClassification": "..."
},
{
"unit": "Number of persons",
"count": 56,
"table": "CAINC1",
"region": "5",
"values": [
{
"value": 5157699,
"period": "2024"
},
{
"value": 5117673,
"period": "2023"
},
{
"value": 5076181,
"period": "2022"
},
{
"value": 5049196,
"period": "2021"
},
{
"value": 5033094,
"period": "2020"
},
{
"value": 5003778,
"period": "2019"
},
{
"value": 4977088,
"period": "2018"
},
{
"value": 4953096,
"period": "2017"
}
],
"geoFips": "01000",
"geoName": "Alabama",
"lineCode": 2,
"description": "Population (persons) 1/",
"latestValue": 5157699,
"latestPeriod": "2024",
"industryClassification": "..."
},
{
"unit": "Dollars",
"count": 56,
"table": "CAINC1",
"region": "5",
"values": [
{
"value": 57311,
"period": "2024"
},
{
"value": 54612,
"period": "2023"
},
{
"value": 51697,
"period": "2022"
},
{
"value": 50638,
"period": "2021"
},
{
"value": 45872,
"period": "2020"
},
{
"value": 42998,
"period": "2019"
},
{
"value": 41324,
"period": "2018"
},
{
"value": 39968,
"period": "2017"
}
],
"geoFips": "01000",
"geoName": "Alabama",
"lineCode": 3,
"description": "Per capita personal income (dollars) 2/",
"latestValue": 57311,
"latestPeriod": "2024",
"industryClassification": "..."
},
{
"unit": "Thousands of dollars",
"count": 56,
"table": "CAINC1",
"region": "5",
"values": [
{
"value": 3424189,
"period": "2024"
},
{
"value": 3202452,
"period": "2023"
},
{
"value": 2979576,
"period": "2022"
},
{
"value": 2915364,
"period": "2021"
},
{
"value": 2656173,
"period": "2020"
},
{
"value": 2477876,
"period": "2019"
},
{
"value": 2371211,
"period": "2018"
},
{
"value": 2290351,
"period": "2017"
}
],
"geoFips": "01001",
"geoName": "Autauga, AL",
"lineCode": 1,
"description": "Personal income (thousands of dollars)",
"latestValue": 3424189,
"latestPeriod": "2024",
"industryClassification": "..."
},
{
"unit": "Number of persons",
"count": 56,
"table": "CAINC1",
"region": "5",
"values": [
{
"value": 61464,
"period": "2024"
},
{
"value": 60436,
"period": "2023"
},
{
"value": 59736,
"period": "2022"
},
{
"value": 59191,
"period": "2021"
},
{
"value": 58909,
"period": "2020"
},
{
"value": 58251,
"period": "2019"
},
{
"value": 57747,
"period": "2018"
},
{
"value": 57393,
"period": "2017"
}
],
"geoFips": "01001",
"geoName": "Autauga, AL",
"lineCode": 2,
"description": "Population (persons) 1/",
"latestValue": 61464,
"latestPeriod": "2024",
"industryClassification": "..."
}
],
"table": "CAINC1",
"total": 9627,
"tables": [
"CAINC1"
],
"archive": "CAINC1",
"dataset": "regional",
"periods": [
"1969",
"1970",
"1971",
"1972",
"1973",
"1974",
"1975",
"1976"
],
"provider": "bea"
}
```
---
### Series
The BEA's NIPA series register — 10,781 series with their labels, metrics and
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:bea/series`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `query` | string | query | no | Case-insensitive filter over the series code, label and metric. |
| `series` | string | query | no | Exact series codes, comma-separated. Overrides `query`. |
| `table` | string | query | no | Only series that appear on this table. |
| `metric` | string | query | no | Only series whose metric matches, case-insensitive substring. |
| `length` | number | query | no | Series to return. Default 100, max 2000. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:bea/series?query=gross%20domestic%20product&series=A191RL%2CA191RC&table=T10101&metric=Current%20Dollars&length=50" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:bea/series?query=gross%20domestic%20product&series=A191RL%2CA191RC&table=T10101&metric=Current%20Dollars&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:bea/series?query=gross%20domestic%20product&series=A191RL%2CA191RC&table=T10101&metric=Current%20Dollars&length=50",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 46,
"items": [
{
"label": "Gross domestic product",
"metric": "Fisher Quantity Index",
"series": "A191RA",
"parents": [],
"appearsOn": [
{
"line": 1,
"table": "T10103"
},
{
"line": 1,
"table": "T10203"
},
{
"line": 1,
"table": "T10303"
},
{
"line": 1,
"table": "T10403"
},
{
"line": 1,
"table": "T10503"
},
{
"line": 1,
"table": "T10703"
},
{
"line": 1,
"table": "T10803"
}
],
"calculation": "Level",
"defaultScale": 0
},
{
"label": "Gross domestic product",
"metric": "Current Dollars",
"series": "A191RC",
"parents": [
"A001RC",
"A712RC",
"A962RC",
"BB00RC",
"Y695RC"
],
"appearsOn": [
{
"line": 1,
"table": "OECD10205"
},
{
"line": 1,
"table": "T10105"
},
{
"line": 1,
"table": "T10205"
},
{
"line": 1,
"table": "T10305"
},
{
"line": 1,
"table": "T10405"
},
{
"line": 1,
"table": "T10505"
},
{
"line": 1,
"table": "T10705"
},
{
"line": 1,
"table": "T11705"
}
],
"calculation": "Level",
"defaultScale": -6
},
{
"label": "Gross domestic product",
"metric": "Chained Dollar IPDs",
"series": "A191RD",
"parents": [],
"appearsOn": [
{
"line": 1,
"table": "T10109"
}
],
"calculation": "Level",
"defaultScale": 0
},
{
"label": "Gross domestic product",
"metric": "Current Dollar Shares",
"series": "A191RE",
"parents": [],
"appearsOn": [
{
"line": 1,
"table": "T10110"
}
],
"calculation": "Level",
"defaultScale": 0
},
{
"label": "Gross domestic product",
"metric": "Fisher Price Index",
"series": "A191RG",
"parents": [],
"appearsOn": [
{
"line": 1,
"table": "T10104"
},
{
"line": 1,
"table": "T10204"
},
{
"line": 1,
"table": "T10304"
},
{
"line": 1,
"table": "T10404"
},
{
"line": 1,
"table": "T10504"
},
{
"line": 59,
"table": "T10604"
},
{
"line": 1,
"table": "T10704"
}
],
"calculation": "Level",
"defaultScale": 0
},
{
"label": "Gross domestic product",
"metric": "Chained Dollar IPDs",
"series": "A191RI",
"parents": [],
"appearsOn": [
{
"line": 28,
"table": "T10107"
}
],
"calculation": "Percent change, annual rate",
"defaultScale": 0
},
{
"label": "Gross domestic product",
"metric": "Fisher Quantity Index",
"series": "A191RL",
"parents": [],
"appearsOn": [
{
"line": 1,
"table": "T10101"
},
{
"line": 1,
"table": "T10102"
},
{
"line": 1,
"table": "T10201"
},
{
"line": 1,
"table": "T10202"
},
{
"line": 1,
"table": "T10301"
},
{
"line": 1,
"table": "T10401"
},
{
"line": 1,
"table": "T10501"
},
{
"line": 1,
"table": "T10502"
}
],
"calculation": "Percent change, annual rate",
"defaultScale": 0
},
{
"label": "Gross domestic product (GDP)",
"metric": "Fisher Quantity Index",
"series": "A191RO",
"parents": [],
"appearsOn": [
{
"line": 1,
"table": "T10111"
}
],
"calculation": "Percent change, year ago",
"defaultScale": 0
}
],
"query": "gross domestic product",
"table": null,
"total": 46,
"metric": null,
"series": null,
"dataset": "series",
"provider": "bea",
"registered": 10781
}
```
---
### Gdp
US gross domestic product — the GDP cut of the NIPA flat files.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:bea/gdp`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `measure` | enum(level|change|contribution) | query | no | Which cut: level, change, contribution. Default change. |
| `frequency` | enum(A|Q|M) | query | no | A annual, Q quarterly, M monthly. Default Q. Contributions and chained dollars are quarterly and annual only. |
| `from` | string | query | no | Earliest period in the file's own format — 2020 for annual, 2020Q1 for quarterly, 2020M01 for monthly. |
| `to` | string | query | no | Latest period, same format as `from`. |
| `length` | number | query | no | Observations per series, newest first. Default 40, max 20000. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:bea/gdp?measure=change&frequency=Q&from=2020Q1&to=2026Q2&length=12" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:bea/gdp?measure=change&frequency=Q&from=2020Q1&to=2026Q2&length=12", {
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:bea/gdp?measure=change&frequency=Q&from=2020Q1&to=2026Q2&length=12",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": null,
"from": null,
"count": 3,
"items": [
{
"count": 40,
"label": "Gross domestic product",
"total": 317,
"metric": "Fisher Quantity Index",
"series": "A191RL",
"values": [
{
"value": 1.5,
"period": "2026Q2"
},
{
"value": 2.1,
"period": "2026Q1"
},
{
"value": 0.5,
"period": "2025Q4"
},
{
"value": 4.4,
"period": "2025Q3"
},
{
"value": 3.8,
"period": "2025Q2"
},
{
"value": -0.6,
"period": "2025Q1"
},
{
"value": 1.9,
"period": "2024Q4"
},
{
"value": 3.3,
"period": "2024Q3"
}
],
"calculation": "Percent change, annual rate",
"latestValue": 1.5,
"defaultScale": 0,
"latestPeriod": "2026Q2"
},
{
"count": 40,
"label": "Gross domestic product, current dollars",
"total": 317,
"metric": "Current Dollars",
"series": "A191RP",
"values": [
{
"value": 7.9,
"period": "2026Q2"
},
{
"value": 5.8,
"period": "2026Q1"
},
{
"value": 4.2,
"period": "2025Q4"
},
{
"value": 8.3,
"period": "2025Q3"
},
{
"value": 6,
"period": "2025Q2"
},
{
"value": 2.9,
"period": "2025Q1"
},
{
"value": 4.3,
"period": "2024Q4"
},
{
"value": 5.1,
"period": "2024Q3"
}
],
"calculation": "Percent change, annual rate",
"latestValue": 7.9,
"defaultScale": 0,
"latestPeriod": "2026Q2"
},
{
"count": 40,
"label": "Gross domestic product",
"total": 317,
"metric": "Fisher Price Index",
"series": "A191RV",
"values": [
{
"value": 6.2,
"period": "2026Q2"
},
{
"value": 3.6,
"period": "2026Q1"
},
{
"value": 3.7,
"period": "2025Q4"
},
{
"value": 3.8,
"period": "2025Q3"
},
{
"value": 2.1,
"period": "2025Q2"
},
{
"value": 3.6,
"period": "2025Q1"
},
{
"value": 2.4,
"period": "2024Q4"
},
{
"value": 1.8,
"period": "2024Q3"
}
],
"calculation": "Percent change, annual rate",
"latestValue": 6.2,
"defaultScale": 0,
"latestPeriod": "2026Q2"
}
],
"total": 951,
"series": [
"A191RL",
"A191RP",
"A191RV"
],
"dataset": "gdp",
"measure": "change",
"missing": [],
"provider": "bea",
"resolved": [
"A191RL",
"A191RP",
"A191RV"
],
"frequency": "Q",
"truncated": false
}
```
---
### Nipa
Dated observations for any NIPA series, from the BEA's flat files.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:bea/nipa`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `series` | string | query | no | NIPA series codes, comma-separated, up to 25. `series` and `tables` find them. Default A191RL (real GDP, percent change, annual rate). |
| `frequency` | enum(A|Q|M) | query | no | A annual, Q quarterly, M monthly. Default Q. Not every series exists at every frequency. |
| `from` | string | query | no | Earliest period in the file's own format — 2020 for annual, 2020Q1 for quarterly, 2020M01 for monthly. |
| `to` | string | query | no | Latest period, same format as `from`. |
| `length` | number | query | no | Observations per series, newest first. Default 40, max 20000. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:bea/nipa?series=A191RL%2CA191RC&frequency=Q&from=2020Q1&to=2026Q2&length=20" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:bea/nipa?series=A191RL%2CA191RC&frequency=Q&from=2020Q1&to=2026Q2&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:bea/nipa?series=A191RL%2CA191RC&frequency=Q&from=2020Q1&to=2026Q2&length=20",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": null,
"from": null,
"count": 2,
"items": [
{
"count": 40,
"label": "Gross domestic product",
"total": 317,
"metric": "Fisher Quantity Index",
"series": "A191RL",
"values": [
{
"value": 1.5,
"period": "2026Q2"
},
{
"value": 2.1,
"period": "2026Q1"
},
{
"value": 0.5,
"period": "2025Q4"
},
{
"value": 4.4,
"period": "2025Q3"
},
{
"value": 3.8,
"period": "2025Q2"
},
{
"value": -0.6,
"period": "2025Q1"
},
{
"value": 1.9,
"period": "2024Q4"
},
{
"value": 3.3,
"period": "2024Q3"
}
],
"calculation": "Percent change, annual rate",
"latestValue": 1.5,
"defaultScale": 0,
"latestPeriod": "2026Q2"
},
{
"count": 40,
"label": "Gross domestic product",
"total": 318,
"metric": "Current Dollars",
"series": "A191RC",
"values": [
{
"value": 32475210,
"period": "2026Q2"
},
{
"value": 31865721,
"period": "2026Q1"
},
{
"value": 31422526,
"period": "2025Q4"
},
{
"value": 31098027,
"period": "2025Q3"
},
{
"value": 30485729,
"period": "2025Q2"
},
{
"value": 30042113,
"period": "2025Q1"
},
{
"value": 29825182,
"period": "2024Q4"
},
{
"value": 29511664,
"period": "2024Q3"
}
],
"calculation": "Level",
"latestValue": 32475210,
"defaultScale": -6,
"latestPeriod": "2026Q2"
}
],
"total": 635,
"series": [
"A191RL",
"A191RC"
],
"dataset": "nipa",
"missing": [],
"provider": "bea",
"resolved": [
"A191RL",
"A191RC"
],
"frequency": "Q",
"truncated": false
}
```
---
### Tables
The BEA's NIPA table register — the table ids `series` joins against.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:bea/tables`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `query` | string | query | no | Case-insensitive filter over the table id and title. |
| `length` | number | query | no | Tables to return. Default 200, max 1000. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:bea/tables?query=gross%20domestic%20product&length=50" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:bea/tables?query=gross%20domestic%20product&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:bea/tables?query=gross%20domestic%20product&length=50",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 45,
"items": [
{
"table": "T10101",
"title": "Table 1.1.1. Percent Change From Preceding Period in Real Gross Domestic Product"
},
{
"table": "T10102",
"title": "Table 1.1.2. Contributions to Percent Change in Real Gross Domestic Product"
},
{
"table": "T10103",
"title": "Table 1.1.3. Real Gross Domestic Product, Quantity Indexes"
},
{
"table": "T10104",
"title": "Table 1.1.4. Price Indexes for Gross Domestic Product"
},
{
"table": "T10105",
"title": "Table 1.1.5. Gross Domestic Product"
},
{
"table": "T10106",
"title": "Table 1.1.6. Real Gross Domestic Product, Chained Dollars"
},
{
"table": "T10107",
"title": "Table 1.1.7. Percent Change From Preceding Period in Prices for Gross Domestic Product"
},
{
"table": "T10108",
"title": "Table 1.1.8. Contributions to Percent Change in the Gross Domestic Product Price Index"
}
],
"query": "gross domestic product",
"total": 45,
"dataset": "tables",
"provider": "bea"
}
```
---
### Pce
US personal consumption expenditures — the PCE cut of the NIPA flat files.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:bea/pce`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `measure` | enum(level|change|contribution) | query | no | Which cut: level, change, contribution. Default change. |
| `frequency` | enum(A|Q|M) | query | no | A annual, Q quarterly, M monthly. Default Q. Every PCE measure here is published at all three. |
| `from` | string | query | no | Earliest period in the file's own format — 2020 for annual, 2020Q1 for quarterly, 2020M01 for monthly. |
| `to` | string | query | no | Latest period, same format as `from`. |
| `length` | number | query | no | Observations per series, newest first. Default 40, max 20000. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:bea/pce?measure=change&frequency=Q&from=2020Q1&to=2026Q2&length=12" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:bea/pce?measure=change&frequency=Q&from=2020Q1&to=2026Q2&length=12", {
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:bea/pce?measure=change&frequency=Q&from=2020Q1&to=2026Q2&length=12",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": null,
"from": null,
"count": 3,
"items": [
{
"count": 40,
"label": "Personal consumption expenditures",
"total": 317,
"metric": "Fisher Quantity Index",
"series": "DPCERL",
"values": [
{
"value": 3.2,
"period": "2026Q2"
},
{
"value": 0.5,
"period": "2026Q1"
},
{
"value": 1.9,
"period": "2025Q4"
},
{
"value": 3.5,
"period": "2025Q3"
},
{
"value": 2.5,
"period": "2025Q2"
},
{
"value": 0.6,
"period": "2025Q1"
},
{
"value": 3.9,
"period": "2024Q4"
},
{
"value": 4,
"period": "2024Q3"
}
],
"calculation": "Percent change, annual rate",
"latestValue": 3.2,
"defaultScale": 0,
"latestPeriod": "2026Q2"
},
{
"count": 40,
"label": "Personal consumption expenditures",
"total": 317,
"metric": "Fisher Price Index",
"series": "DPCERV",
"values": [
{
"value": 5.1,
"period": "2026Q2"
},
{
"value": 4.6,
"period": "2026Q1"
},
{
"value": 2.9,
"period": "2025Q4"
},
{
"value": 2.8,
"period": "2025Q3"
},
{
"value": 2.1,
"period": "2025Q2"
},
{
"value": 3.4,
"period": "2025Q1"
},
{
"value": 2.5,
"period": "2024Q4"
},
{
"value": 1.7,
"period": "2024Q3"
}
],
"calculation": "Percent change, annual rate",
"latestValue": 5.1,
"defaultScale": 0,
"latestPeriod": "2026Q2"
},
{
"count": 40,
"label": "Personal consumption expenditures (PCE)",
"total": 314,
"metric": "Fisher Quantity Index",
"series": "DPCERO",
"values": [
{
"value": 2.3,
"period": "2026Q2"
},
{
"value": 2.1,
"period": "2026Q1"
},
{
"value": 2.1,
"period": "2025Q4"
},
{
"value": 2.6,
"period": "2025Q3"
},
{
"value": 2.7,
"period": "2025Q2"
},
{
"value": 3.1,
"period": "2025Q1"
},
{
"value": 3.4,
"period": "2024Q4"
},
{
"value": 3.2,
"period": "2024Q3"
}
],
"calculation": "Percent change, year ago",
"latestValue": 2.3,
"defaultScale": 0,
"latestPeriod": "2026Q2"
}
],
"total": 948,
"series": [
"DPCERL",
"DPCERV",
"DPCERO"
],
"dataset": "pce",
"measure": "change",
"missing": [],
"provider": "bea",
"resolved": [
"DPCERL",
"DPCERV",
"DPCERO"
],
"frequency": "Q",
"truncated": false
}
```
---
## Bank Indonesia
**Category:** finance · **Slug:** `bi-kurs`
**Detail page:** https://zapi.ink/api/finance/bi-kurs
Official Indonesian exchange rates — JISDOR, the transaction rate and the banknote rate — plus the BI-Rate and headline inflation.
**Tags:** forex, exchange-rate, indonesia, jisdor, inflation, interest-rate
### JISDOR
The official USD/IDR reference rate, by day.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:bi-kurs/jisdor`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `startDate` | string | query | no | Range start, YYYY-MM-DD. Omit for the latest published rate |
| `endDate` | string | query | no | Range end, YYYY-MM-DD. Defaults to today when a start is given |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:bi-kurs/jisdor?startDate=2026-07-01&endDate=2026-07-31" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:bi-kurs/jisdor?startDate=2026-07-01&endDate=2026-07-31", {
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:bi-kurs/jisdor?startDate=2026-07-01&endDate=2026-07-31",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 23,
"items": [
{
"date": "2026-07-31",
"rate": 18058
},
{
"date": "2026-07-30",
"rate": 18078
},
{
"date": "2026-07-29",
"rate": 18087
},
{
"date": "2026-07-28",
"rate": 18088
},
{
"date": "2026-07-27",
"rate": 17995
},
{
"date": "2026-07-24",
"rate": 17973
},
{
"date": "2026-07-23",
"rate": 17915
},
{
"date": "2026-07-22",
"rate": 17909
}
],
"series": "jisdor",
"source": "bank-indonesia",
"endDate": "2026-07-31",
"currency": "USD",
"startDate": "2026-07-01"
}
```
---
### Transaction rate
Kurs Transaksi BI — the rate used for settlement and tax reporting.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:bi-kurs/transaction`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `date` | string | query | no | Single publication date, YYYY-MM-DD. Omit for the latest |
| `currency` | string | query | no | ISO currency code. Required when requesting a date range |
| `startDate` | string | query | no | Range start, YYYY-MM-DD. Needs a currency |
| `endDate` | string | query | no | Range end, YYYY-MM-DD. Defaults to today |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:bi-kurs/transaction?date=2026-07-31¤cy=USD&startDate=2026-07-01&endDate=2026-07-31" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:bi-kurs/transaction?date=2026-07-31¤cy=USD&startDate=2026-07-01&endDate=2026-07-31", {
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:bi-kurs/transaction?date=2026-07-31¤cy=USD&startDate=2026-07-01&endDate=2026-07-31",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"date": "2026-07-31",
"count": 26,
"items": [
{
"buy": 4897.12,
"date": "2026-07-31",
"sell": 4946.61,
"unit": 1,
"currency": "AED"
},
{
"buy": 12501.39,
"date": "2026-07-31",
"sell": 12628.85,
"unit": 1,
"currency": "AUD"
},
{
"buy": 13925.53,
"date": "2026-07-31",
"sell": 14068.75,
"unit": 1,
"currency": "BND"
},
{
"buy": 12786.19,
"date": "2026-07-31",
"sell": 12917.45,
"unit": 1,
"currency": "CAD"
},
{
"buy": 22003.19,
"date": "2026-07-31",
"sell": 22235.21,
"unit": 1,
"currency": "CHF"
},
{
"buy": 2662.27,
"date": "2026-07-31",
"sell": 2689.18,
"unit": 1,
"currency": "CNH"
},
{
"buy": 2661.83,
"date": "2026-07-31",
"sell": 2688.86,
"unit": 1,
"currency": "CNY"
},
{
"buy": 2752.21,
"date": "2026-07-31",
"sell": 2780.29,
"unit": 1,
"currency": "DKK"
}
],
"series": "transaction",
"source": "bank-indonesia",
"endDate": null,
"currency": null,
"startDate": null
}
```
---
### Banknote rate
Kurs Uang Kertas Asing — the physical cash rate.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:bi-kurs/banknote`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `date` | string | query | no | Single publication date, YYYY-MM-DD. Omit for the latest |
| `currency` | string | query | no | ISO currency code. Required when requesting a date range |
| `startDate` | string | query | no | Range start, YYYY-MM-DD. Needs a currency |
| `endDate` | string | query | no | Range end, YYYY-MM-DD. Defaults to today |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:bi-kurs/banknote?date=2026-07-31¤cy=USD&startDate=2026-07-01&endDate=2026-07-31" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:bi-kurs/banknote?date=2026-07-31¤cy=USD&startDate=2026-07-01&endDate=2026-07-31", {
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:bi-kurs/banknote?date=2026-07-31¤cy=USD&startDate=2026-07-01&endDate=2026-07-31",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"date": "2026-07-31",
"count": 1,
"items": [
{
"buy": 17578,
"date": "2026-07-31",
"sell": 18578,
"unit": 1,
"currency": "USD"
}
],
"series": "banknote",
"source": "bank-indonesia",
"endDate": null,
"currency": "USD",
"startDate": null
}
```
---
### Currencies
Which currencies each rate series carries.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:bi-kurs/currencies`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `series` | enum(all|transaction|banknote) | query | no | Restrict to one rate series. Default all |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:bi-kurs/currencies?series=all" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:bi-kurs/currencies?series=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:bi-kurs/currencies?series=all",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"date": "2026-07-31",
"count": 26,
"items": [
{
"code": "AED",
"name": "UNITED ARAB EMIRATES DIRHAM",
"banknote": true,
"transaction": true
},
{
"code": "AUD",
"name": "AUSTRALIAN DOLLAR",
"banknote": true,
"transaction": true
},
{
"code": "BND",
"name": "BRUNEI DOLLAR",
"banknote": true,
"transaction": true
},
{
"code": "CAD",
"name": "CANADIAN DOLLAR",
"banknote": true,
"transaction": true
},
{
"code": "CHF",
"name": "SWISS FRANC",
"banknote": true,
"transaction": true
},
{
"code": "CNH",
"name": "CHINA YUAN",
"banknote": true,
"transaction": true
},
{
"code": "CNY",
"name": "CHINA YUAN",
"banknote": false,
"transaction": true
},
{
"code": "DKK",
"name": "DANISH KRONE",
"banknote": true,
"transaction": true
}
],
"series": "all",
"source": "bank-indonesia"
}
```
---
### BI-Rate
The policy rate and every decision that changed it.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:bi-kurs/policy-rate`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `count` | number | query | no | Most recent decisions to return. Default 24, max 200 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:bi-kurs/policy-rate?count=24" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:bi-kurs/policy-rate?count=24", {
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:bi-kurs/policy-rate?count=24",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 10,
"items": [
{
"date": "2026-07-22",
"ratePercent": 5.75,
"announcementUrl": "https://www.bi.go.id/id/publikasi/ruang-media/news-release/Pages/sp_2814226.aspx"
},
{
"date": "2026-06-18",
"ratePercent": 5.75,
"announcementUrl": "https://www.bi.go.id/id/publikasi/ruang-media/news-release/Pages/sp_2812626.aspx"
},
{
"date": "2026-06-09",
"ratePercent": 5.5,
"announcementUrl": "https://www.bi.go.id/id/publikasi/ruang-media/news-release/Pages/sp_2811926.aspx"
},
{
"date": "2026-05-20",
"ratePercent": 5.25,
"announcementUrl": "https://www.bi.go.id/id/publikasi/ruang-media/news-release/Pages/sp_2810726.aspx"
},
{
"date": "2026-04-22",
"ratePercent": 4.75,
"announcementUrl": "https://www.bi.go.id/id/publikasi/ruang-media/news-release/Pages/sp_288426.aspx"
},
{
"date": "2026-03-17",
"ratePercent": 4.75,
"announcementUrl": "https://www.bi.go.id/id/publikasi/ruang-media/news-release/Pages/sp_286526.aspx"
},
{
"date": "2026-02-19",
"ratePercent": 4.75,
"announcementUrl": "https://www.bi.go.id/id/publikasi/ruang-media/news-release/Pages/sp_284326.aspx"
},
{
"date": "2026-01-21",
"ratePercent": 4.75,
"announcementUrl": "https://www.bi.go.id/id/publikasi/ruang-media/news-release/Pages/sp_281326.aspx"
}
],
"series": "bi-rate",
"source": "bank-indonesia",
"effectiveDate": "2026-07-22",
"currentRatePercent": 5.75
}
```
---
### Inflation
Indonesian headline inflation, year on year, by month.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:bi-kurs/inflation`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `count` | number | query | no | Most recent months to return. Default 24, max 120 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:bi-kurs/inflation?count=24" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:bi-kurs/inflation?count=24", {
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:bi-kurs/inflation?count=24",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"basis": "year-on-year",
"count": 10,
"items": [
{
"month": "2026-06",
"inflationPercent": 3.34
},
{
"month": "2026-05",
"inflationPercent": 3.08
},
{
"month": "2026-04",
"inflationPercent": 2.42
},
{
"month": "2026-03",
"inflationPercent": 3.48
},
{
"month": "2026-02",
"inflationPercent": 4.76
},
{
"month": "2026-01",
"inflationPercent": 3.55
},
{
"month": "2025-12",
"inflationPercent": 2.92
},
{
"month": "2025-11",
"inflationPercent": 2.72
}
],
"series": "inflation",
"source": "bank-indonesia",
"latestMonth": "2026-06",
"latestPercent": 3.34
}
```
---
## Binance
**Category:** finance · **Slug:** `binance`
**Detail page:** https://zapi.ink/api/finance/binance
Global crypto spot market data — 24h statistics, candles and order book depth from the largest venue.
**Tags:** crypto, exchange, orderbook, klines, usdt
### Ticker
24-hour statistics for one spot pair.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:binance/ticker`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Trading pair. Accepts BTCUSDT, BTC/USDT or btc_usdt |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:binance/ticker?symbol=BTCUSDT" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:binance/ticker?symbol=BTCUSDT", {
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:binance/ticker?symbol=BTCUSDT",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"ask": 72149.62,
"bid": 72149.61,
"low": 66592.3,
"high": 72564.01,
"last": 72149.61,
"open": 66676.28,
"askQty": 1.80702,
"bidQty": 0.32444,
"change": 5473.33,
"symbol": "BTCUSDT",
"exchange": "binance",
"openTime": 1787152673012,
"closeTime": 1787239073012,
"tradeCount": 7028422,
"volumeBase": 45179.29453,
"volumeQuote": 3162142746.4771805,
"changePercent": 8.209,
"previousClose": 66676.28,
"weightedAvgPrice": 69990.97217814
}
```
---
### Tickers
Every spot pair at once, filterable by quote asset.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:binance/tickers`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `quote` | enum(all|USDT|USDC|BTC|ETH|BNB|FDUSD|TRY|EUR) | query | no | Restrict to pairs quoted in this asset. Default USDT |
| `search` | string | query | no | Filter by base asset |
| `sort` | enum(volume|change|symbol) | query | no | Sort key, descending for volume and change. Default volume |
| `count` | number | query | no | Rows to return. Default 100, max 500 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:binance/tickers?quote=USDT&search=btc&sort=volume&count=100" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:binance/tickers?quote=USDT&search=btc&sort=volume&count=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:binance/tickers?quote=USDT&search=btc&sort=volume&count=100",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"sort": "volume",
"count": 100,
"items": [
{
"low": 66346.01,
"base": "BTC",
"high": 72564.01,
"last": 72163.68,
"quote": "USDT",
"change": 5774.27,
"symbol": "BTCUSDT",
"tradeCount": 7037978,
"volumeBase": 45643.70388,
"volumeQuote": 3189585955.6830025,
"changePercent": 8.698
},
{
"low": 1.00011,
"base": "USDC",
"high": 1.00094,
"last": 1.00066,
"quote": "USDT",
"change": 0.00002,
"symbol": "USDCUSDT",
"tradeCount": 960377,
"volumeBase": 2696971601,
"volumeQuote": 2698458404.2704,
"changePercent": 0.002
},
{
"low": 1996.8,
"base": "ETH",
"high": 2333.65,
"last": 2294.16,
"quote": "USDT",
"change": 293.48,
"symbol": "ETHUSDT",
"tradeCount": 7788157,
"volumeBase": 1015554.6422,
"volumeQuote": 2237368991.893833,
"changePercent": 14.669
},
{
"low": 0.99937,
"base": "USD1",
"high": 1.0003,
"last": 1,
"quote": "USDT",
"change": 0.00018,
"symbol": "USD1USDT",
"tradeCount": 702263,
"volumeBase": 715503389,
"volumeQuote": 715273999.02337,
"changePercent": 0.018
},
{
"low": 80.86,
"base": "SOL",
"high": 88.1,
"last": 86.99,
"quote": "USDT",
"change": 5.58,
"symbol": "SOLUSDT",
"tradeCount": 1555604,
"volumeBase": 5004994.67,
"volumeQuote": 425318791.27361,
"changePercent": 6.854
},
{
"low": 1.0382,
"base": "XRP",
"high": 1.2521,
"last": 1.2494,
"quote": "USDT",
"change": 0.2109,
"symbol": "XRPUSDT",
"tradeCount": 1877984,
"volumeBase": 311095671.5,
"volumeQuote": 352737150.28509,
"changePercent": 20.308
}
],
"quote": "USDT",
"total": 734,
"exchange": "binance"
}
```
---
### Klines
OHLCV candles from one minute to one month.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:binance/klines`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Trading pair. Accepts BTCUSDT, BTC/USDT or btc_usdt |
| `interval` | enum(1m|3m|5m|15m|30m|1h|2h|4h|6h|8h|12h|1d|3d|1w|1M) | query | no | Candle size. Default 1d |
| `count` | number | query | no | Number of candles. Default 200, max 1000 |
| `limit` | number | query | no | Alias for count, and wins when both are sent. Max 1000 |
| `startTime` | string | query | no | Oldest candle to return, matched on its open time and inclusive. ISO date or epoch milliseconds |
| `endTime` | string | query | no | Newest candle to return, matched on its open time and inclusive. ISO date or epoch milliseconds |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:binance/klines?symbol=BTCUSDT&interval=1d&count=200&limit=1000&startTime=2024-01-01&endTime=2024-03-01" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:binance/klines?symbol=BTCUSDT&interval=1d&count=200&limit=1000&startTime=2024-01-01&endTime=2024-03-01", {
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:binance/klines?symbol=BTCUSDT&interval=1d&count=200&limit=1000&startTime=2024-01-01&endTime=2024-03-01",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 61,
"symbol": "BTCUSDT",
"candles": [
{
"low": 42180.77,
"date": "2024-01-01T00:00:00.000Z",
"high": 44184.1,
"open": 42283.58,
"close": 44179.55,
"openTime": 1704067200000,
"closeTime": 1704153599999,
"tradeCount": 1114623,
"volumeBase": 27174.29903,
"volumeQuote": 1169995682.0280013
},
{
"low": 44148.34,
"date": "2024-01-02T00:00:00.000Z",
"high": 45879.63,
"open": 44179.55,
"close": 44946.91,
"openTime": 1704153600000,
"closeTime": 1704239999999,
"tradeCount": 2247532,
"volumeBase": 65146.40661,
"volumeQuote": 2944331821.8230762
},
{
"low": 40750,
"date": "2024-01-03T00:00:00.000Z",
"high": 45500,
"open": 44946.91,
"close": 42845.23,
"openTime": 1704240000000,
"closeTime": 1704326399999,
"tradeCount": 2658041,
"volumeBase": 81194.55173,
"volumeQuote": 3507104563.744232
},
{
"low": 42613.77,
"date": "2024-01-04T00:00:00.000Z",
"high": 44729.58,
"open": 42845.23,
"close": 44151.1,
"openTime": 1704326400000,
"closeTime": 1704412799999,
"tradeCount": 1819944,
"volumeBase": 48038.06334,
"volumeQuote": 2095095359.4936347
},
{
"low": 42450,
"date": "2024-01-05T00:00:00.000Z",
"high": 44357.46,
"open": 44151.1,
"close": 44145.11,
"openTime": 1704412800000,
"closeTime": 1704499199999,
"tradeCount": 2064845,
"volumeBase": 48075.25327,
"volumeQuote": 2100953924.3687155
},
{
"low": 43397.05,
"date": "2024-01-06T00:00:00.000Z",
"high": 44214.42,
"open": 44145.12,
"close": 43968.32,
"openTime": 1704499200000,
"closeTime": 1704585599999,
"tradeCount": 956642,
"volumeBase": 17835.06144,
"volumeQuote": 781212883.4916061
}
],
"exchange": "binance",
"interval": "1d"
}
```
---
### Order book
Resting bids and asks for one spot pair.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:binance/depth`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Trading pair. Accepts BTCUSDT, BTC/USDT or btc_usdt |
| `limit` | number | query | no | Levels per side. Default 50, max 500 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:binance/depth?symbol=BTCUSDT&limit=50" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:binance/depth?symbol=BTCUSDT&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:binance/depth?symbol=BTCUSDT&limit=50",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"asks": [
{
"price": 72114.93,
"amount": 0.37809
},
{
"price": 72114.94,
"amount": 0.00016
},
{
"price": 72116.04,
"amount": 0.00008
},
{
"price": 72116.21,
"amount": 0.00007
},
{
"price": 72117.29,
"amount": 0.00016
},
{
"price": 72117.3,
"amount": 0.05873
}
],
"bids": [
{
"price": 72114.92,
"amount": 5.53524
},
{
"price": 72114.91,
"amount": 0.0003
},
{
"price": 72114.9,
"amount": 0.00014
},
{
"price": 72114.28,
"amount": 0.00016
},
{
"price": 72114.27,
"amount": 0.01874
},
{
"price": 72112.98,
"amount": 0.00023
}
],
"spread": 0.01,
"symbol": "BTCUSDT",
"askCount": 50,
"bidCount": 50,
"exchange": "binance"
}
```
---
### Agg Trades
Compressed trades for one spot pair: fills at the same price, from the same
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:binance/agg-trades`
- **Cache TTL:** 5s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Trading pair. Accepts BTCUSDT, BTC/USDT or btc_usdt |
| `count` | number | query | no | Rows to return, newest last. Default 500, max 1000 |
| `startTime` | string | query | no | Window start, inclusive. ISO timestamp or epoch milliseconds |
| `endTime` | string | query | no | Window end, inclusive. ISO timestamp or epoch milliseconds |
| `fromId` | string | query | no | Resume from this aggregate trade id instead of a time window |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:binance/agg-trades?symbol=BTCUSDT&count=500&startTime=2024-01-01T00%3A00%3A00Z&endTime=2024-01-01T01%3A00%3A00Z&fromId=4036984393" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:binance/agg-trades?symbol=BTCUSDT&count=500&startTime=2024-01-01T00%3A00%3A00Z&endTime=2024-01-01T01%3A00%3A00Z&fromId=4036984393", {
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:binance/agg-trades?symbol=BTCUSDT&count=500&startTime=2024-01-01T00%3A00%3A00Z&endTime=2024-01-01T01%3A00%3A00Z&fromId=4036984393",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 200,
"items": [
{
"side": "sell",
"time": 1787184000161,
"price": 69334.78,
"amount": 0.00021,
"timeIso": "2026-08-20T00:00:00.161Z",
"aggTradeId": 4036091185,
"tradeCount": 1,
"amountQuote": 14.5603038,
"lastTradeId": 6584309787,
"firstTradeId": 6584309787,
"isBuyerMaker": true
},
{
"side": "buy",
"time": 1787184000295,
"price": 69334.79,
"amount": 0.00007,
"timeIso": "2026-08-20T00:00:00.295Z",
"aggTradeId": 4036091186,
"tradeCount": 1,
"amountQuote": 4.8534353,
"lastTradeId": 6584309788,
"firstTradeId": 6584309788,
"isBuyerMaker": false
},
{
"side": "buy",
"time": 1787184000346,
"price": 69334.79,
"amount": 0.0004,
"timeIso": "2026-08-20T00:00:00.346Z",
"aggTradeId": 4036091187,
"tradeCount": 1,
"amountQuote": 27.733916,
"lastTradeId": 6584309789,
"firstTradeId": 6584309789,
"isBuyerMaker": false
},
{
"side": "buy",
"time": 1787184000416,
"price": 69334.79,
"amount": 1,
"timeIso": "2026-08-20T00:00:00.416Z",
"aggTradeId": 4036091188,
"tradeCount": 2,
"amountQuote": 69334.79,
"lastTradeId": 6584309791,
"firstTradeId": 6584309790,
"isBuyerMaker": false
},
{
"side": "sell",
"time": 1787184000440,
"price": 69334.78,
"amount": 0.00144,
"timeIso": "2026-08-20T00:00:00.440Z",
"aggTradeId": 4036091189,
"tradeCount": 1,
"amountQuote": 99.8420832,
"lastTradeId": 6584309792,
"firstTradeId": 6584309792,
"isBuyerMaker": true
},
{
"side": "buy",
"time": 1787184000589,
"price": 69334.79,
"amount": 0.006,
"timeIso": "2026-08-20T00:00:00.589Z",
"aggTradeId": 4036091190,
"tradeCount": 2,
"amountQuote": 416.00874,
"lastTradeId": 6584309794,
"firstTradeId": 6584309793,
"isBuyerMaker": false
}
],
"symbol": "BTCUSDT",
"exchange": "binance"
}
```
---
### Avg Price
The venue's own rolling average price for one spot pair — the reference the
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:binance/avg-price`
- **Cache TTL:** 10s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Trading pair. Accepts BTCUSDT, BTC/USDT or btc_usdt |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:binance/avg-price?symbol=BTCUSDT" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:binance/avg-price?symbol=BTCUSDT", {
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:binance/avg-price?symbol=BTCUSDT",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"price": 72259.18437849,
"symbol": "BTCUSDT",
"exchange": "binance",
"closeTime": 1787239013380,
"closeTimeIso": "2026-08-20T15:16:53.380Z",
"windowMinutes": 5
}
```
---
### Book Ticker
Best bid and ask for one spot pair — the top of the book without the depth.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:binance/book-ticker`
- **Cache TTL:** 5s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Trading pair. Accepts BTCUSDT, BTC/USDT or btc_usdt |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:binance/book-ticker?symbol=BTCUSDT" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:binance/book-ticker?symbol=BTCUSDT", {
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:binance/book-ticker?symbol=BTCUSDT",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"ask": 72205.99,
"bid": 72205.98,
"askQty": 0.00021,
"bidQty": 0.43904,
"spread": 0.01,
"symbol": "BTCUSDT",
"exchange": "binance",
"spreadPercent": 0.000014
}
```
---
### Exchange Info
Instrument specifications for spot pairs: tick size, lot size, minimum
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:binance/exchange-info`
- **Cache TTL:** 600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | no | One pair. Accepts BTCUSDT, BTC/USDT or btc_usdt |
| `symbols` | string | query | no | Several pairs, comma separated. Max 100 |
| `quote` | enum(all|USDT|USDC|BTC|ETH|BNB|FDUSD|TRY|EUR) | query | no | Restrict to pairs quoted in this asset when no symbol is given. Default USDT |
| `search` | string | query | no | Filter by base asset |
| `status` | enum(all|trading) | query | no | Keep only tradable pairs, or all listed ones. Default trading |
| `count` | number | query | no | Rows to return. Default 100, max 500 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:binance/exchange-info?symbol=BTCUSDT&symbols=BTCUSDT%2CETHUSDT"e=USDT&search=btc&status=trading&count=100" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:binance/exchange-info?symbol=BTCUSDT&symbols=BTCUSDT%2CETHUSDT"e=USDT&search=btc&status=trading&count=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:binance/exchange-info?symbol=BTCUSDT&symbols=BTCUSDT%2CETHUSDT"e=USDT&search=btc&status=trading&count=100",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 100,
"items": [
{
"base": "0G",
"quote": "USDT",
"maxQty": 92141578,
"minQty": 0.01,
"status": "TRADING",
"symbol": "0GUSDT",
"filters": {
"lotSize": {
"maxQty": 92141578,
"minQty": 0.01,
"stepSize": 0.01
},
"notional": {
"maxNotional": 9000000,
"minNotional": 5,
"avgPriceMins": 5,
"applyMaxToMarket": false,
"applyMinToMarket": true
},
"priceFilter": {
"maxPrice": 1000,
"minPrice": 0.0001,
"tickSize": 0.0001
},
"icebergParts": {
"limit": 100
},
"maxNumOrders": {
"maxNumOrders": 200
},
"marketLotSize": {
"maxQty": 216165.06770833,
"minQty": 0,
"stepSize": 0
},
"trailingDelta": {
"maxTrailingAboveDelta": 2000,
"maxTrailingBelowDelta": 2000,
"minTrailingAboveDelta": 10,
"minTrailingBelowDelta": 10
},
"maxNumAlgoOrders": {
"maxNumAlgoOrders": 5
},
"maxNumOrderLists": {
"maxNumOrderLists": 20
},
"maxNumOrderAmends": {
"maxNumOrderAmends": 10
},
"percentPriceBySide": {
"avgPriceMins": 5,
"askMultiplierUp": 2,
"bidMultiplierUp": 1.1,
"askMultiplierDown": 0.9,
"bidMultiplierDown": 0.5
}
},
"maxPrice": 1000,
"minPrice": 0.0001,
"stepSize": 0.01,
"tickSize": 0.0001,
"ocoAllowed": true,
"opoAllowed": true,
"orderTypes": [
"LIMIT",
"LIMIT_MAKER",
"MARKET",
"STOP_LOSS",
"STOP_LOSS_LIMIT",
"TAKE_PROFIT"
],
"otoAllowed": true,
"maxNotional": 9000000,
"minNotional": 5,
"permissions": [
"SPOT",
"MARGIN"
],
"amendAllowed": true,
"basePrecision": 8,
"icebergAllowed": true,
"quotePrecision": 8,
"allowTrailingStop": true,
"cancelReplaceAllowed": true,
"isSpotTradingAllowed": true,
"quoteAmountPrecision": 8,
"isMarginTradingAllowed": true,
"pegInstructionsAllowed": true,
"baseCommissionPrecision": 8,
"quoteCommissionPrecision": 8,
"selfTradePreventionModes": [
"EXPIRE_TAKER",
"EXPIRE_MAKER",
"EXPIRE_BOTH",
"DECREMENT",
"TRANSFER"
],
"quoteOrderQtyMarketAllowed": true,
"defaultSelfTradePreventionMode": "EXPIRE_MAKER"
},
{
"base": "1000CAT",
"quote": "USDT",
"maxQty": 92141578,
"minQty": 0.1,
"status": "TRADING",
"symbol": "1000CATUSDT",
"filters": {
"lotSize": {
"maxQty": 92141578,
"minQty": 0.1,
"stepSize": 0.1
},
"notional": {
"maxNotional": 9000000,
"minNotional": 1,
"avgPriceMins": 5,
"applyMaxToMarket": false,
"applyMinToMarket": true
},
"priceFilter": {
"maxPrice": 1000,
"minPrice": 0.000001,
"tickSize": 0.000001
},
"icebergParts": {
"limit": 100
},
"maxNumOrders": {
"maxNumOrders": 200
},
"marketLotSize": {
"maxQty": 2165383.17,
"minQty": 0,
"stepSize": 0
},
"trailingDelta": {
"maxTrailingAboveDelta": 2000,
"maxTrailingBelowDelta": 2000,
"minTrailingAboveDelta": 10,
"minTrailingBelowDelta": 10
},
"maxNumAlgoOrders": {
"maxNumAlgoOrders": 5
},
"maxNumOrderLists": {
"maxNumOrderLists": 20
},
"maxNumOrderAmends": {
"maxNumOrderAmends": 10
},
"percentPriceBySide": {
"avgPriceMins": 5,
"askMultiplierUp": 2,
"bidMultiplierUp": 1.1,
"askMultiplierDown": 0.9,
"bidMultiplierDown": 0.5
}
},
"maxPrice": 1000,
"minPrice": 0.000001,
"stepSize": 0.1,
"tickSize": 0.000001,
"ocoAllowed": true,
"opoAllowed": true,
"orderTypes": [
"LIMIT",
"LIMIT_MAKER",
"MARKET",
"STOP_LOSS",
"STOP_LOSS_LIMIT",
"TAKE_PROFIT"
],
"otoAllowed": true,
"maxNotional": 9000000,
"minNotional": 1,
"permissions": [
"SPOT",
"MARGIN"
],
"amendAllowed": true,
"basePrecision": 8,
"icebergAllowed": true,
"quotePrecision": 8,
"allowTrailingStop": true,
"cancelReplaceAllowed": true,
"isSpotTradingAllowed": true,
"quoteAmountPrecision": 8,
"isMarginTradingAllowed": true,
"pegInstructionsAllowed": true,
"baseCommissionPrecision": 8,
"quoteCommissionPrecision": 8,
"selfTradePreventionModes": [
"EXPIRE_TAKER",
"EXPIRE_MAKER",
"EXPIRE_BOTH",
"DECREMENT",
"TRANSFER"
],
"quoteOrderQtyMarketAllowed": true,
"defaultSelfTradePreventionMode": "EXPIRE_MAKER"
},
{
"base": "1000CHEEMS",
"quote": "USDT",
"maxQty": 36348600000,
"minQty": 1,
"status": "TRADING",
"symbol": "1000CHEEMSUSDT",
"filters": {
"lotSize": {
"maxQty": 36348600000,
"minQty": 1,
"stepSize": 1
},
"notional": {
"maxNotional": 9000000,
"minNotional": 1,
"avgPriceMins": 5,
"applyMaxToMarket": false,
"applyMinToMarket": true
},
"priceFilter": {
"maxPrice": 1,
"minPrice": 0.000001,
"tickSize": 0.000001
},
"icebergParts": {
"limit": 100
},
"maxNumOrders": {
"maxNumOrders": 200
},
"marketLotSize": {
"maxQty": 66530920.85,
"minQty": 0,
"stepSize": 0
},
"trailingDelta": {
"maxTrailingAboveDelta": 2000,
"maxTrailingBelowDelta": 2000,
"minTrailingAboveDelta": 10,
"minTrailingBelowDelta": 10
},
"maxNumAlgoOrders": {
"maxNumAlgoOrders": 5
},
"maxNumOrderLists": {
"maxNumOrderLists": 20
},
"maxNumOrderAmends": {
"maxNumOrderAmends": 10
},
"percentPriceBySide": {
"avgPriceMins": 5,
"askMultiplierUp": 2,
"bidMultiplierUp": 1.1,
"askMultiplierDown": 0.9,
"bidMultiplierDown": 0.5
}
},
"maxPrice": 1,
"minPrice": 0.000001,
"stepSize": 1,
"tickSize": 0.000001,
"ocoAllowed": true,
"opoAllowed": true,
"orderTypes": [
"LIMIT",
"LIMIT_MAKER",
"MARKET",
"STOP_LOSS",
"STOP_LOSS_LIMIT",
"TAKE_PROFIT"
],
"otoAllowed": true,
"maxNotional": 9000000,
"minNotional": 1,
"permissions": [
"SPOT",
"MARGIN"
],
"amendAllowed": true,
"basePrecision": 2,
"icebergAllowed": true,
"quotePrecision": 8,
"allowTrailingStop": true,
"cancelReplaceAllowed": true,
"isSpotTradingAllowed": true,
"quoteAmountPrecision": 8,
"isMarginTradingAllowed": true,
"pegInstructionsAllowed": true,
"baseCommissionPrecision": 2,
"quoteCommissionPrecision": 8,
"selfTradePreventionModes": [
"EXPIRE_TAKER",
"EXPIRE_MAKER",
"EXPIRE_BOTH",
"DECREMENT",
"TRANSFER"
],
"quoteOrderQtyMarketAllowed": true,
"defaultSelfTradePreventionMode": "EXPIRE_MAKER"
},
{
"base": "1000SATS",
"quote": "USDT",
"maxQty": 36348600000,
"minQty": 1,
"status": "TRADING",
"symbol": "1000SATSUSDT",
"filters": {
"lotSize": {
"maxQty": 36348600000,
"minQty": 1,
"stepSize": 1
},
"notional": {
"maxNotional": 9000000,
"minNotional": 1,
"avgPriceMins": 5,
"applyMaxToMarket": false,
"applyMinToMarket": true
},
"priceFilter": {
"maxPrice": 1,
"minPrice": 1e-8,
"tickSize": 1e-8
},
"icebergParts": {
"limit": 100
},
"maxNumOrders": {
"maxNumOrders": 200
},
"marketLotSize": {
"maxQty": 1247040905.75,
"minQty": 0,
"stepSize": 0
},
"trailingDelta": {
"maxTrailingAboveDelta": 2000,
"maxTrailingBelowDelta": 2000,
"minTrailingAboveDelta": 10,
"minTrailingBelowDelta": 10
},
"maxNumAlgoOrders": {
"maxNumAlgoOrders": 5
},
"maxNumOrderLists": {
"maxNumOrderLists": 20
},
"maxNumOrderAmends": {
"maxNumOrderAmends": 10
},
"percentPriceBySide": {
"avgPriceMins": 5,
"askMultiplierUp": 2,
"bidMultiplierUp": 1.1,
"askMultiplierDown": 0.9,
"bidMultiplierDown": 0.5
}
},
"maxPrice": 1,
"minPrice": 1e-8,
"stepSize": 1,
"tickSize": 1e-8,
"ocoAllowed": true,
"opoAllowed": true,
"orderTypes": [
"LIMIT",
"LIMIT_MAKER",
"MARKET",
"STOP_LOSS",
"STOP_LOSS_LIMIT",
"TAKE_PROFIT"
],
"otoAllowed": true,
"maxNotional": 9000000,
"minNotional": 1,
"permissions": [
"SPOT",
"MARGIN"
],
"amendAllowed": true,
"basePrecision": 2,
"icebergAllowed": true,
"quotePrecision": 8,
"allowTrailingStop": true,
"cancelReplaceAllowed": true,
"isSpotTradingAllowed": true,
"quoteAmountPrecision": 8,
"isMarginTradingAllowed": true,
"pegInstructionsAllowed": true,
"baseCommissionPrecision": 2,
"quoteCommissionPrecision": 8,
"selfTradePreventionModes": [
"EXPIRE_TAKER",
"EXPIRE_MAKER",
"EXPIRE_BOTH",
"DECREMENT",
"TRANSFER"
],
"quoteOrderQtyMarketAllowed": true,
"defaultSelfTradePreventionMode": "EXPIRE_MAKER"
},
{
"base": "1INCH",
"quote": "USDT",
"maxQty": 900000,
"minQty": 0.1,
"status": "TRADING",
"symbol": "1INCHUSDT",
"filters": {
"lotSize": {
"maxQty": 900000,
"minQty": 0.1,
"stepSize": 0.1
},
"notional": {
"maxNotional": 9000000,
"minNotional": 5,
"avgPriceMins": 5,
"applyMaxToMarket": false,
"applyMinToMarket": true
},
"priceFilter": {
"maxPrice": 1000,
"minPrice": 0.0001,
"tickSize": 0.0001
},
"icebergParts": {
"limit": 100
},
"maxNumOrders": {
"maxNumOrders": 200
},
"marketLotSize": {
"maxQty": 345881.80373443,
"minQty": 0,
"stepSize": 0
},
"trailingDelta": {
"maxTrailingAboveDelta": 2000,
"maxTrailingBelowDelta": 2000,
"minTrailingAboveDelta": 10,
"minTrailingBelowDelta": 10
},
"maxNumAlgoOrders": {
"maxNumAlgoOrders": 5
},
"maxNumOrderLists": {
"maxNumOrderLists": 20
},
"maxNumOrderAmends": {
"maxNumOrderAmends": 10
},
"percentPriceBySide": {
"avgPriceMins": 5,
"askMultiplierUp": 2,
"bidMultiplierUp": 1.1,
"askMultiplierDown": 0.9,
"bidMultiplierDown": 0.5
}
},
"maxPrice": 1000,
"minPrice": 0.0001,
"stepSize": 0.1,
"tickSize": 0.0001,
"ocoAllowed": true,
"opoAllowed": true,
"orderTypes": [
"LIMIT",
"LIMIT_MAKER",
"MARKET",
"STOP_LOSS",
"STOP_LOSS_LIMIT",
"TAKE_PROFIT"
],
"otoAllowed": true,
"maxNotional": 9000000,
"minNotional": 5,
"permissions": [
"SPOT",
"MARGIN"
],
"amendAllowed": true,
"basePrecision": 8,
"icebergAllowed": true,
"quotePrecision": 8,
"allowTrailingStop": true,
"cancelReplaceAllowed": true,
"isSpotTradingAllowed": true,
"quoteAmountPrecision": 8,
"isMarginTradingAllowed": true,
"pegInstructionsAllowed": true,
"baseCommissionPrecision": 8,
"quoteCommissionPrecision": 8,
"selfTradePreventionModes": [
"EXPIRE_TAKER",
"EXPIRE_MAKER",
"EXPIRE_BOTH",
"DECREMENT",
"TRANSFER"
],
"quoteOrderQtyMarketAllowed": true,
"defaultSelfTradePreventionMode": "EXPIRE_MAKER"
},
{
"base": "1MBABYDOGE",
"quote": "USDT",
"maxQty": 36348600000,
"minQty": 1,
"status": "TRADING",
"symbol": "1MBABYDOGEUSDT",
"filters": {
"lotSize": {
"maxQty": 36348600000,
"minQty": 1,
"stepSize": 1
},
"notional": {
"maxNotional": 9000000,
"minNotional": 1,
"avgPriceMins": 5,
"applyMaxToMarket": false,
"applyMinToMarket": true
},
"priceFilter": {
"maxPrice": 1,
"minPrice": 1e-7,
"tickSize": 1e-7
},
"icebergParts": {
"limit": 100
},
"maxNumOrders": {
"maxNumOrders": 200
},
"marketLotSize": {
"maxQty": 28592177.15,
"minQty": 0,
"stepSize": 0
},
"trailingDelta": {
"maxTrailingAboveDelta": 2000,
"maxTrailingBelowDelta": 2000,
"minTrailingAboveDelta": 10,
"minTrailingBelowDelta": 10
},
"maxNumAlgoOrders": {
"maxNumAlgoOrders": 5
},
"maxNumOrderLists": {
"maxNumOrderLists": 20
},
"maxNumOrderAmends": {
"maxNumOrderAmends": 10
},
"percentPriceBySide": {
"avgPriceMins": 5,
"askMultiplierUp": 2,
"bidMultiplierUp": 1.1,
"askMultiplierDown": 0.9,
"bidMultiplierDown": 0.5
}
},
"maxPrice": 1,
"minPrice": 1e-7,
"stepSize": 1,
"tickSize": 1e-7,
"ocoAllowed": true,
"opoAllowed": true,
"orderTypes": [
"LIMIT",
"LIMIT_MAKER",
"MARKET",
"STOP_LOSS",
"STOP_LOSS_LIMIT",
"TAKE_PROFIT"
],
"otoAllowed": true,
"maxNotional": 9000000,
"minNotional": 1,
"permissions": [
"SPOT",
"MARGIN"
],
"amendAllowed": true,
"basePrecision": 2,
"icebergAllowed": true,
"quotePrecision": 8,
"allowTrailingStop": true,
"cancelReplaceAllowed": true,
"isSpotTradingAllowed": true,
"quoteAmountPrecision": 8,
"isMarginTradingAllowed": true,
"pegInstructionsAllowed": true,
"baseCommissionPrecision": 2,
"quoteCommissionPrecision": 8,
"selfTradePreventionModes": [
"EXPIRE_TAKER",
"EXPIRE_MAKER",
"EXPIRE_BOTH",
"DECREMENT",
"TRANSFER"
],
"quoteOrderQtyMarketAllowed": true,
"defaultSelfTradePreventionMode": "EXPIRE_MAKER"
}
],
"quote": "USDT",
"total": 484,
"exchange": "binance",
"rateLimits": [
{
"type": "REQUEST_WEIGHT",
"limit": 6000,
"interval": "MINUTE",
"intervalNum": 1
},
{
"type": "ORDERS",
"limit": 100,
"interval": "SECOND",
"intervalNum": 10
},
{
"type": "ORDERS",
"limit": 200000,
"interval": "DAY",
"intervalNum": 1
},
{
"type": "RAW_REQUESTS",
"limit": 300000,
"interval": "MINUTE",
"intervalNum": 5
}
],
"serverTime": 1787238332343,
"serverTimeIso": "2026-08-20T15:05:32.343Z"
}
```
---
### Ticker Windowed
Rolling-window statistics for one spot pair — the same shape as the 24-hour
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:binance/ticker-windowed`
- **Cache TTL:** 15s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Trading pair. Accepts BTCUSDT, BTC/USDT or btc_usdt |
| `windowSize` | string | query | no | Window length: 1m-59m, 1h-23h or 1d-7d. Default 1d |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:binance/ticker-windowed?symbol=BTCUSDT&windowSize=4h" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:binance/ticker-windowed?symbol=BTCUSDT&windowSize=4h", {
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:binance/ticker-windowed?symbol=BTCUSDT&windowSize=4h",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"low": 71132,
"high": 72564.01,
"last": 72117.99,
"open": 71968.47,
"change": 149.52,
"symbol": "BTCUSDT",
"exchange": "binance",
"openTime": 1787224620000,
"closeTime": 1787239061402,
"tradeCount": 1543516,
"volumeBase": 7298.47648,
"windowSize": "4h",
"openTimeIso": "2026-08-20T11:17:00.000Z",
"volumeQuote": 524344946.5365594,
"closeTimeIso": "2026-08-20T15:17:41.402Z",
"changePercent": 0.208,
"weightedAvgPrice": 71843.06861486
}
```
---
### Time
The venue's own clock, and how far ours has drifted from it.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:binance/time`
**Parameters:**
_No parameters._
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:binance/time" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:binance/time", {
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:binance/time",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"driftMs": 0,
"exchange": "binance",
"serverTime": 1787238365364,
"roundTripMs": 84,
"serverTimeIso": "2026-08-20T15:06:05.364Z"
}
```
---
### Trades
The most recent prints on one spot pair — the raw tape, one row per fill.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:binance/trades`
- **Cache TTL:** 5s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Trading pair. Accepts BTCUSDT, BTC/USDT or btc_usdt |
| `count` | number | query | no | Trades to return, newest last. Default 100, max 1000 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:binance/trades?symbol=BTCUSDT&count=100" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:binance/trades?symbol=BTCUSDT&count=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:binance/trades?symbol=BTCUSDT&count=100",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 100,
"items": [
{
"side": "sell",
"time": 1787239085331,
"price": 72116.14,
"amount": 0.00383,
"timeIso": "2026-08-20T15:18:05.331Z",
"tradeId": 6588632930,
"amountQuote": 276.2048162,
"isBuyerMaker": true
},
{
"side": "sell",
"time": 1787239085331,
"price": 72116.04,
"amount": 0.00008,
"timeIso": "2026-08-20T15:18:05.331Z",
"tradeId": 6588632931,
"amountQuote": 5.7692832,
"isBuyerMaker": true
},
{
"side": "sell",
"time": 1787239085331,
"price": 72116.01,
"amount": 0.00008,
"timeIso": "2026-08-20T15:18:05.331Z",
"tradeId": 6588632932,
"amountQuote": 5.7692808,
"isBuyerMaker": true
},
{
"side": "sell",
"time": 1787239085331,
"price": 72116.01,
"amount": 0.00008,
"timeIso": "2026-08-20T15:18:05.331Z",
"tradeId": 6588632933,
"amountQuote": 5.7692808,
"isBuyerMaker": true
},
{
"side": "sell",
"time": 1787239085331,
"price": 72116.01,
"amount": 0.00008,
"timeIso": "2026-08-20T15:18:05.331Z",
"tradeId": 6588632934,
"amountQuote": 5.7692808,
"isBuyerMaker": true
},
{
"side": "sell",
"time": 1787239085331,
"price": 72116,
"amount": 0.00448,
"timeIso": "2026-08-20T15:18:05.331Z",
"tradeId": 6588632935,
"amountQuote": 323.07968,
"isBuyerMaker": true
}
],
"symbol": "BTCUSDT",
"exchange": "binance"
}
```
---
### UI Klines
Display-optimised candles for one spot pair. Same positional row shape as
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:binance/ui-klines`
- **Cache TTL:** 30s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Trading pair. Accepts BTCUSDT, BTC/USDT or btc_usdt |
| `interval` | enum(1m|3m|5m|15m|30m|1h|2h|4h|6h|8h|12h|1d|3d|1w|1M) | query | no | Candle size. Default 1d |
| `count` | number | query | no | Number of candles. Default 200, max 1000 |
| `startTime` | string | query | no | Oldest candle to return, matched on its open time and inclusive. ISO date or epoch milliseconds |
| `endTime` | string | query | no | Newest candle to return, matched on its open time and inclusive. ISO date or epoch milliseconds |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:binance/ui-klines?symbol=BTCUSDT&interval=1d&count=200&startTime=2024-01-01&endTime=2024-03-01" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:binance/ui-klines?symbol=BTCUSDT&interval=1d&count=200&startTime=2024-01-01&endTime=2024-03-01", {
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:binance/ui-klines?symbol=BTCUSDT&interval=1d&count=200&startTime=2024-01-01&endTime=2024-03-01",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 61,
"symbol": "BTCUSDT",
"candles": [
{
"low": 42180.77,
"date": "2024-01-01T00:00:00.000Z",
"high": 44184.1,
"open": 42283.58,
"close": 44179.55,
"openTime": 1704067200000,
"closeTime": 1704153599999,
"tradeCount": 1114623,
"volumeBase": 27174.29903,
"volumeQuote": 1169995682.0280013
},
{
"low": 44148.34,
"date": "2024-01-02T00:00:00.000Z",
"high": 45879.63,
"open": 44179.55,
"close": 44946.91,
"openTime": 1704153600000,
"closeTime": 1704239999999,
"tradeCount": 2247532,
"volumeBase": 65146.40661,
"volumeQuote": 2944331821.8230762
},
{
"low": 40750,
"date": "2024-01-03T00:00:00.000Z",
"high": 45500,
"open": 44946.91,
"close": 42845.23,
"openTime": 1704240000000,
"closeTime": 1704326399999,
"tradeCount": 2658041,
"volumeBase": 81194.55173,
"volumeQuote": 3507104563.744232
},
{
"low": 42613.77,
"date": "2024-01-04T00:00:00.000Z",
"high": 44729.58,
"open": 42845.23,
"close": 44151.1,
"openTime": 1704326400000,
"closeTime": 1704412799999,
"tradeCount": 1819944,
"volumeBase": 48038.06334,
"volumeQuote": 2095095359.4936347
},
{
"low": 42450,
"date": "2024-01-05T00:00:00.000Z",
"high": 44357.46,
"open": 44151.1,
"close": 44145.11,
"openTime": 1704412800000,
"closeTime": 1704499199999,
"tradeCount": 2064845,
"volumeBase": 48075.25327,
"volumeQuote": 2100953924.3687155
},
{
"low": 43397.05,
"date": "2024-01-06T00:00:00.000Z",
"high": 44214.42,
"open": 44145.12,
"close": 43968.32,
"openTime": 1704499200000,
"closeTime": 1704585599999,
"tradeCount": 956642,
"volumeBase": 17835.06144,
"volumeQuote": 781212883.4916061
}
],
"exchange": "binance",
"interval": "1d"
}
```
---
## Binance Futures
**Category:** finance · **Slug:** `binance-futures`
**Detail page:** https://zapi.ink/api/finance/binance-futures
USD-M perpetual futures market data: funding, premium index, open interest, long/short ratios, candles and depth.
**Tags:** binance, futures, perpetual, funding, open-interest, crypto
### Agg Trades
Compressed trades for one contract: fills at the same price, from the same
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:binance-futures/agg-trades`
- **Cache TTL:** 5s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Futures contract. Accepts BTCUSDT, BTC/USDT, btc_usdt, or a dated contract such as BTCUSDT_260925 |
| `count` | number | query | no | Rows to return, newest last. Default 500, max 1000 |
| `startTime` | string | query | no | Window start, inclusive. Only the last 2 days exist. ISO timestamp or epoch milliseconds |
| `endTime` | string | query | no | Window end, inclusive. ISO timestamp or epoch milliseconds |
| `fromId` | string | query | no | Resume from this aggregate trade id instead of a time window |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:binance-futures/agg-trades?symbol=BTCUSDT&count=500&startTime=2026-08-20T00%3A00%3A00Z&endTime=2026-08-20T01%3A00%3A00Z&fromId=3413731512" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:binance-futures/agg-trades?symbol=BTCUSDT&count=500&startTime=2026-08-20T00%3A00%3A00Z&endTime=2026-08-20T01%3A00%3A00Z&fromId=3413731512", {
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:binance-futures/agg-trades?symbol=BTCUSDT&count=500&startTime=2026-08-20T00%3A00%3A00Z&endTime=2026-08-20T01%3A00%3A00Z&fromId=3413731512",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 500,
"items": [
{
"side": "sell",
"time": 1787475008113,
"price": 76494,
"amount": 0.003,
"timeIso": "2026-08-23T08:50:08.113Z",
"aggTradeId": 3422194533,
"tradeCount": 1,
"amountQuote": 229.482,
"lastTradeId": 8005543997,
"firstTradeId": 8005543997,
"isBuyerMaker": true
},
{
"side": "sell",
"time": 1787475008380,
"price": 76494,
"amount": 0.1,
"timeIso": "2026-08-23T08:50:08.380Z",
"aggTradeId": 3422194534,
"tradeCount": 1,
"amountQuote": 7649.4,
"lastTradeId": 8005543998,
"firstTradeId": 8005543998,
"isBuyerMaker": true
},
{
"side": "buy",
"time": 1787475008621,
"price": 76494.1,
"amount": 0.128,
"timeIso": "2026-08-23T08:50:08.621Z",
"aggTradeId": 3422194535,
"tradeCount": 1,
"amountQuote": 9791.2448,
"lastTradeId": 8005543999,
"firstTradeId": 8005543999,
"isBuyerMaker": false
},
{
"side": "buy",
"time": 1787475008783,
"price": 76494.1,
"amount": 0.001,
"timeIso": "2026-08-23T08:50:08.783Z",
"aggTradeId": 3422194536,
"tradeCount": 1,
"amountQuote": 76.4941,
"lastTradeId": 8005544000,
"firstTradeId": 8005544000,
"isBuyerMaker": false
},
{
"side": "sell",
"time": 1787475009208,
"price": 76494,
"amount": 0.339,
"timeIso": "2026-08-23T08:50:09.208Z",
"aggTradeId": 3422194537,
"tradeCount": 2,
"amountQuote": 25931.466,
"lastTradeId": 8005544002,
"firstTradeId": 8005544001,
"isBuyerMaker": true
},
{
"side": "buy",
"time": 1787475009388,
"price": 76494.1,
"amount": 0.644,
"timeIso": "2026-08-23T08:50:09.388Z",
"aggTradeId": 3422194538,
"tradeCount": 2,
"amountQuote": 49262.2004,
"lastTradeId": 8005544004,
"firstTradeId": 8005544003,
"isBuyerMaker": false
},
{
"side": "sell",
"time": 1787475009411,
"price": 76494,
"amount": 0.001,
"timeIso": "2026-08-23T08:50:09.411Z",
"aggTradeId": 3422194539,
"tradeCount": 1,
"amountQuote": 76.494,
"lastTradeId": 8005544005,
"firstTradeId": 8005544005,
"isBuyerMaker": true
},
{
"side": "sell",
"time": 1787475009555,
"price": 76494,
"amount": 0.001,
"timeIso": "2026-08-23T08:50:09.555Z",
"aggTradeId": 3422194540,
"tradeCount": 1,
"amountQuote": 76.494,
"lastTradeId": 8005544006,
"firstTradeId": 8005544006,
"isBuyerMaker": true
}
],
"symbol": "BTCUSDT",
"exchange": "binance"
}
```
---
### Basis
The gap between a futures contract and its index — the carry a calendar spread
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:binance-futures/basis`
- **Cache TTL:** 60s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `pair` | string | query | yes | Underlying pair, not a contract symbol. Accepts BTCUSDT, BTC/USDT or btc_usdt |
| `contractType` | enum(PERPETUAL|CURRENT_QUARTER|NEXT_QUARTER) | query | no | Which contract to measure against the index. Default PERPETUAL |
| `period` | enum(5m|15m|30m|1h|2h|4h|6h|12h|1d) | query | no | Bucket size. One of 5m, 15m, 30m, 1h, 2h, 4h, 6h, 12h, 1d — the upstream refuses 8h. Default 1d |
| `count` | number | query | no | Rows to return, oldest first. Default 30, max 1000 |
| `startTime` | string | query | no | Window start, inclusive. Only the last 30 days exist. ISO date or epoch milliseconds |
| `endTime` | string | query | no | Window end, inclusive. ISO date or epoch milliseconds |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:binance-futures/basis?pair=BTCUSDT&contractType=PERPETUAL&period=1d&count=30&startTime=2026-08-01&endTime=2026-08-20" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:binance-futures/basis?pair=BTCUSDT&contractType=PERPETUAL&period=1d&count=30&startTime=2026-08-01&endTime=2026-08-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:binance-futures/basis?pair=BTCUSDT&contractType=PERPETUAL&period=1d&count=30&startTime=2026-08-01&endTime=2026-08-20",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"pair": "BTCUSDT",
"count": 30,
"items": [
{
"pair": "BTCUSDT",
"time": 1784851200000,
"basis": -23.30565217,
"timeIso": "2026-07-24T00:00:00.000Z",
"basisRate": -0.0004,
"indexPrice": 65092.90565217,
"contractType": "PERPETUAL",
"futuresPrice": 65069.6,
"basisRatePercent": -0.04,
"annualizedBasisRate": null
},
{
"pair": "BTCUSDT",
"time": 1784937600000,
"basis": -25.11326087,
"timeIso": "2026-07-25T00:00:00.000Z",
"basisRate": -0.0004,
"indexPrice": 64141.61326087,
"contractType": "PERPETUAL",
"futuresPrice": 64116.5,
"basisRatePercent": -0.04,
"annualizedBasisRate": null
},
{
"pair": "BTCUSDT",
"time": 1785024000000,
"basis": -32.31065217,
"timeIso": "2026-07-26T00:00:00.000Z",
"basisRate": -0.0005,
"indexPrice": 64370.31065217,
"contractType": "PERPETUAL",
"futuresPrice": 64338,
"basisRatePercent": -0.05,
"annualizedBasisRate": null
},
{
"pair": "BTCUSDT",
"time": 1785110400000,
"basis": -22.22543478,
"timeIso": "2026-07-27T00:00:00.000Z",
"basisRate": -0.0003,
"indexPrice": 65397.42543478,
"contractType": "PERPETUAL",
"futuresPrice": 65375.2,
"basisRatePercent": -0.03,
"annualizedBasisRate": null
},
{
"pair": "BTCUSDT",
"time": 1785196800000,
"basis": -38.985,
"timeIso": "2026-07-28T00:00:00.000Z",
"basisRate": -0.0006,
"indexPrice": 63759.685,
"contractType": "PERPETUAL",
"futuresPrice": 63720.7,
"basisRatePercent": -0.06,
"annualizedBasisRate": null
},
{
"pair": "BTCUSDT",
"time": 1785283200000,
"basis": -19.45391304,
"timeIso": "2026-07-29T00:00:00.000Z",
"basisRate": -0.0003,
"indexPrice": 63923.05391304,
"contractType": "PERPETUAL",
"futuresPrice": 63903.6,
"basisRatePercent": -0.03,
"annualizedBasisRate": null
},
{
"pair": "BTCUSDT",
"time": 1785369600000,
"basis": -23.42782609,
"timeIso": "2026-07-30T00:00:00.000Z",
"basisRate": -0.0004,
"indexPrice": 63982.32782609,
"contractType": "PERPETUAL",
"futuresPrice": 63958.9,
"basisRatePercent": -0.04,
"annualizedBasisRate": null
},
{
"pair": "BTCUSDT",
"time": 1785456000000,
"basis": -31.32608696,
"timeIso": "2026-07-31T00:00:00.000Z",
"basisRate": -0.0005,
"indexPrice": 64781.32608696,
"contractType": "PERPETUAL",
"futuresPrice": 64750,
"basisRatePercent": -0.05,
"annualizedBasisRate": null
}
],
"period": "1d",
"exchange": "binance",
"contractType": "PERPETUAL"
}
```
---
### Book Ticker
Best bid and ask on one contract — the top of the book without the depth.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:binance-futures/book-ticker`
- **Cache TTL:** 5s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Futures contract. Accepts BTCUSDT, BTC/USDT, btc_usdt, or a dated contract such as BTCUSDT_260925 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:binance-futures/book-ticker?symbol=BTCUSDT" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:binance-futures/book-ticker?symbol=BTCUSDT", {
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:binance-futures/book-ticker?symbol=BTCUSDT",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"ask": 76473.8,
"bid": 76473.7,
"time": 1787475074031,
"askQty": 6.642,
"bidQty": 4.499,
"spread": 0.1,
"symbol": "BTCUSDT",
"timeIso": "2026-08-23T08:51:14.031Z",
"exchange": "binance",
"spreadPercent": 0.000131
}
```
---
### Continuous Klines
OHLCV candles for a continuous contract: one unbroken series across successive
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:binance-futures/continuous-klines`
- **Cache TTL:** 30s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `pair` | string | query | yes | Underlying pair, not a contract symbol. Accepts BTCUSDT, BTC/USDT or btc_usdt |
| `contractType` | enum(PERPETUAL|CURRENT_QUARTER|NEXT_QUARTER|TRADIFI_PERPETUAL) | query | no | Which contract in the series. Default PERPETUAL |
| `interval` | enum(1m|3m|5m|15m|30m|1h|2h|4h|6h|8h|12h|1d|3d|1w|1M) | query | no | Candle size. Default 1d. Unlike spot there is no 1s candle |
| `count` | number | query | no | Number of candles. Default 500, max 1500 — higher than spot's 1000, and 1501 is refused outright |
| `startTime` | string | query | no | Oldest candle to return, matched on its open time and inclusive. ISO date or epoch milliseconds |
| `endTime` | string | query | no | Newest candle to return, matched on its open time and inclusive. ISO date or epoch milliseconds |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:binance-futures/continuous-klines?pair=BTCUSDT&contractType=PERPETUAL&interval=1d&count=500&startTime=2026-01-01&endTime=2026-03-01" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:binance-futures/continuous-klines?pair=BTCUSDT&contractType=PERPETUAL&interval=1d&count=500&startTime=2026-01-01&endTime=2026-03-01", {
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:binance-futures/continuous-klines?pair=BTCUSDT&contractType=PERPETUAL&interval=1d&count=500&startTime=2026-01-01&endTime=2026-03-01",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"pair": "BTCUSDT",
"count": 500,
"candles": [
{
"low": 78935.5,
"date": "2025-04-11T00:00:00.000Z",
"high": 84300,
"open": 79560.3,
"close": 83378.3,
"openTime": 1744329600000,
"closeTime": 1744415999999,
"tradeCount": 4822203,
"volumeBase": 295777.871,
"volumeQuote": 24267636755.0135
},
{
"low": 82756,
"date": "2025-04-12T00:00:00.000Z",
"high": 85884.2,
"open": 83378.3,
"close": 85237.8,
"openTime": 1744416000000,
"closeTime": 1744502399999,
"tradeCount": 2750499,
"volumeBase": 158002.837,
"volumeQuote": 13313650656.6862
},
{
"low": 82991.5,
"date": "2025-04-13T00:00:00.000Z",
"high": 86100,
"open": 85237.9,
"close": 83713.7,
"openTime": 1744502400000,
"closeTime": 1744588799999,
"tradeCount": 3377742,
"volumeBase": 207038.38,
"volumeQuote": 17457667797.3317
},
{
"low": 83630.9,
"date": "2025-04-14T00:00:00.000Z",
"high": 85755,
"open": 83713.8,
"close": 84553.9,
"openTime": 1744588800000,
"closeTime": 1744675199999,
"tradeCount": 3632120,
"volumeBase": 209349.356,
"volumeQuote": 17726843976.2684
},
{
"low": 83560,
"date": "2025-04-15T00:00:00.000Z",
"high": 86443,
"open": 84553.9,
"close": 83608.7,
"openTime": 1744675200000,
"closeTime": 1744761599999,
"tradeCount": 3121181,
"volumeBase": 184522.182,
"volumeQuote": 15709860552.1604
},
{
"low": 83063.9,
"date": "2025-04-16T00:00:00.000Z",
"high": 85493.5,
"open": 83608.6,
"close": 83990,
"openTime": 1744761600000,
"closeTime": 1744847999999,
"tradeCount": 3500261,
"volumeBase": 209441.418,
"volumeQuote": 17600465000.7882
},
{
"low": 83700,
"date": "2025-04-17T00:00:00.000Z",
"high": 85441.5,
"open": 83990.1,
"close": 84915,
"openTime": 1744848000000,
"closeTime": 1744934399999,
"tradeCount": 2398235,
"volumeBase": 141033.195,
"volumeQuote": 11925437240.4436
},
{
"low": 84260,
"date": "2025-04-18T00:00:00.000Z",
"high": 85100,
"open": 84914.9,
"close": 84421,
"openTime": 1744934400000,
"closeTime": 1745020799999,
"tradeCount": 1026255,
"volumeBase": 55218.842,
"volumeQuote": 4669701038.4181
}
],
"exchange": "binance",
"interval": "1d",
"contractType": "PERPETUAL"
}
```
---
### Depth
Order book for one contract — the resting bids and asks behind the quote.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:binance-futures/depth`
- **Cache TTL:** 10s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Futures contract. Accepts BTCUSDT, BTC/USDT, btc_usdt, or a dated contract such as BTCUSDT_260925 |
| `limit` | number | query | no | Levels per side. Default 50, max 1000 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:binance-futures/depth?symbol=BTCUSDT&limit=50" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:binance-futures/depth?symbol=BTCUSDT&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:binance-futures/depth?symbol=BTCUSDT&limit=50",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"asks": [
{
"price": 76473.8,
"amount": 6.643
},
{
"price": 76473.9,
"amount": 0.038
},
{
"price": 76474,
"amount": 0.293
},
{
"price": 76474.1,
"amount": 0.682
},
{
"price": 76474.2,
"amount": 0.002
},
{
"price": 76474.3,
"amount": 0.002
},
{
"price": 76474.5,
"amount": 0.001
},
{
"price": 76474.6,
"amount": 0.031
}
],
"bids": [
{
"price": 76473.7,
"amount": 4.527
},
{
"price": 76473.6,
"amount": 0.003
},
{
"price": 76473.4,
"amount": 0.12
},
{
"price": 76473.1,
"amount": 0.001
},
{
"price": 76473,
"amount": 0.05
},
{
"price": 76472.9,
"amount": 0.002
},
{
"price": 76472.8,
"amount": 0.001
},
{
"price": 76472.7,
"amount": 0.004
}
],
"time": 1787475074835,
"spread": 0.1,
"symbol": "BTCUSDT",
"timeIso": "2026-08-23T08:51:14.835Z",
"askCount": 50,
"bidCount": 50,
"exchange": "binance",
"transactionTime": 1787475074816
}
```
---
### Exchange Info
Instrument specifications for USD-M futures: tick size, lot size, minimum
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:binance-futures/exchange-info`
- **Cache TTL:** 600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | no | One contract. Accepts BTCUSDT, BTC/USDT or a dated contract such as BTCUSDT_260925 |
| `symbols` | string | query | no | Several contracts, comma separated. Max 100 |
| `quote` | enum(all|USDT|USDC|BTC|USD1) | query | no | Restrict to contracts margined in this asset when no symbol is given. Default USDT |
| `contractType` | enum(all|PERPETUAL|CURRENT_QUARTER|NEXT_QUARTER|TRADIFI_PERPETUAL) | query | no | Keep only one kind of contract. Default all |
| `search` | string | query | no | Filter by base asset |
| `status` | enum(all|trading) | query | no | Keep only tradable contracts, or every listed one including SETTLING and PENDING_TRADING. Default trading |
| `count` | number | query | no | Rows to return. Default 100, max 500 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:binance-futures/exchange-info?symbol=BTCUSDT&symbols=BTCUSDT%2CETHUSDT"e=USDT&contractType=PERPETUAL&search=btc&status=trading&count=100" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:binance-futures/exchange-info?symbol=BTCUSDT&symbols=BTCUSDT%2CETHUSDT"e=USDT&contractType=PERPETUAL&search=btc&status=trading&count=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:binance-futures/exchange-info?symbol=BTCUSDT&symbols=BTCUSDT%2CETHUSDT"e=USDT&contractType=PERPETUAL&search=btc&status=trading&count=100",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 1,
"items": [
{
"base": "BTC",
"pair": "BTCUSDT",
"quote": "USDT",
"maxQty": 1000,
"minQty": 0.001,
"status": "TRADING",
"symbol": "BTCUSDT",
"filters": {
"lotSize": {
"maxQty": 1000,
"minQty": 0.001,
"stepSize": 0.001
},
"minNotional": {
"notional": 50
},
"priceFilter": {
"maxPrice": 4529764,
"minPrice": 556.8,
"tickSize": 0.1
},
"maxNumOrders": {
"limit": 200
},
"percentPrice": {
"multiplierUp": 1.05,
"multiplierDown": 0.95,
"multiplierDecimal": 4
},
"marketLotSize": {
"maxQty": 120,
"minQty": 0.001,
"stepSize": 0.001
},
"positionRiskControl": {
"positionControlSide": "NONE"
}
},
"maxPrice": 4529764,
"minPrice": 556.8,
"stepSize": 0.001,
"tickSize": 0.1,
"orderTypes": [
"LIMIT",
"MARKET",
"STOP",
"STOP_MARKET",
"TAKE_PROFIT",
"TAKE_PROFIT_MARKET",
"TRAILING_STOP_MARKET"
],
"marginAsset": "USDT",
"minNotional": 50,
"onboardDate": 1567965300000,
"permissions": [
"GRID",
"COPY",
"DCA",
"PSB"
],
"timeInForce": [
"GTC",
"IOC",
"FOK",
"GTX",
"GTD"
],
"contractType": "PERPETUAL",
"deliveryDate": 4133404800000,
"marketMaxQty": 120,
"marketMinQty": 0.001,
"basePrecision": 8,
"liquidationFee": 0.0125,
"onboardDateIso": "2019-09-08T17:55:00.000Z",
"pricePrecision": 2,
"quotePrecision": 8,
"triggerProtect": 0.05,
"underlyingType": "COIN",
"deliveryDateIso": "2100-12-25T08:00:00.000Z",
"marketTakeBound": 0.05,
"maxMoveOrderLimit": 10000,
"quantityPrecision": 3,
"underlyingSubType": [
"PoW"
],
"maintMarginPercent": 2.5,
"requiredMarginPercent": 5
}
],
"quote": "all",
"total": 1,
"exchange": "binance",
"rateLimits": [
{
"type": "REQUEST_WEIGHT",
"limit": 2400,
"interval": "MINUTE",
"intervalNum": 1
},
{
"type": "ORDERS",
"limit": 1200,
"interval": "MINUTE",
"intervalNum": 1
},
{
"type": "ORDERS",
"limit": 300,
"interval": "SECOND",
"intervalNum": 10
}
],
"serverTime": 1787472010896,
"contractType": "all",
"serverTimeIso": "2026-08-23T08:00:10.896Z"
}
```
---
### Funding Info
The funding RULES rather than the settled rates: how often each contract
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:binance-futures/funding-info`
- **Cache TTL:** 600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | no | One contract. Leave empty to list every contract with custom funding rules |
| `count` | number | query | no | Rows to return. Default 200, max 1000 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:binance-futures/funding-info?symbol=LPTUSDT&count=200" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:binance-futures/funding-info?symbol=LPTUSDT&count=200", {
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:binance-futures/funding-info?symbol=LPTUSDT&count=200",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 1,
"items": [
{
"symbol": "LPTUSDT",
"disclaimer": false,
"updateTime": 1752854309429,
"updateTimeIso": "2025-07-18T15:58:29.429Z",
"fundingRateCap": 0.02,
"fundingRateFloor": -0.02,
"fundingIntervalHours": 4
}
],
"total": 1,
"symbol": "LPTUSDT",
"exchange": "binance"
}
```
---
### Funding Rate
Settled funding history for one contract — what longs actually paid shorts, or
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:binance-futures/funding-rate`
- **Cache TTL:** 60s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Futures contract. Accepts BTCUSDT, BTC/USDT, btc_usdt, or a dated contract such as BTCUSDT_260925 |
| `count` | number | query | no | Settlements to return, oldest first. Default 100, max 1000 — but without startTime the upstream clamps to 500 |
| `startTime` | string | query | no | Window start, inclusive. ISO date or epoch milliseconds |
| `endTime` | string | query | no | Window end, inclusive. ISO date or epoch milliseconds |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:binance-futures/funding-rate?symbol=BTCUSDT&count=100&startTime=2026-01-01&endTime=2026-08-01" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:binance-futures/funding-rate?symbol=BTCUSDT&count=100&startTime=2026-01-01&endTime=2026-08-01", {
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:binance-futures/funding-rate?symbol=BTCUSDT&count=100&startTime=2026-01-01&endTime=2026-08-01",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 100,
"items": [
{
"symbol": "BTCUSDT",
"rateType": "Regular",
"markPrice": 66168.77917391,
"fundingRate": 0.00008926,
"fundingTime": 1784620800000,
"fundingTimeIso": "2026-07-21T08:00:00.000Z",
"fundingRatePercent": 0.008926
},
{
"symbol": "BTCUSDT",
"rateType": "Regular",
"markPrice": 66648.5,
"fundingRate": 0.00001894,
"fundingTime": 1784649600002,
"fundingTimeIso": "2026-07-21T16:00:00.002Z",
"fundingRatePercent": 0.001894
},
{
"symbol": "BTCUSDT",
"rateType": "Regular",
"markPrice": 66522.4,
"fundingRate": 0.00003928,
"fundingTime": 1784678400000,
"fundingTimeIso": "2026-07-22T00:00:00.000Z",
"fundingRatePercent": 0.003928
},
{
"symbol": "BTCUSDT",
"rateType": "Regular",
"markPrice": 65813.4,
"fundingRate": 0.00005448,
"fundingTime": 1784707200000,
"fundingTimeIso": "2026-07-22T08:00:00.000Z",
"fundingRatePercent": 0.005448
},
{
"symbol": "BTCUSDT",
"rateType": "Regular",
"markPrice": 66016.32605797,
"fundingRate": 0.00001443,
"fundingTime": 1784736000001,
"fundingTimeIso": "2026-07-22T16:00:00.001Z",
"fundingRatePercent": 0.001443
},
{
"symbol": "BTCUSDT",
"rateType": "Regular",
"markPrice": 66084.47942754,
"fundingRate": -0.00000343,
"fundingTime": 1784764800000,
"fundingTimeIso": "2026-07-23T00:00:00.000Z",
"fundingRatePercent": -0.000343
},
{
"symbol": "BTCUSDT",
"rateType": "Regular",
"markPrice": 65405.48600725,
"fundingRate": 0.00000271,
"fundingTime": 1784793600000,
"fundingTimeIso": "2026-07-23T08:00:00.000Z",
"fundingRatePercent": 0.000271
},
{
"symbol": "BTCUSDT",
"rateType": "Regular",
"markPrice": 64940.4,
"fundingRate": 0.00008458,
"fundingTime": 1784822400000,
"fundingTimeIso": "2026-07-23T16:00:00.000Z",
"fundingRatePercent": 0.008458
}
],
"symbol": "BTCUSDT",
"exchange": "binance"
}
```
---
### Global Long Short Ratio
The share of ALL accounts holding a long against a short on one contract.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:binance-futures/global-long-short-ratio`
- **Cache TTL:** 60s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Futures contract. Accepts BTCUSDT, BTC/USDT or btc_usdt |
| `period` | enum(5m|15m|30m|1h|2h|4h|6h|12h|1d) | query | no | Bucket size. One of 5m, 15m, 30m, 1h, 2h, 4h, 6h, 12h, 1d — the upstream refuses 8h. Default 1d |
| `count` | number | query | no | Rows to return, oldest first. Default 30, max 1000 |
| `startTime` | string | query | no | Window start, inclusive. Only the last 30 days exist. ISO date or epoch milliseconds |
| `endTime` | string | query | no | Window end, inclusive. ISO date or epoch milliseconds |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:binance-futures/global-long-short-ratio?symbol=BTCUSDT&period=1d&count=30&startTime=2026-08-01&endTime=2026-08-20" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:binance-futures/global-long-short-ratio?symbol=BTCUSDT&period=1d&count=30&startTime=2026-08-01&endTime=2026-08-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:binance-futures/global-long-short-ratio?symbol=BTCUSDT&period=1d&count=30&startTime=2026-08-01&endTime=2026-08-20",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 30,
"items": [
{
"time": 1784937600000,
"symbol": "BTCUSDT",
"timeIso": "2026-07-25T00:00:00.000Z",
"longAccount": 0.6524,
"shortAccount": 0.3476,
"longShortRatio": 1.8769
},
{
"time": 1785024000000,
"symbol": "BTCUSDT",
"timeIso": "2026-07-26T00:00:00.000Z",
"longAccount": 0.6433,
"shortAccount": 0.3567,
"longShortRatio": 1.8035
},
{
"time": 1785110400000,
"symbol": "BTCUSDT",
"timeIso": "2026-07-27T00:00:00.000Z",
"longAccount": 0.6096,
"shortAccount": 0.3904,
"longShortRatio": 1.5615
},
{
"time": 1785196800000,
"symbol": "BTCUSDT",
"timeIso": "2026-07-28T00:00:00.000Z",
"longAccount": 0.6277,
"shortAccount": 0.3723,
"longShortRatio": 1.686
},
{
"time": 1785283200000,
"symbol": "BTCUSDT",
"timeIso": "2026-07-29T00:00:00.000Z",
"longAccount": 0.6341,
"shortAccount": 0.3659,
"longShortRatio": 1.733
},
{
"time": 1785369600000,
"symbol": "BTCUSDT",
"timeIso": "2026-07-30T00:00:00.000Z",
"longAccount": 0.6093,
"shortAccount": 0.3907,
"longShortRatio": 1.5595
},
{
"time": 1785456000000,
"symbol": "BTCUSDT",
"timeIso": "2026-07-31T00:00:00.000Z",
"longAccount": 0.5563,
"shortAccount": 0.4437,
"longShortRatio": 1.2538
},
{
"time": 1785542400000,
"symbol": "BTCUSDT",
"timeIso": "2026-08-01T00:00:00.000Z",
"longAccount": 0.6882,
"shortAccount": 0.3118,
"longShortRatio": 2.2072
}
],
"period": "1d",
"symbol": "BTCUSDT",
"exchange": "binance"
}
```
---
### Index Price Klines
Candles of the INDEX price for a pair — the spot composite the venue computes
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:binance-futures/index-price-klines`
- **Cache TTL:** 30s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `pair` | string | query | yes | Underlying pair, not a contract symbol. Accepts BTCUSDT, BTC/USDT or btc_usdt |
| `interval` | enum(1m|3m|5m|15m|30m|1h|2h|4h|6h|8h|12h|1d|3d|1w|1M) | query | no | Candle size. Default 1d. Unlike spot there is no 1s candle |
| `count` | number | query | no | Number of candles. Default 500, max 1500 — higher than spot's 1000, and 1501 is refused outright |
| `startTime` | string | query | no | Oldest candle to return, matched on its open time and inclusive. ISO date or epoch milliseconds |
| `endTime` | string | query | no | Newest candle to return, matched on its open time and inclusive. ISO date or epoch milliseconds |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:binance-futures/index-price-klines?pair=BTCUSDT&interval=1d&count=500&startTime=2026-01-01&endTime=2026-03-01" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:binance-futures/index-price-klines?pair=BTCUSDT&interval=1d&count=500&startTime=2026-01-01&endTime=2026-03-01", {
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:binance-futures/index-price-klines?pair=BTCUSDT&interval=1d&count=500&startTime=2026-01-01&endTime=2026-03-01",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"pair": "BTCUSDT",
"count": 500,
"candles": [
{
"low": 78974.09688889,
"date": "2025-04-11T00:00:00.000Z",
"high": 84278.24577778,
"open": 79615.004,
"close": 83422.79911111,
"openTime": 1744329600000,
"closeTime": 1744415999999
},
{
"low": 82804.54022222,
"date": "2025-04-12T00:00:00.000Z",
"high": 85902.92977778,
"open": 83422.39977778,
"close": 85277.55311111,
"openTime": 1744416000000,
"closeTime": 1744502399999
},
{
"low": 83045.48222222,
"date": "2025-04-13T00:00:00.000Z",
"high": 86089.66711111,
"open": 85277.55222222,
"close": 83759.04977778,
"openTime": 1744502400000,
"closeTime": 1744588799999
},
{
"low": 83694.11333333,
"date": "2025-04-14T00:00:00.000Z",
"high": 85793.74733333,
"open": 83759.04977778,
"close": 84585.22222222,
"openTime": 1744588800000,
"closeTime": 1744675199999
},
{
"low": 83604.72333333,
"date": "2025-04-15T00:00:00.000Z",
"high": 86460.21022222,
"open": 84585.34155556,
"close": 83646.54222222,
"openTime": 1744675200000,
"closeTime": 1744761599999
},
{
"low": 83114.18422222,
"date": "2025-04-16T00:00:00.000Z",
"high": 85466.54311111,
"open": 83647.18288889,
"close": 84032.31444444,
"openTime": 1744761600000,
"closeTime": 1744847999999
},
{
"low": 83749.20355556,
"date": "2025-04-17T00:00:00.000Z",
"high": 85468.69111111,
"open": 84032.30777778,
"close": 84948.70444444,
"openTime": 1744848000000,
"closeTime": 1744934399999
},
{
"low": 84312.39155556,
"date": "2025-04-18T00:00:00.000Z",
"high": 85127.78377778,
"open": 84949.12444444,
"close": 84472.03422222,
"openTime": 1744934400000,
"closeTime": 1745020799999
}
],
"exchange": "binance",
"interval": "1d"
}
```
---
### Klines
OHLCV candles for one USD-M futures contract — perpetual or dated delivery.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:binance-futures/klines`
- **Cache TTL:** 30s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Futures contract. Accepts BTCUSDT, BTC/USDT, btc_usdt, or a dated contract such as BTCUSDT_260925 |
| `interval` | enum(1m|3m|5m|15m|30m|1h|2h|4h|6h|8h|12h|1d|3d|1w|1M) | query | no | Candle size. Default 1d. Unlike spot there is no 1s candle |
| `count` | number | query | no | Number of candles. Default 500, max 1500 — higher than spot's 1000, and 1501 is refused outright |
| `startTime` | string | query | no | Oldest candle to return, matched on its open time and inclusive. ISO date or epoch milliseconds |
| `endTime` | string | query | no | Newest candle to return, matched on its open time and inclusive. ISO date or epoch milliseconds |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:binance-futures/klines?symbol=BTCUSDT&interval=1d&count=500&startTime=2026-01-01&endTime=2026-03-01" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:binance-futures/klines?symbol=BTCUSDT&interval=1d&count=500&startTime=2026-01-01&endTime=2026-03-01", {
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:binance-futures/klines?symbol=BTCUSDT&interval=1d&count=500&startTime=2026-01-01&endTime=2026-03-01",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 500,
"symbol": "BTCUSDT",
"candles": [
{
"low": 78935.5,
"date": "2025-04-11T00:00:00.000Z",
"high": 84300,
"open": 79560.3,
"close": 83378.3,
"openTime": 1744329600000,
"closeTime": 1744415999999,
"tradeCount": 4822203,
"volumeBase": 295777.871,
"volumeQuote": 24267636755.0135
},
{
"low": 82756,
"date": "2025-04-12T00:00:00.000Z",
"high": 85884.2,
"open": 83378.3,
"close": 85237.8,
"openTime": 1744416000000,
"closeTime": 1744502399999,
"tradeCount": 2750499,
"volumeBase": 158002.837,
"volumeQuote": 13313650656.6862
},
{
"low": 82991.5,
"date": "2025-04-13T00:00:00.000Z",
"high": 86100,
"open": 85237.9,
"close": 83713.7,
"openTime": 1744502400000,
"closeTime": 1744588799999,
"tradeCount": 3377742,
"volumeBase": 207038.38,
"volumeQuote": 17457667797.3317
},
{
"low": 83630.9,
"date": "2025-04-14T00:00:00.000Z",
"high": 85755,
"open": 83713.8,
"close": 84553.9,
"openTime": 1744588800000,
"closeTime": 1744675199999,
"tradeCount": 3632120,
"volumeBase": 209349.356,
"volumeQuote": 17726843976.2684
},
{
"low": 83560,
"date": "2025-04-15T00:00:00.000Z",
"high": 86443,
"open": 84553.9,
"close": 83608.7,
"openTime": 1744675200000,
"closeTime": 1744761599999,
"tradeCount": 3121181,
"volumeBase": 184522.182,
"volumeQuote": 15709860552.1604
},
{
"low": 83063.9,
"date": "2025-04-16T00:00:00.000Z",
"high": 85493.5,
"open": 83608.6,
"close": 83990,
"openTime": 1744761600000,
"closeTime": 1744847999999,
"tradeCount": 3500261,
"volumeBase": 209441.418,
"volumeQuote": 17600465000.7882
},
{
"low": 83700,
"date": "2025-04-17T00:00:00.000Z",
"high": 85441.5,
"open": 83990.1,
"close": 84915,
"openTime": 1744848000000,
"closeTime": 1744934399999,
"tradeCount": 2398235,
"volumeBase": 141033.195,
"volumeQuote": 11925437240.4436
},
{
"low": 84260,
"date": "2025-04-18T00:00:00.000Z",
"high": 85100,
"open": 84914.9,
"close": 84421,
"openTime": 1744934400000,
"closeTime": 1745020799999,
"tradeCount": 1026255,
"volumeBase": 55218.842,
"volumeQuote": 4669701038.4181
}
],
"exchange": "binance",
"interval": "1d"
}
```
---
### Mark Price Klines
Candles of the MARK price for one contract — the price liquidations and
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:binance-futures/mark-price-klines`
- **Cache TTL:** 30s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Futures contract. Accepts BTCUSDT, BTC/USDT, btc_usdt, or a dated contract such as BTCUSDT_260925 |
| `interval` | enum(1m|3m|5m|15m|30m|1h|2h|4h|6h|8h|12h|1d|3d|1w|1M) | query | no | Candle size. Default 1d. Unlike spot there is no 1s candle |
| `count` | number | query | no | Number of candles. Default 500, max 1500 — higher than spot's 1000, and 1501 is refused outright |
| `startTime` | string | query | no | Oldest candle to return, matched on its open time and inclusive. ISO date or epoch milliseconds |
| `endTime` | string | query | no | Newest candle to return, matched on its open time and inclusive. ISO date or epoch milliseconds |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:binance-futures/mark-price-klines?symbol=BTCUSDT&interval=1d&count=500&startTime=2026-01-01&endTime=2026-03-01" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:binance-futures/mark-price-klines?symbol=BTCUSDT&interval=1d&count=500&startTime=2026-01-01&endTime=2026-03-01", {
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:binance-futures/mark-price-klines?symbol=BTCUSDT&interval=1d&count=500&startTime=2026-01-01&endTime=2026-03-01",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 500,
"symbol": "BTCUSDT",
"candles": [
{
"low": 78938.95561481,
"date": "2025-04-11T00:00:00.000Z",
"high": 84261.8,
"open": 79576.11047407,
"close": 83385.7,
"openTime": 1744329600000,
"closeTime": 1744415999999
},
{
"low": 82768.03745926,
"date": "2025-04-12T00:00:00.000Z",
"high": 85878.1,
"open": 83385.7,
"close": 85240.01637778,
"openTime": 1744416000000,
"closeTime": 1744502399999
},
{
"low": 83001.65998519,
"date": "2025-04-13T00:00:00.000Z",
"high": 86081.03407568,
"open": 85240.01548889,
"close": 83714.76418519,
"openTime": 1744502400000,
"closeTime": 1744588799999
},
{
"low": 83661.0582963,
"date": "2025-04-14T00:00:00.000Z",
"high": 85766.06068148,
"open": 83715.61378519,
"close": 84553.8,
"openTime": 1744588800000,
"closeTime": 1744675199999
},
{
"low": 83565.2,
"date": "2025-04-15T00:00:00.000Z",
"high": 86443,
"open": 84553.9,
"close": 83608.6,
"openTime": 1744675200000,
"closeTime": 1744761599999
},
{
"low": 83070.324,
"date": "2025-04-16T00:00:00.000Z",
"high": 85442.5,
"open": 83608.7,
"close": 83994.1836,
"openTime": 1744761600000,
"closeTime": 1744847999999
},
{
"low": 83711.59946667,
"date": "2025-04-17T00:00:00.000Z",
"high": 85441.5,
"open": 83994.1836,
"close": 84916.10982222,
"openTime": 1744848000000,
"closeTime": 1744934399999
},
{
"low": 84277.4,
"date": "2025-04-18T00:00:00.000Z",
"high": 85099.9,
"open": 84916.10982222,
"close": 84429.71837548,
"openTime": 1744934400000,
"closeTime": 1745020799999
}
],
"exchange": "binance",
"interval": "1d"
}
```
---
### Open Interest Hist
Open interest sampled on a fixed bucket — the size of the outstanding position
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:binance-futures/open-interest-hist`
- **Cache TTL:** 60s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Futures contract. Accepts BTCUSDT, BTC/USDT or btc_usdt |
| `period` | enum(5m|15m|30m|1h|2h|4h|6h|12h|1d) | query | no | Bucket size. One of 5m, 15m, 30m, 1h, 2h, 4h, 6h, 12h, 1d — the upstream refuses 8h. Default 1d |
| `count` | number | query | no | Rows to return, oldest first. Default 30, max 1000 |
| `startTime` | string | query | no | Window start, inclusive. Only the last 30 days exist. ISO date or epoch milliseconds |
| `endTime` | string | query | no | Window end, inclusive. ISO date or epoch milliseconds |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:binance-futures/open-interest-hist?symbol=BTCUSDT&period=1d&count=30&startTime=2026-08-01&endTime=2026-08-20" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:binance-futures/open-interest-hist?symbol=BTCUSDT&period=1d&count=30&startTime=2026-08-01&endTime=2026-08-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:binance-futures/open-interest-hist?symbol=BTCUSDT&period=1d&count=30&startTime=2026-08-01&endTime=2026-08-20",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 30,
"items": [
{
"time": 1784937600000,
"symbol": "BTCUSDT",
"timeIso": "2026-07-25T00:00:00.000Z",
"openInterest": 106114.818,
"circulatingSupply": 20060368,
"openInterestValue": 6803700116.8152
},
{
"time": 1785024000000,
"symbol": "BTCUSDT",
"timeIso": "2026-07-26T00:00:00.000Z",
"openInterest": 107509,
"circulatingSupply": 20060868,
"openInterestValue": 6917476416.904509
},
{
"time": 1785110400000,
"symbol": "BTCUSDT",
"timeIso": "2026-07-27T00:00:00.000Z",
"openInterest": 104354.198,
"circulatingSupply": 20061281,
"openInterestValue": 6821873937.9154
},
{
"time": 1785196800000,
"symbol": "BTCUSDT",
"timeIso": "2026-07-28T00:00:00.000Z",
"openInterest": 105602.91,
"circulatingSupply": 20061743,
"openInterestValue": 6729450397.131
},
{
"time": 1785283200000,
"symbol": "BTCUSDT",
"timeIso": "2026-07-29T00:00:00.000Z",
"openInterest": 103253.297,
"circulatingSupply": 20062184,
"openInterestValue": 6598257390.1692
},
{
"time": 1785369600000,
"symbol": "BTCUSDT",
"timeIso": "2026-07-30T00:00:00.000Z",
"openInterest": 104348.71,
"circulatingSupply": 20062581,
"openInterestValue": 6674049577.761
},
{
"time": 1785456000000,
"symbol": "BTCUSDT",
"timeIso": "2026-07-31T00:00:00.000Z",
"openInterest": 106595.936,
"circulatingSupply": 20063006,
"openInterestValue": 6902141264.728566
},
{
"time": 1785542400000,
"symbol": "BTCUSDT",
"timeIso": "2026-08-01T00:00:00.000Z",
"openInterest": 109523.589,
"circulatingSupply": 20063506,
"openInterestValue": 6884630899.8222
}
],
"period": "1d",
"symbol": "BTCUSDT",
"exchange": "binance"
}
```
---
### Open Interest
Open interest on one contract right now: how many contracts are outstanding,
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:binance-futures/open-interest`
- **Cache TTL:** 5s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Futures contract. Accepts BTCUSDT, BTC/USDT, btc_usdt, or a dated contract such as BTCUSDT_260925 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:binance-futures/open-interest?symbol=BTCUSDT" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:binance-futures/open-interest?symbol=BTCUSDT", {
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:binance-futures/open-interest?symbol=BTCUSDT",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"time": 1787475070104,
"symbol": "BTCUSDT",
"timeIso": "2026-08-23T08:51:10.104Z",
"exchange": "binance",
"openInterest": 107311.42
}
```
---
### Premium Index
Mark price and index price for one contract, with the funding rate the next
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:binance-futures/premium-index`
- **Cache TTL:** 5s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Futures contract. Accepts BTCUSDT, BTC/USDT, btc_usdt, or a dated contract such as BTCUSDT_260925 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:binance-futures/premium-index?symbol=BTCUSDT" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:binance-futures/premium-index?symbol=BTCUSDT", {
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:binance-futures/premium-index?symbol=BTCUSDT",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"time": 1787475072000,
"symbol": "BTCUSDT",
"timeIso": "2026-08-23T08:51:12.000Z",
"exchange": "binance",
"markPrice": 76475.84468116,
"indexPrice": 76472.33521739,
"interestRate": 0.0001,
"lastFundingRate": 0.0001,
"nextFundingTime": 1787500800000,
"nextFundingTimeIso": "2026-08-23T16:00:00.000Z",
"estimatedSettlePrice": 76370.0751465,
"lastFundingRatePercent": 0.01
}
```
---
### Taker Long Short Ratio
Taker flow on one contract: how much volume crossed the spread to buy against
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:binance-futures/taker-long-short-ratio`
- **Cache TTL:** 60s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Futures contract. Accepts BTCUSDT, BTC/USDT or btc_usdt |
| `period` | enum(5m|15m|30m|1h|2h|4h|6h|12h|1d) | query | no | Bucket size. One of 5m, 15m, 30m, 1h, 2h, 4h, 6h, 12h, 1d — the upstream refuses 8h. Default 1d |
| `count` | number | query | no | Rows to return, oldest first. Default 30, max 1000 |
| `startTime` | string | query | no | Window start, inclusive. Only the last 30 days exist. ISO date or epoch milliseconds |
| `endTime` | string | query | no | Window end, inclusive. ISO date or epoch milliseconds |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:binance-futures/taker-long-short-ratio?symbol=BTCUSDT&period=1d&count=30&startTime=2026-08-01&endTime=2026-08-20" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:binance-futures/taker-long-short-ratio?symbol=BTCUSDT&period=1d&count=30&startTime=2026-08-01&endTime=2026-08-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:binance-futures/taker-long-short-ratio?symbol=BTCUSDT&period=1d&count=30&startTime=2026-08-01&endTime=2026-08-20",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 30,
"items": [
{
"time": 1784851200000,
"timeIso": "2026-07-24T00:00:00.000Z",
"buyVolume": 72365.786,
"sellVolume": 75171.688,
"buySellRatio": 0.9627
},
{
"time": 1784937600000,
"timeIso": "2026-07-25T00:00:00.000Z",
"buyVolume": 21283.36,
"sellVolume": 24964.274,
"buySellRatio": 0.8526
},
{
"time": 1785024000000,
"timeIso": "2026-07-26T00:00:00.000Z",
"buyVolume": 34020.143,
"sellVolume": 31743.025,
"buySellRatio": 1.0717
},
{
"time": 1785110400000,
"timeIso": "2026-07-27T00:00:00.000Z",
"buyVolume": 70010.867,
"sellVolume": 77820.866,
"buySellRatio": 0.8996
},
{
"time": 1785196800000,
"timeIso": "2026-07-28T00:00:00.000Z",
"buyVolume": 72733.525,
"sellVolume": 71540.337,
"buySellRatio": 1.0167
},
{
"time": 1785283200000,
"timeIso": "2026-07-29T00:00:00.000Z",
"buyVolume": 90771.593,
"sellVolume": 89204.709,
"buySellRatio": 1.0176
},
{
"time": 1785369600000,
"timeIso": "2026-07-30T00:00:00.000Z",
"buyVolume": 58513.207,
"sellVolume": 54342.525,
"buySellRatio": 1.0767
},
{
"time": 1785456000000,
"timeIso": "2026-07-31T00:00:00.000Z",
"buyVolume": 87864.89,
"sellVolume": 87100.045,
"buySellRatio": 1.0088
}
],
"period": "1d",
"symbol": "BTCUSDT",
"exchange": "binance"
}
```
---
### Ticker 24hr
Rolling 24-hour statistics for one contract.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:binance-futures/ticker-24hr`
- **Cache TTL:** 15s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Futures contract. Accepts BTCUSDT, BTC/USDT, btc_usdt, or a dated contract such as BTCUSDT_260925 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:binance-futures/ticker-24hr?symbol=BTCUSDT" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:binance-futures/ticker-24hr?symbol=BTCUSDT", {
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:binance-futures/ticker-24hr?symbol=BTCUSDT",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"low": 75588,
"high": 77590.6,
"last": 76479.1,
"open": 77189,
"change": -709.9,
"symbol": "BTCUSDT",
"lastQty": 0.011,
"exchange": "binance",
"openTime": 1787388600000,
"closeTime": 1787475059597,
"tradeCount": 2933634,
"volumeBase": 113396.455,
"lastTradeId": 8005545136,
"volumeQuote": 8701896003.51,
"firstTradeId": 8002597949,
"changePercent": -0.92,
"weightedAvgPrice": 76738.7
}
```
---
### Top Long Short Account Ratio
The same headcount as the global series, restricted to the largest accounts
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:binance-futures/top-long-short-account-ratio`
- **Cache TTL:** 60s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Futures contract. Accepts BTCUSDT, BTC/USDT or btc_usdt |
| `period` | enum(5m|15m|30m|1h|2h|4h|6h|12h|1d) | query | no | Bucket size. One of 5m, 15m, 30m, 1h, 2h, 4h, 6h, 12h, 1d — the upstream refuses 8h. Default 1d |
| `count` | number | query | no | Rows to return, oldest first. Default 30, max 1000 |
| `startTime` | string | query | no | Window start, inclusive. Only the last 30 days exist. ISO date or epoch milliseconds |
| `endTime` | string | query | no | Window end, inclusive. ISO date or epoch milliseconds |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:binance-futures/top-long-short-account-ratio?symbol=BTCUSDT&period=1d&count=30&startTime=2026-08-01&endTime=2026-08-20" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:binance-futures/top-long-short-account-ratio?symbol=BTCUSDT&period=1d&count=30&startTime=2026-08-01&endTime=2026-08-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:binance-futures/top-long-short-account-ratio?symbol=BTCUSDT&period=1d&count=30&startTime=2026-08-01&endTime=2026-08-20",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 30,
"items": [
{
"time": 1784937600000,
"symbol": "BTCUSDT",
"timeIso": "2026-07-25T00:00:00.000Z",
"longAccount": 0.6695,
"shortAccount": 0.3305,
"longShortRatio": 2.0257
},
{
"time": 1785024000000,
"symbol": "BTCUSDT",
"timeIso": "2026-07-26T00:00:00.000Z",
"longAccount": 0.6538,
"shortAccount": 0.3462,
"longShortRatio": 1.8885
},
{
"time": 1785110400000,
"symbol": "BTCUSDT",
"timeIso": "2026-07-27T00:00:00.000Z",
"longAccount": 0.6207,
"shortAccount": 0.3793,
"longShortRatio": 1.6364
},
{
"time": 1785196800000,
"symbol": "BTCUSDT",
"timeIso": "2026-07-28T00:00:00.000Z",
"longAccount": 0.6516,
"shortAccount": 0.3484,
"longShortRatio": 1.8703
},
{
"time": 1785283200000,
"symbol": "BTCUSDT",
"timeIso": "2026-07-29T00:00:00.000Z",
"longAccount": 0.646,
"shortAccount": 0.354,
"longShortRatio": 1.8249
},
{
"time": 1785369600000,
"symbol": "BTCUSDT",
"timeIso": "2026-07-30T00:00:00.000Z",
"longAccount": 0.6266,
"shortAccount": 0.3734,
"longShortRatio": 1.6781
},
{
"time": 1785456000000,
"symbol": "BTCUSDT",
"timeIso": "2026-07-31T00:00:00.000Z",
"longAccount": 0.5734,
"shortAccount": 0.4266,
"longShortRatio": 1.3441
},
{
"time": 1785542400000,
"symbol": "BTCUSDT",
"timeIso": "2026-08-01T00:00:00.000Z",
"longAccount": 0.7031,
"shortAccount": 0.2969,
"longShortRatio": 2.3681
}
],
"period": "1d",
"symbol": "BTCUSDT",
"exchange": "binance"
}
```
---
### Top Long Short Position Ratio
The largest accounts' positioning weighted by POSITION rather than by head:
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:binance-futures/top-long-short-position-ratio`
- **Cache TTL:** 60s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Futures contract. Accepts BTCUSDT, BTC/USDT or btc_usdt |
| `period` | enum(5m|15m|30m|1h|2h|4h|6h|12h|1d) | query | no | Bucket size. One of 5m, 15m, 30m, 1h, 2h, 4h, 6h, 12h, 1d — the upstream refuses 8h. Default 1d |
| `count` | number | query | no | Rows to return, oldest first. Default 30, max 1000 |
| `startTime` | string | query | no | Window start, inclusive. Only the last 30 days exist. ISO date or epoch milliseconds |
| `endTime` | string | query | no | Window end, inclusive. ISO date or epoch milliseconds |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:binance-futures/top-long-short-position-ratio?symbol=BTCUSDT&period=1d&count=30&startTime=2026-08-01&endTime=2026-08-20" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:binance-futures/top-long-short-position-ratio?symbol=BTCUSDT&period=1d&count=30&startTime=2026-08-01&endTime=2026-08-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:binance-futures/top-long-short-position-ratio?symbol=BTCUSDT&period=1d&count=30&startTime=2026-08-01&endTime=2026-08-20",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 30,
"items": [
{
"time": 1784937600000,
"symbol": "BTCUSDT",
"timeIso": "2026-07-25T00:00:00.000Z",
"longAccount": 0.624,
"shortAccount": 0.376,
"longShortRatio": 1.6599
},
{
"time": 1785024000000,
"symbol": "BTCUSDT",
"timeIso": "2026-07-26T00:00:00.000Z",
"longAccount": 0.6181,
"shortAccount": 0.3819,
"longShortRatio": 1.6188
},
{
"time": 1785110400000,
"symbol": "BTCUSDT",
"timeIso": "2026-07-27T00:00:00.000Z",
"longAccount": 0.6189,
"shortAccount": 0.3811,
"longShortRatio": 1.6242
},
{
"time": 1785196800000,
"symbol": "BTCUSDT",
"timeIso": "2026-07-28T00:00:00.000Z",
"longAccount": 0.6114,
"shortAccount": 0.3886,
"longShortRatio": 1.5734
},
{
"time": 1785283200000,
"symbol": "BTCUSDT",
"timeIso": "2026-07-29T00:00:00.000Z",
"longAccount": 0.6205,
"shortAccount": 0.3795,
"longShortRatio": 1.635
},
{
"time": 1785369600000,
"symbol": "BTCUSDT",
"timeIso": "2026-07-30T00:00:00.000Z",
"longAccount": 0.613,
"shortAccount": 0.387,
"longShortRatio": 1.5839
},
{
"time": 1785456000000,
"symbol": "BTCUSDT",
"timeIso": "2026-07-31T00:00:00.000Z",
"longAccount": 0.5994,
"shortAccount": 0.4006,
"longShortRatio": 1.496
},
{
"time": 1785542400000,
"symbol": "BTCUSDT",
"timeIso": "2026-08-01T00:00:00.000Z",
"longAccount": 0.6165,
"shortAccount": 0.3835,
"longShortRatio": 1.6072
}
],
"period": "1d",
"symbol": "BTCUSDT",
"exchange": "binance"
}
```
---
## Binance Vision
**Category:** finance · **Slug:** `binance-vision`
**Detail page:** https://zapi.ink/api/finance/binance-vision
Binance's public bulk archive: klines, 5-minute open-interest and long/short metrics, funding, book depth and liquidations, back to 2017.
**Tags:** binance, crypto, klines, futures, archive, ohlcv
### Agg Trades
Aggregated trades — one row per run of same-side fills at one price. A BTCUSDT
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:binance-vision/agg-trades`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Archive symbol, spelled as Binance spells it (BTCUSD_PERP for coin-margined). |
| `date` | string | query | yes | YYYY-MM-DD for a daily archive, YYYY-MM for a monthly one. Futures run from 2019-12-31 and spot from 2017-08-17. |
| `market` | enum(um|spot|cm) | query | no | um (USD-margined futures), spot, cm (coin-margined futures). Default um. |
| `page` | number | query | no | Page of rows. Default 1. |
| `limit` | number | query | no | Rows per page. Default 10000, max 50000. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:binance-vision/agg-trades?symbol=BTCUSDT&date=2026-08-18&market=um&page=1&limit=10000" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:binance-vision/agg-trades?symbol=BTCUSDT&date=2026-08-18&market=um&page=1&limit=10000", {
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:binance-vision/agg-trades?symbol=BTCUSDT&date=2026-08-18&market=um&page=1&limit=10000",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"date": "2026-08-18",
"page": 1,
"count": 10000,
"items": [
{
"price": 64504.1,
"quantity": 0.026,
"aggTradeId": 3409890025,
"isBestMatch": null,
"lastTradeId": 7976144183,
"firstTradeId": 7976144181,
"isBuyerMaker": true,
"transactTime": 1787011200015,
"transactTimeIso": "2026-08-18T00:00:00.015Z"
},
{
"price": 64504.2,
"quantity": 0.078,
"aggTradeId": 3409890026,
"isBestMatch": null,
"lastTradeId": 7976144187,
"firstTradeId": 7976144184,
"isBuyerMaker": false,
"transactTime": 1787011200092,
"transactTimeIso": "2026-08-18T00:00:00.092Z"
},
{
"price": 64504.2,
"quantity": 1.713,
"aggTradeId": 3409890027,
"isBestMatch": null,
"lastTradeId": 7976144201,
"firstTradeId": 7976144188,
"isBuyerMaker": false,
"transactTime": 1787011200206,
"transactTimeIso": "2026-08-18T00:00:00.206Z"
},
{
"price": 64504.1,
"quantity": 0.007,
"aggTradeId": 3409890028,
"isBestMatch": null,
"lastTradeId": 7976144202,
"firstTradeId": 7976144202,
"isBuyerMaker": true,
"transactTime": 1787011200247,
"transactTimeIso": "2026-08-18T00:00:00.247Z"
},
{
"price": 64504.2,
"quantity": 0.946,
"aggTradeId": 3409890029,
"isBestMatch": null,
"lastTradeId": 7976144208,
"firstTradeId": 7976144203,
"isBuyerMaker": false,
"transactTime": 1787011200326,
"transactTimeIso": "2026-08-18T00:00:00.326Z"
},
{
"price": 64504.1,
"quantity": 0.012,
"aggTradeId": 3409890030,
"isBestMatch": null,
"lastTradeId": 7976144209,
"firstTradeId": 7976144209,
"isBuyerMaker": true,
"transactTime": 1787011200347,
"transactTimeIso": "2026-08-18T00:00:00.347Z"
}
],
"total": 545233,
"market": "um",
"period": "daily",
"symbol": "BTCUSDT",
"dataset": "agg-trades",
"hasMore": true,
"checksum": {
"sha256": "0c1e12cf9577020702f824146734914271937f7b3c332ef13f5b7e44df246258",
"verified": true
},
"nextPage": 2,
"provider": "binance-vision",
"timestampUnit": "ms"
}
```
---
### Book Depth
Order-book depth sampled every 30 seconds across twelve price bands, one UTC day
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:binance-vision/book-depth`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Futures symbol, spelled as Binance spells it (BTCUSD_PERP for coin-margined). |
| `date` | string | query | yes | UTC day, YYYY-MM-DD. Published from 2023-01-01 to T-1, with no file for 2023-02-08, 2023-02-09 or 2024-04-18. |
| `market` | enum(um|cm) | query | no | um (USD-margined futures), cm (coin-margined futures). Default um. |
| `percentage` | number | query | no | Keep one band only. Bands present: -5, -4, -3, -2, -1, -0.2, 0.2, 1, 2, 3, 4, 5. |
| `page` | number | query | no | Page of rows. Default 1. |
| `limit` | number | query | no | Rows per page. Default 2880, max 10000. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:binance-vision/book-depth?symbol=BTCUSDT&date=2026-08-18&market=um&percentage=0.2&page=1&limit=2880" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:binance-vision/book-depth?symbol=BTCUSDT&date=2026-08-18&market=um&percentage=0.2&page=1&limit=2880", {
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:binance-vision/book-depth?symbol=BTCUSDT&date=2026-08-18&market=um&percentage=0.2&page=1&limit=2880",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"date": "2026-08-18",
"page": 1,
"bands": [
-5,
-4,
-3,
-2,
-1,
-0.2
],
"count": 2880,
"items": [
{
"depth": 786.859,
"notional": 50816122.798,
"timestamp": 1787011206000,
"percentage": 0.2,
"timestampIso": "2026-08-18T00:00:06.000Z"
},
{
"depth": 922.184,
"notional": 59572413.1697,
"timestamp": 1787011233000,
"percentage": 0.2,
"timestampIso": "2026-08-18T00:00:33.000Z"
},
{
"depth": 909.812,
"notional": 58768136.9999,
"timestamp": 1787011262000,
"percentage": 0.2,
"timestampIso": "2026-08-18T00:01:02.000Z"
},
{
"depth": 858.266,
"notional": 55434515.4216,
"timestamp": 1787011292000,
"percentage": 0.2,
"timestampIso": "2026-08-18T00:01:32.000Z"
},
{
"depth": 812.305,
"notional": 52445707.1897,
"timestamp": 1787011323000,
"percentage": 0.2,
"timestampIso": "2026-08-18T00:02:03.000Z"
},
{
"depth": 816.231,
"notional": 52695391.7949,
"timestamp": 1787011352000,
"percentage": 0.2,
"timestampIso": "2026-08-18T00:02:32.000Z"
}
],
"total": 2880,
"market": "um",
"symbol": "BTCUSDT",
"dataset": "book-depth",
"hasMore": false,
"checksum": {
"sha256": "49d48cb486ac68c314f77beb4b7df328e140972165a2fce955cbfe4e8f30b279",
"verified": true
},
"nextPage": null,
"provider": "binance-vision",
"percentage": 0.2,
"missingRows": 0,
"expectedRows": 2880,
"timestampUnit": "ms",
"sampleIntervalSeconds": 30
}
```
---
### Checksum
Downloads one archive and checks it against the SHA-256 Binance publishes beside
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:binance-vision/checksum`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Archive symbol, spelled as Binance spells it (BTCUSD_PERP for coin-margined). |
| `date` | string | query | yes | YYYY-MM-DD for a daily archive, YYYY-MM for a monthly one. |
| `series` | enum(klines|mark-price-klines|index-price-klines|premium-index-klines|metrics|funding-rate|book-depth|book-ticker|agg-trades|trades|liquidations) | query | no | Archive series. Default klines. |
| `market` | enum(spot|um|cm) | query | no | spot, um (USD-margined futures), cm (coin-margined futures). Default um. |
| `interval` | enum(1s|1m|3m|5m|15m|30m|1h|2h|4h|6h|8h|12h|1d|3d|1w|1mo) | query | no | Candle interval, for kline series only; the monthly token is 1mo, not 1M. Default 5m. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:binance-vision/checksum?symbol=BTCUSDT&date=2026-08-18&series=klines&market=um&interval=5m" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:binance-vision/checksum?symbol=BTCUSDT&date=2026-08-18&series=klines&market=um&interval=5m", {
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:binance-vision/checksum?symbol=BTCUSDT&date=2026-08-18&series=klines&market=um&interval=5m",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"url": "https://data.binance.vision/data/futures/um/daily/klines/BTCUSDT/5m/BTCUSDT-5m-2026-08-18.zip",
"date": "2026-08-18",
"bytes": 13277,
"market": "um",
"period": "daily",
"series": "klines",
"sha256": "88af317df415c466291381545fdb1f767d9bd3cf510598e999bf2f446fe63790",
"symbol": "BTCUSDT",
"dataset": "checksum",
"interval": "5m",
"provider": "binance-vision",
"verified": true,
"lastModified": "2026-08-19T09:19:14.000Z",
"publishedSha256": "88af317df415c466291381545fdb1f767d9bd3cf510598e999bf2f446fe63790"
}
```
---
### Datasets
Which series a market publishes at a given cadence. The asymmetries are real:
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:binance-vision/datasets`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `market` | enum(spot|um|cm) | query | no | spot, um (USD-margined futures), cm (coin-margined futures). Default um. |
| `period` | enum(daily|monthly) | query | no | Archive cadence. Default daily. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:binance-vision/datasets?market=um&period=daily" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:binance-vision/datasets?market=um&period=daily", {
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:binance-vision/datasets?market=um&period=daily",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 10,
"items": [
{
"prefix": "data/futures/um/daily/aggTrades/",
"series": "agg-trades"
},
{
"prefix": "data/futures/um/daily/bookDepth/",
"series": "book-depth"
},
{
"prefix": "data/futures/um/daily/bookTicker/",
"series": "book-ticker"
},
{
"prefix": "data/futures/um/daily/indexPriceKlines/",
"series": "index-price-klines"
},
{
"prefix": "data/futures/um/daily/klines/",
"series": "klines"
},
{
"prefix": "data3/liquidationSnapshot/",
"series": "liquidations"
}
],
"market": "um",
"period": "daily",
"dataset": "datasets",
"provider": "binance-vision"
}
```
---
### Dates
Which days or months actually exist for one symbol and series — the backfill
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:binance-vision/dates`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Archive symbol, spelled as Binance spells it (BTCUSD_PERP for coin-margined). |
| `series` | enum(klines|mark-price-klines|index-price-klines|premium-index-klines|metrics|funding-rate|book-depth|book-ticker|agg-trades|trades|liquidations) | query | no | Archive series. Default klines. |
| `market` | enum(spot|um|cm) | query | no | spot, um (USD-margined futures), cm (coin-margined futures). Default um. |
| `period` | enum(daily|monthly) | query | no | Archive cadence. Default daily. |
| `interval` | enum(1s|1m|3m|5m|15m|30m|1h|2h|4h|6h|8h|12h|1d|3d|1w|1mo) | query | no | Candle interval, for kline series only; the monthly token is 1mo, not 1M. Default 5m. |
| `from` | string | query | no | Start at this date, YYYY-MM-DD or YYYY-MM. Skips straight there in the index. |
| `to` | string | query | no | Stop after this date, YYYY-MM-DD or YYYY-MM. |
| `page` | number | query | no | Page of dates. Default 1. |
| `limit` | number | query | no | Dates per page. Default 200, max 1000. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:binance-vision/dates?symbol=BTCUSDT&series=klines&market=um&period=daily&interval=5m&from=2026-08-01&to=2026-08-19&page=1&limit=200" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:binance-vision/dates?symbol=BTCUSDT&series=klines&market=um&period=daily&interval=5m&from=2026-08-01&to=2026-08-19&page=1&limit=200", {
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:binance-vision/dates?symbol=BTCUSDT&series=klines&market=um&period=daily&interval=5m&from=2026-08-01&to=2026-08-19&page=1&limit=200",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": "2026-08-19",
"from": "2026-08-01",
"page": 1,
"count": 19,
"items": [
{
"url": "https://data.binance.vision/data/futures/um/daily/klines/BTCUSDT/5m/BTCUSDT-5m-2026-08-01.zip",
"date": "2026-08-01",
"bytes": 12923,
"checksumUrl": "https://data.binance.vision/data/futures/um/daily/klines/BTCUSDT/5m/BTCUSDT-5m-2026-08-01.zip.CHECKSUM",
"lastModified": "2026-08-02T09:38:55.000Z"
},
{
"url": "https://data.binance.vision/data/futures/um/daily/klines/BTCUSDT/5m/BTCUSDT-5m-2026-08-02.zip",
"date": "2026-08-02",
"bytes": 13232,
"checksumUrl": "https://data.binance.vision/data/futures/um/daily/klines/BTCUSDT/5m/BTCUSDT-5m-2026-08-02.zip.CHECKSUM",
"lastModified": "2026-08-03T09:59:11.000Z"
},
{
"url": "https://data.binance.vision/data/futures/um/daily/klines/BTCUSDT/5m/BTCUSDT-5m-2026-08-03.zip",
"date": "2026-08-03",
"bytes": 13684,
"checksumUrl": "https://data.binance.vision/data/futures/um/daily/klines/BTCUSDT/5m/BTCUSDT-5m-2026-08-03.zip.CHECKSUM",
"lastModified": "2026-08-04T09:38:23.000Z"
},
{
"url": "https://data.binance.vision/data/futures/um/daily/klines/BTCUSDT/5m/BTCUSDT-5m-2026-08-04.zip",
"date": "2026-08-04",
"bytes": 13570,
"checksumUrl": "https://data.binance.vision/data/futures/um/daily/klines/BTCUSDT/5m/BTCUSDT-5m-2026-08-04.zip.CHECKSUM",
"lastModified": "2026-08-05T09:50:43.000Z"
},
{
"url": "https://data.binance.vision/data/futures/um/daily/klines/BTCUSDT/5m/BTCUSDT-5m-2026-08-05.zip",
"date": "2026-08-05",
"bytes": 13554,
"checksumUrl": "https://data.binance.vision/data/futures/um/daily/klines/BTCUSDT/5m/BTCUSDT-5m-2026-08-05.zip.CHECKSUM",
"lastModified": "2026-08-06T09:45:15.000Z"
},
{
"url": "https://data.binance.vision/data/futures/um/daily/klines/BTCUSDT/5m/BTCUSDT-5m-2026-08-06.zip",
"date": "2026-08-06",
"bytes": 13421,
"checksumUrl": "https://data.binance.vision/data/futures/um/daily/klines/BTCUSDT/5m/BTCUSDT-5m-2026-08-06.zip.CHECKSUM",
"lastModified": "2026-08-07T09:32:25.000Z"
}
],
"market": "um",
"period": "daily",
"series": "klines",
"symbol": "BTCUSDT",
"dataset": "dates",
"hasMore": false,
"interval": "5m",
"nextPage": null,
"provider": "binance-vision"
}
```
---
### Funding Rate
Realised funding for one perpetual, one calendar month per archive.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:binance-vision/funding-rate`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Perpetual symbol, spelled as Binance spells it (BTCUSD_PERP for coin-margined). |
| `date` | string | query | yes | Calendar month, YYYY-MM. Published monthly only, from 2020-01, and the current month appears once it closes. |
| `market` | enum(um|cm) | query | no | um (USD-margined futures), cm (coin-margined futures). Default um. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:binance-vision/funding-rate?symbol=BTCUSDT&date=2026-07&market=um" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:binance-vision/funding-rate?symbol=BTCUSDT&date=2026-07&market=um", {
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:binance-vision/funding-rate?symbol=BTCUSDT&date=2026-07&market=um",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 93,
"items": [
{
"calcTime": 1782864000000,
"calcTimeIso": "2026-07-01T00:00:00.000Z",
"lastFundingRate": 0.00005532,
"fundingIntervalHours": 8
},
{
"calcTime": 1782892800000,
"calcTimeIso": "2026-07-01T08:00:00.000Z",
"lastFundingRate": 0.00001853,
"fundingIntervalHours": 8
},
{
"calcTime": 1782921600000,
"calcTimeIso": "2026-07-01T16:00:00.000Z",
"lastFundingRate": 0.00007073,
"fundingIntervalHours": 8
},
{
"calcTime": 1782950400000,
"calcTimeIso": "2026-07-02T00:00:00.000Z",
"lastFundingRate": 0.00008001,
"fundingIntervalHours": 8
},
{
"calcTime": 1782979200000,
"calcTimeIso": "2026-07-02T08:00:00.000Z",
"lastFundingRate": 0.00005238,
"fundingIntervalHours": 8
},
{
"calcTime": 1783008000000,
"calcTimeIso": "2026-07-02T16:00:00.000Z",
"lastFundingRate": 0.00005261,
"fundingIntervalHours": 8
}
],
"month": "2026-07",
"market": "um",
"symbol": "BTCUSDT",
"dataset": "funding-rate",
"checksum": {
"sha256": "e36fcc66f493d7d9ec348c852fc22e9f318c79cf7adae17398a3994ae0adc41e",
"verified": true
},
"provider": "binance-vision",
"timestampUnit": "ms"
}
```
---
### Index Price Klines
Index-price candles — the spot composite Binance derives the mark price from.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:binance-vision/index-price-klines`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Archive symbol, spelled as Binance spells it (BTCUSD_PERP for coin-margined). |
| `date` | string | query | yes | YYYY-MM-DD for a daily archive, YYYY-MM for a monthly one. Archives run to T-1. |
| `market` | enum(um|cm) | query | no | um (USD-margined futures), cm (coin-margined futures). Default um. |
| `interval` | enum(1s|1m|3m|5m|15m|30m|1h|2h|4h|6h|8h|12h|1d|3d|1w|1mo) | query | no | Candle interval; the monthly token is 1mo, not 1M. Default 5m. |
| `page` | number | query | no | Page of rows. Default 1. |
| `limit` | number | query | no | Rows per page. Default 5000, max 20000. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:binance-vision/index-price-klines?symbol=BTCUSDT&date=2026-08-18&market=um&interval=5m&page=1&limit=5000" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:binance-vision/index-price-klines?symbol=BTCUSDT&date=2026-08-18&market=um&interval=5m&page=1&limit=5000", {
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:binance-vision/index-price-klines?symbol=BTCUSDT&date=2026-08-18&market=um&interval=5m&page=1&limit=5000",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"date": "2026-08-18",
"page": 1,
"count": 288,
"items": [
{
"low": 64488.35434783,
"high": 64560.23043478,
"open": 64536.60173913,
"close": 64489.72130435,
"volume": null,
"openTime": 1787011200000,
"closeTime": 1787011499999,
"priceType": "index",
"tradeCount": 300,
"openTimeIso": "2026-08-18T00:00:00.000Z",
"quoteVolume": null,
"closeTimeIso": "2026-08-18T00:04:59.999Z",
"takerBuyVolume": null,
"takerBuyQuoteVolume": null
},
{
"low": 64427.3373913,
"high": 64489.86130435,
"open": 64489.72130435,
"close": 64430.56369565,
"volume": null,
"openTime": 1787011500000,
"closeTime": 1787011799999,
"priceType": "index",
"tradeCount": 300,
"openTimeIso": "2026-08-18T00:05:00.000Z",
"quoteVolume": null,
"closeTimeIso": "2026-08-18T00:09:59.999Z",
"takerBuyVolume": null,
"takerBuyQuoteVolume": null
},
{
"low": 64425.83021739,
"high": 64437.47304348,
"open": 64430.57173913,
"close": 64437.46152174,
"volume": null,
"openTime": 1787011800000,
"closeTime": 1787012099999,
"priceType": "index",
"tradeCount": 300,
"openTimeIso": "2026-08-18T00:10:00.000Z",
"quoteVolume": null,
"closeTimeIso": "2026-08-18T00:14:59.999Z",
"takerBuyVolume": null,
"takerBuyQuoteVolume": null
},
{
"low": 64437.46586957,
"high": 64480.87152174,
"open": 64437.46586957,
"close": 64459.80934783,
"volume": null,
"openTime": 1787012100000,
"closeTime": 1787012399999,
"priceType": "index",
"tradeCount": 300,
"openTimeIso": "2026-08-18T00:15:00.000Z",
"quoteVolume": null,
"closeTimeIso": "2026-08-18T00:19:59.999Z",
"takerBuyVolume": null,
"takerBuyQuoteVolume": null
},
{
"low": 64447.88978261,
"high": 64495.93543478,
"open": 64459.66586957,
"close": 64478.06413043,
"volume": null,
"openTime": 1787012400000,
"closeTime": 1787012699999,
"priceType": "index",
"tradeCount": 300,
"openTimeIso": "2026-08-18T00:20:00.000Z",
"quoteVolume": null,
"closeTimeIso": "2026-08-18T00:24:59.999Z",
"takerBuyVolume": null,
"takerBuyQuoteVolume": null
},
{
"low": 64454.59695652,
"high": 64480.54869565,
"open": 64478.06413043,
"close": 64459.61826087,
"volume": null,
"openTime": 1787012700000,
"closeTime": 1787012999999,
"priceType": "index",
"tradeCount": 300,
"openTimeIso": "2026-08-18T00:25:00.000Z",
"quoteVolume": null,
"closeTimeIso": "2026-08-18T00:29:59.999Z",
"takerBuyVolume": null,
"takerBuyQuoteVolume": null
}
],
"total": 288,
"market": "um",
"period": "daily",
"symbol": "BTCUSDT",
"dataset": "index-price-klines",
"hasMore": false,
"checksum": {
"sha256": "4c259c59a3c30020f44be5410cd9787743e307c8434008c8d50f3f235b708ff1",
"verified": true
},
"interval": "5m",
"nextPage": null,
"provider": "binance-vision",
"priceType": "index",
"missingRows": 0,
"expectedRows": 288,
"timestampUnit": "ms"
}
```
---
### Intervals
Which candle intervals one symbol actually has, listed rather than assumed. Spot
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:binance-vision/intervals`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Archive symbol, spelled as Binance spells it (BTCUSD_PERP for coin-margined). |
| `series` | enum(klines|mark-price-klines|index-price-klines|premium-index-klines) | query | no | Kline series. Default klines. |
| `market` | enum(spot|um|cm) | query | no | spot, um (USD-margined futures), cm (coin-margined futures). Default um. |
| `period` | enum(daily|monthly) | query | no | Archive cadence. Default daily. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:binance-vision/intervals?symbol=BTCUSDT&series=klines&market=um&period=daily" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:binance-vision/intervals?symbol=BTCUSDT&series=klines&market=um&period=daily", {
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:binance-vision/intervals?symbol=BTCUSDT&series=klines&market=um&period=daily",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 15,
"items": [
{
"stepMs": 60000,
"interval": "1m"
},
{
"stepMs": 180000,
"interval": "3m"
},
{
"stepMs": 300000,
"interval": "5m"
},
{
"stepMs": 900000,
"interval": "15m"
},
{
"stepMs": 1800000,
"interval": "30m"
},
{
"stepMs": 3600000,
"interval": "1h"
}
],
"market": "um",
"period": "daily",
"series": "klines",
"symbol": "BTCUSDT",
"dataset": "intervals",
"provider": "binance-vision"
}
```
---
### Klines
Traded OHLCV candles for one symbol and one archive file, from Binance's public
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:binance-vision/klines`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Archive symbol, spelled as Binance spells it (BTCUSD_PERP for coin-margined). |
| `date` | string | query | yes | YYYY-MM-DD for a daily archive, YYYY-MM for a monthly one. Archives run to T-1. |
| `market` | enum(um|spot|cm) | query | no | um (USD-margined futures), spot, cm (coin-margined futures). Default um. |
| `interval` | enum(1s|1m|3m|5m|15m|30m|1h|2h|4h|6h|8h|12h|1d|3d|1w|1mo) | query | no | Candle interval; the monthly token is 1mo, not 1M. Default 5m. |
| `page` | number | query | no | Page of rows. Default 1. |
| `limit` | number | query | no | Rows per page. Default 5000, max 20000. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:binance-vision/klines?symbol=BTCUSDT&date=2026-08-18&market=um&interval=5m&page=1&limit=5000" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:binance-vision/klines?symbol=BTCUSDT&date=2026-08-18&market=um&interval=5m&page=1&limit=5000", {
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:binance-vision/klines?symbol=BTCUSDT&date=2026-08-18&market=um&interval=5m&page=1&limit=5000",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"date": "2026-08-18",
"page": 1,
"count": 288,
"items": [
{
"low": 64449.8,
"high": 64541.6,
"open": 64504.1,
"close": 64454.1,
"volume": 542.045,
"openTime": 1787011200000,
"closeTime": 1787011499999,
"priceType": "last",
"tradeCount": 8311,
"openTimeIso": "2026-08-18T00:00:00.000Z",
"quoteVolume": 34960235.8617,
"closeTimeIso": "2026-08-18T00:04:59.999Z",
"takerBuyVolume": 253.468,
"takerBuyQuoteVolume": 16347166.0489
},
{
"low": 64386.6,
"high": 64454.1,
"open": 64454,
"close": 64397,
"volume": 476.964,
"openTime": 1787011500000,
"closeTime": 1787011799999,
"priceType": "last",
"tradeCount": 7508,
"openTimeIso": "2026-08-18T00:05:00.000Z",
"quoteVolume": 30720499.7668,
"closeTimeIso": "2026-08-18T00:09:59.999Z",
"takerBuyVolume": 156.896,
"takerBuyQuoteVolume": 10104513.5208
},
{
"low": 64388.7,
"high": 64414,
"open": 64397,
"close": 64413.9,
"volume": 196.179,
"openTime": 1787011800000,
"closeTime": 1787012099999,
"priceType": "last",
"tradeCount": 4177,
"openTimeIso": "2026-08-18T00:10:00.000Z",
"quoteVolume": 12633572.5295,
"closeTimeIso": "2026-08-18T00:14:59.999Z",
"takerBuyVolume": 103.86,
"takerBuyQuoteVolume": 6688494.3022
},
{
"low": 64413.9,
"high": 64466.4,
"open": 64414,
"close": 64433,
"volume": 220.722,
"openTime": 1787012100000,
"closeTime": 1787012399999,
"priceType": "last",
"tradeCount": 5253,
"openTimeIso": "2026-08-18T00:15:00.000Z",
"quoteVolume": 14222871.9751,
"closeTimeIso": "2026-08-18T00:19:59.999Z",
"takerBuyVolume": 135.729,
"takerBuyQuoteVolume": 8746034.2627
},
{
"low": 64417.5,
"high": 64476.8,
"open": 64433,
"close": 64448,
"volume": 233.614,
"openTime": 1787012400000,
"closeTime": 1787012699999,
"priceType": "last",
"tradeCount": 5872,
"openTimeIso": "2026-08-18T00:20:00.000Z",
"quoteVolume": 15056134.4154,
"closeTimeIso": "2026-08-18T00:24:59.999Z",
"takerBuyVolume": 147.405,
"takerBuyQuoteVolume": 9499895.6637
},
{
"low": 64419.2,
"high": 64452.1,
"open": 64448,
"close": 64429.6,
"volume": 110.019,
"openTime": 1787012700000,
"closeTime": 1787012999999,
"priceType": "last",
"tradeCount": 3507,
"openTimeIso": "2026-08-18T00:25:00.000Z",
"quoteVolume": 7089306.411,
"closeTimeIso": "2026-08-18T00:29:59.999Z",
"takerBuyVolume": 33.043,
"takerBuyQuoteVolume": 2129142.4751
}
],
"total": 288,
"market": "um",
"period": "daily",
"symbol": "BTCUSDT",
"dataset": "klines",
"hasMore": false,
"checksum": {
"sha256": "88af317df415c466291381545fdb1f767d9bd3cf510598e999bf2f446fe63790",
"verified": true
},
"interval": "5m",
"nextPage": null,
"provider": "binance-vision",
"priceType": "last",
"missingRows": 0,
"expectedRows": 288,
"timestampUnit": "ms"
}
```
---
### Liquidations
Forced-liquidation orders for one symbol and one UTC day. Discontinued, not
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:binance-vision/liquidations`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Futures symbol; use BTCUSD_PERP style for coin-margined. |
| `date` | string | query | yes | UTC day, YYYY-MM-DD. UM ends 2024-03-31 and CM ends 2024-10-14; later dates have no archive. |
| `market` | enum(um|cm) | query | no | um (USD-margined futures), cm (coin-margined futures). Default um. |
| `page` | number | query | no | Page of rows. Default 1. |
| `limit` | number | query | no | Rows per page. Default 5000, max 20000. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:binance-vision/liquidations?symbol=BTCUSDT&date=2024-03-31&market=um&page=1&limit=5000" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:binance-vision/liquidations?symbol=BTCUSDT&date=2024-03-31&market=um&page=1&limit=5000", {
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:binance-vision/liquidations?symbol=BTCUSDT&date=2024-03-31&market=um&page=1&limit=5000",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"date": "2024-03-31",
"page": 1,
"count": 1544,
"items": [
{
"side": "SELL",
"time": 1711843207773,
"price": 69356.21,
"timeIso": "2024-03-31T00:00:07.773Z",
"orderType": "LIMIT",
"orderStatus": "FILLED",
"timeInForce": "IOC",
"averagePrice": 69627.6,
"lastFillQuantity": 0.002,
"originalQuantity": 0.002,
"accumulatedFillQuantity": 0.002
},
{
"side": "SELL",
"time": 1711843207773,
"price": 69356.21,
"timeIso": "2024-03-31T00:00:07.773Z",
"orderType": "LIMIT",
"orderStatus": "FILLED",
"timeInForce": "IOC",
"averagePrice": 69627.6,
"lastFillQuantity": 0.002,
"originalQuantity": 0.002,
"accumulatedFillQuantity": 0.002
},
{
"side": "SELL",
"time": 1711843214054,
"price": 69349.19,
"timeIso": "2024-03-31T00:00:14.054Z",
"orderType": "LIMIT",
"orderStatus": "FILLED",
"timeInForce": "IOC",
"averagePrice": 69627.6,
"lastFillQuantity": 0.002,
"originalQuantity": 0.002,
"accumulatedFillQuantity": 0.002
},
{
"side": "SELL",
"time": 1711843214054,
"price": 69349.19,
"timeIso": "2024-03-31T00:00:14.054Z",
"orderType": "LIMIT",
"orderStatus": "FILLED",
"timeInForce": "IOC",
"averagePrice": 69627.6,
"lastFillQuantity": 0.002,
"originalQuantity": 0.002,
"accumulatedFillQuantity": 0.002
},
{
"side": "SELL",
"time": 1711843408644,
"price": 69397.78,
"timeIso": "2024-03-31T00:03:28.644Z",
"orderType": "LIMIT",
"orderStatus": "FILLED",
"timeInForce": "IOC",
"averagePrice": 69682.2,
"lastFillQuantity": 0.012,
"originalQuantity": 0.012,
"accumulatedFillQuantity": 0.012
},
{
"side": "SELL",
"time": 1711843408644,
"price": 69397.78,
"timeIso": "2024-03-31T00:03:28.644Z",
"orderType": "LIMIT",
"orderStatus": "FILLED",
"timeInForce": "IOC",
"averagePrice": 69682.2,
"lastFillQuantity": 0.012,
"originalQuantity": 0.012,
"accumulatedFillQuantity": 0.012
}
],
"total": 1544,
"market": "um",
"symbol": "BTCUSDT",
"dataset": "liquidations",
"hasMore": false,
"checksum": {
"sha256": "d81de4e236f73ccbdb1173db3d8a9c2f316e41de22ac6e77e5c94a29ffbc4134",
"verified": true
},
"nextPage": null,
"provider": "binance-vision",
"timestampUnit": "ms"
}
```
---
### Mark Price Klines
Mark-price candles — the price Binance liquidates against, not the price anything
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:binance-vision/mark-price-klines`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Archive symbol, spelled as Binance spells it (BTCUSD_PERP for coin-margined). |
| `date` | string | query | yes | YYYY-MM-DD for a daily archive, YYYY-MM for a monthly one. Archives run to T-1. |
| `market` | enum(um|cm) | query | no | um (USD-margined futures), cm (coin-margined futures). Default um. |
| `interval` | enum(1s|1m|3m|5m|15m|30m|1h|2h|4h|6h|8h|12h|1d|3d|1w|1mo) | query | no | Candle interval; the monthly token is 1mo, not 1M. Default 5m. |
| `page` | number | query | no | Page of rows. Default 1. |
| `limit` | number | query | no | Rows per page. Default 5000, max 20000. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:binance-vision/mark-price-klines?symbol=BTCUSDT&date=2026-08-18&market=um&interval=5m&page=1&limit=5000" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:binance-vision/mark-price-klines?symbol=BTCUSDT&date=2026-08-18&market=um&interval=5m&page=1&limit=5000", {
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:binance-vision/mark-price-klines?symbol=BTCUSDT&date=2026-08-18&market=um&interval=5m&page=1&limit=5000",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"date": "2026-08-18",
"page": 1,
"count": 288,
"items": [
{
"low": 64450,
"high": 64541.5,
"open": 64504.1,
"close": 64454.1,
"volume": null,
"openTime": 1787011200000,
"closeTime": 1787011499999,
"priceType": "mark",
"tradeCount": 300,
"openTimeIso": "2026-08-18T00:00:00.000Z",
"quoteVolume": null,
"closeTimeIso": "2026-08-18T00:04:59.999Z",
"takerBuyVolume": null,
"takerBuyQuoteVolume": null
},
{
"low": 64389.28157246,
"high": 64454.23682159,
"open": 64454,
"close": 64397.1,
"volume": null,
"openTime": 1787011500000,
"closeTime": 1787011799999,
"priceType": "mark",
"tradeCount": 300,
"openTimeIso": "2026-08-18T00:05:00.000Z",
"quoteVolume": null,
"closeTimeIso": "2026-08-18T00:09:59.999Z",
"takerBuyVolume": null,
"takerBuyQuoteVolume": null
},
{
"low": 64388.8,
"high": 64414,
"open": 64397,
"close": 64413.9,
"volume": null,
"openTime": 1787011800000,
"closeTime": 1787012099999,
"priceType": "mark",
"tradeCount": 300,
"openTimeIso": "2026-08-18T00:10:00.000Z",
"quoteVolume": null,
"closeTimeIso": "2026-08-18T00:14:59.999Z",
"takerBuyVolume": null,
"takerBuyQuoteVolume": null
},
{
"low": 64413.9,
"high": 64467.13863768,
"open": 64413.9,
"close": 64434.38625362,
"volume": null,
"openTime": 1787012100000,
"closeTime": 1787012399999,
"priceType": "mark",
"tradeCount": 300,
"openTimeIso": "2026-08-18T00:15:00.000Z",
"quoteVolume": null,
"closeTimeIso": "2026-08-18T00:19:59.999Z",
"takerBuyVolume": null,
"takerBuyQuoteVolume": null
},
{
"low": 64417.5,
"high": 64476.8,
"open": 64433,
"close": 64450.04192754,
"volume": null,
"openTime": 1787012400000,
"closeTime": 1787012699999,
"priceType": "mark",
"tradeCount": 300,
"openTimeIso": "2026-08-18T00:20:00.000Z",
"quoteVolume": null,
"closeTimeIso": "2026-08-18T00:24:59.999Z",
"takerBuyVolume": null,
"takerBuyQuoteVolume": null
},
{
"low": 64422.95573913,
"high": 64452.1,
"open": 64450.04627536,
"close": 64429.5,
"volume": null,
"openTime": 1787012700000,
"closeTime": 1787012999999,
"priceType": "mark",
"tradeCount": 300,
"openTimeIso": "2026-08-18T00:25:00.000Z",
"quoteVolume": null,
"closeTimeIso": "2026-08-18T00:29:59.999Z",
"takerBuyVolume": null,
"takerBuyQuoteVolume": null
}
],
"total": 288,
"market": "um",
"period": "daily",
"symbol": "BTCUSDT",
"dataset": "mark-price-klines",
"hasMore": false,
"checksum": {
"sha256": "8236e929819664224646efb3be726f756736613288652afbb6cdebe74ca6a428",
"verified": true
},
"interval": "5m",
"nextPage": null,
"provider": "binance-vision",
"priceType": "mark",
"missingRows": 0,
"expectedRows": 288,
"timestampUnit": "ms"
}
```
---
### Metrics
Five-minute open interest and long/short positioning for one futures symbol and
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:binance-vision/metrics`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Futures symbol, spelled as Binance spells it (BTCUSD_PERP for coin-margined). |
| `date` | string | query | yes | UTC day, YYYY-MM-DD. BTCUSDT runs from 2020-09-01, ETHUSDT from 2021-12-01, and archives run to T-1. |
| `market` | enum(um|cm) | query | no | um (USD-margined futures), cm (coin-margined futures). Default um. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:binance-vision/metrics?symbol=BTCUSDT&date=2026-08-18&market=um" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:binance-vision/metrics?symbol=BTCUSDT&date=2026-08-18&market=um", {
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:binance-vision/metrics?symbol=BTCUSDT&date=2026-08-18&market=um",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"date": "2026-08-18",
"count": 288,
"items": [
{
"createTime": 1787011200000,
"createTimeIso": "2026-08-18T00:00:00.000Z",
"sumOpenInterest": 106377.598,
"countLongShortRatio": 1.48542034,
"sumOpenInterestValue": 6856472339.2518,
"sumTakerLongShortVolRatio": 0.878425,
"sumTopTraderLongShortRatio": 1.484888,
"countTopTraderLongShortRatio": 1.53751556
},
{
"createTime": 1787011500000,
"createTimeIso": "2026-08-18T00:05:00.000Z",
"sumOpenInterest": 106325.86,
"countLongShortRatio": 1.48099622,
"sumOpenInterestValue": 6847077039.006,
"sumTakerLongShortVolRatio": 0.490069,
"sumTopTraderLongShortRatio": 1.480877,
"countTopTraderLongShortRatio": 1.53395809
},
{
"createTime": 1787011800000,
"createTimeIso": "2026-08-18T00:10:00.000Z",
"sumOpenInterest": 106356.292,
"countLongShortRatio": 1.47826865,
"sumOpenInterestValue": 6850823557.2588,
"sumTakerLongShortVolRatio": 1.125194,
"sumTopTraderLongShortRatio": 1.479356,
"countTopTraderLongShortRatio": 1.53063027
},
{
"createTime": 1787012100000,
"createTimeIso": "2026-08-18T00:15:00.000Z",
"sumOpenInterest": 106389.924,
"countLongShortRatio": 1.47628829,
"sumOpenInterestValue": 6855169456.509276,
"sumTakerLongShortVolRatio": 1.596913,
"sumTopTraderLongShortRatio": 1.478449,
"countTopTraderLongShortRatio": 1.52888655
},
{
"createTime": 1787012400000,
"createTimeIso": "2026-08-18T00:20:00.000Z",
"sumOpenInterest": 106406.941,
"countLongShortRatio": 1.47398853,
"sumOpenInterestValue": 6857931808.831275,
"sumTakerLongShortVolRatio": 1.709771,
"sumTopTraderLongShortRatio": 1.479359,
"countTopTraderLongShortRatio": 1.52654329
},
{
"createTime": 1787012700000,
"createTimeIso": "2026-08-18T00:25:00.000Z",
"sumOpenInterest": 106416.443,
"countLongShortRatio": 1.472301,
"sumOpenInterestValue": 6856358214.2685,
"sumTakerLongShortVolRatio": 0.429248,
"sumTopTraderLongShortRatio": 1.478296,
"countTopTraderLongShortRatio": 1.52477468
}
],
"market": "um",
"symbol": "BTCUSDT",
"dataset": "metrics",
"checksum": {
"sha256": "1db58bdad3275ebd42f68aef01a69e344750fad2f7783926c6b193001c6a06a0",
"verified": true
},
"complete": true,
"interval": "5m",
"provider": "binance-vision",
"missingRows": 0,
"expectedRows": 288,
"timestampUnit": "ms"
}
```
---
### Premium Index Klines
Premium-index candles — the perpetual's basis over the index, which is what the
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:binance-vision/premium-index-klines`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Archive symbol, spelled as Binance spells it (BTCUSD_PERP for coin-margined). |
| `date` | string | query | yes | YYYY-MM-DD for a daily archive, YYYY-MM for a monthly one. Archives run to T-1. |
| `market` | enum(um|cm) | query | no | um (USD-margined futures), cm (coin-margined futures). Default um. |
| `interval` | enum(1s|1m|3m|5m|15m|30m|1h|2h|4h|6h|8h|12h|1d|3d|1w|1mo) | query | no | Candle interval; the monthly token is 1mo, not 1M. Default 5m. |
| `page` | number | query | no | Page of rows. Default 1. |
| `limit` | number | query | no | Rows per page. Default 5000, max 20000. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:binance-vision/premium-index-klines?symbol=BTCUSDT&date=2026-08-18&market=um&interval=5m&page=1&limit=5000" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:binance-vision/premium-index-klines?symbol=BTCUSDT&date=2026-08-18&market=um&interval=5m&page=1&limit=5000", {
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:binance-vision/premium-index-klines?symbol=BTCUSDT&date=2026-08-18&market=um&interval=5m&page=1&limit=5000",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"date": "2026-08-18",
"page": 1,
"count": 288,
"items": [
{
"low": -0.00074406,
"high": -0.00032883,
"open": -0.00039607,
"close": -0.00059903,
"volume": null,
"openTime": 1787011200000,
"closeTime": 1787011499999,
"priceType": "premium",
"tradeCount": 60,
"openTimeIso": "2026-08-18T00:00:00.000Z",
"quoteVolume": null,
"closeTimeIso": "2026-08-18T00:04:59.999Z",
"takerBuyVolume": null,
"takerBuyQuoteVolume": null
},
{
"low": -0.00067615,
"high": -0.00042339,
"open": -0.00055291,
"close": -0.00051859,
"volume": null,
"openTime": 1787011500000,
"closeTime": 1787011799999,
"priceType": "premium",
"tradeCount": 60,
"openTimeIso": "2026-08-18T00:05:00.000Z",
"quoteVolume": null,
"closeTimeIso": "2026-08-18T00:09:59.999Z",
"takerBuyVolume": null,
"takerBuyQuoteVolume": null
},
{
"low": -0.00061512,
"high": -0.00035748,
"open": -0.0005196,
"close": -0.00036421,
"volume": null,
"openTime": 1787011800000,
"closeTime": 1787012099999,
"priceType": "premium",
"tradeCount": 60,
"openTimeIso": "2026-08-18T00:10:00.000Z",
"quoteVolume": null,
"closeTimeIso": "2026-08-18T00:14:59.999Z",
"takerBuyVolume": null,
"takerBuyQuoteVolume": null
},
{
"low": -0.00050569,
"high": -0.00008734,
"open": -0.00036418,
"close": -0.00041298,
"volume": null,
"openTime": 1787012100000,
"closeTime": 1787012399999,
"priceType": "premium",
"tradeCount": 60,
"openTimeIso": "2026-08-18T00:15:00.000Z",
"quoteVolume": null,
"closeTimeIso": "2026-08-18T00:19:59.999Z",
"takerBuyVolume": null,
"takerBuyQuoteVolume": null
},
{
"low": -0.00060605,
"high": -0.00018062,
"open": -0.00060605,
"close": -0.00047469,
"volume": null,
"openTime": 1787012400000,
"closeTime": 1787012699999,
"priceType": "premium",
"tradeCount": 60,
"openTimeIso": "2026-08-18T00:20:00.000Z",
"quoteVolume": null,
"closeTimeIso": "2026-08-18T00:24:59.999Z",
"takerBuyVolume": null,
"takerBuyQuoteVolume": null
},
{
"low": -0.00058068,
"high": -0.00037628,
"open": -0.00046472,
"close": -0.00046562,
"volume": null,
"openTime": 1787012700000,
"closeTime": 1787012999999,
"priceType": "premium",
"tradeCount": 60,
"openTimeIso": "2026-08-18T00:25:00.000Z",
"quoteVolume": null,
"closeTimeIso": "2026-08-18T00:29:59.999Z",
"takerBuyVolume": null,
"takerBuyQuoteVolume": null
}
],
"total": 288,
"market": "um",
"period": "daily",
"symbol": "BTCUSDT",
"dataset": "premium-index-klines",
"hasMore": false,
"checksum": {
"sha256": "9bd98fa004a9c3fc119940bbc68b441c3d960143c6a4a6fb9243e21b96166d5f",
"verified": true
},
"interval": "5m",
"nextPage": null,
"provider": "binance-vision",
"priceType": "premium",
"missingRows": 0,
"expectedRows": 288,
"timestampUnit": "ms"
}
```
---
### Symbols
Every symbol that has an archive in one series, straight from the bucket index.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:binance-vision/symbols`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `series` | enum(klines|mark-price-klines|index-price-klines|premium-index-klines|metrics|funding-rate|book-depth|book-ticker|agg-trades|trades|liquidations) | query | no | Archive series. Default klines. |
| `market` | enum(spot|um|cm) | query | no | spot, um (USD-margined futures), cm (coin-margined futures). Default um. |
| `period` | enum(daily|monthly) | query | no | Archive cadence. metrics and book-depth are daily only, funding-rate monthly only. Default daily. |
| `query` | string | query | no | Keep only symbols containing this text. |
| `page` | number | query | no | Page of symbols. Default 1. |
| `limit` | number | query | no | Symbols per page. Default 200, max 1000. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:binance-vision/symbols?series=klines&market=um&period=daily&query=BTC&page=1&limit=200" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:binance-vision/symbols?series=klines&market=um&period=daily&query=BTC&page=1&limit=200", {
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:binance-vision/symbols?series=klines&market=um&period=daily&query=BTC&page=1&limit=200",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"page": 1,
"count": 36,
"items": [
"BTCBUSD",
"BTCBUSD_210129",
"BTCBUSD_210226",
"BTCDOMUSDT",
"BTCSTUSDT",
"BTCSTUSDTSETTLED"
],
"query": "BTC",
"total": 36,
"market": "um",
"period": "daily",
"series": "klines",
"dataset": "symbols",
"hasMore": false,
"nextPage": null,
"provider": "binance-vision"
}
```
---
### Trades
Individual trades, one row per fill. A BTCUSDT futures day is 1.6M rows and 12 MB
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:binance-vision/trades`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Archive symbol, spelled as Binance spells it (BTCUSD_PERP for coin-margined). |
| `date` | string | query | yes | YYYY-MM-DD for a daily archive, YYYY-MM for a monthly one. Futures run from 2019-12-31 and spot from 2017-08-17. |
| `market` | enum(um|spot|cm) | query | no | um (USD-margined futures), spot, cm (coin-margined futures). Default um. |
| `page` | number | query | no | Page of rows. Default 1. |
| `limit` | number | query | no | Rows per page. Default 10000, max 50000. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:binance-vision/trades?symbol=BTCUSDT&date=2026-08-18&market=um&page=1&limit=10000" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:binance-vision/trades?symbol=BTCUSDT&date=2026-08-18&market=um&page=1&limit=10000", {
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:binance-vision/trades?symbol=BTCUSDT&date=2026-08-18&market=um&page=1&limit=10000",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"date": "2026-08-18",
"page": 1,
"count": 10000,
"items": [
{
"time": 1787011200015,
"price": 64504.1,
"timeIso": "2026-08-18T00:00:00.015Z",
"tradeId": 7976144181,
"quantity": 0.024,
"isBestMatch": null,
"isBuyerMaker": true,
"quoteQuantity": 1548.0984
},
{
"time": 1787011200024,
"price": 64504.1,
"timeIso": "2026-08-18T00:00:00.024Z",
"tradeId": 7976144182,
"quantity": 0.001,
"isBestMatch": null,
"isBuyerMaker": true,
"quoteQuantity": 64.5041
},
{
"time": 1787011200048,
"price": 64504.1,
"timeIso": "2026-08-18T00:00:00.048Z",
"tradeId": 7976144183,
"quantity": 0.001,
"isBestMatch": null,
"isBuyerMaker": true,
"quoteQuantity": 64.5041
},
{
"time": 1787011200092,
"price": 64504.2,
"timeIso": "2026-08-18T00:00:00.092Z",
"tradeId": 7976144184,
"quantity": 0.062,
"isBestMatch": null,
"isBuyerMaker": false,
"quoteQuantity": 3999.2604
},
{
"time": 1787011200143,
"price": 64504.2,
"timeIso": "2026-08-18T00:00:00.143Z",
"tradeId": 7976144185,
"quantity": 0.002,
"isBestMatch": null,
"isBuyerMaker": false,
"quoteQuantity": 129.0084
},
{
"time": 1787011200143,
"price": 64504.2,
"timeIso": "2026-08-18T00:00:00.143Z",
"tradeId": 7976144186,
"quantity": 0.012,
"isBestMatch": null,
"isBuyerMaker": false,
"quoteQuantity": 774.0504
}
],
"total": 1636466,
"market": "um",
"period": "daily",
"symbol": "BTCUSDT",
"dataset": "trades",
"hasMore": true,
"checksum": {
"sha256": "8063a3ba07b9af225122b14a1a8f71f7c657d891c38f0a38cf2d52d1fba47ea5",
"verified": true
},
"nextPage": 2,
"provider": "binance-vision",
"timestampUnit": "ms"
}
```
---
## Blockchain Info
**Category:** finance · **Slug:** `blockchain-info`
**Detail page:** https://zapi.ink/api/finance/blockchain-info
One named on-chain time series from blockchain.info's chart API.
**Tags:** finance, blockchain-info
### Chart
One named on-chain time series from blockchain.info's chart API.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:blockchain-info/chart`
- **Cache TTL:** 900s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `chart` | enum(mempool-size|mempool-count|mempool-growth|transactions-per-second|utxo-count|avg-confirmation-time|median-confirmation-time|market-price|market-cap|trade-volume|total-bitcoins|avg-block-size|blocks-size|n-transactions|n-transactions-total|n-transactions-per-block|n-transactions-excluding-popular|n-unique-addresses|hash-rate|difficulty|miners-revenue|transaction-fees|transaction-fees-usd|cost-per-transaction|cost-per-transaction-percent|output-volume|estimated-transaction-volume|estimated-transaction-volume-usd|my-wallet-n-users) | query | no | Chart name. mempool-size, mempool-count, mempool-growth and transactions-per-second publish every 15 minutes; utxo-count hourly; avg-confirmation-time every 6 hours; the rest daily. |
| `timespan` | string | query | no | Window as Ndays, Nweeks, Nyears, Nhours or all. Upstream default is 1 week for mempool charts, 1 year elsewhere. |
| `start` | string | query | no | Start date (YYYY-MM-DD). Combine with timespan to window the series. |
| `rollingAverage` | string | query | no | Average each point over this duration. Same grammar as timespan. |
| `sampled` | enum(true|false) | query | no | true downsamples to ~1500 points. Default false, which returns full resolution. |
| `limit` | number | query | no | Keep only the most recent N points. Omit for everything the upstream returned. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:blockchain-info/chart?chart=transactions-per-second×pan=30days&start=2026-06-01&rollingAverage=8hours&sampled=false&limit=5000" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:blockchain-info/chart?chart=transactions-per-second×pan=30days&start=2026-06-01&rollingAverage=8hours&sampled=false&limit=5000", {
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:blockchain-info/chart?chart=transactions-per-second×pan=30days&start=2026-06-01&rollingAverage=8hours&sampled=false&limit=5000",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"unit": "Transactions Per Second",
"chart": "transactions-per-second",
"count": 668,
"items": [
{
"date": "2026-08-14T02:30:00.000Z",
"time": 1786674600,
"value": 4.45
},
{
"date": "2026-08-14T02:45:00.000Z",
"time": 1786675500,
"value": 3.066666666666667
},
{
"date": "2026-08-14T03:00:00.000Z",
"time": 1786676400,
"value": 4.733333333333333
},
{
"date": "2026-08-14T03:15:00.000Z",
"time": 1786677300,
"value": 2.2333333333333334
},
{
"date": "2026-08-14T03:30:00.000Z",
"time": 1786678200,
"value": 3.7666666666666666
},
{
"date": "2026-08-14T03:45:00.000Z",
"time": 1786679100,
"value": 6.033333333333333
},
{
"date": "2026-08-14T04:00:00.000Z",
"time": 1786680000,
"value": 5.416666666666667
},
{
"date": "2026-08-14T04:15:00.000Z",
"time": 1786680900,
"value": 23.6
}
],
"total": 668,
"period": "minute",
"dataset": "chart",
"sampled": false,
"provider": "blockchain-info",
"timespan": null,
"description": "The number of Bitcoin transactions added to the mempool per second."
}
```
---
### Stats
Current Bitcoin network snapshot — 20 fields, one flat object, no list.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:blockchain-info/stats`
- **Cache TTL:** 300s
**Parameters:**
_No parameters._
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:blockchain-info/stats" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:blockchain-info/stats", {
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:blockchain-info/stats",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"date": "2026-08-21T02:22:44.000Z",
"time": 1787278964,
"dataset": "stats",
"txCount": 534117,
"btcMined": 41875000000,
"hashRate": 849165771849.8738,
"provider": "blockchain-info",
"totalBtc": 2007305000000000,
"blocksSize": 220380617,
"difficulty": 127479855693691,
"blocksMined": 134,
"blocksTotal": 963376,
"totalBtcSent": 123512756825852,
"totalFeesBtc": -41875000000,
"marketPriceUsd": 73774.99,
"tradeVolumeBtc": 9765.02,
"tradeVolumeUsd": 720414252.8498001,
"estimatedBtcSent": 16173449886814,
"minersRevenueBtc": 0,
"minersRevenueUsd": 0,
"nextRetargetHeight": 963647,
"minutesBetweenBlocks": 10.1729,
"estimatedTransactionVolumeUsd": 11931961036.652044
}
```
---
## BLS
**Category:** finance · **Slug:** `bls`
**Detail page:** https://zapi.ink/api/finance/bls
US Bureau of Labor Statistics: CPI, PPI, employment and the published timeseries catalogue.
**Tags:** bls, inflation, cpi, employment, macro, united-states
### Latest
The newest published print for a set of BLS series, one row each.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:bls/latest`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `series` | string | query | no | BLS series ids, comma-separated, up to 25. Unregistered use is shared and the API publishes its limits as "Daily query limit 25", "Series per query limit 25" and "Years per query limit 10". Default LNS14000000 (unemployment rate). |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:bls/latest?series=LNS14000000%2CCUUR0000SA0%2CCES0000000001" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:bls/latest?series=LNS14000000%2CCUUR0000SA0%2CCES0000000001", {
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:bls/latest?series=LNS14000000%2CCUUR0000SA0%2CCES0000000001",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 1,
"items": [
{
"date": "2026-07-01",
"value": 4.1,
"period": "M07",
"isLatest": true,
"seriesId": "LNS14000000",
"footnotes": [],
"periodName": "July"
}
],
"series": [
"LNS14000000"
],
"dataset": "latest",
"missing": [],
"provider": "bls",
"resolved": [
"LNS14000000"
]
}
```
---
### Popular Series
The BLS series people ask for most, overall or within one survey.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:bls/popular-series`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `survey` | string | query | no | Two-letter survey code from the `surveys` endpoint, e.g. CU for the Consumer Price Index. Unregistered use is shared and the API publishes its limits as "Daily query limit 25" — this listing spends one of them. Default all surveys. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:bls/popular-series?survey=CU" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:bls/popular-series?survey=CU", {
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:bls/popular-series?survey=CU",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 25,
"items": [
{
"seriesId": "CUUR0000SA0"
},
{
"seriesId": "LNS14000000"
},
{
"seriesId": "CES0000000001"
},
{
"seriesId": "CUUR0000SA0L1E"
},
{
"seriesId": "WPUFD49104"
},
{
"seriesId": "CUSR0000SA0"
}
],
"survey": null,
"dataset": "popular-series",
"provider": "bls"
}
```
---
### Surveys
Every BLS survey programme and its two-letter code.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:bls/surveys`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `query` | string | query | no | Case-insensitive substring match on the survey name or code. Unregistered use is shared and the API publishes its limits as "Daily query limit 25" — this listing spends one of them. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:bls/surveys?query=consumer%20price" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:bls/surveys?query=consumer%20price", {
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:bls/surveys?query=consumer%20price",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 70,
"items": [
{
"code": "AP",
"name": "Consumer Price Index - Average Price Data"
},
{
"code": "BD",
"name": "Business Employment Dynamics"
},
{
"code": "BG",
"name": "Collective Bargaining Agreements-State and Local Government"
},
{
"code": "BP",
"name": "Collective Bargaining Agreements-Private Sector"
},
{
"code": "CA",
"name": "Biennial Nonfatal Case and Demographic numbers and rates: selected characteristics"
},
{
"code": "CB",
"name": "Biennial Nonfatal Case and Demographic numbers and rates: selected characteristics"
}
],
"query": null,
"total": 70,
"dataset": "surveys",
"provider": "bls"
}
```
---
### Timeseries Data
Bureau of Labor Statistics observations — CPI, unemployment, payrolls, by series id.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:bls/timeseries-data`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `series` | string | query | no | BLS series ids, comma-separated, up to 25. Unregistered use is shared and the API publishes its limits as "Daily query limit 25", "Series per query limit 25" and "Years per query limit 10". Default LNS14000000 (unemployment rate). |
| `from` | number | query | no | First year. Defaults to nine years before `to`. |
| `to` | number | query | no | Last year. Defaults to the current year. |
| `annualAverage` | enum(true|false) | query | no | Include the annual average row (period M13) alongside the monthly prints. Default false. |
| `length` | number | query | no | Observations per series, newest first (default 60, max 500) |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:bls/timeseries-data?series=LNS14000000%2CCUUR0000SA0&from=2020&to=2026&annualAverage=true&length=24" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:bls/timeseries-data?series=LNS14000000%2CCUUR0000SA0&from=2020&to=2026&annualAverage=true&length=24", {
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:bls/timeseries-data?series=LNS14000000%2CCUUR0000SA0&from=2020&to=2026&annualAverage=true&length=24",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": 2026,
"from": 2020,
"count": 1,
"items": [
{
"count": 24,
"total": 85,
"seriesId": "CUUR0000SA0",
"observations": [
{
"date": "2026-07-01",
"value": 333.918,
"period": "M07",
"aspects": [
{
"name": "Historical reference to 12 month % change",
"value": "S-Mar. 2026"
},
{
"name": "Relative Importance",
"value": "100.000"
},
{
"name": "Relative Importance for previous year",
"value": "100.000"
},
{
"name": "Median Standard Error 12 Month Change",
"value": "0.09"
},
{
"name": "12 month % change prior to the current month",
"value": "3.3"
}
],
"isLatest": true,
"footnotes": [],
"periodName": "July"
},
{
"date": "2026-06-01",
"value": 333.952,
"period": "M06",
"aspects": [
{
"name": "Historical reference to 12 month % change",
"value": "S-Mar. 2026"
},
{
"name": "Relative Importance",
"value": "100.000"
},
{
"name": "Relative Importance for previous year",
"value": "100.000"
},
{
"name": "Median Standard Error 12 Month Change",
"value": "0.09"
},
{
"name": "12 month % change prior to the current month",
"value": "3.3"
}
],
"isLatest": false,
"footnotes": [],
"periodName": "June"
},
{
"date": "2026-05-01",
"value": 335.123,
"period": "M05",
"aspects": [
{
"name": "Historical reference to 12 month % change",
"value": "L-Apr. 2023"
},
{
"name": "Relative Importance",
"value": "100.000"
},
{
"name": "Relative Importance for previous year",
"value": "100.000"
},
{
"name": "Median Standard Error 12 Month Change",
"value": "0.09"
},
{
"name": "12 month % change prior to the current month",
"value": "4.9"
}
],
"isLatest": false,
"footnotes": [],
"periodName": "May"
},
{
"date": "2026-04-01",
"value": 333.02,
"period": "M04",
"aspects": [
{
"name": "Historical reference to 12 month % change",
"value": "L-May 2023"
},
{
"name": "Relative Importance",
"value": "100.000"
},
{
"name": "Relative Importance for previous year",
"value": "100.000"
},
{
"name": "Median Standard Error 12 Month Change",
"value": "0.09"
},
{
"name": "12 month % change prior to the current month",
"value": "4.0"
}
],
"isLatest": false,
"footnotes": [],
"periodName": "April"
},
{
"date": "2026-03-01",
"value": 330.213,
"period": "M03",
"aspects": [
{
"name": "Historical reference to 12 month % change",
"value": "L-May 2024"
},
{
"name": "Relative Importance",
"value": "100.000"
},
{
"name": "Relative Importance for previous year",
"value": "100.000"
},
{
"name": "Median Standard Error 12 Month Change",
"value": "0.09"
},
{
"name": "12 month % change prior to the current month",
"value": "3.3"
}
],
"isLatest": false,
"footnotes": [],
"periodName": "March"
},
{
"date": "2026-02-01",
"value": 326.785,
"period": "M02",
"aspects": [
{
"name": "Historical reference to 12 month % change",
"value": "-"
},
{
"name": "Relative Importance",
"value": "100.000"
},
{
"name": "Relative Importance for previous year",
"value": "100.000"
},
{
"name": "Median Standard Error 12 Month Change",
"value": "0.09"
},
{
"name": "12 month % change prior to the current month",
"value": "-"
}
],
"isLatest": false,
"footnotes": [],
"periodName": "February"
}
]
}
],
"series": [
"CUUR0000SA0"
],
"dataset": "timeseries-data",
"missing": [],
"provider": "bls",
"resolved": [
"CUUR0000SA0"
],
"annualAverage": true
}
```
---
## Boe
**Category:** finance · **Slug:** `boe`
**Detail page:** https://zapi.ink/api/finance/boe
The Bank of England's official Bank Rate, the policy rate the MPC sets.
**Tags:** finance, boe
### Bank Rate
The Bank of England's official Bank Rate, the policy rate the MPC sets.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:boe/bank-rate`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `from` | string | query | no | First observation date, YYYY-MM-DD. Default 90 days ago. |
| `to` | string | query | no | Last observation date, YYYY-MM-DD. Default today. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:boe/bank-rate?from=2026-05-01&to=2026-08-20" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:boe/bank-rate?from=2026-05-01&to=2026-08-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:boe/bank-rate?from=2026-05-01&to=2026-08-20",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": "2026-08-21",
"from": "2026-05-01",
"unit": "percent per annum",
"count": 77,
"items": [
{
"date": "2026-08-19",
"value": 3.75
},
{
"date": "2026-08-18",
"value": 3.75
},
{
"date": "2026-08-17",
"value": 3.75
},
{
"date": "2026-08-14",
"value": 3.75
},
{
"date": "2026-08-13",
"value": 3.75
},
{
"date": "2026-08-12",
"value": 3.75
},
{
"date": "2026-08-11",
"value": 3.75
},
{
"date": "2026-08-10",
"value": 3.75
}
],
"title": "Official Bank Rate",
"series": "IUDBEDR",
"dataset": "bank-rate",
"provider": "boe",
"latestDate": "2026-08-19",
"latestValue": 3.75
}
```
---
### Series
Any series in the Bank of England's Interactive Database, by code.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:boe/series`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `series` | string | query | no | Interactive Database series codes, comma-separated, up to 40 in one call. Default IUDBEDR (Bank Rate). |
| `from` | string | query | no | First observation date, YYYY-MM-DD. Default 30 days ago. |
| `to` | string | query | no | Last observation date, YYYY-MM-DD. Default today. |
| `layout` | enum(long|wide) | query | no | long returns one item per series with its own dated values; wide returns one item per date carrying every series. Default long. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:boe/series?series=IUDBEDR%2CIUDSOIA&from=2026-08-01&to=2026-08-20&layout=long" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:boe/series?series=IUDBEDR%2CIUDSOIA&from=2026-08-01&to=2026-08-20&layout=long", {
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:boe/series?series=IUDBEDR%2CIUDSOIA&from=2026-08-01&to=2026-08-20&layout=long",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": "2026-08-21",
"from": "2026-07-22",
"count": 2,
"items": [
{
"count": 21,
"series": "IUDBEDR",
"values": [
{
"date": "2026-08-19",
"value": 3.75
},
{
"date": "2026-08-18",
"value": 3.75
},
{
"date": "2026-08-17",
"value": 3.75
},
{
"date": "2026-08-14",
"value": 3.75
},
{
"date": "2026-08-13",
"value": 3.75
},
{
"date": "2026-08-12",
"value": 3.75
},
{
"date": "2026-08-11",
"value": 3.75
},
{
"date": "2026-08-10",
"value": 3.75
}
],
"latestDate": "2026-08-19",
"latestValue": 3.75
},
{
"count": 21,
"series": "IUDSOIA",
"values": [
{
"date": "2026-08-19",
"value": null
},
{
"date": "2026-08-18",
"value": 3.7311
},
{
"date": "2026-08-17",
"value": 3.7312
},
{
"date": "2026-08-14",
"value": 3.7307
},
{
"date": "2026-08-13",
"value": 3.7308
},
{
"date": "2026-08-12",
"value": 3.731
},
{
"date": "2026-08-11",
"value": 3.7315
},
{
"date": "2026-08-10",
"value": 3.7315
}
],
"latestDate": "2026-08-18",
"latestValue": 3.7311
}
],
"total": 21,
"layout": "long",
"series": [
"IUDBEDR",
"IUDSOIA"
],
"dataset": "series",
"missing": [],
"provider": "boe",
"resolved": [
"IUDBEDR",
"IUDSOIA"
]
}
```
---
### Sonia
SONIA — the sterling overnight index average, the UK's risk-free rate.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:boe/sonia`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `from` | string | query | no | First observation date, YYYY-MM-DD. Default 90 days ago. |
| `to` | string | query | no | Last observation date, YYYY-MM-DD. Default today. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:boe/sonia?from=2026-05-01&to=2026-08-20" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:boe/sonia?from=2026-05-01&to=2026-08-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:boe/sonia?from=2026-05-01&to=2026-08-20",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": "2026-08-21",
"from": "2026-05-01",
"unit": "percent per annum",
"count": 76,
"items": [
{
"date": "2026-08-18",
"value": 3.7311
},
{
"date": "2026-08-17",
"value": 3.7312
},
{
"date": "2026-08-14",
"value": 3.7307
},
{
"date": "2026-08-13",
"value": 3.7308
},
{
"date": "2026-08-12",
"value": 3.731
},
{
"date": "2026-08-11",
"value": 3.7315
},
{
"date": "2026-08-10",
"value": 3.7315
},
{
"date": "2026-08-07",
"value": 3.7318
}
],
"title": "SONIA, sterling overnight index average",
"series": "IUDSOIA",
"dataset": "sonia",
"provider": "boe",
"latestDate": "2026-08-18",
"latestValue": 3.7311
}
```
---
## Boj
**Category:** finance · **Slug:** `boj`
**Detail page:** https://zapi.ink/api/finance/boj
Japan's monetary base and its components.
**Tags:** finance, boj
### Monetary Base
Japan's monetary base and its components.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:boj/monetary-base`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `lang` | enum(en|ja) | query | no | Language of the series names and units. Default en. |
| `from` | string | query | no | Earliest month, YYYY-MM. |
| `to` | string | query | no | Latest month, YYYY-MM. |
| `length` | number | query | no | Observations per series, newest first. Default 60, max 20000. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:boj/monetary-base?lang=en&from=2025-01&to=2026-07&length=24" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:boj/monetary-base?lang=en&from=2025-01&to=2026-07&length=24", {
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:boj/monetary-base?lang=en&from=2025-01&to=2026-07&length=24",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": null,
"from": null,
"lang": "en",
"count": 8,
"items": [
{
"end": "2026-07",
"code": "MD01'MABS1AN11@",
"name": "Monetary Base/Average Amounts Outstanding/Year-on-year change",
"unit": "%",
"count": 60,
"start": "1971-01",
"total": 559,
"values": [
{
"value": -13.8,
"period": "2026-07"
},
{
"value": -13.7,
"period": "2026-06"
},
{
"value": -12.2,
"period": "2026-05"
},
{
"value": -11.3,
"period": "2026-04"
},
{
"value": -11.6,
"period": "2026-03"
},
{
"value": -10.6,
"period": "2026-02"
},
{
"value": -9.5,
"period": "2026-01"
},
{
"value": -9.8,
"period": "2025-12"
}
],
"lastUpdate": "2026-08-04",
"latestValue": -13.8,
"latestPeriod": "2026-07"
},
{
"end": "2026-07",
"code": "MD01'MABS2AN116@",
"name": "Monetary Base/Banknotes in Circulation/Average Amounts Outstanding/Year-on-year change",
"unit": "%",
"count": 60,
"start": "1971-01",
"total": 559,
"values": [
{
"value": -1.9,
"period": "2026-07"
},
{
"value": -1.8,
"period": "2026-06"
},
{
"value": -1.7,
"period": "2026-05"
},
{
"value": -1.8,
"period": "2026-04"
},
{
"value": -1.9,
"period": "2026-03"
},
{
"value": -2.2,
"period": "2026-02"
},
{
"value": -2.8,
"period": "2026-01"
},
{
"value": -2.7,
"period": "2025-12"
}
],
"lastUpdate": "2026-08-04",
"latestValue": -1.9,
"latestPeriod": "2026-07"
},
{
"end": "2026-07",
"code": "MD01'MABS2AN117@",
"name": "Monetary Base/Coins in Circulation/Average Amounts Outstanding/Year-on-year change",
"unit": "%",
"count": 60,
"start": "1971-01",
"total": 559,
"values": [
{
"value": -1.1,
"period": "2026-07"
},
{
"value": -1.1,
"period": "2026-06"
},
{
"value": -1.1,
"period": "2026-05"
},
{
"value": -1.1,
"period": "2026-04"
},
{
"value": -1.2,
"period": "2026-03"
},
{
"value": -1.2,
"period": "2026-02"
},
{
"value": -1.3,
"period": "2026-01"
},
{
"value": -1.3,
"period": "2025-12"
}
],
"lastUpdate": "2026-08-04",
"latestValue": -1.1,
"latestPeriod": "2026-07"
},
{
"end": "2026-07",
"code": "MD01'MABS1AN113@",
"name": "Monetary Base/Current Account Balances/Average Amounts Outstanding/Year-on-year change",
"unit": "%",
"count": 60,
"start": "1982-04",
"total": 559,
"values": [
{
"value": -16.6,
"period": "2026-07"
},
{
"value": -16.4,
"period": "2026-06"
},
{
"value": -14.7,
"period": "2026-05"
},
{
"value": -13.5,
"period": "2026-04"
},
{
"value": -13.9,
"period": "2026-03"
},
{
"value": -12.6,
"period": "2026-02"
},
{
"value": -11.1,
"period": "2026-01"
},
{
"value": -11.5,
"period": "2025-12"
}
],
"lastUpdate": "2026-08-04",
"latestValue": -16.6,
"latestPeriod": "2026-07"
},
{
"end": "2026-07",
"code": "MD01'MABS1AN11",
"name": "Monetary Base/Average Amounts Outstanding",
"unit": "100 million yen",
"count": 60,
"start": "1970-01",
"total": 559,
"values": [
{
"value": 5549259,
"period": "2026-07"
},
{
"value": 5592039,
"period": "2026-06"
},
{
"value": 5757634,
"period": "2026-05"
},
{
"value": 5829256,
"period": "2026-04"
},
{
"value": 5707875,
"period": "2026-03"
},
{
"value": 5809326,
"period": "2026-02"
},
{
"value": 5894035,
"period": "2026-01"
},
{
"value": 5941943,
"period": "2025-12"
}
],
"lastUpdate": "2026-08-04",
"latestValue": 5549259,
"latestPeriod": "2026-07"
},
{
"end": "2026-07",
"code": "MD01'MABS2AN116",
"name": "Monetary Base/Banknotes in Circulation/Average Amounts Outstanding",
"unit": "100 million yen",
"count": 60,
"start": "1970-01",
"total": 559,
"values": [
{
"value": 1150060,
"period": "2026-07"
},
{
"value": 1148870,
"period": "2026-06"
},
{
"value": 1158979,
"period": "2026-05"
},
{
"value": 1161152,
"period": "2026-04"
},
{
"value": 1166535,
"period": "2026-03"
},
{
"value": 1170075,
"period": "2026-02"
},
{
"value": 1186847,
"period": "2026-01"
},
{
"value": 1187041,
"period": "2025-12"
}
],
"lastUpdate": "2026-08-04",
"latestValue": 1150060,
"latestPeriod": "2026-07"
},
{
"end": "2026-07",
"code": "MD01'MABS2AN117",
"name": "Monetary Base/Coins in Circulation/Average Amounts Outstanding",
"unit": "100 million yen",
"count": 60,
"start": "1970-01",
"total": 559,
"values": [
{
"value": 45831,
"period": "2026-07"
},
{
"value": 45933,
"period": "2026-06"
},
{
"value": 46035,
"period": "2026-05"
},
{
"value": 46063,
"period": "2026-04"
},
{
"value": 46127,
"period": "2026-03"
},
{
"value": 46234,
"period": "2026-02"
},
{
"value": 46327,
"period": "2026-01"
},
{
"value": 46287,
"period": "2025-12"
}
],
"lastUpdate": "2026-08-04",
"latestValue": 45831,
"latestPeriod": "2026-07"
},
{
"end": "2026-07",
"code": "MD01'MABS1AN113",
"name": "Monetary Base/Current Account Balances/Average Amounts Outstanding",
"unit": "100 million yen",
"count": 60,
"start": "1981-04",
"total": 559,
"values": [
{
"value": 4353368,
"period": "2026-07"
},
{
"value": 4397236,
"period": "2026-06"
},
{
"value": 4552620,
"period": "2026-05"
},
{
"value": 4622041,
"period": "2026-04"
},
{
"value": 4495213,
"period": "2026-03"
},
{
"value": 4593017,
"period": "2026-02"
},
{
"value": 4660861,
"period": "2026-01"
},
{
"value": 4708615,
"period": "2025-12"
}
],
"lastUpdate": "2026-08-04",
"latestValue": 4353368,
"latestPeriod": "2026-07"
}
],
"table": "md01_m_1",
"title": "Monetary Base/Average Amounts Outstanding (Monthly)",
"total": 4472,
"dataset": "monetary-base",
"provider": "boj",
"snapshotAt": "2026-08-21 AM 09:00"
}
```
---
### Table
One of the Bank of Japan's pre-built time-series tables.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:boj/table`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `table` | string | query | yes | Table id. The 28 published ids come from `tables` — ir01_d_1, ir01_m_1, fm01_d_1, md01_m_1, bs02_m_1, ff_q_1, co_q_1 and so on. |
| `lang` | enum(en|ja) | query | no | Language of the series names and units. Default en. |
| `from` | string | query | no | Earliest period, YYYY, YYYY-MM or YYYY-MM-DD to match the table's own frequency. |
| `to` | string | query | no | Latest period, same format as `from`. |
| `length` | number | query | no | Observations per series, newest first. Default 120, max 20000. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:boj/table?table=ir01_m_1&lang=en&from=2020-01&to=2026-07&length=60" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:boj/table?table=ir01_m_1&lang=en&from=2020-01&to=2026-07&length=60", {
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:boj/table?table=ir01_m_1&lang=en&from=2020-01&to=2026-07&length=60",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": null,
"from": null,
"lang": "en",
"count": 1,
"items": [
{
"end": "2026-07",
"code": "IR01'MADR1M",
"name": "The Basic Discount Rate and Basic Loan Rate",
"unit": "Percent per annum",
"count": 120,
"start": "1882-10",
"total": 559,
"values": [
{
"value": 1.25,
"period": "2026-07"
},
{
"value": 1.25,
"period": "2026-06"
},
{
"value": 1,
"period": "2026-05"
},
{
"value": 1,
"period": "2026-04"
},
{
"value": 1,
"period": "2026-03"
},
{
"value": 1,
"period": "2026-02"
},
{
"value": 1,
"period": "2026-01"
},
{
"value": 1,
"period": "2025-12"
}
],
"lastUpdate": "2026-08-04",
"latestValue": 1.25,
"latestPeriod": "2026-07"
}
],
"table": "ir01_m_1",
"title": "Basic Loan Rate (Monthly)",
"total": 559,
"dataset": "table",
"provider": "boj",
"snapshotAt": "2026-08-21 AM 09:00"
}
```
---
### Rates
The Bank of Japan's policy and money-market rates.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:boj/rates`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `frequency` | enum(daily|monthly) | query | no | daily reads ir01_d_1 and fm01_d_1, monthly reads ir01_m_1 and fm02_m_1. Default daily. |
| `lang` | enum(en|ja) | query | no | Language of the series names and units. Default en. |
| `from` | string | query | no | Earliest period, YYYY-MM-DD for daily or YYYY-MM for monthly. |
| `to` | string | query | no | Latest period, same format as `from`. |
| `length` | number | query | no | Observations per series, newest first. Default 60, max 20000. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:boj/rates?frequency=daily&lang=en&from=2026-01&to=2026-08-18&length=30" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:boj/rates?frequency=daily&lang=en&from=2026-01&to=2026-08-18&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:boj/rates?frequency=daily&lang=en&from=2026-01&to=2026-08-18&length=30",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": null,
"from": null,
"lang": "en",
"count": 2,
"items": [
{
"end": "2026-08-19",
"code": "IR01'MADR1Z@D",
"name": "The Basic Discount Rate and Basic Loan Rate",
"unit": "Percent per annum",
"count": 60,
"start": "1882-10-11",
"table": "ir01_d_1",
"total": 10458,
"values": [
{
"value": 1.25,
"period": "2026-08-19"
},
{
"value": 1.25,
"period": "2026-08-18"
},
{
"value": 1.25,
"period": "2026-08-17"
},
{
"value": 1.25,
"period": "2026-08-16"
},
{
"value": 1.25,
"period": "2026-08-15"
},
{
"value": 1.25,
"period": "2026-08-14"
},
{
"value": 1.25,
"period": "2026-08-13"
},
{
"value": 1.25,
"period": "2026-08-12"
}
],
"lastUpdate": "2026-08-21",
"latestValue": 1.25,
"latestPeriod": "2026-08-19"
},
{
"end": "2026-08-19",
"code": "FM01'STRDCLUCON",
"name": "Call Rate, Uncollateralized Overnight, Average (Daily)",
"unit": "percent per annum",
"count": 60,
"start": "1998-01-05",
"table": "fm01_d_1",
"total": 10454,
"values": [
{
"value": 0.977,
"period": "2026-08-19"
},
{
"value": 0.977,
"period": "2026-08-18"
},
{
"value": 0.977,
"period": "2026-08-17"
},
{
"value": null,
"period": "2026-08-16"
},
{
"value": null,
"period": "2026-08-15"
},
{
"value": 0.977,
"period": "2026-08-14"
},
{
"value": 0.977,
"period": "2026-08-13"
},
{
"value": 0.977,
"period": "2026-08-12"
}
],
"lastUpdate": "2026-08-21",
"latestValue": 0.977,
"latestPeriod": "2026-08-19"
}
],
"total": 20912,
"tables": [
"ir01_d_1",
"fm01_d_1"
],
"dataset": "rates",
"provider": "boj",
"frequency": "daily",
"snapshotAt": "2026-08-21 AM 09:00"
}
```
---
### Tables
The Bank of Japan's 28 pre-built time-series tables, with the frequency and
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:boj/tables`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `lang` | enum(en|ja) | query | no | Language of the table and category names. Default en. |
| `query` | string | query | no | Case-insensitive filter over the table id, name and category. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:boj/tables?lang=en&query=rates" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:boj/tables?lang=en&query=rates", {
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:boj/tables?lang=en&query=rates",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"lang": "en",
"count": 28,
"items": [
{
"name": "Basic Loan Rate",
"table": "ir01_d_1",
"csvUrl": "https://www.stat-search.boj.or.jp/ssi/mtshtml/csv/ir01_d_1_en.csv",
"pageUrl": "https://www.stat-search.boj.or.jp/ssi/mtshtml/ir01_d_1_en.html",
"category": "Interest Rates on Deposits and Loans",
"frequency": "daily",
"frequencyLabel": "Daily"
},
{
"name": "Basic Loan Rate",
"table": "ir01_m_1",
"csvUrl": "https://www.stat-search.boj.or.jp/ssi/mtshtml/csv/ir01_m_1_en.csv",
"pageUrl": "https://www.stat-search.boj.or.jp/ssi/mtshtml/ir01_m_1_en.html",
"category": "Interest Rates on Deposits and Loans",
"frequency": "monthly",
"frequencyLabel": "Monthly"
},
{
"name": "Average Interest Rates Posted at Financial Institutions by Type of Deposit",
"table": "ir02_m_1",
"csvUrl": "https://www.stat-search.boj.or.jp/ssi/mtshtml/csv/ir02_m_1_en.csv",
"pageUrl": "https://www.stat-search.boj.or.jp/ssi/mtshtml/ir02_m_1_en.html",
"category": "Interest Rates on Deposits and Loans",
"frequency": "monthly",
"frequencyLabel": "Monthly"
},
{
"name": "Average Contracted Interest Rates on Loans and Discounts",
"table": "ir04_m_1",
"csvUrl": "https://www.stat-search.boj.or.jp/ssi/mtshtml/csv/ir04_m_1_en.csv",
"pageUrl": "https://www.stat-search.boj.or.jp/ssi/mtshtml/ir04_m_1_en.html",
"category": "Interest Rates on Deposits and Loans",
"frequency": "monthly",
"frequencyLabel": "Monthly"
},
{
"name": "Call Rates",
"table": "fm01_d_1",
"csvUrl": "https://www.stat-search.boj.or.jp/ssi/mtshtml/csv/fm01_d_1_en.csv",
"pageUrl": "https://www.stat-search.boj.or.jp/ssi/mtshtml/fm01_d_1_en.html",
"category": "Financial Markets",
"frequency": "daily",
"frequencyLabel": "Daily"
},
{
"name": "Call Rates",
"table": "fm02_m_1",
"csvUrl": "https://www.stat-search.boj.or.jp/ssi/mtshtml/csv/fm02_m_1_en.csv",
"pageUrl": "https://www.stat-search.boj.or.jp/ssi/mtshtml/fm02_m_1_en.html",
"category": "Financial Markets",
"frequency": "monthly",
"frequencyLabel": "Monthly"
},
{
"name": "Foreign Exchange Rate(Tokyo Market Interbank Rates)",
"table": "fm08_d_1",
"csvUrl": "https://www.stat-search.boj.or.jp/ssi/mtshtml/csv/fm08_d_1_en.csv",
"pageUrl": "https://www.stat-search.boj.or.jp/ssi/mtshtml/fm08_d_1_en.html",
"category": "Financial Markets",
"frequency": "daily",
"frequencyLabel": "Daily"
},
{
"name": "Foreign Exchange Rate(Tokyo Market Interbank Rates)",
"table": "fm08_m_1",
"csvUrl": "https://www.stat-search.boj.or.jp/ssi/mtshtml/csv/fm08_m_1_en.csv",
"pageUrl": "https://www.stat-search.boj.or.jp/ssi/mtshtml/fm08_m_1_en.html",
"category": "Financial Markets",
"frequency": "monthly",
"frequencyLabel": "Monthly"
}
],
"query": null,
"total": 28,
"dataset": "tables",
"provider": "boj"
}
```
---
## Bybit
**Category:** finance · **Slug:** `bybit`
**Detail page:** https://zapi.ink/api/finance/bybit
Bybit v5 market data: candles, 5-minute open interest and account ratios with cursor pagination, funding history and instrument specs.
**Tags:** bybit, crypto, derivatives, open-interest, funding, klines
### Account Ratio
Long/short account ratio for one Bybit derivatives contract.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:bybit/account-ratio`
- **Cache TTL:** 30s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Trading symbol. Accepts BTCUSDT, BTC/USDT or btc-usdt |
| `category` | enum(linear|inverse) | query | no | Product line. The ratio is published for derivatives only |
| `period` | enum(5min|15min|30min|1h|4h|1d) | query | no | Sampling interval. Default 5min |
| `start` | string | query | no | Oldest point to include. Epoch ms/s or ISO date |
| `end` | string | query | no | Newest point to include. Epoch ms/s or ISO date |
| `count` | number | query | no | Points per page. Default 200, max 500 |
| `page` | number | query | no | Page number. Default 1, max 20 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:bybit/account-ratio?symbol=BTCUSDT&category=linear&period=5min&start=2020-07-20T00%3A00%3A00Z&end=2020-07-21T00%3A00%3A00Z&count=200&page=1" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:bybit/account-ratio?symbol=BTCUSDT&category=linear&period=5min&start=2020-07-20T00%3A00%3A00Z&end=2020-07-21T00%3A00%3A00Z&count=200&page=1", {
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:bybit/account-ratio?symbol=BTCUSDT&category=linear&period=5min&start=2020-07-20T00%3A00%3A00Z&end=2020-07-21T00%3A00%3A00Z&count=200&page=1",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"page": 1,
"count": 200,
"items": [
{
"date": "2026-08-21T14:15:00.000Z",
"time": 1787321700000,
"longRatio": 0.541,
"shortRatio": 0.459
},
{
"date": "2026-08-21T14:20:00.000Z",
"time": 1787322000000,
"longRatio": 0.5405,
"shortRatio": 0.4595
},
{
"date": "2026-08-21T14:25:00.000Z",
"time": 1787322300000,
"longRatio": 0.5394,
"shortRatio": 0.4606
},
{
"date": "2026-08-21T14:30:00.000Z",
"time": 1787322600000,
"longRatio": 0.5403,
"shortRatio": 0.4597
},
{
"date": "2026-08-21T14:35:00.000Z",
"time": 1787322900000,
"longRatio": 0.541,
"shortRatio": 0.459
},
{
"date": "2026-08-21T14:40:00.000Z",
"time": 1787323200000,
"longRatio": 0.541,
"shortRatio": 0.459
},
{
"date": "2026-08-21T14:45:00.000Z",
"time": 1787323500000,
"longRatio": 0.5405,
"shortRatio": 0.4595
},
{
"date": "2026-08-21T14:50:00.000Z",
"time": 1787323800000,
"longRatio": 0.5414,
"shortRatio": 0.4586
}
],
"period": "5min",
"symbol": "BTCUSDT",
"dataset": "account-ratio",
"hasMore": true,
"category": "linear",
"nextPage": 2,
"provider": "bybit"
}
```
---
### Funding History
Settled funding rates for one Bybit perpetual.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:bybit/funding-history`
- **Cache TTL:** 60s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Trading symbol. Accepts BTCUSDT, BTC/USDT or btc-usdt |
| `category` | enum(linear|inverse) | query | no | Product line. Funding applies to perpetuals only |
| `start` | string | query | no | Oldest settlement to include. Epoch ms/s or ISO date |
| `end` | string | query | no | Newest settlement to include. Epoch ms/s or ISO date |
| `count` | number | query | no | Settlements per page. Default 200, max 200 |
| `page` | number | query | no | Page number, walking backwards in time. Default 1, max 20 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:bybit/funding-history?symbol=BTCUSDT&category=linear&start=2024-01-01T00%3A00%3A00Z&end=2024-02-01T00%3A00%3A00Z&count=200&page=1" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:bybit/funding-history?symbol=BTCUSDT&category=linear&start=2024-01-01T00%3A00%3A00Z&end=2024-02-01T00%3A00%3A00Z&count=200&page=1", {
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:bybit/funding-history?symbol=BTCUSDT&category=linear&start=2024-01-01T00%3A00%3A00Z&end=2024-02-01T00%3A00%3A00Z&count=200&page=1",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"page": 1,
"count": 200,
"items": [
{
"date": "2026-06-16T16:00:00.000Z",
"time": 1781625600000,
"symbol": "BTCUSDT",
"fundingRate": 0.00004902
},
{
"date": "2026-06-17T00:00:00.000Z",
"time": 1781654400000,
"symbol": "BTCUSDT",
"fundingRate": 0.00005459
},
{
"date": "2026-06-17T08:00:00.000Z",
"time": 1781683200000,
"symbol": "BTCUSDT",
"fundingRate": 0.00001567
},
{
"date": "2026-06-17T16:00:00.000Z",
"time": 1781712000000,
"symbol": "BTCUSDT",
"fundingRate": 0.0000036
},
{
"date": "2026-06-18T00:00:00.000Z",
"time": 1781740800000,
"symbol": "BTCUSDT",
"fundingRate": -0.00000327
},
{
"date": "2026-06-18T08:00:00.000Z",
"time": 1781769600000,
"symbol": "BTCUSDT",
"fundingRate": -0.00001297
},
{
"date": "2026-06-18T16:00:00.000Z",
"time": 1781798400000,
"symbol": "BTCUSDT",
"fundingRate": -0.00002986
},
{
"date": "2026-06-19T00:00:00.000Z",
"time": 1781827200000,
"symbol": "BTCUSDT",
"fundingRate": -0.0000469
}
],
"symbol": "BTCUSDT",
"dataset": "funding-history",
"hasMore": true,
"category": "linear",
"nextPage": 2,
"provider": "bybit"
}
```
---
### Index Price Kline
Index-price candles for one Bybit derivatives contract.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:bybit/index-price-kline`
- **Cache TTL:** 30s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Trading symbol. Accepts BTCUSDT, BTC/USDT or btc-usdt |
| `category` | enum(linear|inverse) | query | no | Product line. Default linear |
| `interval` | enum(1|3|5|15|30|60|120|240|360|720|D|W|M) | query | no | Candle size in minutes, or D/W/M. Default 5 |
| `start` | string | query | no | Oldest candle to include. Epoch ms/s or ISO date |
| `end` | string | query | no | Newest candle to include. Epoch ms/s or ISO date |
| `count` | number | query | no | Candles per page. Default 200, max 1000 |
| `page` | number | query | no | Page number, walking backwards in time. Default 1, max 20 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:bybit/index-price-kline?symbol=BTCUSDT&category=linear&interval=5&start=2024-01-01T00%3A00%3A00Z&end=2024-01-02T00%3A00%3A00Z&count=200&page=1" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:bybit/index-price-kline?symbol=BTCUSDT&category=linear&interval=5&start=2024-01-01T00%3A00%3A00Z&end=2024-01-02T00%3A00%3A00Z&count=200&page=1", {
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:bybit/index-price-kline?symbol=BTCUSDT&category=linear&interval=5&start=2024-01-01T00%3A00%3A00Z&end=2024-01-02T00%3A00%3A00Z&count=200&page=1",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"page": 1,
"count": 200,
"items": [
{
"low": 76551.94,
"date": "2026-08-21T14:15:00.000Z",
"high": 76969,
"open": 76766.15,
"close": 76662.95,
"openTime": 1787321700000,
"closeTime": 1787321999999
},
{
"low": 76552.24,
"date": "2026-08-21T14:20:00.000Z",
"high": 77088.57,
"open": 76662.95,
"close": 77023.18,
"openTime": 1787322000000,
"closeTime": 1787322299999
},
{
"low": 76997.76,
"date": "2026-08-21T14:25:00.000Z",
"high": 77199.27,
"open": 77023.18,
"close": 77064.48,
"openTime": 1787322300000,
"closeTime": 1787322599999
},
{
"low": 77060.76,
"date": "2026-08-21T14:30:00.000Z",
"high": 77223.69,
"open": 77064.48,
"close": 77095.41,
"openTime": 1787322600000,
"closeTime": 1787322899999
},
{
"low": 76858.2,
"date": "2026-08-21T14:35:00.000Z",
"high": 77237.6,
"open": 77095.41,
"close": 76864.36,
"openTime": 1787322900000,
"closeTime": 1787323199999
},
{
"low": 76861.61,
"date": "2026-08-21T14:40:00.000Z",
"high": 77146.97,
"open": 76864.36,
"close": 77143.94,
"openTime": 1787323200000,
"closeTime": 1787323499999
},
{
"low": 77121.32,
"date": "2026-08-21T14:45:00.000Z",
"high": 77365.53,
"open": 77143.94,
"close": 77342.6,
"openTime": 1787323500000,
"closeTime": 1787323799999
},
{
"low": 77295.4,
"date": "2026-08-21T14:50:00.000Z",
"high": 77439.05,
"open": 77342.6,
"close": 77303.98,
"openTime": 1787323800000,
"closeTime": 1787324099999
}
],
"symbol": "BTCUSDT",
"dataset": "index-price-kline",
"hasMore": true,
"category": "linear",
"interval": "5",
"nextPage": 2,
"provider": "bybit"
}
```
---
### Instruments Info
Contract specifications: tick size, lot size, leverage, minimum notional.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:bybit/instruments-info`
- **Cache TTL:** 600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `category` | enum(linear|inverse|spot|option) | query | no | Product line. Default linear |
| `symbol` | string | query | no | One symbol. Omit to list the whole product line |
| `baseCoin` | string | query | no | Filter by base coin |
| `status` | enum(Trading|PreLaunch|Delivering|Closed) | query | no | Filter by contract status |
| `count` | number | query | no | Instruments per page. Default 500, max 1000 |
| `page` | number | query | no | Page number. Default 1, max 20 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:bybit/instruments-info?category=linear&symbol=BTCUSDT&baseCoin=BTC&status=Trading&count=500&page=1" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:bybit/instruments-info?category=linear&symbol=BTCUSDT&baseCoin=BTC&status=Trading&count=500&page=1", {
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:bybit/instruments-info?category=linear&symbol=BTCUSDT&baseCoin=BTC&status=Trading&count=500&page=1",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"page": 1,
"count": 500,
"items": [
{
"status": "Trading",
"symbol": "0GUSDT",
"qtyStep": 0.1,
"baseCoin": "0G",
"maxPrice": 1999.9998,
"minPrice": 0.0001,
"tickSize": 0.0001,
"quoteCoin": "USDT",
"launchDate": "2025-09-18T06:08:56.000Z",
"launchTime": 1758175736000,
"priceScale": 4,
"settleCoin": "USDT",
"copyTrading": "both",
"maxLeverage": 50,
"maxOrderQty": 350000,
"minLeverage": 1,
"minOrderQty": 0.1,
"contractType": "LinearPerpetual",
"leverageStep": 0.01,
"minNotionalValue": 5,
"unifiedMarginTrade": true,
"fundingIntervalMinutes": 240
},
{
"status": "Trading",
"symbol": "1000000BABYDOGEUSDT",
"qtyStep": 100,
"baseCoin": "1000000BABYDOGE",
"maxPrice": 1.9999998,
"minPrice": 1e-7,
"tickSize": 1e-7,
"quoteCoin": "USDT",
"launchDate": "2024-06-11T11:34:12.000Z",
"launchTime": 1718105652000,
"priceScale": 7,
"settleCoin": "USDT",
"copyTrading": "both",
"maxLeverage": 25,
"maxOrderQty": 220000000,
"minLeverage": 1,
"minOrderQty": 100,
"contractType": "LinearPerpetual",
"leverageStep": 0.01,
"minNotionalValue": 5,
"unifiedMarginTrade": true,
"fundingIntervalMinutes": 240
},
{
"status": "Trading",
"symbol": "1000000MOGUSDT",
"qtyStep": 1,
"baseCoin": "1000000MOG",
"maxPrice": 1999.9998,
"minPrice": 0.0001,
"tickSize": 0.0001,
"quoteCoin": "USDT",
"launchDate": "2024-05-16T15:43:33.000Z",
"launchTime": 1715874213000,
"priceScale": 5,
"settleCoin": "USDT",
"copyTrading": "both",
"maxLeverage": 50,
"maxOrderQty": 1500000,
"minLeverage": 1,
"minOrderQty": 1,
"contractType": "LinearPerpetual",
"leverageStep": 0.01,
"minNotionalValue": 5,
"unifiedMarginTrade": true,
"fundingIntervalMinutes": 240
},
{
"status": "Trading",
"symbol": "10000NEXUSDT",
"qtyStep": 10,
"baseCoin": "10000NEX",
"maxPrice": 199.99998,
"minPrice": 0.00001,
"tickSize": 0.00001,
"quoteCoin": "USDT",
"launchDate": "2026-05-21T07:57:22.000Z",
"launchTime": 1779350242000,
"priceScale": 5,
"settleCoin": "USDT",
"copyTrading": "none",
"maxLeverage": 10,
"maxOrderQty": 3600000,
"minLeverage": 1,
"minOrderQty": 10,
"contractType": "LinearPerpetual",
"leverageStep": 0.01,
"minNotionalValue": 5,
"unifiedMarginTrade": true,
"fundingIntervalMinutes": 240
},
{
"status": "Trading",
"symbol": "10000SATSUSDT",
"qtyStep": 100,
"baseCoin": "10000SATS",
"maxPrice": 0.19999998,
"minPrice": 1e-8,
"tickSize": 1e-8,
"quoteCoin": "USDT",
"launchDate": "2023-11-16T09:41:35.000Z",
"launchTime": 1700127695000,
"priceScale": 8,
"settleCoin": "USDT",
"copyTrading": "both",
"maxLeverage": 12.5,
"maxOrderQty": 410000000,
"minLeverage": 1,
"minOrderQty": 100,
"contractType": "LinearPerpetual",
"leverageStep": 0.01,
"minNotionalValue": 5,
"unifiedMarginTrade": true,
"fundingIntervalMinutes": 240
},
{
"status": "Trading",
"symbol": "1000BONKPERP",
"qtyStep": 10,
"baseCoin": "1000BONK",
"maxPrice": 19.999998,
"minPrice": 0.000001,
"tickSize": 0.000001,
"quoteCoin": "USDC",
"launchDate": "2024-11-28T08:42:56.000Z",
"launchTime": 1732783376000,
"priceScale": 6,
"settleCoin": "USDC",
"copyTrading": "none",
"maxLeverage": 75,
"maxOrderQty": 5500000,
"minLeverage": 1,
"minOrderQty": 10,
"contractType": "LinearPerpetual",
"leverageStep": 0.01,
"minNotionalValue": 5,
"unifiedMarginTrade": true,
"fundingIntervalMinutes": 480
},
{
"status": "Trading",
"symbol": "1000BONKUSDT",
"qtyStep": 100,
"baseCoin": "1000BONK",
"maxPrice": 19.999998,
"minPrice": 0.000001,
"tickSize": 0.000001,
"quoteCoin": "USDT",
"launchDate": "2023-01-06T02:10:39.000Z",
"launchTime": 1672971039000,
"priceScale": 7,
"settleCoin": "USDT",
"copyTrading": "both",
"maxLeverage": 50,
"maxOrderQty": 60000000,
"minLeverage": 1,
"minOrderQty": 100,
"contractType": "LinearPerpetual",
"leverageStep": 0.01,
"minNotionalValue": 5,
"unifiedMarginTrade": true,
"fundingIntervalMinutes": 240
},
{
"status": "Trading",
"symbol": "1000BTTUSDT",
"qtyStep": 100,
"baseCoin": "1000BTT",
"maxPrice": 1.9999998,
"minPrice": 1e-7,
"tickSize": 1e-7,
"quoteCoin": "USDT",
"launchDate": "2022-02-25T06:08:18.000Z",
"launchTime": 1645769298000,
"priceScale": 7,
"settleCoin": "USDT",
"copyTrading": "none",
"maxLeverage": 12.5,
"maxOrderQty": 60000000,
"minLeverage": 1,
"minOrderQty": 100,
"contractType": "LinearPerpetual",
"leverageStep": 0.01,
"minNotionalValue": 5,
"unifiedMarginTrade": true,
"fundingIntervalMinutes": 480
}
],
"symbol": null,
"dataset": "instruments-info",
"hasMore": true,
"baseCoin": null,
"category": "linear",
"nextPage": 2,
"provider": "bybit"
}
```
---
### Kline
OHLCV candles for one Bybit spot or derivatives symbol.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:bybit/kline`
- **Cache TTL:** 30s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Trading symbol. Accepts BTCUSDT, BTC/USDT or btc-usdt |
| `category` | enum(linear|inverse|spot) | query | no | Product line. Default linear |
| `interval` | enum(1|3|5|15|30|60|120|240|360|720|D|W|M) | query | no | Candle size in minutes, or D/W/M. Default 5 |
| `start` | string | query | no | Oldest candle to include. Epoch ms/s or ISO date |
| `end` | string | query | no | Newest candle to include. Epoch ms/s or ISO date |
| `count` | number | query | no | Candles per page. Default 200, max 1000 |
| `page` | number | query | no | Page number, walking backwards in time. Default 1, max 20 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:bybit/kline?symbol=BTCUSDT&category=linear&interval=5&start=2020-03-26T00%3A00%3A00Z&end=2020-03-27T00%3A00%3A00Z&count=200&page=1" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:bybit/kline?symbol=BTCUSDT&category=linear&interval=5&start=2020-03-26T00%3A00%3A00Z&end=2020-03-27T00%3A00%3A00Z&count=200&page=1", {
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:bybit/kline?symbol=BTCUSDT&category=linear&interval=5&start=2020-03-26T00%3A00%3A00Z&end=2020-03-27T00%3A00%3A00Z&count=200&page=1",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"page": 1,
"count": 200,
"items": [
{
"low": 76535.3,
"date": "2026-08-21T14:15:00.000Z",
"high": 76968.9,
"open": 76762.3,
"close": 76662.9,
"volume": 571.511,
"openTime": 1787321700000,
"turnover": 43857483.1506,
"closeTime": 1787321999999
},
{
"low": 76544,
"date": "2026-08-21T14:20:00.000Z",
"high": 77094.2,
"open": 76662.9,
"close": 77012.4,
"volume": 950.169,
"openTime": 1787322000000,
"turnover": 73025640.7736,
"closeTime": 1787322299999
},
{
"low": 76979.6,
"date": "2026-08-21T14:25:00.000Z",
"high": 77215.7,
"open": 77012.4,
"close": 77057.9,
"volume": 451.086,
"openTime": 1787322300000,
"turnover": 34779300.3926,
"closeTime": 1787322599999
},
{
"low": 77057.9,
"date": "2026-08-21T14:30:00.000Z",
"high": 77239.1,
"open": 77057.9,
"close": 77086.8,
"volume": 240.025,
"openTime": 1787322600000,
"turnover": 18517989.0454,
"closeTime": 1787322899999
},
{
"low": 76855.1,
"date": "2026-08-21T14:35:00.000Z",
"high": 77233.3,
"open": 77086.8,
"close": 76862.9,
"volume": 358.841,
"openTime": 1787322900000,
"turnover": 27639309.2306,
"closeTime": 1787323199999
},
{
"low": 76855.1,
"date": "2026-08-21T14:40:00.000Z",
"high": 77157.9,
"open": 76862.9,
"close": 77155.8,
"volume": 240.278,
"openTime": 1787323200000,
"turnover": 18510485.3428,
"closeTime": 1787323499999
},
{
"low": 77106.6,
"date": "2026-08-21T14:45:00.000Z",
"high": 77387.9,
"open": 77155.8,
"close": 77346.1,
"volume": 322.436,
"openTime": 1787323500000,
"turnover": 24917607.0859,
"closeTime": 1787323799999
},
{
"low": 77288.6,
"date": "2026-08-21T14:50:00.000Z",
"high": 77448.8,
"open": 77346.1,
"close": 77308.8,
"volume": 334.45,
"openTime": 1787323800000,
"turnover": 25884342.3251,
"closeTime": 1787324099999
}
],
"symbol": "BTCUSDT",
"dataset": "kline",
"hasMore": true,
"category": "linear",
"interval": "5",
"nextPage": 2,
"provider": "bybit"
}
```
---
### Mark Price Kline
Mark-price candles for one Bybit derivatives contract.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:bybit/mark-price-kline`
- **Cache TTL:** 30s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Trading symbol. Accepts BTCUSDT, BTC/USDT or btc-usdt |
| `category` | enum(linear|inverse) | query | no | Product line. Default linear |
| `interval` | enum(1|3|5|15|30|60|120|240|360|720|D|W|M) | query | no | Candle size in minutes, or D/W/M. Default 5 |
| `start` | string | query | no | Oldest candle to include. Epoch ms/s or ISO date |
| `end` | string | query | no | Newest candle to include. Epoch ms/s or ISO date |
| `count` | number | query | no | Candles per page. Default 200, max 1000 |
| `page` | number | query | no | Page number, walking backwards in time. Default 1, max 20 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:bybit/mark-price-kline?symbol=BTCUSDT&category=linear&interval=5&start=2024-01-01T00%3A00%3A00Z&end=2024-01-02T00%3A00%3A00Z&count=200&page=1" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:bybit/mark-price-kline?symbol=BTCUSDT&category=linear&interval=5&start=2024-01-01T00%3A00%3A00Z&end=2024-01-02T00%3A00%3A00Z&count=200&page=1", {
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:bybit/mark-price-kline?symbol=BTCUSDT&category=linear&interval=5&start=2024-01-01T00%3A00%3A00Z&end=2024-01-02T00%3A00%3A00Z&count=200&page=1",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"page": 1,
"count": 200,
"items": [
{
"low": 76549.86,
"date": "2026-08-21T14:15:00.000Z",
"high": 76952.7,
"open": 76762.4,
"close": 76661.02,
"openTime": 1787321700000,
"closeTime": 1787321999999
},
{
"low": 76553.34,
"date": "2026-08-21T14:20:00.000Z",
"high": 77090.5,
"open": 76661.02,
"close": 77023.13,
"openTime": 1787322000000,
"closeTime": 1787322299999
},
{
"low": 76996.67,
"date": "2026-08-21T14:25:00.000Z",
"high": 77185.03,
"open": 77023.13,
"close": 77060.69,
"openTime": 1787322300000,
"closeTime": 1787322599999
},
{
"low": 77058.8,
"date": "2026-08-21T14:30:00.000Z",
"high": 77225.06,
"open": 77060.69,
"close": 77090.06,
"openTime": 1787322600000,
"closeTime": 1787322899999
},
{
"low": 76855.1,
"date": "2026-08-21T14:35:00.000Z",
"high": 77233.3,
"open": 77090.06,
"close": 76862.9,
"openTime": 1787322900000,
"closeTime": 1787323199999
},
{
"low": 76855.1,
"date": "2026-08-21T14:40:00.000Z",
"high": 77145.77,
"open": 76862.9,
"close": 77145.77,
"openTime": 1787323200000,
"closeTime": 1787323499999
},
{
"low": 77123.25,
"date": "2026-08-21T14:45:00.000Z",
"high": 77366.91,
"open": 77145.77,
"close": 77345.3,
"openTime": 1787323500000,
"closeTime": 1787323799999
},
{
"low": 77296.48,
"date": "2026-08-21T14:50:00.000Z",
"high": 77443.34,
"open": 77345.3,
"close": 77308.42,
"openTime": 1787323800000,
"closeTime": 1787324099999
}
],
"symbol": "BTCUSDT",
"dataset": "mark-price-kline",
"hasMore": true,
"category": "linear",
"interval": "5",
"nextPage": 2,
"provider": "bybit"
}
```
---
### Open Interest
Open-interest series for one Bybit derivatives contract, down to five minutes.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:bybit/open-interest`
- **Cache TTL:** 30s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Trading symbol. Accepts BTCUSDT, BTC/USDT or btc-usdt |
| `category` | enum(linear|inverse) | query | no | Product line. Open interest is published for derivatives only |
| `intervalTime` | enum(5min|15min|30min|1h|4h|1d) | query | no | Sampling interval. Default 5min |
| `start` | string | query | no | Oldest point to include. Epoch ms/s or ISO date |
| `end` | string | query | no | Newest point to include. Epoch ms/s or ISO date |
| `count` | number | query | no | Points per page. Default 200, max 200 |
| `page` | number | query | no | Page number. Default 1, max 20 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:bybit/open-interest?symbol=BTCUSDT&category=linear&intervalTime=5min&start=2021-01-01T00%3A00%3A00Z&end=2021-01-02T00%3A00%3A00Z&count=200&page=1" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:bybit/open-interest?symbol=BTCUSDT&category=linear&intervalTime=5min&start=2021-01-01T00%3A00%3A00Z&end=2021-01-02T00%3A00%3A00Z&count=200&page=1", {
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:bybit/open-interest?symbol=BTCUSDT&category=linear&intervalTime=5min&start=2021-01-01T00%3A00%3A00Z&end=2021-01-02T00%3A00%3A00Z&count=200&page=1",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"page": 1,
"count": 200,
"items": [
{
"date": "2026-08-21T14:15:00.000Z",
"time": 1787321700000,
"openInterest": 49825.159,
"singleOpenInterest": 24912.58
},
{
"date": "2026-08-21T14:20:00.000Z",
"time": 1787322000000,
"openInterest": 49904.981,
"singleOpenInterest": 24952.491
},
{
"date": "2026-08-21T14:25:00.000Z",
"time": 1787322300000,
"openInterest": 49950.202,
"singleOpenInterest": 24975.101
},
{
"date": "2026-08-21T14:30:00.000Z",
"time": 1787322600000,
"openInterest": 49894.376,
"singleOpenInterest": 24947.188
},
{
"date": "2026-08-21T14:35:00.000Z",
"time": 1787322900000,
"openInterest": 49893.606,
"singleOpenInterest": 24946.803
},
{
"date": "2026-08-21T14:40:00.000Z",
"time": 1787323200000,
"openInterest": 49727.085,
"singleOpenInterest": 24863.543
},
{
"date": "2026-08-21T14:45:00.000Z",
"time": 1787323500000,
"openInterest": 49747.449,
"singleOpenInterest": 24873.725
},
{
"date": "2026-08-21T14:50:00.000Z",
"time": 1787323800000,
"openInterest": 49773.817,
"singleOpenInterest": 24886.909
}
],
"symbol": "BTCUSDT",
"dataset": "open-interest",
"hasMore": true,
"category": "linear",
"nextPage": 2,
"provider": "bybit",
"intervalTime": "5min"
}
```
---
### Orderbook
Order-book snapshot for one Bybit symbol.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:bybit/orderbook`
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Trading symbol. Accepts BTCUSDT, BTC/USDT or btc-usdt |
| `category` | enum(linear|inverse|spot|option) | query | no | Product line. Default linear |
| `count` | number | query | no | Levels per side. Capped at 500 linear/inverse, 200 spot, 25 option |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:bybit/orderbook?symbol=BTCUSDT&category=linear&count=50" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:bybit/orderbook?symbol=BTCUSDT&category=linear&count=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:bybit/orderbook?symbol=BTCUSDT&category=linear&count=50",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"asks": [
{
"size": 0.009,
"price": 77505.3
},
{
"size": 0.001,
"price": 77505.4
},
{
"size": 0.001,
"price": 77506
},
{
"size": 0.071,
"price": 77506.7
},
{
"size": 0.002,
"price": 77507
},
{
"size": 0.001,
"price": 77508.9
},
{
"size": 0.001,
"price": 77510.4
},
{
"size": 0.002,
"price": 77510.5
}
],
"bids": [
{
"size": 5.51,
"price": 77505.2
},
{
"size": 0.001,
"price": 77505.1
},
{
"size": 0.565,
"price": 77504.8
},
{
"size": 0.287,
"price": 77504.5
},
{
"size": 0.433,
"price": 77504.1
},
{
"size": 0.288,
"price": 77504
},
{
"size": 0.002,
"price": 77503.8
},
{
"size": 0.432,
"price": 77503.7
}
],
"date": "2026-08-22T06:51:01.405Z",
"time": 1787381461405,
"symbol": "BTCUSDT",
"dataset": "orderbook",
"askCount": 50,
"bidCount": 50,
"category": "linear",
"provider": "bybit",
"sequence": 786674036292,
"updateId": 12964032,
"matchTime": 1787381461404
}
```
---
### Premium Index Kline
Premium-index candles — the basis Bybit funds against — for one perpetual.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:bybit/premium-index-kline`
- **Cache TTL:** 30s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Trading symbol. Accepts BTCUSDT, BTC/USDT or btc-usdt |
| `category` | enum(linear) | query | no | Product line. Premium index is published for linear contracts only |
| `interval` | enum(1|3|5|15|30|60|120|240|360|720|D|W|M) | query | no | Candle size in minutes, or D/W/M. Default 5 |
| `start` | string | query | no | Oldest candle to include. Epoch ms/s or ISO date |
| `end` | string | query | no | Newest candle to include. Epoch ms/s or ISO date |
| `count` | number | query | no | Candles per page. Default 200, max 1000 |
| `page` | number | query | no | Page number, walking backwards in time. Default 1, max 20 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:bybit/premium-index-kline?symbol=BTCUSDT&category=linear&interval=5&start=2024-01-01T00%3A00%3A00Z&end=2024-01-02T00%3A00%3A00Z&count=200&page=1" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:bybit/premium-index-kline?symbol=BTCUSDT&category=linear&interval=5&start=2024-01-01T00%3A00%3A00Z&end=2024-01-02T00%3A00%3A00Z&count=200&page=1", {
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:bybit/premium-index-kline?symbol=BTCUSDT&category=linear&interval=5&start=2024-01-01T00%3A00%3A00Z&end=2024-01-02T00%3A00%3A00Z&count=200&page=1",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"page": 1,
"count": 200,
"items": [
{
"low": -0.00011059,
"date": "2026-08-21T14:15:00.000Z",
"high": -0.00008915,
"open": -0.00005986,
"close": -0.00011059,
"openTime": 1787321700000,
"closeTime": 1787321999999
},
{
"low": -0.00004943,
"date": "2026-08-21T14:20:00.000Z",
"high": 0.00014251,
"open": -0.00011059,
"close": -0.00004943,
"openTime": 1787322000000,
"closeTime": 1787322299999
},
{
"low": -0.00000355,
"date": "2026-08-21T14:25:00.000Z",
"high": 0,
"open": -0.00004943,
"close": -0.00000355,
"openTime": 1787322300000,
"closeTime": 1787322599999
},
{
"low": -0.00013182,
"date": "2026-08-21T14:30:00.000Z",
"high": 0,
"open": -0.00000355,
"close": -0.00013182,
"openTime": 1787322600000,
"closeTime": 1787322899999
},
{
"low": -0.000099,
"date": "2026-08-21T14:35:00.000Z",
"high": 0,
"open": -0.00013182,
"close": 0,
"openTime": 1787322900000,
"closeTime": 1787323199999
},
{
"low": -0.00002121,
"date": "2026-08-21T14:40:00.000Z",
"high": 0,
"open": 0,
"close": -0.00002121,
"openTime": 1787323200000,
"closeTime": 1787323499999
},
{
"low": 0.00003269,
"date": "2026-08-21T14:45:00.000Z",
"high": 0.00003375,
"open": -0.00002121,
"close": 0.00003269,
"openTime": 1787323500000,
"closeTime": 1787323799999
},
{
"low": 0.00007119,
"date": "2026-08-21T14:50:00.000Z",
"high": 0.00014635,
"open": 0.00003269,
"close": 0.00014635,
"openTime": 1787323800000,
"closeTime": 1787324099999
}
],
"symbol": "BTCUSDT",
"dataset": "premium-index-kline",
"hasMore": true,
"category": "linear",
"interval": "5",
"nextPage": 2,
"provider": "bybit"
}
```
---
### Recent Trade
Public prints for one Bybit symbol, newest first.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:bybit/recent-trade`
- **Cache TTL:** 5s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Trading symbol. Accepts BTCUSDT, BTC/USDT or btc-usdt |
| `category` | enum(linear|inverse|spot|option) | query | no | Product line. Default linear |
| `baseCoin` | string | query | no | Base coin, for option prints across a whole coin |
| `count` | number | query | no | Prints to return. Default 100, max 1000 (spot caps at 60) |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:bybit/recent-trade?symbol=BTCUSDT&category=linear&baseCoin=BTC&count=100" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:bybit/recent-trade?symbol=BTCUSDT&category=linear&baseCoin=BTC&count=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:bybit/recent-trade?symbol=BTCUSDT&category=linear&baseCoin=BTC&count=100",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 100,
"items": [
{
"date": "2026-08-22T06:51:00.881Z",
"side": "sell",
"size": 0.001,
"time": 1787381460881,
"price": 77501,
"symbol": "BTCUSDT",
"tradeId": "2c89e68c-fb52-5c18-8b88-5220608dc058",
"sequence": 786674002571,
"isRpiTrade": false,
"isBlockTrade": false
},
{
"date": "2026-08-22T06:51:00.881Z",
"side": "sell",
"size": 0.001,
"time": 1787381460881,
"price": 77501.1,
"symbol": "BTCUSDT",
"tradeId": "98100331-249f-5bcd-9d63-b74b03aed3bc",
"sequence": 786674002571,
"isRpiTrade": false,
"isBlockTrade": false
},
{
"date": "2026-08-22T06:51:00.881Z",
"side": "sell",
"size": 0.001,
"time": 1787381460881,
"price": 77501.1,
"symbol": "BTCUSDT",
"tradeId": "5511e988-a85a-59ed-843c-5b358bf46ab9",
"sequence": 786674002571,
"isRpiTrade": false,
"isBlockTrade": false
},
{
"date": "2026-08-22T06:51:00.881Z",
"side": "sell",
"size": 0.002,
"time": 1787381460881,
"price": 77501.2,
"symbol": "BTCUSDT",
"tradeId": "7393f4b5-a345-515d-a173-4825b7373ccb",
"sequence": 786674002571,
"isRpiTrade": false,
"isBlockTrade": false
},
{
"date": "2026-08-22T06:51:00.881Z",
"side": "sell",
"size": 0.001,
"time": 1787381460881,
"price": 77501.6,
"symbol": "BTCUSDT",
"tradeId": "2fd8ce73-9e93-5f2f-935b-839e69f3c480",
"sequence": 786674002571,
"isRpiTrade": false,
"isBlockTrade": false
},
{
"date": "2026-08-22T06:51:00.881Z",
"side": "sell",
"size": 0.001,
"time": 1787381460881,
"price": 77501.7,
"symbol": "BTCUSDT",
"tradeId": "20cc9e3e-9d8b-5389-8290-aaf724e50a4f",
"sequence": 786674002571,
"isRpiTrade": false,
"isBlockTrade": false
},
{
"date": "2026-08-22T06:51:00.881Z",
"side": "sell",
"size": 0.001,
"time": 1787381460881,
"price": 77501.7,
"symbol": "BTCUSDT",
"tradeId": "b433b757-3b7c-52a1-947a-80e77e49ccda",
"sequence": 786674002571,
"isRpiTrade": false,
"isBlockTrade": false
},
{
"date": "2026-08-22T06:51:00.881Z",
"side": "sell",
"size": 0.003,
"time": 1787381460881,
"price": 77502.3,
"symbol": "BTCUSDT",
"tradeId": "8feedeaa-df93-517e-98bf-fd0900613b5c",
"sequence": 786674002571,
"isRpiTrade": false,
"isBlockTrade": false
}
],
"symbol": "BTCUSDT",
"dataset": "recent-trade",
"category": "linear",
"provider": "bybit"
}
```
---
### Tickers
24h statistics for every Bybit symbol in one product line, or for one symbol.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:bybit/tickers`
- **Cache TTL:** 15s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `category` | enum(linear|inverse|spot|option) | query | no | Product line. Default linear |
| `symbol` | string | query | no | One symbol. Omit to list the whole product line |
| `baseCoin` | string | query | no | Filter by base coin. Required for option when no symbol is given |
| `expDate` | string | query | no | Option expiry filter, Bybit's own DDMMMYY form |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:bybit/tickers?category=linear&symbol=BTCUSDT&baseCoin=BTC&expDate=25DEC26" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:bybit/tickers?category=linear&symbol=BTCUSDT&baseCoin=BTC&expDate=25DEC26", {
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:bybit/tickers?category=linear&symbol=BTCUSDT&baseCoin=BTC&expDate=25DEC26",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 837,
"items": [
{
"symbol": "0GUSDT",
"askSize": 387.8,
"bidSize": 385.9,
"askPrice": 0.1687,
"bidPrice": 0.1686,
"lastPrice": 0.1687,
"markPrice": 0.1687,
"volume24h": 13622457.9,
"indexPrice": 0.1686,
"fundingRate": 0.00005,
"lowPrice24h": 0.1415,
"prevPrice1h": 0.1673,
"turnover24h": 2302180.649,
"highPrice24h": 0.1891,
"openInterest": 10957531.4,
"prevPrice24h": 0.1641,
"nextFundingDate": "2026-08-22T08:00:00.000Z",
"nextFundingTime": 1787385600000,
"openInterestValue": 1848535.55,
"priceChangePct24h": 0.028031
},
{
"symbol": "1000000BABYDOGEUSDT",
"askSize": 390300,
"bidSize": 165200,
"askPrice": 0.0003929,
"bidPrice": 0.0003927,
"lastPrice": 0.000393,
"markPrice": 0.0003925,
"volume24h": 3443243800,
"indexPrice": 0.0003918,
"fundingRate": 0.00005,
"lowPrice24h": 0.0003689,
"prevPrice1h": 0.0003946,
"turnover24h": 1345216.6154,
"highPrice24h": 0.0004229,
"openInterest": 1236552200,
"prevPrice24h": 0.0003735,
"nextFundingDate": "2026-08-22T08:00:00.000Z",
"nextFundingTime": 1787385600000,
"openInterestValue": 485346.74,
"priceChangePct24h": 0.052208
},
{
"symbol": "1000000MOGUSDT",
"askSize": 2193,
"bidSize": 4930,
"askPrice": 0.1227,
"bidPrice": 0.1225,
"lastPrice": 0.1227,
"markPrice": 0.12261,
"volume24h": 19550740,
"indexPrice": 0.12184,
"fundingRate": 0.00043828,
"lowPrice24h": 0.1183,
"prevPrice1h": 0.1225,
"turnover24h": 2460836.7394,
"highPrice24h": 0.1367,
"openInterest": 9500852,
"prevPrice24h": 0.1186,
"nextFundingDate": "2026-08-22T08:00:00.000Z",
"nextFundingTime": 1787385600000,
"openInterestValue": 1164899.46,
"priceChangePct24h": 0.034569
},
{
"symbol": "10000NEXUSDT",
"askSize": 4760,
"bidSize": 520,
"askPrice": 0.01539,
"bidPrice": 0.01537,
"lastPrice": 0.01539,
"markPrice": 0.01534,
"volume24h": 3140060,
"indexPrice": 0.01529,
"fundingRate": 0.00005,
"lowPrice24h": 0.01517,
"prevPrice1h": 0.01535,
"turnover24h": 48146.6748,
"highPrice24h": 0.01551,
"openInterest": 39140440,
"prevPrice24h": 0.01527,
"nextFundingDate": "2026-08-22T08:00:00.000Z",
"nextFundingTime": 1787385600000,
"openInterestValue": 600414.35,
"priceChangePct24h": 0.007858
},
{
"symbol": "10000SATSUSDT",
"askSize": 168500,
"bidSize": 43100,
"askPrice": 0.00012792,
"bidPrice": 0.00012782,
"lastPrice": 0.00012786,
"markPrice": 0.00012786,
"volume24h": 9189557900,
"indexPrice": 0.00012785,
"fundingRate": 0.00005,
"lowPrice24h": 0.00010308,
"prevPrice1h": 0.00012744,
"turnover24h": 1144345.8561,
"highPrice24h": 0.00014132,
"openInterest": 2644219800,
"prevPrice24h": 0.00012102,
"nextFundingDate": "2026-08-22T08:00:00.000Z",
"nextFundingTime": 1787385600000,
"openInterestValue": 338089.94,
"priceChangePct24h": 0.056519
},
{
"symbol": "1000BONKPERP",
"askSize": 19430,
"bidSize": 19780,
"askPrice": 0.003233,
"bidPrice": 0.003223,
"lastPrice": 0.003229,
"markPrice": 0.003229,
"volume24h": 41614700,
"indexPrice": 0.003234,
"fundingRate": -0.00019392,
"lowPrice24h": 0.002741,
"prevPrice1h": 0.003275,
"turnover24h": 128784.9711,
"highPrice24h": 0.003655,
"openInterest": 96746920,
"prevPrice24h": 0.002741,
"nextFundingDate": "2026-08-22T08:00:00.000Z",
"nextFundingTime": 1787385600000,
"openInterestValue": 312395.8,
"priceChangePct24h": 0.178037
},
{
"symbol": "1000BONKUSDT",
"askSize": 62100,
"bidSize": 35600,
"askPrice": 0.003236,
"bidPrice": 0.003235,
"lastPrice": 0.003237,
"markPrice": 0.0032374,
"volume24h": 17863724500,
"indexPrice": 0.0032377,
"fundingRate": 0.00005,
"lowPrice24h": 0.00274,
"prevPrice1h": 0.003267,
"turnover24h": 55322689.5949,
"highPrice24h": 0.003664,
"openInterest": 3652283600,
"prevPrice24h": 0.002743,
"nextFundingDate": "2026-08-22T08:00:00.000Z",
"nextFundingTime": 1787385600000,
"openInterestValue": 11823902.93,
"priceChangePct24h": 0.180094
},
{
"symbol": "1000BTTUSDT",
"askSize": 2342300,
"bidSize": 243700,
"askPrice": 0.0002999,
"bidPrice": 0.0002994,
"lastPrice": 0.0002996,
"markPrice": 0.0002996,
"volume24h": 1409761800,
"indexPrice": 0.0002989,
"fundingRate": 0.00047791,
"lowPrice24h": 0.0002905,
"prevPrice1h": 0.0002973,
"turnover24h": 421097.919,
"highPrice24h": 0.0003086,
"openInterest": 1837197400,
"prevPrice24h": 0.0002922,
"nextFundingDate": "2026-08-22T08:00:00.000Z",
"nextFundingTime": 1787385600000,
"openInterestValue": 550424.34,
"priceChangePct24h": 0.025325
}
],
"symbol": null,
"dataset": "tickers",
"baseCoin": null,
"category": "linear",
"provider": "bybit"
}
```
---
## Cboe
**Category:** finance · **Slug:** `cboe`
**Detail page:** https://zapi.ink/api/finance/cboe
Kutipan tertunda Cboe untuk saham dan indeks, termasuk implied volatility 30 hari yang tidak ada di feed kutipan lain.
**Tags:** cboe, options, volatility, vix, finance
### Quote
Kutipan satu simbol. Indeks bisa ditulis `^VIX`, `VIX`, atau `_VIX`.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:cboe/quote`
- **Cache TTL:** 60s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Ticker symbol. Equities and ETFs as they trade (AAPL, SPY); indices as `VIX`, `^VIX` or `_VIX` — VIX, VVIX, VIX1D, VIX9D, VIX3M, VIX6M, GVZ, OVX, SKEW, VXN, RVX, EVZ all resolve. Required. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:cboe/quote?symbol=AAPL" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:cboe/quote?symbol=AAPL", {
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:cboe/quote?symbol=AAPL",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"ask": 317.48,
"bid": 317.47,
"low": 316.19,
"asOf": "2026-08-20 15:18:27",
"high": 320.28,
"iv30": 24.595,
"open": 317.42,
"tick": "down",
"close": 317.46,
"price": 317.46,
"change": 0.63,
"source": "cboe",
"symbol": "AAPL",
"volume": 7521130,
"askSize": 40,
"bidSize": 200,
"iv30Change": 0.054,
"securityType": "stock",
"changePercent": 0.1988,
"lastTradeTime": "2026-08-20T11:03:25",
"previousClose": 316.83
}
```
---
### History
Daily history of a CBOE volatility index, back to the day it launched.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:cboe/history`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Volatility index. GVZ (gold, from 2009-09-18), VIX (from 1990-01-02), VVIX, VIX1D, VIX9D, VIX3M, VIX6M, OVX, SKEW, VXN, RVX, EVZ. Required. |
| `from` | string | query | no | Earliest session date, YYYY-MM-DD. VIX rows before 1992 repeat the close in every OHLC column — a synthetic backfill, not a real session range. |
| `to` | string | query | no | Latest session date, YYYY-MM-DD |
| `order` | enum(desc|asc) | query | no | `desc` newest first (default), `asc` oldest first |
| `length` | number | query | no | Sessions to return (default 250, max 5000). `total` reports how many matched. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:cboe/history?symbol=GVZ&from=2026-01-01&to=2026-08-19&order=desc&length=250" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:cboe/history?symbol=GVZ&from=2026-01-01&to=2026-08-19&order=desc&length=250", {
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:cboe/history?symbol=GVZ&from=2026-01-01&to=2026-08-19&order=desc&length=250",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": "2026-08-19",
"from": "2026-01-01",
"count": 158,
"items": [
{
"date": "2026-08-19",
"close": 26.68
},
{
"date": "2026-08-18",
"close": 23.98
},
{
"date": "2026-08-17",
"close": 25.12
},
{
"date": "2026-08-14",
"close": 23.92
},
{
"date": "2026-08-13",
"close": 23.87
},
{
"date": "2026-08-12",
"close": 25.58
}
],
"order": "desc",
"total": 158,
"symbol": "GVZ",
"dataset": "history",
"provider": "cboe",
"hasIntraday": false
}
```
---
### Options
The full delayed option chain for one symbol, with greeks and open interest.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:cboe/options`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Underlying symbol with listed options — equities and ETFs as they trade (AAPL, SPY), indices as `VIX`, `^VIX` or `_VIX`. Volatility indices other than VIX (GVZ, OVX, SKEW) have no listed chain. Required. |
| `expiry` | string | query | no | Keep one expiration, YYYY-MM-DD. `expirations` lists what the chain holds. |
| `type` | enum(call|put) | query | no | Keep calls or puts only |
| `strike` | number | query | no | Keep one strike price |
| `length` | number | query | no | Contracts to return (default 100, max 1000). `total` reports how many matched. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:cboe/options?symbol=VIX&expiry=2026-09-16&type=call&strike=20&length=100" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:cboe/options?symbol=VIX&expiry=2026-09-16&type=call&strike=20&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:cboe/options?symbol=VIX&expiry=2026-09-16&type=call&strike=20&length=100",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"asOf": "2026-08-20 15:18:24",
"type": "call",
"count": 1,
"items": [
{
"ask": 1.01,
"bid": 0.97,
"rho": -0.0007,
"type": "call",
"vega": 0.0181,
"delta": 0.3649,
"gamma": 0.0828,
"theta": -0.0311,
"change": 0.06,
"strike": 20,
"volume": 26149,
"askSize": 25101,
"bidSize": 5,
"contract": "VIX260916C00020000",
"lastPrice": 0.97,
"expiration": "2026-09-16",
"theoretical": 0.9782,
"openInterest": 279390,
"changePercent": 6.59341,
"lastTradeTime": "2026-08-20T11:01:43",
"previousClose": 0.909999996423721,
"impliedVolatility": 0.9427
}
],
"total": 1,
"expiry": "2026-09-16",
"strike": 20,
"symbol": "^VIX",
"dataset": "options",
"provider": "cboe",
"expirations": [
"2026-08-26",
"2026-09-02",
"2026-09-09",
"2026-09-16",
"2026-09-23",
"2026-10-21"
],
"underlyingPrice": 15.61
}
```
---
### PCR
Daily put/call ratios with volume and open interest, per product family.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:cboe/pcr`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `date` | string | query | no | Session date, YYYY-MM-DD, from November 2019 onward. Omit for the most recent published session. |
| `product` | string | query | no | Keep one product family, e.g. `SUM OF ALL PRODUCTS`, `INDEX OPTIONS`, `EQUITY OPTIONS`, `CBOE VOLATILITY INDEX (VIX)`, OEX. Omit for all of them. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:cboe/pcr?date=2026-08-19&product=SPX%20%2B%20SPXW" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:cboe/pcr?date=2026-08-19&product=SPX%20%2B%20SPXW", {
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:cboe/pcr?date=2026-08-19&product=SPX%20%2B%20SPXW",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"date": "2026-08-19",
"count": 23,
"items": [
{
"product": "SUM OF ALL PRODUCTS",
"putVolume": 5872412,
"callVolume": 7328387,
"totalVolume": 13200799,
"putCallRatio": 0.8,
"putOpenInterest": 299340079,
"callOpenInterest": 392251340,
"totalOpenInterest": 691591419
},
{
"product": "INDEX OPTIONS",
"putVolume": 2688033,
"callVolume": 2784472,
"totalVolume": 5472505,
"putCallRatio": 0.97,
"putOpenInterest": 22211122,
"callOpenInterest": 24652833,
"totalOpenInterest": 46863955
},
{
"product": "EXCHANGE TRADED PRODUCTS",
"putVolume": 1679646,
"callVolume": 1627865,
"totalVolume": 3307511,
"putCallRatio": 1.03,
"putOpenInterest": 100977357,
"callOpenInterest": 89993567,
"totalOpenInterest": 190970924
},
{
"product": "EQUITY OPTIONS",
"putVolume": 1504733,
"callVolume": 2916050,
"totalVolume": 4420783,
"putCallRatio": 0.52,
"putOpenInterest": 176151600,
"callOpenInterest": 277604940,
"totalOpenInterest": 453756540
},
{
"product": "CBOE VOLATILITY INDEX (VIX)",
"putVolume": 166001,
"callVolume": 556997,
"totalVolume": 722998,
"putCallRatio": 0.3,
"putOpenInterest": 3986281,
"callOpenInterest": 10969150,
"totalOpenInterest": 14955431
},
{
"product": "SPX + SPXW",
"putVolume": 2370051,
"callVolume": 2085680,
"totalVolume": 4455731,
"putCallRatio": 1.14,
"putOpenInterest": 14506077,
"callOpenInterest": 10475343,
"totalOpenInterest": 24981420
}
],
"dataset": "pcr",
"product": null,
"provider": "cboe"
}
```
---
### Settlement
Daily settlement prices for every CBOE futures product, one row per expiry.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:cboe/settlement`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `date` | string | query | no | Session date, YYYY-MM-DD. Coverage is shallow — around seven months of full days, thinning to a handful of rows a year back and nothing beyond that. Omit for the most recent published session. |
| `product` | string | query | no | Futures root to keep, e.g. VX (VIX futures), VXM, VA, IBHY, XBTF. Omit for every product. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:cboe/settlement?date=2026-08-19&product=VX" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:cboe/settlement?date=2026-08-19&product=VX", {
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:cboe/settlement?date=2026-08-19&product=VX",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"date": "2026-08-19",
"count": 55,
"items": [
{
"price": 15.29,
"symbol": "VX/Q6",
"product": "VX",
"expiration": "2026-08-19"
},
{
"price": 17.6066,
"symbol": "VX34/Q6",
"product": "VX",
"expiration": "2026-08-26"
},
{
"price": 17.6066,
"symbol": "VX35/U6",
"product": "VX",
"expiration": "2026-09-02"
},
{
"price": 17.6066,
"symbol": "VX36/U6",
"product": "VX",
"expiration": "2026-09-09"
},
{
"price": 17.6066,
"symbol": "VX/U6",
"product": "VX",
"expiration": "2026-09-16"
},
{
"price": 17.6066,
"symbol": "VX38/U6",
"product": "VX",
"expiration": "2026-09-23"
}
],
"dataset": "settlement",
"product": null,
"products": [
"FBT",
"FET",
"IBHY",
"IBIG",
"IEMD",
"MGTN"
],
"provider": "cboe"
}
```
---
### Term Structure
The VIX term structure — implied volatility across five tenors, 1 day to 6 months.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:cboe/term-structure`
- **Cache TTL:** 60s
**Parameters:**
_No parameters._
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:cboe/term-structure" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:cboe/term-structure", {
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:cboe/term-structure",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"asOf": "2026-08-20 15:06:29",
"count": 5,
"items": [
{
"low": 8.09,
"high": 8.73,
"open": 8.67,
"price": 8.35,
"change": -1.41,
"symbol": "VIX1D",
"tenorDays": 1,
"changePercent": -14.4467,
"lastTradeTime": "2026-08-20T10:51:16",
"previousClose": 9.76
},
{
"low": 13.75,
"high": 14.4,
"open": 14.2,
"price": 13.88,
"change": 1.22,
"symbol": "VIX9D",
"tenorDays": 9,
"changePercent": 9.6367,
"lastTradeTime": "2026-08-20T10:51:16",
"previousClose": 12.66
},
{
"low": 15.49,
"high": 16.06,
"open": 15.81,
"price": 15.74,
"change": 0.85,
"symbol": "VIX",
"tenorDays": 30,
"changePercent": 5.7085,
"lastTradeTime": "2026-08-20T10:51:16",
"previousClose": 14.89
},
{
"low": 18.84,
"high": 19.14,
"open": 19.02,
"price": 18.97,
"change": 0.4,
"symbol": "VIX3M",
"tenorDays": 93,
"changePercent": 2.154,
"lastTradeTime": "2026-08-20T10:51:16",
"previousClose": 18.57
},
{
"low": 21.07,
"high": 21.3,
"open": 21.19,
"price": 21.16,
"change": 0.26,
"symbol": "VIX6M",
"tenorDays": 186,
"changePercent": 1.244,
"lastTradeTime": "2026-08-20T10:51:16",
"previousClose": 20.9
}
],
"dataset": "term-structure",
"provider": "cboe"
}
```
---
## Census
**Category:** finance · **Slug:** `census`
**Detail page:** https://zapi.ink/api/finance/census
Dated values for any Census economic-indicator series.
**Tags:** finance, census
### Series
Dated values for any Census economic-indicator series.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:census/series`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `program` | string | query | yes | Program code. `programs` lists all 21. |
| `category` | string | query | yes | Category code from `program` — 44X72 is retail trade and food services in MARTS. |
| `dataType` | string | query | yes | Data-type code from `program` — SM is sales in MARTS, MPCSM the monthly percent change. |
| `geoLevel` | string | query | no | Geography level from `program`. Default US. |
| `adjusted` | enum(yes|no) | query | no | Seasonally adjusted. Word-valued upstream — `1` is silently read as no. Default yes. |
| `errorData` | enum(yes|no) | query | no | Return the sampling-variability series instead of the estimate. Default no. |
| `includeUnreleased` | enum(true|false) | query | no | Keep the pre-allocated months past the last release, which the bureau publishes as NA. Default false. |
| `from` | string | query | no | First year, YYYY. Default five years ago. |
| `to` | string | query | no | Last year, YYYY. Default the current year. |
| `length` | number | query | no | Observations to return, newest first. Default 120, max 2000. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:census/series?program=MARTS&category=44X72&dataType=SM&geoLevel=US&adjusted=yes&errorData=no&includeUnreleased=false&from=2020&to=2026&length=24" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:census/series?program=MARTS&category=44X72&dataType=SM&geoLevel=US&adjusted=yes&errorData=no&includeUnreleased=false&from=2020&to=2026&length=24", {
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:census/series?program=MARTS&category=44X72&dataType=SM&geoLevel=US&adjusted=yes&errorData=no&includeUnreleased=false&from=2020&to=2026&length=24",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": "2026",
"from": "2021",
"unit": "Millions of Dollars",
"count": 67,
"items": [
{
"label": "Jul-2026",
"value": 763602,
"period": "2026-07"
},
{
"label": "Jun-2026",
"value": 768072,
"period": "2026-06"
},
{
"label": "May-2026",
"value": 766192,
"period": "2026-05"
},
{
"label": "Apr-2026",
"value": 759097,
"period": "2026-04"
},
{
"label": "Mar-2026",
"value": 754013,
"period": "2026-03"
},
{
"label": "Feb-2026",
"value": 741278,
"period": "2026-02"
},
{
"label": "Jan-2026",
"value": 734503,
"period": "2026-01"
},
{
"label": "Dec-2025",
"value": 734717,
"period": "2025-12"
}
],
"total": 67,
"source": "Advance Monthly Sales for Retail and Food Services",
"dataset": "series",
"program": "MARTS",
"adjusted": "yes",
"category": "44X72",
"dataType": "SM",
"geoLevel": "US",
"provider": "census",
"errorData": "no",
"seriesName": "Seasonally Adjusted Sales - Monthly",
"unreleased": 5,
"extractedAt": "August 20, 2026 (10:23 pm)",
"latestValue": 763602,
"categoryName": "44X72: Retail Trade and Food Services: U.S. Total",
"latestPeriod": "2026-07"
}
```
---
### Programs
The Census Bureau's economic indicator programs — the vocabulary every other
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:census/programs`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `query` | string | query | no | Case-insensitive filter over the program code and name. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:census/programs?query=retail" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:census/programs?query=retail", {
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:census/programs?query=retail",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 3,
"items": [
{
"name": "Advance Monthly Sales for Retail and Food Services",
"bulkUrl": "https://www.census.gov/econ_getzippedfile/?programCode=MARTS",
"program": "MARTS"
},
{
"name": "Advance Retail Inventories",
"bulkUrl": "https://www.census.gov/econ_getzippedfile/?programCode=MRTSADV",
"program": "MRTSADV"
},
{
"name": "Monthly Retail Trade and Food Services",
"bulkUrl": "https://www.census.gov/econ_getzippedfile/?programCode=MRTS",
"program": "MRTS"
}
],
"query": "retail",
"total": 21,
"dataset": "programs",
"provider": "census"
}
```
---
### Program
One Census economic indicator program's whole code vocabulary — categories,
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:census/program`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `program` | string | query | yes | Program code — MARTS, MRTS, M3, M3ADV, RESCONST, FTD and 15 more. `programs` lists them. |
| `query` | string | query | no | Case-insensitive filter over the category code and description. |
| `length` | number | query | no | Categories to return. Default 200, max 2000. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:census/program?program=MARTS&query=grocery&length=50" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:census/program?program=MARTS&query=grocery&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:census/program?program=MARTS&query=grocery&length=50",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 21,
"items": [
{
"indent": 0,
"category": "44X72",
"description": "44X72: Retail Trade and Food Services",
"categoryIndex": 1
},
{
"indent": 0,
"category": "44Y72",
"description": "44Y72: Retail Trade and Food Services, ex Auto",
"categoryIndex": 2
},
{
"indent": 0,
"category": "44Z72",
"description": "44Z72: Retail Trade and Food Services, ex Gas",
"categoryIndex": 3
},
{
"indent": 0,
"category": "44W72",
"description": "44W72: Retail Trade and Food Services, ex Auto and Gas",
"categoryIndex": 4
},
{
"indent": 0,
"category": "44000",
"description": "44000: Retail Trade",
"categoryIndex": 5
},
{
"indent": 0,
"category": "441",
"description": "441: Motor Vehicle and Parts Dealers",
"categoryIndex": 6
},
{
"indent": 0,
"category": "441X",
"description": "4411,4412: Auto and Other Motor Vehicles",
"categoryIndex": 7
},
{
"indent": 0,
"category": "442",
"description": "442: Furniture and Home Furnishings Stores",
"categoryIndex": 8
}
],
"query": null,
"total": 21,
"dataset": "program",
"periods": 420,
"program": "MARTS",
"provider": "census",
"dataTypes": [
{
"unit": "MLN$",
"dataType": "SM",
"description": "Sales - Monthly",
"dataTypeIndex": 1
},
{
"unit": "PCT",
"dataType": "MPCSM",
"description": "Sales - Monthly Percent Change",
"dataTypeIndex": 2
}
],
"footnotes": [
"For the Advance Monthly Retail Trade Survey, estimates for the most recent month are advance estimates that are based on data from a subsample of firms from the larger Monthly Retail Trade Survey. The advance estimates will be superseded in following months by revised estimates derived from the larger Monthly Retail Trade Survey.",
"For information on the reliability and use of the data, including important notes on estimation and sampling variance, seasonal adjustment, measures of sampling variability, and other information pertinent to this economic indicator, go to the (https://www.census.gov/retail/index.html) website.",
"Estimated measures of sampling variability for totals are expressed as coefficients of variation (CV). Standard errors (SE) are provided for month-to-month change and ratio estimates.",
"Estimated measures of sampling variability are based on data not adjusted for seasonal variation, and should be used when drawing inferences about both adjusted and not adjusted estimates.",
"NA = Not available. Z = Estimates round to zero."
],
"geoLevels": [
{
"geoIndex": 1,
"geoLevel": "US",
"description": "U.S. Total"
}
],
"periodEnd": "Dec-2026",
"updatedAt": "Friday, 14-Aug-26 07:31:07 EDT",
"errorTypes": [
{
"unit": "PCT",
"errorType": "E_SM",
"description": "CV of Sales - Monthly",
"errorTypeIndex": 1
},
{
"unit": "PCT",
"errorType": "E_MPCSM",
"description": "SE of Sales - Monthly Percent Change",
"errorTypeIndex": 2
}
],
"periodStart": "Jan-1992",
"observations": 58730
}
```
---
## CFTC
**Category:** finance · **Slug:** `cftc`
**Detail page:** https://zapi.ink/api/finance/cftc
Commitments of Traders: posisi long/short per kategori pelaku di tiap pasar berjangka Amerika, terbit tiap Jumat untuk posisi hari Selasa.
**Tags:** cftc, cot, futures, positioning, finance
### Commitments of Traders
Baris COT terbaru, bisa disaring per nama kontrak dan tanggal laporan. Net non-commercial dan commercial dihitung di sini.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:cftc/commitments`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `market` | string | query | no | Match against the contract name (case-insensitive substring). |
| `from` | string | query | no | Earliest report date (YYYY-MM-DD). |
| `length` | number | query | no | Rows to return (default 50, max 500) |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:cftc/commitments?market=WHEAT&from=2026-01-01&length=50" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:cftc/commitments?market=WHEAT&from=2026-01-01&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:cftc/commitments?market=WHEAT&from=2026-01-01&length=50",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"from": "2026-01-01",
"count": 50,
"items": [
{
"date": "2026-08-11",
"market": "GULF # 6 FUEL OIL CRACK",
"exchange": "GULF # 6 FUEL OIL CRACK - NEW YORK MERCANTILE EXCHANGE",
"commodity": "FUEL OIL/CRUDE OIL",
"openInterest": 10102,
"commercialNet": -263,
"commercialLong": 7142,
"commercialShort": 7405,
"nonCommercialNet": 253,
"nonCommercialLong": 1405,
"nonReportableLong": 10,
"nonCommercialShort": 1152,
"nonReportableShort": 0,
"nonCommercialSpread": 1545
},
{
"date": "2026-08-11",
"market": "GULF JET NY HEAT OIL SPR",
"exchange": "GULF JET NY HEAT OIL SPR - NEW YORK MERCANTILE EXCHANGE",
"commodity": "JET FUEL/HEATING OIL",
"openInterest": 12106,
"commercialNet": -290,
"commercialLong": 11816,
"commercialShort": 12106,
"nonCommercialNet": 100,
"nonCommercialLong": 100,
"nonReportableLong": 190,
"nonCommercialShort": 0,
"nonReportableShort": 0,
"nonCommercialSpread": 0
},
{
"date": "2026-08-11",
"market": "PGP PROPYLENE (PCW) CAL",
"exchange": "PGP PROPYLENE (PCW) CAL - NEW YORK MERCANTILE EXCHANGE",
"commodity": "PROPYLENE",
"openInterest": 7012,
"commercialNet": 3127,
"commercialLong": 4028,
"commercialShort": 901,
"nonCommercialNet": -3181,
"nonCommercialLong": 1841,
"nonReportableLong": 198,
"nonCommercialShort": 5022,
"nonReportableShort": 144,
"nonCommercialSpread": 945
},
{
"date": "2026-08-11",
"market": "7 YEAR ERIS SOFR SWAP",
"exchange": "7 YEAR ERIS SOFR SWAP - CHICAGO BOARD OF TRADE",
"commodity": "2-7-YEAR INTEREST RATE SWAPS ERIS & MAC",
"openInterest": 33099,
"commercialNet": -6584,
"commercialLong": 375,
"commercialShort": 6959,
"nonCommercialNet": 6582,
"nonCommercialLong": 16239,
"nonReportableLong": 18,
"nonCommercialShort": 9657,
"nonReportableShort": 16,
"nonCommercialSpread": 16467
},
{
"date": "2026-08-11",
"market": "5 YEAR ERIS SOFR SWAP",
"exchange": "5 YEAR ERIS SOFR SWAP - CHICAGO BOARD OF TRADE",
"commodity": "2-7-YEAR INTEREST RATE SWAPS ERIS & MAC",
"openInterest": 177800,
"commercialNet": -16936,
"commercialLong": 27204,
"commercialShort": 44140,
"nonCommercialNet": 16990,
"nonCommercialLong": 103512,
"nonReportableLong": 34,
"nonCommercialShort": 86522,
"nonReportableShort": 88,
"nonCommercialSpread": 47050
},
{
"date": "2026-08-11",
"market": "3 YEAR ERIS SOFR SWAP",
"exchange": "3 YEAR ERIS SOFR SWAP - CHICAGO BOARD OF TRADE",
"commodity": "2-7-YEAR INTEREST RATE SWAPS ERIS & MAC",
"openInterest": 71913,
"commercialNet": -18005,
"commercialLong": 4500,
"commercialShort": 22505,
"nonCommercialNet": 18049,
"nonCommercialLong": 53345,
"nonReportableLong": 10,
"nonCommercialShort": 35296,
"nonReportableShort": 54,
"nonCommercialSpread": 14058
}
],
"source": "cftc"
}
```
---
### Disaggregated
Commitments of Traders, disaggregated report — producer/merchant, swap dealer,
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:cftc/disaggregated`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `market` | string | query | no | Match against the contract name (case-insensitive substring). |
| `code` | string | query | no | Exact CFTC contract market code. The `markets` endpoint lists codes by commodity group. |
| `from` | string | query | no | Earliest report date, YYYY-MM-DD. History runs from 2006-06-13. |
| `to` | string | query | no | Latest report date, YYYY-MM-DD |
| `combined` | enum(true|false) | query | no | `true` for the futures-and-options combined report, `false` (default) for futures only. |
| `subgroup` | string | query | no | CFTC subgroup code, e.g. A10 grains, N16 currencies. Omit for every subgroup. |
| `fields` | string | query | no | Comma-separated column groups: `positions`, `changes`, `percent`, `traders`, `concentration`, `maturity`. Default `positions`. Use `all` for every one of the 191 published columns — slower and much larger. |
| `page` | number | query | no | Page number, 1-based. Default 1 |
| `length` | number | query | no | Rows per page (default 50, max 1000) |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:cftc/disaggregated?market=GOLD&code=088691&from=2026-01-01&to=2026-08-11&combined=false&subgroup=N16&fields=positions%2Ctraders&page=1&length=50" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:cftc/disaggregated?market=GOLD&code=088691&from=2026-01-01&to=2026-08-11&combined=false&subgroup=N16&fields=positions%2Ctraders&page=1&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:cftc/disaggregated?market=GOLD&code=088691&from=2026-01-01&to=2026-08-11&combined=false&subgroup=N16&fields=positions%2Ctraders&page=1&length=50",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": null,
"code": null,
"from": null,
"page": 1,
"count": 50,
"items": [
{
"code": "001602",
"date": "2026-08-11",
"units": "(CONTRACTS OF 5,000 BUSHELS)",
"market": "WHEAT-SRW",
"exchange": "WHEAT-SRW - CHICAGO BOARD OF TRADE",
"subgroup": "A10",
"commodity": "WHEAT",
"openInterest": 475566,
"swapDealerNet": 75386,
"swapDealerLong": 89805,
"managedMoneyNet": -33400,
"swapDealerShort": 14419,
"managedMoneyLong": 78009,
"swapDealerSpread": 17099,
"managedMoneyShort": 111409,
"nonReportableLong": 38571,
"managedMoneySpread": 112454,
"nonReportableShort": 36415,
"otherReportableNet": 8490,
"otherReportableLong": 36970,
"producerMerchantNet": -52632,
"totalReportableLong": 436995,
"otherReportableShort": 28480,
"producerMerchantLong": 64948,
"totalReportableShort": 439151,
"otherReportableSpread": 37710,
"producerMerchantShort": 117580
},
{
"code": "001612",
"date": "2026-08-11",
"units": "(CONTRACTS OF 5,000 BUSHELS)",
"market": "WHEAT-HRW",
"exchange": "WHEAT-HRW - CHICAGO BOARD OF TRADE",
"subgroup": "A10",
"commodity": "WHEAT",
"openInterest": 305725,
"swapDealerNet": 79057,
"swapDealerLong": 80670,
"managedMoneyNet": 25606,
"swapDealerShort": 1613,
"managedMoneyLong": 63122,
"swapDealerSpread": 6701,
"managedMoneyShort": 37516,
"nonReportableLong": 22400,
"managedMoneySpread": 69568,
"nonReportableShort": 20540,
"otherReportableNet": -12392,
"otherReportableLong": 8810,
"producerMerchantNet": -94131,
"totalReportableLong": 283325,
"otherReportableShort": 21202,
"producerMerchantLong": 27784,
"totalReportableShort": 285185,
"otherReportableSpread": 26670,
"producerMerchantShort": 121915
},
{
"code": "001626",
"date": "2026-08-11",
"units": "(CONTRACTS OF 5,000 BUSHELS)",
"market": "WHEAT-HRSpring",
"exchange": "WHEAT-HRSpring - MIAX FUTURES EXCHANGE",
"subgroup": "A10",
"commodity": "WHEAT",
"openInterest": 81898,
"swapDealerNet": 7571,
"swapDealerLong": 7571,
"managedMoneyNet": 9879,
"swapDealerShort": 0,
"managedMoneyLong": 17591,
"swapDealerSpread": 127,
"managedMoneyShort": 7712,
"nonReportableLong": 8649,
"managedMoneySpread": 4941,
"nonReportableShort": 7719,
"otherReportableNet": -220,
"otherReportableLong": 1447,
"producerMerchantNet": -18160,
"totalReportableLong": 73249,
"otherReportableShort": 1667,
"producerMerchantLong": 39913,
"totalReportableShort": 74179,
"otherReportableSpread": 1659,
"producerMerchantShort": 58073
},
{
"code": "002602",
"date": "2026-08-11",
"units": "(CONTRACTS OF 5,000 BUSHELS)",
"market": "CORN",
"exchange": "CORN - CHICAGO BOARD OF TRADE",
"subgroup": "A10",
"commodity": "CORN",
"openInterest": 1684065,
"swapDealerNet": 327540,
"swapDealerLong": 351769,
"managedMoneyNet": 125875,
"swapDealerShort": 24229,
"managedMoneyLong": 312829,
"swapDealerSpread": 14303,
"managedMoneyShort": 186954,
"nonReportableLong": 136706,
"managedMoneySpread": 187183,
"nonReportableShort": 183490,
"otherReportableNet": 119037,
"otherReportableLong": 173443,
"producerMerchantNet": -525668,
"totalReportableLong": 1547359,
"otherReportableShort": 54406,
"producerMerchantLong": 335547,
"totalReportableShort": 1500575,
"otherReportableSpread": 172285,
"producerMerchantShort": 861215
},
{
"code": "005602",
"date": "2026-08-11",
"units": "(CONTRACTS OF 5,000 BUSHELS)",
"market": "SOYBEANS",
"exchange": "SOYBEANS - CHICAGO BOARD OF TRADE",
"subgroup": "A30",
"commodity": "SOYBEANS",
"openInterest": 982903,
"swapDealerNet": 112712,
"swapDealerLong": 145994,
"managedMoneyNet": 109109,
"swapDealerShort": 33282,
"managedMoneyLong": 169712,
"swapDealerSpread": 13735,
"managedMoneyShort": 60603,
"nonReportableLong": 46683,
"managedMoneySpread": 142155,
"nonReportableShort": 66994,
"otherReportableNet": 50836,
"otherReportableLong": 82873,
"producerMerchantNet": -252346,
"totalReportableLong": 936220,
"otherReportableShort": 32037,
"producerMerchantLong": 311042,
"totalReportableShort": 915909,
"otherReportableSpread": 70709,
"producerMerchantShort": 563388
},
{
"code": "005603",
"date": "2026-08-11",
"units": "(Contracts of 1,000 Bushels)",
"market": "MINI SOYBEANS",
"exchange": "MINI SOYBEANS - CHICAGO BOARD OF TRADE",
"subgroup": "A30",
"commodity": "SOYBEANS",
"openInterest": 26470,
"swapDealerNet": 0,
"swapDealerLong": 0,
"managedMoneyNet": 0,
"swapDealerShort": 0,
"managedMoneyLong": 0,
"swapDealerSpread": 0,
"managedMoneyShort": 0,
"nonReportableLong": 4282,
"managedMoneySpread": 0,
"nonReportableShort": 13281,
"otherReportableNet": 20151,
"otherReportableLong": 21792,
"producerMerchantNet": -11152,
"totalReportableLong": 22188,
"otherReportableShort": 1641,
"producerMerchantLong": 7,
"totalReportableShort": 13189,
"otherReportableSpread": 389,
"producerMerchantShort": 11159
}
],
"total": 183676,
"fields": [
"positions"
],
"market": null,
"dataset": "disaggregated",
"hasMore": true,
"combined": false,
"nextPage": 2,
"provider": "cftc",
"subgroup": null
}
```
---
### Legacy
Commitments of Traders, legacy report — the non-commercial / commercial split.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:cftc/legacy`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `market` | string | query | no | Match against the contract name (case-insensitive substring). |
| `code` | string | query | no | Exact CFTC contract market code. The `markets` endpoint lists codes by commodity group. |
| `from` | string | query | no | Earliest report date, YYYY-MM-DD. History runs from 1986-01-15. |
| `to` | string | query | no | Latest report date, YYYY-MM-DD |
| `combined` | enum(true|false) | query | no | `true` for the futures-and-options combined report, `false` (default) for futures only. |
| `fields` | string | query | no | Comma-separated column groups: `positions`, `changes`, `percent`, `traders`, `concentration`, `maturity`. Default `positions`. Use `all` for every one of the 130 published columns — slower and much larger. |
| `page` | number | query | no | Page number, 1-based. Default 1 |
| `length` | number | query | no | Rows per page (default 50, max 1000) |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:cftc/legacy?market=GOLD&code=088691&from=2026-01-01&to=2026-08-11&combined=false&fields=positions%2Ctraders&page=1&length=50" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:cftc/legacy?market=GOLD&code=088691&from=2026-01-01&to=2026-08-11&combined=false&fields=positions%2Ctraders&page=1&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:cftc/legacy?market=GOLD&code=088691&from=2026-01-01&to=2026-08-11&combined=false&fields=positions%2Ctraders&page=1&length=50",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": null,
"code": null,
"from": null,
"page": 1,
"count": 50,
"items": [
{
"code": "001602",
"date": "2026-08-11",
"units": "(CONTRACTS OF 5,000 BUSHELS)",
"market": "WHEAT-SRW",
"exchange": "WHEAT-SRW - CHICAGO BOARD OF TRADE",
"commodity": "WHEAT",
"openInterest": 475566,
"commercialNet": 22754,
"commercialLong": 171852,
"commercialShort": 149098,
"nonCommercialNet": -24910,
"nonCommercialLong": 114979,
"nonReportableLong": 38571,
"nonCommercialShort": 139889,
"nonReportableShort": 36415,
"nonCommercialSpread": 150164,
"totalReportableLong": 436995,
"totalReportableShort": 439151
},
{
"code": "001612",
"date": "2026-08-11",
"units": "(CONTRACTS OF 5,000 BUSHELS)",
"market": "WHEAT-HRW",
"exchange": "WHEAT-HRW - CHICAGO BOARD OF TRADE",
"commodity": "WHEAT",
"openInterest": 305725,
"commercialNet": -15074,
"commercialLong": 115155,
"commercialShort": 130229,
"nonCommercialNet": 13214,
"nonCommercialLong": 71932,
"nonReportableLong": 22400,
"nonCommercialShort": 58718,
"nonReportableShort": 20540,
"nonCommercialSpread": 96238,
"totalReportableLong": 283325,
"totalReportableShort": 285185
},
{
"code": "001626",
"date": "2026-08-11",
"units": "(CONTRACTS OF 5,000 BUSHELS)",
"market": "WHEAT-HRSpring",
"exchange": "WHEAT-HRSpring - MIAX FUTURES EXCHANGE",
"commodity": "WHEAT",
"openInterest": 81898,
"commercialNet": -10589,
"commercialLong": 47611,
"commercialShort": 58200,
"nonCommercialNet": 9659,
"nonCommercialLong": 19038,
"nonReportableLong": 8649,
"nonCommercialShort": 9379,
"nonReportableShort": 7719,
"nonCommercialSpread": 6600,
"totalReportableLong": 73249,
"totalReportableShort": 74179
},
{
"code": "002602",
"date": "2026-08-11",
"units": "(CONTRACTS OF 5,000 BUSHELS)",
"market": "CORN",
"exchange": "CORN - CHICAGO BOARD OF TRADE",
"commodity": "CORN",
"openInterest": 1684065,
"commercialNet": -198128,
"commercialLong": 701619,
"commercialShort": 899747,
"nonCommercialNet": 244912,
"nonCommercialLong": 486272,
"nonReportableLong": 136706,
"nonCommercialShort": 241360,
"nonReportableShort": 183490,
"nonCommercialSpread": 359468,
"totalReportableLong": 1547359,
"totalReportableShort": 1500575
},
{
"code": "005602",
"date": "2026-08-11",
"units": "(CONTRACTS OF 5,000 BUSHELS)",
"market": "SOYBEANS",
"exchange": "SOYBEANS - CHICAGO BOARD OF TRADE",
"commodity": "SOYBEANS",
"openInterest": 982903,
"commercialNet": -139634,
"commercialLong": 470771,
"commercialShort": 610405,
"nonCommercialNet": 159945,
"nonCommercialLong": 252585,
"nonReportableLong": 46683,
"nonCommercialShort": 92640,
"nonReportableShort": 66994,
"nonCommercialSpread": 212864,
"totalReportableLong": 936220,
"totalReportableShort": 915909
},
{
"code": "005603",
"date": "2026-08-11",
"units": "(Contracts of 1,000 Bushels)",
"market": "MINI SOYBEANS",
"exchange": "MINI SOYBEANS - CHICAGO BOARD OF TRADE",
"commodity": "SOYBEANS",
"openInterest": 26470,
"commercialNet": -11152,
"commercialLong": 7,
"commercialShort": 11159,
"nonCommercialNet": 20151,
"nonCommercialLong": 21792,
"nonReportableLong": 4282,
"nonCommercialShort": 1641,
"nonReportableShort": 13281,
"nonCommercialSpread": 389,
"totalReportableLong": 22188,
"totalReportableShort": 13189
}
],
"total": 287411,
"fields": [
"positions"
],
"market": null,
"dataset": "legacy",
"hasMore": true,
"combined": false,
"nextPage": 2,
"provider": "cftc"
}
```
---
### Markets
The contract catalog behind every COT report: which commodity a contract market
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:cftc/markets`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `query` | string | query | no | Match against the commodity name (case-insensitive substring). |
| `group` | enum(AGRICULTURE|NATURAL RESOURCES|FINANCIAL INSTRUMENTS) | query | no | Commodity group to keep |
| `subgroup` | string | query | no | Commodity subgroup to keep, e.g. PRECIOUS METALS, GRAINS, CURRENCIES. |
| `code` | string | query | no | Exact CFTC contract market code. |
| `page` | number | query | no | Page number, 1-based. Default 1 |
| `length` | number | query | no | Rows per page (default 50, max 1000) |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:cftc/markets?query=GOLD&group=NATURAL%20RESOURCES&subgroup=PRECIOUS%20METALS&code=088691&page=1&length=50" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:cftc/markets?query=GOLD&group=NATURAL%20RESOURCES&subgroup=PRECIOUS%20METALS&code=088691&page=1&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:cftc/markets?query=GOLD&group=NATURAL%20RESOURCES&subgroup=PRECIOUS%20METALS&code=088691&page=1&length=50",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"code": null,
"page": 1,
"count": 50,
"group": null,
"items": [
{
"code": "001601",
"group": "AGRICULTURE",
"subgroup": "GRAINS",
"commodity": "WHEAT"
},
{
"code": "001602",
"group": "AGRICULTURE",
"subgroup": "GRAINS",
"commodity": "WHEAT"
},
{
"code": "001603",
"group": "AGRICULTURE",
"subgroup": "GRAINS",
"commodity": "WHEAT"
},
{
"code": "001604",
"group": "AGRICULTURE",
"subgroup": "GRAINS",
"commodity": "WHEAT"
},
{
"code": "001605",
"group": "AGRICULTURE",
"subgroup": "GRAINS",
"commodity": "WHEAT"
},
{
"code": "001606",
"group": "AGRICULTURE",
"subgroup": "GRAINS",
"commodity": "WHEAT"
}
],
"query": null,
"total": 31419,
"dataset": "markets",
"hasMore": true,
"nextPage": 2,
"provider": "cftc",
"subgroup": null
}
```
---
### Supplemental
Supplemental Commitments of Traders — the commodity index trader split.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:cftc/supplemental`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `market` | string | query | no | Match against the contract name (case-insensitive substring). |
| `code` | string | query | no | Exact CFTC contract market code. The `markets` endpoint lists codes by commodity group. |
| `from` | string | query | no | Earliest report date, YYYY-MM-DD. History runs from 2006-01-03. |
| `to` | string | query | no | Latest report date, YYYY-MM-DD |
| `fields` | string | query | no | Comma-separated column groups: `positions`, `changes`, `percent`, `traders`. Default `positions`. Use `all` for every one of the 57 published columns — slower and much larger. |
| `page` | number | query | no | Page number, 1-based. Default 1 |
| `length` | number | query | no | Rows per page (default 50, max 1000) |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:cftc/supplemental?market=WHEAT&code=001602&from=2026-01-01&to=2026-08-11&fields=positions%2Ctraders&page=1&length=50" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:cftc/supplemental?market=WHEAT&code=001602&from=2026-01-01&to=2026-08-11&fields=positions%2Ctraders&page=1&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:cftc/supplemental?market=WHEAT&code=001602&from=2026-01-01&to=2026-08-11&fields=positions%2Ctraders&page=1&length=50",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": null,
"code": null,
"from": null,
"page": 1,
"count": 50,
"items": [
{
"code": "001602",
"date": "2026-08-11",
"units": "(CONTRACTS OF 5,000 BUSHELS)",
"market": "WHEAT-SRW",
"exchange": "WHEAT-SRW - CHICAGO BOARD OF TRADE",
"commodity": "WHEAT",
"openInterest": 581798,
"commercialNet": -23057,
"commercialLong": 120646,
"indexTraderNet": 68913,
"commercialShort": 143703,
"indexTraderLong": 142641,
"indexTraderShort": 73728,
"nonCommercialNet": -49398,
"nonCommercialLong": 56834,
"nonReportableLong": 42424,
"nonCommercialShort": 106232,
"nonReportableShort": 38881,
"nonCommercialSpread": 219254,
"totalReportableLong": 539374,
"totalReportableShort": 542917
},
{
"code": "001612",
"date": "2026-08-11",
"units": "(CONTRACTS OF 5,000 BUSHELS)",
"market": "WHEAT-HRW",
"exchange": "WHEAT-HRW - CHICAGO BOARD OF TRADE",
"commodity": "WHEAT",
"openInterest": 345187,
"commercialNet": -68743,
"commercialLong": 63494,
"indexTraderNet": 65843,
"commercialShort": 132237,
"indexTraderLong": 90389,
"indexTraderShort": 24546,
"nonCommercialNet": 900,
"nonCommercialLong": 48119,
"nonReportableLong": 24416,
"nonCommercialShort": 47219,
"nonReportableShort": 22418,
"nonCommercialSpread": 118767,
"totalReportableLong": 320771,
"totalReportableShort": 322769
},
{
"code": "002602",
"date": "2026-08-11",
"units": "(CONTRACTS OF 5,000 BUSHELS)",
"market": "CORN",
"exchange": "CORN - CHICAGO BOARD OF TRADE",
"commodity": "CORN",
"openInterest": 2268704,
"commercialNet": -332403,
"commercialLong": 661727,
"indexTraderNet": 338165,
"commercialShort": 994130,
"indexTraderLong": 463958,
"indexTraderShort": 125793,
"nonCommercialNet": 38993,
"nonCommercialLong": 242139,
"nonReportableLong": 184239,
"nonCommercialShort": 203146,
"nonReportableShort": 228995,
"nonCommercialSpread": 716640,
"totalReportableLong": 2084464,
"totalReportableShort": 2039709
},
{
"code": "005602",
"date": "2026-08-11",
"units": "(CONTRACTS OF 5,000 BUSHELS)",
"market": "SOYBEANS",
"exchange": "SOYBEANS - CHICAGO BOARD OF TRADE",
"commodity": "SOYBEANS",
"openInterest": 1203233,
"commercialNet": -200938,
"commercialLong": 451184,
"indexTraderNet": 177979,
"commercialShort": 652122,
"indexTraderLong": 218941,
"indexTraderShort": 40962,
"nonCommercialNet": 47691,
"nonCommercialLong": 140940,
"nonReportableLong": 52930,
"nonCommercialShort": 93249,
"nonReportableShort": 77661,
"nonCommercialSpread": 339238,
"totalReportableLong": 1150303,
"totalReportableShort": 1125572
},
{
"code": "007601",
"date": "2026-08-11",
"units": "(CONTRACTS OF 60,000 POUNDS)",
"market": "SOYBEAN OIL",
"exchange": "SOYBEAN OIL - CHICAGO BOARD OF TRADE",
"commodity": "SOYBEAN OIL",
"openInterest": 711680,
"commercialNet": -154544,
"commercialLong": 271818,
"indexTraderNet": 95502,
"commercialShort": 426362,
"indexTraderLong": 123747,
"indexTraderShort": 28245,
"nonCommercialNet": 46677,
"nonCommercialLong": 93311,
"nonReportableLong": 37133,
"nonCommercialShort": 46634,
"nonReportableShort": 24768,
"nonCommercialSpread": 185671,
"totalReportableLong": 674546,
"totalReportableShort": 686911
},
{
"code": "026603",
"date": "2026-08-11",
"units": "(CONTRACTS OF 100 TONS)",
"market": "SOYBEAN MEAL",
"exchange": "SOYBEAN MEAL - CHICAGO BOARD OF TRADE",
"commodity": "SOYBEAN MEAL",
"openInterest": 656966,
"commercialNet": -195223,
"commercialLong": 199032,
"indexTraderNet": 115926,
"commercialShort": 394255,
"indexTraderLong": 136916,
"indexTraderShort": 20990,
"nonCommercialNet": 54133,
"nonCommercialLong": 110592,
"nonReportableLong": 53720,
"nonCommercialShort": 56459,
"nonReportableShort": 28556,
"nonCommercialSpread": 156707,
"totalReportableLong": 603247,
"totalReportableShort": 628410
}
],
"total": 13610,
"fields": [
"positions"
],
"market": null,
"dataset": "supplemental",
"hasMore": true,
"nextPage": 2,
"provider": "cftc"
}
```
---
### TFF
Traders in Financial Futures — dealer, asset manager, leveraged money and
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:cftc/tff`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `market` | string | query | no | Match against the contract name (case-insensitive substring). |
| `code` | string | query | no | Exact CFTC contract market code. The `markets` endpoint lists codes by commodity group. |
| `from` | string | query | no | Earliest report date, YYYY-MM-DD. History runs from 2006-06-13. |
| `to` | string | query | no | Latest report date, YYYY-MM-DD |
| `combined` | enum(true|false) | query | no | `true` for the futures-and-options combined report, `false` (default) for futures only. |
| `subgroup` | string | query | no | CFTC subgroup code, e.g. A10 grains, N16 currencies. Omit for every subgroup. |
| `fields` | string | query | no | Comma-separated column groups: `positions`, `changes`, `percent`, `traders`, `concentration`. Default `positions`. Use `all` for every one of the 87 published columns — slower and much larger. |
| `page` | number | query | no | Page number, 1-based. Default 1 |
| `length` | number | query | no | Rows per page (default 50, max 1000) |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:cftc/tff?market=E-MINI%20S%26P%20500&code=13874A&from=2026-01-01&to=2026-08-11&combined=false&subgroup=N16&fields=positions%2Ctraders&page=1&length=50" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:cftc/tff?market=E-MINI%20S%26P%20500&code=13874A&from=2026-01-01&to=2026-08-11&combined=false&subgroup=N16&fields=positions%2Ctraders&page=1&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:cftc/tff?market=E-MINI%20S%26P%20500&code=13874A&from=2026-01-01&to=2026-08-11&combined=false&subgroup=N16&fields=positions%2Ctraders&page=1&length=50",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": null,
"code": null,
"from": null,
"page": 1,
"count": 50,
"items": [
{
"code": "020601",
"date": "2026-08-11",
"units": "(CONTRACTS OF $100,000 FACE VALUE)",
"market": "UST BOND",
"exchange": "UST BOND - CHICAGO BOARD OF TRADE",
"subgroup": "F30",
"commodity": "T-BONDS",
"dealerNet": -243296,
"dealerLong": 23520,
"dealerShort": 266816,
"dealerSpread": 8677,
"openInterest": 1862944,
"assetManagerNet": 549650,
"assetManagerLong": 1061726,
"assetManagerShort": 512076,
"leveragedMoneyNet": -364824,
"nonReportableLong": 233127,
"assetManagerSpread": 260156,
"leveragedMoneyLong": 148363,
"nonReportableShort": 160627,
"otherReportableNet": -14030,
"leveragedMoneyShort": 513187,
"otherReportableLong": 103695,
"totalReportableLong": 1629817,
"leveragedMoneySpread": 23636,
"otherReportableShort": 117725,
"totalReportableShort": 1702317,
"otherReportableSpread": 44
},
{
"code": "020604",
"date": "2026-08-11",
"units": "(CONTRACTS OF $100,000 FACE VALUE)",
"market": "ULTRA UST BOND",
"exchange": "ULTRA UST BOND - CHICAGO BOARD OF TRADE",
"subgroup": "F30",
"commodity": "T-BONDS",
"dealerNet": -227262,
"dealerLong": 21953,
"dealerShort": 249215,
"dealerSpread": 5216,
"openInterest": 2416703,
"assetManagerNet": 1080409,
"assetManagerLong": 1647210,
"assetManagerShort": 566801,
"leveragedMoneyNet": -853397,
"nonReportableLong": 193169,
"assetManagerSpread": 379043,
"leveragedMoneyLong": 82626,
"nonReportableShort": 191645,
"otherReportableNet": -1274,
"leveragedMoneyShort": 936023,
"otherReportableLong": 37137,
"totalReportableLong": 2223534,
"leveragedMoneySpread": 50318,
"otherReportableShort": 38411,
"totalReportableShort": 2225058,
"otherReportableSpread": 31
},
{
"code": "042601",
"date": "2026-08-11",
"units": "(CONTRACTS OF $200,000 FACE VALUE)",
"market": "UST 2Y NOTE",
"exchange": "UST 2Y NOTE - CHICAGO BOARD OF TRADE",
"subgroup": "F30",
"commodity": "T-NOTES, 1-2 YEAR",
"dealerNet": -480452,
"dealerLong": 123637,
"dealerShort": 604089,
"dealerSpread": 31830,
"openInterest": 4377812,
"assetManagerNet": 1680389,
"assetManagerLong": 2342975,
"assetManagerShort": 662586,
"leveragedMoneyNet": -1359521,
"nonReportableLong": 215176,
"assetManagerSpread": 561141,
"leveragedMoneyLong": 618328,
"nonReportableShort": 167368,
"otherReportableNet": 111776,
"leveragedMoneyShort": 1977849,
"otherReportableLong": 333428,
"totalReportableLong": 4162636,
"leveragedMoneySpread": 151061,
"otherReportableShort": 221652,
"totalReportableShort": 4210444,
"otherReportableSpread": 236
},
{
"code": "043602",
"date": "2026-08-11",
"units": "(CONTRACTS OF $100,000 FACE VALUE)",
"market": "UST 10Y NOTE",
"exchange": "UST 10Y NOTE - CHICAGO BOARD OF TRADE",
"subgroup": "F30",
"commodity": "T-NOTES, 6.5-10 YEAR",
"dealerNet": -474266,
"dealerLong": 162930,
"dealerShort": 637196,
"dealerSpread": 66281,
"openInterest": 5458890,
"assetManagerNet": 2554411,
"assetManagerLong": 3290600,
"assetManagerShort": 736189,
"leveragedMoneyNet": -2163714,
"nonReportableLong": 397360,
"assetManagerSpread": 665819,
"leveragedMoneyLong": 341893,
"nonReportableShort": 396318,
"otherReportableNet": 82527,
"leveragedMoneyShort": 2505607,
"otherReportableLong": 322535,
"totalReportableLong": 5061530,
"leveragedMoneySpread": 211070,
"otherReportableShort": 240008,
"totalReportableShort": 5062572,
"otherReportableSpread": 402
},
{
"code": "043607",
"date": "2026-08-11",
"units": "(CONTRACTS OF $100,000 FACE VALUE)",
"market": "ULTRA UST 10Y",
"exchange": "ULTRA UST 10Y - CHICAGO BOARD OF TRADE",
"subgroup": "F30",
"commodity": "T-NOTES, 6.5-10 YEAR",
"dealerNet": -236777,
"dealerLong": 53933,
"dealerShort": 290710,
"dealerSpread": 15987,
"openInterest": 2491020,
"assetManagerNet": 671864,
"assetManagerLong": 1255300,
"assetManagerShort": 583436,
"leveragedMoneyNet": -361727,
"nonReportableLong": 204418,
"assetManagerSpread": 607524,
"leveragedMoneyLong": 164207,
"nonReportableShort": 293304,
"otherReportableNet": 15526,
"leveragedMoneyShort": 525934,
"otherReportableLong": 164923,
"totalReportableLong": 2286602,
"leveragedMoneySpread": 24728,
"otherReportableShort": 149397,
"totalReportableShort": 2197716,
"otherReportableSpread": 0
},
{
"code": "044601",
"date": "2026-08-11",
"units": "(CONTRACTS OF $100,000 FACE VALUE)",
"market": "UST 5Y NOTE",
"exchange": "UST 5Y NOTE - CHICAGO BOARD OF TRADE",
"subgroup": "F30",
"commodity": "T-NOTES, 4-6 YEAR",
"dealerNet": -819024,
"dealerLong": 116505,
"dealerShort": 935529,
"dealerSpread": 52380,
"openInterest": 6442950,
"assetManagerNet": 2883977,
"assetManagerLong": 3947514,
"assetManagerShort": 1063537,
"leveragedMoneyNet": -2147744,
"nonReportableLong": 401196,
"assetManagerSpread": 961806,
"leveragedMoneyLong": 410975,
"nonReportableShort": 378763,
"otherReportableNet": 60358,
"leveragedMoneyShort": 2558719,
"otherReportableLong": 220927,
"totalReportableLong": 6041754,
"leveragedMoneySpread": 330699,
"otherReportableShort": 160569,
"totalReportableShort": 6064187,
"otherReportableSpread": 948
}
],
"total": 46174,
"fields": [
"positions"
],
"market": null,
"dataset": "tff",
"hasMore": true,
"combined": false,
"nextPage": 2,
"provider": "cftc",
"subgroup": null
}
```
---
## Cme
**Category:** finance · **Slug:** `cme`
**Detail page:** https://zapi.ink/api/finance/cme
The trade dates the settlement archive actually holds for a product, each
**Tags:** finance, cme
### Settlement Dates
The trade dates the settlement archive actually holds for a product, each
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:cme/settlement-dates`
- **Cache TTL:** 1800s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `productId` | number | query | no | Exchange product id. Default 437 (COMEX Gold futures) |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:cme/settlement-dates?productId=437" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:cme/settlement-dates?productId=437", {
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:cme/settlement-dates?productId=437",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 5,
"items": [
{
"date": "2026-08-19",
"tradeDate": "08/19/2026",
"reportType": "Final"
},
{
"date": "2026-08-18",
"tradeDate": "08/18/2026",
"reportType": "Final"
},
{
"date": "2026-08-17",
"tradeDate": "08/17/2026",
"reportType": "Final"
},
{
"date": "2026-08-14",
"tradeDate": "08/14/2026",
"reportType": "Final"
},
{
"date": "2026-08-13",
"tradeDate": "08/13/2026",
"reportType": "Final"
}
],
"dataset": "settlement-dates",
"provider": "cme",
"productId": 437
}
```
---
### Products
The exchange product catalog — this is where a productId comes from.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:cme/products`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `query` | string | query | no | Match against product name, clearing code or Globex code (case-insensitive substring) |
| `exch` | enum(CBOT|CME|COMEX|NYMEX) | query | no | Exchange to keep |
| `group` | number | query | no | Product group id: 1 Interest Rate, 2 Agriculture, 3 FX, 4 Equities, 5 Weather, 7 Energy, 8 Metals, 11 Real Estate, 16 Cryptocurrencies |
| `subGroup` | number | query | no | Subgroup id within the group. Under Metals: 31 Base, 33 Ferrous, 34 Other, 35 Precious, 56 Battery Metals |
| `cleared` | enum(Futures|Options|Cleared Swaps|Cleared Forwards|Indices) | query | no | Instrument type to keep |
| `venue` | enum(1|2|3) | query | no | Trading venue: 1 ClearPort, 2 Floor, 3 Globex |
| `sortField` | enum(oi|vol|name|exch|cleared) | query | no | Column to sort on. Default oi |
| `sortAsc` | enum(true|false) | query | no | Sort ascending. Default false |
| `page` | number | query | no | Page number, 1-based. Default 1 |
| `limit` | number | query | no | Rows per page. Default 50, max 500 — the upstream cap |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:cme/products?query=gold&exch=COMEX&group=8&subGroup=35&cleared=Futures&venue=3&sortField=oi&sortAsc=false&page=1&limit=50" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:cme/products?query=gold&exch=COMEX&group=8&subGroup=35&cleared=Futures&venue=3&sortField=oi&sortAsc=false&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:cme/products?query=gold&exch=COMEX&group=8&subGroup=35&cleared=Futures&venue=3&sortField=oi&sortAsc=false&page=1&limit=50",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"exch": null,
"page": 1,
"count": 50,
"group": null,
"items": [
{
"url": "/markets/metals/precious/gold_contractSpecs_options.html?optionProductId=192",
"name": "Gold Option",
"group": "Metals",
"venues": "Globex ClearPort",
"volume": 102100,
"cleared": "Options",
"groupId": 8,
"exchange": "COMEX",
"subGroup": "Precious",
"floorCode": null,
"productId": 192,
"globexCode": "OG",
"subGroupId": 35,
"floorTraded": false,
"floorVolume": 0,
"clearingCode": "OG",
"globexTraded": true,
"globexVolume": 92108,
"openInterest": 840892,
"clearPortVolume": 9992
},
{
"url": "/markets/metals/precious/gold_contract_specifications.html",
"name": "Gold Futures",
"group": "Metals",
"venues": "Globex ClearPort",
"volume": 303458,
"cleared": "Futures",
"groupId": 8,
"exchange": "COMEX",
"subGroup": "Precious",
"floorCode": null,
"productId": 437,
"globexCode": "GC",
"subGroupId": 35,
"floorTraded": false,
"floorVolume": 0,
"clearingCode": "GC",
"globexTraded": true,
"globexVolume": 296042,
"openInterest": 420408,
"clearPortVolume": 7416
},
{
"url": "/markets/metals/precious/e-micro-gold_contract_specifications.html",
"name": "Micro Gold Futures",
"group": "Metals",
"venues": "Globex ClearPort",
"volume": 392384,
"cleared": "Futures",
"groupId": 8,
"exchange": "COMEX",
"subGroup": "Precious",
"floorCode": null,
"productId": 5224,
"globexCode": "MGC",
"subGroupId": 35,
"floorTraded": false,
"floorVolume": 0,
"clearingCode": "MGC",
"globexTraded": true,
"globexVolume": 392384,
"openInterest": 66327,
"clearPortVolume": 0
},
{
"url": "/markets/metals/precious/1-ounce-gold_contract_specifications.html",
"name": "1-Ounce Gold Futures",
"group": "Metals",
"venues": "Globex",
"volume": 96023,
"cleared": "Futures",
"groupId": 8,
"exchange": "COMEX",
"subGroup": "Precious",
"floorCode": null,
"productId": 10907,
"globexCode": "1OZ",
"subGroupId": 35,
"floorTraded": false,
"floorVolume": 0,
"clearingCode": "1OZ",
"globexTraded": true,
"globexVolume": 96023,
"openInterest": 50465,
"clearPortVolume": 0
},
{
"url": "/markets/metals/precious/gold_contractSpecs_options.html?optionProductId=7490",
"name": "Gold Weekly Friday Option - Week 3",
"group": "Metals",
"venues": "Globex ClearPort",
"volume": 7299,
"cleared": "Options",
"groupId": 8,
"exchange": "COMEX",
"subGroup": "Precious",
"floorCode": null,
"productId": 7490,
"globexCode": "OG3",
"subGroupId": 35,
"floorTraded": false,
"floorVolume": 0,
"clearingCode": "OG3",
"globexTraded": true,
"globexVolume": 6999,
"openInterest": 9903,
"clearPortVolume": 300
},
{
"url": "/markets/metals/precious/e-mini-gold_contract_specifications.html",
"name": "E-mini Gold Futures",
"group": "Metals",
"venues": "Globex ClearPort",
"volume": 4965,
"cleared": "Futures",
"groupId": 8,
"exchange": "COMEX",
"subGroup": "Precious",
"floorCode": null,
"productId": 454,
"globexCode": "QO",
"subGroupId": 35,
"floorTraded": false,
"floorVolume": 0,
"clearingCode": "QO",
"globexTraded": true,
"globexVolume": 4165,
"openInterest": 7486,
"clearPortVolume": 800
},
{
"url": "/markets/metals/precious/gold_contractSpecs_options.html?optionProductId=10628",
"name": "Gold Weekly Thursday Option - Week 3",
"group": "Metals",
"venues": "Globex ClearPort",
"volume": 4987,
"cleared": "Options",
"groupId": 8,
"exchange": "COMEX",
"subGroup": "Precious",
"floorCode": null,
"productId": 10628,
"globexCode": "G3R",
"subGroupId": 35,
"floorTraded": false,
"floorVolume": 0,
"clearingCode": "G3R",
"globexTraded": true,
"globexVolume": 4987,
"openInterest": 5062,
"clearPortVolume": 0
},
{
"url": "/markets/metals/precious/gold_contractSpecs_options.html?optionProductId=7491",
"name": "Gold Weekly Friday Option - Week 4",
"group": "Metals",
"venues": "Globex ClearPort",
"volume": 1785,
"cleared": "Options",
"groupId": 8,
"exchange": "COMEX",
"subGroup": "Precious",
"floorCode": null,
"productId": 7491,
"globexCode": "OG4",
"subGroupId": 35,
"floorTraded": false,
"floorVolume": 0,
"clearingCode": "OG4",
"globexTraded": true,
"globexVolume": 1685,
"openInterest": 4626,
"clearPortVolume": 100
}
],
"query": "gold",
"total": 54,
"venue": null,
"cleared": null,
"dataset": "products",
"hasMore": true,
"sortAsc": false,
"nextPage": 2,
"provider": "cme",
"subGroup": null,
"sortField": "oi"
}
```
---
### Settlements
Daily settlement report for one product and one trade date: open, high, low,
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:cme/settlements`
- **Cache TTL:** 1800s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `productId` | number | query | no | Exchange product id. Default 437 (COMEX Gold futures) |
| `tradeDate` | string | query | no | Session to read, YYYY-MM-DD or MM/DD/YYYY. Default the newest published session. Only the last few sessions exist — list them with settlement-dates |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:cme/settlements?productId=437&tradeDate=2026-08-19" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:cme/settlements?productId=437&tradeDate=2026-08-19", {
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:cme/settlements?productId=437&tradeDate=2026-08-19",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 34,
"items": [
{
"low": 4327.6,
"high": 4524.1,
"last": 4524.1,
"open": 4339.8,
"month": "AUG 26",
"change": 123.4,
"settle": 4489.4,
"volume": 1336,
"openInterest": 1119,
"lastQualifier": "A"
},
{
"low": null,
"high": 4530.7,
"last": 4530.7,
"open": 4343,
"month": "SEP 26",
"change": 122.9,
"settle": 4495.1,
"volume": 5968,
"openInterest": 5753,
"lastQualifier": "B"
},
{
"low": 4345.8,
"high": 4548.6,
"last": 4546.8,
"open": 4356.4,
"month": "OCT 26",
"change": 123.5,
"settle": 4511.3,
"volume": 32932,
"openInterest": 52856,
"lastQualifier": "A"
},
{
"low": 4365.7,
"high": 4564.9,
"last": 4564.9,
"open": 4370.6,
"month": "NOV 26",
"change": 124.1,
"settle": 4529.1,
"volume": 212,
"openInterest": 628,
"lastQualifier": "B"
},
{
"low": 4378,
"high": 4582.8,
"last": 4580.7,
"open": 4391.4,
"month": "DEC 26",
"change": 124.7,
"settle": 4545.3,
"volume": 250482,
"openInterest": 312507,
"lastQualifier": null
},
{
"low": 4477,
"high": 4581.1,
"last": 4581.1,
"open": 4477,
"month": "JAN 27",
"change": 125.3,
"settle": 4565.1,
"volume": 69,
"openInterest": 458,
"lastQualifier": "A"
},
{
"low": 4412.8,
"high": null,
"last": 4617.5,
"open": 4428.7,
"month": "FEB 27",
"change": 125.8,
"settle": 4581.2,
"volume": 8271,
"openInterest": 21076,
"lastQualifier": "B"
},
{
"low": 4550,
"high": 4594.7,
"last": 4594.7,
"open": 4550,
"month": "MAR 27",
"change": 126.3,
"settle": 4597.2,
"volume": 4,
"openInterest": 28,
"lastQualifier": "B"
}
],
"totals": {
"volume": 303458,
"openInterest": 406260
},
"dataset": "settlements",
"provider": "cme",
"productId": 437,
"tradeDate": "2026-08-19",
"reportType": "Final",
"updateTime": "Wednesday, 19 Aug 2026 11:55 PM"
}
```
---
### Volume Oi
Daily volume and open interest for one product, split by execution venue —
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:cme/volume-oi`
- **Cache TTL:** 1800s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `productId` | number | query | no | Exchange product id. Default 437 (COMEX Gold futures) |
| `tradeDate` | string | query | no | Session to read, YYYY-MM-DD or YYYYMMDD. Default the newest session with a published settlement |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:cme/volume-oi?productId=437&tradeDate=2026-08-19" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:cme/volume-oi?productId=437&tradeDate=2026-08-19", {
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:cme/volume-oi?productId=437&tradeDate=2026-08-19",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 28,
"items": [
{
"month": "AUG 2026",
"change": -745,
"efpVol": 0,
"efrVol": 0,
"efsVol": 0,
"eooVol": 0,
"globex": 1336,
"pntVol": 0,
"subVol": 0,
"tasVol": 0,
"atClose": 374,
"exercises": 0,
"deliveries": 184,
"openOutcry": 0,
"blockVolume": 0,
"totalVolume": 1336
},
{
"month": "SEP 2026",
"change": -1339,
"efpVol": 0,
"efrVol": 0,
"efsVol": 0,
"eooVol": 0,
"globex": 5968,
"pntVol": 0,
"subVol": 0,
"tasVol": 0,
"atClose": 4414,
"exercises": 0,
"deliveries": 0,
"openOutcry": 0,
"blockVolume": 0,
"totalVolume": 5968
},
{
"month": "OCT 2026",
"change": 1186,
"efpVol": 500,
"efrVol": 0,
"efsVol": 0,
"eooVol": 0,
"globex": 32326,
"pntVol": 606,
"subVol": 0,
"tasVol": 7,
"atClose": 54042,
"exercises": 0,
"deliveries": 0,
"openOutcry": 0,
"blockVolume": 106,
"totalVolume": 32932
},
{
"month": "NOV 2026",
"change": 1,
"efpVol": 0,
"efrVol": 0,
"efsVol": 0,
"eooVol": 0,
"globex": 212,
"pntVol": 0,
"subVol": 0,
"tasVol": 0,
"atClose": 629,
"exercises": 0,
"deliveries": 0,
"openOutcry": 0,
"blockVolume": 0,
"totalVolume": 212
},
{
"month": "DEC 2026",
"change": 14888,
"efpVol": 6325,
"efrVol": 0,
"efsVol": 0,
"eooVol": 0,
"globex": 243873,
"pntVol": 6609,
"subVol": 0,
"tasVol": 980,
"atClose": 327395,
"exercises": 0,
"deliveries": 0,
"openOutcry": 0,
"blockVolume": 284,
"totalVolume": 250482
},
{
"month": "JAN 2027",
"change": 3,
"efpVol": 0,
"efrVol": 0,
"efsVol": 0,
"eooVol": 0,
"globex": 69,
"pntVol": 0,
"subVol": 0,
"tasVol": 0,
"atClose": 461,
"exercises": 0,
"deliveries": 0,
"openOutcry": 0,
"blockVolume": 0,
"totalVolume": 69
},
{
"month": "FEB 2027",
"change": 1116,
"efpVol": 0,
"efrVol": 0,
"efsVol": 0,
"eooVol": 0,
"globex": 8264,
"pntVol": 7,
"subVol": 0,
"tasVol": 86,
"atClose": 22192,
"exercises": 0,
"deliveries": 0,
"openOutcry": 0,
"blockVolume": 7,
"totalVolume": 8271
},
{
"month": "MAR 2027",
"change": 1,
"efpVol": 0,
"efrVol": 0,
"efsVol": 0,
"eooVol": 0,
"globex": 4,
"pntVol": 0,
"subVol": 0,
"tasVol": 0,
"atClose": 29,
"exercises": 0,
"deliveries": 0,
"openOutcry": 0,
"blockVolume": 0,
"totalVolume": 4
}
],
"totals": {
"change": 15461,
"efpVol": 6825,
"efrVol": 0,
"efsVol": 0,
"eooVol": 0,
"globex": 296042,
"pntVol": 7416,
"subVol": 0,
"tasVol": 1108,
"atClose": 421721,
"exercises": 0,
"deliveries": 184,
"openOutcry": 0,
"blockVolume": 591,
"totalVolume": 303458
},
"dataset": "volume-oi",
"provider": "cme",
"productId": 437,
"tradeDate": "2026-08-19",
"updateTime": "2026-08-20T05:20:07.000Z"
}
```
---
### Quotes
COMEX/CME futures quotes, one row per listed contract month.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:cme/quotes`
- **Cache TTL:** 60s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `productId` | number | query | no | Exchange product id. Default 437 (COMEX Gold futures). Look ids up with the products endpoint |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:cme/quotes?productId=437" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:cme/quotes?productId=437", {
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:cme/quotes?productId=437",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 35,
"items": [
{
"low": null,
"code": "GCQ6",
"high": null,
"last": null,
"open": null,
"close": null,
"month": "AUG 2026",
"change": null,
"volume": 0,
"updated": "2026-08-21T00:31:15.640Z",
"priorSettle": null,
"productCode": "GC",
"exchangeCode": "XCEC",
"isFrontMonth": false,
"lastQualifier": null,
"lastTradeDate": "2026-08-27T05:00:00Z",
"notionalValue": null,
"expirationDate": "2026-08-01",
"percentageChange": null
},
{
"low": 4517.4,
"code": "GCU6",
"high": 4549,
"last": 4525.1,
"open": 4526.9,
"close": null,
"month": "SEP 2026",
"change": 4.4,
"volume": 1106,
"updated": "2026-08-21T02:12:19.425Z",
"priorSettle": null,
"productCode": "GC",
"exchangeCode": "XCEC",
"isFrontMonth": false,
"lastQualifier": null,
"lastTradeDate": "2026-09-28T05:00:00Z",
"notionalValue": 452510,
"expirationDate": "2026-09-01",
"percentageChange": 0.1
},
{
"low": 4531.9,
"code": "GCV6",
"high": 4565.5,
"last": 4540,
"open": 4543.3,
"close": null,
"month": "OCT 2026",
"change": 2.9,
"volume": 1907,
"updated": "2026-08-21T02:12:58.125Z",
"priorSettle": null,
"productCode": "GC",
"exchangeCode": "XCEC",
"isFrontMonth": true,
"lastQualifier": null,
"lastTradeDate": "2026-10-28T05:00:00Z",
"notionalValue": 454000,
"expirationDate": "2026-10-01",
"percentageChange": 0.06
},
{
"low": 4571.3,
"code": "GCX6",
"high": 4571.3,
"last": 4571.3,
"open": 4571.3,
"close": null,
"month": "NOV 2026",
"change": 16.1,
"volume": 6,
"updated": "2026-08-21T02:10:45.161Z",
"priorSettle": null,
"productCode": "GC",
"exchangeCode": "XCEC",
"isFrontMonth": false,
"lastQualifier": null,
"lastTradeDate": "2026-11-25T06:00:00Z",
"notionalValue": 457130,
"expirationDate": "2026-11-01",
"percentageChange": 0.35
},
{
"low": 4565.5,
"code": "GCZ6",
"high": 4600.3,
"last": 4574,
"open": 4577,
"close": null,
"month": "DEC 2026",
"change": 2.6,
"volume": 18058,
"updated": "2026-08-21T02:12:59.202Z",
"priorSettle": null,
"productCode": "GC",
"exchangeCode": "XCEC",
"isFrontMonth": false,
"lastQualifier": null,
"lastTradeDate": "2026-12-29T06:00:00Z",
"notionalValue": 457400,
"expirationDate": "2026-12-01",
"percentageChange": 0.06
},
{
"low": null,
"code": "GCF7",
"high": null,
"last": null,
"open": null,
"close": null,
"month": "JAN 2027",
"change": null,
"volume": 4,
"updated": "2026-08-21T02:12:14.043Z",
"priorSettle": null,
"productCode": "GC",
"exchangeCode": "XCEC",
"isFrontMonth": false,
"lastQualifier": null,
"lastTradeDate": "2027-01-27T06:00:00Z",
"notionalValue": null,
"expirationDate": "2027-01-01",
"percentageChange": null
},
{
"low": 4602,
"code": "GCG7",
"high": 4634.7,
"last": 4611.3,
"open": 4613.9,
"close": null,
"month": "FEB 2027",
"change": 4.5,
"volume": 377,
"updated": "2026-08-21T02:12:58.124Z",
"priorSettle": null,
"productCode": "GC",
"exchangeCode": "XCEC",
"isFrontMonth": false,
"lastQualifier": null,
"lastTradeDate": "2027-02-24T06:00:00Z",
"notionalValue": 461130,
"expirationDate": "2027-02-01",
"percentageChange": 0.1
},
{
"low": null,
"code": "GCH7",
"high": null,
"last": null,
"open": null,
"close": null,
"month": "MAR 2027",
"change": null,
"volume": 3,
"updated": "2026-08-21T02:12:14.057Z",
"priorSettle": null,
"productCode": "GC",
"exchangeCode": "XCEC",
"isFrontMonth": false,
"lastQualifier": null,
"lastTradeDate": "2027-03-29T05:00:00Z",
"notionalValue": null,
"expirationDate": "2027-03-01",
"percentageChange": null
}
],
"dataset": "quotes",
"provider": "cme",
"productId": 437,
"tradeDate": "21 Aug 2026",
"quoteDelay": "10 minutes",
"productName": "Gold Futures",
"quoteDelayed": true
}
```
---
### Calendar
The listed contract months for a product and every date that matters for each:
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:cme/calendar`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `productId` | number | query | no | Exchange product id. Default 437 (COMEX Gold futures) |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:cme/calendar?productId=437" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:cme/calendar?productId=437", {
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:cme/calendar?productId=437",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 35,
"items": [
{
"lastTrade": "2026-08-27",
"expiration": "2026-08-01",
"firstTrade": "2024-09-30",
"lastNotice": "2026-08-28",
"settlement": "2026-08-27",
"firstNotice": "2026-07-31",
"lastHolding": null,
"productCode": "GCQ26",
"firstHolding": null,
"lastDelivery": "2026-08-31",
"lastPosition": "2026-08-28",
"contractMonth": "Aug 2026",
"firstDelivery": "2026-08-03",
"firstPosition": "2026-07-30",
"expirationTime": "August 01, 2026 12:00:00 AM CDT"
},
{
"lastTrade": "2026-09-28",
"expiration": "2026-09-01",
"firstTrade": "2025-02-10",
"lastNotice": "2026-09-29",
"settlement": "2026-09-28",
"firstNotice": "2026-08-31",
"lastHolding": null,
"productCode": "GCU26",
"firstHolding": null,
"lastDelivery": "2026-09-30",
"lastPosition": "2026-09-29",
"contractMonth": "Sep 2026",
"firstDelivery": "2026-09-01",
"firstPosition": "2026-08-28",
"expirationTime": "September 01, 2026 12:00:00 AM CDT"
},
{
"lastTrade": "2026-10-28",
"expiration": "2026-10-01",
"firstTrade": "2024-11-29",
"lastNotice": "2026-10-29",
"settlement": "2026-10-28",
"firstNotice": "2026-09-30",
"lastHolding": null,
"productCode": "GCV26",
"firstHolding": null,
"lastDelivery": "2026-10-30",
"lastPosition": "2026-10-29",
"contractMonth": "Oct 2026",
"firstDelivery": "2026-10-01",
"firstPosition": "2026-09-29",
"expirationTime": "October 01, 2026 12:00:00 AM CDT"
},
{
"lastTrade": "2026-11-25",
"expiration": "2026-11-01",
"firstTrade": "2025-02-10",
"lastNotice": "2026-11-27",
"settlement": "2026-11-25",
"firstNotice": "2026-10-30",
"lastHolding": null,
"productCode": "GCX26",
"firstHolding": null,
"lastDelivery": "2026-11-30",
"lastPosition": "2026-11-27",
"contractMonth": "Nov 2026",
"firstDelivery": "2026-11-02",
"firstPosition": "2026-10-29",
"expirationTime": "November 01, 2026 12:00:00 AM CDT"
},
{
"lastTrade": "2026-12-29",
"expiration": "2026-12-01",
"firstTrade": "2020-12-31",
"lastNotice": "2026-12-30",
"settlement": "2026-12-29",
"firstNotice": "2026-11-30",
"lastHolding": null,
"productCode": "GCZ26",
"firstHolding": null,
"lastDelivery": "2026-12-31",
"lastPosition": "2026-12-30",
"contractMonth": "Dec 2026",
"firstDelivery": "2026-12-01",
"firstPosition": "2026-11-27",
"expirationTime": "December 01, 2026 12:00:00 AM CST"
},
{
"lastTrade": "2027-01-27",
"expiration": "2027-01-01",
"firstTrade": "2025-02-10",
"lastNotice": "2027-01-28",
"settlement": "2027-01-27",
"firstNotice": "2026-12-31",
"lastHolding": null,
"productCode": "GCF27",
"firstHolding": null,
"lastDelivery": "2027-01-29",
"lastPosition": "2027-01-28",
"contractMonth": "Jan 2027",
"firstDelivery": "2027-01-04",
"firstPosition": "2026-12-30",
"expirationTime": "January 01, 2027 12:00:00 AM CST"
},
{
"lastTrade": "2027-02-24",
"expiration": "2027-02-01",
"firstTrade": "2025-02-28",
"lastNotice": "2027-02-25",
"settlement": "2027-02-24",
"firstNotice": "2027-01-29",
"lastHolding": null,
"productCode": "GCG27",
"firstHolding": null,
"lastDelivery": "2027-02-26",
"lastPosition": "2027-02-25",
"contractMonth": "Feb 2027",
"firstDelivery": "2027-02-01",
"firstPosition": "2027-01-28",
"expirationTime": "February 01, 2027 12:00:00 AM CST"
},
{
"lastTrade": "2027-03-29",
"expiration": "2027-03-01",
"firstTrade": "2025-03-28",
"lastNotice": "2027-03-30",
"settlement": "2027-03-29",
"firstNotice": "2027-02-26",
"lastHolding": null,
"productCode": "GCH27",
"firstHolding": null,
"lastDelivery": "2027-03-31",
"lastPosition": "2027-03-30",
"contractMonth": "Mar 2027",
"firstDelivery": "2027-03-01",
"firstPosition": "2027-02-25",
"expirationTime": "March 01, 2027 12:00:00 AM CST"
}
],
"dataset": "calendar",
"provider": "cme",
"productId": 437
}
```
---
## Coingecko
**Category:** finance · **Slug:** `coingecko`
**Detail page:** https://zapi.ink/api/finance/coingecko
Sector market caps — which categories exist and which coins lead them.
**Tags:** finance, coingecko
### Categories
Sector market caps — which categories exist and which coins lead them.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:coingecko/categories`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `order` | enum(market_cap_desc|market_cap_asc|name_desc|name_asc|market_cap_change_24h_desc|market_cap_change_24h_asc) | query | no | Row ordering. Default market_cap_desc. |
| `query` | string | query | no | Free text over category id and name. |
| `limit` | number | query | no | Categories to return. Default 50, max 500. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:coingecko/categories?order=market_cap_desc&query=layer&limit=50" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:coingecko/categories?order=market_cap_desc&query=layer&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:coingecko/categories?order=market_cap_desc&query=layer&limit=50",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 50,
"items": [
{
"id": "smart-contract-platform",
"name": "Smart Contract Platform",
"topCoins": [
"bitcoin",
"ethereum",
"binancecoin"
],
"marketCap": 2169182803129.4478,
"updatedAt": "2026-08-21T02:18:58.000Z",
"volume24h": 109354512259.09181,
"description": "Smart contract platforms are usually blockchains that host smart contracts or decentralized applications. Users can interact with different smart contracts on these platforms to perform various actions such as lending and borrowing funds, staking their assets or minting NFTs. Smart contracts are programs that are stored on the blockchain and are automatically executed when certain conditions are met.",
"marketCapChange24h": 6.851820346894821
},
{
"id": "layer-1",
"name": "Layer 1 (L1)",
"topCoins": [
"bitcoin",
"ethereum",
"binancecoin"
],
"marketCap": 2139409183150.855,
"updatedAt": "2026-08-21T02:18:58.000Z",
"volume24h": 106224662697.78165,
"description": "Layer 1 serves as the primary and autonomous chain on which transactions are directly executed and confirmed, as well as providing the essential infrastructure for the blockchain network.",
"marketCapChange24h": 6.860799823767945
},
{
"id": "proof-of-work-pow",
"name": "Proof of Work (PoW)",
"topCoins": [
"bitcoin",
"dogecoin",
"zcash"
],
"marketCap": 1544838272129.8872,
"updatedAt": "2026-08-21T02:18:58.000Z",
"volume24h": 61883560925.84648,
"description": "Proof of Work (PoW) is a blockchain consensus mechanism to validate transactions and create new blocks through computational efforts by miners.",
"marketCapChange24h": 7.351411748462364
},
{
"id": "world-liberty-financial-portfolio",
"name": "World Liberty Financial Portfolio",
"topCoins": [
"ethereum",
"tether",
"usd-coin"
],
"marketCap": 593583330794.9008,
"updatedAt": "2026-08-21T02:18:58.000Z",
"volume24h": 149736005220.40707,
"description": "The World Liberty Financial portfolio includes purchases made by the World Liberty Financial project. World Liberty Financial is a DeFi project associated with U.S. presidential candidate Donald Trump and his family members.",
"marketCapChange24h": 2.0467187219617577
},
{
"id": "proof-of-stake-pos",
"name": "Proof of Stake (PoS)",
"topCoins": [
"ethereum",
"binancecoin",
"solana"
],
"marketCap": 501794993295.9111,
"updatedAt": "2026-08-21T02:18:58.000Z",
"volume24h": 36781948402.51884,
"description": "Proof of Stake (PoS) is a blockchain consensus mechanism where validators are selected to create new blocks based on the amount of cryptocurrency they hold and are willing to stake as collateral.",
"marketCapChange24h": 4.244045735526035
},
{
"id": "made-in-usa",
"name": "Made in USA",
"topCoins": [
"ripple",
"usd-coin",
"solana"
],
"marketCap": 301305708772.3516,
"updatedAt": "2026-08-21T02:18:58.000Z",
"volume24h": 43769121481.169106,
"description": "Refers to cryptocurrencies that have significant connections to the United States, either through their founding team or company headquarters.",
"marketCapChange24h": 5.871783727993504
},
{
"id": "stablecoins",
"name": "Stablecoins",
"topCoins": [
"tether",
"usd-coin",
"usds"
],
"marketCap": 288679680734.6354,
"updatedAt": "2026-08-21T02:18:58.000Z",
"volume24h": 124092178305.77885,
"description": "A stablecoin is a type of cryptocurrency that is designed to maintain a stable value by being pegged to an external reference, such as a fiat currency.",
"marketCapChange24h": 0.13974186369288907
},
{
"id": "usd-stablecoin",
"name": "USD Stablecoin",
"topCoins": [
"tether",
"usd-coin",
"usds"
],
"marketCap": 285965474537.6464,
"updatedAt": "2026-08-21T02:18:58.000Z",
"volume24h": 123950968526.06122,
"description": "A USD stablecoin is a type of cryptocurrency that is designed to maintain a stable value by being pegged to the United States dollar.",
"marketCapChange24h": 0.13345029142541218
}
],
"order": "market_cap_desc",
"query": null,
"total": 753,
"dataset": "categories",
"provider": "coingecko"
}
```
---
### Exchanges
Venue directory with CoinGecko's trust score — a map of where things trade,
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:coingecko/exchanges`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `page` | number | query | no | Result page. Default 1. |
| `limit` | number | query | no | Venues per page, best trust score first. Default 50, max 250. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:coingecko/exchanges?page=1&limit=50" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:coingecko/exchanges?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:coingecko/exchanges?page=1&limit=50",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"page": 1,
"count": 50,
"items": [
{
"id": "gdax",
"url": "https://www.coinbase.com/",
"name": "Coinbase Exchange",
"image": "https://coin-images.coingecko.com/markets/images/23/small/Coinbase_Coin_Primary.png?1706864258",
"country": "United States",
"trustScore": 10,
"description": "A leading U.S.-based exchange known for its regulatory compliance, user-friendly interface, and support for fiat-to-crypto transactions.",
"trustScoreRank": 1,
"yearEstablished": 2012,
"tradeVolume24hBtc": 43119.712310406896,
"hasTradingIncentive": false
},
{
"id": "binance",
"url": "https://www.binance.com/",
"name": "Binance",
"image": "https://coin-images.coingecko.com/markets/images/52/small/binance.jpg?1706864274",
"country": "Cayman Islands",
"trustScore": 10,
"description": "One of the world’s largest cryptocurrency exchanges by trading volume, offering a wide range of services including spot, futures, and staking options.",
"trustScoreRank": 2,
"yearEstablished": 2017,
"tradeVolume24hBtc": 216189.3202817008,
"hasTradingIncentive": false
},
{
"id": "kraken",
"url": "https://www.kraken.com/",
"name": "Kraken",
"image": "https://coin-images.coingecko.com/markets/images/29/small/kraken.jpg?1706864265",
"country": "United States",
"trustScore": 10,
"description": "Kraken is a San Francisco-based cryptocurrency exchange, offering a wide range of trading services for various cryptocurrencies and known for its robust security and regulatory compliance efforts.",
"trustScoreRank": 3,
"yearEstablished": 2011,
"tradeVolume24hBtc": 26793.790275749678,
"hasTradingIncentive": false
},
{
"id": "okex",
"url": "https://www.okx.com",
"name": "OKX",
"image": "https://coin-images.coingecko.com/markets/images/96/small/WeChat_Image_20220117220452.png?1706864283",
"country": "Seychelles",
"trustScore": 10,
"description": "OKX is a leading global cryptocurrency exchange offering diverse trading options, advanced security, and Web3 integration for millions of users worldwide.",
"trustScoreRank": 4,
"yearEstablished": 2017,
"tradeVolume24hBtc": 44484.488636382994,
"hasTradingIncentive": false
},
{
"id": "bitget",
"url": "https://www.bitget.com/",
"name": "Bitget",
"image": "https://coin-images.coingecko.com/markets/images/540/small/2023-07-25_21.47.43.jpg?1706864507",
"country": "Seychelles",
"trustScore": 10,
"description": "Established in 2018, Bitget is the world's leading cryptocurrency exchange and Web3 company. Serving over 100 million users in 150+ countries and regions, the Bitget exchange is committed to helping users trade smarter with its pioneering copy trading feature and other trading solutions, while offering real-time access to Bitcoin price, Ethereum price, and other cryptocurrency prices. Formerly known as BitKeep, Bitget Wallet is a world-class multi-chain crypto wallet that offers an array of comprehensive Web3 solutions and features including wallet functionality, token swap, NFT Marketplace, DApp browser, and more. Bitget is at the forefront of driving crypto adoption through strategic partnerships, such as its role as the Official Crypto Partner of the World's Top Football League, LALIGA, in EASTERN, SEA and LATAM market, as well as a global partner of Turkish National athletes Buse Tosun Çavuşoğlu (Wrestling world champion), Samet Gümüş (Boxing gold medalist) and İlkin Aydın (Volleyball national team), to inspire the global community to embrace the future of cryptocurrency.",
"trustScoreRank": 5,
"yearEstablished": 2018,
"tradeVolume24hBtc": 19605.038162766952,
"hasTradingIncentive": false
},
{
"id": "gate",
"url": "https://www.gate.com",
"name": "Gate",
"image": "https://coin-images.coingecko.com/markets/images/60/small/Frame_1.png?1747795534",
"country": "Panama",
"trustScore": 10,
"description": "Gate was established in 2013 and provides digital asset trading and related blockchain services to users globally. The platform reports serving more than 58 million users and supports spot, futures, and margin trading, as well as wealth management products for over 4,900 cryptocurrencies and 12,500+ stock assets.\n\nGate states that it uses zero-knowledge technology to provide verifiable proof of reserves. According to the company, as of June 22, 2026, its reported total reserves were valued at approximately USD 8.182 billion, with a reserve ratio of 115%, covering nearly 500 types of user assets.\n\nVarious Gate entities have obtained regulatory registrations, licenses, authorizations, or approvals in multiple jurisdictions, including Malta, Italy, Gibraltar, the Bahamas, Hong Kong, Japan, and the United Arab Emirates. In 2024, Gate Group completed the acquisition of a Japan-licensed exchange. In April 2025, Gate Technology FZE obtained a full operational license from Dubai’s Virtual Assets Regulatory Authority (VARA). In September 2025, Gate Technology Ltd. received authorization under the EU’s Markets in Crypto-Assets (MiCA) framework from the Malta Financial Services Authority (MFSA).In February 2026, Gate's Malta-based entity, Gate Technology Ltd, officially obtained a Payment Institution license under the EU's Second Payment Services Directive (PSD2) from the Malta Financial Services Authority (MFSA).",
"trustScoreRank": 6,
"yearEstablished": 2013,
"tradeVolume24hBtc": 43041.70347289879,
"hasTradingIncentive": false
},
{
"id": "bitstamp",
"url": "https://links.bitstamp.net/c/2223866/1100037/14006",
"name": "Bitstamp by Robinhood",
"image": "https://coin-images.coingecko.com/markets/images/9/small/bitstamp.jpg?1706864251",
"country": "Luxembourg",
"trustScore": 9,
"description": "Bitstamp is the world's longest-running cryptocurrency exchange, providing a secure platform for trading popular cryptocurrencies like Bitcoin and Ethereum with a focus on transparency and customer service.",
"trustScoreRank": 7,
"yearEstablished": 2011,
"tradeVolume24hBtc": 9835.273114318577,
"hasTradingIncentive": false
},
{
"id": "bybit_spot",
"url": "https://www.bybit.com",
"name": "Bybit",
"image": "https://coin-images.coingecko.com/markets/images/698/small/bybit_spot.png?1706864649",
"country": "British Virgin Islands",
"trustScore": 9,
"description": "Bybit is the world’s second-largest cryptocurrency exchange by trading volume, serving a global community of over 60 million users. Founded in 2018, Bybit is redefining openness in the decentralized world by creating a simpler, open and equal ecosystem for everyone. With a strong focus on Web3, Bybit partners strategically with leading blockchain protocols to provide robust infrastructure and drive on-chain innovation. Renowned for its secure custody, diverse marketplaces, intuitive user experience, and advanced blockchain tools, Bybit bridges the gap between TradFi and DeFi, empowering builders, creators, and enthusiasts to unlock the full potential of Web3. Discover the future of decentralized finance at Bybit.com.",
"trustScoreRank": 8,
"yearEstablished": 2018,
"tradeVolume24hBtc": 43257.112822053066,
"hasTradingIncentive": false
}
],
"total": null,
"dataset": "exchanges",
"hasMore": true,
"nextPage": 2,
"provider": "coingecko"
}
```
---
### Vs Currencies
The currency codes every `vsCurrency` knob in this scraper accepts.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:coingecko/vs-currencies`
- **Cache TTL:** 86400s
**Parameters:**
_No parameters._
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:coingecko/vs-currencies" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:coingecko/vs-currencies", {
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:coingecko/vs-currencies",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 63,
"items": [
"aed",
"ars",
"aud",
"bch",
"bdt",
"bhd",
"bits",
"bmd"
],
"total": 63,
"dataset": "vs-currencies",
"provider": "coingecko"
}
```
---
### Global
Aggregate market state — one currency's slice of it.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:coingecko/global`
- **Cache TTL:** 900s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `vsCurrency` | string | query | no | Currency code from `vs-currencies` for the totals. Default usd. |
| `limit` | number | query | no | Dominance rows to return, largest share first. Default 10, max 100. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:coingecko/global?vsCurrency=usd&limit=10" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:coingecko/global?vsCurrency=usd&limit=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:coingecko/global?vsCurrency=usd&limit=10",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 10,
"items": [
{
"symbol": "BTC",
"percentage": 59.09948287325917
},
{
"symbol": "ETH",
"percentage": 11.16740932646525
},
{
"symbol": "USDT",
"percentage": 7.216053472191729
},
{
"symbol": "BNB",
"percentage": 3.4670143554415223
},
{
"symbol": "XRP",
"percentage": 3.175776279344623
},
{
"symbol": "USDC",
"percentage": 2.868964371860268
},
{
"symbol": "SOL",
"percentage": 2.0493882834354373
},
{
"symbol": "TRX",
"percentage": 1.2645660246975423
}
],
"total": 10,
"dataset": "global",
"markets": 1494,
"provider": "coingecko",
"endedIcos": 3376,
"updatedAt": 1787278945,
"vsCurrency": "usd",
"ongoingIcos": 49,
"totalVolume": 137275603987.54155,
"upcomingIcos": 0,
"totalMarketCap": 2529967923795.755,
"activeCryptocurrencies": 18522,
"marketCapChangePercentage24hUsd": 2.775890752056489
}
```
---
### Coins Markets
The market-cap ranked cross-section — which coins exist, what they are called,
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:coingecko/coins-markets`
- **Cache TTL:** 900s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `vsCurrency` | string | query | no | Currency code from `vs-currencies`. Default usd. |
| `ids` | string | query | no | Restrict to these coin ids, comma-separated. |
| `category` | string | query | no | Restrict to one category id from `categories`. |
| `order` | enum(market_cap_desc|market_cap_asc|volume_desc|volume_asc|id_desc|id_asc) | query | no | Row ordering. Default market_cap_desc. |
| `priceChangePercentage` | string | query | no | Extra change windows, comma-separated. Any of 1h, 24h, 7d, 14d, 30d, 200d, 1y. |
| `precision` | string | query | no | Decimal places, 0 to 18, or full. |
| `page` | number | query | no | Result page. Default 1. |
| `limit` | number | query | no | Coins per page. Default 50, max 250. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:coingecko/coins-markets?vsCurrency=usd&ids=bitcoin%2Cethereum&category=layer-1&order=market_cap_desc&priceChangePercentage=1h%2C24h%2C7d&precision=4&page=1&limit=50" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:coingecko/coins-markets?vsCurrency=usd&ids=bitcoin%2Cethereum&category=layer-1&order=market_cap_desc&priceChangePercentage=1h%2C24h%2C7d&precision=4&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:coingecko/coins-markets?vsCurrency=usd&ids=bitcoin%2Cethereum&category=layer-1&order=market_cap_desc&priceChangePercentage=1h%2C24h%2C7d&precision=4&page=1&limit=50",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"page": 1,
"count": 50,
"items": [
{
"id": "bitcoin",
"ath": 126080,
"atl": 67.81,
"name": "Bitcoin",
"image": "https://coin-images.coingecko.com/coins/images/1/large/bitcoin.png?1696501400",
"low24h": 68898,
"symbol": "BTC",
"athDate": "2025-10-06T10:57:42.000Z",
"atlDate": "2013-07-05T16:00:00.000Z",
"high24h": 75528,
"marketCap": 1499534928428,
"maxSupply": 21000000,
"lastUpdated": "2026-08-21T02:22:20.000Z",
"totalSupply": 20071518,
"totalVolume": 58961898192,
"currentPrice": 74697,
"marketCapRank": 1,
"priceChange24h": 5698.72,
"circulatingSupply": 20071518,
"marketCapChange24h": 114629005419,
"athChangePercentage": -40.754,
"atlChangePercentage": 110058.36751,
"fullyDilutedValuation": 1499534928428,
"priceChangePercentage": {},
"priceChangePercentage24h": 8.2,
"marketCapChangePercentage24h": 8.27702
},
{
"id": "ethereum",
"ath": 4946.05,
"atl": 0.432979,
"name": "Ethereum",
"image": "https://coin-images.coingecko.com/coins/images/279/large/ethereum.png?1696501628",
"low24h": 2223.48,
"symbol": "ETH",
"athDate": "2025-08-24T11:21:03.000Z",
"atlDate": "2015-10-19T16:00:00.000Z",
"high24h": 2374.35,
"marketCap": 283551699609,
"maxSupply": null,
"lastUpdated": "2026-08-21T02:22:20.000Z",
"totalSupply": 120681688.0431787,
"totalVolume": 26184981802,
"currentPrice": 2349.18,
"marketCapRank": 2,
"priceChange24h": 111.63,
"circulatingSupply": 120681688.04317872,
"marketCapChange24h": 13520065655,
"athChangePercentage": -52.50392,
"atlChangePercentage": 542462.0911,
"fullyDilutedValuation": 283551821528,
"priceChangePercentage": {},
"priceChangePercentage24h": 4.2,
"marketCapChangePercentage24h": 5.00685
},
{
"id": "tether",
"ath": 1.32,
"atl": 0.572521,
"name": "Tether",
"image": "https://coin-images.coingecko.com/coins/images/325/large/Tether.png?1696501661",
"low24h": 0.999172,
"symbol": "USDT",
"athDate": "2018-07-23T16:00:00.000Z",
"atlDate": "2015-03-01T16:00:00.000Z",
"high24h": 0.999781,
"marketCap": 183028623916,
"maxSupply": null,
"lastUpdated": "2026-08-21T02:22:20.000Z",
"totalSupply": 188572211645.5762,
"totalVolume": 94205801338,
"currentPrice": 0.999609,
"marketCapRank": 3,
"priceChange24h": 0.00018099,
"circulatingSupply": 183105266035.02103,
"marketCapChange24h": 33537221,
"athChangePercentage": -24.44923,
"atlChangePercentage": 74.59774,
"fullyDilutedValuation": 188493281234,
"priceChangePercentage": {},
"priceChangePercentage24h": 0,
"marketCapChangePercentage24h": 0.01833
},
{
"id": "binancecoin",
"ath": 1369.99,
"atl": 0.0398177,
"name": "BNB",
"image": "https://coin-images.coingecko.com/coins/images/825/large/bnb-icon2_2x.png?1696501970",
"low24h": 622.18,
"symbol": "BNB",
"athDate": "2025-10-13T00:41:24.000Z",
"atlDate": "2017-10-18T16:00:00.000Z",
"high24h": 665.31,
"marketCap": 88021355185,
"maxSupply": 200000000,
"lastUpdated": "2026-08-21T02:22:20.000Z",
"totalSupply": 133163284.66,
"totalVolume": 1588840355,
"currentPrice": 661.09,
"marketCapRank": 4,
"priceChange24h": 37.22,
"circulatingSupply": 133163284.66,
"marketCapChange24h": 4945379190,
"athChangePercentage": -51.7451,
"atlChangePercentage": 1660187.10097,
"fullyDilutedValuation": 88021356692,
"priceChangePercentage": {},
"priceChangePercentage24h": 5.2,
"marketCapChangePercentage24h": 5.95284
},
{
"id": "ripple",
"ath": 3.65,
"atl": 0.00268621,
"name": "XRP",
"image": "https://coin-images.coingecko.com/coins/images/44/large/xrp-symbol-white-128.png?1696501442",
"low24h": 1.088,
"symbol": "XRP",
"athDate": "2025-07-17T19:40:53.000Z",
"atlDate": "2014-05-21T16:00:00.000Z",
"high24h": 1.34,
"marketCap": 80626281592,
"maxSupply": 100000000000,
"lastUpdated": "2026-08-21T02:22:20.000Z",
"totalSupply": 99985629672,
"totalVolume": 7367029239,
"currentPrice": 1.29,
"marketCapRank": 5,
"priceChange24h": 0.193983,
"circulatingSupply": 62676938832,
"marketCapChange24h": 12139388491,
"athChangePercentage": -64.71348,
"atlChangePercentage": 47799.50946,
"fullyDilutedValuation": 128619388300,
"priceChangePercentage": {},
"priceChangePercentage24h": 16.5,
"marketCapChangePercentage24h": 17.72513
},
{
"id": "usd-coin",
"ath": 1.043,
"atl": 0.877647,
"name": "USDC",
"image": "https://coin-images.coingecko.com/coins/images/6319/large/USDC.png?1769615602",
"low24h": 0.999437,
"symbol": "USDC",
"athDate": "2018-11-14T16:00:00.000Z",
"atlDate": "2023-03-11T00:02:13.000Z",
"high24h": 1,
"marketCap": 72780727804,
"maxSupply": null,
"lastUpdated": "2026-08-21T02:22:20.000Z",
"totalSupply": 72783787437.54024,
"totalVolume": 23902753663,
"currentPrice": 0.99976,
"marketCapRank": 6,
"priceChange24h": 0.00011262,
"circulatingSupply": 72800451917.0638,
"marketCapChange24h": 313762067,
"athChangePercentage": -4.18837,
"atlChangePercentage": 13.91379,
"fullyDilutedValuation": 72784322670,
"priceChangePercentage": {},
"priceChangePercentage24h": 0,
"marketCapChangePercentage24h": 0.43297
},
{
"id": "solana",
"ath": 293.31,
"atl": 0.500801,
"name": "Solana",
"image": "https://coin-images.coingecko.com/coins/images/4128/large/solana.png?1718769756",
"low24h": 84.01,
"symbol": "SOL",
"athDate": "2025-01-19T03:15:27.000Z",
"atlDate": "2020-05-11T11:35:23.000Z",
"high24h": 89.32,
"marketCap": 51945913457,
"maxSupply": null,
"lastUpdated": "2026-08-21T02:22:20.000Z",
"totalSupply": 632513074.5503877,
"totalVolume": 4471510907,
"currentPrice": 89.06,
"marketCapRank": 7,
"priceChange24h": 4.71,
"circulatingSupply": 583063256.7775589,
"marketCapChange24h": 2768700804,
"athChangePercentage": -69.63661,
"atlChangePercentage": 17683.39222,
"fullyDilutedValuation": 56351468178,
"priceChangePercentage": {},
"priceChangePercentage24h": 4.6,
"marketCapChangePercentage24h": 5.63005
},
{
"id": "tron",
"ath": 0.431288,
"atl": 0.00180434,
"name": "TRON",
"image": "https://coin-images.coingecko.com/coins/images/1094/large/photo_2026-04-13_09-59-16.png?1776048311",
"low24h": 0.332043,
"symbol": "TRX",
"athDate": "2024-12-03T16:10:40.000Z",
"atlDate": "2017-11-11T16:00:00.000Z",
"high24h": 0.3402,
"marketCap": 32077396056,
"maxSupply": null,
"lastUpdated": "2026-08-21T02:22:20.000Z",
"totalSupply": 94912161400.71889,
"totalVolume": 597819466,
"currentPrice": 0.337964,
"marketCapRank": 8,
"priceChange24h": 0.00536952,
"circulatingSupply": 94911376357.14629,
"marketCapChange24h": 510777098,
"athChangePercentage": -21.63846,
"atlChangePercentage": 18630.60992,
"fullyDilutedValuation": 32077644737,
"priceChangePercentage": {},
"priceChangePercentage24h": 1.2,
"marketCapChangePercentage24h": 1.61809
}
],
"order": "market_cap_desc",
"total": null,
"dataset": "coins-markets",
"hasMore": true,
"category": null,
"nextPage": 2,
"provider": "coingecko",
"priceBasis": "cross-venue-aggregate",
"vsCurrency": "usd"
}
```
---
### Simple Price
Spot price for a set of coins against a set of currencies.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:coingecko/simple-price`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `ids` | string | query | yes | Comma-separated coin ids as CoinGecko spells them. Required, up to 100. |
| `vsCurrencies` | string | query | no | Comma-separated currency codes from `vs-currencies`. Default usd. |
| `includeMarketCap` | enum(true|false) | query | no | Include market cap per pair. Default true. |
| `include24hVol` | enum(true|false) | query | no | Include 24-hour volume per pair. Default true. |
| `include24hChange` | enum(true|false) | query | no | Include 24-hour percentage change per pair. Default true. |
| `precision` | string | query | no | Decimal places, 0 to 18, or full. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:coingecko/simple-price?ids=bitcoin%2Cethereum&vsCurrencies=usd%2Cidr&includeMarketCap=true&include24hVol=true&include24hChange=true&precision=4" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:coingecko/simple-price?ids=bitcoin%2Cethereum&vsCurrencies=usd%2Cidr&includeMarketCap=true&include24hVol=true&include24hChange=true&precision=4", {
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:coingecko/simple-price?ids=bitcoin%2Cethereum&vsCurrencies=usd%2Cidr&includeMarketCap=true&include24hVol=true&include24hChange=true&precision=4",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"ids": [
"bitcoin",
"ethereum"
],
"count": 2,
"items": [
{
"id": "bitcoin",
"price": 74689,
"currency": "usd",
"change24h": 7.460665907023785,
"marketCap": 1499117826177.651,
"volume24h": 59038237292.78621,
"lastUpdatedAt": 1787279010
},
{
"id": "ethereum",
"price": 2350.05,
"currency": "usd",
"change24h": 3.9806303409494834,
"marketCap": 283498394715.6619,
"volume24h": 26204899105.23797,
"lastUpdatedAt": 1787279030
}
],
"total": 2,
"dataset": "simple-price",
"provider": "coingecko",
"priceBasis": "cross-venue-aggregate",
"vsCurrencies": [
"usd"
]
}
```
---
### Derivatives
Every perp and future ticker CoinGecko tracks, with funding, open interest,
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:coingecko/derivatives`
- **Cache TTL:** 900s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `market` | string | query | no | Keep only this venue. Case-insensitive substring. |
| `indexId` | string | query | no | Keep only contracts on this index. Case-insensitive. |
| `symbol` | string | query | no | Keep only contracts whose symbol contains this. Case-insensitive. |
| `contractType` | enum(perpetual|futures) | query | no | Keep only one contract type. |
| `page` | number | query | no | Result page. Default 1. |
| `limit` | number | query | no | Contracts per page, largest 24-hour volume first. Default 50, max 500. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:coingecko/derivatives?market=Binance%20(Futures)&indexId=BTC&symbol=BTCUSDT&contractType=perpetual&page=1&limit=50" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:coingecko/derivatives?market=Binance%20(Futures)&indexId=BTC&symbol=BTCUSDT&contractType=perpetual&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:coingecko/derivatives?market=Binance%20(Futures)&indexId=BTC&symbol=BTCUSDT&contractType=perpetual&page=1&limit=50",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"page": 1,
"count": 50,
"items": [
{
"basis": 0.06723269891566265,
"index": 74750.22282609,
"price": 74809.6,
"market": "Binance (Futures)",
"spread": 0.01,
"symbol": "BTCUSDT",
"indexId": "BTC",
"expiredAt": null,
"volume24h": 25178009121.568,
"fundingRate": 0.009004999999999999,
"contractType": "perpetual",
"lastTradedAt": 1787278869,
"openInterest": 8051672809.38,
"priceChangePercentage24h": 7.491139535586474
},
{
"basis": 0.054214549828617654,
"index": 2349.82325581,
"price": 2350.89,
"market": "Binance (Futures)",
"spread": 0.01,
"symbol": "ETHUSDT",
"indexId": "ETH",
"expiredAt": null,
"volume24h": 19004272641.0522,
"fundingRate": 0.01,
"contractType": "perpetual",
"lastTradedAt": 1787278868,
"openInterest": 5504742404.25,
"priceChangePercentage24h": 3.9227399442453206
},
{
"basis": -0.010425597516681073,
"index": 2348.22515797,
"price": 2350.89,
"market": "Binance (Futures)",
"spread": 0.01,
"symbol": "ETHUSDC",
"indexId": "ETH",
"expiredAt": null,
"volume24h": 5599928344.27455,
"fundingRate": 0.009365,
"contractType": "perpetual",
"lastTradedAt": 1787278744,
"openInterest": 2334291679.43,
"priceChangePercentage24h": 3.6293916742416887
},
{
"basis": 0.041912279389909844,
"index": 74721.90453295,
"price": 74809.6,
"market": "Binance (Futures)",
"spread": 0.01,
"symbol": "BTCUSDC",
"indexId": "BTC",
"expiredAt": null,
"volume24h": 5522656981.6448,
"fundingRate": 0.002201,
"contractType": "perpetual",
"lastTradedAt": 1787278744,
"openInterest": 1414701337.32,
"priceChangePercentage24h": 7.311613526125837
},
{
"basis": 0.05155583331257938,
"index": 1606.94804855,
"price": 1605.38,
"market": "Binance (Futures)",
"spread": 0.01,
"symbol": "SNDKUSDT",
"indexId": "SNDK",
"expiredAt": null,
"volume24h": 4170273242.0654387,
"fundingRate": 0,
"contractType": "futures",
"lastTradedAt": 1787278871,
"openInterest": 325518761.98,
"priceChangePercentage24h": 0.5257491925994542
},
{
"basis": -0.028067122436295836,
"index": 1.28683872,
"price": 1.29,
"market": "Binance (Futures)",
"spread": 0.02,
"symbol": "XRPUSDT",
"indexId": "XRP",
"expiredAt": null,
"volume24h": 2953812469.796339,
"fundingRate": 0.01,
"contractType": "perpetual",
"lastTradedAt": 1787278868,
"openInterest": 432960472.75,
"priceChangePercentage24h": 16.13136051966799
},
{
"basis": 0.039892730536235134,
"index": 89.17556038,
"price": 89.1,
"market": "Binance (Futures)",
"spread": 0.01,
"symbol": "SOLUSDT",
"indexId": "SOL",
"expiredAt": null,
"volume24h": 2396764209.3489757,
"fundingRate": 0.01,
"contractType": "perpetual",
"lastTradedAt": 1787278925,
"openInterest": 725123342.44,
"priceChangePercentage24h": 4.698144233027954
},
{
"basis": 0.6906498455298722,
"index": 1271.09862552,
"price": 1261.8,
"market": "Binance (Futures)",
"spread": 0.01,
"symbol": "SKHYNIXUSDT",
"indexId": "SKHYNIX",
"expiredAt": null,
"volume24h": 2237188601.808816,
"fundingRate": -0.151075,
"contractType": "futures",
"lastTradedAt": 1787278873,
"openInterest": 476048175.93,
"priceChangePercentage24h": 5.237797507398608
}
],
"total": 768,
"market": "Binance (Futures)",
"symbol": null,
"dataset": "derivatives",
"hasMore": true,
"indexId": null,
"nextPage": 2,
"provider": "coingecko",
"contractType": null
}
```
---
### Ping
Upstream liveness. The cheapest way to tell a quota refusal apart from an
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:coingecko/ping`
- **Cache TTL:** 300s
**Parameters:**
_No parameters._
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:coingecko/ping" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:coingecko/ping", {
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:coingecko/ping",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"ok": true,
"dataset": "ping",
"provider": "coingecko"
}
```
---
## Crypto Price
**Category:** finance · **Slug:** `crypto-price`
**Detail page:** https://zapi.ink/api/finance/crypto-price
Fetch current cryptocurrency prices and market data.
**Tags:** utility, crypto
### Get Crypto Price
Retrieve current price for a given cryptocurrency.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:crypto-price/price`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `coins` | string | query | yes | Comma-separated coin IDs (slug, lowercase) |
| `vs` | string | query | no | Comma-separated vs currencies. Default usd |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:crypto-price/price?coins=bitcoin%2Cethereum&vs=usd" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:crypto-price/price?coins=bitcoin%2Cethereum&vs=usd", {
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:crypto-price/price?coins=bitcoin%2Cethereum&vs=usd",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"ok": true,
"prices": {
"bitcoin": {
"usd": 63011,
"usd_24h_change": 0.009751251957127007,
"usd_market_cap": 1264680911365.345
},
"ethereum": {
"usd": 1879.12,
"usd_24h_change": -0.00923439989967606,
"usd_market_cap": 226776737101.05252
}
}
}
```
---
## Currency Converter
**Category:** finance · **Slug:** `currency-convert`
**Detail page:** https://zapi.ink/api/finance/currency-convert
Convert monetary amounts between currencies using current exchange rates.
**Tags:** utility, finance, currency
### Convert Currency
Convert an amount from one currency to another.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:currency-convert/convert`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `from` | string | query | no | Source currency (ISO 4217). Default USD |
| `to` | string | query | no | Target currency (ISO 4217). Default IDR |
| `amount` | number | query | no | Amount to convert. Default 1 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:currency-convert/convert?from=USD&to=IDR&amount=100" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:currency-convert/convert?from=USD&to=IDR&amount=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:currency-convert/convert?from=USD&to=IDR&amount=100",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"ok": true,
"to": "IDR",
"date": "2026-08-14",
"from": "USD",
"rate": 17786.4,
"amount": 100,
"result": 1778640
}
```
---
## DefiLlama
**Category:** finance · **Slug:** `defillama`
**Detail page:** https://zapi.ink/api/finance/defillama
Total value locked per chain dan kapitalisasi stablecoin per aset beserta mekanisme peg-nya.
**Tags:** defi, tvl, stablecoin, crypto, finance
### Chain TVL
TVL per chain dalam USD, terbesar dulu, bisa disaring dengan `minTvl`.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:defillama/chains`
- **Cache TTL:** 900s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `length` | number | query | no | Rows to return (default 50, max 500) |
| `minTvl` | number | query | no | Drop chains below this TVL in USD. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:defillama/chains?length=50&minTvl=1000000" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:defillama/chains?length=50&minTvl=1000000", {
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:defillama/chains?length=50&minTvl=1000000",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 50,
"items": [
{
"tvl": 47170499526.70988,
"name": "Ethereum",
"symbol": "ETH",
"chainId": 1,
"coingeckoId": "ethereum"
},
{
"tvl": 5357384941.319784,
"name": "BSC",
"symbol": "BNB",
"chainId": 56,
"coingeckoId": "binancecoin"
},
{
"tvl": 5312745912.351768,
"name": "Solana",
"symbol": "SOL",
"coingeckoId": "solana"
},
{
"tvl": 5240631291.195125,
"name": "Base",
"chainId": 8453
},
{
"tvl": 5126114876.883402,
"name": "Tron",
"symbol": "TRON",
"coingeckoId": "tron"
},
{
"tvl": 3985775047.8197036,
"name": "Bitcoin",
"symbol": "BTC",
"coingeckoId": "bitcoin"
},
{
"tvl": 1792240630.7060046,
"name": "Provenance",
"symbol": "HASH",
"coingeckoId": "hash-2"
},
{
"tvl": 1445583793.9306028,
"name": "Hyperliquid L1",
"symbol": "HYPE",
"coingeckoId": "hyperliquid"
}
],
"total": 461,
"source": "defillama",
"currency": "USD",
"totalTvl": 84515501988.66243
}
```
---
### Stablecoins
Stablecoin terbesar per peredaran, dengan jenis peg dan mekanismenya.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:defillama/stablecoins`
- **Cache TTL:** 900s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `length` | number | query | no | Rows to return (default 25, max 200) |
| `peg` | string | query | no | Keep only this peg type (peggedUSD, peggedEUR, …). |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:defillama/stablecoins?length=25&peg=peggedUSD" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:defillama/stablecoins?length=25&peg=peggedUSD", {
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:defillama/stablecoins?length=25&peg=peggedUSD",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 25,
"items": [
{
"peg": "peggedUSD",
"name": "Tether",
"price": 0.9996529389237235,
"symbol": "USDT",
"mechanism": "fiat-backed",
"circulating": 183011061240.82898,
"coingeckoId": "tether"
},
{
"peg": "peggedUSD",
"name": "USD Coin",
"price": 0.999761122073589,
"symbol": "USDC",
"mechanism": "fiat-backed",
"circulating": 72905794546.1014,
"coingeckoId": "usd-coin"
},
{
"peg": "peggedUSD",
"name": "Sky Dollar",
"price": 0.9997885300919773,
"symbol": "USDS",
"mechanism": "crypto-backed",
"circulating": 6721244278.757235,
"coingeckoId": "usds"
},
{
"peg": "peggedUSD",
"name": "Dai",
"price": 0.9999215726557905,
"symbol": "DAI",
"mechanism": "crypto-backed",
"circulating": 4779468708.49562,
"coingeckoId": "dai"
},
{
"peg": "peggedUSD",
"name": "Ethena USDe",
"price": 0.9998132003483738,
"symbol": "USDe",
"mechanism": "crypto-backed",
"circulating": 4080222642.0417285,
"coingeckoId": "ethena-usde"
},
{
"peg": "peggedUSD",
"name": "World Liberty Financial USD",
"price": 0.9995358748930847,
"symbol": "USD1",
"mechanism": "fiat-backed",
"circulating": 4001013937.994626,
"coingeckoId": "usd1-wlfi"
},
{
"peg": "peggedUSD",
"name": "Global Dollar",
"price": 0.9999688726376925,
"symbol": "USDG",
"mechanism": "fiat-backed",
"circulating": 3378436340.120869,
"coingeckoId": "global-dollar"
},
{
"peg": "peggedUSD",
"name": "Circle USYC",
"price": 1.1346424163708866,
"symbol": "USYC",
"mechanism": "fiat-backed",
"circulating": 2922480174.730857,
"coingeckoId": "hashnote-usyc"
}
],
"total": 418,
"source": "defillama"
}
```
---
### Stablecoin Chains
Stablecoin circulating supply per chain, current cross-section.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:defillama/stablecoin-chains`
- **Cache TTL:** 900s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `peg` | string | query | no | Peg type to read. Default peggedUSD. |
| `limit` | number | query | no | Chains to return, largest first. Default 50, max 500. |
| `minCirculating` | number | query | no | Drop chains below this circulating value in USD. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:defillama/stablecoin-chains?peg=peggedUSD&limit=50&minCirculating=1000000" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:defillama/stablecoin-chains?peg=peggedUSD&limit=50&minCirculating=1000000", {
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:defillama/stablecoin-chains?peg=peggedUSD&limit=50&minCirculating=1000000",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"peg": "peggedUSD",
"count": 50,
"items": [
{
"chain": "Ethereum",
"circulatingUsd": 146952725067.78015
},
{
"chain": "Tron",
"circulatingUsd": 91887441567.50905
},
{
"chain": "Solana",
"circulatingUsd": 15863026696.789598
},
{
"chain": "BSC",
"circulatingUsd": 13383178392.59415
},
{
"chain": "Hyperliquid L1",
"circulatingUsd": 6570898641.614782
},
{
"chain": "Base",
"circulatingUsd": 4931807896.464042
},
{
"chain": "Arbitrum",
"circulatingUsd": 3445788631.870305
},
{
"chain": "Polygon",
"circulatingUsd": 3044703687.6261106
}
],
"total": 204,
"dataset": "stablecoin-chains",
"currency": "USD",
"provider": "defillama"
}
```
---
### Protocols
The protocol directory with current TVL and its recent changes.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:defillama/protocols`
- **Cache TTL:** 900s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `category` | string | query | no | Keep only this category. Case-insensitive. Others include Lending, CEX, Liquid Staking, Bridge, Restaking. |
| `chain` | string | query | no | Keep only protocols deployed on this chain. |
| `query` | string | query | no | Free text over protocol name, symbol and slug. |
| `minTvl` | number | query | no | Drop protocols below this TVL in USD. |
| `page` | number | query | no | Result page. Default 1. |
| `limit` | number | query | no | Protocols per page, largest TVL first. Default 50, max 500. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:defillama/protocols?category=Dexs&chain=Ethereum&query=uniswap&minTvl=1000000&page=1&limit=50" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:defillama/protocols?category=Dexs&chain=Ethereum&query=uniswap&minTvl=1000000&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:defillama/protocols?category=Dexs&chain=Ethereum&query=uniswap&minTvl=1000000&page=1&limit=50",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"page": 1,
"chain": null,
"count": 50,
"items": [
{
"id": "194",
"tvl": 1909573717.2501187,
"url": "https://pancakeswap.finance/",
"logo": "https://icons.llamao.fi/icons/protocols/pancakeswap-amm",
"name": "PancakeSwap AMM",
"slug": "pancakeswap-amm",
"chain": "Multi-Chain",
"chains": [
"Binance",
"Ethereum",
"Aptos",
"Base",
"zkSync Era",
"Arbitrum",
"Op_Bnb",
"Linea"
],
"symbol": "CAKE",
"category": "Dexs",
"change1d": null,
"change1h": 0.4894595925158711,
"change7d": 11.300991871895746,
"listedAt": null,
"marketCap": null,
"coingeckoId": null
},
{
"id": "2198",
"tvl": 1426020655.9630637,
"url": "https://app.uniswap.org/",
"logo": "https://icons.llamao.fi/icons/protocols/uniswap-v3",
"name": "Uniswap V3",
"slug": "uniswap-v3",
"chain": "Multi-Chain",
"chains": [
"Ethereum",
"Base",
"Arbitrum",
"Binance",
"Robinhood Chain",
"Polygon",
"X Layer",
"Optimism"
],
"symbol": "UNI",
"category": "Dexs",
"change1d": 0.30566703831671305,
"change1h": 0.7316921288834664,
"change7d": 1.1399914162315525,
"listedAt": 1666191475,
"marketCap": null,
"coingeckoId": null
},
{
"id": "3",
"tvl": 1298281201.671089,
"url": "https://curve.finance",
"logo": "https://icons.llamao.fi/icons/protocols/curve",
"name": "Curve DEX",
"slug": "curve-dex",
"chain": "Multi-Chain",
"chains": [
"Ethereum",
"Arbitrum",
"Fraxtal",
"Base",
"Etherlink",
"Monad",
"Polygon",
"Plasma"
],
"symbol": "CRV",
"category": "Dexs",
"change1d": -0.9453846915700694,
"change1h": 0.29059083690547993,
"change7d": 2.1177046958854078,
"listedAt": null,
"marketCap": null,
"coingeckoId": null
},
{
"id": "214",
"tvl": 965690986.797965,
"url": "https://raydium.io",
"logo": "https://icons.llamao.fi/icons/protocols/raydium",
"name": "Raydium AMM",
"slug": "raydium-amm",
"chain": "Solana",
"chains": [
"Solana"
],
"symbol": "RAY",
"category": "Dexs",
"change1d": 6.3438237769895665,
"change1h": 0.7116196555577972,
"change7d": 13.795945095765518,
"listedAt": null,
"marketCap": null,
"coingeckoId": null
},
{
"id": "5690",
"tvl": 874552955.8189095,
"url": "https://app.uniswap.org/",
"logo": "https://icons.llamao.fi/icons/protocols/uniswap-v4",
"name": "Uniswap V4",
"slug": "uniswap-v4",
"chain": "Multi-Chain",
"chains": [
"Ethereum",
"Base",
"Binance",
"Robinhood Chain",
"Arbitrum",
"Monad",
"Polygon",
"Unichain"
],
"symbol": "UNI",
"category": "Dexs",
"change1d": 1.6275463999139532,
"change1h": -1.1518216087795707,
"change7d": 15.424095079156814,
"listedAt": 1738172667,
"marketCap": null,
"coingeckoId": null
},
{
"id": "2197",
"tvl": 782517080.6357405,
"url": "https://app.uniswap.org/",
"logo": "https://icons.llamao.fi/icons/protocols/uniswap-v2",
"name": "Uniswap V2",
"slug": "uniswap-v2",
"chain": "Multi-Chain",
"chains": [
"Ethereum",
"Base",
"Polygon",
"Robinhood Chain",
"Arbitrum",
"Binance",
"X Layer",
"Monad"
],
"symbol": "UNI",
"category": "Dexs",
"change1d": -0.014043881732845875,
"change1h": 0.0006830874891790018,
"change7d": -1.711437975707014,
"listedAt": 1666191162,
"marketCap": null,
"coingeckoId": null
},
{
"id": "2769",
"tvl": 301700939.9900973,
"url": "https://pancakeswap.finance/swap",
"logo": "https://icons.llamao.fi/icons/protocols/pancakeswap-amm-v3",
"name": "PancakeSwap AMM V3",
"slug": "pancakeswap-amm-v3",
"chain": "Multi-Chain",
"chains": [
"Binance",
"Ethereum",
"Base",
"Solana",
"Arbitrum",
"Monad",
"zkSync Era",
"Linea"
],
"symbol": "CAKE",
"category": "Dexs",
"change1d": 2.4777775797572446,
"change1h": 0.1870164261948304,
"change7d": 4.900587086806979,
"listedAt": 1680561479,
"marketCap": null,
"coingeckoId": null
},
{
"id": "5317",
"tvl": 300268523.1468633,
"url": "https://www.fluid.io/",
"logo": "https://icons.llamao.fi/icons/protocols/fluid-dex",
"name": "Fluid DEX",
"slug": "fluid-dex",
"chain": "Multi-Chain",
"chains": [
"Ethereum",
"Plasma",
"Arbitrum",
"Base",
"Polygon"
],
"symbol": "FLUID",
"category": "Dexs",
"change1d": 0.7228477830560394,
"change1h": 0.22246186434567505,
"change7d": 5.796209851015149,
"listedAt": 1730732495,
"marketCap": null,
"coingeckoId": null
}
],
"query": null,
"total": 2067,
"dataset": "protocols",
"hasMore": true,
"category": "Dexs",
"currency": "USD",
"nextPage": 2,
"provider": "defillama"
}
```
---
### Chain Tvl History
Daily TVL series for one chain, or for every chain summed.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:defillama/chain-tvl-history`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `chain` | string | query | no | Chain name as the `chains` endpoint spells it. Omit for every chain summed. |
| `from` | number | query | no | Keep points at or after this UNIX second. |
| `to` | number | query | no | Keep points at or before this UNIX second. |
| `limit` | number | query | no | Keep only the most recent N points. Omit for the full series. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:defillama/chain-tvl-history?chain=Ethereum&from=1735689600&to=1767225600&limit=365" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:defillama/chain-tvl-history?chain=Ethereum&from=1735689600&to=1767225600&limit=365", {
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:defillama/chain-tvl-history?chain=Ethereum&from=1735689600&to=1767225600&limit=365",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"chain": "Ethereum",
"count": 3251,
"items": [
{
"tvl": 0,
"date": "2017-09-27",
"time": 1506470400
},
{
"tvl": 0,
"date": "2017-09-28",
"time": 1506556800
},
{
"tvl": 0,
"date": "2017-09-29",
"time": 1506643200
},
{
"tvl": 0,
"date": "2017-09-30",
"time": 1506729600
},
{
"tvl": 0,
"date": "2017-10-01",
"time": 1506816000
},
{
"tvl": 0,
"date": "2017-10-02",
"time": 1506902400
},
{
"tvl": 0,
"date": "2017-10-03",
"time": 1506988800
},
{
"tvl": 0,
"date": "2017-10-04",
"time": 1507075200
}
],
"total": 3251,
"dataset": "chain-tvl-history",
"currency": "USD",
"interval": "1d",
"provider": "defillama"
}
```
---
### Stablecoin History
Daily circulating supply for one peg type, whole market or one chain.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:defillama/stablecoin-history`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `peg` | string | query | no | Peg type to read. Default peggedUSD. Others include peggedEUR, peggedVAR, peggedJPY, peggedGBP. |
| `chain` | string | query | no | Restrict to one chain. Omit for the whole market. |
| `from` | number | query | no | Keep points at or after this UNIX second. |
| `to` | number | query | no | Keep points at or before this UNIX second. |
| `limit` | number | query | no | Keep only the most recent N points. Omit for the full series. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:defillama/stablecoin-history?peg=peggedUSD&chain=Ethereum&from=1735689600&to=1767225600&limit=365" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:defillama/stablecoin-history?peg=peggedUSD&chain=Ethereum&from=1735689600&to=1767225600&limit=365", {
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:defillama/stablecoin-history?peg=peggedUSD&chain=Ethereum&from=1735689600&to=1767225600&limit=365",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"peg": "peggedUSD",
"chain": null,
"count": 3188,
"items": [
{
"date": "2017-11-29",
"time": 1511913600,
"mintedUsd": null,
"unreleased": null,
"circulating": 109970,
"circulatingUsd": 110105
},
{
"date": "2017-11-30",
"time": 1512000000,
"mintedUsd": null,
"unreleased": null,
"circulating": 109970,
"circulatingUsd": 110105
},
{
"date": "2017-12-01",
"time": 1512086400,
"mintedUsd": null,
"unreleased": null,
"circulating": 109970,
"circulatingUsd": 110105
},
{
"date": "2017-12-02",
"time": 1512172800,
"mintedUsd": null,
"unreleased": null,
"circulating": 109970,
"circulatingUsd": 110105
},
{
"date": "2017-12-03",
"time": 1512259200,
"mintedUsd": null,
"unreleased": null,
"circulating": 109970,
"circulatingUsd": 110105
},
{
"date": "2017-12-04",
"time": 1512345600,
"mintedUsd": null,
"unreleased": null,
"circulating": 109970,
"circulatingUsd": 110105
},
{
"date": "2017-12-05",
"time": 1512432000,
"mintedUsd": null,
"unreleased": null,
"circulating": 109970,
"circulatingUsd": 110105
},
{
"date": "2017-12-06",
"time": 1512518400,
"mintedUsd": null,
"unreleased": null,
"circulating": 109970,
"circulatingUsd": 110105
}
],
"total": 3188,
"dataset": "stablecoin-history",
"interval": "1d",
"provider": "defillama"
}
```
---
## Deribit
**Category:** finance · **Slug:** `deribit`
**Detail page:** https://zapi.ink/api/finance/deribit
Deribit public data, including DVOL — the crypto volatility index — at one-second resolution, plus options instruments and index prices.
**Tags:** deribit, crypto, options, volatility, dvol, derivatives
### Book Summary
Top of book, open interest and 24h volume for every Deribit instrument in one
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:deribit/book-summary`
- **Cache TTL:** 15s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `currency` | enum(BTC|ETH|USDC|USDT|EURR) | query | no | Settlement currency. Default BTC |
| `kind` | enum(future|option|spot|future_combo|option_combo) | query | no | Instrument kind. Omit for every kind |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:deribit/book-summary?currency=BTC&kind=future" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:deribit/book-summary?currency=BTC&kind=future", {
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:deribit/book-summary?currency=BTC&kind=future",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"kind": "future",
"count": 13,
"items": [
{
"date": "2026-08-20T14:59:36.039Z",
"time": 1787237976039,
"low24h": 66152.5,
"markIv": null,
"symbol": "BTC-30OCT26",
"volume": 79.60912343,
"high24h": 72970,
"askPrice": 72350,
"bidPrice": 72327.5,
"midPrice": 72338.75,
"lastPrice": 72238.5,
"markPrice": 72348.81,
"volumeUsd": 5595640,
"baseCurrency": "BTC",
"openInterest": 8088840,
"quoteCurrency": "USD",
"volumeNotional": 5595640,
"underlyingPrice": null,
"priceChangePct24h": 8.6579,
"estimatedDeliveryPrice": 71740.86
},
{
"date": "2026-08-20T14:59:36.039Z",
"time": 1787237976039,
"low24h": 68405,
"markIv": null,
"symbol": "BTC-25JUN27",
"volume": 84.9230532,
"high24h": 75140,
"askPrice": 74415,
"bidPrice": 74355,
"midPrice": 74385,
"lastPrice": 74115,
"markPrice": 74392.24,
"volumeUsd": 6136400,
"baseCurrency": "BTC",
"openInterest": 10423000,
"quoteCurrency": "USD",
"volumeNotional": 6136400,
"underlyingPrice": null,
"priceChangePct24h": 8.2484,
"estimatedDeliveryPrice": 71740.86
},
{
"date": "2026-08-20T14:59:36.039Z",
"time": 1787237976039,
"low24h": 65955,
"markIv": null,
"symbol": "BTC-23AUG26",
"volume": 130.46758673,
"high24h": 72395,
"askPrice": 71740,
"bidPrice": 71715,
"midPrice": 71727.5,
"lastPrice": 71727.5,
"markPrice": 71737.15,
"volumeUsd": 9080690,
"baseCurrency": "BTC",
"openInterest": 8264000,
"quoteCurrency": "USD",
"volumeNotional": 9080690,
"underlyingPrice": null,
"priceChangePct24h": 8.7522,
"estimatedDeliveryPrice": 71740.86
},
{
"date": "2026-08-20T14:59:36.039Z",
"time": 1787237976039,
"low24h": 65862.5,
"markIv": null,
"symbol": "BTC-PERPETUAL",
"volume": 17705.94753784,
"high24h": 72429,
"askPrice": 71749,
"bidPrice": 71748.5,
"midPrice": 71748.75,
"lastPrice": 71748.5,
"markPrice": 71747.68,
"volumeUsd": 1232348500,
"baseCurrency": "BTC",
"openInterest": 824275030,
"quoteCurrency": "USD",
"volumeNotional": 1232348500,
"underlyingPrice": null,
"priceChangePct24h": 8.8228,
"estimatedDeliveryPrice": 71740.86
},
{
"date": "2026-08-20T14:59:36.039Z",
"time": 1787237976039,
"low24h": 67677.5,
"markIv": null,
"symbol": "BTC-26MAR27",
"volume": 143.91801559,
"high24h": 74305,
"askPrice": 73612.5,
"bidPrice": 73562.5,
"midPrice": 73587.5,
"lastPrice": 73562.5,
"markPrice": 73594.92,
"volumeUsd": 10333320,
"baseCurrency": "BTC",
"openInterest": 55663280,
"quoteCurrency": "USD",
"volumeNotional": 10333320,
"underlyingPrice": null,
"priceChangePct24h": 8.6957,
"estimatedDeliveryPrice": 71740.86
},
{
"date": "2026-08-20T14:59:36.039Z",
"time": 1787237976039,
"low24h": 65955,
"markIv": null,
"symbol": "BTC-22AUG26",
"volume": 259.85274702,
"high24h": 72237.5,
"askPrice": 71735,
"bidPrice": 71710,
"midPrice": 71722.5,
"lastPrice": 71697.5,
"markPrice": 71733.89,
"volumeUsd": 18160010,
"baseCurrency": "BTC",
"openInterest": 10403550,
"quoteCurrency": "USD",
"volumeNotional": 18160010,
"underlyingPrice": null,
"priceChangePct24h": 8.7067,
"estimatedDeliveryPrice": 71740.86
}
],
"dataset": "book-summary",
"currency": "BTC",
"provider": "deribit"
}
```
---
### Funding Rate History
Hourly funding for one Deribit perpetual, with the index it was struck on.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:deribit/funding-rate-history`
- **Cache TTL:** 60s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | no | Perpetual instrument name |
| `start` | string | query | no | Oldest hour to include. Epoch ms/s or ISO date. Defaults to seven days back |
| `end` | string | query | no | Newest hour to include. Epoch ms/s or ISO date. Defaults to now |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:deribit/funding-rate-history?symbol=BTC-PERPETUAL&start=2026-08-13T00%3A00%3A00Z&end=2026-08-20T00%3A00%3A00Z" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:deribit/funding-rate-history?symbol=BTC-PERPETUAL&start=2026-08-13T00%3A00%3A00Z&end=2026-08-20T00%3A00%3A00Z", {
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:deribit/funding-rate-history?symbol=BTC-PERPETUAL&start=2026-08-13T00%3A00%3A00Z&end=2026-08-20T00%3A00%3A00Z",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 168,
"items": [
{
"date": "2026-08-13T01:00:00.000Z",
"time": 1786582800000,
"indexPrice": 63495.11,
"interest1h": 0.000007511698674394949,
"interest8h": 0.00004911071730031578,
"previousIndexPrice": 63413.47
},
{
"date": "2026-08-13T02:00:00.000Z",
"time": 1786586400000,
"indexPrice": 63391.67,
"interest1h": 0.0000030121484716520185,
"interest8h": 0.00004117415585266742,
"previousIndexPrice": 63495.11
},
{
"date": "2026-08-13T03:00:00.000Z",
"time": 1786590000000,
"indexPrice": 63483.87,
"interest1h": 0.0000015973149776453194,
"interest8h": 0.00003248514867255686,
"previousIndexPrice": 63391.67
},
{
"date": "2026-08-13T04:00:00.000Z",
"time": 1786593600000,
"indexPrice": 63584,
"interest1h": 0.0000024490050545234122,
"interest8h": 0.000030038661823743066,
"previousIndexPrice": 63483.87
},
{
"date": "2026-08-13T05:00:00.000Z",
"time": 1786597200000,
"indexPrice": 63628.5,
"interest1h": 0.0000049281227417091035,
"interest8h": 0.00003133237488612422,
"previousIndexPrice": 63584
},
{
"date": "2026-08-13T06:00:00.000Z",
"time": 1786600800000,
"indexPrice": 63813.23,
"interest1h": 0.0000024846883603425967,
"interest8h": 0.00003232543799943846,
"previousIndexPrice": 63628.5
}
],
"symbol": "BTC-PERPETUAL",
"dataset": "funding-rate-history",
"provider": "deribit"
}
```
---
### Historical Volatility
Realised volatility for one Deribit currency — the backward-looking twin of
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:deribit/historical-volatility`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `currency` | enum(BTC|ETH|USDC|USDT|EURR) | query | no | Index currency. Default BTC |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:deribit/historical-volatility?currency=BTC" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:deribit/historical-volatility?currency=BTC", {
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:deribit/historical-volatility?currency=BTC",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 384,
"items": [
{
"date": "2026-08-04T17:00:00.000Z",
"time": 1785862800000,
"volatility": 28.69387387574387
},
{
"date": "2026-08-04T17:00:00.000Z",
"time": 1785862800000,
"volatility": 28.69387387574387
},
{
"date": "2026-08-04T18:00:00.000Z",
"time": 1785866400000,
"volatility": 28.71583025957184
},
{
"date": "2026-08-04T19:00:00.000Z",
"time": 1785870000000,
"volatility": 28.70983568463423
},
{
"date": "2026-08-04T20:00:00.000Z",
"time": 1785873600000,
"volatility": 28.71183839968203
},
{
"date": "2026-08-04T21:00:00.000Z",
"time": 1785877200000,
"volatility": 28.70813156705442
}
],
"dataset": "historical-volatility",
"currency": "BTC",
"provider": "deribit"
}
```
---
### Index Price Names
Every index name Deribit publishes — the input vocabulary for index-price.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:deribit/index-price-names`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `query` | string | query | no | Filter the names by substring |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:deribit/index-price-names?query=btc" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:deribit/index-price-names?query=btc", {
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:deribit/index-price-names?query=btc",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 10,
"items": [
"btc_usd",
"btc_usdc",
"btc_usdt",
"drbfix-btc_usdc",
"eth_btc",
"btc_eurr"
],
"query": "btc",
"total": 344,
"dataset": "index-price-names",
"provider": "deribit"
}
```
---
### Index Price
The spot index Deribit settles one contract family against.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:deribit/index-price`
- **Cache TTL:** 5s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `indexName` | string | query | no | Index name. The full list is the index-price-names endpoint |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:deribit/index-price?indexName=btc_usd" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:deribit/index-price?indexName=btc_usd", {
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:deribit/index-price?indexName=btc_usd",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"dataset": "index-price",
"provider": "deribit",
"indexName": "btc_usd",
"indexPrice": 71770.14,
"estimatedDeliveryPrice": 71770.14
}
```
---
### Instruments
Contract specifications for one Deribit currency — futures, options or spot.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:deribit/instruments`
- **Cache TTL:** 600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `currency` | enum(BTC|ETH|USDC|USDT|EURR|any) | query | no | Settlement currency, or any for every one. Default BTC |
| `kind` | enum(future|option|spot|future_combo|option_combo) | query | no | Instrument kind. Omit for every kind |
| `expired` | enum(true|false) | query | no | Return expired instruments instead of live ones. Default false |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:deribit/instruments?currency=BTC&kind=future&expired=false" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:deribit/instruments?currency=BTC&kind=future&expired=false", {
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:deribit/instruments?currency=BTC&kind=future&expired=false",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"kind": "future",
"count": 13,
"items": [
{
"kind": "future",
"state": "open",
"symbol": "BTC-PERPETUAL",
"tickSize": 0.5,
"expiryDate": "3000-01-01T08:00:00.000Z",
"expiryTime": 32503708800000,
"futureType": "reversed",
"priceIndex": "btc_usd",
"maxLeverage": 50,
"baseCurrency": "BTC",
"contractSize": 10,
"creationDate": "2018-08-14T10:24:47.000Z",
"creationTime": 1534242287000,
"quoteCurrency": "USD",
"instrumentType": "reversed",
"minTradeAmount": 10,
"counterCurrency": "USD",
"makerCommission": 0.00015,
"takerCommission": 0.00035,
"settlementPeriod": "perpetual",
"settlementCurrency": "BTC",
"blockTradeMinAmount": 200000,
"blockTradeCommission": 0.00025
},
{
"kind": "future",
"state": "open",
"symbol": "BTC-21AUG26",
"tickSize": 2.5,
"expiryDate": "2026-08-21T08:00:00.000Z",
"expiryTime": 1787299200000,
"futureType": "reversed",
"priceIndex": "btc_usd",
"maxLeverage": 25,
"baseCurrency": "BTC",
"contractSize": 10,
"creationDate": "2026-07-30T08:00:13.000Z",
"creationTime": 1785398413000,
"quoteCurrency": "USD",
"instrumentType": "reversed",
"minTradeAmount": 10,
"counterCurrency": "USD",
"makerCommission": 0.00015,
"takerCommission": 0.00035,
"settlementPeriod": "week",
"settlementCurrency": "BTC",
"blockTradeMinAmount": 200000,
"blockTradeCommission": 0.00025
},
{
"kind": "future",
"state": "open",
"symbol": "BTC-22AUG26",
"tickSize": 2.5,
"expiryDate": "2026-08-22T08:00:00.000Z",
"expiryTime": 1787385600000,
"futureType": "reversed",
"priceIndex": "btc_usd",
"maxLeverage": 25,
"baseCurrency": "BTC",
"contractSize": 10,
"creationDate": "2026-08-18T08:00:18.000Z",
"creationTime": 1787040018000,
"quoteCurrency": "USD",
"instrumentType": "reversed",
"minTradeAmount": 10,
"counterCurrency": "USD",
"makerCommission": 0.00015,
"takerCommission": 0.00035,
"settlementPeriod": "day",
"settlementCurrency": "BTC",
"blockTradeMinAmount": 200000,
"blockTradeCommission": 0.00025
},
{
"kind": "future",
"state": "open",
"symbol": "BTC-23AUG26",
"tickSize": 2.5,
"expiryDate": "2026-08-23T08:00:00.000Z",
"expiryTime": 1787472000000,
"futureType": "reversed",
"priceIndex": "btc_usd",
"maxLeverage": 25,
"baseCurrency": "BTC",
"contractSize": 10,
"creationDate": "2026-08-19T08:00:19.000Z",
"creationTime": 1787126419000,
"quoteCurrency": "USD",
"instrumentType": "reversed",
"minTradeAmount": 10,
"counterCurrency": "USD",
"makerCommission": 0.00015,
"takerCommission": 0.00035,
"settlementPeriod": "day",
"settlementCurrency": "BTC",
"blockTradeMinAmount": 200000,
"blockTradeCommission": 0.00025
},
{
"kind": "future",
"state": "open",
"symbol": "BTC-24AUG26",
"tickSize": 2.5,
"expiryDate": "2026-08-24T08:00:00.000Z",
"expiryTime": 1787558400000,
"futureType": "reversed",
"priceIndex": "btc_usd",
"maxLeverage": 25,
"baseCurrency": "BTC",
"contractSize": 10,
"creationDate": "2026-08-20T08:00:21.000Z",
"creationTime": 1787212821000,
"quoteCurrency": "USD",
"instrumentType": "reversed",
"minTradeAmount": 10,
"counterCurrency": "USD",
"makerCommission": 0.00015,
"takerCommission": 0.00035,
"settlementPeriod": "day",
"settlementCurrency": "BTC",
"blockTradeMinAmount": 200000,
"blockTradeCommission": 0.00025
},
{
"kind": "future",
"state": "open",
"symbol": "BTC-28AUG26",
"tickSize": 2.5,
"expiryDate": "2026-08-28T08:00:00.000Z",
"expiryTime": 1787904000000,
"futureType": "reversed",
"priceIndex": "btc_usd",
"maxLeverage": 25,
"baseCurrency": "BTC",
"contractSize": 10,
"creationDate": "2026-05-28T08:00:13.000Z",
"creationTime": 1779955213000,
"quoteCurrency": "USD",
"instrumentType": "reversed",
"minTradeAmount": 10,
"counterCurrency": "USD",
"makerCommission": 0.00015,
"takerCommission": 0.00035,
"settlementPeriod": "month",
"settlementCurrency": "BTC",
"blockTradeMinAmount": 200000,
"blockTradeCommission": 0.00025
}
],
"dataset": "instruments",
"expired": false,
"currency": "BTC",
"provider": "deribit"
}
```
---
### Order Book
Depth for one Deribit instrument, plus the funding, open interest, mark and
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:deribit/order-book`
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | no | Instrument name, Deribit's own form |
| `depth` | enum(1|5|10|20|50|100|1000|10000) | query | no | Levels per side. Default 10 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:deribit/order-book?symbol=BTC-PERPETUAL&depth=10" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:deribit/order-book?symbol=BTC-PERPETUAL&depth=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:deribit/order-book?symbol=BTC-PERPETUAL&depth=10",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"asks": [
{
"size": 7800,
"price": 72195
},
{
"size": 6000,
"price": 72195.5
},
{
"size": 1790,
"price": 72197
},
{
"size": 30580,
"price": 72198
},
{
"size": 42600,
"price": 72198.5
},
{
"size": 6000,
"price": 72199
}
],
"bids": [
{
"size": 17160,
"price": 72194.5
},
{
"size": 10000,
"price": 72194
},
{
"size": 6000,
"price": 72192
},
{
"size": 350,
"price": 72190
},
{
"size": 580,
"price": 72188
},
{
"size": 1500,
"price": 72184.5
}
],
"date": "2026-08-20T15:15:34.793Z",
"time": 1787238934793,
"state": "open",
"low24h": 66546,
"symbol": "BTC-PERPETUAL",
"dataset": "order-book",
"high24h": 72511.5,
"askCount": 10,
"bidCount": 10,
"changeId": 170552772179,
"maxPrice": 73273.5,
"minPrice": 71107,
"provider": "deribit",
"funding8h": 0.00000879,
"lastPrice": 72187,
"markPrice": 72190.31,
"volume24h": 17388.78581996,
"indexPrice": 72188.68,
"bestAskPrice": 72195,
"bestBidPrice": 72194.5,
"openInterest": 822593720,
"volumeUsd24h": 1213453520,
"bestAskAmount": 7800,
"bestBidAmount": 17160,
"interestValue": 0.0011166989872886256,
"currentFunding": 0,
"settlementPrice": 69806.07,
"priceChangePct24h": 8.3637,
"volumeNotional24h": 1213453520,
"estimatedDeliveryPrice": 72188.68
}
```
---
### Ticker
Everything Deribit publishes about one instrument in a single call.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:deribit/ticker`
- **Cache TTL:** 5s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | no | Instrument name, Deribit's own form |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:deribit/ticker?symbol=BTC-PERPETUAL" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:deribit/ticker?symbol=BTC-PERPETUAL", {
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:deribit/ticker?symbol=BTC-PERPETUAL",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"date": "2026-08-20T15:00:24.798Z",
"time": 1787238024798,
"state": "open",
"low24h": 65862.5,
"symbol": "BTC-PERPETUAL",
"dataset": "ticker",
"high24h": 72429,
"maxPrice": 72846,
"minPrice": 70692.5,
"provider": "deribit",
"funding8h": 0.00001004,
"lastPrice": 71755,
"markPrice": 71769.38,
"volume24h": 17682.42559782,
"indexPrice": 71765.41,
"bestAskPrice": 71755,
"bestBidPrice": 71754.5,
"openInterest": 822916570,
"volumeUsd24h": 1230962300,
"bestAskAmount": 361770,
"bestBidAmount": 255060,
"interestValue": 0.0011131102258984174,
"currentFunding": 0,
"settlementPrice": 69806.07,
"priceChangePct24h": 8.8838,
"volumeNotional24h": 1230962300,
"estimatedDeliveryPrice": 71765.41
}
```
---
### Trades
Recent public prints for one Deribit instrument.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:deribit/trades`
- **Cache TTL:** 5s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | no | Instrument name, Deribit's own form |
| `count` | number | query | no | Prints to return. Default 100, max 1000 |
| `sorting` | enum(asc|desc|default) | query | no | Order the exchange applies before the cap. Default desc |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:deribit/trades?symbol=BTC-PERPETUAL&count=100&sorting=desc" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:deribit/trades?symbol=BTC-PERPETUAL&count=100&sorting=desc", {
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:deribit/trades?symbol=BTC-PERPETUAL&count=100&sorting=desc",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 100,
"items": [
{
"iv": null,
"date": "2026-08-20T15:00:32.548Z",
"time": 1787238032548,
"price": 71769,
"amount": 330,
"symbol": "BTC-PERPETUAL",
"tradeId": "440863223",
"contracts": 33,
"direction": "buy",
"markPrice": 71771,
"indexPrice": 71767.71,
"tickDirection": 1,
"tradeSequence": 296610088
},
{
"iv": null,
"date": "2026-08-20T15:00:30.853Z",
"time": 1787238030853,
"price": 71769,
"amount": 1280,
"symbol": "BTC-PERPETUAL",
"tradeId": "440863222",
"contracts": 128,
"direction": "buy",
"markPrice": 71767.66,
"indexPrice": 71764.35,
"tickDirection": 0,
"tradeSequence": 296610087
},
{
"iv": null,
"date": "2026-08-20T15:00:30.099Z",
"time": 1787238030099,
"price": 71768.5,
"amount": 1000,
"symbol": "BTC-PERPETUAL",
"tradeId": "440863220",
"contracts": 100,
"direction": "sell",
"markPrice": 71767.98,
"indexPrice": 71764.69,
"tickDirection": 3,
"tradeSequence": 296610086
},
{
"iv": null,
"date": "2026-08-20T15:00:28.890Z",
"time": 1787238028890,
"price": 71768.5,
"amount": 1000,
"symbol": "BTC-PERPETUAL",
"tradeId": "440863219",
"contracts": 100,
"direction": "sell",
"markPrice": 71768.89,
"indexPrice": 71765.58,
"tickDirection": 3,
"tradeSequence": 296610085
},
{
"iv": null,
"date": "2026-08-20T15:00:27.654Z",
"time": 1787238027654,
"price": 71768.5,
"amount": 690,
"symbol": "BTC-PERPETUAL",
"tradeId": "440863218",
"contracts": 69,
"direction": "sell",
"markPrice": 71772.16,
"indexPrice": 71768.73,
"tickDirection": 2,
"tradeSequence": 296610084
},
{
"iv": null,
"date": "2026-08-20T15:00:27.654Z",
"time": 1787238027654,
"price": 71771,
"amount": 90,
"symbol": "BTC-PERPETUAL",
"tradeId": "440863217",
"contracts": 9,
"direction": "sell",
"markPrice": 71772.16,
"indexPrice": 71768.73,
"tickDirection": 1,
"tradeSequence": 296610083
}
],
"symbol": "BTC-PERPETUAL",
"dataset": "trades",
"hasMore": true,
"sorting": "desc",
"provider": "deribit"
}
```
---
### Volatility Index
DVOL — Deribit's implied-volatility index, crypto's VIX — as OHLC candles.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:deribit/volatility-index`
- **Cache TTL:** 30s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `currency` | enum(BTC|ETH|USDC|USDT|EURR) | query | no | Index currency. BTC and ETH carry the deep history. Default BTC |
| `resolution` | enum(1|60|3600|43200|1D) | query | no | Bar size in seconds, or 1D for a day. Default 60 |
| `start` | string | query | no | Oldest bar to include. Epoch ms/s or ISO date |
| `end` | string | query | no | Newest bar to include. Epoch ms/s or ISO date |
| `page` | number | query | no | Page number, walking backwards in time. Default 1, max 20 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:deribit/volatility-index?currency=BTC&resolution=60&start=2026-08-19T00%3A00%3A00Z&end=2026-08-20T00%3A00%3A00Z&page=1" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:deribit/volatility-index?currency=BTC&resolution=60&start=2026-08-19T00%3A00%3A00Z&end=2026-08-20T00%3A00%3A00Z&page=1", {
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:deribit/volatility-index?currency=BTC&resolution=60&start=2026-08-19T00%3A00%3A00Z&end=2026-08-20T00%3A00%3A00Z&page=1",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"page": 1,
"count": 1000,
"items": [
{
"low": 34.68,
"date": "2026-08-19T07:21:00.000Z",
"high": 34.68,
"open": 34.68,
"close": 34.68,
"openTime": 1787124060000,
"closeTime": 1787124119999
},
{
"low": 34.68,
"date": "2026-08-19T07:22:00.000Z",
"high": 34.69,
"open": 34.68,
"close": 34.69,
"openTime": 1787124120000,
"closeTime": 1787124179999
},
{
"low": 34.69,
"date": "2026-08-19T07:23:00.000Z",
"high": 34.7,
"open": 34.69,
"close": 34.7,
"openTime": 1787124180000,
"closeTime": 1787124239999
},
{
"low": 34.7,
"date": "2026-08-19T07:24:00.000Z",
"high": 34.7,
"open": 34.7,
"close": 34.7,
"openTime": 1787124240000,
"closeTime": 1787124299999
},
{
"low": 34.7,
"date": "2026-08-19T07:25:00.000Z",
"high": 34.73,
"open": 34.7,
"close": 34.73,
"openTime": 1787124300000,
"closeTime": 1787124359999
},
{
"low": 34.72,
"date": "2026-08-19T07:26:00.000Z",
"high": 34.72,
"open": 34.72,
"close": 34.72,
"openTime": 1787124360000,
"closeTime": 1787124419999
}
],
"dataset": "volatility-index",
"hasMore": true,
"currency": "BTC",
"nextPage": 2,
"provider": "deribit",
"resolution": "60"
}
```
---
## Dukascopy
**Category:** finance · **Slug:** `dukascopy`
**Detail page:** https://zapi.ink/api/finance/dukascopy
Dukascopy's free tick and one-minute history, including XAUUSD gold going back to 2003.
**Tags:** dukascopy, forex, gold, xauusd, tick-data, ohlcv
### Instrument List
Dukascopy — the instrument manifest behind the historical archive.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:dukascopy/instrument-list`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `query` | string | query | no | Filter on instrument name, symbol or description. Omit for the full list |
| `limit` | number | query | no | Items to return. Default 100, max 1000 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:dukascopy/instrument-list?query=gold&limit=100" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:dukascopy/instrument-list?query=gold&limit=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:dukascopy/instrument-list?query=gold&limit=100",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 33,
"items": [
{
"tags": [
""
],
"symbol": "GDXUSUSD",
"pipValue": 0.01,
"priceStep": 0.001,
"instrument": "GDX.US/USD",
"description": "VanEck Vectors Gold Miners ETF",
"baseCurrency": "GDX.US",
"quoteCurrency": "USD",
"h1HistoryStart": "2017-03-01T18:00:00.000Z",
"m1HistoryStart": "2017-03-01T18:12:00.000Z",
"tickHistoryStart": "2017-03-01T18:13:24.243Z"
},
{
"tags": [
""
],
"symbol": "GDXJUSUSD",
"pipValue": 0.01,
"priceStep": 0.001,
"instrument": "GDXJ.US/USD",
"description": "VanEck Vectors Junior Gold Miners ETF ",
"baseCurrency": "GDXJ.US",
"quoteCurrency": "USD",
"h1HistoryStart": "2017-03-01T18:00:00.000Z",
"m1HistoryStart": "2017-03-01T18:12:00.000Z",
"tickHistoryStart": "2017-03-01T18:13:02.678Z"
},
{
"tags": [
""
],
"symbol": "GLDUSUSD",
"pipValue": 0.01,
"priceStep": 0.001,
"instrument": "GLD.US/USD",
"description": "SPDR Gold Shares ETF",
"baseCurrency": "GLD.US",
"quoteCurrency": "USD",
"h1HistoryStart": "2017-03-01T18:00:00.000Z",
"m1HistoryStart": "2017-03-01T18:12:00.000Z",
"tickHistoryStart": "2017-03-01T18:13:07.724Z"
},
{
"tags": [
""
],
"symbol": "GSUSUSD",
"pipValue": 0.01,
"priceStep": 0.001,
"instrument": "GS.US/USD",
"description": "Goldman Sachs Group Inc/The",
"baseCurrency": "GS.US",
"quoteCurrency": "USD",
"h1HistoryStart": "2017-03-01T18:00:00.000Z",
"m1HistoryStart": "2017-03-01T18:12:00.000Z",
"tickHistoryStart": "2017-03-01T18:12:59.163Z"
},
{
"tags": [
""
],
"symbol": "IGLNUSUSD",
"pipValue": 0.01,
"priceStep": 0.001,
"instrument": "IGLN.US/USD",
"description": "iShares Physical Gold ETC - IGLN",
"baseCurrency": "IGLN.US",
"quoteCurrency": "USD",
"h1HistoryStart": "2024-03-11T07:00:00.000Z",
"m1HistoryStart": "2024-03-11T07:50:00.000Z",
"tickHistoryStart": "2024-03-11T07:50:00.000Z"
},
{
"tags": [
""
],
"symbol": "RGLDUSUSD",
"pipValue": 0.01,
"priceStep": 0.001,
"instrument": "RGLD.US/USD",
"description": "ROYAL GOLD INC",
"baseCurrency": "RGLD.US",
"quoteCurrency": "USD",
"h1HistoryStart": "2022-05-13T14:00:00.000Z",
"m1HistoryStart": "2022-05-13T14:04:00.000Z",
"tickHistoryStart": "2022-05-13T14:04:53.418Z"
},
{
"tags": [
""
],
"symbol": "SGLDUSUSD",
"pipValue": 0.01,
"priceStep": 0.001,
"instrument": "SGLD.US/USD",
"description": "Invesco Physical Gold ETC",
"baseCurrency": "SGLD.US",
"quoteCurrency": "USD",
"h1HistoryStart": "2024-03-18T05:00:00.000Z",
"m1HistoryStart": "2024-03-18T05:00:00.000Z",
"tickHistoryStart": "2024-03-18T05:00:04.000Z"
},
{
"tags": [
""
],
"symbol": "XAUAED",
"pipValue": 0.01,
"priceStep": 0.001,
"instrument": "XAU/AED",
"description": "Gold vs UAE Dirham",
"baseCurrency": "XAU",
"quoteCurrency": "AED",
"h1HistoryStart": "2024-09-17T09:00:00.000Z",
"m1HistoryStart": "2024-09-17T09:39:00.000Z",
"tickHistoryStart": "2024-09-17T09:39:43.255Z"
}
],
"query": "gold",
"total": 33,
"dataset": "instruments",
"hasMore": false,
"provider": "dukascopy"
}
```
---
### M1 Candles
Dukascopy — one-minute OHLC history from the public tick archive.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:dukascopy/m1-candles`
- **Cache TTL:** 604800s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `instrument` | string | query | yes | Instrument name or archive symbol, e.g. XAU/USD or XAUUSD |
| `from` | string | query | yes | First UTC day to include, YYYY-MM-DD |
| `to` | string | query | no | Last UTC day to include, YYYY-MM-DD. Defaults to `from`. A long range can come back partial — resume from `nextFrom` when `hasMore` is true |
| `side` | enum(bid|ask) | query | no | Quote side the candles are built from. Default bid |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:dukascopy/m1-candles?instrument=XAU%2FUSD&from=2024-01-15&to=2024-01-17&side=bid" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:dukascopy/m1-candles?instrument=XAU%2FUSD&from=2024-01-15&to=2024-01-17&side=bid", {
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:dukascopy/m1-candles?instrument=XAU%2FUSD&from=2024-01-15&to=2024-01-17&side=bid",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": "2024-01-15",
"from": "2024-01-15",
"side": "bid",
"count": 1440,
"items": [
{
"low": 2046.815,
"date": "2024-01-15T00:00:00.000Z",
"high": 2047.675,
"open": 2047.525,
"close": 2046.935,
"volume": 0.01064,
"timestamp": 1705276800000
},
{
"low": 2046.695,
"date": "2024-01-15T00:01:00.000Z",
"high": 2047.005,
"open": 2046.855,
"close": 2046.915,
"volume": 0.00878,
"timestamp": 1705276860000
},
{
"low": 2046.935,
"date": "2024-01-15T00:02:00.000Z",
"high": 2047.445,
"open": 2046.945,
"close": 2047.035,
"volume": 0.00876,
"timestamp": 1705276920000
},
{
"low": 2046.885,
"date": "2024-01-15T00:03:00.000Z",
"high": 2047.155,
"open": 2046.985,
"close": 2046.945,
"volume": 0.00465,
"timestamp": 1705276980000
},
{
"low": 2046.445,
"date": "2024-01-15T00:04:00.000Z",
"high": 2047.015,
"open": 2047.015,
"close": 2046.445,
"volume": 0.00717,
"timestamp": 1705277040000
},
{
"low": 2046.345,
"date": "2024-01-15T00:05:00.000Z",
"high": 2046.818,
"open": 2046.465,
"close": 2046.745,
"volume": 0.00798,
"timestamp": 1705277100000
},
{
"low": 2046.155,
"date": "2024-01-15T00:06:00.000Z",
"high": 2046.748,
"open": 2046.695,
"close": 2046.265,
"volume": 0.01471,
"timestamp": 1705277160000
},
{
"low": 2045.675,
"date": "2024-01-15T00:07:00.000Z",
"high": 2046.355,
"open": 2046.255,
"close": 2045.735,
"volume": 0.01739,
"timestamp": 1705277220000
}
],
"symbol": "XAUUSD",
"dataset": "m1-candles",
"hasMore": false,
"nextFrom": null,
"provider": "dukascopy",
"instrument": "XAU/USD",
"daysCovered": 1,
"rateLimited": false
}
```
---
### Ticks
Dukascopy — raw ticks for one UTC hour, straight from the public archive.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:dukascopy/ticks`
- **Cache TTL:** 604800s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `instrument` | string | query | yes | Instrument name or archive symbol, e.g. XAU/USD or XAUUSD |
| `date` | string | query | yes | UTC day of the hour block, YYYY-MM-DD |
| `hour` | number | query | yes | UTC hour block, 0-23 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:dukascopy/ticks?instrument=XAU%2FUSD&date=2024-01-15&hour=10" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:dukascopy/ticks?instrument=XAU%2FUSD&date=2024-01-15&hour=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:dukascopy/ticks?instrument=XAU%2FUSD&date=2024-01-15&hour=10",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"date": "2024-01-15",
"hour": 10,
"count": 4022,
"items": [
{
"ask": 2055.235,
"bid": 2054.925,
"date": "2024-01-15T10:00:00.113Z",
"spread": 0.31,
"askVolume": 0.00012,
"bidVolume": 0.00012,
"timestamp": 1705312800113
},
{
"ask": 2055.245,
"bid": 2054.935,
"date": "2024-01-15T10:00:00.867Z",
"spread": 0.31,
"askVolume": 0.00012,
"bidVolume": 0.00012,
"timestamp": 1705312800867
},
{
"ask": 2055.285,
"bid": 2054.985,
"date": "2024-01-15T10:00:01.219Z",
"spread": 0.3,
"askVolume": 0.00012,
"bidVolume": 0.00012,
"timestamp": 1705312801219
},
{
"ask": 2055.345,
"bid": 2055.045,
"date": "2024-01-15T10:00:01.370Z",
"spread": 0.3,
"askVolume": 0.00012,
"bidVolume": 0.00012,
"timestamp": 1705312801370
},
{
"ask": 2055.295,
"bid": 2055.005,
"date": "2024-01-15T10:00:03.629Z",
"spread": 0.29,
"askVolume": 0.00012,
"bidVolume": 0.00012,
"timestamp": 1705312803629
},
{
"ask": 2055.325,
"bid": 2055.035,
"date": "2024-01-15T10:00:03.932Z",
"spread": 0.29,
"askVolume": 0.00012,
"bidVolume": 0.00012,
"timestamp": 1705312803932
},
{
"ask": 2055.315,
"bid": 2055.015,
"date": "2024-01-15T10:00:03.985Z",
"spread": 0.3,
"askVolume": 0.00012,
"bidVolume": 0.00012,
"timestamp": 1705312803985
},
{
"ask": 2055.335,
"bid": 2055.035,
"date": "2024-01-15T10:00:04.089Z",
"spread": 0.3,
"askVolume": 0.00012,
"bidVolume": 0.00012,
"timestamp": 1705312804089
}
],
"symbol": "XAUUSD",
"dataset": "ticks",
"provider": "dukascopy",
"instrument": "XAU/USD"
}
```
---
### Sentiment Index
Dukascopy — the current retail long/short split across the whole quoted universe.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:dukascopy/sentiment-index`
- **Cache TTL:** 1800s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `type` | enum(swfx|ccy) | query | no | Universe keying. `swfx` quotes by traded pair (EUR/USD), `ccy` by underlying (0700.HK). Default swfx |
| `query` | string | query | no | Filter on instrument name. Omit for the whole universe |
| `limit` | number | query | no | Items to return. Default 100, max 1000 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:dukascopy/sentiment-index?type=swfx&query=EUR&limit=100" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:dukascopy/sentiment-index?type=swfx&query=EUR&limit=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:dukascopy/sentiment-index?type=swfx&query=EUR&limit=100",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"asOf": "2026-08-21T02:00:00.000Z",
"type": "swfx",
"count": 100,
"items": [
{
"instrument": "0700.HK/HKD",
"longPercent": 72.23,
"instrumentId": "35136",
"shortPercent": 27.77,
"netShortPercent": -44.46
},
{
"instrument": "AON.US/USD",
"longPercent": 70.14,
"instrumentId": "86258",
"shortPercent": 29.86,
"netShortPercent": -40.28
},
{
"instrument": "AOS.US/USD",
"longPercent": 72.21,
"instrumentId": "86362",
"shortPercent": 27.79,
"netShortPercent": -44.42
},
{
"instrument": "ARKI.US/USD",
"longPercent": 70.08,
"instrumentId": "99630",
"shortPercent": 29.92,
"netShortPercent": -40.16
},
{
"instrument": "ASML.NL/EUR",
"longPercent": 72.43,
"instrumentId": "72048",
"shortPercent": 27.57,
"netShortPercent": -44.86
},
{
"instrument": "AUD/CAD",
"longPercent": 26.38,
"instrumentId": "2050",
"shortPercent": 73.62,
"netShortPercent": 47.24
},
{
"instrument": "AUD/CHF",
"longPercent": 55.87,
"instrumentId": "2052",
"shortPercent": 44.13,
"netShortPercent": -11.74
},
{
"instrument": "AUD/DKK",
"longPercent": 70.94,
"instrumentId": "2256",
"shortPercent": 29.06,
"netShortPercent": -41.88
}
],
"query": null,
"total": 312,
"dataset": "sentiment-index",
"provider": "dukascopy"
}
```
---
### Sentiment History
Dukascopy — how retail crowding sat at four fixed look-backs: now, 6 hours,
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:dukascopy/sentiment-history`
- **Cache TTL:** 1800s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `query` | string | query | no | Filter on instrument name; the slash is optional. Omit for the whole universe |
| `limit` | number | query | no | Items to return. Default 100, max 1000 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:dukascopy/sentiment-history?query=EUR%2FUSD&limit=100" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:dukascopy/sentiment-history?query=EUR%2FUSD&limit=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:dukascopy/sentiment-history?query=EUR%2FUSD&limit=100",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 1,
"items": [
{
"last": {
"longPercent": 28.64,
"shortPercent": 71.36,
"netShortPercent": 42.72
},
"oneDay": {
"longPercent": 30.96,
"shortPercent": 69.04,
"netShortPercent": 38.08
},
"fiveDays": {
"longPercent": 37.07,
"shortPercent": 62.93,
"netShortPercent": 25.86
},
"sixHours": {
"longPercent": 29.89,
"shortPercent": 70.11,
"netShortPercent": 40.22
},
"instrument": "EUR/USD",
"nameTruncated": false
}
],
"query": "EUR/USD",
"total": 1,
"dataset": "sentiment-history",
"provider": "dukascopy"
}
```
---
## Ecb
**Category:** finance · **Slug:** `ecb`
**Detail page:** https://zapi.ink/api/finance/ecb
The ECB's dataflow catalogue — the vocabulary `series` takes as its `dataflow`.
**Tags:** finance, ecb
### Dataflows
The ECB's dataflow catalogue — the vocabulary `series` takes as its `dataflow`.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:ecb/dataflows`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `agency` | string | query | no | Maintenance agency of the dataflows. Default ECB. |
| `query` | string | query | no | Case-insensitive filter over the dataflow id, name and data-structure id. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:ecb/dataflows?agency=ECB&query=yield" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:ecb/dataflows?agency=ECB&query=yield", {
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:ecb/dataflows?agency=ECB&query=yield",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 104,
"items": [
{
"name": "AGR",
"agency": "ECB",
"version": "1.0",
"dataflow": "AGR",
"structure": "ECB_BCS1"
},
{
"name": "AMECO",
"agency": "ECB",
"version": "1.0",
"dataflow": "AME",
"structure": "ECB_AME1"
},
{
"name": "Banknotes statistics",
"agency": "ECB",
"version": "1.0",
"dataflow": "BKN",
"structure": "ECB_BKN1"
},
{
"name": "Bank Lending Survey Statistics",
"agency": "ECB",
"version": "1.0",
"dataflow": "BLS",
"structure": "ECB_BLS1"
},
{
"name": "Shipments of Euro Banknotes Statistics (ESCB)",
"agency": "ECB",
"version": "1.0",
"dataflow": "BNT",
"structure": "ECB_BOP_BNT"
},
{
"name": "Euro Area Balance of Payments and International Investment Position Statistics",
"agency": "ECB",
"version": "1.0",
"dataflow": "BOP",
"structure": "ECB_BOP1"
},
{
"name": "Balance Sheet Items",
"agency": "ECB",
"version": "1.0",
"dataflow": "BSI",
"structure": "ECB_BSI1"
},
{
"name": "Balance Sheet Items Statistics (tables 2 to 5 of the Blue Book)",
"agency": "ECB",
"version": "1.0",
"dataflow": "BSP",
"structure": "ECB_BSI1"
}
],
"query": null,
"total": 104,
"agency": "ECB",
"dataset": "dataflows",
"provider": "ecb"
}
```
---
### Series
Any of the ECB's 104 SDMX dataflows, by dataflow and series key.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:ecb/series`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `dataflow` | string | query | yes | ECB dataflow id — EXR, FM, ICP, YC, BSI, MIR, BOP, GST, STS and 95 more. `dataflows` lists them. |
| `key` | string | query | no | Series key: dimension values dot-joined in the dataflow's order, `+` to OR within one position, empty between dots for a wildcard. Default all series in the dataflow. |
| `from` | string | query | no | First period, in the series' own period format (2026-08-20, 2026-08, 2026-Q2, 2026). |
| `to` | string | query | no | Last period, same format as `from`. |
| `last` | number | query | no | Return only the newest N observations per series. |
| `first` | number | query | no | Return only the oldest N observations per series. |
| `detail` | enum(full|dataonly|serieskeysonly|nodata) | query | no | full (default), dataonly (drops attributes), serieskeysonly or nodata — use the last two to resolve a wildcard key cheaply. |
| `updatedAfter` | string | query | no | Only observations changed after this ISO timestamp. |
| `history` | enum(true|false) | query | no | Return every point-in-time vintage instead of the current values, adding action, validFrom and validTo to each observation. Default false. |
| `length` | number | query | no | Observations per series to return, newest first. Default 200, max 20000. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:ecb/series?dataflow=EXR&key=D.USD.EUR.SP00.A&from=2026-01-01&to=2026-08-20&last=10&first=10&detail=serieskeysonly&updatedAfter=2026-08-01T00%3A00%3A00Z&history=true&length=100" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:ecb/series?dataflow=EXR&key=D.USD.EUR.SP00.A&from=2026-01-01&to=2026-08-20&last=10&first=10&detail=serieskeysonly&updatedAfter=2026-08-01T00%3A00%3A00Z&history=true&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:ecb/series?dataflow=EXR&key=D.USD.EUR.SP00.A&from=2026-01-01&to=2026-08-20&last=10&first=10&detail=serieskeysonly&updatedAfter=2026-08-01T00%3A00%3A00Z&history=true&length=100",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": null,
"key": null,
"from": null,
"count": 4027,
"items": [
{
"key": "EXR.A.ARS.EUR.SP00.A",
"unit": "ARS",
"count": 1,
"title": "Argentine peso/Euro",
"total": 1,
"values": [
{
"value": 53.8200352941176,
"period": "2019",
"status": "A",
"comment": "Indicative rate"
}
],
"frequency": "A",
"attributes": {
"unit": "ARS",
"title": "Argentine peso/Euro",
"decimals": "5",
"unitMult": "0",
"collection": "A",
"timeFormat": "P1Y",
"titleCompl": "Indicative exchange rate, Euro/Argentine peso, 2:15 pm (C.E.T.)",
"sourceAgency": "4F0"
},
"dimensions": {
"freq": "A",
"exrType": "SP00",
"currency": "ARS",
"exrSuffix": "A",
"currencyDenom": "EUR"
},
"latestValue": 53.8200352941176,
"latestPeriod": "2019"
},
{
"key": "EXR.A.ARS.EUR.SP00.E",
"unit": "ARS",
"count": 1,
"title": "Euro/Argentine peso",
"total": 1,
"values": [
{
"value": 67.2692,
"period": "2019",
"status": "A"
}
],
"frequency": "A",
"attributes": {
"unit": "ARS",
"title": "Euro/Argentine peso",
"decimals": "5",
"unitMult": "0",
"collection": "E",
"timeFormat": "P1Y",
"titleCompl": "Indicative exchange rate, Euro/Argentine peso, 2:15 pm (C.E.T.)",
"sourceAgency": "4F0"
},
"dimensions": {
"freq": "A",
"exrType": "SP00",
"currency": "ARS",
"exrSuffix": "E",
"currencyDenom": "EUR"
},
"latestValue": 67.2692,
"latestPeriod": "2019"
},
{
"key": "EXR.A.AUD.EUR.SP00.A",
"unit": "AUD",
"count": 1,
"title": "Australian dollar/Euro ECB reference exchange rate",
"total": 1,
"values": [
{
"value": 1.75176,
"period": "2025",
"status": "A",
"confidentiality": "F"
}
],
"frequency": "A",
"attributes": {
"unit": "AUD",
"title": "Australian dollar/Euro ECB reference exchange rate",
"decimals": "4",
"unitMult": "0",
"collection": "A",
"timeFormat": "P1Y",
"titleCompl": "ECB reference exchange rate, Australian dollar/Euro, 2.15 pm (C.E.T.)",
"sourceAgency": "4F0"
},
"dimensions": {
"freq": "A",
"exrType": "SP00",
"currency": "AUD",
"exrSuffix": "A",
"currencyDenom": "EUR"
},
"latestValue": 1.75176,
"latestPeriod": "2025"
},
{
"key": "EXR.A.AUD.EUR.SP00.E",
"unit": "AUD",
"count": 1,
"title": "Australian dollar/Euro ECB reference exchange rate",
"total": 1,
"values": [
{
"value": 1.7581,
"period": "2025",
"status": "A",
"confidentiality": "F"
}
],
"frequency": "A",
"attributes": {
"unit": "AUD",
"title": "Australian dollar/Euro ECB reference exchange rate",
"decimals": "4",
"unitMult": "0",
"collection": "E",
"timeFormat": "P1Y",
"titleCompl": "ECB reference exchange rate, Australian dollar/Euro, 2.15 pm (C.E.T.)",
"sourceAgency": "4F0"
},
"dimensions": {
"freq": "A",
"exrType": "SP00",
"currency": "AUD",
"exrSuffix": "E",
"currencyDenom": "EUR"
},
"latestValue": 1.7581,
"latestPeriod": "2025"
},
{
"key": "EXR.A.BGN.EUR.SP00.A",
"unit": "BGN",
"count": 1,
"title": "Euro/Bulgarian lev",
"total": 1,
"values": [
{
"value": 1.9558,
"period": "2025",
"status": "A",
"confidentiality": "F"
}
],
"frequency": "A",
"attributes": {
"unit": "BGN",
"title": "Euro/Bulgarian lev",
"decimals": "4",
"unitMult": "0",
"collection": "A",
"timeFormat": "P1Y",
"titleCompl": "ECB reference exchange rate, Euro/Bulgarian lev, 2:15 pm (C.E.T.)",
"sourceAgency": "4F0"
},
"dimensions": {
"freq": "A",
"exrType": "SP00",
"currency": "BGN",
"exrSuffix": "A",
"currencyDenom": "EUR"
},
"latestValue": 1.9558,
"latestPeriod": "2025"
},
{
"key": "EXR.A.BGN.EUR.SP00.E",
"unit": "BGN",
"count": 1,
"title": "Euro/Bulgarian lev",
"total": 1,
"values": [
{
"value": 1.9558,
"period": "2025",
"status": "A",
"confidentiality": "F"
}
],
"frequency": "A",
"attributes": {
"unit": "BGN",
"title": "Euro/Bulgarian lev",
"decimals": "4",
"unitMult": "0",
"collection": "E",
"timeFormat": "P1Y",
"titleCompl": "ECB reference exchange rate, Euro/Bulgarian lev, 2:15 pm (C.E.T.)",
"sourceAgency": "4F0"
},
"dimensions": {
"freq": "A",
"exrType": "SP00",
"currency": "BGN",
"exrSuffix": "E",
"currencyDenom": "EUR"
},
"latestValue": 1.9558,
"latestPeriod": "2025"
},
{
"key": "EXR.A.BRL.EUR.SP00.A",
"unit": "BRL",
"count": 1,
"title": "Brazilian real/Euro ECB reference exchange rate",
"total": 1,
"values": [
{
"value": 6.3071674509804,
"period": "2025",
"status": "A",
"confidentiality": "F"
}
],
"frequency": "A",
"attributes": {
"unit": "BRL",
"title": "Brazilian real/Euro ECB reference exchange rate",
"decimals": "4",
"unitMult": "0",
"collection": "A",
"timeFormat": "P1Y",
"titleCompl": "ECB reference exchange rate, Brazilian real/Euro, 2.15 pm (C.E.T.)",
"sourceAgency": "4F0"
},
"dimensions": {
"freq": "A",
"exrType": "SP00",
"currency": "BRL",
"exrSuffix": "A",
"currencyDenom": "EUR"
},
"latestValue": 6.3071674509804,
"latestPeriod": "2025"
},
{
"key": "EXR.A.BRL.EUR.SP00.E",
"unit": "BRL",
"count": 1,
"title": "Brazilian real/Euro ECB reference exchange rate",
"total": 1,
"values": [
{
"value": 6.4364,
"period": "2025",
"status": "A",
"confidentiality": "F"
}
],
"frequency": "A",
"attributes": {
"unit": "BRL",
"title": "Brazilian real/Euro ECB reference exchange rate",
"decimals": "4",
"unitMult": "0",
"collection": "E",
"timeFormat": "P1Y",
"titleCompl": "ECB reference exchange rate, Brazilian real/Euro, 2.15 pm (C.E.T.)",
"sourceAgency": "4F0"
},
"dimensions": {
"freq": "A",
"exrType": "SP00",
"currency": "BRL",
"exrSuffix": "E",
"currencyDenom": "EUR"
},
"latestValue": 6.4364,
"latestPeriod": "2025"
}
],
"total": 4027,
"detail": "full",
"dataset": "series",
"history": false,
"dataflow": "EXR",
"provider": "ecb"
}
```
---
### Exchange Rates
ECB euro foreign-exchange reference rates.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:ecb/exchange-rates`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `currency` | string | query | no | ISO currency codes, comma-separated, up to 40 in one call. Default USD. Rates are units per euro. |
| `frequency` | enum(D|M|Q|A) | query | no | D daily, M monthly average, Q quarterly average or A annual average. Default D. |
| `from` | string | query | no | First period, YYYY-MM-DD for daily, YYYY-MM for monthly, YYYY-Q1 for quarterly, YYYY for annual. |
| `to` | string | query | no | Last period, same format as `from`. |
| `asOf` | string | query | no | A single period. Overrides `from` and `to`. A day the ECB did not publish returns 404. |
| `last` | number | query | no | Return only the newest N observations per currency. Default 30 when no window is given. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:ecb/exchange-rates?currency=USD%2CGBP%2CJPY&frequency=D&from=2026-08-01&to=2026-08-20&asOf=2026-08-20&last=5" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:ecb/exchange-rates?currency=USD%2CGBP%2CJPY&frequency=D&from=2026-08-01&to=2026-08-20&asOf=2026-08-20&last=5", {
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:ecb/exchange-rates?currency=USD%2CGBP%2CJPY&frequency=D&from=2026-08-01&to=2026-08-20&asOf=2026-08-20&last=5",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": null,
"base": "EUR",
"from": null,
"count": 3,
"items": [
{
"base": "EUR",
"count": 30,
"title": "US dollar/Euro ECB reference exchange rate",
"values": [
{
"rate": 1.1681,
"period": "2026-08-20",
"status": "A"
},
{
"rate": 1.1605,
"period": "2026-08-19",
"status": "A"
},
{
"rate": 1.1576,
"period": "2026-08-18",
"status": "A"
},
{
"rate": 1.1593,
"period": "2026-08-17",
"status": "A"
},
{
"rate": 1.1567,
"period": "2026-08-14",
"status": "A"
},
{
"rate": 1.1534,
"period": "2026-08-13",
"status": "A"
},
{
"rate": 1.1545,
"period": "2026-08-12",
"status": "A"
},
{
"rate": 1.154,
"period": "2026-08-11",
"status": "A"
}
],
"currency": "USD",
"latestRate": 1.1681,
"latestPeriod": "2026-08-20"
},
{
"base": "EUR",
"count": 30,
"title": "Pound sterling/Euro ECB reference exchange rate",
"values": [
{
"rate": 0.85725,
"period": "2026-08-20",
"status": "A"
},
{
"rate": 0.85608,
"period": "2026-08-19",
"status": "A"
},
{
"rate": 0.85585,
"period": "2026-08-18",
"status": "A"
},
{
"rate": 0.855,
"period": "2026-08-17",
"status": "A"
},
{
"rate": 0.8545,
"period": "2026-08-14",
"status": "A"
},
{
"rate": 0.8549,
"period": "2026-08-13",
"status": "A"
},
{
"rate": 0.85358,
"period": "2026-08-12",
"status": "A"
},
{
"rate": 0.85483,
"period": "2026-08-11",
"status": "A"
}
],
"currency": "GBP",
"latestRate": 0.85725,
"latestPeriod": "2026-08-20"
},
{
"base": "EUR",
"count": 30,
"title": "Japanese yen/Euro ECB reference exchange rate",
"values": [
{
"rate": 185.45,
"period": "2026-08-20",
"status": "A"
},
{
"rate": 184.62,
"period": "2026-08-19",
"status": "A"
},
{
"rate": 184.87,
"period": "2026-08-18",
"status": "A"
},
{
"rate": 184.59,
"period": "2026-08-17",
"status": "A"
},
{
"rate": 183.93,
"period": "2026-08-14",
"status": "A"
},
{
"rate": 183.77,
"period": "2026-08-13",
"status": "A"
},
{
"rate": 183.67,
"period": "2026-08-12",
"status": "A"
},
{
"rate": 183.72,
"period": "2026-08-11",
"status": "A"
}
],
"currency": "JPY",
"latestRate": 185.45,
"latestPeriod": "2026-08-20"
}
],
"total": 90,
"dataset": "exchange-rates",
"missing": [],
"provider": "ecb",
"resolved": [
"GBP",
"JPY",
"USD"
],
"frequency": "D",
"currencies": [
"USD",
"GBP",
"JPY"
]
}
```
---
### Hicp
Euro-area inflation — the Harmonised Index of Consumer Prices.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:ecb/hicp`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `item` | string | query | no | COICOP item code — 000000 overall, 010000 food, 040000 housing, XEF000 excluding energy and food. Comma-separated for several. Default 000000. |
| `area` | string | query | no | Reference area — U2 euro area, DE, FR, IT, ES and the other member states. Default U2. |
| `measure` | enum(ANR|INX|ANR_S|MRR|CTG|CTG_S|WGT) | query | no | ANR annual rate of change, INX index level, ANR_S seasonally adjusted annual rate, MRR monthly rate, CTG contribution, CTG_S adjusted contribution, WGT weight. Default ANR. |
| `from` | string | query | no | First month, YYYY-MM. |
| `to` | string | query | no | Last month, YYYY-MM. |
| `last` | number | query | no | Return only the newest N months per item. Default 24 when no window is given. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:ecb/hicp?item=000000&area=U2&measure=ANR&from=2025-01&to=2025-12&last=12" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:ecb/hicp?item=000000&area=U2&measure=ANR&from=2025-01&to=2025-12&last=12", {
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:ecb/hicp?item=000000&area=U2&measure=ANR&from=2025-01&to=2025-12&last=12",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": null,
"area": "U2",
"from": null,
"count": 1,
"items": [
{
"area": "U2",
"item": "000000",
"unit": "PCCH",
"count": 24,
"title": "HICP - Overall index",
"values": [
{
"value": 1.9,
"period": "2025-12"
},
{
"value": 2.1,
"period": "2025-11"
},
{
"value": 2.1,
"period": "2025-10"
},
{
"value": 2.2,
"period": "2025-09"
},
{
"value": 2,
"period": "2025-08"
},
{
"value": 2,
"period": "2025-07"
},
{
"value": 2,
"period": "2025-06"
},
{
"value": 1.9,
"period": "2025-05"
}
],
"measure": "ANR",
"latestValue": 1.9,
"measureName": "Annual rate of change",
"latestPeriod": "2025-12"
}
],
"total": 24,
"dataset": "hicp",
"measure": "ANR",
"missing": [],
"provider": "ecb",
"resolved": [
"000000"
],
"itemCodes": [
"000000"
],
"latestPeriod": "2025-12"
}
```
---
### Key Rates
The ECB's three policy rates and every date they changed.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:ecb/key-rates`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `rate` | string | query | no | Policy rates, comma-separated: MRR_FR (main refinancing), DFR (deposit facility), MLFR (marginal lending facility). Default all three. |
| `from` | string | query | no | First date, YYYY-MM-DD. The series is daily and repeats the level between changes. |
| `to` | string | query | no | Last date, YYYY-MM-DD. |
| `last` | number | query | no | Return only the newest N observations per rate. Default 20 when no window is given. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:ecb/key-rates?rate=MRR_FR%2CDFR&from=2024-01-01&to=2026-08-20&last=10" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:ecb/key-rates?rate=MRR_FR%2CDFR&from=2024-01-01&to=2026-08-20&last=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:ecb/key-rates?rate=MRR_FR%2CDFR&from=2024-01-01&to=2026-08-20&last=10",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": null,
"from": null,
"count": 2,
"items": [
{
"name": "Main refinancing operations - fixed rate",
"rate": "MRR_FR",
"unit": "percent per annum",
"count": 20,
"title": "Main refinancing operations - fixed rate tenders (fixed rate) (date of changes) - Level",
"values": [
{
"date": "2026-08-21",
"rate": 2.4
},
{
"date": "2026-08-20",
"rate": 2.4
},
{
"date": "2026-08-19",
"rate": 2.4
},
{
"date": "2026-08-18",
"rate": 2.4
},
{
"date": "2026-08-17",
"rate": 2.4
},
{
"date": "2026-08-16",
"rate": 2.4
},
{
"date": "2026-08-15",
"rate": 2.4
},
{
"date": "2026-08-14",
"rate": 2.4
}
],
"latestDate": "2026-08-21",
"latestRate": 2.4
},
{
"name": "Deposit facility",
"rate": "DFR",
"unit": "percent per annum",
"count": 20,
"title": "Deposit facility - date of changes (raw data) - Level",
"values": [
{
"date": "2026-08-21",
"rate": 2.25
},
{
"date": "2026-08-20",
"rate": 2.25
},
{
"date": "2026-08-19",
"rate": 2.25
},
{
"date": "2026-08-18",
"rate": 2.25
},
{
"date": "2026-08-17",
"rate": 2.25
},
{
"date": "2026-08-16",
"rate": 2.25
},
{
"date": "2026-08-15",
"rate": 2.25
},
{
"date": "2026-08-14",
"rate": 2.25
}
],
"latestDate": "2026-08-21",
"latestRate": 2.25
}
],
"rates": [
"MRR_FR",
"DFR"
],
"total": 40,
"dataset": "key-rates",
"provider": "ecb"
}
```
---
## Emitennews
**Category:** finance · **Slug:** `emitennews`
**Detail page:** https://zapi.ink/api/finance/emitennews
One EmitenNews article, body included. This is the only source in the batch
**Tags:** finance, emitennews
### Article
One EmitenNews article, body included. This is the only source in the batch
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:emitennews/article`
- **Cache TTL:** 600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `slug` | string | query | yes | Article slug, or its full URL |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:emitennews/article?slug=yupi-mau-bagi-dividen-interim-catat-tanggalnya" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:emitennews/article?slug=yupi-mau-bagi-dividen-interim-catat-tanggalnya", {
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:emitennews/article?slug=yupi-mau-bagi-dividen-interim-catat-tanggalnya",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"url": "https://emitennews.com/news/yupi-mau-bagi-dividen-interim-catat-tanggalnya",
"body": "EmitenNews.com - PT Yupi Indo Jelly Gum Tbk (YUPI) bakal membagikan dividen interim tahun buku 2026 sebesar Rp17,0148608178 per helainya.\n\nRencana itu telah diputuskan dan disetujui oleh direksi dan dewan komisaris pada 18 Agustus 2026, yang mana dividen interim tersebut berasal dari perolehan laba berish perseroan pada kuartal II 2026.\n\n“Perseoan telah memutuskan dan menyetujui untuk membagikan dividen interim tahun buku 2026, yang berasal dari laba bersih perseroan pada periode tiga bulan yang berakhir pada tanggal 30 Juni 2026,” tulis manajemen melalui keterbukaan informasi, Kamis (20/8).\n\nMemang, sepanjang periode tersebut, YUPI berhasil mengemas laba bersih yang meningkat 2,61 persen menjadi Rp322,40 miliar, dibandingkan periode yang sama tahun sebelumnya sebesar Rp314,20 miliar.\n\nCapaian itu ditopan oleh pendapatan dari kontrak dengan pelanggan yang juga meningkat. Dari Rp1,43 triliun naik 2,10% menjadi Rp1,46 triliun di semester I 2026. Di samping itu, produsen permen dengan jenama Yupi itu juga berhasil menekan beban pokok penjualan. Semula Rp970,7 miliar turun 11,84% menjadi Rp855,8 miliar.\n\nJadwal Dividen Interim YUPI\n\nManajemen juga telah menetapkan jadwal terkait pembagian dividen interim bagi pemegang saham yaitu sebagai berikut;\n\nCum dividen di pasar reguler dan negosiasi : 31 Agustus 2026\n\nCum dividen di pasar tunai : 2 September 2026\n\nEx dividen di pasar reguler dan negosiasi : 1 September 2026\n\nEx dividen di pasar tunai : 3 September 2026\n\nRecording date : 2 September 2026\n\nPembayaran dividen : 10 September 2026\n\nPada perdagangan Kamis (20/8), saham YUPI ditutup menguat 1,95 persen atau naik 25 poin ke level Rp1.305.",
"slug": "yupi-mau-bagi-dividen-interim-catat-tanggalnya",
"tags": [
"yupi",
"dividen-interim",
"dividen",
"emiten",
"saham",
"idx",
"saham-yupi"
],
"image": "https://ap-south-1.linodeobjects.com/emitennews-02/uploads/news/thumb_1787222828.jpg?25119ab",
"title": "YUPI Mau Bagi Dividen Interim, Catat Tanggalnya!",
"author": "Rifki Al Wafi",
"dataset": "article",
"summary": "PT Yupi Indo Jelly Gum Tbk (YUPI) bakal membagikan dividen interim tahun buku 2026 sebesar Rp17,014 per helainya.",
"category": "Emiten",
"provider": "emitennews",
"articleId": "91397",
"wordCount": 218,
"publishedAt": "2026-08-20T10:47:00.000Z",
"paragraphCount": 8,
"tickersFromTags": [
"YUPI"
]
}
```
---
### Tag
EmitenNews tag listing — the join key onto the IDX endpoints, because the
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:emitennews/tag`
- **Cache TTL:** 180s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `tag` | string | query | yes | Tag slug. Ticker tags follow saham- and |
| `page` | number | query | no | Page number, nine articles per page. Default 1 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:emitennews/tag?tag=saham-yupi&page=1" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:emitennews/tag?tag=saham-yupi&page=1", {
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:emitennews/tag?tag=saham-yupi&page=1",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"tag": "saham-yupi",
"page": 1,
"count": 1,
"items": [
{
"url": "https://emitennews.com/news/yupi-mau-bagi-dividen-interim-catat-tanggalnya",
"slug": "yupi-mau-bagi-dividen-interim-catat-tanggalnya",
"image": "https://ap-south-1.linodeobjects.com/emitennews-02/uploads/news/thumb_1787222828.jpg?25119ab",
"title": null,
"summary": null,
"publishedAt": null,
"publishedAgoSeconds": 54000
}
],
"dataset": "tag",
"hasMore": false,
"nextPage": null,
"provider": "emitennews"
}
```
---
### News
EmitenNews category listing — issuer-focused headlines with the summary the
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:emitennews/news`
- **Cache TTL:** 180s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `category` | enum(emiten|informasi|makro|nasional|opini|regulator|rileks|riset) | query | no | Section: emiten informasi makro nasional opini regulator rileks riset. Default emiten |
| `page` | number | query | no | Page number, nine articles per page. Default 1 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:emitennews/news?category=emiten&page=1" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:emitennews/news?category=emiten&page=1", {
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:emitennews/news?category=emiten&page=1",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"page": 1,
"count": 9,
"items": [
{
"url": "https://emitennews.com/news/real-kemas-penjualan-tumbuh-di-1h2026-tapi-laba-tergerus-kenapa",
"slug": "real-kemas-penjualan-tumbuh-di-1h2026-tapi-laba-tergerus-kenapa",
"image": "https://ap-south-1.linodeobjects.com/emitennews-02/uploads/news/thumb_1787274599.webp?25119ab",
"title": "REAL Kemas Penjualan Tumbuh di 1H2026 Tapi Laba Tergerus, Kenapa?",
"summary": "Emiten properti, PT Repower Asia Indonesia Tbk (REAL) mengemas penjualan di paruh pertama 2026 tumbuh 13,12…",
"publishedAt": null,
"publishedAgoSeconds": 3600
},
{
"url": "https://emitennews.com/news/performa-kinclong-bwpt-alihkan-saham-treasuri-40292-juta-lembar",
"slug": "performa-kinclong-bwpt-alihkan-saham-treasuri-40292-juta-lembar",
"image": "https://ap-south-1.linodeobjects.com/emitennews-02/uploads/news/thumb_1787274498.webp?25119ab",
"title": "Performa Kinclong, BWPT Alihkan Saham Treasuri 402,92 Juta Lembar",
"summary": "Eagle High Plantation (BWPT) bakal mengalihkan saham treasuri maksimal 402,92 juta lembar. Pengalihan saham…",
"publishedAt": null,
"publishedAgoSeconds": 3600
},
{
"url": "https://emitennews.com/news/emiten-prajogo-tpia-lahap-bisnis-ini-dari-2-negara-tetangga",
"slug": "emiten-prajogo-tpia-lahap-bisnis-ini-dari-2-negara-tetangga",
"image": "https://ap-south-1.linodeobjects.com/emitennews-02/uploads/news/thumb_1787272433.jpeg?25119ab",
"title": "Emiten Prajogo (TPIA) Lahap Bisnis Ini dari 2 Negara Tetangga",
"summary": "Emiten Prajogo, PT Chandra Asri Pacific Tbk (TPIA) mengakuisisi bisnis otomotif cycle & carriage di…",
"publishedAt": null,
"publishedAgoSeconds": 3600
},
{
"url": "https://emitennews.com/news/kabar-terbaru-tpia-caplok-bisnis-otomotif-cycle-carriage",
"slug": "kabar-terbaru-tpia-caplok-bisnis-otomotif-cycle-carriage",
"image": "https://ap-south-1.linodeobjects.com/emitennews-02/uploads/news/thumb_1787271994.png?25119ab",
"title": "Kabar Terbaru, TPIA Caplok Bisnis Otomotif Cycle & Carriage",
"summary": "Chandra Asri Pacific (TPIA), perusahaan penyedia solusi energi, kimia, dan infrastruktur terkemuka di Asia Tenggara,…",
"publishedAt": null,
"publishedAgoSeconds": 7200
},
{
"url": "https://emitennews.com/news/danantara-kebut-merger-restrukturisasi-ptpp-ini-loncatan-kinerjanya",
"slug": "danantara-kebut-merger-restrukturisasi-ptpp-ini-loncatan-kinerjanya",
"image": "https://ap-south-1.linodeobjects.com/emitennews-02/uploads/news/thumb_1787271134.png?25119ab",
"title": "Danantara Kebut Merger & Restrukturisasi PTPP, Ini Loncatan Kinerjanya",
"summary": "Danantara segera melakukan proses transformasi PT PP (Persero) Tbk (PTPP) secara tuntas dan tidak berlarut-larut.…",
"publishedAt": null,
"publishedAgoSeconds": 7200
},
{
"url": "https://emitennews.com/news/kopi-jadi-lifestyle-btn-bidik-transaksi-harian-via-ekosistem-icx-2026",
"slug": "kopi-jadi-lifestyle-btn-bidik-transaksi-harian-via-ekosistem-icx-2026",
"image": "https://ap-south-1.linodeobjects.com/emitennews-02/uploads/news/thumb_1787269508.jpeg?25119ab",
"title": "Kopi Jadi Lifestyle, BTN Bidik Transaksi Harian via Ekosistem ICX 2026",
"summary": "Bank Tabungan Negara (BBTN) memperluas transformasi bisnis dari bank kuat di pembiayaan perumahan menjadi bank…",
"publishedAt": null,
"publishedAgoSeconds": 7200
},
{
"url": "https://emitennews.com/news/konversi-utang-mknt-izin-investor-private-placement-rp102-triliun",
"slug": "konversi-utang-mknt-izin-investor-private-placement-rp102-triliun",
"image": "https://ap-south-1.linodeobjects.com/emitennews-02/uploads/news/thumb_1787268780.jpg?25119ab",
"title": "Konversi Utang, MKNT Izin Investor Private Placement Rp1,02 Triliun",
"summary": "Mitra Komunikasi Nusantara (MKNT) merancang private placement maksimal Rp1,02 triliun. Itu dengan menerbitkan…",
"publishedAt": null,
"publishedAgoSeconds": 10800
},
{
"url": "https://emitennews.com/news/drama-pkpu-ini-kinerja-wege-vs-ptpw-paruh-i-2026",
"slug": "drama-pkpu-ini-kinerja-wege-vs-ptpw-paruh-i-2026",
"image": "https://ap-south-1.linodeobjects.com/emitennews-02/uploads/news/thumb_1787268044.jpeg?25119ab",
"title": "Drama PKPU, ini Kinerja WEGE Vs PTPW Paruh I 2026",
"summary": "Wijaya Karya Bangunan Gedung (WEGE) mendapat permohonan penundaan kewajiban pembayaran utang (PKPU). Perkara…",
"publishedAt": null,
"publishedAgoSeconds": 10800
}
],
"dataset": "news",
"hasMore": true,
"category": "emiten",
"nextPage": 2,
"provider": "emitennews"
}
```
---
## Etherscan
**Category:** finance · **Slug:** `etherscan`
**Detail page:** https://zapi.ink/api/finance/etherscan
Current gas price tiers and base fee, from Etherscan's V2 multichain API.
**Tags:** finance, etherscan
### Gas Oracle
Current gas price tiers and base fee, from Etherscan's V2 multichain API.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:etherscan/gas-oracle`
- **Cache TTL:** 30s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `chainId` | number | query | no | Chain selector. 1 is Ethereum mainnet, 137 Polygon; both serve this oracle without credentials. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:etherscan/gas-oracle?chainId=1" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:etherscan/gas-oracle?chainId=1", {
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:etherscan/gas-oracle?chainId=1",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"unit": "gwei",
"chainId": 1,
"dataset": "gas-oracle",
"provider": "etherscan",
"lastBlock": 25800500,
"fastGasPrice": 0.227841836,
"gasUsedRatio": [
0.862360183333333,
0.946595916666667,
0.3724444,
0.445706816666667,
0.753381933333333
],
"safeGasPrice": 0.16983154,
"suggestBaseFee": 0.16983154,
"proposeGasPrice": 0.17083154
}
```
---
## Fear & Greed
**Category:** finance · **Slug:** `fear-greed`
**Detail page:** https://zapi.ink/api/finance/fear-greed
Market sentiment on a 0-100 scale for crypto and US equities, with history and the sub-indicators behind the score.
**Tags:** sentiment, crypto, stocks, index, market-mood
### Crypto sentiment
The crypto Fear & Greed index, with history.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:fear-greed/crypto`
- **Cache TTL:** 900s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `count` | number | query | no | Days of history. Default 30, max 365 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:fear-greed/crypto?count=30" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:fear-greed/crypto?count=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:fear-greed/crypto?count=30",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"date": "2026-08-21",
"count": 30,
"items": [
{
"date": "2026-08-21",
"score": 72,
"rating": "Greed",
"timestamp": 1787270400
},
{
"date": "2026-08-20",
"score": 62,
"rating": "Greed",
"timestamp": 1787184000
},
{
"date": "2026-08-19",
"score": 46,
"rating": "Fear",
"timestamp": 1787097600
},
{
"date": "2026-08-18",
"score": 41,
"rating": "Fear",
"timestamp": 1787011200
},
{
"date": "2026-08-17",
"score": 31,
"rating": "Fear",
"timestamp": 1786924800
},
{
"date": "2026-08-16",
"score": 34,
"rating": "Fear",
"timestamp": 1786838400
},
{
"date": "2026-08-15",
"score": 34,
"rating": "Fear",
"timestamp": 1786752000
},
{
"date": "2026-08-14",
"score": 29,
"rating": "Fear",
"timestamp": 1786665600
}
],
"score": 72,
"market": "crypto",
"rating": "Greed",
"nextUpdateIn": 77562
}
```
---
### Stock sentiment
US equity sentiment plus its seven sub-indicators.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:fear-greed/stocks`
- **Cache TTL:** 900s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `count` | number | query | no | Days of history. Default 30, max 365 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:fear-greed/stocks?count=30" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:fear-greed/stocks?count=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:fear-greed/stocks?count=30",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"asOf": "2026-08-20T23:59:58+00:00",
"count": 30,
"items": [
{
"date": "2026-08-20",
"score": 52.49,
"rating": "neutral"
},
{
"date": "2026-08-19",
"score": 57.2,
"rating": "greed"
},
{
"date": "2026-08-18",
"score": 55.09,
"rating": "greed"
},
{
"date": "2026-08-17",
"score": 58.4,
"rating": "greed"
},
{
"date": "2026-08-14",
"score": 63.97,
"rating": "greed"
},
{
"date": "2026-08-13",
"score": 66.63,
"rating": "greed"
},
{
"date": "2026-08-12",
"score": 62.94,
"rating": "greed"
},
{
"date": "2026-08-11",
"score": 61.43,
"rating": "greed"
}
],
"score": 52.49,
"market": "stocks",
"rating": "neutral",
"weekAgo": 66.63,
"yearAgo": 55.91,
"monthAgo": 37.94,
"indicators": {
"junkBondDemand": {
"score": 94.6,
"rating": "extreme greed"
},
"marketMomentum": {
"score": 35.8,
"rating": "fear"
},
"putCallOptions": {
"score": 40.2,
"rating": "fear"
},
"safeHavenDemand": {
"score": 62.8,
"rating": "greed"
},
"marketVolatility": {
"score": 50,
"rating": "neutral"
},
"stockPriceBreadth": {
"score": 56.2,
"rating": "greed"
},
"stockPriceStrength": {
"score": 28,
"rating": "fear"
}
},
"previousClose": 56.34
}
```
---
### Crypto History
The full daily crypto Fear & Greed series, back to 2018-02-01.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:fear-greed/crypto-history`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `limit` | number | query | no | Readings to request from the upstream, newest first. 0 means every reading it has, back to 2018-02-01. Default 0. |
| `from` | number | query | no | Keep readings at or after this UNIX second. |
| `to` | number | query | no | Keep readings at or before this UNIX second. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:fear-greed/crypto-history?limit=0&from=1704067200&to=1767225600" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:fear-greed/crypto-history?limit=0&from=1704067200&to=1767225600", {
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:fear-greed/crypto-history?limit=0&from=1704067200&to=1767225600",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 3120,
"items": [
{
"date": "2018-02-01",
"time": 1517443200,
"score": 30,
"rating": "Fear"
},
{
"date": "2018-02-02",
"time": 1517529600,
"score": 15,
"rating": "Extreme Fear"
},
{
"date": "2018-02-03",
"time": 1517616000,
"score": 40,
"rating": "Fear"
},
{
"date": "2018-02-04",
"time": 1517702400,
"score": 24,
"rating": "Extreme Fear"
},
{
"date": "2018-02-05",
"time": 1517788800,
"score": 11,
"rating": "Extreme Fear"
},
{
"date": "2018-02-06",
"time": 1517875200,
"score": 8,
"rating": "Extreme Fear"
},
{
"date": "2018-02-07",
"time": 1517961600,
"score": 36,
"rating": "Fear"
},
{
"date": "2018-02-08",
"time": 1518048000,
"score": 30,
"rating": "Fear"
}
],
"limit": 0,
"total": 3120,
"market": "crypto",
"dataset": "crypto-history",
"interval": "1d",
"provider": "alternative-me",
"sourceUrl": "https://alternative.me/crypto/fear-and-greed-index/"
}
```
---
## Federal Reserve
**Category:** finance · **Slug:** `federal-reserve`
**Detail page:** https://zapi.ink/api/finance/federal-reserve
Federal Reserve Board releases: FOMC calendar and statements, H.15 selected rates, H.4.1 balance sheet, Beige Book and SEP projections.
**Tags:** federal-reserve, fomc, rates, macro, monetary-policy
### Beige Book
Beige Book — the Reserve Bank districts' narrative report, eight times a year.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:federal-reserve/beige-book`
- **Cache TTL:** 43200s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `year` | number | query | no | Release year. Defaults to the most recent release. |
| `month` | number | query | no | Release month, 1-12. Required when `year` is given. |
| `district` | enum(summary|boston|new-york|philadelphia|cleveland|richmond|atlanta|chicago|st-louis|minneapolis|kansas-city|dallas|san-francisco) | query | no | Which document: summary, boston, new-york, philadelphia, cleveland, richmond, atlanta, chicago, st-louis, minneapolis, kansas-city, dallas or san-francisco. Default summary. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:federal-reserve/beige-book?year=2026&month=7&district=summary" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:federal-reserve/beige-book?year=2026&month=7&district=summary", {
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:federal-reserve/beige-book?year=2026&month=7&district=summary",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"url": "https://www.federalreserve.gov/monetarypolicy/beigebook202607-summary.htm",
"year": 2026,
"count": 4,
"items": [
{
"heading": "Overall Economic Activity",
"paragraphs": [
"Economic activity increased at a slight to moderate pace in eleven of twelve Federal Reserve Districts in late May and June, while one District reported no change. The pace of growth was quite close to that of last period, when activity expanded in ten Districts, was flat in one, and down in one. Consumer spending edged up as higher prices, particularly for fuel, dampened sales in other categories. Several Districts noted declines in spending on discretionary items or trading down to more affordable varieties. Tourism was up, with some Districts receiving a boost from World Cup visitors. Auto dealers reported little change in sales, but spending on repairs grew as consumers held onto vehicles for longer. Agricultural conditions deteriorated due to lower commodity prices, higher input costs, and tighter credit. In the energy sector, oil and gas drilling increased. Manufacturing production grew modestly to moderately in most Districts, led by stronger orders from the data center, machinery, and defense sectors. Manufacturers in several Districts said supply chain issues were more common. Construction and real estate activity increased slightly overall, with several Districts noting growth in data center building. Financial conditions were stable on net, and commercial and consumer loan volumes were both up modestly. Commercial loan quality was stable, but consumer loan quality ticked down. Transportation activity increased modestly amidst ongoing supply chain changes related to higher tariffs and the conflict in the Middle East. Overall, activity in other service industries also was up modestly, with Districts highlighting growth in health care and professional services. Social service providers were adjusting to funding declines while demand for basic supports—housing, food, health care—remained high. Contacts generally expected the economy to continue to expand in the coming months, but several Districts noted elevated uncertainty in the outlook for fuel costs."
]
},
{
"heading": "Labor Markets",
"paragraphs": [
"Employment rose on balance, with five Districts showing modest, moderate, or solid gains in employment, and with seven Districts experiencing little to no change. In the previous report, only one District had modest, moderate, or solid employment gains. Employment rose in a variety of industries, including manufacturing, construction, and retail. Skilled workers were difficult to find in a range of fields, notably technicians and tradespeople. Though there were reports of lower employment in a couple of Districts, the declines were small. Wage growth was modest to moderate in most Districts, though two saw only slight wage increases. Some wage increases were attributed to increased competition for skilled workers. A few Districts noted that firms had increased their usage of AI, either in the hiring and screening of potential employees or to boost worker productivity."
]
},
{
"heading": "Prices",
"paragraphs": [
"Prices increased moderately overall, with nine Districts reporting moderate growth, two robust growth, and one slight growth; compared with the last reporting period, price growth was the same or slower in all Districts. Non-labor input costs increased for a variety of industries—including services, construction, and manufacturing—and reflected in part higher costs for energy, transportation, and raw materials. Some contacts tied these cost increases to the conflict in the Middle East; others mentioned tariffs. Consumer prices continued to rise, and a few Districts said contacts saw greater price sensitivity among their customers. A couple of Districts reported that selling prices grew less than input costs over the period, crimping margins. Expectations for price growth over the coming months varied across Districts, with contacts in some expecting inflation to continue at its current pace, while contacts in others expected inflation to slow, in part due to falling fuel prices."
]
},
{
"heading": "Highlights by Federal Reserve District",
"paragraphs": [
"Economic activity expanded slightly. Employment was flat, with some isolated layoffs, and wages rose at a slight pace. Cost pressures remained elevated, but output prices increased only slightly. Consumer spending rose modestly overall, buoyed by the World Cup, but discretionary spending softened among low- and moderate-income households. The outlook improved on balance.",
"Economic activity increased modestly, as service sector activity picked up after a long period of weakness. Employment increased modestly, with larger firms starting to hire for growth. Input prices rose strongly under pressure from tariffs and energy costs, though selling price increases remained moderate. Businesses became more optimistic.",
"Economic activity rose slightly in the current period, up from a slight decrease in the last period. Nonmanufacturing activity picked up, while manufacturing activity again rose modestly. Employment again declined somewhat. Wage inflation held steady at a modest pace, and prices continued to grow moderately. Manufacturers have more widespread expectations for future growth than nonmanufacturers.",
"Fourth District business activity increased modestly, with faster growth anticipated in the coming months. Manufacturing demand rose moderately, while retailers continued to face soft demand due to higher fuel prices. Higher fuel costs filtered through to both selling prices and wage pressures. Selling prices rose at a robust pace.",
"The regional economy expanded moderately this cycle as consumer spending continued to grow despite some shifts in consumer behavior, even among higher income consumers. Business activity was generally reported as modestly growing, and employment grew modestly as well. Manufacturing output also increased modestly while producer prices were little changed despite rising input costs. Overall price growth remained moderate.",
"Economic activity grew modestly. Employment levels remained largely flat. Wages rose moderately, and prices increased at a moderate pace. Consumer spending expanded modestly. Residential and commercial real estate were little changed. Transportation and manufacturing rose modestly. Energy activity was stable, but agricultural conditions worsened. Lending increased at a modest pace."
]
}
],
"month": 7,
"title": "National Summary",
"dataset": "beige-book",
"district": "summary",
"provider": "federal-reserve",
"documents": [
{
"url": "https://www.federalreserve.gov/monetarypolicy/beigebook202607-summary.htm",
"district": "summary"
},
{
"url": "https://www.federalreserve.gov/monetarypolicy/beigebook202607-boston.htm",
"district": "boston"
},
{
"url": "https://www.federalreserve.gov/monetarypolicy/beigebook202607-new-york.htm",
"district": "new-york"
},
{
"url": "https://www.federalreserve.gov/monetarypolicy/beigebook202607-philadelphia.htm",
"district": "philadelphia"
},
{
"url": "https://www.federalreserve.gov/monetarypolicy/beigebook202607-cleveland.htm",
"district": "cleveland"
},
{
"url": "https://www.federalreserve.gov/monetarypolicy/beigebook202607-richmond.htm",
"district": "richmond"
}
],
"releaseUrl": "https://www.federalreserve.gov/monetarypolicy/beigebook202607.htm"
}
```
---
### FOMC Calendar
FOMC meeting calendar — past and scheduled meetings with their document links.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:federal-reserve/fomc-calendar`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `year` | number | query | no | Calendar year. Defaults to every year the page lists, newest first. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:federal-reserve/fomc-calendar?year=2026" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:federal-reserve/fomc-calendar?year=2026", {
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:federal-reserve/fomc-calendar?year=2026",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"year": 2026,
"count": 8,
"items": [
{
"days": "8-9*",
"endDate": "2026-12-09",
"startDate": "2026-12-08",
"minutesPdf": null,
"minutesUrl": null,
"monthLabel": "December",
"statementPdf": null,
"statementUrl": null,
"hasProjections": true,
"isNotationVote": false,
"projectionsPdf": null,
"projectionsUrl": null,
"minutesReleasedOn": null,
"pressConferenceUrl": null,
"implementationNoteUrl": null
},
{
"days": "27-28",
"endDate": "2026-10-28",
"startDate": "2026-10-27",
"minutesPdf": null,
"minutesUrl": null,
"monthLabel": "October",
"statementPdf": null,
"statementUrl": null,
"hasProjections": false,
"isNotationVote": false,
"projectionsPdf": null,
"projectionsUrl": null,
"minutesReleasedOn": null,
"pressConferenceUrl": null,
"implementationNoteUrl": null
},
{
"days": "15-16*",
"endDate": "2026-09-16",
"startDate": "2026-09-15",
"minutesPdf": null,
"minutesUrl": null,
"monthLabel": "September",
"statementPdf": null,
"statementUrl": null,
"hasProjections": true,
"isNotationVote": false,
"projectionsPdf": null,
"projectionsUrl": null,
"minutesReleasedOn": null,
"pressConferenceUrl": null,
"implementationNoteUrl": null
},
{
"days": "28-29",
"endDate": "2026-07-29",
"startDate": "2026-07-28",
"minutesPdf": "https://www.federalreserve.gov/monetarypolicy/files/fomcminutes20260729.pdf",
"minutesUrl": "https://www.federalreserve.gov/monetarypolicy/fomcminutes20260729.htm",
"monthLabel": "July",
"statementPdf": "https://www.federalreserve.gov/monetarypolicy/files/monetary20260729a1.pdf",
"statementUrl": "https://www.federalreserve.gov/newsevents/pressreleases/monetary20260729a.htm",
"hasProjections": false,
"isNotationVote": false,
"projectionsPdf": null,
"projectionsUrl": null,
"minutesReleasedOn": "2026-08-19",
"pressConferenceUrl": "https://www.federalreserve.gov/monetarypolicy/fomcpresconf20260729.htm",
"implementationNoteUrl": "https://www.federalreserve.gov/newsevents/pressreleases/monetary20260729a1.htm"
},
{
"days": "16-17*",
"endDate": "2026-06-17",
"startDate": "2026-06-16",
"minutesPdf": "https://www.federalreserve.gov/monetarypolicy/files/fomcminutes20260617.pdf",
"minutesUrl": "https://www.federalreserve.gov/monetarypolicy/fomcminutes20260617.htm",
"monthLabel": "June",
"statementPdf": "https://www.federalreserve.gov/monetarypolicy/files/monetary20260617a1.pdf",
"statementUrl": "https://www.federalreserve.gov/newsevents/pressreleases/monetary20260617a.htm",
"hasProjections": true,
"isNotationVote": false,
"projectionsPdf": "https://www.federalreserve.gov/monetarypolicy/files/fomcprojtabl20260617.pdf",
"projectionsUrl": "https://www.federalreserve.gov/monetarypolicy/fomcprojtabl20260617.htm",
"minutesReleasedOn": "2026-07-08",
"pressConferenceUrl": "https://www.federalreserve.gov/monetarypolicy/fomcpresconf20260617.htm",
"implementationNoteUrl": "https://www.federalreserve.gov/newsevents/pressreleases/monetary20260617a1.htm"
},
{
"days": "28-29",
"endDate": "2026-04-29",
"startDate": "2026-04-28",
"minutesPdf": "https://www.federalreserve.gov/monetarypolicy/files/fomcminutes20260429.pdf",
"minutesUrl": "https://www.federalreserve.gov/monetarypolicy/fomcminutes20260429.htm",
"monthLabel": "April",
"statementPdf": "https://www.federalreserve.gov/monetarypolicy/files/monetary20260429a1.pdf",
"statementUrl": "https://www.federalreserve.gov/newsevents/pressreleases/monetary20260429a.htm",
"hasProjections": false,
"isNotationVote": false,
"projectionsPdf": null,
"projectionsUrl": null,
"minutesReleasedOn": "2026-05-20",
"pressConferenceUrl": "https://www.federalreserve.gov/monetarypolicy/fomcpresconf20260429.htm",
"implementationNoteUrl": "https://www.federalreserve.gov/newsevents/pressreleases/monetary20260429a1.htm"
}
],
"years": [
2027,
2026,
2025,
2024,
2023,
2022
],
"dataset": "fomc-calendar",
"provider": "federal-reserve"
}
```
---
### FOMC Statements
FOMC monetary-policy releases — statements, minutes and implementation notes.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:federal-reserve/fomc-statements`
- **Cache TTL:** 1800s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `kind` | enum(statement|minutes|implementation-note|projections|speech|other) | query | no | Document kind derived from the title: statement, minutes, implementation-note, projections, speech or other. Default all. |
| `query` | string | query | no | Case-insensitive substring match on the release title. |
| `from` | string | query | no | Earliest release date, YYYY-MM-DD. |
| `to` | string | query | no | Latest release date, YYYY-MM-DD. |
| `page` | number | query | no | Page number, 1-based (default 1) |
| `length` | number | query | no | Releases per page (default 25, max 200) |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:federal-reserve/fomc-statements?kind=statement&query=inflation&from=2026-01-01&to=2026-08-19&page=1&length=25" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:federal-reserve/fomc-statements?kind=statement&query=inflation&from=2026-01-01&to=2026-08-19&page=1&length=25", {
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:federal-reserve/fomc-statements?kind=statement&query=inflation&from=2026-01-01&to=2026-08-19&page=1&length=25",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": "2026-08-19",
"from": "2026-01-01",
"kind": null,
"page": 1,
"count": 0,
"items": [],
"query": "inflation",
"total": null,
"dataset": "fomc-statements",
"hasMore": false,
"nextPage": null,
"provider": "federal-reserve"
}
```
---
### H.15
H.15 Selected Interest Rates — Treasury constant maturities, fed funds, prime.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:federal-reserve/h15`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `package` | string | query | no | Which H.15 package to pull — a 0-based index, or any part of the package name. Default 0, the daily Treasury constant maturities. |
| `from` | string | query | no | First observation date, YYYY-MM-DD. Ignored unless `to` is also given. |
| `to` | string | query | no | Last observation date, YYYY-MM-DD. Ignored unless `from` is also given. |
| `length` | number | query | no | Observations to return, newest first (default 30, max 5000) |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:federal-reserve/h15?package=Treasury%20Constant%20Maturities&from=2026-07-01&to=2026-08-18&length=30" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:federal-reserve/h15?package=Treasury%20Constant%20Maturities&from=2026-07-01&to=2026-08-18&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:federal-reserve/h15?package=Treasury%20Constant%20Maturities&from=2026-07-01&to=2026-08-18&length=30",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": "2026-08-18",
"from": "2026-07-01",
"count": 30,
"items": [
{
"date": "2026-08-18",
"values": {
"RIFLGFCM01_N.B": 3.78,
"RIFLGFCM03_N.B": 3.86,
"RIFLGFCM06_N.B": 3.94,
"RIFLGFCY01_N.B": 3.99,
"RIFLGFCY02_N.B": 4.19,
"RIFLGFCY03_N.B": 4.26,
"RIFLGFCY05_N.B": 4.37,
"RIFLGFCY07_N.B": 4.53,
"RIFLGFCY10_N.B": 4.71,
"RIFLGFCY20_N.B": 5.28,
"RIFLGFCY30_N.B": 5.28
}
},
{
"date": "2026-08-17",
"values": {
"RIFLGFCM01_N.B": 3.79,
"RIFLGFCM03_N.B": 3.87,
"RIFLGFCM06_N.B": 3.95,
"RIFLGFCY01_N.B": 4,
"RIFLGFCY02_N.B": 4.19,
"RIFLGFCY03_N.B": 4.25,
"RIFLGFCY05_N.B": 4.38,
"RIFLGFCY07_N.B": 4.54,
"RIFLGFCY10_N.B": 4.72,
"RIFLGFCY20_N.B": 5.3,
"RIFLGFCY30_N.B": 5.31
}
},
{
"date": "2026-08-14",
"values": {
"RIFLGFCM01_N.B": 3.79,
"RIFLGFCM03_N.B": 3.86,
"RIFLGFCM06_N.B": 3.95,
"RIFLGFCY01_N.B": 3.98,
"RIFLGFCY02_N.B": 4.17,
"RIFLGFCY03_N.B": 4.24,
"RIFLGFCY05_N.B": 4.36,
"RIFLGFCY07_N.B": 4.51,
"RIFLGFCY10_N.B": 4.68,
"RIFLGFCY20_N.B": 5.25,
"RIFLGFCY30_N.B": 5.25
}
},
{
"date": "2026-08-13",
"values": {
"RIFLGFCM01_N.B": 3.79,
"RIFLGFCM03_N.B": 3.87,
"RIFLGFCM06_N.B": 3.94,
"RIFLGFCY01_N.B": 3.97,
"RIFLGFCY02_N.B": 4.15,
"RIFLGFCY03_N.B": 4.2,
"RIFLGFCY05_N.B": 4.32,
"RIFLGFCY07_N.B": 4.47,
"RIFLGFCY10_N.B": 4.63,
"RIFLGFCY20_N.B": 5.2,
"RIFLGFCY30_N.B": 5.21
}
},
{
"date": "2026-08-12",
"values": {
"RIFLGFCM01_N.B": 3.78,
"RIFLGFCM03_N.B": 3.87,
"RIFLGFCM06_N.B": 3.97,
"RIFLGFCY01_N.B": 4,
"RIFLGFCY02_N.B": 4.2,
"RIFLGFCY03_N.B": 4.25,
"RIFLGFCY05_N.B": 4.38,
"RIFLGFCY07_N.B": 4.52,
"RIFLGFCY10_N.B": 4.68,
"RIFLGFCY20_N.B": 5.24,
"RIFLGFCY30_N.B": 5.24
}
},
{
"date": "2026-08-11",
"values": {
"RIFLGFCM01_N.B": 3.79,
"RIFLGFCM03_N.B": 3.89,
"RIFLGFCM06_N.B": 3.99,
"RIFLGFCY01_N.B": 4.03,
"RIFLGFCY02_N.B": 4.22,
"RIFLGFCY03_N.B": 4.27,
"RIFLGFCY05_N.B": 4.39,
"RIFLGFCY07_N.B": 4.54,
"RIFLGFCY10_N.B": 4.7,
"RIFLGFCY20_N.B": 5.25,
"RIFLGFCY30_N.B": 5.24
}
}
],
"total": 35,
"series": [
{
"id": "RIFLGFCM01_N.B",
"unit": "Percent: Per Year",
"currency": null,
"uniqueId": "H15/H15/RIFLGFCM01_N.B",
"multiplier": 1,
"description": "Market yield on U.S. Treasury securities at 1-month constant maturity, quoted on investment basis"
},
{
"id": "RIFLGFCM03_N.B",
"unit": "Percent: Per Year",
"currency": null,
"uniqueId": "H15/H15/RIFLGFCM03_N.B",
"multiplier": 1,
"description": "Market yield on U.S. Treasury securities at 3-month constant maturity, quoted on investment basis"
},
{
"id": "RIFLGFCM06_N.B",
"unit": "Percent: Per Year",
"currency": null,
"uniqueId": "H15/H15/RIFLGFCM06_N.B",
"multiplier": 1,
"description": "Market yield on U.S. Treasury securities at 6-month constant maturity, quoted on investment basis"
},
{
"id": "RIFLGFCY01_N.B",
"unit": "Percent: Per Year",
"currency": null,
"uniqueId": "H15/H15/RIFLGFCY01_N.B",
"multiplier": 1,
"description": "Market yield on U.S. Treasury securities at 1-year constant maturity, quoted on investment basis"
},
{
"id": "RIFLGFCY02_N.B",
"unit": "Percent: Per Year",
"currency": null,
"uniqueId": "H15/H15/RIFLGFCY02_N.B",
"multiplier": 1,
"description": "Market yield on U.S. Treasury securities at 2-year constant maturity, quoted on investment basis"
},
{
"id": "RIFLGFCY03_N.B",
"unit": "Percent: Per Year",
"currency": null,
"uniqueId": "H15/H15/RIFLGFCY03_N.B",
"multiplier": 1,
"description": "Market yield on U.S. Treasury securities at 3-year constant maturity, quoted on investment basis"
}
],
"dataset": "h15",
"package": "Treasury Constant Maturities",
"packages": [
{
"name": "Treasury Constant Maturities",
"index": 0
},
{
"name": "Weekly Averages (Fed Funds, Prime and Discount rates)",
"index": 1
},
{
"name": "Weekly Averages",
"index": 2
},
{
"name": "Monthly Averages",
"index": 3
}
],
"provider": "federal-reserve"
}
```
---
### H.4.1
H.4.1 Factors Affecting Reserve Balances — the Federal Reserve balance sheet.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:federal-reserve/h41`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `package` | string | query | no | Which H.4.1 table to pull — a 0-based index, or any part of the table name (Table 1 through Table 7). Default 0, Table 1. |
| `from` | string | query | no | First observation date, YYYY-MM-DD. Ignored unless `to` is also given. |
| `to` | string | query | no | Last observation date, YYYY-MM-DD. Ignored unless `from` is also given. |
| `length` | number | query | no | Weekly observations to return, newest first (default 8, max 1000) |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:federal-reserve/h41?package=Table%201&from=2026-01-01&to=2026-08-12&length=12" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:federal-reserve/h41?package=Table%201&from=2026-01-01&to=2026-08-12&length=12", {
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:federal-reserve/h41?package=Table%201&from=2026-01-01&to=2026-08-12&length=12",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": "2026-08-12",
"from": "2026-01-01",
"count": 12,
"items": [
{
"date": "2026-08-12",
"values": {
"RESH4A_N.WW": 3864013000000,
"RESH4E_N.WW": 0,
"RESH4R_N.WW": 2947630000000,
"RESH4S_N.WW": 6811643000000,
"RESTBC_N.WW": 2475558000000,
"RESH4AO_N.WW": -178030000000,
"RESH4SC_N.WW": 6712859000000,
"RESH4SO_N.WW": 49042000000,
"RESPPAS_N.WW": 15200000000,
"RESTBHT_N.WW": 334000000,
"RESTBMG_N.WW": 11041000000,
"RESTBMT_N.WW": 53326000000,
"RESH4SCF_N.WW": -221000000,
"RESH4SCS_N.WW": 132000000,
"RESPPALD_N.WW": 5691000000,
"RESPPALG_N.WW": 6471490000000,
"RESPPAOF_N.WW": 19217000000,
"RESPPLLB_N.WW": 1208034000000,
"RESPPLLR_N.WW": 358117000000,
"RESPPAAEH_N.WW": 728000000,
"RESPPALDC_N.WW": 0,
"RESPPALDJ_N.WW": 16000000,
"RESPPALDN_N.WW": 5691000000,
"RESPPALDP_N.WW": 5644000000,
"RESPPALDQ_N.WW": 0,
"RESPPALDS_N.WW": 31000000,
"RESPPALSD_N.WW": -25907000000,
"RESPPALSP_N.WW": 211905000000,
"RESPPLLDA_N.WW": 0,
"RESPPLLDF_N.WW": 9456000000,
"RESPPLLDO_N.WW": 239172000000,
"RESPPLLDT_N.WW": 959405000000,
"RESPPLLRD_N.WW": 725000000,
"RESPPLLRF_N.WW": 357392000000,
"RESH4A_XAW_N.WW": 3861769000000,
"RESH4E_XAW_N.WW": 0,
"RESH4R_XAW_N.WW": 2944059000000,
"RESH4S_XAW_N.WW": 6805829000000,
"RESPPALGAO_N.WW": 2347000000,
"RESPPALGTR_N.WW": 0,
"RESPPALGUO_N.WW": 4538288000000,
"RESTBC_XAW_N.WW": 2474891000000,
"RESH4AO_XAW_N.WW": -178762000000,
"RESH4SC_XAW_N.WW": 6707005000000,
"RESH4SO_XAW_N.WW": 47846000000,
"RESPPALGTRF_N.WW": 0,
"RESPPALGTRO_N.WW": 0,
"RESPPALGUOB_N.WW": 533509000000,
"RESPPAS_XAW_N.WW": 15200000000,
"RESTBHT_XAW_N.WW": 327000000,
"RESTBMG_XAW_N.WW": 11041000000,
"RESTBMT_XAW_N.WW": 53326000000,
"RESH4SCF_XAW_N.WW": -228000000,
"RESH4SCS_XAW_N.WW": 132000000,
"RESPPALD_XAW_N.WW": 5775000000,
"RESPPALGASMO_N.WW": 1930855000000,
"RESPPALGUOMC_N.WW": 106852000000,
"RESPPALGUOMI_N.WW": 276076000000,
"RESPPALGUOMN_N.WW": 3621850000000,
"RESPPALG_XAW_N.WW": 6466668000000,
"RESPPAOF_XAW_N.WW": 19257000000,
"RESPPLLB_XAW_N.WW": 1214426000000,
"RESPPLLR_XAW_N.WW": 350888000000,
"RESPPAAEH_XAW_N.WW": 703000000,
"RESPPALDC_XAW_N.WW": 0,
"RESPPALDJ_XAW_N.WW": 16000000,
"RESPPALDN_XAW_N.WW": 5775000000,
"RESPPALDP_XAW_N.WW": 5718000000,
"RESPPALDQ_XAW_N.WW": 0,
"RESPPALDS_XAW_N.WW": 41000000,
"RESPPALSD_XAW_N.WW": -25937000000,
"RESPPALSP_XAW_N.WW": 212031000000,
"RESPPLLDA_XAW_N.WW": 0,
"RESPPLLDF_XAW_N.WW": 9456000000,
"RESPPLLDO_XAW_N.WW": 241019000000,
"RESPPLLDT_XAW_N.WW": 963950000000,
"RESPPLLRD_XAW_N.WW": 1247000000,
"RESPPLLRF_XAW_N.WW": 349641000000,
"RESPPALGAO_XAW_N.WW": 2347000000,
"RESPPALGTR_XAW_N.WW": 15000000,
"RESPPALGUO_XAW_N.WW": 4533467000000,
"RESH4A_XAW_XCH1_N.WW": 60030000000,
"RESH4E_XAW_XCH1_N.WW": 0,
"RESH4R_XAW_XCH1_N.WW": -49290000000,
"RESH4S_XAW_XCH1_N.WW": 10742000000,
"RESPPAAML1H_XAW_N.WW": null,
"RESPPALGTRF_XAW_N.WW": 0,
"RESPPALGTRO_XAW_N.WW": 14000000,
"RESPPALGUOB_XAW_N.WW": 528576000000,
"RESTBC_XAW_XCH1_N.WW": 1833000000,
"RESH4AO_XAW_XCH1_N.WW": -1984000000,
"RESH4A_XAW_XCH52_N.WW": 488307000000,
"RESH4E_XAW_XCH52_N.WW": -2029000000,
"RESH4R_XAW_XCH52_N.WW": -375991000000,
"RESH4SC_XAW_XCH1_N.WW": 10757000000,
"RESH4SO_XAW_XCH1_N.WW": 3194000000,
"RESH4S_XAW_XCH52_N.WW": 112317000000,
"RESPPALGASMO_XAW_N.WW": 1930855000000,
"RESPPALGUOMC_XAW_N.WW": 106963000000,
"RESPPALGUOMI_XAW_N.WW": 276076000000,
"RESPPALGUOMN_XAW_N.WW": 3621850000000,
"RESPPAS_XAW_XCH1_N.WW": 0,
"RESTBC_XAW_XCH52_N.WW": 71348000000,
"RESTBHT_XAW_XCH1_N.WW": 3000000,
"RESTBMG_XAW_XCH1_N.WW": 0,
"RESTBMT_XAW_XCH1_N.WW": 14000000,
"RESH4AO_XAW_XCH52_N.WW": 8108000000,
"RESH4SCF_XAW_XCH1_N.WW": -9000000,
"RESH4SCS_XAW_XCH1_N.WW": -13000000,
"RESH4SC_XAW_XCH52_N.WW": 111837000000,
"RESH4SO_XAW_XCH52_N.WW": 1370000000,
"RESPPALD_XAW_XCH1_N.WW": -539000000,
"RESPPALG_XAW_XCH1_N.WW": 8557000000,
"RESPPAOF_XAW_XCH1_N.WW": -30000000,
"RESPPAS_XAW_XCH52_N.WW": 0,
"RESPPLLB_XAW_XCH1_N.WW": 52017000000,
"RESPPLLR_XAW_XCH1_N.WW": 8163000000,
"RESTBHT_XAW_XCH52_N.WW": -103000000,
"RESTBMG_XAW_XCH52_N.WW": 0,
"RESTBMT_XAW_XCH52_N.WW": 728000000,
"RESH4SCF_XAW_XCH52_N.WW": 99000000,
"RESH4SCS_XAW_XCH52_N.WW": 86000000,
"RESPPAAEH_XAW_XCH1_N.WW": 75000000,
"RESPPALDC_XAW_XCH1_N.WW": 0,
"RESPPALDJ_XAW_XCH1_N.WW": 0,
"RESPPALDN_XAW_XCH1_N.WW": -539000000,
"RESPPALDP_XAW_XCH1_N.WW": -535000000,
"RESPPALDQ_XAW_XCH1_N.WW": 0,
"RESPPALDS_XAW_XCH1_N.WW": -4000000,
"RESPPALD_XAW_XCH52_N.WW": -671000000,
"RESPPALG_XAW_XCH52_N.WW": 138953000000,
"RESPPALSD_XAW_XCH1_N.WW": -155000000,
"RESPPALSP_XAW_XCH1_N.WW": -366000000,
"RESPPAOF_XAW_XCH52_N.WW": -248000000,
"RESPPLLB_XAW_XCH52_N.WW": 481599000000,
"RESPPLLDA_XAW_XCH1_N.WW": 0,
"RESPPLLDF_XAW_XCH1_N.WW": -2000000,
"RESPPLLDO_XAW_XCH1_N.WW": -4608000000,
"RESPPLLDT_XAW_XCH1_N.WW": 56626000000,
"RESPPLLRD_XAW_XCH1_N.WW": -690000000,
"RESPPLLRF_XAW_XCH1_N.WW": 8852000000,
"RESPPLLR_XAW_XCH52_N.WW": -70616000000,
"RESPPAAEH_XAW_XCH52_N.WW": -3774000000,
"RESPPALDC_XAW_XCH52_N.WW": 0,
"RESPPALDJ_XAW_XCH52_N.WW": -1393000000,
"RESPPALDN_XAW_XCH52_N.WW": -671000000,
"RESPPALDP_XAW_XCH52_N.WW": 732000000,
"RESPPALDQ_XAW_XCH52_N.WW": 0,
"RESPPALDS_XAW_XCH52_N.WW": -9000000,
"RESPPALGAO_XAW_XCH1_N.WW": 0,
"RESPPALGTR_XAW_XCH1_N.WW": 13000000,
"RESPPALGUO_XAW_XCH1_N.WW": 8558000000,
"RESPPALSD_XAW_XCH52_N.WW": -2135000000,
"RESPPALSP_XAW_XCH52_N.WW": -22085000000,
"RESPPLLDA_XAW_XCH52_N.WW": 0,
"RESPPLLDF_XAW_XCH52_N.WW": 22000000,
"RESPPLLDO_XAW_XCH52_N.WW": 21930000000,
"RESPPLLDT_XAW_XCH52_N.WW": 459646000000,
"RESPPLLRD_XAW_XCH52_N.WW": -72436000000,
"RESPPLLRF_XAW_XCH52_N.WW": 1820000000,
"RESPPAAML1H_XAW_XCH1_N.WW": null,
"RESPPALGAO_XAW_XCH52_N.WW": 0,
"RESPPALGTRF_XAW_XCH1_N.WW": 0,
"RESPPALGTRO_XAW_XCH1_N.WW": 13000000,
"RESPPALGTR_XAW_XCH52_N.WW": -6000000,
"RESPPALGUOB_XAW_XCH1_N.WW": 8878000000,
"RESPPALGUO_XAW_XCH52_N.WW": 328762000000,
"RESPPAAML1H_XAW_XCH52_N.WW": null,
"RESPPALGASMO_XAW_XCH1_N.WW": 0,
"RESPPALGTRF_XAW_XCH52_N.WW": 0,
"RESPPALGTRO_XAW_XCH52_N.WW": -7000000,
"RESPPALGUOB_XAW_XCH52_N.WW": 333083000000,
"RESPPALGUOMC_XAW_XCH1_N.WW": -322000000,
"RESPPALGUOMI_XAW_XCH1_N.WW": 331000000,
"RESPPALGUOMN_XAW_XCH1_N.WW": -332000000,
"RESPPALGASMO_XAW_XCH52_N.WW": -189808000000,
"RESPPALGUOMC_XAW_XCH52_N.WW": -3122000000,
"RESPPALGUOMI_XAW_XCH52_N.WW": -33351000000,
"RESPPALGUOMN_XAW_XCH52_N.WW": 32151000000
}
},
{
"date": "2026-08-05",
"values": {
"RESH4A_N.WW": 3797483000000,
"RESH4E_N.WW": 0,
"RESH4R_N.WW": 3002731000000,
"RESH4S_N.WW": 6800213000000,
"RESTBC_N.WW": 2474863000000,
"RESH4AO_N.WW": -175849000000,
"RESH4SC_N.WW": 6701382000000,
"RESH4SO_N.WW": 45873000000,
"RESPPAS_N.WW": 15200000000,
"RESTBHT_N.WW": 325000000,
"RESTBMG_N.WW": 11041000000,
"RESTBMT_N.WW": 53312000000,
"RESH4SCF_N.WW": -246000000,
"RESH4SCS_N.WW": 145000000,
"RESPPALD_N.WW": 5319000000,
"RESPPALG_N.WW": 6463160000000,
"RESPPAOF_N.WW": 19279000000,
"RESPPLLB_N.WW": 1178775000000,
"RESPPLLR_N.WW": 319368000000,
"RESPPAAEH_N.WW": 631000000,
"RESPPALDC_N.WW": 0,
"RESPPALDJ_N.WW": 16000000,
"RESPPALDN_N.WW": 5319000000,
"RESPPALDP_N.WW": 5257000000,
"RESPPALDQ_N.WW": 0,
"RESPPALDS_N.WW": 46000000,
"RESPPALSD_N.WW": -25724000000,
"RESPPALSP_N.WW": 212222000000,
"RESPPLLDA_N.WW": 0,
"RESPPLLDF_N.WW": 9457000000,
"RESPPLLDO_N.WW": 239993000000,
"RESPPLLDT_N.WW": 929325000000,
"RESPPLLRD_N.WW": 1650000000,
"RESPPLLRF_N.WW": 317718000000,
"RESH4A_XAW_N.WW": 3801739000000,
"RESH4E_XAW_N.WW": 0,
"RESH4R_XAW_N.WW": 2993349000000,
"RESH4S_XAW_N.WW": 6795087000000,
"RESPPALGAO_N.WW": 2347000000,
"RESPPALGTR_N.WW": 1000000,
"RESPPALGUO_N.WW": 4529958000000,
"RESTBC_XAW_N.WW": 2473058000000,
"RESH4AO_XAW_N.WW": -176778000000,
"RESH4SC_XAW_N.WW": 6696248000000,
"RESH4SO_XAW_N.WW": 44652000000,
"RESPPALGTRF_N.WW": 0,
"RESPPALGTRO_N.WW": 1000000,
"RESPPALGUOB_N.WW": 524877000000,
"RESPPAS_XAW_N.WW": 15200000000,
"RESTBHT_XAW_N.WW": 324000000,
"RESTBMG_XAW_N.WW": 11041000000,
"RESTBMT_XAW_N.WW": 53312000000,
"RESH4SCF_XAW_N.WW": -219000000,
"RESH4SCS_XAW_N.WW": 145000000,
"RESPPALD_XAW_N.WW": 6314000000,
"RESPPALGASMO_N.WW": 1930855000000,
"RESPPALGUOMC_N.WW": 107155000000,
"RESPPALGUOMI_N.WW": 276076000000,
"RESPPALGUOMN_N.WW": 3621850000000,
"RESPPALG_XAW_N.WW": 6458111000000,
"RESPPAOF_XAW_N.WW": 19287000000,
"RESPPLLB_XAW_N.WW": 1162409000000,
"RESPPLLR_XAW_N.WW": 342725000000,
"RESPPAAEH_XAW_N.WW": 628000000,
"RESPPALDC_XAW_N.WW": 0,
"RESPPALDJ_XAW_N.WW": 16000000,
"RESPPALDN_XAW_N.WW": 6314000000,
"RESPPALDP_XAW_N.WW": 6253000000,
"RESPPALDQ_XAW_N.WW": 0,
"RESPPALDS_XAW_N.WW": 45000000,
"RESPPALSD_XAW_N.WW": -25782000000,
"RESPPALSP_XAW_N.WW": 212397000000,
"RESPPLLDA_XAW_N.WW": 0,
"RESPPLLDF_XAW_N.WW": 9458000000,
"RESPPLLDO_XAW_N.WW": 245627000000,
"RESPPLLDT_XAW_N.WW": 907324000000,
"RESPPLLRD_XAW_N.WW": 1937000000,
"RESPPLLRF_XAW_N.WW": 340789000000,
"RESPPALGAO_XAW_N.WW": 2347000000,
"RESPPALGTR_XAW_N.WW": 2000000,
"RESPPALGUO_XAW_N.WW": 4524909000000,
"RESH4A_XAW_XCH1_N.WW": -11291000000,
"RESH4E_XAW_XCH1_N.WW": 0,
"RESH4R_XAW_XCH1_N.WW": 8779000000,
"RESH4S_XAW_XCH1_N.WW": -2513000000,
"RESPPAAML1H_XAW_N.WW": null,
"RESPPALGTRF_XAW_N.WW": 0,
"RESPPALGTRO_XAW_N.WW": 1000000,
"RESPPALGUOB_XAW_N.WW": 519698000000,
"RESTBC_XAW_XCH1_N.WW": 2088000000,
"RESH4AO_XAW_XCH1_N.WW": 2447000000,
"RESH4A_XAW_XCH52_N.WW": 443304000000,
"RESH4E_XAW_XCH52_N.WW": -2029000000,
"RESH4R_XAW_XCH52_N.WW": -339143000000,
"RESH4SC_XAW_XCH1_N.WW": -2955000000,
"RESH4SO_XAW_XCH1_N.WW": -570000000,
"RESH4S_XAW_XCH52_N.WW": 104160000000,
"RESPPALGASMO_XAW_N.WW": 1930855000000,
"RESPPALGUOMC_XAW_N.WW": 107285000000,
"RESPPALGUOMI_XAW_N.WW": 275745000000,
"RESPPALGUOMN_XAW_N.WW": 3622182000000,
"RESPPAS_XAW_XCH1_N.WW": 0,
"RESTBC_XAW_XCH52_N.WW": 70919000000,
"RESTBHT_XAW_XCH1_N.WW": 4000000,
"RESTBMG_XAW_XCH1_N.WW": 0,
"RESTBMT_XAW_XCH1_N.WW": 14000000,
"RESH4AO_XAW_XCH52_N.WW": 6895000000,
"RESH4SCF_XAW_XCH1_N.WW": 12000000,
"RESH4SCS_XAW_XCH1_N.WW": 13000000,
"RESH4SC_XAW_XCH52_N.WW": 103532000000,
"RESH4SO_XAW_XCH52_N.WW": 1209000000,
"RESPPALD_XAW_XCH1_N.WW": 598000000,
"RESPPALG_XAW_XCH1_N.WW": -2509000000,
"RESPPAOF_XAW_XCH1_N.WW": 429000000,
"RESPPAS_XAW_XCH52_N.WW": 0,
"RESPPLLB_XAW_XCH1_N.WW": -14610000000,
"RESPPLLR_XAW_XCH1_N.WW": -1222000000,
"RESTBHT_XAW_XCH52_N.WW": -88000000,
"RESTBMG_XAW_XCH52_N.WW": 0,
"RESTBMT_XAW_XCH52_N.WW": 728000000,
"RESH4SCF_XAW_XCH52_N.WW": 165000000,
"RESH4SCS_XAW_XCH52_N.WW": 95000000,
"RESPPAAEH_XAW_XCH1_N.WW": 1000000,
"RESPPALDC_XAW_XCH1_N.WW": 0,
"RESPPALDJ_XAW_XCH1_N.WW": 0,
"RESPPALDN_XAW_XCH1_N.WW": 598000000,
"RESPPALDP_XAW_XCH1_N.WW": 597000000,
"RESPPALDQ_XAW_XCH1_N.WW": 0,
"RESPPALDS_XAW_XCH1_N.WW": 2000000,
"RESPPALD_XAW_XCH52_N.WW": -681000000,
"RESPPALG_XAW_XCH52_N.WW": 130710000000,
"RESPPALSD_XAW_XCH1_N.WW": -58000000,
"RESPPALSP_XAW_XCH1_N.WW": -438000000,
"RESPPAOF_XAW_XCH52_N.WW": -100000000,
"RESPPLLB_XAW_XCH52_N.WW": 508584000000,
"RESPPLLDA_XAW_XCH1_N.WW": 0,
"RESPPLLDF_XAW_XCH1_N.WW": -11000000,
"RESPPLLDO_XAW_XCH1_N.WW": -11147000000,
"RESPPLLDT_XAW_XCH1_N.WW": -3452000000,
"RESPPLLRD_XAW_XCH1_N.WW": 793000000,
"RESPPLLRF_XAW_XCH1_N.WW": -2014000000,
"RESPPLLR_XAW_XCH52_N.WW": -140978000000,
"RESPPAAEH_XAW_XCH52_N.WW": -3844000000,
"RESPPALDC_XAW_XCH52_N.WW": 0,
"RESPPALDJ_XAW_XCH52_N.WW": -1395000000,
"RESPPALDN_XAW_XCH52_N.WW": -681000000,
"RESPPALDP_XAW_XCH52_N.WW": 713000000,
"RESPPALDQ_XAW_XCH52_N.WW": 0,
"RESPPALDS_XAW_XCH52_N.WW": 1000000,
"RESPPALGAO_XAW_XCH1_N.WW": 0,
"RESPPALGTR_XAW_XCH1_N.WW": -4000000,
"RESPPALGUO_XAW_XCH1_N.WW": 5453000000,
"RESPPALSD_XAW_XCH52_N.WW": -2049000000,
"RESPPALSP_XAW_XCH52_N.WW": -22074000000,
"RESPPLLDA_XAW_XCH52_N.WW": 0,
"RESPPLLDF_XAW_XCH52_N.WW": 24000000,
"RESPPLLDO_XAW_XCH52_N.WW": 22280000000,
"RESPPLLDT_XAW_XCH52_N.WW": 486281000000,
"RESPPLLRD_XAW_XCH52_N.WW": -113602000000,
"RESPPLLRF_XAW_XCH52_N.WW": -27375000000,
"RESPPAAML1H_XAW_XCH1_N.WW": null,
"RESPPALGAO_XAW_XCH52_N.WW": 0,
"RESPPALGTRF_XAW_XCH1_N.WW": 0,
"RESPPALGTRO_XAW_XCH1_N.WW": -5000000,
"RESPPALGTR_XAW_XCH52_N.WW": 1000000,
"RESPPALGUOB_XAW_XCH1_N.WW": 5179000000,
"RESPPALGUO_XAW_XCH52_N.WW": 320527000000,
"RESPPAAML1H_XAW_XCH52_N.WW": null,
"RESPPALGASMO_XAW_XCH1_N.WW": -7962000000,
"RESPPALGTRF_XAW_XCH52_N.WW": 0,
"RESPPALGTRO_XAW_XCH52_N.WW": 0,
"RESPPALGUOB_XAW_XCH52_N.WW": 324205000000,
"RESPPALGUOMC_XAW_XCH1_N.WW": 275000000,
"RESPPALGUOMI_XAW_XCH1_N.WW": 1990000000,
"RESPPALGUOMN_XAW_XCH1_N.WW": -1990000000,
"RESPPALGASMO_XAW_XCH52_N.WW": -189817000000,
"RESPPALGUOMC_XAW_XCH52_N.WW": -2478000000,
"RESPPALGUOMI_XAW_XCH52_N.WW": -33682000000,
"RESPPALGUOMN_XAW_XCH52_N.WW": 32483000000
}
},
{
"date": "2026-07-29",
"values": {
"RESH4A_N.WW": 3845287000000,
"RESH4E_N.WW": 0,
"RESH4R_N.WW": 2944541000000,
"RESH4S_N.WW": 6789828000000,
"RESTBC_N.WW": 2472177000000,
"RESH4AO_N.WW": -178368000000,
"RESH4SC_N.WW": 6691432000000,
"RESH4SO_N.WW": 44570000000,
"RESPPAS_N.WW": 15200000000,
"RESTBHT_N.WW": 323000000,
"RESTBMG_N.WW": 11041000000,
"RESTBMT_N.WW": 53298000000,
"RESH4SCF_N.WW": -244000000,
"RESH4SCS_N.WW": 132000000,
"RESPPALD_N.WW": 6565000000,
"RESPPALG_N.WW": 6452856000000,
"RESPPAOF_N.WW": 18857000000,
"RESPPLLB_N.WW": 1214102000000,
"RESPPLLR_N.WW": 337051000000,
"RESPPAAEH_N.WW": 628000000,
"RESPPALDC_N.WW": 0,
"RESPPALDJ_N.WW": 16000000,
"RESPPALDN_N.WW": 6565000000,
"RESPPALDP_N.WW": 6506000000,
"RESPPALDQ_N.WW": 0,
"RESPPALDS_N.WW": 44000000,
"RESPPALSD_N.WW": -25646000000,
"RESPPALSP_N.WW": 212568000000,
"RESPPLLDA_N.WW": 0,
"RESPPLLDF_N.WW": 9452000000,
"RESPPLLDO_N.WW": 234208000000,
"RESPPLLDT_N.WW": 970442000000,
"RESPPLLRD_N.WW": 2576000000,
"RESPPLLRF_N.WW": 334475000000,
"RESH4A_XAW_N.WW": 3813030000000,
"RESH4E_XAW_N.WW": 0,
"RESH4R_XAW_N.WW": 2984570000000,
"RESH4S_XAW_N.WW": 6797600000000,
"RESPPALGAO_N.WW": 2347000000,
"RESPPALGTR_N.WW": 3000000,
"RESPPALGUO_N.WW": 4519654000000,
"RESTBC_XAW_N.WW": 2470970000000,
"RESH4AO_XAW_N.WW": -179225000000,
"RESH4SC_XAW_N.WW": 6699203000000,
"RESH4SO_XAW_N.WW": 45222000000,
"RESPPALGTRF_N.WW": 0,
"RESPPALGTRO_N.WW": 3000000,
"RESPPALGUOB_N.WW": 514519000000,
"RESPPAS_XAW_N.WW": 15200000000,
"RESTBHT_XAW_N.WW": 320000000,
"RESTBMG_XAW_N.WW": 11041000000,
"RESTBMT_XAW_N.WW": 53298000000,
"RESH4SCF_XAW_N.WW": -231000000,
"RESH4SCS_XAW_N.WW": 132000000,
"RESPPALD_XAW_N.WW": 5716000000,
"RESPPALGASMO_N.WW": 1930855000000,
"RESPPALGUOMC_N.WW": 107209000000,
"RESPPALGUOMI_N.WW": 273755000000,
"RESPPALGUOMN_N.WW": 3624172000000,
"RESPPALG_XAW_N.WW": 6460620000000,
"RESPPAOF_XAW_N.WW": 18858000000,
"RESPPLLB_XAW_N.WW": 1177019000000,
"RESPPLLR_XAW_N.WW": 343947000000,
"RESPPAAEH_XAW_N.WW": 627000000,
"RESPPALDC_XAW_N.WW": 0,
"RESPPALDJ_XAW_N.WW": 16000000,
"RESPPALDN_XAW_N.WW": 5716000000,
"RESPPALDP_XAW_N.WW": 5656000000,
"RESPPALDQ_XAW_N.WW": 0,
"RESPPALDS_XAW_N.WW": 43000000,
"RESPPALSD_XAW_N.WW": -25724000000,
"RESPPALSP_XAW_N.WW": 212835000000,
"RESPPLLDA_XAW_N.WW": 0,
"RESPPLLDF_XAW_N.WW": 9469000000,
"RESPPLLDO_XAW_N.WW": 256774000000,
"RESPPLLDT_XAW_N.WW": 910776000000,
"RESPPLLRD_XAW_N.WW": 1144000000,
"RESPPLLRF_XAW_N.WW": 342803000000,
"RESPPALGAO_XAW_N.WW": 2347000000,
"RESPPALGTR_XAW_N.WW": 6000000,
"RESPPALGUO_XAW_N.WW": 4519456000000,
"RESH4A_XAW_XCH1_N.WW": 78780000000,
"RESH4E_XAW_XCH1_N.WW": 0,
"RESH4R_XAW_XCH1_N.WW": -77579000000,
"RESH4S_XAW_XCH1_N.WW": 1200000000,
"RESPPAAML1H_XAW_N.WW": null,
"RESPPALGTRF_XAW_N.WW": 0,
"RESPPALGTRO_XAW_N.WW": 6000000,
"RESPPALGUOB_XAW_N.WW": 514519000000,
"RESTBC_XAW_XCH1_N.WW": 69000000,
"RESH4AO_XAW_XCH1_N.WW": -1867000000,
"RESH4A_XAW_XCH52_N.WW": 465665000000,
"RESH4E_XAW_XCH52_N.WW": -2029000000,
"RESH4R_XAW_XCH52_N.WW": -362844000000,
"RESH4SC_XAW_XCH1_N.WW": 1270000000,
"RESH4SO_XAW_XCH1_N.WW": 1259000000,
"RESH4S_XAW_XCH52_N.WW": 102821000000,
"RESPPALGASMO_XAW_N.WW": 1938817000000,
"RESPPALGUOMC_XAW_N.WW": 107010000000,
"RESPPALGUOMI_XAW_N.WW": 273755000000,
"RESPPALGUOMN_XAW_N.WW": 3624172000000,
"RESPPAS_XAW_XCH1_N.WW": 0,
"RESTBC_XAW_XCH52_N.WW": 71550000000,
"RESTBHT_XAW_XCH1_N.WW": -4000000,
"RESTBMG_XAW_XCH1_N.WW": 0,
"RESTBMT_XAW_XCH1_N.WW": 14000000,
"RESH4AO_XAW_XCH52_N.WW": 6579000000,
"RESH4SCF_XAW_XCH1_N.WW": 54000000,
"RESH4SCS_XAW_XCH1_N.WW": -246000000,
"RESH4SC_XAW_XCH52_N.WW": 102713000000,
"RESH4SO_XAW_XCH52_N.WW": 2813000000,
"RESPPALD_XAW_XCH1_N.WW": 990000000,
"RESPPALG_XAW_XCH1_N.WW": -319000000,
"RESPPAOF_XAW_XCH1_N.WW": -84000000,
"RESPPAS_XAW_XCH52_N.WW": 0,
"RESPPLLB_XAW_XCH1_N.WW": 89880000000,
"RESPPLLR_XAW_XCH1_N.WW": -9297000000,
"RESTBHT_XAW_XCH52_N.WW": -103000000,
"RESTBMG_XAW_XCH52_N.WW": 0,
"RESTBMT_XAW_XCH52_N.WW": 718000000,
"RESH4SCF_XAW_XCH52_N.WW": 226000000,
"RESH4SCS_XAW_XCH52_N.WW": 75000000,
"RESPPAAEH_XAW_XCH1_N.WW": -1000000,
"RESPPALDC_XAW_XCH1_N.WW": 0,
"RESPPALDJ_XAW_XCH1_N.WW": 0,
"RESPPALDN_XAW_XCH1_N.WW": 990000000,
"RESPPALDP_XAW_XCH1_N.WW": 992000000,
"RESPPALDQ_XAW_XCH1_N.WW": 0,
"RESPPALDS_XAW_XCH1_N.WW": -3000000,
"RESPPALD_XAW_XCH52_N.WW": -1229000000,
"RESPPALG_XAW_XCH52_N.WW": 128741000000,
"RESPPALSD_XAW_XCH1_N.WW": 18000000,
"RESPPALSP_XAW_XCH1_N.WW": -490000000,
"RESPPAOF_XAW_XCH52_N.WW": -611000000,
"RESPPLLB_XAW_XCH52_N.WW": 571430000000,
"RESPPLLDA_XAW_XCH1_N.WW": 0,
"RESPPLLDF_XAW_XCH1_N.WW": -582000000,
"RESPPLLDO_XAW_XCH1_N.WW": 9309000000,
"RESPPLLDT_XAW_XCH1_N.WW": 81153000000,
"RESPPLLRD_XAW_XCH1_N.WW": 986000000,
"RESPPLLRF_XAW_XCH1_N.WW": -10283000000,
"RESPPLLR_XAW_XCH52_N.WW": -181761000000,
"RESPPAAEH_XAW_XCH52_N.WW": -3836000000,
"RESPPALDC_XAW_XCH52_N.WW": 0,
"RESPPALDJ_XAW_XCH52_N.WW": -1395000000,
"RESPPALDN_XAW_XCH52_N.WW": -1229000000,
"RESPPALDP_XAW_XCH52_N.WW": 165000000,
"RESPPALDQ_XAW_XCH52_N.WW": 0,
"RESPPALDS_XAW_XCH52_N.WW": 1000000,
"RESPPALGAO_XAW_XCH1_N.WW": 0,
"RESPPALGTR_XAW_XCH1_N.WW": 6000000,
"RESPPALGUO_XAW_XCH1_N.WW": 7693000000,
"RESPPALSD_XAW_XCH52_N.WW": -2018000000,
"RESPPALSP_XAW_XCH52_N.WW": -22064000000,
"RESPPLLDA_XAW_XCH52_N.WW": 0,
"RESPPLLDF_XAW_XCH52_N.WW": 31000000,
"RESPPLLDO_XAW_XCH52_N.WW": 31131000000,
"RESPPLLDT_XAW_XCH52_N.WW": 540269000000,
"RESPPLLRD_XAW_XCH52_N.WW": -153238000000,
"RESPPLLRF_XAW_XCH52_N.WW": -28523000000,
"RESPPAAML1H_XAW_XCH1_N.WW": null,
"RESPPALGAO_XAW_XCH52_N.WW": 0,
"RESPPALGTRF_XAW_XCH1_N.WW": 0,
"RESPPALGTRO_XAW_XCH1_N.WW": 6000000,
"RESPPALGTR_XAW_XCH52_N.WW": 5000000,
"RESPPALGUOB_XAW_XCH1_N.WW": 7153000000,
"RESPPALGUO_XAW_XCH52_N.WW": 312612000000,
"RESPPAAML1H_XAW_XCH52_N.WW": null,
"RESPPALGASMO_XAW_XCH1_N.WW": -8013000000,
"RESPPALGTRF_XAW_XCH52_N.WW": 0,
"RESPPALGTRO_XAW_XCH52_N.WW": 5000000,
"RESPPALGUOB_XAW_XCH52_N.WW": 319026000000,
"RESPPALGUOMC_XAW_XCH1_N.WW": 540000000,
"RESPPALGUOMI_XAW_XCH1_N.WW": 0,
"RESPPALGUOMN_XAW_XCH1_N.WW": 0,
"RESPPALGASMO_XAW_XCH52_N.WW": -183871000000,
"RESPPALGUOMC_XAW_XCH52_N.WW": -2493000000,
"RESPPALGUOMI_XAW_XCH52_N.WW": -34242000000,
"RESPPALGUOMN_XAW_XCH52_N.WW": 30321000000
}
},
{
"date": "2026-07-22",
"values": {
"RESH4A_N.WW": 3734003000000,
"RESH4E_N.WW": 0,
"RESH4R_N.WW": 3064896000000,
"RESH4S_N.WW": 6798899000000,
"RESTBC_N.WW": 2470924000000,
"RESH4AO_N.WW": -176522000000,
"RESH4SC_N.WW": 6700462000000,
"RESH4SO_N.WW": 44608000000,
"RESPPAS_N.WW": 15200000000,
"RESTBHT_N.WW": 319000000,
"RESTBMG_N.WW": 11041000000,
"RESTBMT_N.WW": 53284000000,
"RESH4SCF_N.WW": -339000000,
"RESH4SCS_N.WW": 378000000,
"RESPPALD_N.WW": 4950000000,
"RESPPALG_N.WW": 6462797000000,
"RESPPAOF_N.WW": 18912000000,
"RESPPLLB_N.WW": 1086578000000,
"RESPPLLR_N.WW": 352703000000,
"RESPPAAEH_N.WW": 627000000,
"RESPPALDC_N.WW": 0,
"RESPPALDJ_N.WW": 16000000,
"RESPPALDN_N.WW": 4950000000,
"RESPPALDP_N.WW": 4885000000,
"RESPPALDQ_N.WW": 0,
"RESPPALDS_N.WW": 50000000,
"RESPPALSD_N.WW": -25705000000,
"RESPPALSP_N.WW": 213147000000,
"RESPPLLDA_N.WW": 0,
"RESPPLLDF_N.WW": 9448000000,
"RESPPLLDO_N.WW": 241713000000,
"RESPPLLDT_N.WW": 835417000000,
"RESPPLLRD_N.WW": 376000000,
"RESPPLLRF_N.WW": 352327000000,
"RESH4A_XAW_N.WW": 3734250000000,
"RESH4E_XAW_N.WW": 0,
"RESH4R_XAW_N.WW": 3062149000000,
"RESH4S_XAW_N.WW": 6796400000000,
"RESPPALGAO_N.WW": 2347000000,
"RESPPALGTR_N.WW": 0,
"RESPPALGUO_N.WW": 4515661000000,
"RESTBC_XAW_N.WW": 2470901000000,
"RESH4AO_XAW_N.WW": -177358000000,
"RESH4SC_XAW_N.WW": 6697933000000,
"RESH4SO_XAW_N.WW": 43963000000,
"RESPPALGTRF_N.WW": 0,
"RESPPALGTRO_N.WW": 0,
"RESPPALGUOB_N.WW": 511066000000,
"RESPPAS_XAW_N.WW": 15200000000,
"RESTBHT_XAW_N.WW": 324000000,
"RESTBMG_XAW_N.WW": 11041000000,
"RESTBMT_XAW_N.WW": 53284000000,
"RESH4SCF_XAW_N.WW": -285000000,
"RESH4SCS_XAW_N.WW": 378000000,
"RESPPALD_XAW_N.WW": 4726000000,
"RESPPALGASMO_N.WW": 1944788000000,
"RESPPALGUOMC_N.WW": 106669000000,
"RESPPALGUOMI_N.WW": 273755000000,
"RESPPALGUOMN_N.WW": 3624172000000,
"RESPPALG_XAW_N.WW": 6460939000000,
"RESPPAOF_XAW_N.WW": 18942000000,
"RESPPLLB_XAW_N.WW": 1087139000000,
"RESPPLLR_XAW_N.WW": 353244000000,
"RESPPAAEH_XAW_N.WW": 628000000,
"RESPPALDC_XAW_N.WW": 0,
"RESPPALDJ_XAW_N.WW": 16000000,
"RESPPALDN_XAW_N.WW": 4726000000,
"RESPPALDP_XAW_N.WW": 4664000000,
"RESPPALDQ_XAW_N.WW": 0,
"RESPPALDS_XAW_N.WW": 46000000,
"RESPPALSD_XAW_N.WW": -25742000000,
"RESPPALSP_XAW_N.WW": 213325000000,
"RESPPLLDA_XAW_N.WW": 0,
"RESPPLLDF_XAW_N.WW": 10051000000,
"RESPPLLDO_XAW_N.WW": 247465000000,
"RESPPLLDT_XAW_N.WW": 829623000000,
"RESPPLLRD_XAW_N.WW": 158000000,
"RESPPLLRF_XAW_N.WW": 353086000000,
"RESPPALGAO_XAW_N.WW": 2347000000,
"RESPPALGTR_XAW_N.WW": 0,
"RESPPALGUO_XAW_N.WW": 4511763000000,
"RESH4A_XAW_XCH1_N.WW": 82330000000,
"RESH4E_XAW_XCH1_N.WW": 0,
"RESH4R_XAW_XCH1_N.WW": -80572000000,
"RESH4S_XAW_XCH1_N.WW": 1759000000,
"RESPPAAML1H_XAW_N.WW": null,
"RESPPALGTRF_XAW_N.WW": 0,
"RESPPALGTRO_XAW_N.WW": 0,
"RESPPALGUOB_XAW_N.WW": 507366000000,
"RESTBC_XAW_XCH1_N.WW": -1563000000,
"RESH4AO_XAW_XCH1_N.WW": 2990000000,
"RESH4A_XAW_XCH52_N.WW": 386648000000,
"RESH4E_XAW_XCH52_N.WW": -2029000000,
"RESH4R_XAW_XCH52_N.WW": -300128000000,
"RESH4SC_XAW_XCH1_N.WW": 1770000000,
"RESH4SO_XAW_XCH1_N.WW": 1391000000,
"RESH4S_XAW_XCH52_N.WW": 86521000000,
"RESPPALGASMO_XAW_N.WW": 1946830000000,
"RESPPALGUOMC_XAW_N.WW": 106470000000,
"RESPPALGUOMI_XAW_N.WW": 273755000000,
"RESPPALGUOMN_XAW_N.WW": 3624172000000,
"RESPPAS_XAW_XCH1_N.WW": 0,
"RESTBC_XAW_XCH52_N.WW": 72786000000,
"RESTBHT_XAW_XCH1_N.WW": -8000000,
"RESTBMG_XAW_XCH1_N.WW": 0,
"RESTBMT_XAW_XCH1_N.WW": 14000000,
"RESH4AO_XAW_XCH52_N.WW": 4265000000,
"RESH4SCF_XAW_XCH1_N.WW": -32000000,
"RESH4SCS_XAW_XCH1_N.WW": 243000000,
"RESH4SC_XAW_XCH52_N.WW": 86373000000,
"RESH4SO_XAW_XCH52_N.WW": 1043000000,
"RESPPALD_XAW_XCH1_N.WW": -927000000,
"RESPPALG_XAW_XCH1_N.WW": 1413000000,
"RESPPAOF_XAW_XCH1_N.WW": -25000000,
"RESPPAS_XAW_XCH52_N.WW": 0,
"RESPPLLB_XAW_XCH1_N.WW": 75969000000,
"RESPPLLR_XAW_XCH1_N.WW": 4942000000,
"RESTBHT_XAW_XCH52_N.WW": -102000000,
"RESTBMG_XAW_XCH52_N.WW": 0,
"RESTBMT_XAW_XCH52_N.WW": 708000000,
"RESH4SCF_XAW_XCH52_N.WW": 16000000,
"RESH4SCS_XAW_XCH52_N.WW": 294000000,
"RESPPAAEH_XAW_XCH1_N.WW": 0,
"RESPPALDC_XAW_XCH1_N.WW": 0,
"RESPPALDJ_XAW_XCH1_N.WW": -1000000,
"RESPPALDN_XAW_XCH1_N.WW": -927000000,
"RESPPALDP_XAW_XCH1_N.WW": -931000000,
"RESPPALDQ_XAW_XCH1_N.WW": 0,
"RESPPALDS_XAW_XCH1_N.WW": 6000000,
"RESPPALD_XAW_XCH52_N.WW": -1914000000,
"RESPPALG_XAW_XCH52_N.WW": 115065000000,
"RESPPALSD_XAW_XCH1_N.WW": 69000000,
"RESPPALSP_XAW_XCH1_N.WW": -360000000,
"RESPPAOF_XAW_XCH52_N.WW": -560000000,
"RESPPLLB_XAW_XCH52_N.WW": 530350000000,
"RESPPLLDA_XAW_XCH1_N.WW": 0,
"RESPPLLDF_XAW_XCH1_N.WW": 310000000,
"RESPPLLDO_XAW_XCH1_N.WW": 2254000000,
"RESPPLLDT_XAW_XCH1_N.WW": 73405000000,
"RESPPLLRD_XAW_XCH1_N.WW": -1075000000,
"RESPPLLRF_XAW_XCH1_N.WW": 6017000000,
"RESPPLLR_XAW_XCH52_N.WW": -218623000000,
"RESPPAAEH_XAW_XCH52_N.WW": -3920000000,
"RESPPALDC_XAW_XCH52_N.WW": 0,
"RESPPALDJ_XAW_XCH52_N.WW": -1413000000,
"RESPPALDN_XAW_XCH52_N.WW": -1914000000,
"RESPPALDP_XAW_XCH52_N.WW": -512000000,
"RESPPALDQ_XAW_XCH52_N.WW": 0,
"RESPPALDS_XAW_XCH52_N.WW": 11000000,
"RESPPALGAO_XAW_XCH1_N.WW": 0,
"RESPPALGTR_XAW_XCH1_N.WW": -29000000,
"RESPPALGUO_XAW_XCH1_N.WW": 2973000000,
"RESPPALSD_XAW_XCH52_N.WW": -1937000000,
"RESPPALSP_XAW_XCH52_N.WW": -22275000000,
"RESPPLLDA_XAW_XCH52_N.WW": 0,
"RESPPLLDF_XAW_XCH52_N.WW": 616000000,
"RESPPLLDO_XAW_XCH52_N.WW": 23287000000,
"RESPPLLDT_XAW_XCH52_N.WW": 506447000000,
"RESPPLLRD_XAW_XCH52_N.WW": -198589000000,
"RESPPLLRF_XAW_XCH52_N.WW": -20034000000,
"RESPPAAML1H_XAW_XCH1_N.WW": null,
"RESPPALGAO_XAW_XCH52_N.WW": 0,
"RESPPALGTRF_XAW_XCH1_N.WW": 0,
"RESPPALGTRO_XAW_XCH1_N.WW": -29000000,
"RESPPALGTR_XAW_XCH52_N.WW": -1000000,
"RESPPALGUOB_XAW_XCH1_N.WW": 2428000000,
"RESPPALGUO_XAW_XCH52_N.WW": 305115000000,
"RESPPAAML1H_XAW_XCH52_N.WW": null,
"RESPPALGASMO_XAW_XCH1_N.WW": -1559000000,
"RESPPALGTRF_XAW_XCH52_N.WW": 0,
"RESPPALGTRO_XAW_XCH52_N.WW": -1000000,
"RESPPALGUOB_XAW_XCH52_N.WW": 311873000000,
"RESPPALGUOMC_XAW_XCH1_N.WW": -2449000000,
"RESPPALGUOMI_XAW_XCH1_N.WW": -7610000000,
"RESPPALGUOMN_XAW_XCH1_N.WW": 10604000000,
"RESPPALGASMO_XAW_XCH52_N.WW": -190049000000,
"RESPPALGUOMC_XAW_XCH52_N.WW": -2836000000,
"RESPPALGUOMI_XAW_XCH52_N.WW": -34242000000,
"RESPPALGUOMN_XAW_XCH52_N.WW": 30321000000
}
},
{
"date": "2026-07-15",
"values": {
"RESH4A_N.WW": 3694121000000,
"RESH4E_N.WW": 0,
"RESH4R_N.WW": 3100448000000,
"RESH4S_N.WW": 6794569000000,
"RESTBC_N.WW": 2471831000000,
"RESH4AO_N.WW": -179452000000,
"RESH4SC_N.WW": 6696094000000,
"RESH4SO_N.WW": 42368000000,
"RESPPAS_N.WW": 15200000000,
"RESTBHT_N.WW": 324000000,
"RESTBMG_N.WW": 11041000000,
"RESTBMT_N.WW": 53270000000,
"RESH4SCF_N.WW": -313000000,
"RESH4SCS_N.WW": 135000000,
"RESPPALD_N.WW": 4813000000,
"RESPPALG_N.WW": 6460625000000,
"RESPPAOF_N.WW": 18965000000,
"RESPPLLB_N.WW": 1047338000000,
"RESPPLLR_N.WW": 354079000000,
"RESPPAAEH_N.WW": 628000000,
"RESPPALDC_N.WW": 0,
"RESPPALDJ_N.WW": 16000000,
"RESPPALDN_N.WW": 4813000000,
"RESPPALDP_N.WW": 4755000000,
"RESPPALDQ_N.WW": 0,
"RESPPALDS_N.WW": 42000000,
"RESPPALSD_N.WW": -25834000000,
"RESPPALSP_N.WW": 213569000000,
"RESPPLLDA_N.WW": 0,
"RESPPLLDF_N.WW": 9483000000,
"RESPPLLDO_N.WW": 241879000000,
"RESPPLLDT_N.WW": 795976000000,
"RESPPLLRD_N.WW": 151000000,
"RESPPLLRF_N.WW": 353928000000,
"RESH4A_XAW_N.WW": 3651920000000,
"RESH4E_XAW_N.WW": 0,
"RESH4R_XAW_N.WW": 3142721000000,
"RESH4S_XAW_N.WW": 6794641000000,
"RESPPALGAO_N.WW": 2347000000,
"RESPPALGTR_N.WW": 102000000,
"RESPPALGUO_N.WW": 4509941000000,
"RESTBC_XAW_N.WW": 2472464000000,
"RESH4AO_XAW_N.WW": -180348000000,
"RESH4SC_XAW_N.WW": 6696163000000,
"RESH4SO_XAW_N.WW": 42572000000,
"RESPPALGTRF_N.WW": 0,
"RESPPALGTRO_N.WW": 102000000,
"RESPPALGUOB_N.WW": 505886000000,
"RESPPAS_XAW_N.WW": 15200000000,
"RESTBHT_XAW_N.WW": 332000000,
"RESTBMG_XAW_N.WW": 11041000000,
"RESTBMT_XAW_N.WW": 53270000000,
"RESH4SCF_XAW_N.WW": -253000000,
"RESH4SCS_XAW_N.WW": 135000000,
"RESPPALD_XAW_N.WW": 5653000000,
"RESPPALGASMO_N.WW": 1948337000000,
"RESPPALGUOMC_N.WW": 106129000000,
"RESPPALGUOMI_N.WW": 273755000000,
"RESPPALGUOMN_N.WW": 3624172000000,
"RESPPALG_XAW_N.WW": 6459526000000,
"RESPPAOF_XAW_N.WW": 18967000000,
"RESPPLLB_XAW_N.WW": 1011170000000,
"RESPPLLR_XAW_N.WW": 348302000000,
"RESPPAAEH_XAW_N.WW": 628000000,
"RESPPALDC_XAW_N.WW": 0,
"RESPPALDJ_XAW_N.WW": 17000000,
"RESPPALDN_XAW_N.WW": 5653000000,
"RESPPALDP_XAW_N.WW": 5595000000,
"RESPPALDQ_XAW_N.WW": 0,
"RESPPALDS_XAW_N.WW": 40000000,
"RESPPALSD_XAW_N.WW": -25811000000,
"RESPPALSP_XAW_N.WW": 213685000000,
"RESPPLLDA_XAW_N.WW": 0,
"RESPPLLDF_XAW_N.WW": 9741000000,
"RESPPLLDO_XAW_N.WW": 245211000000,
"RESPPLLDT_XAW_N.WW": 756218000000,
"RESPPLLRD_XAW_N.WW": 1233000000,
"RESPPLLRF_XAW_N.WW": 347069000000,
"RESPPALGAO_XAW_N.WW": 2347000000,
"RESPPALGTR_XAW_N.WW": 29000000,
"RESPPALGUO_XAW_N.WW": 4508790000000,
"RESH4A_XAW_XCH1_N.WW": -33169000000,
"RESH4E_XAW_XCH1_N.WW": 0,
"RESH4R_XAW_XCH1_N.WW": 43810000000,
"RESH4S_XAW_XCH1_N.WW": 10641000000,
"RESPPAAML1H_XAW_N.WW": null,
"RESPPALGTRF_XAW_N.WW": 0,
"RESPPALGTRO_XAW_N.WW": 29000000,
"RESPPALGUOB_XAW_N.WW": 504938000000,
"RESTBC_XAW_XCH1_N.WW": -2389000000,
"RESH4AO_XAW_XCH1_N.WW": -1609000000,
"RESH4A_XAW_XCH52_N.WW": 337850000000,
"RESH4E_XAW_XCH52_N.WW": -2029000000,
"RESH4R_XAW_XCH52_N.WW": -256101000000,
"RESH4SC_XAW_XCH1_N.WW": 10624000000,
"RESH4SO_XAW_XCH1_N.WW": 2877000000,
"RESH4S_XAW_XCH52_N.WW": 81749000000,
"RESPPALGASMO_XAW_N.WW": 1948389000000,
"RESPPALGUOMC_XAW_N.WW": 108919000000,
"RESPPALGUOMI_XAW_N.WW": 281365000000,
"RESPPALGUOMN_XAW_N.WW": 3613568000000,
"RESPPAS_XAW_XCH1_N.WW": 0,
"RESTBC_XAW_XCH52_N.WW": 72239000000,
"RESTBHT_XAW_XCH1_N.WW": -12000000,
"RESTBMG_XAW_XCH1_N.WW": 0,
"RESTBMT_XAW_XCH1_N.WW": 14000000,
"RESH4AO_XAW_XCH52_N.WW": 3578000000,
"RESH4SCF_XAW_XCH1_N.WW": 21000000,
"RESH4SCS_XAW_XCH1_N.WW": -35000000,
"RESH4SC_XAW_XCH52_N.WW": 81583000000,
"RESH4SO_XAW_XCH52_N.WW": 1287000000,
"RESPPALD_XAW_XCH1_N.WW": -1007000000,
"RESPPALG_XAW_XCH1_N.WW": 9082000000,
"RESPPAOF_XAW_XCH1_N.WW": 2000000,
"RESPPAS_XAW_XCH52_N.WW": 0,
"RESPPLLB_XAW_XCH1_N.WW": -28657000000,
"RESPPLLR_XAW_XCH1_N.WW": -502000000,
"RESTBHT_XAW_XCH52_N.WW": -103000000,
"RESTBMG_XAW_XCH52_N.WW": 0,
"RESTBMT_XAW_XCH52_N.WW": 698000000,
"RESH4SCF_XAW_XCH52_N.WW": 111000000,
"RESH4SCS_XAW_XCH52_N.WW": 72000000,
"RESPPAAEH_XAW_XCH1_N.WW": 0,
"RESPPALDC_XAW_XCH1_N.WW": 0,
"RESPPALDJ_XAW_XCH1_N.WW": -2000000,
"RESPPALDN_XAW_XCH1_N.WW": -1007000000,
"RESPPALDP_XAW_XCH1_N.WW": -1012000000,
"RESPPALDQ_XAW_XCH1_N.WW": 0,
"RESPPALDS_XAW_XCH1_N.WW": 6000000,
"RESPPALD_XAW_XCH52_N.WW": -1794000000,
"RESPPALG_XAW_XCH52_N.WW": 110625000000,
"RESPPALSD_XAW_XCH1_N.WW": -63000000,
"RESPPALSP_XAW_XCH1_N.WW": -278000000,
"RESPPAOF_XAW_XCH52_N.WW": -532000000,
"RESPPLLB_XAW_XCH52_N.WW": 482747000000,
"RESPPLLDA_XAW_XCH1_N.WW": 0,
"RESPPLLDF_XAW_XCH1_N.WW": 296000000,
"RESPPLLDO_XAW_XCH1_N.WW": -11110000000,
"RESPPLLDT_XAW_XCH1_N.WW": -17844000000,
"RESPPLLRD_XAW_XCH1_N.WW": -1517000000,
"RESPPLLRF_XAW_XCH1_N.WW": 1015000000,
"RESPPLLR_XAW_XCH52_N.WW": -218581000000,
"RESPPAAEH_XAW_XCH52_N.WW": -4378000000,
"RESPPALDC_XAW_XCH52_N.WW": 0,
"RESPPALDJ_XAW_XCH52_N.WW": -1421000000,
"RESPPALDN_XAW_XCH52_N.WW": -1794000000,
"RESPPALDP_XAW_XCH52_N.WW": -374000000,
"RESPPALDQ_XAW_XCH52_N.WW": 0,
"RESPPALDS_XAW_XCH52_N.WW": 0,
"RESPPALGAO_XAW_XCH1_N.WW": 0,
"RESPPALGTR_XAW_XCH1_N.WW": 28000000,
"RESPPALGUO_XAW_XCH1_N.WW": 9091000000,
"RESPPALSD_XAW_XCH52_N.WW": -1998000000,
"RESPPALSP_XAW_XCH52_N.WW": -22367000000,
"RESPPLLDA_XAW_XCH52_N.WW": 0,
"RESPPLLDF_XAW_XCH52_N.WW": 305000000,
"RESPPLLDO_XAW_XCH52_N.WW": 22472000000,
"RESPPLLDT_XAW_XCH52_N.WW": 459971000000,
"RESPPLLRD_XAW_XCH52_N.WW": -190403000000,
"RESPPLLRF_XAW_XCH52_N.WW": -28178000000,
"RESPPAAML1H_XAW_XCH1_N.WW": null,
"RESPPALGAO_XAW_XCH52_N.WW": 0,
"RESPPALGTRF_XAW_XCH1_N.WW": 0,
"RESPPALGTRO_XAW_XCH1_N.WW": 28000000,
"RESPPALGTR_XAW_XCH52_N.WW": 26000000,
"RESPPALGUOB_XAW_XCH1_N.WW": 8534000000,
"RESPPALGUO_XAW_XCH52_N.WW": 300712000000,
"RESPPAAML1H_XAW_XCH52_N.WW": null,
"RESPPALGASMO_XAW_XCH1_N.WW": -9000000,
"RESPPALGTRF_XAW_XCH52_N.WW": 0,
"RESPPALGTRO_XAW_XCH52_N.WW": 26000000,
"RESPPALGUOB_XAW_XCH52_N.WW": 309445000000,
"RESPPALGUOMC_XAW_XCH1_N.WW": 58000000,
"RESPPALGUOMI_XAW_XCH1_N.WW": -1269000000,
"RESPPALGUOMN_XAW_XCH1_N.WW": 1767000000,
"RESPPALGASMO_XAW_XCH52_N.WW": -190087000000,
"RESPPALGUOMC_XAW_XCH52_N.WW": -2222000000,
"RESPPALGUOMI_XAW_XCH52_N.WW": -32371000000,
"RESPPALGUOMN_XAW_XCH52_N.WW": 25860000000
}
},
{
"date": "2026-07-08",
"values": {
"RESH4A_N.WW": 3649723000000,
"RESH4E_N.WW": 0,
"RESH4R_N.WW": 3137377000000,
"RESH4S_N.WW": 6787100000000,
"RESTBC_N.WW": 2474567000000,
"RESH4AO_N.WW": -177959000000,
"RESH4SC_N.WW": 6688711000000,
"RESH4SO_N.WW": 40773000000,
"RESPPAS_N.WW": 15200000000,
"RESTBHT_N.WW": 333000000,
"RESTBMG_N.WW": 11041000000,
"RESTBMT_N.WW": 53256000000,
"RESH4SCF_N.WW": -353000000,
"RESH4SCS_N.WW": 170000000,
"RESPPALD_N.WW": 5822000000,
"RESPPALG_N.WW": 6453494000000,
"RESPPAOF_N.WW": 18893000000,
"RESPPLLB_N.WW": 1004306000000,
"RESPPLLR_N.WW": 348475000000,
"RESPPAAEH_N.WW": 628000000,
"RESPPALDC_N.WW": 0,
"RESPPALDJ_N.WW": 19000000,
"RESPPALDN_N.WW": 5822000000,
"RESPPALDP_N.WW": 5771000000,
"RESPPALDQ_N.WW": 0,
"RESPPALDS_N.WW": 32000000,
"RESPPALSD_N.WW": -25704000000,
"RESPPALSP_N.WW": 213881000000,
"RESPPLLDA_N.WW": 0,
"RESPPLLDF_N.WW": 9447000000,
"RESPPLLDO_N.WW": 245616000000,
"RESPPLLDT_N.WW": 749244000000,
"RESPPLLRD_N.WW": 3347000000,
"RESPPLLRF_N.WW": 345128000000,
"RESH4A_XAW_N.WW": 3685089000000,
"RESH4E_XAW_N.WW": 0,
"RESH4R_XAW_N.WW": 3098911000000,
"RESH4S_XAW_N.WW": 6784000000000,
"RESPPALGAO_N.WW": 2347000000,
"RESPPALGTR_N.WW": 0,
"RESPPALGUO_N.WW": 4502749000000,
"RESTBC_XAW_N.WW": 2474853000000,
"RESH4AO_XAW_N.WW": -178739000000,
"RESH4SC_XAW_N.WW": 6685539000000,
"RESH4SO_XAW_N.WW": 39695000000,
"RESPPALGTRF_N.WW": 0,
"RESPPALGTRO_N.WW": 0,
"RESPPALGUOB_N.WW": 499249000000,
"RESPPAS_XAW_N.WW": 15200000000,
"RESTBHT_XAW_N.WW": 344000000,
"RESTBMG_XAW_N.WW": 11041000000,
"RESTBMT_XAW_N.WW": 53256000000,
"RESH4SCF_XAW_N.WW": -274000000,
"RESH4SCS_XAW_N.WW": 170000000,
"RESPPALD_XAW_N.WW": 6660000000,
"RESPPALGASMO_N.WW": 1948398000000,
"RESPPALGUOMC_N.WW": 109066000000,
"RESPPALGUOMI_N.WW": 282634000000,
"RESPPALGUOMN_N.WW": 3611801000000,
"RESPPALG_XAW_N.WW": 6450444000000,
"RESPPAOF_XAW_N.WW": 18965000000,
"RESPPLLB_XAW_N.WW": 1039827000000,
"RESPPLLR_XAW_N.WW": 348804000000,
"RESPPAAEH_XAW_N.WW": 628000000,
"RESPPALDC_XAW_N.WW": 0,
"RESPPALDJ_XAW_N.WW": 19000000,
"RESPPALDN_XAW_N.WW": 6660000000,
"RESPPALDP_XAW_N.WW": 6607000000,
"RESPPALDQ_XAW_N.WW": 0,
"RESPPALDS_XAW_N.WW": 34000000,
"RESPPALSD_XAW_N.WW": -25748000000,
"RESPPALSP_XAW_N.WW": 213963000000,
"RESPPLLDA_XAW_N.WW": 0,
"RESPPLLDF_XAW_N.WW": 9445000000,
"RESPPLLDO_XAW_N.WW": 256321000000,
"RESPPLLDT_XAW_N.WW": 774062000000,
"RESPPLLRD_XAW_N.WW": 2750000000,
"RESPPLLRF_XAW_N.WW": 346054000000,
"RESPPALGAO_XAW_N.WW": 2347000000,
"RESPPALGTR_XAW_N.WW": 1000000,
"RESPPALGUO_XAW_N.WW": 4499699000000,
"RESH4A_XAW_XCH1_N.WW": -123586000000,
"RESH4E_XAW_XCH1_N.WW": 0,
"RESH4R_XAW_XCH1_N.WW": 132014000000,
"RESH4S_XAW_XCH1_N.WW": 8428000000,
"RESPPAAML1H_XAW_N.WW": null,
"RESPPALGTRF_XAW_N.WW": 0,
"RESPPALGTRO_XAW_N.WW": 1000000,
"RESPPALGUOB_XAW_N.WW": 496404000000,
"RESTBC_XAW_XCH1_N.WW": 2061000000,
"RESH4AO_XAW_XCH1_N.WW": 2411000000,
"RESH4A_XAW_XCH52_N.WW": 303266000000,
"RESH4E_XAW_XCH52_N.WW": -2029000000,
"RESH4R_XAW_XCH52_N.WW": -231338000000,
"RESH4SC_XAW_XCH1_N.WW": 8390000000,
"RESH4SO_XAW_XCH1_N.WW": 1982000000,
"RESH4S_XAW_XCH52_N.WW": 71928000000,
"RESPPALGASMO_XAW_N.WW": 1948398000000,
"RESPPALGUOMC_XAW_N.WW": 108861000000,
"RESPPALGUOMI_XAW_N.WW": 282634000000,
"RESPPALGUOMN_XAW_N.WW": 3611801000000,
"RESPPAS_XAW_XCH1_N.WW": 0,
"RESTBC_XAW_XCH52_N.WW": 72367000000,
"RESTBHT_XAW_XCH1_N.WW": -22000000,
"RESTBMG_XAW_XCH1_N.WW": 0,
"RESTBMT_XAW_XCH1_N.WW": 14000000,
"RESH4AO_XAW_XCH52_N.WW": 1162000000,
"RESH4SCF_XAW_XCH1_N.WW": 170000000,
"RESH4SCS_XAW_XCH1_N.WW": -80000000,
"RESH4SC_XAW_XCH52_N.WW": 71934000000,
"RESH4SO_XAW_XCH52_N.WW": 913000000,
"RESPPALD_XAW_XCH1_N.WW": -1067000000,
"RESPPALG_XAW_XCH1_N.WW": 7774000000,
"RESPPAOF_XAW_XCH1_N.WW": 25000000,
"RESPPAS_XAW_XCH52_N.WW": 0,
"RESPPLLB_XAW_XCH1_N.WW": -132061000000,
"RESPPLLR_XAW_XCH1_N.WW": 4026000000,
"RESTBHT_XAW_XCH52_N.WW": -93000000,
"RESTBMG_XAW_XCH52_N.WW": 0,
"RESTBMT_XAW_XCH52_N.WW": 688000000,
"RESH4SCF_XAW_XCH52_N.WW": 79000000,
"RESH4SCS_XAW_XCH52_N.WW": 115000000,
"RESPPAAEH_XAW_XCH1_N.WW": 2000000,
"RESPPALDC_XAW_XCH1_N.WW": 0,
"RESPPALDJ_XAW_XCH1_N.WW": 0,
"RESPPALDN_XAW_XCH1_N.WW": -1067000000,
"RESPPALDP_XAW_XCH1_N.WW": -1067000000,
"RESPPALDQ_XAW_XCH1_N.WW": 0,
"RESPPALDS_XAW_XCH1_N.WW": 0,
"RESPPALD_XAW_XCH52_N.WW": -1241000000,
"RESPPALG_XAW_XCH52_N.WW": 101137000000,
"RESPPALSD_XAW_XCH1_N.WW": -93000000,
"RESPPALSP_XAW_XCH1_N.WW": -298000000,
"RESPPAOF_XAW_XCH52_N.WW": -693000000,
"RESPPLLB_XAW_XCH52_N.WW": 490826000000,
"RESPPLLDA_XAW_XCH1_N.WW": 0,
"RESPPLLDF_XAW_XCH1_N.WW": -1000000,
"RESPPLLDO_XAW_XCH1_N.WW": -25884000000,
"RESPPLLDT_XAW_XCH1_N.WW": -106175000000,
"RESPPLLRD_XAW_XCH1_N.WW": -5313000000,
"RESPPLLRF_XAW_XCH1_N.WW": 9339000000,
"RESPPLLR_XAW_XCH52_N.WW": -258968000000,
"RESPPAAEH_XAW_XCH52_N.WW": -4557000000,
"RESPPALDC_XAW_XCH52_N.WW": 0,
"RESPPALDJ_XAW_XCH52_N.WW": -1425000000,
"RESPPALDN_XAW_XCH52_N.WW": -1241000000,
"RESPPALDP_XAW_XCH52_N.WW": 184000000,
"RESPPALDQ_XAW_XCH52_N.WW": 0,
"RESPPALDS_XAW_XCH52_N.WW": 0,
"RESPPALGAO_XAW_XCH1_N.WW": 0,
"RESPPALGTR_XAW_XCH1_N.WW": 1000000,
"RESPPALGUO_XAW_XCH1_N.WW": 7774000000,
"RESPPALSD_XAW_XCH52_N.WW": -2054000000,
"RESPPALSP_XAW_XCH52_N.WW": -22445000000,
"RESPPLLDA_XAW_XCH52_N.WW": 0,
"RESPPLLDF_XAW_XCH52_N.WW": 8000000,
"RESPPLLDO_XAW_XCH52_N.WW": 36646000000,
"RESPPLLDT_XAW_XCH52_N.WW": 454173000000,
"RESPPLLRD_XAW_XCH52_N.WW": -214875000000,
"RESPPLLRF_XAW_XCH52_N.WW": -44093000000,
"RESPPAAML1H_XAW_XCH1_N.WW": null,
"RESPPALGAO_XAW_XCH52_N.WW": 0,
"RESPPALGTRF_XAW_XCH1_N.WW": 0,
"RESPPALGTRO_XAW_XCH1_N.WW": 1000000,
"RESPPALGTR_XAW_XCH52_N.WW": -14000000,
"RESPPALGUOB_XAW_XCH1_N.WW": 7111000000,
"RESPPALGUO_XAW_XCH52_N.WW": 291234000000,
"RESPPAAML1H_XAW_XCH52_N.WW": null,
"RESPPALGASMO_XAW_XCH1_N.WW": 0,
"RESPPALGTRF_XAW_XCH52_N.WW": 0,
"RESPPALGTRO_XAW_XCH52_N.WW": -14000000,
"RESPPALGUOB_XAW_XCH52_N.WW": 300986000000,
"RESPPALGUOMC_XAW_XCH1_N.WW": 664000000,
"RESPPALGUOMI_XAW_XCH1_N.WW": 2566000000,
"RESPPALGUOMN_XAW_XCH1_N.WW": -2566000000,
"RESPPALGASMO_XAW_XCH52_N.WW": -190098000000,
"RESPPALGUOMC_XAW_XCH52_N.WW": -2903000000,
"RESPPALGUOMI_XAW_XCH52_N.WW": -33397000000,
"RESPPALGUOMN_XAW_XCH52_N.WW": 26550000000
}
}
],
"total": 32,
"series": [
{
"id": "RESH4A_N.WW",
"unit": "Currency",
"currency": "USD",
"uniqueId": "H41/H41/RESH4A_N.WW",
"multiplier": 1000000,
"description": "Liabilities and Capital: Other Factors Draining Reserve Balances: Total factors, other than reserve balances, absorbing reserve funds: Wednesday level"
},
{
"id": "RESH4A_XAW_N.WW",
"unit": "Currency",
"currency": "USD",
"uniqueId": "H41/H41/RESH4A_XAW_N.WW",
"multiplier": 1000000,
"description": "Liabilities and Capital: Other Factors Draining Reserve Balances: Total factors, other than reserve balances, absorbing reserve funds: week average"
},
{
"id": "RESH4A_XAW_XCH1_N.WW",
"unit": "Currency",
"currency": "USD",
"uniqueId": "H41/H41/RESH4A_XAW_XCH1_N.WW",
"multiplier": 1000000,
"description": "Liabilities and Capital: Other Factors Draining Reserve Balances: Total factors, other than reserve balances, absorbing reserve funds: change in week average from previous week average"
},
{
"id": "RESH4A_XAW_XCH52_N.WW",
"unit": "Currency",
"currency": "USD",
"uniqueId": "H41/H41/RESH4A_XAW_XCH52_N.WW",
"multiplier": 1000000,
"description": "Liabilities and Capital: Other Factors Draining Reserve Balances: Total factors, other than reserve balances, absorbing reserve funds: change in week average from year ago week average"
},
{
"id": "RESH4AO_N.WW",
"unit": "Currency",
"currency": "USD",
"uniqueId": "H41/H41/RESH4AO_N.WW",
"multiplier": 1000000,
"description": "Liabilities and Capital: Other Factors Draining Reserve Balances: Other liabilities and capital: Wednesday level"
},
{
"id": "RESH4AO_XAW_N.WW",
"unit": "Currency",
"currency": "USD",
"uniqueId": "H41/H41/RESH4AO_XAW_N.WW",
"multiplier": 1000000,
"description": "Liabilities and Capital: Other Factors Draining Reserve Balances: Other liabilities and capital: week average"
}
],
"dataset": "h41",
"package": "H.4.1 Statistical Release - Table 1",
"packages": [
{
"name": "H.4.1 Statistical Release - Table 1",
"index": 0
},
{
"name": "H.4.1 Statistical Release - Table 1.A",
"index": 1
},
{
"name": "H.4.1 Statistical Release - Table 2",
"index": 2
},
{
"name": "H.4.1 Statistical Release - Table 3",
"index": 3
},
{
"name": "H.4.1 Statistical Release - Table 4",
"index": 4
},
{
"name": "H.4.1 Statistical Release - Table 5",
"index": 5
}
],
"provider": "federal-reserve"
}
```
---
### Press Releases
Federal Reserve Board press releases — the whole announcement archive, by type.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:federal-reserve/press-releases`
- **Cache TTL:** 1800s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `type` | enum(Monetary Policy|Enforcement Actions|Banking and Consumer Regulatory Policy|Orders on Banking Applications|Other Announcements) | query | no | Release category: Monetary Policy, Enforcement Actions, Banking and Consumer Regulatory Policy, Orders on Banking Applications or Other Announcements. Default all. |
| `query` | string | query | no | Case-insensitive substring match on the release title. |
| `from` | string | query | no | Earliest release date, YYYY-MM-DD. |
| `to` | string | query | no | Latest release date, YYYY-MM-DD. |
| `page` | number | query | no | Page number, 1-based (default 1) |
| `length` | number | query | no | Releases per page (default 25, max 200) |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:federal-reserve/press-releases?type=Monetary%20Policy&query=balance%20sheet&from=2026-01-01&to=2026-08-19&page=1&length=25" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:federal-reserve/press-releases?type=Monetary%20Policy&query=balance%20sheet&from=2026-01-01&to=2026-08-19&page=1&length=25", {
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:federal-reserve/press-releases?type=Monetary%20Policy&query=balance%20sheet&from=2026-01-01&to=2026-08-19&page=1&length=25",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": "2026-08-19",
"from": "2026-01-01",
"page": 1,
"type": null,
"count": 0,
"items": [],
"query": "balance sheet",
"total": null,
"dataset": "press-releases",
"hasMore": false,
"nextPage": null,
"provider": "federal-reserve"
}
```
---
### SEP Projections
Summary of Economic Projections — the FOMC's own forecast tables for one meeting.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:federal-reserve/sep-projections`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `date` | string | query | no | Meeting date the projections belong to, YYYY-MM-DD. Defaults to the most recent meeting that published one. |
| `table` | number | query | no | Return only this table, 0-based. Table 0 is the headline economic projections. |
| `length` | number | query | no | Tables to return (default all) |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:federal-reserve/sep-projections?date=2026-06-17&table=0&length=5" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:federal-reserve/sep-projections?date=2026-06-17&table=0&length=5", {
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:federal-reserve/sep-projections?date=2026-06-17&table=0&length=5",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"url": "https://www.federalreserve.gov/monetarypolicy/fomcprojtabl20260617.htm",
"date": "2026-06-17",
"count": 1,
"items": [
{
"rows": [
{
"label": "Change in real GDP",
"values": {
"Range · 2026": "1.8–2.6",
"Range · 2027": "1.9–2.9",
"Range · 2028": "1.8–2.6",
"Median · 2026": 2.2,
"Median · 2027": 2.3,
"Median · 2028": 2.2,
"Range · Longer run": "1.7–2.5",
"Median · Longer run": 2,
"Central Tendency · 2026": "2.0–2.3",
"Central Tendency · 2027": "2.0–2.4",
"Central Tendency · 2028": "2.0–2.3",
"Central Tendency · Longer run": "1.8–2.0"
}
},
{
"label": "March projection",
"values": {
"Range · 2026": "2.1–2.7",
"Range · 2027": "2.0–2.7",
"Range · 2028": "1.8–2.7",
"Median · 2026": 2.4,
"Median · 2027": 2.3,
"Median · 2028": 2.1,
"Range · Longer run": "1.7–2.5",
"Median · Longer run": 2,
"Central Tendency · 2026": "2.2–2.5",
"Central Tendency · 2027": "2.0–2.4",
"Central Tendency · 2028": "2.0–2.3",
"Central Tendency · Longer run": "1.8–2.0"
}
},
{
"label": "Unemployment rate",
"values": {
"Range · 2026": "4.3–4.6",
"Range · 2027": "4.0–4.6",
"Range · 2028": "4.0–4.4",
"Median · 2026": 4.3,
"Median · 2027": 4.3,
"Median · 2028": 4.2,
"Range · Longer run": "3.8–4.5",
"Median · Longer run": 4.2,
"Central Tendency · 2026": "4.3–4.4",
"Central Tendency · 2027": "4.2–4.5",
"Central Tendency · 2028": "4.1–4.3",
"Central Tendency · Longer run": "4.0–4.3"
}
},
{
"label": "March projection",
"values": {
"Range · 2026": "4.3–4.6",
"Range · 2027": "4.0–4.5",
"Range · 2028": "4.0–4.5",
"Median · 2026": 4.4,
"Median · 2027": 4.3,
"Median · 2028": 4.2,
"Range · Longer run": "3.8–4.5",
"Median · Longer run": 4.2,
"Central Tendency · 2026": "4.3–4.5",
"Central Tendency · 2027": "4.2–4.4",
"Central Tendency · 2028": "4.0–4.4",
"Central Tendency · Longer run": "4.0–4.3"
}
},
{
"label": "PCE inflation",
"values": {
"Range · 2026": "2.7–4.1",
"Range · 2027": "1.9–2.8",
"Range · 2028": "2.0–2.3",
"Median · 2026": 3.6,
"Median · 2027": 2.3,
"Median · 2028": 2,
"Range · Longer run": 2,
"Median · Longer run": 2,
"Central Tendency · 2026": "3.5–3.7",
"Central Tendency · 2027": "2.2–2.5",
"Central Tendency · 2028": "2.0–2.1",
"Central Tendency · Longer run": 2
}
},
{
"label": "March projection",
"values": {
"Range · 2026": "2.3–3.3",
"Range · 2027": "1.8–2.4",
"Range · 2028": "1.9–2.2",
"Median · 2026": 2.7,
"Median · 2027": 2.2,
"Median · 2028": 2,
"Range · Longer run": 2,
"Median · Longer run": 2,
"Central Tendency · 2026": "2.6–3.1",
"Central Tendency · 2027": "2.0–2.3",
"Central Tendency · 2028": 2,
"Central Tendency · Longer run": 2
}
}
],
"index": 0,
"caption": "Table 1. Economic projections of Federal Reserve Board members and Federal Reserve Bank presidents, under their individual assumptions of projected appropriate monetary policy, June 2026 — Percent",
"columns": [
"Median · 2026",
"Median · 2027",
"Median · 2028",
"Median · Longer run",
"Central Tendency · 2026",
"Central Tendency · 2027"
],
"rowCount": 11
}
],
"total": 26,
"dataset": "sep-projections",
"provider": "federal-reserve"
}
```
---
## FINRA
**Category:** finance · **Slug:** `finra`
**Detail page:** https://zapi.ink/api/finance/finra
Posisi short terkonsolidasi FINRA per saham per tanggal setelmen, dua kali sebulan.
**Tags:** finra, short-interest, usa, stock, finance
### Short Interest
Riwayat posisi short satu saham, atau seluruh pasar pada satu tanggal setelmen. Termasuk days-to-cover dan perubahan dari periode sebelumnya.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:finra/short-interest`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | no | Ticker symbol. Omit only when `date` is set. |
| `date` | string | query | no | Settlement date (YYYY-MM-DD). Settlements land mid-month and month-end. |
| `length` | number | query | no | Rows to return (default 20, max 500) |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:finra/short-interest?symbol=AAPL&date=2026-07-15&length=20" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:finra/short-interest?symbol=AAPL&date=2026-07-15&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:finra/short-interest?symbol=AAPL&date=2026-07-15&length=20",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 8,
"items": [
{
"name": "Apple Inc. Common Stock",
"market": "NNM",
"symbol": "AAPL",
"daysToCover": 3.06,
"changeShares": 6021464,
"changePercent": 4.28,
"shortInterest": 146547784,
"settlementDate": "2026-07-15",
"averageDailyVolume": 47952794,
"previousShortInterest": 140526320
},
{
"name": "Apple Inc. Common Stock",
"market": "NNM",
"symbol": "AAPL",
"daysToCover": 1.73,
"changeShares": -3722156,
"changePercent": -2.58,
"shortInterest": 140526320,
"settlementDate": "2026-06-30",
"averageDailyVolume": 81121306,
"previousShortInterest": 144248476
},
{
"name": "Apple Inc. Common Stock",
"market": "NNM",
"symbol": "AAPL",
"daysToCover": 2.76,
"changeShares": -11637548,
"changePercent": -7.47,
"shortInterest": 144248476,
"settlementDate": "2026-06-15",
"averageDailyVolume": 52343843,
"previousShortInterest": 155886024
},
{
"name": "Apple Inc. Common Stock",
"market": "NNM",
"symbol": "AAPL",
"daysToCover": 3.38,
"changeShares": 17103306,
"changePercent": 12.32,
"shortInterest": 155886024,
"settlementDate": "2026-05-29",
"averageDailyVolume": 46064146,
"previousShortInterest": 138782718
},
{
"name": "Apple Inc. Common Stock",
"market": "NNM",
"symbol": "AAPL",
"daysToCover": 2.74,
"changeShares": 4107444,
"changePercent": 3.05,
"shortInterest": 138782718,
"settlementDate": "2026-05-15",
"averageDailyVolume": 50565316,
"previousShortInterest": 134675274
},
{
"name": "Apple Inc. Common Stock",
"market": "NNM",
"symbol": "AAPL",
"daysToCover": 2.93,
"changeShares": 252487,
"changePercent": 0.19,
"shortInterest": 134675274,
"settlementDate": "2026-04-30",
"averageDailyVolume": 45944025,
"previousShortInterest": 134422787
},
{
"name": "Apple Inc. Common Stock",
"market": "NNM",
"symbol": "AAPL",
"daysToCover": 3.39,
"changeShares": 7651503,
"changePercent": 6.04,
"shortInterest": 134422787,
"settlementDate": "2026-04-15",
"averageDailyVolume": 39674165,
"previousShortInterest": 126771284
},
{
"name": "Apple Inc. Common Stock",
"market": "NNM",
"symbol": "AAPL",
"daysToCover": 2.96,
"changeShares": 2579254,
"changePercent": 2.08,
"shortInterest": 126771284,
"settlementDate": "2026-03-31",
"averageDailyVolume": 42873045,
"previousShortInterest": 124192030
}
],
"total": 206,
"source": "finra",
"symbol": "AAPL",
"latestSettlement": "2026-07-15"
}
```
---
## FRED
**Category:** finance · **Slug:** `fred`
**Detail page:** https://zapi.ink/api/finance/fred
Federal Reserve Economic Data: macro series with point-in-time vintages, so a revised print never masquerades as the original.
**Tags:** fred, macro, economics, time-series, rates, point-in-time
### Category
Walk the FRED category tree: child categories at a node, and the series that
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:fred/category`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `category` | number | query | no | FRED category id. Omit for the root of the tree. |
| `page` | number | query | no | Page of the series listing (default 1) |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:fred/category?category=115&page=1" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:fred/category?category=115&page=1", {
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:fred/category?category=115&page=1",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"page": 1,
"count": 50,
"items": [
{
"url": "https://fred.stlouisfed.org/series/DGS10",
"title": "Market Yield on U.S. Treasury Securities at 10-Year Constant Maturity, Quoted on an Investment Basis",
"units": "Percent",
"series": "DGS10",
"frequency": "Daily",
"observationEnd": "2026-08-18",
"observationStart": "1962-01-02",
"seasonalAdjustment": "Not Seasonally Adjusted"
},
{
"url": "https://fred.stlouisfed.org/series/GS10",
"title": "Market Yield on U.S. Treasury Securities at 10-Year Constant Maturity, Quoted on an Investment Basis",
"units": "Percent",
"series": "GS10",
"frequency": "Monthly",
"observationEnd": "Jul 2026",
"observationStart": "Apr 1953",
"seasonalAdjustment": "Not Seasonally Adjusted"
},
{
"url": "https://fred.stlouisfed.org/series/WGS10YR",
"title": "Market Yield on U.S. Treasury Securities at 10-Year Constant Maturity, Quoted on an Investment Basis",
"units": "Percent",
"series": "WGS10YR",
"frequency": "Weekly",
"observationEnd": "2026-08-14",
"observationStart": "1962-01-05",
"seasonalAdjustment": "Not Seasonally Adjusted"
},
{
"url": "https://fred.stlouisfed.org/series/RIFLGFCY10NA",
"title": "Market Yield on U.S. Treasury Securities at 10-Year Constant Maturity, Quoted on an Investment Basis",
"units": "Percent",
"series": "RIFLGFCY10NA",
"frequency": "Annual",
"observationEnd": "2025",
"observationStart": "1962",
"seasonalAdjustment": "Not Seasonally Adjusted"
},
{
"url": "https://fred.stlouisfed.org/series/DFII10",
"title": "Market Yield on U.S. Treasury Securities at 10-Year Constant Maturity, Quoted on an Investment Basis, Inflation-Indexed",
"units": "Percent",
"series": "DFII10",
"frequency": "Daily",
"observationEnd": "2026-08-18",
"observationStart": "2003-01-02",
"seasonalAdjustment": "Not Seasonally Adjusted"
},
{
"url": "https://fred.stlouisfed.org/series/FII10",
"title": "Market Yield on U.S. Treasury Securities at 10-Year Constant Maturity, Quoted on an Investment Basis, Inflation-Indexed",
"units": "Percent",
"series": "FII10",
"frequency": "Monthly",
"observationEnd": "Jul 2026",
"observationStart": "Jan 2003",
"seasonalAdjustment": "Not Seasonally Adjusted"
}
],
"total": null,
"dataset": "category",
"hasMore": true,
"category": 115,
"children": [
{
"name": "Money, Banking, & Finance",
"categoryId": 32991
},
{
"name": "Interest Rates",
"categoryId": 22
}
],
"nextPage": 2,
"provider": "fred"
}
```
---
### Observations Vintage
Point-in-time observations — what a series looked like on the day it was
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:fred/observations-vintage`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `series` | string | query | no | FRED series ids, comma-separated. A missing observation comes back as null, never 0. Default GDP. |
| `vintages` | string | query | no | Vintage dates, comma-separated, YYYY-MM-DD. List them with the `vintage-dates` endpoint. Series times vintages must not exceed 12. Defaults to the latest vintage. |
| `from` | string | query | no | First observation date, YYYY-MM-DD. |
| `to` | string | query | no | Last observation date, YYYY-MM-DD. |
| `length` | number | query | no | Observations to return, newest first (default 100, max 20000) |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:fred/observations-vintage?series=GDP&vintages=2020-01-30%2C2020-04-29%2C2026-07-30&from=2019-07-01&to=2019-12-31&length=100" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:fred/observations-vintage?series=GDP&vintages=2020-01-30%2C2020-04-29%2C2026-07-30&from=2019-07-01&to=2019-12-31&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:fred/observations-vintage?series=GDP&vintages=2020-01-30%2C2020-04-29%2C2026-07-30&from=2019-07-01&to=2019-12-31&length=100",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": "2019-12-31",
"from": "2019-07-01",
"count": 2,
"items": [
{
"date": "2019-10-01",
"values": {
"GDP": 21933.217
}
},
{
"date": "2019-07-01",
"values": {
"GDP": 21717.171
}
}
],
"total": 2,
"series": [
"GDP"
],
"columns": [
{
"key": "GDP",
"column": "GDP_20260820",
"series": "GDP"
}
],
"dataset": "observations-vintage",
"missing": [],
"provider": "fred",
"vintages": []
}
```
---
### Release Dates
The US statistical release calendar — what is published on a given day, at what
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:fred/release-dates`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `from` | string | query | no | First calendar date, YYYY-MM-DD. Defaults to today. |
| `to` | string | query | no | Last calendar date, YYYY-MM-DD. Defaults to `from`. |
| `release` | number | query | no | Restrict to one release id, from the `releases` endpoint. |
| `year` | number | query | no | Whole calendar year. Use with `release`; overrides `from`/`to`. |
| `page` | number | query | no | Page of the calendar, 50 entries each (default 1) |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:fred/release-dates?from=2026-08-17&to=2026-08-21&release=18&year=2026&page=1" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:fred/release-dates?from=2026-08-17&to=2026-08-21&release=18&year=2026&page=1", {
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:fred/release-dates?from=2026-08-17&to=2026-08-21&release=18&year=2026&page=1",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": "2026-08-21",
"from": "2026-08-17",
"page": 1,
"year": 2026,
"count": 50,
"items": [
{
"url": "https://fred.stlouisfed.org/release?rid=18",
"date": "2026-01-02",
"name": "H.15 Selected Interest Rates",
"time": "3:15 pm",
"released": true,
"releaseId": 18
},
{
"url": "https://fred.stlouisfed.org/release?rid=18",
"date": "2026-01-05",
"name": "H.15 Selected Interest Rates",
"time": "3:15 pm",
"released": true,
"releaseId": 18
},
{
"url": "https://fred.stlouisfed.org/release?rid=18",
"date": "2026-01-06",
"name": "H.15 Selected Interest Rates",
"time": "3:15 pm",
"released": true,
"releaseId": 18
},
{
"url": "https://fred.stlouisfed.org/release?rid=18",
"date": "2026-01-07",
"name": "H.15 Selected Interest Rates",
"time": "3:15 pm",
"released": true,
"releaseId": 18
},
{
"url": "https://fred.stlouisfed.org/release?rid=18",
"date": "2026-01-08",
"name": "H.15 Selected Interest Rates",
"time": "3:15 pm",
"released": true,
"releaseId": 18
},
{
"url": "https://fred.stlouisfed.org/release?rid=18",
"date": "2026-01-09",
"name": "H.15 Selected Interest Rates",
"time": "3:15 pm",
"released": true,
"releaseId": 18
}
],
"total": null,
"dataset": "release-dates",
"hasMore": true,
"release": 18,
"nextPage": 2,
"provider": "fred"
}
```
---
### Releases
The release catalogue — every statistical publication FRED redistributes,
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:fred/releases`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `page` | number | query | no | Catalogue page, 50 releases each (default 1) |
| `query` | string | query | no | Keep only releases whose name contains this text. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:fred/releases?page=1&query=interest%20rates" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:fred/releases?page=1&query=interest%20rates", {
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:fred/releases?page=1&query=interest%20rates",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"page": 1,
"count": 4,
"items": [
{
"url": "https://fred.stlouisfed.org/release?rid=131",
"name": "G.13 Selected Interest Rates",
"releaseId": 131
},
{
"url": "https://fred.stlouisfed.org/release?rid=18",
"name": "H.15 Selected Interest Rates",
"releaseId": 18
},
{
"url": "https://fred.stlouisfed.org/release?rid=484",
"name": "Key ECB Interest Rates",
"releaseId": 484
},
{
"url": "https://fred.stlouisfed.org/release?rid=94",
"name": "Survey of Secondary Market Prices and Yields, and Interest Rates for Home Loans",
"releaseId": 94
}
],
"query": "interest rates",
"total": null,
"dataset": "releases",
"hasMore": false,
"nextPage": null,
"provider": "fred"
}
```
---
### Series Observations
FRED observations — any economic series the St. Louis Fed publishes, by id.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:fred/series-observations`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `series` | string | query | no | FRED series ids, comma-separated, up to 12 — the upstream drops the 13th silently. A missing observation comes back as null, never 0. Default DGS10. |
| `from` | string | query | no | First observation date, YYYY-MM-DD. Applied to every series. |
| `to` | string | query | no | Last observation date, YYYY-MM-DD. Applied to every series. |
| `transformation` | enum(lin|chg|ch1|pch|pc1|pca|cch|cca|log) | query | no | Server-side transform: lin (level), chg, ch1, pch, pc1 (year-over-year %), pca, cch, cca, log. Default lin. |
| `frequency` | enum(Daily|Weekly|Biweekly|Monthly|Quarterly|Semiannual|Annual) | query | no | Resample a higher-frequency series down to Daily, Weekly, Biweekly, Monthly, Quarterly, Semiannual or Annual. |
| `aggregation` | enum(avg|sum|eop) | query | no | How `frequency` collapses each bucket: avg, sum or eop (end of period). Default avg. |
| `length` | number | query | no | Observations to return, newest first (default 100, max 20000) |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:fred/series-observations?series=DGS10%2CDGS2%2CT10Y2Y&from=2026-01-01&to=2026-08-18&transformation=pc1&frequency=Monthly&aggregation=avg&length=100" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:fred/series-observations?series=DGS10%2CDGS2%2CT10Y2Y&from=2026-01-01&to=2026-08-18&transformation=pc1&frequency=Monthly&aggregation=avg&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:fred/series-observations?series=DGS10%2CDGS2%2CT10Y2Y&from=2026-01-01&to=2026-08-18&transformation=pc1&frequency=Monthly&aggregation=avg&length=100",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": "2026-08-01",
"from": "2024-01-01",
"count": 100,
"items": [
{
"date": "2026-07-31",
"values": {
"DFII10": 2.47
}
},
{
"date": "2026-07-30",
"values": {
"DFII10": 2.41
}
},
{
"date": "2026-07-29",
"values": {
"DFII10": 2.41
}
},
{
"date": "2026-07-28",
"values": {
"DFII10": 2.41
}
},
{
"date": "2026-07-27",
"values": {
"DFII10": 2.44
}
},
{
"date": "2026-07-24",
"values": {
"DFII10": 2.43
}
}
],
"total": 674,
"series": [
"DFII10"
],
"dataset": "series-observations",
"missing": [],
"provider": "fred",
"resolved": [
"DFII10"
],
"transformation": "lin"
}
```
---
### Series Search
Free-text search across the FRED catalogue — the way to turn "10-year real
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:fred/series-search`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `query` | string | query | yes | Free text. Matches series titles, notes and tags. Required. |
| `page` | number | query | no | Result page (default 1, upstream stops at 30) |
| `sort` | enum(relevance|popularity|title|frequency|units|seasonality|updated|start|end) | query | no | Result ordering. Default relevance. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:fred/series-search?query=10-year%20real%20yield&page=1&sort=popularity" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:fred/series-search?query=10-year%20real%20yield&page=1&sort=popularity", {
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:fred/series-search?query=10-year%20real%20yield&page=1&sort=popularity",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"page": 1,
"count": 6,
"items": [
{
"url": "https://fred.stlouisfed.org/series/DFII10",
"title": "Market Yield on U.S. Treasury Securities at 10-Year Constant Maturity, Quoted on an Investment Basis, Inflation-Indexed",
"units": "Percent",
"series": "DFII10",
"frequency": "Daily",
"description": "View data of the inflation-adjusted interest rates on 10-year Treasury securities with a constant maturity.",
"observationEnd": "2026-08-18",
"observationStart": "2003-01-02",
"seasonalAdjustment": "Not Seasonally Adjusted"
},
{
"url": "https://fred.stlouisfed.org/series/DFII5",
"title": "Market Yield on U.S. Treasury Securities at 5-Year Constant Maturity, Quoted on an Investment Basis, Inflation-Indexed",
"units": "Percent",
"series": "DFII5",
"frequency": "Daily",
"description": "H.15 Statistical Release notes (https://www.federalreserve.gov/releases/h15/default.htm) and the Treasury Yield Curve Methodology (https://home.treasury.gov/policy-issues/financing-the-government/interest-rate-statistics/treasury-yield-curve-methodology). For questions on the data, please contact the data source (https://www.federalreserve.gov/apps/ContactUs/feedback.aspx?refurl=/releases/h15/%). For questions on FRED functionality, please contact us here (https://fred.stlouisfed.org/contactus/).
",
"observationEnd": "2026-08-18",
"observationStart": "2003-01-02",
"seasonalAdjustment": "Not Seasonally Adjusted"
},
{
"url": "https://fred.stlouisfed.org/series/DFII30",
"title": "Market Yield on U.S. Treasury Securities at 30-Year Constant Maturity, Quoted on an Investment Basis, Inflation-Indexed",
"units": "Percent",
"series": "DFII30",
"frequency": "Daily",
"description": "H.15 Statistical Release notes (https://www.federalreserve.gov/releases/h15/default.htm) and the Treasury Yield Curve Methodology (https://home.treasury.gov/policy-issues/financing-the-government/interest-rate-statistics/treasury-yield-curve-methodology). For questions on the data, please contact the data source (https://www.federalreserve.gov/apps/ContactUs/feedback.aspx?refurl=/releases/h15/%). For questions on FRED functionality, please contact us here (https://fred.stlouisfed.org/contactus/).",
"observationEnd": "2026-08-18",
"observationStart": "2010-02-22",
"seasonalAdjustment": "Not Seasonally Adjusted"
},
{
"url": "https://fred.stlouisfed.org/series/DLTIIT",
"title": "Treasury Long-Term Average (Over 10 Years), Inflation-Indexed",
"units": "Percent",
"series": "DLTIIT",
"frequency": "Daily",
"description": "data source (https://www.federalreserve.gov/apps/ContactUs/feedback.aspx?refurl=/releases/h15/%). For questions on FRED functionality, please contact us here (https://fred.stlouisfed.org/contactus/).",
"observationEnd": "2026-08-18",
"observationStart": "2000-01-03",
"seasonalAdjustment": "Not Seasonally Adjusted"
},
{
"url": "https://fred.stlouisfed.org/series/DFII20",
"title": "Market Yield on U.S. Treasury Securities at 20-Year Constant Maturity, Quoted on an Investment Basis, Inflation-Indexed",
"units": "Percent",
"series": "DFII20",
"frequency": "Daily",
"description": "H.15 Statistical Release notes (https://www.federalreserve.gov/releases/h15/default.htm) and the Treasury Yield Curve Methodology (https://home.treasury.gov/policy-issues/financing-the-government/interest-rate-statistics/treasury-yield-curve-methodology). For questions on the data, please contact the data source (https://www.federalreserve.gov/apps/ContactUs/feedback.aspx?refurl=/releases/h15/%). For questions on FRED functionality, please contact us here (https://fred.stlouisfed.org/contactus/).",
"observationEnd": "2026-08-18",
"observationStart": "2004-07-27",
"seasonalAdjustment": "Not Seasonally Adjusted"
},
{
"url": "https://fred.stlouisfed.org/series/DFII7",
"title": "Market Yield on U.S. Treasury Securities at 7-Year Constant Maturity, Quoted on an Investment Basis, Inflation-Indexed",
"units": "Percent",
"series": "DFII7",
"frequency": "Daily",
"description": "H.15 Statistical Release notes (https://www.federalreserve.gov/releases/h15/default.htm) and the Treasury Yield Curve Methodology (https://home.treasury.gov/policy-issues/financing-the-government/interest-rate-statistics/treasury-yield-curve-methodology). For questions on the data, please contact the data source (https://www.federalreserve.gov/apps/ContactUs/feedback.aspx?refurl=/releases/h15/%). For questions on FRED functionality, please contact us here (https://fred.stlouisfed.org/contactus/).",
"observationEnd": "2026-08-18",
"observationStart": "2003-01-02",
"seasonalAdjustment": "Not Seasonally Adjusted"
}
],
"query": "real yield",
"total": null,
"dataset": "series-search",
"hasMore": false,
"nextPage": null,
"provider": "fred"
}
```
---
### Series
Metadata for one FRED series — units, frequency, seasonal adjustment, the
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:fred/series`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `series` | string | query | no | One FRED series id. Case-insensitive. Default DGS10. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:fred/series?series=DGS10" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:fred/series?series=DGS10", {
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:fred/series?series=DGS10",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"url": "https://fred.stlouisfed.org/series/DFII10",
"notes": "For further information regarding treasury constant maturity data, please refer to the H.15 Statistical Release notes and the Treasury Yield Curve Methodology . For questions on the data, please contact the data source . For questions on FRED functionality, please contact us here .",
"title": "Market Yield on U.S. Treasury Securities at 10-Year Constant Maturity, Quoted on an Investment Basis, Inflation-Indexed",
"units": "Percent",
"series": "DFII10",
"source": "Board of Governors of the Federal Reserve System (US)",
"dataset": "series",
"license": "https://fred.stlouisfed.org/legal/#copyright-public-domain",
"release": {
"name": "H.15 Selected Interest Rates",
"releaseId": 18
},
"keywords": [
"tips",
"10-year",
"maturity",
"h15",
"treasury",
"securities"
],
"provider": "fred",
"frequency": "Daily",
"copyrighted": false,
"description": "View data of the inflation-adjusted interest rates on 10-year Treasury securities with a constant maturity.",
"lastUpdated": "2026-08-19T15:16:00-05:00",
"categoryPath": [
{
"name": "Money, Banking, & Finance",
"categoryId": 32991
},
{
"name": "Interest Rates",
"categoryId": 22
},
{
"name": "Treasury Inflation-Indexed Securities",
"categoryId": 82
},
{
"name": "Treasury Constant Maturity",
"categoryId": 115
}
],
"nextReleaseDate": "2026-08-20",
"seasonalAdjustment": "Not Seasonally Adjusted",
"lastObservationDate": "2026-08-18",
"lastObservationValue": 2.41,
"lastObservationPeriod": "2026-08-18"
}
```
---
### Sources
The publishers behind the catalogue — statistical agencies, central banks and
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:fred/sources`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `page` | number | query | no | Catalogue page, 50 sources each (default 1) |
| `query` | string | query | no | Keep only sources whose name contains this text. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:fred/sources?page=1&query=federal%20reserve" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:fred/sources?page=1&query=federal%20reserve", {
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:fred/sources?page=1&query=federal%20reserve",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"page": 1,
"count": 12,
"items": [
{
"url": "https://fred.stlouisfed.org/source?soid=1",
"name": "Board of Governors of the Federal Reserve System (US)",
"sourceId": 1
},
{
"url": "https://fred.stlouisfed.org/source?soid=91",
"name": "Federal Reserve Bank of Atlanta",
"sourceId": 91
},
{
"url": "https://fred.stlouisfed.org/source?soid=54",
"name": "Federal Reserve Bank of Chicago",
"sourceId": 54
},
{
"url": "https://fred.stlouisfed.org/source?soid=90",
"name": "Federal Reserve Bank of Cleveland",
"sourceId": 90
},
{
"url": "https://fred.stlouisfed.org/source?soid=89",
"name": "Federal Reserve Bank of Dallas",
"sourceId": 89
},
{
"url": "https://fred.stlouisfed.org/source?soid=46",
"name": "Federal Reserve Bank of Kansas City",
"sourceId": 46
}
],
"query": "federal reserve",
"total": null,
"dataset": "sources",
"hasMore": false,
"nextPage": null,
"provider": "fred"
}
```
---
### Tags
The tag vocabulary FRED indexes its catalogue with — geography, frequency,
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:fred/tags`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `page` | number | query | no | Tag page, ~50 tags each, most-used first (default 1) |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:fred/tags?page=1" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:fred/tags?page=1", {
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:fred/tags?page=1",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"page": 1,
"count": 50,
"items": [
{
"tag": "nsa",
"name": "Not Seasonally Adjusted",
"seriesCount": 670000,
"seriesCountApproximate": true
},
{
"tag": "usa",
"name": "United States of America",
"seriesCount": 600000,
"seriesCountApproximate": true
},
{
"tag": "public domain: citation requested",
"name": "Public Domain: Citation Requested",
"seriesCount": 550000,
"seriesCountApproximate": true
},
{
"tag": "annual",
"name": "Annual",
"seriesCount": 440000,
"seriesCountApproximate": true
},
{
"tag": "county",
"name": "County or County Equivalent",
"seriesCount": 290000,
"seriesCountApproximate": true
},
{
"tag": "nation",
"name": "Nation",
"seriesCount": 250000,
"seriesCountApproximate": true
}
],
"total": null,
"dataset": "tags",
"hasMore": true,
"nextPage": 2,
"provider": "fred"
}
```
---
### Vintage Dates
Every vintage ALFRED holds for one series — the dates on which that series was
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:fred/vintage-dates`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `series` | string | query | no | One FRED/ALFRED series id. Case-insensitive. Default GDP. |
| `length` | number | query | no | Vintage dates to return, newest first (default 50, max 2000) |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:fred/vintage-dates?series=GDP&length=50" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:fred/vintage-dates?series=GDP&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:fred/vintage-dates?series=GDP&length=50",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 50,
"items": [
"2026-07-30",
"2026-06-25",
"2026-05-28",
"2026-04-30",
"2026-04-09",
"2026-03-13"
],
"total": 413,
"series": "GDP",
"dataset": "vintage-dates",
"provider": "fred",
"firstVintage": "1991-12-04",
"latestVintage": "2026-07-30"
}
```
---
## Galeri 24
**Category:** finance · **Slug:** `galeri24`
**Detail page:** https://zapi.ink/api/finance/galeri24
Pegadaian's gold retailer — selling and buyback price for 18 brands including Antam, UBS and Lotus Archi, plus outlets and catalogue.
**Tags:** gold, indonesia, idr, buyback, pegadaian
### Price board
Selling and buyback price for every brand and denomination on today's board.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:galeri24/price`
- **Cache TTL:** 1800s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `vendor` | string | query | no | Keep only this brand, case-insensitive substring. |
| `denomination` | number | query | no | Keep only this bar weight in grams. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:galeri24/price?vendor=ANTAM&denomination=1" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:galeri24/price?vendor=ANTAM&denomination=1", {
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:galeri24/price?vendor=ANTAM&denomination=1",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"asOf": "2026-08-29",
"count": 107,
"items": [
{
"id": "d9e11a2a-7970-46ba-a350-ca0eff900bdf",
"date": "2026-08-29",
"spread": 185000,
"vendor": "ANTAM",
"basePrice": 1385000,
"updatedAt": "2026-08-29T03:30:03.589Z",
"statusCode": 1,
"vendorCode": "00005201808001",
"weightGram": 0.5,
"buybackPrice": 1221000,
"sellingPrice": 1406000,
"marginPercent": 1.5,
"buybackPricePerGram": 2442000,
"sellingPricePerGram": 2812000
},
{
"id": "3769b88d-7d62-42f9-888b-4ca8dfb46b73",
"date": "2026-08-29",
"spread": 268000,
"vendor": "ANTAM",
"basePrice": 2670000,
"updatedAt": "2026-08-29T03:30:03.589Z",
"statusCode": 1,
"vendorCode": "00005201808001",
"weightGram": 1,
"buybackPrice": 2443000,
"sellingPrice": 2711000,
"marginPercent": 1.5,
"buybackPricePerGram": 2443000,
"sellingPricePerGram": 2711000
},
{
"id": "61a528d0-12c1-48a5-b0c6-18790ede2b0d",
"date": "2026-08-29",
"spread": 474000,
"vendor": "ANTAM",
"basePrice": 5280000,
"updatedAt": "2026-08-29T03:30:03.589Z",
"statusCode": 1,
"vendorCode": "00005201808001",
"weightGram": 2,
"buybackPrice": 4886000,
"sellingPrice": 5360000,
"marginPercent": 1.5,
"buybackPricePerGram": 2443000,
"sellingPricePerGram": 2680000
},
{
"id": "2ca4e819-536c-41dd-aefa-88c667861033",
"date": "2026-08-29",
"spread": 685000,
"vendor": "ANTAM",
"basePrice": 7895000,
"updatedAt": "2026-08-29T03:30:03.589Z",
"statusCode": 1,
"vendorCode": "00005201808001",
"weightGram": 3,
"buybackPrice": 7329000,
"sellingPrice": 8014000,
"marginPercent": 1.5,
"buybackPricePerGram": 2443000,
"sellingPricePerGram": 2671333
},
{
"id": "b71589fb-9fc3-4f28-9c9f-110716eed730",
"date": "2026-08-29",
"spread": 1106000,
"vendor": "ANTAM",
"basePrice": 13125000,
"updatedAt": "2026-08-29T03:30:03.589Z",
"statusCode": 1,
"vendorCode": "00005201808001",
"weightGram": 5,
"buybackPrice": 12216000,
"sellingPrice": 13322000,
"marginPercent": 1.5,
"buybackPricePerGram": 2443200,
"sellingPricePerGram": 2664400
},
{
"id": "41fe101c-3db0-40f4-b657-d5410c271b0e",
"date": "2026-08-29",
"spread": 2155000,
"vendor": "ANTAM",
"basePrice": 26195000,
"updatedAt": "2026-08-29T03:30:03.589Z",
"statusCode": 1,
"vendorCode": "00005201808001",
"weightGram": 10,
"buybackPrice": 24433000,
"sellingPrice": 26588000,
"marginPercent": 1.5,
"buybackPricePerGram": 2443300,
"sellingPricePerGram": 2658800
},
{
"id": "4bdd8488-65b9-4a83-b091-0c1430219657",
"date": "2026-08-29",
"spread": 5562000,
"vendor": "ANTAM",
"basePrice": 65362000,
"updatedAt": "2026-08-29T03:30:03.589Z",
"statusCode": 1,
"vendorCode": "00005201808001",
"weightGram": 25,
"buybackPrice": 60781000,
"sellingPrice": 66343000,
"marginPercent": 1.5,
"buybackPricePerGram": 2431240,
"sellingPricePerGram": 2653720
},
{
"id": "39e02534-0c1b-4dd8-8e3a-aa1e40bb0dc1",
"date": "2026-08-29",
"spread": 11042000,
"vendor": "ANTAM",
"basePrice": 130645000,
"updatedAt": "2026-08-29T03:30:03.589Z",
"statusCode": 1,
"vendorCode": "00005201808001",
"weightGram": 50,
"buybackPrice": 121563000,
"sellingPrice": 132605000,
"marginPercent": 1.5,
"buybackPricePerGram": 2431260,
"sellingPricePerGram": 2652100
}
],
"metal": "gold",
"total": 107,
"vendor": null,
"dataset": "price",
"currency": "IDR",
"provider": "galeri24",
"denomination": null,
"vendorsAvailable": [
"ANTAM",
"ANTAM MULIA RETRO",
"ANTAM NON PEGADAIAN",
"BABY GALERI 24",
"BABY SERIES INVESTASI",
"BABY SERIES TUMBUHAN",
"BATIK SERIES",
"DINAR G24"
],
"denominationsAvailable": [
0.001,
0.02,
0.04,
0.05,
0.1,
0.2,
0.25,
0.3
]
}
```
---
### Daily headline
Today's 1 g selling and buyback per brand, with the day-on-day change.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:galeri24/daily`
- **Cache TTL:** 1800s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `vendor` | string | query | no | Keep only this brand, case-insensitive substring. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:galeri24/daily?vendor=ANTAM" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:galeri24/daily?vendor=ANTAM", {
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:galeri24/daily?vendor=ANTAM",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"asOf": "2026-08-29",
"count": 8,
"items": [
{
"date": "2026-08-29",
"vendor": "GALERI 24",
"buybackPrice": 2465000,
"sellingPrice": 2611000,
"changeBuyPercent": -1.64,
"changeSellPercent": -1.73
},
{
"date": "2026-08-29",
"vendor": "ANTAM",
"buybackPrice": 2443000,
"sellingPrice": 2711000,
"changeBuyPercent": -1.81,
"changeSellPercent": -1.74
},
{
"date": "2026-08-29",
"vendor": "ANTAM MULIA RETRO",
"buybackPrice": 2443000,
"sellingPrice": 2627000,
"changeBuyPercent": -1.81,
"changeSellPercent": -2.74
},
{
"date": "2026-08-29",
"vendor": "ANTAM NON PEGADAIAN",
"buybackPrice": 2250000,
"sellingPrice": 2627000,
"changeBuyPercent": -1.75,
"changeSellPercent": -2.74
},
{
"date": "2026-08-29",
"vendor": "UBS",
"buybackPrice": 2443000,
"sellingPrice": 2654000,
"changeBuyPercent": -1.81,
"changeSellPercent": -2.75
},
{
"date": "2026-08-29",
"vendor": "LOTUS ARCHI",
"buybackPrice": 2443000,
"sellingPrice": 2612000,
"changeBuyPercent": -1.81,
"changeSellPercent": 0
},
{
"date": "2026-08-29",
"vendor": "SENTRA BUYBACK",
"buybackPrice": 2250000,
"sellingPrice": null,
"changeBuyPercent": -1.75,
"changeSellPercent": null
},
{
"date": "2025-06-13",
"vendor": "LOTUS ARCHI GIFT",
"buybackPrice": null,
"sellingPrice": 1998000,
"changeBuyPercent": 0,
"changeSellPercent": 0
}
],
"metal": "gold",
"total": 8,
"dataset": "daily",
"currency": "IDR",
"provider": "galeri24"
}
```
---
### Brands
Every brand traded, with the code the price board keys against.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:galeri24/vendors`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `x` | string | query | no | Unused — the brand list takes no parameters. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:galeri24/vendors?x=" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:galeri24/vendors?x=", {
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:galeri24/vendors?x=",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 25,
"items": [
{
"code": "00005201808001",
"name": "ANTAM",
"vendorId": "3480d9f8-31ec-4571-9dd1-facc318bf04e",
"createdAt": "2023-09-09T04:02:48.379Z",
"updatedAt": "2023-09-09T04:02:48.379Z",
"description": null
},
{
"code": "00005201808002",
"name": "UBS",
"vendorId": "e5007505-6648-4dcb-8154-8bc32aeabec4",
"createdAt": "2023-09-09T04:02:48.379Z",
"updatedAt": "2023-09-09T04:02:48.379Z",
"description": null
},
{
"code": "00005201808003",
"name": "VENDOR LAIN",
"vendorId": "0f8d4e03-506f-42f4-b47d-9f4c47c43880",
"createdAt": "2023-09-09T04:02:48.379Z",
"updatedAt": "2023-09-09T04:02:48.379Z",
"description": null
},
{
"code": "00005201808004",
"name": "ANTAM MARKETPLACE",
"vendorId": "d608e333-6089-4955-9027-e90681fa3834",
"createdAt": "2023-09-09T04:02:48.379Z",
"updatedAt": "2023-09-09T04:02:48.379Z",
"description": null
},
{
"code": "00005201808005",
"name": "UBS MARKETPLACE",
"vendorId": "9eb599fa-ce77-4ade-9c81-b1eeca567752",
"createdAt": "2023-09-09T04:02:48.379Z",
"updatedAt": "2023-09-09T04:02:48.379Z",
"description": null
},
{
"code": "00005201808006",
"name": "ANTAM MULIA RETRO",
"vendorId": "1722c63a-de21-4822-aa6c-cbfc38305571",
"createdAt": "2023-09-09T04:02:48.379Z",
"updatedAt": "2023-09-09T04:02:48.379Z",
"description": null
},
{
"code": "00005201808007",
"name": "ANTAM BATIK",
"vendorId": "5df7cb3a-043b-42ed-983b-921ee27ca911",
"createdAt": "2023-09-09T04:02:48.379Z",
"updatedAt": "2023-09-09T04:02:48.379Z",
"description": null
},
{
"code": "00005201905007",
"name": "ANTAM NON PEGADAIAN",
"vendorId": "5ab84c0b-148e-49b0-b29a-16ca1357aeef",
"createdAt": "2023-09-09T04:02:48.379Z",
"updatedAt": "2023-09-09T04:02:48.379Z",
"description": null
}
],
"total": 25,
"dataset": "vendors",
"provider": "galeri24"
}
```
---
### Outlets
Counter directory with address, hours, phone and map pin, filterable by city.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:galeri24/outlets`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `city` | string | query | no | Keep only counters in this city, case-insensitive substring. |
| `onPegadaian` | enum(true|false) | query | no | Keep only counters that do or do not sit inside a Pegadaian branch. |
| `page` | number | query | no | Page of counters. Default 1. |
| `limit` | number | query | no | Counters per page. Default 50, max 200. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:galeri24/outlets?city=Bandung&onPegadaian=true&page=1&limit=50" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:galeri24/outlets?city=Bandung&onPegadaian=true&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:galeri24/outlets?city=Bandung&onPegadaian=true&page=1&limit=50",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"city": "Bandung",
"page": 1,
"count": 3,
"items": [
{
"city": "Bandung",
"name": "Distro Pungkur",
"mapUrl": "https://maps.app.goo.gl/YSVzTofWuUnSZ7c79",
"address": "Jl. Pungkur No. 123 Balong Gede, Regol, Bandung, Jawa Barat 40252",
"contact": "+6281113901279",
"outletId": "ea6f8c67-5315-4c79-accc-56b993a393fb",
"createdAt": "2023-09-09T04:02:48.278Z",
"updatedAt": "2025-04-14T04:22:14.194Z",
"onPegadaian": true,
"operational": "Senin s.d Jumat 08.00 - 15.00 & Sabtu 08.00 - 12.00"
},
{
"city": "Bandung",
"name": "Distro Ujung Berung",
"mapUrl": "https://maps.app.goo.gl/qJKYSwcdzkhEX4xR7",
"address": "Jl. Sukup Baru No.1A Pasir Endah, Kec. Ujung Berung, Kota Bandung, Jawa Barat. 40612",
"contact": "+6281113708609",
"outletId": "44598921-d3e9-40aa-9ca0-ab0b01ad2e09",
"createdAt": "2023-09-09T04:02:48.278Z",
"updatedAt": "2025-04-14T04:09:04.789Z",
"onPegadaian": true,
"operational": "Senin s.d Jumat 08.00 - 15.00 , Sabtu & Minggu 08.00 - 12.00"
},
{
"city": "Bandung",
"name": "J-Store Kantor Pos Banda",
"mapUrl": "https://maps.app.goo.gl/1VYnyBjMmT9UkPJA8",
"address": "Jl.Banda No.30 Lantai 1 Blok B Graha Pos Indonesia, Bandung, Jawa Barat 40115",
"contact": "+6281112524468",
"outletId": "e10373f2-f81e-47ea-b298-93a90f9f0dab",
"createdAt": "2023-09-09T04:02:48.278Z",
"updatedAt": "2025-04-14T03:41:01.951Z",
"onPegadaian": false,
"operational": "Senin s.d Jumat 09.30 - 16.00 & Sabtu 09.30 - 13.00"
}
],
"total": 3,
"covered": 114,
"dataset": "outlets",
"hasMore": false,
"nextPage": null,
"provider": "galeri24",
"reported": 114,
"citiesAvailable": [
"Ambon",
"Balikpapan",
"Banda Aceh",
"Bandar Lampung",
"Bandung",
"Bangkalan",
"Banjarmasin",
"Banyuwangi"
]
}
```
---
### Products
Storefront catalogue with price, stock, rating and active promos.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:galeri24/products`
- **Cache TTL:** 1800s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `page` | number | query | no | Page of variants. Default 1. The upstream fixes the page at 20 items. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:galeri24/products?page=1" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:galeri24/products?page=1", {
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:galeri24/products?page=1",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"page": 1,
"count": 20,
"items": [
{
"sku": "GE-1071649",
"name": "1,8 gr [GE-1071649] By LOTUS",
"image": "https://galeri24.co.id/images/3c28107839d89b2f5166c816d4da08ee",
"price": 3789000,
"stock": 1,
"promos": [
{
"name": "HUT GALERI KE-8",
"type": "PERCENTAGE",
"used": 0,
"quota": 1,
"amount": 2.5,
"endDate": "2026-08-31T07:30:48.000Z",
"promoId": "e4ae5f54-f537-4371-b1c0-b2e639d86a64",
"isActive": true,
"startDate": "2026-08-06T01:26:11.000Z",
"limitPerTransaction": 1
}
],
"rating": 0,
"product": "Giwang Malika",
"category": "Anting",
"isNewest": true,
"createdAt": "2026-07-17T05:34:52.343Z",
"imageName": "1071649_kdcz1lg06c_2025-12-20-15-03-42.jpg",
"productId": "a222ae58-471d-498d-b9df-feca66a9caac",
"updatedAt": "2026-08-29T03:49:05.691Z",
"variantId": "ddbd29a0-03f6-4538-a1ee-33a3dcdefdd1",
"categoryId": "13b6c3f9-9470-4152-a677-f3c830e05b5c",
"orderCount": 0,
"weightGram": 1.8,
"description": "\"Giwang Malika- 1,8 gr [GE-1071649] By LOTUS \n_________________________________________\n\nNomor Serial (SKU) : GE-1071649 \nBerat : 1,8 gr \nKadar : 18k \nWarna : Rose Gold\nInformasi Penting :\n\n1. Pembeli wajib mengirimkan Nomor KTP, Nama Lengkap, dan Nomor Telephone untuk pembuatan kwitansi.\n2. Untuk Harga Emas bisa berubah ubah dan diupdate pada jam 09.30 - 10.00, untuk setiap transaksi yang di lakukan apabila ada kelebihan dana maka tidak dapat di Kembalikan dan Apabila harga mengalami kenaikan signifikan maka Galeri 24 berhak membatalkan transaksi.\n3. Untuk proses Retur/Refund bisa di lakukan dengan persyaratan: \n-Customer harus melakukan video unboxing tanpa pause\n-Untuk Pelaporan hanya berlaku 1x24 Jam Sejak barang diterima \n-Untuk ketentuan proses refund valid atau tidak berdasarkan video dan penilaian sepenuh nya ada di Pihak Galeri 24\n4. Persyaratan Perhiasan & Emas Batangan akan dicek / diinspeksi oleh pihak Galeri 24. Bila spesifikasi Perhiasan & Emas Batangan tidak serupa dengan yang tertera di Kwitansi pembelian, maka pihak Galeri 24 berhak untuk menolak program Buy-Back yang diajukan\n5. Pada saat proses check out customer telah menyetujui Spesifikasi barang yang di pilih ( warna, kadar, berat dan ukuran)\n6. Semua produk dikemas dalam kardus yang tersegel dan dilindungi dengan asuransi. Paket jangan diterima jika segel rusak\n\nInformasi Pengiriman:\nTransaksi sampai dengan jam 12.00 WIB akan diproses di hari yang sama. Transaksi di atas jam 12.00 WIB akan diproses pada hari kerja berikutnya. Hari Sabtu, Minggu dan tanggal merah tidak ada pengiriman dan akan dikirimkan di hari kerja.\n\nJika kurang paham, harap bertanya kepada admin ya. Membeli berarti sudah paham.\nTerima kasih! Happy Shopping Sohib Galeri24!\n\"",
"productSlug": "giwang-malika-ormhl",
"reviewCount": 0,
"imageMimeType": "image/jpeg",
"isRecommended": false,
"shippingWeight": 10
},
{
"sku": "GE-875639",
"name": "1.79 gr [GE-875639] By HWT",
"image": "https://galeri24.co.id/images/7f26b0c0904f4cafc220efe641c5fe4c",
"price": 3416000,
"stock": 1,
"promos": [
{
"name": "HUT GALERI KE-8",
"type": "PERCENTAGE",
"used": 0,
"quota": 1,
"amount": 2.5,
"endDate": "2026-08-31T07:30:48.000Z",
"promoId": "e4ae5f54-f537-4371-b1c0-b2e639d86a64",
"isActive": true,
"startDate": "2026-08-06T01:26:11.000Z",
"limitPerTransaction": 1
}
],
"rating": 0,
"product": "Anting Circle",
"category": "Anting",
"isNewest": true,
"createdAt": "2026-07-17T05:28:03.611Z",
"imageName": "875639__2024-04-23-14-54-12-2.jpg",
"productId": "68561b09-daab-43b5-aa07-6241d965da2a",
"updatedAt": "2026-08-29T03:49:05.718Z",
"variantId": "9d82571b-4a09-448b-ba68-23d47f856340",
"categoryId": "13b6c3f9-9470-4152-a677-f3c830e05b5c",
"orderCount": 0,
"weightGram": 1.79,
"description": "\"Anting Circle- 1.79 gr [GE-875639] By HWT\n_________________________________________\n\nNomor Serial (SKU) : GE-875639 \nBerat : 1.79 gr \nKadar : 16K \nWarna : Rose Gold\nInformasi Penting :\n\n1. Pembeli wajib mengirimkan Nomor KTP, Nama Lengkap, dan Nomor Telephone untuk pembuatan kwitansi.\n2. Untuk Harga Emas bisa berubah ubah dan diupdate pada jam 09.30 - 10.00, untuk setiap transaksi yang di lakukan apabila ada kelebihan dana maka tidak dapat di Kembalikan dan Apabila harga mengalami kenaikan signifikan maka Galeri 24 berhak membatalkan transaksi.\n3. Untuk proses Retur/Refund bisa di lakukan dengan persyaratan: \n-Customer harus melakukan video unboxing tanpa pause\n-Untuk Pelaporan hanya berlaku 1x24 Jam Sejak barang diterima \n-Untuk ketentuan proses refund valid atau tidak berdasarkan video dan penilaian sepenuh nya ada di Pihak Galeri 24\n4. Persyaratan Perhiasan & Emas Batangan akan dicek / diinspeksi oleh pihak Galeri 24. Bila spesifikasi Perhiasan & Emas Batangan tidak serupa dengan yang tertera di Kwitansi pembelian, maka pihak Galeri 24 berhak untuk menolak program Buy-Back yang diajukan\n5. Pada saat proses check out customer telah menyetujui Spesifikasi barang yang di pilih ( warna, kadar, berat dan ukuran)\n6. Semua produk dikemas dalam kardus yang tersegel dan dilindungi dengan asuransi. Paket jangan diterima jika segel rusak\n\nInformasi Pengiriman:\nTransaksi sampai dengan jam 12.00 WIB akan diproses di hari yang sama. Transaksi di atas jam 12.00 WIB akan diproses pada hari kerja berikutnya. Hari Sabtu, Minggu dan tanggal merah tidak ada pengiriman dan akan dikirimkan di hari kerja.\n\nJika kurang paham, harap bertanya kepada admin ya. Membeli berarti sudah paham.\nTerima kasih! Happy Shopping Sohib Galeri24!\n\"",
"productSlug": "anting-circle-2oupw",
"reviewCount": 0,
"imageMimeType": "image/jpeg",
"isRecommended": false,
"shippingWeight": 10
},
{
"sku": "GE-1071647",
"name": "2,07 gr [GE-1071647] By Lotus",
"image": "https://galeri24.co.id/images/3b8e4ce3e336a5097659d2bac3d024a5",
"price": 4357000,
"stock": 1,
"promos": [
{
"name": "HUT GALERI KE-8",
"type": "PERCENTAGE",
"used": 0,
"quota": 1,
"amount": 2.5,
"endDate": "2026-08-31T07:30:48.000Z",
"promoId": "e4ae5f54-f537-4371-b1c0-b2e639d86a64",
"isActive": true,
"startDate": "2026-08-06T01:26:11.000Z",
"limitPerTransaction": 1
}
],
"rating": 0,
"product": "Giwang Buna",
"category": "Anting",
"isNewest": true,
"createdAt": "2026-07-17T05:24:44.529Z",
"imageName": "1071647_6nscou2b9ni_2025-12-20-15-49-55.jpg",
"productId": "f91ddf4b-042a-447c-9b67-2377dc3d3fda",
"updatedAt": "2026-08-29T03:49:05.899Z",
"variantId": "6ec6d5c1-09b8-45bc-a1d5-e12a4be64430",
"categoryId": "13b6c3f9-9470-4152-a677-f3c830e05b5c",
"orderCount": 0,
"weightGram": 2.07,
"description": "\"Giwang Buna- 2,07 gr [GE-1071647] By Lotus \n_________________________________________\n\nNomor Serial (SKU) : GE-1071647 \nBerat : 2,07 gr \nKadar : 18k \nWarna : Putih\nInformasi Penting :\n\n1. Pembeli wajib mengirimkan Nomor KTP, Nama Lengkap, dan Nomor Telephone untuk pembuatan kwitansi.\n2. Untuk Harga Emas bisa berubah ubah dan diupdate pada jam 09.30 - 10.00, untuk setiap transaksi yang di lakukan apabila ada kelebihan dana maka tidak dapat di Kembalikan dan Apabila harga mengalami kenaikan signifikan maka Galeri 24 berhak membatalkan transaksi.\n3. Untuk proses Retur/Refund bisa di lakukan dengan persyaratan: \n-Customer harus melakukan video unboxing tanpa pause\n-Untuk Pelaporan hanya berlaku 1x24 Jam Sejak barang diterima \n-Untuk ketentuan proses refund valid atau tidak berdasarkan video dan penilaian sepenuh nya ada di Pihak Galeri 24\n4. Persyaratan Perhiasan & Emas Batangan akan dicek / diinspeksi oleh pihak Galeri 24. Bila spesifikasi Perhiasan & Emas Batangan tidak serupa dengan yang tertera di Kwitansi pembelian, maka pihak Galeri 24 berhak untuk menolak program Buy-Back yang diajukan\n5. Pada saat proses check out customer telah menyetujui Spesifikasi barang yang di pilih ( warna, kadar, berat dan ukuran)\n6. Semua produk dikemas dalam kardus yang tersegel dan dilindungi dengan asuransi. Paket jangan diterima jika segel rusak\n\nInformasi Pengiriman:\nTransaksi sampai dengan jam 12.00 WIB akan diproses di hari yang sama. Transaksi di atas jam 12.00 WIB akan diproses pada hari kerja berikutnya. Hari Sabtu, Minggu dan tanggal merah tidak ada pengiriman dan akan dikirimkan di hari kerja.\n\nJika kurang paham, harap bertanya kepada admin ya. Membeli berarti sudah paham.\nTerima kasih! Happy Shopping Sohib Galeri24!\n\"",
"productSlug": "giwang-buna-dej2p",
"reviewCount": 0,
"imageMimeType": "image/jpeg",
"isRecommended": false,
"shippingWeight": 10
},
{
"sku": "GE-908545",
"name": "3.51 gr [GE-908545] By UBS",
"image": "https://galeri24.co.id/images/643f3781ca93b415501e0bba2eecb880",
"price": 7580000,
"stock": 1,
"promos": [
{
"name": "HUT GALERI KE-8",
"type": "PERCENTAGE",
"used": 0,
"quota": 1,
"amount": 2.5,
"endDate": "2026-08-31T07:30:48.000Z",
"promoId": "e4ae5f54-f537-4371-b1c0-b2e639d86a64",
"isActive": true,
"startDate": "2026-08-06T01:26:11.000Z",
"limitPerTransaction": 1
}
],
"rating": 0,
"product": "Anting Abirama",
"category": "Anting",
"isNewest": true,
"createdAt": "2026-07-17T05:22:22.462Z",
"imageName": "2024-09-04-15-12-10-616.jpg",
"productId": "f828a2d0-ed47-432b-94ab-d502147962a5",
"updatedAt": "2026-08-29T03:49:06.090Z",
"variantId": "7f8216b9-da45-434d-bdef-49783a458bbe",
"categoryId": "13b6c3f9-9470-4152-a677-f3c830e05b5c",
"orderCount": 0,
"weightGram": 3.51,
"description": "\"Anting Abirama- 3.51 gr [GE-908545] By UBS \n_________________________________________\n\nNomor Serial (SKU) : GE-908545 \nBerat : 3.51 gr \nKadar : 17k \nWarna : combination\nInformasi Penting :\n\n1. Pembeli wajib mengirimkan Nomor KTP, Nama Lengkap, dan Nomor Telephone untuk pembuatan kwitansi.\n2. Untuk Harga Emas bisa berubah ubah dan diupdate pada jam 09.30 - 10.00, untuk setiap transaksi yang di lakukan apabila ada kelebihan dana maka tidak dapat di Kembalikan dan Apabila harga mengalami kenaikan signifikan maka Galeri 24 berhak membatalkan transaksi.\n3. Untuk proses Retur/Refund bisa di lakukan dengan persyaratan: \n-Customer harus melakukan video unboxing tanpa pause\n-Untuk Pelaporan hanya berlaku 1x24 Jam Sejak barang diterima \n-Untuk ketentuan proses refund valid atau tidak berdasarkan video dan penilaian sepenuh nya ada di Pihak Galeri 24\n4. Persyaratan Perhiasan & Emas Batangan akan dicek / diinspeksi oleh pihak Galeri 24. Bila spesifikasi Perhiasan & Emas Batangan tidak serupa dengan yang tertera di Kwitansi pembelian, maka pihak Galeri 24 berhak untuk menolak program Buy-Back yang diajukan\n5. Pada saat proses check out customer telah menyetujui Spesifikasi barang yang di pilih ( warna, kadar, berat dan ukuran)\n6. Semua produk dikemas dalam kardus yang tersegel dan dilindungi dengan asuransi. Paket jangan diterima jika segel rusak\n\nInformasi Pengiriman:\nTransaksi sampai dengan jam 12.00 WIB akan diproses di hari yang sama. Transaksi di atas jam 12.00 WIB akan diproses pada hari kerja berikutnya. Hari Sabtu, Minggu dan tanggal merah tidak ada pengiriman dan akan dikirimkan di hari kerja.\n\nJika kurang paham, harap bertanya kepada admin ya. Membeli berarti sudah paham.\nTerima kasih! Happy Shopping Sohib Galeri24!\n\"",
"productSlug": "anting-abirama-r2czz",
"reviewCount": 0,
"imageMimeType": "image/jpeg",
"isRecommended": false,
"shippingWeight": 10
},
{
"sku": "GE-1045170",
"name": "1.63 gr [GE-1045170] By UBS",
"image": "https://galeri24.co.id/images/9bfb9af9327361483530a124e023ef60",
"price": 3438000,
"stock": 1,
"promos": [
{
"name": "HUT GALERI KE-8",
"type": "PERCENTAGE",
"used": 0,
"quota": 1,
"amount": 2.5,
"endDate": "2026-08-31T07:30:48.000Z",
"promoId": "e4ae5f54-f537-4371-b1c0-b2e639d86a64",
"isActive": true,
"startDate": "2026-08-06T01:26:11.000Z",
"limitPerTransaction": 1
}
],
"rating": 0,
"product": "Anting Roses",
"category": "Anting",
"isNewest": true,
"createdAt": "2026-07-17T05:16:51.923Z",
"imageName": "1045170_7idou7josao_2025-11-01-17-55-22.jpg",
"productId": "46fbeef4-2316-4bac-89e3-5389f4d35819",
"updatedAt": "2026-08-29T03:49:06.110Z",
"variantId": "f33cfb6c-154c-4bb1-8f15-9ecaeb245a28",
"categoryId": "13b6c3f9-9470-4152-a677-f3c830e05b5c",
"orderCount": 0,
"weightGram": 1.63,
"description": "\"Anting Roses- 1.63 gr [GE-1045170] By ubs \n_________________________________________\n\nNomor Serial (SKU) : GE-1045170 \nBerat : 1.63 gr \nKadar : 17k \nWarna : rosegold\nInformasi Penting :\n\n1. Pembeli wajib mengirimkan Nomor KTP, Nama Lengkap, dan Nomor Telephone untuk pembuatan kwitansi.\n2. Untuk Harga Emas bisa berubah ubah dan diupdate pada jam 09.30 - 10.00, untuk setiap transaksi yang di lakukan apabila ada kelebihan dana maka tidak dapat di Kembalikan dan Apabila harga mengalami kenaikan signifikan maka Galeri 24 berhak membatalkan transaksi.\n3. Untuk proses Retur/Refund bisa di lakukan dengan persyaratan: \n-Customer harus melakukan video unboxing tanpa pause\n-Untuk Pelaporan hanya berlaku 1x24 Jam Sejak barang diterima \n-Untuk ketentuan proses refund valid atau tidak berdasarkan video dan penilaian sepenuh nya ada di Pihak Galeri 24\n4. Persyaratan Perhiasan & Emas Batangan akan dicek / diinspeksi oleh pihak Galeri 24. Bila spesifikasi Perhiasan & Emas Batangan tidak serupa dengan yang tertera di Kwitansi pembelian, maka pihak Galeri 24 berhak untuk menolak program Buy-Back yang diajukan\n5. Pada saat proses check out customer telah menyetujui Spesifikasi barang yang di pilih ( warna, kadar, berat dan ukuran)\n6. Semua produk dikemas dalam kardus yang tersegel dan dilindungi dengan asuransi. Paket jangan diterima jika segel rusak\n\nInformasi Pengiriman:\nTransaksi sampai dengan jam 12.00 WIB akan diproses di hari yang sama. Transaksi di atas jam 12.00 WIB akan diproses pada hari kerja berikutnya. Hari Sabtu, Minggu dan tanggal merah tidak ada pengiriman dan akan dikirimkan di hari kerja.\n\nJika kurang paham, harap bertanya kepada admin ya. Membeli berarti sudah paham.\nTerima kasih! Happy Shopping Sohib Galeri24!\n\"",
"productSlug": "anting-roses-4d10x",
"reviewCount": 0,
"imageMimeType": "image/jpeg",
"isRecommended": false,
"shippingWeight": 10
},
{
"sku": "GE-911992",
"name": "1.82 gr [GE-911992] By HWT",
"image": "https://galeri24.co.id/images/7a5a2fde0e6f25d88ce9cbc1c7a16dfe",
"price": 3702000,
"stock": 1,
"promos": [
{
"name": "HUT GALERI KE-8",
"type": "PERCENTAGE",
"used": 0,
"quota": 1,
"amount": 2.5,
"endDate": "2026-08-31T07:30:48.000Z",
"promoId": "e4ae5f54-f537-4371-b1c0-b2e639d86a64",
"isActive": true,
"startDate": "2026-08-06T01:26:11.000Z",
"limitPerTransaction": 1
}
],
"rating": 0,
"product": "Anting Migo",
"category": "Anting",
"isNewest": true,
"createdAt": "2026-07-17T05:14:54.206Z",
"imageName": "911992_vptheknqmj_2024-10-17-10-41-52.jpg",
"productId": "d75377ce-b483-428a-bfcd-dabdc492e812",
"updatedAt": "2026-08-29T03:49:06.124Z",
"variantId": "438a014b-aba3-40bf-a991-b0728778d566",
"categoryId": "13b6c3f9-9470-4152-a677-f3c830e05b5c",
"orderCount": 0,
"weightGram": 1.82,
"description": "\"Anting Migo- 1.82 gr [GE-911992] By Hwt \n_________________________________________\n\nNomor Serial (SKU) : GE-911992 \nBerat : 1.82 gr \nKadar : 17K \nWarna : rosegold\nInformasi Penting :\n\n1. Pembeli wajib mengirimkan Nomor KTP, Nama Lengkap, dan Nomor Telephone untuk pembuatan kwitansi.\n2. Untuk Harga Emas bisa berubah ubah dan diupdate pada jam 09.30 - 10.00, untuk setiap transaksi yang di lakukan apabila ada kelebihan dana maka tidak dapat di Kembalikan dan Apabila harga mengalami kenaikan signifikan maka Galeri 24 berhak membatalkan transaksi.\n3. Untuk proses Retur/Refund bisa di lakukan dengan persyaratan: \n-Customer harus melakukan video unboxing tanpa pause\n-Untuk Pelaporan hanya berlaku 1x24 Jam Sejak barang diterima \n-Untuk ketentuan proses refund valid atau tidak berdasarkan video dan penilaian sepenuh nya ada di Pihak Galeri 24\n4. Persyaratan Perhiasan & Emas Batangan akan dicek / diinspeksi oleh pihak Galeri 24. Bila spesifikasi Perhiasan & Emas Batangan tidak serupa dengan yang tertera di Kwitansi pembelian, maka pihak Galeri 24 berhak untuk menolak program Buy-Back yang diajukan\n5. Pada saat proses check out customer telah menyetujui Spesifikasi barang yang di pilih ( warna, kadar, berat dan ukuran)\n6. Semua produk dikemas dalam kardus yang tersegel dan dilindungi dengan asuransi. Paket jangan diterima jika segel rusak\n\nInformasi Pengiriman:\nTransaksi sampai dengan jam 12.00 WIB akan diproses di hari yang sama. Transaksi di atas jam 12.00 WIB akan diproses pada hari kerja berikutnya. Hari Sabtu, Minggu dan tanggal merah tidak ada pengiriman dan akan dikirimkan di hari kerja.\n\nJika kurang paham, harap bertanya kepada admin ya. Membeli berarti sudah paham.\nTerima kasih! Happy Shopping Sohib Galeri24!\n\"",
"productSlug": "anting-migo-yb5o8",
"reviewCount": 0,
"imageMimeType": "image/jpeg",
"isRecommended": false,
"shippingWeight": 10
},
{
"sku": "GE-1130004",
"name": "4.55 gr [GE-1130004] By HWT",
"image": "https://galeri24.co.id/images/cf781f14f6e7dec58154b2348cc2471e",
"price": 9711000,
"stock": 1,
"promos": [
{
"name": "HUT GALERI KE-8",
"type": "PERCENTAGE",
"used": 0,
"quota": 1,
"amount": 2.5,
"endDate": "2026-08-31T07:30:48.000Z",
"promoId": "e4ae5f54-f537-4371-b1c0-b2e639d86a64",
"isActive": true,
"startDate": "2026-08-06T01:26:11.000Z",
"limitPerTransaction": 1
}
],
"rating": 0,
"product": "Anting Iman-",
"category": "Anting",
"isNewest": true,
"createdAt": "2026-07-17T05:11:14.051Z",
"imageName": "1130004_ofzeby056w_2026-05-30-10-50-14.jpg",
"productId": "bc95e3d3-0e61-4b5d-9dc3-88341907d27d",
"updatedAt": "2026-08-29T03:49:06.139Z",
"variantId": "d4018668-89ed-4591-a91f-163fc253ea65",
"categoryId": "13b6c3f9-9470-4152-a677-f3c830e05b5c",
"orderCount": 0,
"weightGram": 4.55,
"description": "\"Anting Iman- 4.55 gr [GE-1130004] By HWT \n_________________________________________\n\nNomor Serial (SKU) : GE-1130004 \nBerat : 4.55 gr \nKadar : 17K \nWarna : Putih\nInformasi Penting :\n\n1. Pembeli wajib mengirimkan Nomor KTP, Nama Lengkap, dan Nomor Telephone untuk pembuatan kwitansi.\n2. Untuk Harga Emas bisa berubah ubah dan diupdate pada jam 09.30 - 10.00, untuk setiap transaksi yang di lakukan apabila ada kelebihan dana maka tidak dapat di Kembalikan dan Apabila harga mengalami kenaikan signifikan maka Galeri 24 berhak membatalkan transaksi.\n3. Untuk proses Retur/Refund bisa di lakukan dengan persyaratan: \n-Customer harus melakukan video unboxing tanpa pause\n-Untuk Pelaporan hanya berlaku 1x24 Jam Sejak barang diterima \n-Untuk ketentuan proses refund valid atau tidak berdasarkan video dan penilaian sepenuh nya ada di Pihak Galeri 24\n4. Persyaratan Perhiasan & Emas Batangan akan dicek / diinspeksi oleh pihak Galeri 24. Bila spesifikasi Perhiasan & Emas Batangan tidak serupa dengan yang tertera di Kwitansi pembelian, maka pihak Galeri 24 berhak untuk menolak program Buy-Back yang diajukan\n5. Pada saat proses check out customer telah menyetujui Spesifikasi barang yang di pilih ( warna, kadar, berat dan ukuran)\n6. Semua produk dikemas dalam kardus yang tersegel dan dilindungi dengan asuransi. Paket jangan diterima jika segel rusak\n\nInformasi Pengiriman:\nTransaksi sampai dengan jam 12.00 WIB akan diproses di hari yang sama. Transaksi di atas jam 12.00 WIB akan diproses pada hari kerja berikutnya. Hari Sabtu, Minggu dan tanggal merah tidak ada pengiriman dan akan dikirimkan di hari kerja.\n\nJika kurang paham, harap bertanya kepada admin ya. Membeli berarti sudah paham.\nTerima kasih! Happy Shopping Sohib Galeri24!\n\"",
"productSlug": "anting-iman-xg3i0",
"reviewCount": 0,
"imageMimeType": "image/jpeg",
"isRecommended": false,
"shippingWeight": 10
},
{
"sku": "GE-1038689",
"name": "1.28 gr [GE-1038689] By UBS",
"image": "https://galeri24.co.id/images/4d306a16b6044bde0a4b18e360062035",
"price": 2700000,
"stock": 1,
"promos": [
{
"name": "HUT GALERI KE-8",
"type": "PERCENTAGE",
"used": 0,
"quota": 1,
"amount": 2.5,
"endDate": "2026-08-31T07:30:48.000Z",
"promoId": "e4ae5f54-f537-4371-b1c0-b2e639d86a64",
"isActive": true,
"startDate": "2026-08-06T01:26:11.000Z",
"limitPerTransaction": 1
}
],
"rating": 0,
"product": "Anting Celinea",
"category": "Anting",
"isNewest": true,
"createdAt": "2026-07-17T05:09:27.322Z",
"imageName": "1038689_kmalgj2sk7_2026-06-06-09-00-45.jpg",
"productId": "5aa299d0-39fa-4b9a-aa02-110a5b2d9a23",
"updatedAt": "2026-08-29T03:49:06.154Z",
"variantId": "2d5c40a1-6b06-458c-b1dd-13b7b940097a",
"categoryId": "13b6c3f9-9470-4152-a677-f3c830e05b5c",
"orderCount": 0,
"weightGram": 1.28,
"description": "\"Anting Celinea- 1.28 gr [GE-1038689] By UBS \n_________________________________________\n\nNomor Serial (SKU) : GE-1038689 \nBerat : 1.28 gr \nKadar : 17k \nWarna : rose Gold\nInformasi Penting :\n\n1. Pembeli wajib mengirimkan Nomor KTP, Nama Lengkap, dan Nomor Telephone untuk pembuatan kwitansi.\n2. Untuk Harga Emas bisa berubah ubah dan diupdate pada jam 09.30 - 10.00, untuk setiap transaksi yang di lakukan apabila ada kelebihan dana maka tidak dapat di Kembalikan dan Apabila harga mengalami kenaikan signifikan maka Galeri 24 berhak membatalkan transaksi.\n3. Untuk proses Retur/Refund bisa di lakukan dengan persyaratan: \n-Customer harus melakukan video unboxing tanpa pause\n-Untuk Pelaporan hanya berlaku 1x24 Jam Sejak barang diterima \n-Untuk ketentuan proses refund valid atau tidak berdasarkan video dan penilaian sepenuh nya ada di Pihak Galeri 24\n4. Persyaratan Perhiasan & Emas Batangan akan dicek / diinspeksi oleh pihak Galeri 24. Bila spesifikasi Perhiasan & Emas Batangan tidak serupa dengan yang tertera di Kwitansi pembelian, maka pihak Galeri 24 berhak untuk menolak program Buy-Back yang diajukan\n5. Pada saat proses check out customer telah menyetujui Spesifikasi barang yang di pilih ( warna, kadar, berat dan ukuran)\n6. Semua produk dikemas dalam kardus yang tersegel dan dilindungi dengan asuransi. Paket jangan diterima jika segel rusak\n\nInformasi Pengiriman:\nTransaksi sampai dengan jam 12.00 WIB akan diproses di hari yang sama. Transaksi di atas jam 12.00 WIB akan diproses pada hari kerja berikutnya. Hari Sabtu, Minggu dan tanggal merah tidak ada pengiriman dan akan dikirimkan di hari kerja.\n\nJika kurang paham, harap bertanya kepada admin ya. Membeli berarti sudah paham.\nTerima kasih! Happy Shopping Sohib Galeri24!\n\"",
"productSlug": "anting-celinea-yco9g",
"reviewCount": 0,
"imageMimeType": "image/jpeg",
"isRecommended": false,
"shippingWeight": 10
}
],
"total": 374,
"dataset": "products",
"hasMore": true,
"currency": "IDR",
"nextPage": 2,
"provider": "galeri24"
}
```
---
### Categories
Categories the storefront groups its catalogue into.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:galeri24/categories`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `menuOnly` | enum(true|false) | query | no | Keep only categories the storefront puts in its menu. Default false. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:galeri24/categories?menuOnly=true" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:galeri24/categories?menuOnly=true", {
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:galeri24/categories?menuOnly=true",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 9,
"items": [
{
"name": "Anting",
"image": null,
"isHome": false,
"isMenu": true,
"createdAt": "2023-11-22T09:53:22.423Z",
"imageName": "67e0a4959b24e071a9baa86b340d3048.jpg",
"updatedAt": "2024-01-25T07:21:11.534Z",
"categoryId": "13b6c3f9-9470-4152-a677-f3c830e05b5c",
"description": "desain kekinian Cocok buat gaya santai atau party, nih! bikin penampilan makin hits!",
"imageMimeType": "image/jpeg"
},
{
"name": "Berlian",
"image": "https://galeri24.co.id/images/e441754c09c91f110e3e5760939e9bc2",
"isHome": false,
"isMenu": true,
"createdAt": "2023-11-22T09:53:59.720Z",
"imageName": "Untitled design.jpg",
"updatedAt": "2024-02-13T08:49:52.831Z",
"categoryId": "f6833ef4-5d22-4b43-bf15-ba4842b57232",
"description": null,
"imageMimeType": "image/jpeg"
},
{
"name": "Cincin",
"image": null,
"isHome": false,
"isMenu": true,
"createdAt": "2023-11-22T09:53:32.709Z",
"imageName": "20548a47c2bd686fc490f8f72468277a.jpg",
"updatedAt": "2024-01-25T07:23:52.793Z",
"categoryId": "bde19b21-c773-490b-b771-7cf73be0b2ff",
"description": "desain kekinian nge-hits, Stay cool dengan cincin yang jadi statement fashion!",
"imageMimeType": "image/jpeg"
},
{
"name": "Emas Batangan",
"image": "https://galeri24.co.id/images/20ae6553a4d11c1b5d1e43be4c08e750",
"isHome": true,
"isMenu": true,
"createdAt": "2023-11-22T09:48:25.753Z",
"imageName": "DSC07733.jpg",
"updatedAt": "2024-02-13T08:46:48.194Z",
"categoryId": "f7e0a0b3-150e-4870-a5e7-5cc3fcabb4bd",
"description": null,
"imageMimeType": "image/jpeg"
},
{
"name": "Gelang",
"image": "https://galeri24.co.id/images/d17118479959bce8462da74e8c11d7d4",
"isHome": true,
"isMenu": true,
"createdAt": "2023-11-22T09:53:09.320Z",
"imageName": "DSC07685-3.jpg",
"updatedAt": "2024-02-13T08:49:05.810Z",
"categoryId": "91ecaf30-d3a0-49f9-a60a-964f3cd91c18",
"description": null,
"imageMimeType": "image/jpeg"
},
{
"name": "Gift",
"image": null,
"isHome": false,
"isMenu": true,
"createdAt": "2023-11-29T08:41:25.856Z",
"imageName": null,
"updatedAt": "2024-01-25T07:27:03.352Z",
"categoryId": "76650451-4459-4b36-9505-91a0b19f0844",
"description": "Logam Mulia Gift",
"imageMimeType": null
},
{
"name": "Kalung",
"image": "https://galeri24.co.id/images/0ccfc5451fcf2f3ec409361cf4742cc4",
"isHome": true,
"isMenu": true,
"createdAt": "2023-11-22T09:53:14.843Z",
"imageName": "DSC07604-3.jpg",
"updatedAt": "2024-02-13T08:50:10.648Z",
"categoryId": "0e265ade-b6c8-4f94-a400-a555338800ec",
"description": null,
"imageMimeType": "image/jpeg"
},
{
"name": "Liontin",
"image": null,
"isHome": false,
"isMenu": true,
"createdAt": "2023-11-22T09:53:27.228Z",
"imageName": "53c8a3f9440d6e5afe2877fe47b47675.jpg",
"updatedAt": "2024-01-25T07:27:11.742Z",
"categoryId": "78c837d5-b23a-4b8f-b1bf-bf0b53f4fabb",
"description": null,
"imageMimeType": "image/jpeg"
}
],
"total": 9,
"dataset": "categories",
"provider": "galeri24"
}
```
---
### Articles
Editorial feed of gold explainers and market notes.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:galeri24/articles`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `page` | number | query | no | Page of articles. Default 1. The upstream fixes the page at 20 items. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:galeri24/articles?page=1" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:galeri24/articles?page=1", {
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:galeri24/articles?page=1",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"page": 1,
"count": 20,
"items": [
{
"url": "https://galeri24.co.id/post/dolar-naik-apakah-emas-naik",
"slug": "dolar-naik-apakah-emas-naik",
"image": "https://galeri24.co.id/images/51faf97ed7bff767713ebe25f1ca190d",
"title": "Dolar Naik Apakah Emas Naik atau Turun? Cek Faktanya di Sini!",
"category": "[object Object]",
"metaTags": "harga emas, emas naik, emas",
"articleId": "106f2078-5088-49f6-8641-021b5dbe739b",
"createdAt": "2026-08-28T07:26:15.526Z",
"imageName": "dolar naik apakah emas naik.jpg",
"metaTitle": "Dolar Naik Apakah Emas Naik atau Turun? Cek Faktanya di Sini!",
"updatedAt": "2026-08-29T08:46:22.392Z",
"viewCount": 71,
"isPublished": true,
"publishedAt": "2026-08-28T07:37:15.000Z",
"imageMimeType": "image/jpeg",
"metaDescription": "Dolar naik apakah emas naik atau turun? Yuk, simak penjelasanya dalam artikel ini agar Anda bisa dapatkan harga emas yang ideal!"
},
{
"url": "https://galeri24.co.id/post/kadar-emas-21-karat-berapa-persen",
"slug": "kadar-emas-21-karat-berapa-persen",
"image": "https://galeri24.co.id/images/4b43cc2c344d6dc6d5c5e41b9a65b5be",
"title": "Kadar Emas 21 Karat Berapa Persen? Ketahui Cara Hitung dan Ciri Fisiknya!",
"category": "[object Object]",
"metaTags": "emas, emas batangan, emas asli",
"articleId": "06b549f9-975a-4a39-930e-3322a49d9225",
"createdAt": "2026-08-27T11:01:31.032Z",
"imageName": "Kadar Emas 21 Karat Berapa Persen.jpg",
"metaTitle": "Kadar Emas 21 Karat Berapa Persen? Ketahui Cara Hitung dan Ciri Fisiknya!",
"updatedAt": "2026-08-29T08:38:33.472Z",
"viewCount": 125,
"isPublished": true,
"publishedAt": "2026-08-27T11:17:29.000Z",
"imageMimeType": "image/jpeg",
"metaDescription": "Kadar emas 21 karat berapa persen? Cek cara hitung, estimasi, lengkap dengan ciri fisiknya. Simak di sini!"
},
{
"url": "https://galeri24.co.id/post/promo-26-26-agustus-dari-galeri-24",
"slug": "promo-26-26-agustus-dari-galeri-24",
"image": "https://galeri24.co.id/images/a9651fcc7f361b211b9c3948c264fca4",
"title": "Promo 26.26 Agustus dari Galeri 24, Pelanggan Berkesempatan Dapatkan Emas Batangan 0,02 Gram!",
"category": "[object Object]",
"metaTags": null,
"articleId": "d98677bc-2f2e-4aee-b27e-44028220a742",
"createdAt": "2026-08-26T08:23:27.979Z",
"imageName": "Web 26.26 (1).png",
"metaTitle": "Promo 26.26 Agustus dari Galeri 24, Pelanggan Berkesempatan Dapatkan Emas Batangan 0,02 Gram!",
"updatedAt": "2026-08-29T08:34:49.098Z",
"viewCount": 273,
"isPublished": true,
"publishedAt": "2026-08-26T08:23:45.000Z",
"imageMimeType": "image/png",
"metaDescription": "Ada kabar menarik bagi Anda yang sedang mencari promo emas. Galeri 24 kembali menghadirkan Promo Spesial 26.26, kali ini pada bulan Agustus."
},
{
"url": "https://galeri24.co.id/post/kode-emas-palsu",
"slug": "kode-emas-palsu",
"image": "https://galeri24.co.id/images/f8e2a8b6726aeae445626182ff9c134f",
"title": "Waspada Kode Emas Palsu, Kenali Ciri dan Cara Membedakannya!",
"category": "[object Object]",
"metaTags": "emas asli, emas, emas batangan",
"articleId": "e6c15aed-748e-4e57-af55-e7ac4735eeda",
"createdAt": "2026-08-24T09:24:12.182Z",
"imageName": "kode emas palsu.jpg",
"metaTitle": "Waspada Kode Emas Palsu, Kenali Ciri dan Cara Membedakannya!",
"updatedAt": "2026-08-29T08:36:15.882Z",
"viewCount": 482,
"isPublished": true,
"publishedAt": "2026-08-24T09:17:01.000Z",
"imageMimeType": "image/jpeg",
"metaDescription": "Kenali kode emas palsu agar Anda terhindar dari emas berkualitas buruk. Simak di sini!"
},
{
"url": "https://galeri24.co.id/post/pengadaan-pekerjaan-relokasi-renovasi",
"slug": "pengadaan-pekerjaan-relokasi-renovasi",
"image": "https://galeri24.co.id/images/6e27bb2bdf246e03a89fd2a101e1c3ea",
"title": "Pengadaan Pekerjaan Relokasi, Renovasi, Dan Penambahan Ruangan Pabrik SertaPengolahan Terintegrasi",
"category": "[object Object]",
"metaTags": "tender, pengadaan, pabrik",
"articleId": "6a0662e4-5754-4898-8323-812dd5a47acc",
"createdAt": "2026-08-21T06:56:50.618Z",
"imageName": "Open Tender Pabrik_1.png",
"metaTitle": "Pengadaan Pekerjaan Relokasi, Renovasi, Dan Penambahan Ruangan Pabrik SertaPengolahan Terintegrasi",
"updatedAt": "2026-08-29T05:36:35.928Z",
"viewCount": 306,
"isPublished": true,
"publishedAt": "2026-08-21T07:38:50.000Z",
"imageMimeType": "image/png",
"metaDescription": "PT Pegadaian Galeri Dua Empat (Galeri 24) membuka pelelangan pengadaan pekerjaan relokasi, renovasi, dan penambahan ruangan pabrik serta pengolahan terintegrasi"
},
{
"url": "https://galeri24.co.id/post/gaji-2-juta-dana-darurat-berapa",
"slug": "gaji-2-juta-dana-darurat-berapa",
"image": "https://galeri24.co.id/images/949b06c1978994e8689c1e35fc4a1d87",
"title": "Gaji 2 Juta Dana Darurat Berapa? Ini Cara Hitung dan Tips Mengumpulkannya!",
"category": "[object Object]",
"metaTags": "dana darurat, emas, investasi emas",
"articleId": "5081c401-40ea-4caa-b2c0-b15deeec1ce8",
"createdAt": "2026-08-14T07:29:30.019Z",
"imageName": "Gaji 2 juta dana darurat berapa.jpg",
"metaTitle": "Gaji 2 Juta Dana Darurat Berapa? Ini Cara Hitung dan Tips Mengumpulkannya!",
"updatedAt": "2026-08-29T08:38:51.299Z",
"viewCount": 266,
"isPublished": true,
"publishedAt": "2026-08-14T07:33:57.000Z",
"imageMimeType": "image/jpeg",
"metaDescription": "Gaji 2 juga dana darurat berapa? Khususnya bila Anda tertarik menyimpan emas. Simak penjelasannya di sini!"
},
{
"url": "https://galeri24.co.id/post/dana-darurat-disimpan-di-mana",
"slug": "dana-darurat-disimpan-di-mana",
"image": "https://galeri24.co.id/images/bf1e7b12b702e06a6ebc4e05ae035fdc",
"title": "Dana Darurat Disimpan di Mana? Ini 3 Tempat Paling Aman dan Likuid!",
"category": "[object Object]",
"metaTags": "dana darurat, emas, aset likuid",
"articleId": "607dd65e-0adb-4188-a1cc-5da6f637221c",
"createdAt": "2026-08-13T04:40:54.542Z",
"imageName": "Dana darurat disimpan dimana.jpg",
"metaTitle": "Dana Darurat Disimpan di Mana? Ini 3 Tempat Paling Aman dan Likuid!",
"updatedAt": "2026-08-29T08:12:19.456Z",
"viewCount": 249,
"isPublished": true,
"publishedAt": "2026-08-13T04:43:39.000Z",
"imageMimeType": "image/jpeg",
"metaDescription": "Dana darurat itu penting. Lalu, dana darurat disimpan di mana? Berikut rekomendasinya untuk Anda!"
},
{
"url": "https://galeri24.co.id/post/promo-semarak-kemerdekaan-bersama-galeri-24",
"slug": "promo-semarak-kemerdekaan-bersama-galeri-24",
"image": "https://galeri24.co.id/images/16559ca488566fa97be1b5b1c8fecf63",
"title": "Promo Semarak Kemerdekaan Bersama Galeri 24, Dapatkan Diskon Emas Batangan, Perhiasan, dan Berlian!",
"category": "[object Object]",
"metaTags": "promo galeri 24, kemerdekaan, promo emas",
"articleId": "0dabaefd-918f-478b-b74e-b26e395dae96",
"createdAt": "2026-08-12T10:47:27.871Z",
"imageName": "G24_Agustus_Week 4_Promo Kemerdekaan Banner Web.png",
"metaTitle": "Promo Semarak Kemerdekaan Bersama Galeri 24, Dapatkan Diskon Emas Batangan, Perhiasan, dan Berlian!",
"updatedAt": "2026-08-29T07:15:40.959Z",
"viewCount": 426,
"isPublished": true,
"publishedAt": "2026-08-12T10:47:36.000Z",
"imageMimeType": "image/png",
"metaDescription": "Demi menyambut perayaan 17 Agustus, Galeri 24 menghadirkan promo khusus dengan tajuk Semarak Kemerdekaan Bersama Galeri 24!"
}
],
"total": 1730,
"dataset": "articles",
"hasMore": true,
"nextPage": 2,
"provider": "galeri24"
}
```
---
### Banners
Storefront banners, grouped by the slot each fills.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:galeri24/banners`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `group` | string | query | no | Keep only banners in this slot, case-insensitive. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:galeri24/banners?group=HERO" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:galeri24/banners?group=HERO", {
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:galeri24/banners?group=HERO",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 5,
"items": [
{
"group": "HERO",
"image": "https://galeri24.co.id/images/5da27b700394f429806039cc3328e610",
"title": "-",
"ctaUrl": null,
"bannerId": "08933288-3295-4478-a047-ae795803bf74",
"ctaLabel": null,
"createdAt": "2026-08-03T06:36:42.940Z",
"imageName": "G24_AGUSTUS_WEEK_3 - PROMO HUT 8 TAHUN GALERI 24 Format Banner.jpg",
"updatedAt": "2026-08-03T06:36:42.940Z",
"description": "-",
"orderNumber": 0,
"imageMimeType": "image/jpeg"
},
{
"group": "HERO",
"image": "https://galeri24.co.id/images/fba8686753ec792a17da6aad7fb84d4a",
"title": ".",
"ctaUrl": null,
"bannerId": "3650faa8-638b-4838-a03d-f12f0627b88a",
"ctaLabel": null,
"createdAt": "2026-06-11T14:26:06.395Z",
"imageName": "Copy of Template - Banner Website (2).png",
"updatedAt": "2026-06-11T14:26:06.395Z",
"description": ".",
"orderNumber": 0,
"imageMimeType": "image/png"
},
{
"group": "HERO",
"image": "https://galeri24.co.id/images/9f113516e5c746dd6542b3277895c83c",
"title": "-",
"ctaUrl": null,
"bannerId": "4720e6c1-9bb9-4650-b58d-c7f6d668907c",
"ctaLabel": null,
"createdAt": "2026-07-27T07:31:23.389Z",
"imageName": "Info Pengiriman Online (1).png",
"updatedAt": "2026-07-27T07:31:23.389Z",
"description": "-",
"orderNumber": 0,
"imageMimeType": "image/png"
},
{
"group": "HERO",
"image": "https://galeri24.co.id/images/11e0f5714449e2edf8749f88aeb9fef4",
"title": ".",
"ctaUrl": null,
"bannerId": "cf4b1863-0955-429f-a021-0921485c6007",
"ctaLabel": null,
"createdAt": "2025-12-20T07:46:35.871Z",
"imageName": "Melayani Sepenuh Hati - 1600x900.png",
"updatedAt": "2025-12-22T01:37:33.705Z",
"description": ".",
"orderNumber": 1,
"imageMimeType": "image/png"
},
{
"group": "HERO",
"image": "https://galeri24.co.id/images/a17b2a75191f64836ab6eb1d2b57ee3b",
"title": "-",
"ctaUrl": null,
"bannerId": "88398fdd-e801-46f5-b237-c202d2233593",
"ctaLabel": null,
"createdAt": "2024-11-20T08:37:57.954Z",
"imageName": "Copy of Template - Banner Website (3).png",
"updatedAt": "2026-06-11T14:27:14.221Z",
"description": null,
"orderNumber": 2,
"imageMimeType": "image/png"
}
],
"total": 5,
"dataset": "banners",
"provider": "galeri24"
}
```
---
### Page sections
Editable copy blocks the storefront renders around the price board.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:galeri24/sections`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `slug` | string | query | no | Keep only the section with this slug. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:galeri24/sections?slug=gold-price-cta" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:galeri24/sections?slug=gold-price-cta", {
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:galeri24/sections?slug=gold-price-cta",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 16,
"items": [
{
"slug": "gold-price-cta",
"title": "Produk Emas Batangan",
"content": "Harga Emas Batangan",
"createdAt": "2023-10-11T08:23:29.031Z",
"itemCount": 0,
"sectionId": "020589f7-86b3-4c5c-903d-54c8f29129ef",
"updatedAt": "2024-01-31T10:27:52.587Z",
"imageCount": 0
},
{
"slug": "header-gold-price",
"title": "Harga Emas",
"content": "*) Harga dapat berubah sewaktu Waktu.\n**) Harga yang berlaku adalah harga yang tertera pada sistem Galeri 24",
"createdAt": "2023-10-11T08:23:28.805Z",
"itemCount": 0,
"sectionId": "03c11398-9bc3-492d-a8be-f5a57ab90b1b",
"updatedAt": "2025-05-28T07:24:22.985Z",
"imageCount": 1
},
{
"slug": "header-home",
"title": "Welcome",
"content": "Selamat datang di Galeri 24",
"createdAt": "2023-10-11T08:23:24.331Z",
"itemCount": 0,
"sectionId": "0da51115-f4ad-439d-8f48-d5c17e83a096",
"updatedAt": "2024-01-31T10:24:21.764Z",
"imageCount": 0
},
{
"slug": "header-outlet",
"title": "Outlet Kami",
"content": "Anda dapat dengan mudah menemukan kami di Seluruh Indonesia.",
"createdAt": "2023-10-11T08:23:28.389Z",
"itemCount": 0,
"sectionId": "1283bd2f-367b-4b8b-aa4b-1b8ac24a7e1f",
"updatedAt": "2024-02-06T01:41:55.273Z",
"imageCount": 0
},
{
"slug": "header-faq",
"title": "Pertanyaan yang Sering Diajukan (FAQ)",
"content": "Jika masih belum menemukan jawaban, silahkan kontak kami melalui chat dibawah.",
"createdAt": "2023-10-11T08:23:29.239Z",
"itemCount": 0,
"sectionId": "33b96c6d-ff77-4217-9ef8-a1dfdbe64030",
"updatedAt": "2024-02-06T01:40:24.014Z",
"imageCount": 0
},
{
"slug": "about-story-one",
"title": "Cerita Tentang Kami",
"content": "PT Pegadaian Galeri Dua Empat pada awalnya berkedudukan dibawah Divisi Bisnis Emas PT Pegadaian (Persero) yang beroperasi dalam transaksi jual beli emas berupa emas batangan yaitu Logam Mulia. Sejak awal pendiriannya pada tahun 2010, hingga resmi memisahkan diri (spin off) dari PT Pegadaian , Galeri 24 telah berhasil menjual 5,2 Ton emas Logam Mulia.\nPada Tahun 2016, OJK (Otorisasi Jasa Keuangan) Sebagai pemangku kepentingan dan regulasi seluruh Lembaga Keuangan Perbankan maupun Lembaga Keuangan Non-Bank menerbitkan peraturan POJK No.31/POJK.05/2016. Peraturan tersebut menerangkan bahwa “Kegiatan Jual Beli Emas Tidak Termasuk Dalam Lingkup Usaha Pergadaian”. Oleh Karena itu, pada tanggal 03 Agustus 2018, Galeri 24 resmi memisahkan diri (spin off) menjadi anak perusahaan dari PT Pegadaian dan kemudian bernama PT Pegadaian Galeri Dua Empat.",
"createdAt": "2023-10-11T08:23:27.784Z",
"itemCount": 0,
"sectionId": "3b117a14-f8af-4f58-82b4-afb3347ee333",
"updatedAt": "2024-01-31T14:24:44.621Z",
"imageCount": 1
},
{
"slug": "header-article",
"title": "Kabar Emas",
"content": "Kabar kabari Galeri 24",
"createdAt": "2023-10-11T08:23:28.593Z",
"itemCount": 0,
"sectionId": "3b44811e-addc-4930-9cca-5a6ca5bb7dd4",
"updatedAt": "2023-10-23T09:50:16.004Z",
"imageCount": 0
},
{
"slug": "header-product",
"title": "Koleksi Galeri 24",
"content": "Koleksi Produk Galeri 24",
"createdAt": "2023-10-11T08:23:29.687Z",
"itemCount": 0,
"sectionId": "41409852-1b67-4e74-8827-bb607f8d323c",
"updatedAt": "2024-01-31T10:24:38.745Z",
"imageCount": 0
}
],
"total": 16,
"dataset": "sections",
"provider": "galeri24"
}
```
---
## GLEIF
**Category:** finance · **Slug:** `gleif`
**Detail page:** https://zapi.ink/api/finance/gleif
Legal Entity Identifier — resolusi nama badan hukum ke kode LEI global beserta yurisdiksi dan status registrasinya.
**Tags:** lei, gleif, entity, compliance, finance
### LEI Records
Cari badan hukum berdasarkan nama atau kode LEI, bisa disaring per negara alamat resmi.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:gleif/lei`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `query` | string | query | no | Legal name to search. Required unless `lei` is set. |
| `lei` | string | query | no | Exact 20-character LEI code. |
| `country` | string | query | no | ISO country code of the legal address. |
| `length` | number | query | no | Rows to return (default 10, max 100) |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:gleif/lei?query=Astra&lei=5493000QI5S7XZK2WE84&country=ID&length=10" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:gleif/lei?query=Astra&lei=5493000QI5S7XZK2WE84&country=ID&length=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:gleif/lei?query=Astra&lei=5493000QI5S7XZK2WE84&country=ID&length=10",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 8,
"items": [
{
"lei": "984500DA1C0AE7396331",
"city": "JAKARTA UTARA",
"name": "TOYOTA-ASTRA MOTOR",
"status": "ACTIVE",
"country": "ID",
"legalForm": "UD1V",
"lastUpdated": "2026-03-03T16:48:14Z",
"nextRenewal": "2027-03-12T13:58:46Z",
"jurisdiction": "ID",
"registrationStatus": "ISSUED"
},
{
"lei": "2549004O1G02EQJHGT25",
"city": "Jakarta",
"name": "PT Asuransi Jiwa Astra",
"status": "ACTIVE",
"country": "ID",
"legalForm": "UD1V",
"lastUpdated": "2026-04-24T19:21:50Z",
"nextRenewal": "2027-04-24T19:21:50Z",
"jurisdiction": "ID",
"registrationStatus": "ISSUED"
},
{
"lei": "984500DE704KE7E4F569",
"city": "JAGAKARSA",
"name": "PT Astra Auto Finance",
"status": "ACTIVE",
"country": "ID",
"legalForm": "UD1V",
"lastUpdated": "2026-04-17T11:33:50Z",
"nextRenewal": "2027-04-25T15:03:07Z",
"jurisdiction": "ID",
"registrationStatus": "ISSUED"
},
{
"lei": "254900IJU6661H8U3Z49",
"city": "Jakarta",
"name": "PT Komatsu Astra Finance",
"status": "ACTIVE",
"country": "ID",
"legalForm": "UD1V",
"lastUpdated": "2023-05-31T11:17:21Z",
"nextRenewal": "2020-06-28T14:12:27Z",
"jurisdiction": "ID",
"registrationStatus": "LAPSED"
},
{
"lei": "529900L49TRJOMG4DK47",
"city": "Jakarta",
"name": "PT Astra International TBK",
"status": "ACTIVE",
"country": "ID",
"legalForm": "8888",
"lastUpdated": "2021-11-18T13:12:29Z",
"nextRenewal": "2019-11-29T10:10:23Z",
"jurisdiction": "ID",
"registrationStatus": "LAPSED"
},
{
"lei": "254900ZHU2OE8Y8HHT28",
"city": "Jakarta Selatan",
"name": "PT ASTRA SEDAYA FINANCE",
"status": "ACTIVE",
"country": "ID",
"legalForm": "UD1V",
"lastUpdated": "2026-04-02T14:06:45Z",
"nextRenewal": "2027-04-02T14:06:45Z",
"jurisdiction": "ID",
"registrationStatus": "ISSUED"
},
{
"lei": "213800RODUR1B5CAL145",
"city": "JAKARTA",
"name": "PT ASTRA AVIVA LIFE",
"status": "ACTIVE",
"country": "ID",
"legalForm": "8888",
"lastUpdated": "2024-11-13T08:44:31Z",
"nextRenewal": "2020-12-31T00:00:00Z",
"jurisdiction": "ID",
"registrationStatus": "LAPSED"
},
{
"lei": "529900XU6T7VIQ56SN17",
"city": "Jakarta",
"name": "PT Astra Agro Lestari TBK",
"status": "ACTIVE",
"country": "ID",
"legalForm": "8888",
"lastUpdated": "2021-11-18T13:12:36Z",
"nextRenewal": "2020-03-29T15:35:36Z",
"jurisdiction": "ID",
"registrationStatus": "LAPSED"
}
],
"query": "Astra",
"total": 9,
"source": "gleif",
"country": "ID"
}
```
---
## Gold Council
**Category:** finance · **Slug:** `gold-council`
**Detail page:** https://zapi.ink/api/finance/gold-council
Gold held by ETFs worldwide, by region, with the gold price alongside. The
**Tags:** finance, gold-council
### Etf Holdings
Gold held by ETFs worldwide, by region, with the gold price alongside. The
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:gold-council/etf-holdings`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `period` | enum(Weekly|Monthly|Quarterly|Yearly) | query | no | Bucket length. Default Weekly. |
| `unit` | enum(tonnes|usd) | query | no | Measure holdings in tonnes of gold or in US dollars. Default tonnes. |
| `from` | string | query | no | Earliest bucket date to return, YYYY-MM-DD. |
| `to` | string | query | no | Latest bucket date to return, YYYY-MM-DD. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:gold-council/etf-holdings?period=Weekly&unit=tonnes&from=2026-01-01&to=2026-08-14" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:gold-council/etf-holdings?period=Weekly&unit=tonnes&from=2026-01-01&to=2026-08-14", {
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:gold-council/etf-holdings?period=Weekly&unit=tonnes&from=2026-01-01&to=2026-08-14",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"asOf": "2026-08-14",
"unit": "tonnes",
"count": 1222,
"items": [
{
"asia": null,
"date": "2003-02-28",
"time": 1046390400000,
"other": null,
"europe": null,
"goldUsOz": 352.68,
"northAmerica": 0
},
{
"asia": null,
"date": "2003-03-28",
"time": 1048809600000,
"other": 0.03,
"europe": null,
"goldUsOz": 330.96,
"northAmerica": 0
},
{
"asia": null,
"date": "2003-04-04",
"time": 1049414400000,
"other": 0.06,
"europe": null,
"goldUsOz": 329.2,
"northAmerica": 8.2
},
{
"asia": null,
"date": "2003-04-11",
"time": 1050019200000,
"other": 0.14,
"europe": null,
"goldUsOz": 322.81,
"northAmerica": 8.2
},
{
"asia": null,
"date": "2003-04-18",
"time": 1050624000000,
"other": 0.22,
"europe": null,
"goldUsOz": 325.9,
"northAmerica": 8.2
},
{
"asia": null,
"date": "2003-04-25",
"time": 1051228800000,
"other": 0.25,
"europe": null,
"goldUsOz": 332.43,
"northAmerica": 8.2
},
{
"asia": null,
"date": "2003-05-02",
"time": 1051833600000,
"other": 0.7,
"europe": null,
"goldUsOz": 336.49,
"northAmerica": 9.31
},
{
"asia": null,
"date": "2003-05-09",
"time": 1052438400000,
"other": 1.1,
"europe": null,
"goldUsOz": 343.91,
"northAmerica": 9.31
}
],
"fields": [
"northAmerica",
"europe",
"asia",
"other",
"goldUsOz"
],
"labels": [
"Date",
"North America",
"Europe",
"Asia",
"Other",
"Gold, US$/oz"
],
"period": "Weekly",
"dataset": "etf-holdings",
"periods": [
"Weekly",
"Monthly",
"Quarterly",
"Yearly"
],
"provider": "gold-council",
"timestampUnit": "ms"
}
```
---
### Etf Summary
The gold-ETF flow table the World Gold Council publishes for each period —
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:gold-council/etf-summary`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `period` | enum(Weekly|Monthly|Quarterly|Year to date) | query | no | Reporting period. Default Weekly. |
| `scope` | enum(regional|countries|top-inflows|top-outflows) | query | no | Break the table out by region, by country, or by the ten funds with the largest in/outflows. Default regional. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:gold-council/etf-summary?period=Weekly&scope=regional" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:gold-council/etf-summary?period=Weekly&scope=regional", {
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:gold-council/etf-summary?period=Weekly&scope=regional",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"asOf": "2026-08-14",
"count": 7,
"items": [
{
"name": "North America",
"aumBn": 289.40780885,
"aggregate": false,
"demandTonnes": 7.36569403,
"fundFlowsUsdMn": 1056.34308022,
"holdingsTonnes": 2050.21762019,
"demandPctOfHoldings": 0.36055937
},
{
"name": "Europe",
"aumBn": 207.57132772,
"aggregate": false,
"demandTonnes": 15.14000153,
"fundFlowsUsdMn": 2273.84027839,
"holdingsTonnes": 1470.42397831,
"demandPctOfHoldings": 1.04034689
},
{
"name": "Asia",
"aumBn": 74.86062459,
"aggregate": false,
"demandTonnes": 1.08557478,
"fundFlowsUsdMn": 175.68401977,
"holdingsTonnes": 519.07383647,
"demandPctOfHoldings": 0.20957517
},
{
"name": "Other",
"aumBn": 10.49416976,
"aggregate": false,
"demandTonnes": 0.00134552,
"fundFlowsUsdMn": 17.0043,
"holdingsTonnes": 74.41077582,
"demandPctOfHoldings": 0.00180827
},
{
"name": "Total",
"aumBn": 582.33,
"aggregate": true,
"demandTonnes": 23.59261586,
"fundFlowsUsdMn": 3522.87167838,
"holdingsTonnes": 4114.12621079,
"demandPctOfHoldings": 0.57676133
},
{
"name": "Global inflows / Positive Demand",
"aumBn": null,
"aggregate": true,
"demandTonnes": 35.80339519,
"fundFlowsUsdMn": 4882.12683066,
"holdingsTonnes": null,
"demandPctOfHoldings": 0.87527444
},
{
"name": "Global outflows / Negative Demand",
"aumBn": null,
"aggregate": true,
"demandTonnes": -12.21077933,
"fundFlowsUsdMn": -1359.25515228,
"holdingsTonnes": null,
"demandPctOfHoldings": -0.29851312
}
],
"scope": "regional",
"fields": [
"aumBn",
"fundFlowsUsdMn",
"holdingsTonnes",
"demandTonnes",
"demandPctOfHoldings"
],
"labels": [
"Region",
"AUM (bn)",
"Fund Flows (US$mn)",
"Holdings (tonnes)",
"Demand (tonnes)",
"Demand (% of holdings)"
],
"period": "Weekly",
"scopes": [
"regional",
"countries",
"top-inflows",
"top-outflows"
],
"dataset": "etf-summary",
"periods": [
"Weekly",
"Monthly",
"Quarterly",
"Year to date"
],
"provider": "gold-council",
"periodTitle": "Week 33 ending 14 Aug 26"
}
```
---
### Etf Flows
Gold-ETF fund flows, worldwide, from the body that compiles them. This is the
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:gold-council/etf-flows`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `period` | enum(Weekly|Monthly|Quarterly|Yearly) | query | no | Bucket length. Default Weekly. |
| `unit` | enum(tonnes|usd) | query | no | Measure flows in tonnes of gold or in US dollars. Default tonnes. |
| `region` | string | query | no | Restrict to one series: North America, Europe, Asia, Other, or Gold Price (rhs). |
| `from` | string | query | no | Earliest bucket date to return, YYYY-MM-DD. |
| `to` | string | query | no | Latest bucket date to return, YYYY-MM-DD. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:gold-council/etf-flows?period=Weekly&unit=tonnes®ion=North%20America&from=2026-01-01&to=2026-08-14" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:gold-council/etf-flows?period=Weekly&unit=tonnes®ion=North%20America&from=2026-01-01&to=2026-08-14", {
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:gold-council/etf-flows?period=Weekly&unit=tonnes®ion=North%20America&from=2026-01-01&to=2026-08-14",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"asOf": "2026-08-14",
"unit": "tonnes",
"count": 5,
"items": [
{
"kind": "flow",
"name": "North America",
"count": 450,
"points": [
{
"date": "2018-01-05",
"time": 1515110400000,
"value": -0.395341
},
{
"date": "2018-01-12",
"time": 1515715200000,
"value": -2.6017
},
{
"date": "2018-01-19",
"time": 1516320000000,
"value": 22.334153
},
{
"date": "2018-01-26",
"time": 1516924800000,
"value": 6.571936
},
{
"date": "2018-02-02",
"time": 1517529600000,
"value": -3.908269
},
{
"date": "2018-02-09",
"time": 1518134400000,
"value": -18.747457
},
{
"date": "2018-02-16",
"time": 1518739200000,
"value": 5.801013
},
{
"date": "2018-02-23",
"time": 1519344000000,
"value": 5.468993
}
]
},
{
"kind": "flow",
"name": "Europe",
"count": 450,
"points": [
{
"date": "2018-01-05",
"time": 1515110400000,
"value": 4.766536
},
{
"date": "2018-01-12",
"time": 1515715200000,
"value": -0.503126
},
{
"date": "2018-01-19",
"time": 1516320000000,
"value": 2.43465
},
{
"date": "2018-01-26",
"time": 1516924800000,
"value": 2.588859
},
{
"date": "2018-02-02",
"time": 1517529600000,
"value": -3.113576
},
{
"date": "2018-02-09",
"time": 1518134400000,
"value": -4.525682
},
{
"date": "2018-02-16",
"time": 1518739200000,
"value": 1.982059
},
{
"date": "2018-02-23",
"time": 1519344000000,
"value": -1.663113
}
]
},
{
"kind": "flow",
"name": "Asia",
"count": 450,
"points": [
{
"date": "2018-01-05",
"time": 1515110400000,
"value": -0.220841
},
{
"date": "2018-01-12",
"time": 1515715200000,
"value": -1.642201
},
{
"date": "2018-01-19",
"time": 1516320000000,
"value": -0.088196
},
{
"date": "2018-01-26",
"time": 1516924800000,
"value": 1.034353
},
{
"date": "2018-02-02",
"time": 1517529600000,
"value": 0.308218
},
{
"date": "2018-02-09",
"time": 1518134400000,
"value": 1.338946
},
{
"date": "2018-02-16",
"time": 1518739200000,
"value": 4.659395
},
{
"date": "2018-02-23",
"time": 1519344000000,
"value": 0.861011
}
]
},
{
"kind": "flow",
"name": "Other",
"count": 450,
"points": [
{
"date": "2018-01-05",
"time": 1515110400000,
"value": 0.26391
},
{
"date": "2018-01-12",
"time": 1515715200000,
"value": -0.027532
},
{
"date": "2018-01-19",
"time": 1516320000000,
"value": -0.08664
},
{
"date": "2018-01-26",
"time": 1516924800000,
"value": 0.07
},
{
"date": "2018-02-02",
"time": 1517529600000,
"value": -0.453931
},
{
"date": "2018-02-09",
"time": 1518134400000,
"value": -0.0349
},
{
"date": "2018-02-16",
"time": 1518739200000,
"value": 0.200762
},
{
"date": "2018-02-23",
"time": 1519344000000,
"value": -0.280328
}
]
},
{
"kind": "reference",
"name": "Gold Price (rhs)",
"count": 450,
"points": [
{
"date": "2018-01-05",
"time": 1515110400000,
"value": 1311.02
},
{
"date": "2018-01-12",
"time": 1515715200000,
"value": 1320.11
},
{
"date": "2018-01-19",
"time": 1516320000000,
"value": 1335.18
},
{
"date": "2018-01-26",
"time": 1516924800000,
"value": 1345.56
},
{
"date": "2018-02-02",
"time": 1517529600000,
"value": 1341.26
},
{
"date": "2018-02-09",
"time": 1518134400000,
"value": 1323.84
},
{
"date": "2018-02-16",
"time": 1518739200000,
"value": 1337.69
},
{
"date": "2018-02-23",
"time": 1519344000000,
"value": 1334.65
}
]
}
],
"period": "Weekly",
"region": null,
"dataset": "etf-flows",
"periods": [
"Weekly",
"Monthly",
"Quarterly",
"Yearly"
],
"provider": "gold-council",
"timestampUnit": "ms"
}
```
---
## GoldPrice
**Category:** finance · **Slug:** `goldprice`
**Detail page:** https://zapi.ink/api/finance/goldprice
Harga emas, perak & crypto live + grafik, historis, ETF, saham tambang, berita, dan kalkulator. Sumber data publik goldprice.
**Tags:** finance, gold, silver, crypto, precious-metals, price
### Spot
Harga spot emas & perak live (per oz/gram/kg), any currency.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:goldprice/spot`
- **Cache TTL:** 60s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `currency` | string | query | no | Kode mata uang ISO (mis. USD, IDR, EUR). Default USD. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:goldprice/spot?currency=USD" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:goldprice/spot?currency=USD", {
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:goldprice/spot?currency=USD",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"asOf": "Jun 14th 2026, 01:41:25 am NY",
"gold": {
"change": 112.885,
"pricePerKg": 135383.74,
"pricePerOz": 4210.905,
"pricePerGram": 135.3837,
"changePercent": 2.7546,
"previousClose": 4098.02
},
"silver": {
"change": 3.8419,
"pricePerKg": 2179.23,
"pricePerOz": 67.7815,
"pricePerGram": 2.1792,
"changePercent": 6.0086,
"previousClose": 63.9396
},
"currency": "USD",
"timestamp": 1781415690581,
"goldSilverRatio": 62
}
```
---
### Chart
URL gambar grafik harga (gold/silver, 7d–30y).
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:goldprice/chart`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `metal` | enum(gold|silver) | query | no | Logam mulia: gold atau silver. Default gold |
| `period` | enum(7d|30d|6m|1y|2y|5y|10y|15y|20y|30y) | query | no | Rentang waktu chart. Pilihan: 7d, 30d, 6m, 1y, 2y, 5y, 10y, 15y, 20y, 30y. Default 7d |
| `currency` | string | query | no | Kode mata uang ISO 3-huruf (USD, EUR, GBP, IDR, JPY, dll). Default USD |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:goldprice/chart?metal=gold&period=7d¤cy=USD" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:goldprice/chart?metal=gold&period=7d¤cy=USD", {
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:goldprice/chart?metal=gold&period=7d¤cy=USD",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"metal": "gold",
"period": "7d",
"currency": "USD",
"imageUrl": "https://charts.goldprice.org/charts/history/gold_7_day_o_USD_x.png",
"verified": true,
"availablePeriods": [
"7d",
"30d",
"6m",
"1y",
"2y",
"5y",
"10y",
"15y"
]
}
```
---
### Crypto
Harga cryptocurrency live (BTC/ETH/SOL/dll) + market cap.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:goldprice/crypto`
- **Cache TTL:** 60s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `ids` | string | query | no | Daftar id koin dipisah koma (mis. bitcoin,ethereum,solana,ripple,dogecoin). Default "bitcoin,ethereum,solana,ripple,dogecoin". Max 50 koin. |
| `currency` | enum(usd|idr|eur|gbp|jpy|sgd|aud|btc|eth) | query | no | Mata uang harga: usd, idr, eur, gbp, jpy, sgd, aud, btc, eth. Default usd. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:goldprice/crypto?ids=bitcoin%2Cethereum%2Csolana¤cy=usd" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:goldprice/crypto?ids=bitcoin%2Cethereum%2Csolana¤cy=usd", {
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:goldprice/crypto?ids=bitcoin%2Cethereum%2Csolana¤cy=usd",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 3,
"items": [
{
"id": "bitcoin",
"ath": 126080,
"name": "Bitcoin",
"rank": 1,
"image": "https://coin-images.coingecko.com/coins/images/1/large/bitcoin.png?1696501400",
"price": 64328,
"low24h": 63486,
"symbol": "BTC",
"high24h": 64633,
"change24h": 777.02,
"marketCap": 1288787081171,
"volume24h": 18113239771,
"lastUpdated": "2026-06-14T05:41:38.195Z",
"totalSupply": 20042446,
"athChangePercent": -48.98,
"changePercent24h": 1.22,
"circulatingSupply": 20042437
},
{
"id": "ethereum",
"ath": 4946.05,
"name": "Ethereum",
"rank": 2,
"image": "https://coin-images.coingecko.com/coins/images/279/large/ethereum.png?1696501628",
"price": 1676.5,
"low24h": 1662.23,
"symbol": "ETH",
"high24h": 1688.12,
"change24h": 12.19,
"marketCap": 202192671812,
"volume24h": 6621220095,
"lastUpdated": "2026-06-14T05:41:37.677Z",
"totalSupply": 120684209.1147544,
"athChangePercent": -66.1,
"changePercent24h": 0.73,
"circulatingSupply": 120684209.1147544
},
{
"id": "solana",
"ath": 293.31,
"name": "Solana",
"rank": 7,
"image": "https://coin-images.coingecko.com/coins/images/4128/large/solana.png?1718769756",
"price": 68.17,
"low24h": 66.64,
"symbol": "SOL",
"high24h": 69.36,
"change24h": 1.42,
"marketCap": 39519480119,
"volume24h": 1665123302,
"lastUpdated": "2026-06-14T05:41:37.417Z",
"totalSupply": 628303502.7848742,
"athChangePercent": -76.76,
"changePercent24h": 2.13,
"circulatingSupply": 579823662.913511
}
],
"currency": "USD"
}
```
---
### News
Daftar berita pasar emas/perak.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:goldprice/news`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `page` | number | query | no | Nomor halaman, default 1 |
| `count` | number | query | no | Item per halaman, default 20 (max 50) |
| `category` | string | query | no | Filter opsional (keyword pada judul/slug, mis. 'fed' atau 'inflation') |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:goldprice/news?page=1&count=1&category=VALUE" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:goldprice/news?page=1&count=1&category=VALUE", {
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:goldprice/news?page=1&count=1&category=VALUE",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"page": 1,
"count": 5,
"items": [
{
"url": "https://goldprice.org/news/gold-pulls-back-inflation-pressure-reprices-fed-path",
"slug": "gold-pulls-back-inflation-pressure-reprices-fed-path",
"image": "https://goldprice.org/sites/default/files/styles/blog_hero_375/public/blog_hero_images/Gold-Price-Recap1_6.jpg?itok=rvvHfSPF",
"title": "Gold Pulls Back as Inflation Pressure Reprices the Fed Path",
"author": "Matthew Bolden",
"publishedAt": "2026-06-12T14:31:49-04:00"
},
{
"url": "https://goldprice.org/news/jobs-shock-knocks-gold-below-4400-fed-cut-hopes-fade",
"slug": "jobs-shock-knocks-gold-below-4400-fed-cut-hopes-fade",
"image": "https://goldprice.org/sites/default/files/styles/blog_hero_375/public/blog_hero_images/Gold-Price-Recap1_5.jpg?itok=hGQiYGdB",
"title": "Jobs Shock Knocks Gold Below $4,400 as Fed Cut Hopes Fade",
"author": "Matthew Bolden",
"publishedAt": "2026-06-05T13:42:18-04:00"
},
{
"url": "https://goldprice.org/news/de-escalation-headlines-weigh-on-gold-ahead-of-memorial-day",
"slug": "de-escalation-headlines-weigh-on-gold-ahead-of-memorial-day",
"image": "https://goldprice.org/sites/default/files/styles/blog_hero_375/public/blog_hero_images/Gold-Price-Recap%20%281%29_12.jpg?itok=fYRM7OWK",
"title": "De-Escalation Headlines Weigh on Gold Ahead of Memorial Day",
"author": "Matthew Bolden",
"publishedAt": "2026-05-22T15:47:47-04:00"
},
{
"url": "https://goldprice.org/news/gold-falls-toward-4550-fed-cut-hopes-fade",
"slug": "gold-falls-toward-4550-fed-cut-hopes-fade",
"image": "https://goldprice.org/sites/default/files/styles/blog_hero_375/public/blog_hero_images/Gold-Price-Recap%20%281%29_11.jpg?itok=NO3uEVUh",
"title": "Gold Falls Toward $4,550 as Fed-Cut Hopes Fade",
"author": "Matthew Bolden",
"publishedAt": "2026-05-15T16:11:03-04:00"
},
{
"url": "https://goldprice.org/news/gold-rallies-iran-peace-hopes-ease-yields-and-dollar-pressure",
"slug": "gold-rallies-iran-peace-hopes-ease-yields-and-dollar-pressure",
"image": "https://goldprice.org/sites/default/files/styles/blog_hero_375/public/blog_hero_images/Gold-Price-Recap1_4.jpg?itok=xAifbwQS",
"title": "Gold Rallies as Iran Peace Hopes Ease Yields and Dollar Pressure",
"author": "Matthew Bolden",
"publishedAt": "2026-05-08T14:40:07-04:00"
}
],
"hasMore": false
}
```
---
### Article
Isi artikel berita (input slug dari endpoint news).
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:goldprice/article/:slug`
- **Cache TTL:** 1800s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `slug` | string | path | yes | Slug artikel (atau full URL goldprice.org/news/...) |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:goldprice/article/:slug" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:goldprice/article/:slug", {
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:goldprice/article/:slug",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"url": "https://goldprice.org/news/gold-pulls-back-inflation-pressure-reprices-fed-path",
"slug": "gold-pulls-back-inflation-pressure-reprices-fed-path",
"image": "https://goldprice.org/sites/default/files/styles/blog_hero/public/blog_hero_images/Gold-Price-Recap1_6.jpg?itok=qLiud1Ae",
"title": "Gold Pulls Back as Inflation Pressure Reprices the Fed Path",
"author": "Matthew Bolden",
"source": "goldprice.org",
"contentText": "Happy Friday, traders. Welcome to our weekly market wrap, where we take a look back at these last five trading days with a focus on the market news, economic data, and headlines that had the most impact on gold prices and other key correlated assets—and may continue to in the future.\n\nSo, what kind of week has it been?\n\n### Here's what you need to know:\n\n- Gold is set to close the week under pressure, with spot trading near $4,227/oz on Friday morning, down roughly $103 from last Friday's close near $4,330.\n\n- The main driver was another repricing of the Fed path after May CPI showed annual inflation running at 4.2%, keeping rate uncertainty in the center of the trade.\n\n- Geopolitical headlines around the US-Iran ceasefire and canceled strike plans complicated the tape, helping yields and crude ease late in the week while also reducing some of gold's safe-haven bid.\n\n- Next week brings the June FOMC decision on Wednesday, Chair Kevin Warsh's first as Fed chair, and traders will be watching for any shift in how the Fed balances sticky inflation, resilient labor data, and energy-market risk.\n\n### So, What Kind of a Week Has It Been?\n\nFor gold, this has been a week of pressure, repricing, and—at least through Friday morning—some late-session repair that does not quite undo the damage from earlier in the tape. Spot gold is trading near $4,227/oz as of Friday morning, down roughly $103 from last Friday's close near $4,330. That puts the yellow metal lower by a little more than 2.4% on the week, even after buyers stepped back in below the midweek lows.\n\nThe decline was not especially mysterious. The market came into the week already leaning away from the easy-rate-cut narrative after last Friday's blowout jobs number, and this week's inflation data gave traders one more reason to stay cautious. Gold has spent most of June trying to decide whether the $4,500 area was a consolidation line or a ceiling. This week's answer, at least for now, is that the path of least resistance moved lower once inflation and Fed risk returned to the center of the trade.\n\n### Inflation Keeps the Fed in the Driver's Seat\n\nThe key macro catalyst this week was the May CPI print, which showed annual inflation running at 4.2%, the hottest year-over-year reading since 2023, with energy prices doing much of the work. For gold traders, the important point was less the headline number by itself and more what it did to the policy conversation.\n\nA sticky inflation tape is not automatically bearish for gold. In the longer run, inflation is part of the reason investors own the metal in the first place. But in the short run, when inflation forces the market to push out rate-cut expectations—or, more aggressively, to entertain renewed talk of a hike—the reaction function can turn hostile very quickly. Higher real-rate expectations raise the opportunity cost of holding gold, and that is especially true when the market is already digesting a stronger labor-market print from the prior week.\n\nThe Fed is also in its pre-meeting quiet period, which left traders without much official guidance to lean on. That silence tends to let the data speak louder, and this week the data told the market that Chair Kevin Warsh's first FOMC meeting next Wednesday is unlikely to open with an immediate dovish pivot. The more likely setup is a hold, a cautious statement, and a press conference that traders will parse line by line for how willing this new Fed leadership is to tolerate inflation above target.\n\n### Geopolitics Gives, Then Takes Back, Some of the Bid\n\nThe geopolitical side of the trade was no cleaner. Early-week pressure on gold was helped along by a softer risk-premium backdrop as traders continued to reassess the US-Iran conflict and the durability of the latest ceasefire framework. Any sign that the Strait of Hormuz risk is easing matters for gold because it feeds directly into crude, gasoline, inflation expectations, and ultimately the Fed path.\n\nBy Friday morning, however, the tape had turned more two-sided. Reports that President Trump had canceled planned military strikes against Iran helped crude oil prices retreat and Treasury yields ease, which took some pressure off gold and allowed a bounce from the week's lows. But even that rebound carried an irony: de-escalation reduces the safe-haven bid that had helped support gold above $4,400, while lower oil prices also reduce the inflation impulse that had been forcing the Fed discussion in a more hawkish direction.\n\nThat is the difficult cross-current for gold here. Traders are not dealing with one simple narrative. A calmer Middle East can pressure gold by removing geopolitical premium, but it can also support gold if it pulls yields and the Dollar lower. A hotter inflation print can support the long-term hard-asset case, but it can hurt spot prices if it makes the Fed less likely to cut. This week, the rate side of the story won.\n\n### Silver Holds Up Better as the Dollar Slips\n\nSilver was the more resilient precious metal this week. Spot silver is trading near $68.72/oz on Friday morning, up about $0.90 from last Friday's close. That is not a runaway breakout, but it is a notable divergence from gold's softer tape and suggests that the white metal is still benefiting from a combination of monetary-metal demand and firmer industrial expectations.\n\nThe US Dollar was not a clean headwind by the end of the week. The Dollar softened on Thursday and Friday as yields eased and risk appetite improved, which helped give gold and silver some breathing room. But the weekly story was still dominated by the earlier repricing of Fed expectations, not by a sustained Dollar breakdown.\n\nAmong the PGMs, platinum slipped nearly 3% on the week, while palladium was the standout, gaining more than 7%. That divergence is another reminder that this has not been a simple \"precious metals up\" or \"precious metals down\" week. It has been a week of relative-value moves, macro repricing, and traders separating the monetary metals from the more industry-sensitive corners of the complex.\n\n### Looking Ahead\n\nNext week brings the June FOMC decision on Wednesday, and that is the obvious center of gravity for gold. The market is not positioned for a rate change, but it is positioned for guidance. Traders will want to know how Chair Warsh frames the combination of a hot inflation print, still-resilient labor data, energy-market uncertainty, and a gold market that has already corrected sharply from its recent highs.\n\nThe other thing to watch is whether Friday's rebound can turn into something more durable. If gold can reclaim the lower $4,300s and stabilize, this week may look like a corrective reset inside a still-constructive longer-term trend. If it fails there, the next leg of the tape may be less about geopolitics and more about how far real-rate expectations can stretch before physical demand and haven buyers step back in.\n\nIn the meantime, traders, I hope you can get out and safely enjoy your weekend for the next couple of days. After that, I'll see you back here next week for another market recap.\n\n\n\n\n\n\n\n\n\n\n\n#### Matthew Bolden\n\n\nMatthew Bolden is an active trader and investor. His passions include writing about financial markets in a simple, pragmatic way. His work has been seen in various arenas within the world of global finance, and he has written commentary on several markets including precious metals, stocks, currencies and options.\n\nMatthew is an avid reader, student of the markets and sports enthusiast who resides in the greater Chicago area.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n### Gold Price Chart\n\n\n\n\n\n\n 0), satuannya ditentukan param `unit`. |
| `unit` | enum(oz|gram|kg|tola|tael) | query | no | Satuan berat: oz (troy ounce), gram, kg, tola, tael (HK). Default gram. |
| `currency` | string | query | no | Mata uang nilai output (kode ISO 3 huruf, mis. USD, IDR, EUR). Default USD. |
| `purity` | number | query | no | Kemurnian logam 0..1 (mis. 0.999 fine, 0.75 untuk 18k emas). Default 1. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:goldprice/convert?metal=gold&weight=10&unit=gram¤cy=USD&purity=0.999" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:goldprice/convert?metal=gold&weight=10&unit=gram¤cy=USD&purity=0.999", {
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:goldprice/convert?metal=gold&weight=10&unit=gram¤cy=USD&purity=0.999",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"asOf": "2026-06-14T05:41:48.763Z",
"unit": "gram",
"metal": "gold",
"purity": 1,
"weight": 10,
"currency": "USD",
"pricePerOz": 4210.905,
"totalValue": 1353.84,
"pricePerGram": 135.383739
}
```
---
## Histdata
**Category:** finance · **Slug:** `histdata`
**Detail page:** https://zapi.ink/api/finance/histdata
Which years exist for a pair, and in what unit each is served. HistData chunks
**Tags:** finance, histdata
### Coverage
Which years exist for a pair, and in what unit each is served. HistData chunks
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:histdata/coverage`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `pair` | string | query | yes | Instrument code as HistData spells it, e.g. XAUUSD, EURUSD, SPXUSD. |
| `timeframe` | enum(m1|tick) | query | no | m1 (1-minute bars) or tick. Default m1. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:histdata/coverage?pair=XAUUSD&timeframe=m1" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:histdata/coverage?pair=XAUUSD&timeframe=m1", {
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:histdata/coverage?pair=XAUUSD&timeframe=m1",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"pair": "XAUUSD",
"count": 18,
"items": [
{
"unit": "month",
"year": 2026,
"months": [
1,
2,
3,
4,
5,
6,
7,
8
]
},
{
"unit": "year",
"year": 2025,
"months": []
},
{
"unit": "year",
"year": 2024,
"months": []
},
{
"unit": "year",
"year": 2023,
"months": []
},
{
"unit": "year",
"year": 2022,
"months": []
},
{
"unit": "year",
"year": 2021,
"months": []
},
{
"unit": "year",
"year": 2020,
"months": []
},
{
"unit": "year",
"year": 2019,
"months": []
}
],
"dataset": "coverage",
"lastYear": 2026,
"provider": "histdata",
"firstYear": 2009,
"timeframe": "m1"
}
```
---
### Gap Report
HistData's own audit of where its data is missing, for one file. Cheap — it is
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:histdata/gap-report`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `pair` | string | query | yes | Instrument code as HistData spells it. |
| `year` | number | query | yes | Calendar year of the file. The current year has no report until it closes. |
| `month` | number | query | no | Month 1-12. Required for tick and for the current year; omit for a closed year of M1. |
| `timeframe` | enum(m1|tick) | query | no | m1 (1-minute bars) or tick. Default m1. |
| `sessionBreaks` | enum(include|exclude) | query | no | Whether to keep the daily 17:00-18:00 EST rollover gaps. Default exclude. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:histdata/gap-report?pair=XAUUSD&year=2024&month=7&timeframe=m1&sessionBreaks=exclude" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:histdata/gap-report?pair=XAUUSD&year=2024&month=7&timeframe=m1&sessionBreaks=exclude", {
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:histdata/gap-report?pair=XAUUSD&year=2024&month=7&timeframe=m1&sessionBreaks=exclude",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"file": "DAT_ASCII_XAUUSD_M1_2024.csv",
"pair": "XAUUSD",
"year": 2024,
"count": 5,
"items": [
{
"to": "2024-04-10T18:01:06-05:00",
"from": "2024-04-10T16:59:59-05:00",
"seconds": 3660,
"sessionBreak": false
},
{
"to": "2024-10-09T20:11:48-05:00",
"from": "2024-10-09T19:05:51-05:00",
"seconds": 3951,
"sessionBreak": false
},
{
"to": "2024-11-21T18:00:00-05:00",
"from": "2024-11-21T16:59:34-05:00",
"seconds": 3619,
"sessionBreak": false
},
{
"to": "2024-12-11T18:02:01-05:00",
"from": "2024-12-11T16:59:59-05:00",
"seconds": 3715,
"sessionBreak": false
},
{
"to": "2024-12-26T18:05:00-05:00",
"from": "2024-12-26T16:59:59-05:00",
"seconds": 3894,
"sessionBreak": false
}
],
"month": null,
"dataset": "gap-report",
"provider": "histdata",
"timezone": "EST-no-DST",
"timeframe": "M1",
"totalGaps": 313,
"sessionBreaks": "exclude",
"sessionBreakGaps": 308,
"longestGapSeconds": 3951
}
```
---
### List Instruments
Every instrument HistData publishes, with the month its history starts.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:histdata/list-instruments`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `timeframe` | enum(m1|tick) | query | no | Which index to read: m1 (1-minute bars) or tick. Default m1. |
| `query` | string | query | no | Filter by instrument code or display name, case-insensitive. |
| `page` | number | query | no | Page of instruments. Default 1. |
| `limit` | number | query | no | Instruments per page. Default 50, max 100. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:histdata/list-instruments?timeframe=m1&query=xau&page=1&limit=50" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:histdata/list-instruments?timeframe=m1&query=xau&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:histdata/list-instruments?timeframe=m1&query=xau&page=1&limit=50",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"page": 1,
"count": 50,
"items": [
{
"name": "EUR/USD",
"pair": "EURUSD",
"startsAt": "2000-05",
"startYear": 2000,
"startMonth": 5
},
{
"name": "EUR/CHF",
"pair": "EURCHF",
"startsAt": "2002-03",
"startYear": 2002,
"startMonth": 3
},
{
"name": "EUR/GBP",
"pair": "EURGBP",
"startsAt": "2002-03",
"startYear": 2002,
"startMonth": 3
},
{
"name": "EUR/JPY",
"pair": "EURJPY",
"startsAt": "2002-03",
"startYear": 2002,
"startMonth": 3
},
{
"name": "EUR/AUD",
"pair": "EURAUD",
"startsAt": "2002-08",
"startYear": 2002,
"startMonth": 8
},
{
"name": "USD/CAD",
"pair": "USDCAD",
"startsAt": "2000-06",
"startYear": 2000,
"startMonth": 6
},
{
"name": "USD/CHF",
"pair": "USDCHF",
"startsAt": "2000-05",
"startYear": 2000,
"startMonth": 5
},
{
"name": "USD/JPY",
"pair": "USDJPY",
"startsAt": "2000-05",
"startYear": 2000,
"startMonth": 5
}
],
"query": null,
"total": 66,
"dataset": "instruments",
"hasMore": true,
"nextPage": 2,
"provider": "histdata",
"timeframe": "m1"
}
```
---
### Download M1
One-minute OHLC bars from HistData — the fallback book behind `finance/dukascopy`
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:histdata/download-m1`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `pair` | string | query | yes | Instrument code as HistData spells it. XAUUSD starts 2009-03. |
| `year` | number | query | yes | Calendar year to download. |
| `month` | number | query | no | Month 1-12. Required for the current year, which ships month by month; narrows a closed year. |
| `page` | number | query | no | Page of bars. Default 1. |
| `limit` | number | query | no | Bars per page. Default 5000, max 20000. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:histdata/download-m1?pair=XAUUSD&year=2023&month=7&page=1&limit=5000" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:histdata/download-m1?pair=XAUUSD&year=2023&month=7&page=1&limit=5000", {
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:histdata/download-m1?pair=XAUUSD&year=2023&month=7&page=1&limit=5000",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"file": "DAT_ASCII_XAUUSD_M1_2023.csv",
"page": 1,
"pair": "XAUUSD",
"unit": "year",
"year": 2023,
"count": 5000,
"items": [
{
"low": 1826.617,
"high": 1827.337,
"open": 1826.837,
"time": "2023-01-02T18:00:00-05:00",
"close": 1826.637
},
{
"low": 1826.137,
"high": 1827.357,
"open": 1826.537,
"time": "2023-01-02T18:01:00-05:00",
"close": 1826.537
},
{
"low": 1826.137,
"high": 1826.737,
"open": 1826.137,
"time": "2023-01-02T18:02:00-05:00",
"close": 1826.737
},
{
"low": 1827.187,
"high": 1828.867,
"open": 1827.187,
"time": "2023-01-02T18:05:00-05:00",
"close": 1828.738
},
{
"low": 1828.758,
"high": 1829.958,
"open": 1828.758,
"time": "2023-01-02T18:06:00-05:00",
"close": 1829.497
},
{
"low": 1828.117,
"high": 1829.507,
"open": 1829.497,
"time": "2023-01-02T18:07:00-05:00",
"close": 1829.397
},
{
"low": 1828.718,
"high": 1829.357,
"open": 1829.357,
"time": "2023-01-02T18:08:00-05:00",
"close": 1829.277
},
{
"low": 1828.757,
"high": 1829.488,
"open": 1829.277,
"time": "2023-01-02T18:09:00-05:00",
"close": 1829.298
}
],
"month": null,
"total": 308812,
"dataset": "m1",
"hasMore": true,
"nextPage": 2,
"provider": "histdata",
"timezone": "EST-no-DST",
"priceSide": "bid",
"timeframe": "M1"
}
```
---
### Download Tick
Tick quotes from HistData — bid AND ask, so a real spread per tick, which the
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:histdata/download-tick`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `pair` | string | query | yes | Instrument code as HistData spells it. XAUUSD starts 2009-03. |
| `date` | string | query | yes | One trading day, YYYY-MM-DD. A whole tick month is millions of rows and is never served at once. |
| `page` | number | query | no | Page of ticks. Default 1. |
| `limit` | number | query | no | Ticks per page. Default 5000, max 20000. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:histdata/download-tick?pair=XAUUSD&date=2026-07-15&page=1&limit=5000" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:histdata/download-tick?pair=XAUUSD&date=2026-07-15&page=1&limit=5000", {
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:histdata/download-tick?pair=XAUUSD&date=2026-07-15&page=1&limit=5000",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"date": "2026-07-15",
"file": "DAT_ASCII_XAUUSD_T_202607.csv",
"page": 1,
"pair": "XAUUSD",
"unit": "month",
"count": 5000,
"items": [
{
"ask": 4031.865,
"bid": 4031.085,
"time": "2026-07-15T00:00:00.000-05:00",
"spread": 0.78
},
{
"ask": 4031.865,
"bid": 4031.065,
"time": "2026-07-15T00:00:00.000-05:00",
"spread": 0.8
},
{
"ask": 4031.905,
"bid": 4031.185,
"time": "2026-07-15T00:00:00.000-05:00",
"spread": 0.72
},
{
"ask": 4031.905,
"bid": 4031.145,
"time": "2026-07-15T00:00:00.000-05:00",
"spread": 0.76
},
{
"ask": 4031.875,
"bid": 4031.165,
"time": "2026-07-15T00:00:00.000-05:00",
"spread": 0.71
},
{
"ask": 4031.875,
"bid": 4031.105,
"time": "2026-07-15T00:00:00.000-05:00",
"spread": 0.77
},
{
"ask": 4031.875,
"bid": 4031.085,
"time": "2026-07-15T00:00:00.000-05:00",
"spread": 0.79
},
{
"ask": 4031.745,
"bid": 4030.945,
"time": "2026-07-15T00:00:00.000-05:00",
"spread": 0.8
}
],
"total": 379210,
"dataset": "tick",
"hasMore": true,
"nextPage": 2,
"provider": "histdata",
"timezone": "EST-no-DST",
"timeframe": "T"
}
```
---
## HRTA Gold
**Category:** finance · **Slug:** `hrta-gold`
**Detail page:** https://zapi.ink/api/finance/hrta-gold
Indonesian retail gold from Hartadinata Abadi — price and buyback per gramasi, plus the full EMASKU catalogue.
**Tags:** gold, indonesia, idr, buyback, emasku
### Price board
Price and buyback per gramasi, across every bar series.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:hrta-gold/price`
- **Cache TTL:** 1800s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `series` | string | query | no | Keep only this series, case-insensitive. Omit for every series. |
| `denomination` | number | query | no | Keep only this bar weight in grams. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:hrta-gold/price?series=Gold&denomination=1" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:hrta-gold/price?series=Gold&denomination=1", {
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:hrta-gold/price?series=Gold&denomination=1",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"asOf": "2026-08-29",
"count": 20,
"items": [
{
"setAt": "2026-08-29T11:40:30+07:00",
"series": "Gold",
"spread": 79500,
"buyPrice": 318000,
"isOrigin": true,
"seriesId": 1,
"weightId": 1,
"weightGram": 0.1,
"buybackPrice": 238500,
"buyPricePerGram": 3180000,
"buybackPricePerGram": 2385000
},
{
"setAt": "2026-08-29T11:40:30+07:00",
"series": "Gold",
"spread": 152250,
"buyPrice": 748500,
"isOrigin": true,
"seriesId": 1,
"weightId": 2,
"weightGram": 0.25,
"buybackPrice": 596250,
"buyPricePerGram": 2994000,
"buybackPricePerGram": 2385000
},
{
"setAt": "2026-08-29T11:40:30+07:00",
"series": "Gold",
"spread": 120000,
"buyPrice": 1312500,
"isOrigin": true,
"seriesId": 1,
"weightId": 3,
"weightGram": 0.5,
"buybackPrice": 1192500,
"buyPricePerGram": 2625000,
"buybackPricePerGram": 2385000
},
{
"setAt": "2026-08-29T11:40:30+07:00",
"series": "Gold",
"spread": 130000,
"buyPrice": 2515000,
"isOrigin": true,
"seriesId": 1,
"weightId": 4,
"weightGram": 1,
"buybackPrice": 2385000,
"buyPricePerGram": 2515000,
"buybackPricePerGram": 2385000
},
{
"setAt": "2026-08-29T11:40:30+07:00",
"series": "Gold",
"spread": 220000,
"buyPrice": 4990000,
"isOrigin": true,
"seriesId": 1,
"weightId": 5,
"weightGram": 2,
"buybackPrice": 4770000,
"buyPricePerGram": 2495000,
"buybackPricePerGram": 2385000
},
{
"setAt": "2026-08-29T11:40:30+07:00",
"series": "Gold",
"spread": 460000,
"buyPrice": 12385000,
"isOrigin": true,
"seriesId": 1,
"weightId": 6,
"weightGram": 5,
"buybackPrice": 11925000,
"buyPricePerGram": 2477000,
"buybackPricePerGram": 2385000
},
{
"setAt": "2026-08-29T11:40:30+07:00",
"series": "Gold",
"spread": 850000,
"buyPrice": 24700000,
"isOrigin": true,
"seriesId": 1,
"weightId": 7,
"weightGram": 10,
"buybackPrice": 23850000,
"buyPricePerGram": 2470000,
"buybackPricePerGram": 2385000
},
{
"setAt": "2026-08-29T11:40:30+07:00",
"series": "Gold",
"spread": 1850000,
"buyPrice": 61475000,
"isOrigin": true,
"seriesId": 1,
"weightId": 8,
"weightGram": 25,
"buybackPrice": 59625000,
"buyPricePerGram": 2459000,
"buybackPricePerGram": 2385000
}
],
"metal": "gold",
"total": 20,
"series": null,
"dataset": "price",
"currency": "IDR",
"provider": "hrta-gold",
"updatedAt": "2026-08-29T11:40:30+07:00",
"denomination": null,
"seriesAvailable": [
"Gold",
"Prime"
],
"denominationsAvailable": [
0.1,
0.25,
0.5,
1,
2,
5,
10,
25
]
}
```
---
### Series
Bar and jewellery collections, each tied to a brand.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:hrta-gold/series`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `brand` | string | query | no | Keep only series of this brand, case-insensitive. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:hrta-gold/series?brand=EMASKU" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:hrta-gold/series?brand=EMASKU", {
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:hrta-gold/series?brand=EMASKU",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 12,
"items": [
{
"name": "Anabul Custom",
"brand": "EMASKU",
"image": "https://hrtagold.id/api/v1/assets/collections/collections_EJeVZGgkrj.webp",
"active": true,
"brandId": 1,
"isOrigin": true,
"seriesId": 18
},
{
"name": "Anabul",
"brand": "EMASKU",
"image": "https://hrtagold.id/api/v1/assets/collections/collection_rlKfkcPCnE.webp",
"active": true,
"brandId": 1,
"isOrigin": true,
"seriesId": 11
},
{
"name": "BSI Gold",
"brand": "EMASKU",
"image": null,
"active": true,
"brandId": 1,
"isOrigin": false,
"seriesId": 8
},
{
"name": "Moment",
"brand": "EMASKU",
"image": "https://hrtagold.id/api/v1/assets/collections/collection_eXVWJygNzD.webp",
"active": true,
"brandId": 1,
"isOrigin": true,
"seriesId": 2
},
{
"name": "Gold",
"brand": "EMASKU",
"image": "https://hrtagold.id/api/v1/assets/collections/collection_scWCtxLvVj.webp",
"active": true,
"brandId": 1,
"isOrigin": true,
"seriesId": 1
},
{
"name": "Prime",
"brand": "EMASKU",
"image": "https://hrtagold.id/api/v1/assets/collections/collection_hDAynrFBMo.webp",
"active": true,
"brandId": 1,
"isOrigin": true,
"seriesId": 4
},
{
"name": "Ardore in Love",
"brand": "ARDORE",
"image": "https://hrtagold.id/api/v1/assets/collections/collections_mM6tEULFNz.webp",
"active": true,
"brandId": 2,
"isOrigin": true,
"seriesId": 17
},
{
"name": "Ardore Heritage",
"brand": "ARDORE",
"image": "https://hrtagold.id/api/v1/assets/collections/collections_qLxM2yRWI7.webp",
"active": true,
"brandId": 2,
"isOrigin": true,
"seriesId": 16
}
],
"total": 12,
"dataset": "series",
"provider": "hrta-gold"
}
```
---
### Sub-series
Second level of the collection tree.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:hrta-gold/sub-series`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `seriesId` | number | query | no | Keep only sub-series of this series. |
| `brand` | string | query | no | Keep only sub-series of this brand, case-insensitive. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:hrta-gold/sub-series?seriesId=18&brand=EMASKU" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:hrta-gold/sub-series?seriesId=18&brand=EMASKU", {
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:hrta-gold/sub-series?seriesId=18&brand=EMASKU",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 34,
"items": [
{
"name": "Cat",
"brand": "EMASKU",
"active": true,
"brandId": 1,
"seriesId": 18,
"subSeriesId": 47
},
{
"name": "Dog",
"brand": "EMASKU",
"active": true,
"brandId": 1,
"seriesId": 18,
"subSeriesId": 48
},
{
"name": "Dog",
"brand": "EMASKU",
"active": true,
"brandId": 1,
"seriesId": 11,
"subSeriesId": 35
},
{
"name": "Cat",
"brand": "EMASKU",
"active": true,
"brandId": 1,
"seriesId": 11,
"subSeriesId": 34
},
{
"name": "Christmas",
"brand": "EMASKU",
"active": true,
"brandId": 1,
"seriesId": 2,
"subSeriesId": 10
},
{
"name": "Amanah",
"brand": "EMASKU",
"active": true,
"brandId": 1,
"seriesId": 2,
"subSeriesId": 11
},
{
"name": "Wedding Samawa",
"brand": "EMASKU",
"active": true,
"brandId": 1,
"seriesId": 2,
"subSeriesId": 14
},
{
"name": "Wedding International",
"brand": "EMASKU",
"active": true,
"brandId": 1,
"seriesId": 2,
"subSeriesId": 13
}
],
"total": 34,
"dataset": "sub-series",
"provider": "hrta-gold"
}
```
---
### Brands
Brands the mint sells under.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:hrta-gold/brands`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `x` | string | query | no | Unused — the brand list takes no parameters. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:hrta-gold/brands?x=" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:hrta-gold/brands?x=", {
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:hrta-gold/brands?x=",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 2,
"items": [
{
"name": "EMASKU",
"brandId": 1
},
{
"name": "ARDORE",
"brandId": 2
}
],
"total": 2,
"dataset": "brands",
"provider": "hrta-gold"
}
```
---
### Categories
Top-level product categories.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:hrta-gold/categories`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `x` | string | query | no | Unused — the category list takes no parameters. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:hrta-gold/categories?x=" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:hrta-gold/categories?x=", {
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:hrta-gold/categories?x=",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 8,
"items": [
{
"name": "Accessory",
"categoryId": 1
},
{
"name": "Earrings",
"categoryId": 2
},
{
"name": "Brooch",
"categoryId": 3
},
{
"name": "Ring",
"categoryId": 4
},
{
"name": "Bracelet",
"categoryId": 5
},
{
"name": "Necklace",
"categoryId": 6
},
{
"name": "Pendant",
"categoryId": 7
},
{
"name": "Gold Bar",
"categoryId": 8
}
],
"total": 8,
"dataset": "categories",
"provider": "hrta-gold"
}
```
---
### Sub-categories
Second level of the product tree, with its parent category.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:hrta-gold/sub-categories`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `categoryId` | number | query | no | Keep only sub-categories of this category. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:hrta-gold/sub-categories?categoryId=2" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:hrta-gold/sub-categories?categoryId=2", {
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:hrta-gold/sub-categories?categoryId=2",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 17,
"items": [
{
"name": "Anting Giwang",
"category": "Earrings",
"categoryId": 2,
"subCategoryId": 8
},
{
"name": "Anting Cuff",
"category": "Earrings",
"categoryId": 2,
"subCategoryId": 7
},
{
"name": "Anting",
"category": "Earrings",
"categoryId": 2,
"subCategoryId": 6
},
{
"name": "Klip",
"category": "Brooch",
"categoryId": 3,
"subCategoryId": 17
},
{
"name": "Pin",
"category": "Brooch",
"categoryId": 3,
"subCategoryId": 16
},
{
"name": "Cincin Pria",
"category": "Ring",
"categoryId": 4,
"subCategoryId": 14
},
{
"name": "Cincin Kawin",
"category": "Ring",
"categoryId": 4,
"subCategoryId": 13
},
{
"name": "Cincin Fashion",
"category": "Ring",
"categoryId": 4,
"subCategoryId": 12
}
],
"total": 17,
"dataset": "sub-categories",
"provider": "hrta-gold"
}
```
---
### Carats
Purity grades paired with the carat label each is sold under.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:hrta-gold/carats`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `x` | string | query | no | Unused — the carat list takes no parameters. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:hrta-gold/carats?x=" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:hrta-gold/carats?x=", {
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:hrta-gold/carats?x=",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 7,
"items": [
{
"carat": "6K",
"grade": "300"
},
{
"carat": "8K",
"grade": "375"
},
{
"carat": "17K",
"grade": "750"
},
{
"carat": "24K",
"grade": "99.9"
},
{
"carat": "16K",
"grade": "700"
},
{
"carat": "18K",
"grade": "791"
},
{
"carat": "9K",
"grade": "416"
}
],
"total": 7,
"dataset": "carats",
"provider": "hrta-gold"
}
```
---
### Colours
Gold colours offered across the jewellery lines.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:hrta-gold/colors`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `x` | string | query | no | Unused — the colour list takes no parameters. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:hrta-gold/colors?x=" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:hrta-gold/colors?x=", {
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:hrta-gold/colors?x=",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 2,
"items": [
{
"name": "Kuning"
},
{
"name": "Putih"
}
],
"total": 2,
"dataset": "colors",
"provider": "hrta-gold"
}
```
---
### Weights
Every bar weight the mint recognises.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:hrta-gold/weights`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `activeOnly` | enum(true|false) | query | no | Keep only weights the mint still lists. Default false. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:hrta-gold/weights?activeOnly=true" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:hrta-gold/weights?activeOnly=true", {
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:hrta-gold/weights?activeOnly=true",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 19,
"items": [
{
"active": true,
"weightId": 1,
"weightGram": 0.1
},
{
"active": true,
"weightId": 19,
"weightGram": 0.2
},
{
"active": true,
"weightId": 2,
"weightGram": 0.25
},
{
"active": true,
"weightId": 3,
"weightGram": 0.5
},
{
"active": true,
"weightId": 4,
"weightGram": 1
},
{
"active": true,
"weightId": 5,
"weightGram": 2
},
{
"active": false,
"weightId": 18,
"weightGram": 3
},
{
"active": true,
"weightId": 6,
"weightGram": 5
}
],
"total": 19,
"dataset": "weights",
"provider": "hrta-gold"
}
```
---
### Weight groups
How bar weights are banded for the shop filters.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:hrta-gold/weight-groups`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `x` | string | query | no | Unused — the weight group list takes no parameters. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:hrta-gold/weight-groups?x=" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:hrta-gold/weight-groups?x=", {
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:hrta-gold/weight-groups?x=",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 3,
"items": [
{
"name": "MICRO GOLDBAR",
"range": "Range (0.10 gr - 0.25 gr)",
"active": true,
"groupId": 1,
"weights": [
{
"weightId": 1,
"weightGram": 0.1
},
{
"weightId": 19,
"weightGram": 0.2
},
{
"weightId": 2,
"weightGram": 0.25
}
],
"weightCount": 3
},
{
"name": "SMALL GOLDBAR",
"range": "Range (0.50 gr - 100.00 gr)",
"active": true,
"groupId": 2,
"weights": [
{
"weightId": 3,
"weightGram": 0.5
},
{
"weightId": 4,
"weightGram": 1
},
{
"weightId": 5,
"weightGram": 2
},
{
"weightId": 6,
"weightGram": 5
},
{
"weightId": 7,
"weightGram": 10
},
{
"weightId": 8,
"weightGram": 25
},
{
"weightId": 9,
"weightGram": 50
},
{
"weightId": 10,
"weightGram": 100
}
],
"weightCount": 8
},
{
"name": "GOLDBAR",
"range": "Range (125.00 gr - 1000.00 gr)",
"active": true,
"groupId": 3,
"weights": [
{
"weightId": 11,
"weightGram": 125
},
{
"weightId": 12,
"weightGram": 150
},
{
"weightId": 16,
"weightGram": 175
},
{
"weightId": 15,
"weightGram": 200
},
{
"weightId": 17,
"weightGram": 250
},
{
"weightId": 13,
"weightGram": 500
},
{
"weightId": 14,
"weightGram": 1000
}
],
"weightCount": 7
}
],
"total": 3,
"dataset": "weight-groups",
"provider": "hrta-gold"
}
```
---
### Products
Full catalogue with live price, business price, stock and series tree.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:hrta-gold/products`
- **Cache TTL:** 1800s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `page` | number | query | no | Page of products. Default 1. |
| `limit` | number | query | no | Products per page. Default 12, max 100 — the upstream's own ceiling. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:hrta-gold/products?page=1&limit=24" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:hrta-gold/products?page=1&limit=24", {
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:hrta-gold/products?page=1&limit=24",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"page": 1,
"count": 24,
"items": [
{
"sku": "GBMLK-26G001/01-99",
"name": "EMASKU GOLD SERIES 5 GR",
"uuid": "3babb0a1-3972-5eb1-359c-a71bce4059fe",
"brand": "EMASKU",
"grade": "999.9",
"price": 12385000,
"stock": 214,
"active": true,
"images": [
"https://hrtagold.id/api/v1/assets/products/product_pEYCzk943t_image_1.webp",
"https://hrtagold.id/api/v1/assets/products/product_TLPmfMCNq6_image_2.webp",
"https://hrtagold.id/api/v1/assets/products/product_hNfI4yvG1T_image_3.webp",
"https://hrtagold.id/api/v1/assets/products/product_IpbxPn27St_image_4.webp"
],
"series": "Gold",
"brandId": 1,
"category": "Gold Bar",
"itemCode": "86821260006-1",
"preorder": false,
"seriesId": 1,
"weightId": 6,
"isPopular": false,
"productId": 323,
"signature": false,
"subSeries": "Royale",
"viewCount": 75367,
"bestSeller": false,
"isBusiness": true,
"isDiscount": false,
"newArrival": false,
"thumbnails": [
"https://hrtagold.id/api/v1/assets/products/product_pEYCzk943t_thumbnail_1.webp",
"https://hrtagold.id/api/v1/assets/products/product_TLPmfMCNq6_thumbnail_2.webp"
],
"weightGram": 5,
"description": "
- Harga akan selalu di update mengikuti harga emas dunia setiap harinya.
- Emas batangan EMASKU yang sudah dibeli dapat dijual kembali (buyback) ke seluruh jaringan toko Hartadinata Abadi Store, Toko Perhiasan ACC, Buyback Online dan Toko Emas Manapun. Syarat dan ketentuan berlaku sesuai kebijakan masing-masing toko.
- Khusus Pre Order, produk akan dikirimkan maksimal 10 hari kerja
",
"subCategory": "Mini Gold Bar",
"subSeriesId": 1,
"businessPrice": 11945000,
"discountPrice": 12385000,
"discountPercent": 0,
"isRecommendation": true
},
{
"sku": "GBMLK-26C001/01-99",
"name": "EMASKU GOLD SERIES 0.5 GR",
"uuid": "85d99034-8d78-4a9c-a721-6a473bc88eb5",
"brand": "EMASKU",
"grade": "999.9",
"price": 1312500,
"stock": 166,
"active": true,
"images": [
"https://hrtagold.id/api/v1/assets/products/product_nQTYyHsixE_image_1.webp",
"https://hrtagold.id/api/v1/assets/products/product_lP8WR6Kwnf_image_2.webp",
"https://hrtagold.id/api/v1/assets/products/product_Uy1vPbwjmJ_image_3.webp",
"https://hrtagold.id/api/v1/assets/products/product_K5Y8RxfzJX_image_4.webp"
],
"series": "Gold",
"brandId": 1,
"category": "Gold Bar",
"itemCode": "86821260003-1",
"preorder": false,
"seriesId": 1,
"weightId": 3,
"isPopular": false,
"productId": 320,
"signature": false,
"subSeries": "Royale",
"viewCount": 48857,
"bestSeller": false,
"isBusiness": true,
"isDiscount": false,
"newArrival": false,
"thumbnails": [
"https://hrtagold.id/api/v1/assets/products/product_nQTYyHsixE_thumbnail_1.webp",
"https://hrtagold.id/api/v1/assets/products/product_lP8WR6Kwnf_thumbnail_2.webp"
],
"weightGram": 0.5,
"description": "
- Harga akan selalu di update mengikuti harga emas dunia setiap harinya.
- Emas batangan EMASKU yang sudah dibeli dapat dijual kembali (buyback) ke seluruh jaringan toko Hartadinata Abadi Store, Toko Perhiasan ACC, Buyback Online dan Toko Emas Manapun. Syarat dan ketentuan berlaku sesuai kebijakan masing-masing toko.
- Khusus Pre Order, produk akan dikirimkan maksimal 10 hari kerja
",
"subCategory": "Mini Gold Bar",
"subSeriesId": 1,
"businessPrice": 1202000,
"discountPrice": 1312500,
"discountPercent": 0,
"isRecommendation": true
},
{
"sku": "GBCLK-26B001/01-99",
"name": "EMASKU GOLD SERIES 0.25 GR",
"uuid": "470a080e-84de-f31f-f920-740375934f78",
"brand": "EMASKU",
"grade": "999.9",
"price": 748500,
"stock": 100,
"active": true,
"images": [
"https://hrtagold.id/api/v1/assets/products/product_5qV9ROZcgi_image_1.webp",
"https://hrtagold.id/api/v1/assets/products/product_tg9pQJrs8a_image_2.webp",
"https://hrtagold.id/api/v1/assets/products/product_BbqMckvLhY_image_3.webp",
"https://hrtagold.id/api/v1/assets/products/product_5J3zxlH9DT_image_4.webp"
],
"series": "Gold",
"brandId": 1,
"category": "Gold Bar",
"itemCode": "86811260003-1",
"preorder": false,
"seriesId": 1,
"weightId": 2,
"isPopular": false,
"productId": 319,
"signature": false,
"subSeries": "Royale",
"viewCount": 15831,
"bestSeller": false,
"isBusiness": true,
"isDiscount": false,
"newArrival": false,
"thumbnails": [
"https://hrtagold.id/api/v1/assets/products/product_5qV9ROZcgi_thumbnail_1.webp",
"https://hrtagold.id/api/v1/assets/products/product_tg9pQJrs8a_thumbnail_2.webp"
],
"weightGram": 0.25,
"description": "
- Harga akan selalu di update mengikuti harga emas dunia setiap harinya.
- Emas batangan EMASKU yang sudah dibeli dapat dijual kembali (buyback) ke seluruh jaringan toko Hartadinata Abadi Store, Toko Perhiasan ACC, Buyback Online dan Toko Emas Manapun. Syarat dan ketentuan berlaku sesuai kebijakan masing-masing toko.
- Khusus Pre Order, produk akan dikirimkan maksimal 10 hari kerja
",
"subCategory": "Micro Gold Bar",
"subSeriesId": 1,
"businessPrice": 748500,
"discountPrice": 748500,
"discountPercent": 0,
"isRecommendation": false
},
{
"sku": "GBCLK-26A001/01-99",
"name": "EMASKU GOLD SERIES 0.1 GR",
"uuid": "39349166-b5dc-092f-70ff-80d972445c83",
"brand": "EMASKU",
"grade": "999.9",
"price": 318000,
"stock": 92,
"active": true,
"images": [
"https://hrtagold.id/api/v1/assets/products/product_gMHa4Zbdrj_image_1.webp",
"https://hrtagold.id/api/v1/assets/products/product_B5WbEIlY3i_image_2.webp",
"https://hrtagold.id/api/v1/assets/products/product_9Ti7zoqLN6_image_3.webp",
"https://hrtagold.id/api/v1/assets/products/product_iyKQOG5gAn_image_4.webp"
],
"series": "Gold",
"brandId": 1,
"category": "Gold Bar",
"itemCode": "86811260002-1",
"preorder": false,
"seriesId": 1,
"weightId": 1,
"isPopular": false,
"productId": 318,
"signature": false,
"subSeries": "Royale",
"viewCount": 23781,
"bestSeller": false,
"isBusiness": true,
"isDiscount": false,
"newArrival": false,
"thumbnails": [
"https://hrtagold.id/api/v1/assets/products/product_gMHa4Zbdrj_thumbnail_1.webp",
"https://hrtagold.id/api/v1/assets/products/product_B5WbEIlY3i_thumbnail_2.webp"
],
"weightGram": 0.1,
"description": "
- Harga akan selalu di update mengikuti harga emas dunia setiap harinya.
- Emas batangan EMASKU yang sudah dibeli dapat dijual kembali (buyback) ke seluruh jaringan toko Hartadinata Abadi Store, Toko Perhiasan ACC, Buyback Online dan Toko Emas Manapun. Syarat dan ketentuan berlaku sesuai kebijakan masing-masing toko.
- Khusus Pre Order, produk akan dikirimkan maksimal 10 hari kerja
",
"subCategory": "Micro Gold Bar",
"subSeriesId": 1,
"businessPrice": 318000,
"discountPrice": 318000,
"discountPercent": 0,
"isRecommendation": false
},
{
"sku": "GBMLK-26D001/01-99",
"name": "EMASKU GOLD SERIES 1 GR",
"uuid": "93a8a3dd-ad7e-8f28-80ee-4f190eaefcbe",
"brand": "EMASKU",
"grade": "999.9",
"price": 2515000,
"stock": 73,
"active": true,
"images": [
"https://hrtagold.id/api/v1/assets/products/product_DXrzPYwnSy_image_1.webp",
"https://hrtagold.id/api/v1/assets/products/product_ZG3AaVmU2p_image_2.webp",
"https://hrtagold.id/api/v1/assets/products/product_FpHsabPZyK_image_3.webp",
"https://hrtagold.id/api/v1/assets/products/product_HtyuplawCD_image_4.webp"
],
"series": "Gold",
"brandId": 1,
"category": "Gold Bar",
"itemCode": "86821260004-1",
"preorder": false,
"seriesId": 1,
"weightId": 4,
"isPopular": true,
"productId": 321,
"signature": false,
"subSeries": "Royale",
"viewCount": 148914,
"bestSeller": true,
"isBusiness": true,
"isDiscount": false,
"newArrival": false,
"thumbnails": [
"https://hrtagold.id/api/v1/assets/products/product_DXrzPYwnSy_thumbnail_1.webp",
"https://hrtagold.id/api/v1/assets/products/product_ZG3AaVmU2p_thumbnail_2.webp"
],
"weightGram": 1,
"description": "
- Harga akan selalu di update mengikuti harga emas dunia setiap harinya.
- Emas batangan EMASKU yang sudah dibeli dapat dijual kembali (buyback) ke seluruh jaringan toko Hartadinata Abadi Store, Toko Perhiasan ACC, Buyback Online dan Toko Emas Manapun. Syarat dan ketentuan berlaku sesuai kebijakan masing-masing toko.
- Khusus Pre Order, produk akan dikirimkan maksimal 10 hari kerja
",
"subCategory": "Mini Gold Bar",
"subSeriesId": 1,
"businessPrice": 2404000,
"discountPrice": 2515000,
"discountPercent": 0,
"isRecommendation": true
},
{
"sku": "GBMLK-26H001/01-99",
"name": "EMASKU GOLD SERIES 10 GR",
"uuid": "ef2ecf94-2ab7-33b5-ee1b-63734baf4619",
"brand": "EMASKU",
"grade": "999.9",
"price": 24700000,
"stock": 62,
"active": true,
"images": [
"https://hrtagold.id/api/v1/assets/products/product_OpUJlRrygc_image_1.webp",
"https://hrtagold.id/api/v1/assets/products/product_ZfFaCdbS5u_image_2.webp",
"https://hrtagold.id/api/v1/assets/products/product_tyXi0dWozl_image_3.webp",
"https://hrtagold.id/api/v1/assets/products/product_HcZx7zJP52_image_4.webp"
],
"series": "Gold",
"brandId": 1,
"category": "Gold Bar",
"itemCode": "86821260007-1",
"preorder": false,
"seriesId": 1,
"weightId": 7,
"isPopular": false,
"productId": 324,
"signature": false,
"subSeries": "Royale",
"viewCount": 29370,
"bestSeller": false,
"isBusiness": true,
"isDiscount": false,
"newArrival": false,
"thumbnails": [
"https://hrtagold.id/api/v1/assets/products/product_OpUJlRrygc_thumbnail_1.webp",
"https://hrtagold.id/api/v1/assets/products/product_ZfFaCdbS5u_thumbnail_2.webp"
],
"weightGram": 10,
"description": "
- Harga akan selalu di update mengikuti harga emas dunia setiap harinya.
- Emas batangan EMASKU yang sudah dibeli dapat dijual kembali (buyback) ke seluruh jaringan toko Hartadinata Abadi Store, Toko Perhiasan ACC, Buyback Online dan Toko Emas Manapun. Syarat dan ketentuan berlaku sesuai kebijakan masing-masing toko.
- Khusus Pre Order, produk akan dikirimkan maksimal 10 hari kerja
",
"subCategory": "Mini Gold Bar",
"subSeriesId": 1,
"businessPrice": 23890000,
"discountPrice": 24700000,
"discountPercent": 0,
"isRecommendation": true
},
{
"sku": "GBMLK-26C003/01-99",
"name": "EMASKU MOMENT AMANAH 0.5 GR",
"uuid": "db406c90-f881-c21c-3efd-9bb09c4ddbd4",
"brand": "EMASKU",
"grade": "999.9",
"price": 1312500,
"stock": 41,
"active": true,
"images": [
"https://hrtagold.id/api/v1/assets/products/product_7vYlmWZLXN_image_1.webp",
"https://hrtagold.id/api/v1/assets/products/product_RPGTgDMmcl_image_2.webp",
"https://hrtagold.id/api/v1/assets/products/product_IyNl1HqQRM_image_3.webp",
"https://hrtagold.id/api/v1/assets/products/product_wv15XUGJCT_image_4.webp"
],
"series": "Moment",
"brandId": 1,
"category": "Gold Bar",
"itemCode": "86821260028-1",
"preorder": false,
"seriesId": 2,
"weightId": 3,
"isPopular": false,
"productId": 316,
"signature": false,
"subSeries": "Amanah",
"viewCount": 10312,
"bestSeller": false,
"isBusiness": true,
"isDiscount": false,
"newArrival": false,
"thumbnails": [
"https://hrtagold.id/api/v1/assets/products/product_7vYlmWZLXN_thumbnail_1.webp",
"https://hrtagold.id/api/v1/assets/products/product_RPGTgDMmcl_thumbnail_2.webp"
],
"weightGram": 0.5,
"description": "
- Harga akan selalu di update mengikuti harga emas dunia setiap harinya.
- Emas batangan EMASKU yang sudah dibeli dapat dijual kembali (buyback) ke seluruh jaringan toko Hartadinata Abadi Store, Toko Perhiasan ACC, Buyback Online dan Toko Emas Manapun. Syarat dan ketentuan berlaku sesuai kebijakan masing-masing toko.
- Khusus Pre Order, produk akan dikirimkan maksimal 10 hari kerja
",
"subCategory": "Mini Gold Bar",
"subSeriesId": 11,
"businessPrice": 1202000,
"discountPrice": 1312500,
"discountPercent": 0,
"isRecommendation": true
},
{
"sku": "GBMLK-26E001/01-99",
"name": "EMASKU GOLD SERIES 2 GR",
"uuid": "cc6c4082-a6cf-95d0-9998-744fce07ec5e",
"brand": "EMASKU",
"grade": "999.9",
"price": 4990000,
"stock": 35,
"active": true,
"images": [
"https://hrtagold.id/api/v1/assets/products/product_unscZ0Qi2L_image_1.webp",
"https://hrtagold.id/api/v1/assets/products/product_nhyJVI7SjE_image_2.webp",
"https://hrtagold.id/api/v1/assets/products/product_elyixnTokD_image_3.webp",
"https://hrtagold.id/api/v1/assets/products/product_cZ5hB9Uu4V_image_4.webp"
],
"series": "Gold",
"brandId": 1,
"category": "Gold Bar",
"itemCode": "86821260005-1",
"preorder": false,
"seriesId": 1,
"weightId": 5,
"isPopular": true,
"productId": 322,
"signature": false,
"subSeries": "Royale",
"viewCount": 125462,
"bestSeller": true,
"isBusiness": true,
"isDiscount": false,
"newArrival": false,
"thumbnails": [
"https://hrtagold.id/api/v1/assets/products/product_unscZ0Qi2L_thumbnail_1.webp",
"https://hrtagold.id/api/v1/assets/products/product_nhyJVI7SjE_thumbnail_2.webp"
],
"weightGram": 2,
"description": "
- Harga akan selalu di update mengikuti harga emas dunia setiap harinya.
- Emas batangan EMASKU yang sudah dibeli dapat dijual kembali (buyback) ke seluruh jaringan toko Hartadinata Abadi Store, Toko Perhiasan ACC, Buyback Online dan Toko Emas Manapun. Syarat dan ketentuan berlaku sesuai kebijakan masing-masing toko.
- Khusus Pre Order, produk akan dikirimkan maksimal 10 hari kerja
",
"subCategory": "Mini Gold Bar",
"subSeriesId": 1,
"businessPrice": 4808000,
"discountPrice": 4990000,
"discountPercent": 0,
"isRecommendation": true
}
],
"total": 285,
"dataset": "products",
"hasMore": true,
"currency": "IDR",
"nextPage": 2,
"provider": "hrta-gold",
"pageCount": 12
}
```
---
### Promotions
Promotions running on the storefront, with the discount band each advertises.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:hrta-gold/banners`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `type` | string | query | no | Keep only banners of this type, case-insensitive. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:hrta-gold/banners?type=promotion" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:hrta-gold/banners?type=promotion", {
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:hrta-gold/banners?type=promotion",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 5,
"items": [
{
"url": "https://hrtagold.id/en/promotion/promo-bundling-emasku-kemerdekaan",
"type": "promotion",
"title": "PROMO BUNDLING",
"active": true,
"sequence": 84,
"description": "Promo Khusus EMASKU Kemerdekaan",
"imageMobile": "https://hrtagold.id/api/v1/assets/banners/banner_LeEZQj1BbC_mobile.webp",
"imageTablet": "https://hrtagold.id/api/v1/assets/banners/banner_aNCjYesZIv_tablet.webp",
"isPromotion": true,
"promotionId": 83,
"imageDesktop": "https://hrtagold.id/api/v1/assets/banners/banner_r6ZSKfegdR_desktop.webp",
"discountRange": null
},
{
"url": "https://hrtagold.id/en/promotion/promo-potongan-emasku",
"type": "promotion",
"title": "PROMO POTONGAN EMASKU",
"active": true,
"sequence": 85,
"description": null,
"imageMobile": "https://hrtagold.id/api/v1/assets/banners/banner_eRG5V9UxPu_mobile.webp",
"imageTablet": "https://hrtagold.id/api/v1/assets/banners/banner_pXVHMziOet_tablet.webp",
"isPromotion": true,
"promotionId": 81,
"imageDesktop": "https://hrtagold.id/api/v1/assets/banners/banner_PuL2xEQkwB_desktop.webp",
"discountRange": "1%"
},
{
"url": "https://hrtagold.id/en/promotion/gratis-ongkir-ke-seluruh-indonesia",
"type": "promotion",
"title": "GRATIS ONGKIR KE SELURUH INDONESIA",
"active": true,
"sequence": 86,
"description": "Hanya Berlaku di Aplikasi HRTA Gold",
"imageMobile": "https://hrtagold.id/api/v1/assets/banners/banner_tRQBkO8sgS_mobile.webp",
"imageTablet": "https://hrtagold.id/api/v1/assets/banners/banner_81IHpQq7LC_tablet.webp",
"isPromotion": true,
"promotionId": 82,
"imageDesktop": "https://hrtagold.id/api/v1/assets/banners/banner_AzD1h0pVvx_desktop.webp",
"discountRange": "1%"
},
{
"url": "https://hrtagold.id/en/promotion/promo-potongan-anabul",
"type": "promotion",
"title": "PROMO POTONGAN ANABUL",
"active": true,
"sequence": 87,
"description": null,
"imageMobile": "https://hrtagold.id/api/v1/assets/banners/banner_Tv6S8NyuFn_mobile.webp",
"imageTablet": "https://hrtagold.id/api/v1/assets/banners/banner_4erZJUlm0p_tablet.webp",
"isPromotion": true,
"promotionId": 84,
"imageDesktop": "https://hrtagold.id/api/v1/assets/banners/banner_pNKOT4Gh8t_desktop.webp",
"discountRange": "9%"
},
{
"url": "https://hrtagold.id/en/promotion/dari-emasku-menuju-tanah-suci",
"type": "promotion",
"title": "DARI EMASKU® MENUJU TANAH SUCI",
"active": true,
"sequence": 88,
"description": null,
"imageMobile": "https://hrtagold.id/api/v1/assets/banners/banner_1mwpT4GRnE_mobile.webp",
"imageTablet": "https://hrtagold.id/api/v1/assets/banners/banner_jholuGyCEg_tablet.webp",
"isPromotion": true,
"promotionId": 75,
"imageDesktop": "https://hrtagold.id/api/v1/assets/banners/banner_rJP1Fd0Ln9_desktop.webp",
"discountRange": "1% - 9%"
}
],
"total": 5,
"dataset": "banners",
"provider": "hrta-gold"
}
```
---
## 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"
]
}
```
---
## IDX Channel
**Category:** finance · **Slug:** `idxchannel`
**Detail page:** https://zapi.ink/api/finance/idxchannel
Indonesian market news and live IDX market data — articles by channel, date and tag, plus stock quotes, indices and currency rates.
**Tags:** idxchannel, saham, idx, indonesia, market, news, finance
### Stock Table
Paged table of every listed stock, sortable by volume or change percent.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:idxchannel/stocks`
- **Cache TTL:** 60s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `page` | number | query | no | Page number, 10 rows per page. Default 1 |
| `sortBy` | enum(volume|changePercent) | query | no | Sort column. Omit for the upstream's default order |
| `sort` | enum(asc|desc) | query | no | Sort direction. Only applied together with sortBy |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:idxchannel/stocks?page=1&sortBy=volume&sort=desc" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:idxchannel/stocks?page=1&sortBy=volume&sort=desc", {
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:idxchannel/stocks?page=1&sortBy=volume&sort=desc",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"page": 1,
"sort": null,
"count": 10,
"items": [
{
"code": "AADI",
"open": 9725,
"close": 9900,
"change": 175,
"volume": 10192200,
"updatedAt": "2026-08-20T10:55:10.000Z",
"changePercent": 1.8
},
{
"code": "AALI",
"open": 7750,
"close": 8000,
"change": 250,
"volume": 2770700,
"updatedAt": "2026-08-20T10:55:10.000Z",
"changePercent": 3.23
},
{
"code": "ABDA",
"open": 3810,
"close": 3810,
"change": 0,
"volume": 1000,
"updatedAt": "2026-08-20T10:55:10.000Z",
"changePercent": 0
},
{
"code": "ABMM",
"open": 2700,
"close": 2720,
"change": 30,
"volume": 803300,
"updatedAt": "2026-08-20T10:55:10.000Z",
"changePercent": 1.12
},
{
"code": "ACES",
"open": 364,
"close": 362,
"change": 0,
"volume": 18881500,
"updatedAt": "2026-08-20T10:55:10.000Z",
"changePercent": 0
},
{
"code": "ACRO",
"open": 62,
"close": 63,
"change": 1,
"volume": 3282200,
"updatedAt": "2026-08-20T10:55:10.000Z",
"changePercent": 1.61
},
{
"code": "ACST",
"open": 85,
"close": 85,
"change": 0,
"volume": 370600,
"updatedAt": "2026-08-20T10:55:10.000Z",
"changePercent": 0
},
{
"code": "ADES",
"open": 33000,
"close": 33000,
"change": 175,
"volume": 3900,
"updatedAt": "2026-08-20T10:55:10.000Z",
"changePercent": 0.53
}
],
"total": 861,
"sortBy": null,
"dataset": "stocks",
"hasMore": true,
"nextPage": 2,
"provider": "idxchannel"
}
```
---
### All Stocks
Every listed stock in one call, with last price, change and timestamp.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:idxchannel/stocks-all`
- **Cache TTL:** 60s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `search` | string | query | no | Filter by ticker code, case-insensitive substring |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:idxchannel/stocks-all?search=BBC" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:idxchannel/stocks-all?search=BBC", {
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:idxchannel/stocks-all?search=BBC",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 12,
"items": [
{
"code": "BBCA",
"close": 6400,
"change": 100,
"updatedAt": "2026-08-20T10:50:08.000Z",
"changePercent": 1.59
},
{
"code": "BBHI",
"close": 905,
"change": 0,
"updatedAt": "2026-08-20T10:50:08.000Z",
"changePercent": 0
},
{
"code": "BBKP",
"close": 56,
"change": 1,
"updatedAt": "2026-08-20T10:50:08.000Z",
"changePercent": 1.82
},
{
"code": "BBLD",
"close": 685,
"change": 5,
"updatedAt": "2026-08-20T10:50:08.000Z",
"changePercent": 0.72
},
{
"code": "BBMD",
"close": 1950,
"change": 5,
"updatedAt": "2026-08-20T10:50:08.000Z",
"changePercent": 0.26
},
{
"code": "BBNI",
"close": 3590,
"change": 30,
"updatedAt": "2026-08-20T10:50:08.000Z",
"changePercent": 0.84
},
{
"code": "BBRI",
"close": 3140,
"change": 60,
"updatedAt": "2026-08-20T10:50:08.000Z",
"changePercent": 1.95
},
{
"code": "BBRM",
"close": 115,
"change": 0,
"updatedAt": "2026-08-20T10:50:08.000Z",
"changePercent": 0
}
],
"search": "BB",
"dataset": "stocks-all",
"provider": "idxchannel"
}
```
---
### Stock Quote
One stock's session: open, high, low, close, previous and change.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:idxchannel/quote`
- **Cache TTL:** 60s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `code` | string | query | yes | Ticker code, with or without case |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:idxchannel/quote?code=BBCA" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:idxchannel/quote?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:idxchannel/quote?code=BBCA",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"low": 3090,
"code": "BBRI",
"high": 3140,
"open": 3100,
"close": 3140,
"change": 60,
"dataset": "quote",
"previous": 3080,
"provider": "idxchannel",
"updatedAt": "2026-08-20T10:50:08.000Z",
"changePercent": 1.95
}
```
---
### Ticker List
Every ticker code IDX Channel tracks.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:idxchannel/tickers`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `search` | string | query | no | Filter by code, case-insensitive substring |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:idxchannel/tickers?search=BB" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:idxchannel/tickers?search=BB", {
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:idxchannel/tickers?search=BB",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 12,
"items": [
"BBCA",
"BBHI",
"BBKP",
"BBLD",
"BBMD",
"BBNI",
"BBRI",
"BBRM"
],
"search": "BB",
"dataset": "tickers",
"provider": "idxchannel"
}
```
---
### Market Indices
Indonesian indices with last value, change and change percent.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:idxchannel/indices`
- **Cache TTL:** 60s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `code` | string | query | no | Filter to one index code |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:idxchannel/indices?code=IHSG" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:idxchannel/indices?code=IHSG", {
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:idxchannel/indices?code=IHSG",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"code": "IHSG",
"count": 1,
"items": [
{
"code": "IHSG",
"close": 6501.59,
"change": 107.46,
"updatedAt": "2026-08-20T10:57:12.000Z",
"changePercent": 1.68
}
],
"dataset": "indices",
"provider": "idxchannel"
}
```
---
### Currency Rates
Foreign currency rates against the rupiah.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:idxchannel/currencies`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `currency` | string | query | no | Filter to one currency, by its three-letter name |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:idxchannel/currencies?currency=USD" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:idxchannel/currencies?currency=USD", {
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:idxchannel/currencies?currency=USD",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 1,
"items": [
{
"code": "USDRP",
"rate": 17746,
"currency": "USD",
"updatedAt": "2026-08-20T10:45:06.000Z"
}
],
"dataset": "currencies",
"currency": "USD",
"provider": "idxchannel"
}
```
---
### Market Snapshot
Indices and currency rates in a single call.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:idxchannel/market-snapshot`
- **Cache TTL:** 60s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `x` | string | query | no | Unused; this endpoint takes no input |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:idxchannel/market-snapshot?x=VALUE" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:idxchannel/market-snapshot?x=VALUE", {
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:idxchannel/market-snapshot?x=VALUE",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"dataset": "market-snapshot",
"indices": [
{
"code": "IHSG",
"close": 6501.59,
"change": 107.46,
"updatedAt": "2026-08-20T10:57:12.000Z",
"changePercent": 1.68
},
{
"code": "LQ45",
"close": 638.74,
"change": 11.27,
"updatedAt": "2026-08-20T10:57:12.000Z",
"changePercent": 1.8
},
{
"code": "IDX30",
"close": 356.26,
"change": 5.32,
"updatedAt": "2026-08-20T10:57:12.000Z",
"changePercent": 1.52
},
{
"code": "MNC36",
"close": 275.97,
"change": 4.62,
"updatedAt": "2026-08-20T10:57:12.000Z",
"changePercent": 1.7
},
{
"code": "JII",
"close": 390.27,
"change": 9.35,
"updatedAt": "2026-08-20T10:57:12.000Z",
"changePercent": 2.45
},
{
"code": "IDX80",
"close": 96.11,
"change": 1.89,
"updatedAt": "2026-08-20T10:57:12.000Z",
"changePercent": 2
},
{
"code": "IDXHIDIV20",
"close": 432.62,
"change": 5.05,
"updatedAt": "2026-08-20T10:57:12.000Z",
"changePercent": 1.18
},
{
"code": "IDXG30",
"close": 121.26,
"change": 1.36,
"updatedAt": "2026-08-20T10:57:12.000Z",
"changePercent": 1.13
}
],
"provider": "idxchannel",
"currencies": [
{
"rate": 17746,
"currency": "USD"
},
{
"rate": 2262,
"currency": "HKD"
},
{
"rate": 12648,
"currency": "AUD"
},
{
"rate": 2640,
"currency": "CNY"
}
],
"indexCount": 10,
"currencyCount": 4
}
```
---
### Latest Articles
Newest articles, optionally scoped to one channel or media type.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:idxchannel/latest`
- **Cache TTL:** 120s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `channel` | enum(market-news|economics|banking|syariah|ecotainment|milenomic|inspirator|economia|news|technology) | query | no | Channel to scope to. Omit for all channels |
| `type` | enum(news|video|photo) | query | no | Media type. Omit for all types |
| `page` | number | query | no | Page number, 9 items per page. Default 1 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:idxchannel/latest?channel=market-news&type=news&page=1" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:idxchannel/latest?channel=market-news&type=news&page=1", {
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:idxchannel/latest?channel=market-news&type=news&page=1",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"page": 1,
"type": null,
"count": 9,
"items": [
{
"id": "393077",
"url": "https://www.idxchannel.com/banking/citi-indonesia-raup-laba-bersih-rp994-miliar-ditopang-pertumbuhan-kredit",
"slug": "citi-indonesia-raup-laba-bersih-rp994-miliar-ditopang-pertumbuhan-kredit",
"type": "news",
"image": "https://img.idxchannel.com/media/800/images/idx/2022/04/26/Citi_Indonesia.jpg",
"title": "Citi Indonesia Raup Laba Bersih Rp994 Miliar Ditopang Pertumbuhan Kredit",
"source": "idxchannel.com",
"category": "BANKING",
"thumbnail": "https://img.idxchannel.com/media/439/images/idx/2022/04/26/Citi_Indonesia.jpg",
"publishedAt": "2026-08-20T09:35:00.000Z"
},
{
"id": "393058",
"url": "https://www.idxchannel.com/banking/bank-jatim-bjtm-perkuat-kerja-sama-dan-layanan-perbankan-di-dinas-pendidikan-se-jawa-timur",
"slug": "bank-jatim-bjtm-perkuat-kerja-sama-dan-layanan-perbankan-di-dinas-pendidikan-se-jawa-timur",
"type": "news",
"image": "https://img.idxchannel.com/media/800/images/idx/2026/08/20/bank_jatim_bjtm.jpg",
"title": "Bank Jatim (BJTM) Perkuat Kerja Sama dan Layanan Perbankan di Dinas Pendidikan se-Jawa Timur",
"source": "idxchannel.com",
"category": "BANKING",
"thumbnail": "https://img.idxchannel.com/media/439/images/idx/2026/08/20/bank_jatim_bjtm.jpg",
"publishedAt": "2026-08-20T08:10:00.000Z"
},
{
"id": "393043",
"url": "https://www.idxchannel.com/banking/ibma-dibentuk-indonesia-dorong-penguatan-pasar-bullion-hingga-tingkat-global",
"slug": "ibma-dibentuk-indonesia-dorong-penguatan-pasar-bullion-hingga-tingkat-global",
"type": "news",
"image": "https://img.idxchannel.com/media/800/images/idx/2026/08/20/1000193357.jpg",
"title": "IBMA Dibentuk, Indonesia Dorong Penguatan Pasar Bullion hingga Tingkat Global",
"source": "idxchannel.com",
"category": "BANKING",
"thumbnail": "https://img.idxchannel.com/media/439/images/idx/2026/08/20/1000193357.jpg",
"publishedAt": "2026-08-20T05:55:00.000Z"
},
{
"id": "393038",
"url": "https://www.idxchannel.com/banking/percepat-pendalaman-pasar-bulion-nasional-indonesia-kini-punya-indonesia-bullion-market-association",
"slug": "percepat-pendalaman-pasar-bulion-nasional-indonesia-kini-punya-indonesia-bullion-market-association",
"type": "news",
"image": "https://img.idxchannel.com/media/800/images/idx/2026/08/20/1000193357.jpg",
"title": "Percepat Pendalaman Pasar Bulion Nasional, Indonesia Kini Punya Indonesia Bullion Market Association",
"source": "idxchannel.com",
"category": "BANKING",
"thumbnail": "https://img.idxchannel.com/media/439/images/idx/2026/08/20/1000193357.jpg",
"publishedAt": "2026-08-20T05:26:00.000Z"
},
{
"id": "393016",
"url": "https://www.idxchannel.com/banking/ibma-bidik-perkuat-ekosistem-bullion-siapkan-gold-expo-hingga-kaji-regulasi-pajak",
"slug": "ibma-bidik-perkuat-ekosistem-bullion-siapkan-gold-expo-hingga-kaji-regulasi-pajak",
"type": "news",
"image": "https://img.idxchannel.com/media/800/images/idx/2026/08/20/1000193149.jpg",
"title": "IBMA Bidik Perkuat Ekosistem Bullion, Siapkan Gold Expo hingga Kaji Regulasi Pajak",
"source": "idxchannel.com",
"category": "BANKING",
"thumbnail": "https://img.idxchannel.com/media/439/images/idx/2026/08/20/1000193149.jpg",
"publishedAt": "2026-08-20T03:30:00.000Z"
},
{
"id": "393014",
"url": "https://www.idxchannel.com/banking/indonesian-bullion-market-association-ibma-resmi-diluncurkan-ekosistem-emas-masuk-babak-baru",
"slug": "indonesian-bullion-market-association-ibma-resmi-diluncurkan-ekosistem-emas-masuk-babak-baru",
"type": "news",
"image": "https://img.idxchannel.com/media/800/images/idx/2026/08/20/1000193176.jpg",
"title": "Indonesian Bullion Market Association (IBMA) Resmi Diluncurkan, Ekosistem Emas Masuk Babak Baru",
"source": "idxchannel.com",
"category": "BANKING",
"thumbnail": "https://img.idxchannel.com/media/439/images/idx/2026/08/20/1000193176.jpg",
"publishedAt": "2026-08-20T03:14:00.000Z"
},
{
"id": "392986",
"url": "https://www.idxchannel.com/banking/bi-terbitkan-2-kebijakan-baru-dorong-ekspansi-kredit-ke-sektor-prioritas",
"slug": "bi-terbitkan-2-kebijakan-baru-dorong-ekspansi-kredit-ke-sektor-prioritas",
"type": "news",
"image": "https://img.idxchannel.com/media/800/images/idx/2025/10/22/Rupiah_sindonews.JPG",
"title": "BI Terbitkan 2 Kebijakan Baru Dorong Ekspansi Kredit ke Sektor Prioritas",
"source": "idxchannel.com",
"category": "BANKING",
"thumbnail": "https://img.idxchannel.com/media/439/images/idx/2025/10/22/Rupiah_sindonews.JPG",
"publishedAt": "2026-08-20T00:00:00.000Z"
},
{
"id": "392951",
"url": "https://www.idxchannel.com/banking/bi-dorong-satu-himbara-jadi-kliring-bank-renminbi-di-indonesia",
"slug": "bi-dorong-satu-himbara-jadi-kliring-bank-renminbi-di-indonesia",
"type": "news",
"image": "https://img.idxchannel.com/media/800/images/idx/2025/06/18/Fasilitas_Pegawai_Bank_Indonesia.jpg",
"title": "BI Dorong Satu Himbara Jadi Kliring Bank Renminbi di Indonesia",
"source": "idxchannel.com",
"category": "BANKING",
"thumbnail": "https://img.idxchannel.com/media/439/images/idx/2025/06/18/Fasilitas_Pegawai_Bank_Indonesia.jpg",
"publishedAt": "2026-08-19T14:12:00.000Z"
}
],
"channel": "banking",
"dataset": "latest",
"hasMore": true,
"nextPage": 2,
"provider": "idxchannel"
}
```
---
### Article Search
Search articles by keyword, channel and media type.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:idxchannel/search`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `q` | string | query | yes | Search keyword |
| `channel` | enum(market-news|economics|banking|syariah|ecotainment|milenomic|inspirator|economia|news|technology) | query | no | Channel to scope to. Omit for all channels |
| `type` | enum(news|video|photo) | query | no | Media type. Omit for all types |
| `page` | number | query | no | Page number, 9 items per page. Default 1 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:idxchannel/search?q=saham&channel=market-news&type=news&page=1" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:idxchannel/search?q=saham&channel=market-news&type=news&page=1", {
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:idxchannel/search?q=saham&channel=market-news&type=news&page=1",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"page": 1,
"type": null,
"count": 9,
"items": [
{
"id": "393078",
"url": "https://www.idxchannel.com/market-news/10-saham-top-gainer-perdagangan-kamis-20-agustus-2026-ada-kija-hingga-psab",
"slug": "10-saham-top-gainer-perdagangan-kamis-20-agustus-2026-ada-kija-hingga-psab",
"type": "news",
"image": "https://img.idxchannel.com/media/800/images/idx/2026/02/16/Saham_naik_-_Freepik_16_Feb_26.jpg",
"title": "10 Saham Top Gainer Perdagangan Kamis 20 Agustus 2026, Ada KIJA hingga PSAB",
"source": "idxchannel.com",
"category": "MARKET NEWS",
"thumbnail": "https://img.idxchannel.com/media/439/images/idx/2026/02/16/Saham_naik_-_Freepik_16_Feb_26.jpg",
"publishedAt": "2026-08-20T09:36:00.000Z"
},
{
"id": "393072",
"url": "https://www.idxchannel.com/market-news/ihsg-ditutup-tembus-level-6500-saham-ammn-kija-terbang",
"slug": "ihsg-ditutup-tembus-level-6500-saham-ammn-kija-terbang",
"type": "news",
"image": "https://img.idxchannel.com/media/800/images/idx/2025/11/07/ihsg_hijau.jpg",
"title": "IHSG Ditutup Tembus Level 6.500, Saham AMMN-KIJA Terbang",
"source": "idxchannel.com",
"category": "MARKET NEWS",
"thumbnail": "https://img.idxchannel.com/media/439/images/idx/2025/11/07/ihsg_hijau.jpg",
"publishedAt": "2026-08-20T09:18:00.000Z"
},
{
"id": "393070",
"url": "https://www.idxchannel.com/market-news/15-saham-dengan-penurunan-investor-terdalam-juli-2026-intip-deretan-emitennya",
"slug": "15-saham-dengan-penurunan-investor-terdalam-juli-2026-intip-deretan-emitennya",
"type": "news",
"image": "https://img.idxchannel.com/media/800/images/idx/2026/01/31/saham_dok_freepik.jpg",
"title": "15 Saham dengan Penurunan Investor Terdalam Juli 2026, Intip Deretan Emitennya",
"source": "idxchannel.com",
"category": "MARKET NEWS",
"thumbnail": "https://img.idxchannel.com/media/439/images/idx/2026/01/31/saham_dok_freepik.jpg",
"publishedAt": "2026-08-20T09:12:00.000Z"
},
{
"id": "393067",
"url": "https://www.idxchannel.com/market-news/15-saham-dengan-peningkatan-investor-tertinggi-juli-2026-bnbr-hingga-vktr",
"slug": "15-saham-dengan-peningkatan-investor-tertinggi-juli-2026-bnbr-hingga-vktr",
"type": "news",
"image": "https://img.idxchannel.com/media/800/images/idx/2026/03/12/Investor_misterius_-_Saham_-_Freepik_-_12_Mar_26.jpeg",
"title": "15 Saham dengan Peningkatan Investor Tertinggi Juli 2026, BNBR hingga VKTR",
"source": "idxchannel.com",
"category": "MARKET NEWS",
"thumbnail": "https://img.idxchannel.com/media/439/images/idx/2026/03/12/Investor_misterius_-_Saham_-_Freepik_-_12_Mar_26.jpeg",
"publishedAt": "2026-08-20T08:34:00.000Z"
},
{
"id": "393036",
"url": "https://www.idxchannel.com/market-news/ihsg-melonjak-147-persen-ke-6487-di-sesi-i-440-saham-kompak-menguat",
"slug": "ihsg-melonjak-147-persen-ke-6487-di-sesi-i-440-saham-kompak-menguat",
"type": "news",
"image": "https://img.idxchannel.com/media/800/images/idx/2024/08/14/IHSG_hijau.JPG",
"title": "IHSG Melonjak 1,47 Persen ke 6.487 di Sesi I, 440 Saham Kompak Menguat",
"source": "idxchannel.com",
"category": "MARKET NEWS",
"thumbnail": "https://img.idxchannel.com/media/439/images/idx/2024/08/14/IHSG_hijau.JPG",
"publishedAt": "2026-08-20T05:20:00.000Z"
},
{
"id": "393007",
"url": "https://www.idxchannel.com/market-news/ihsg-diproyeksi-mixed-mdka-brms-jadi-sorotan-analis",
"slug": "ihsg-diproyeksi-mixed-mdka-brms-jadi-sorotan-analis",
"type": "news",
"image": "https://img.idxchannel.com/media/800/images/idx/2025/12/01/Ciri-Ciri_Saham_Gorengan.jpeg",
"title": "IHSG Diproyeksi Mixed, MDKA-BRMS Jadi Sorotan Analis",
"source": "idxchannel.com",
"category": "MARKET NEWS",
"thumbnail": "https://img.idxchannel.com/media/439/images/idx/2025/12/01/Ciri-Ciri_Saham_Gorengan.jpeg",
"publishedAt": "2026-08-20T02:53:00.000Z"
},
{
"id": "393004",
"url": "https://www.idxchannel.com/market-news/ihsg-dibuka-rebound-ke-6447-sektor-barang-baku-melonjak-3-persen",
"slug": "ihsg-dibuka-rebound-ke-6447-sektor-barang-baku-melonjak-3-persen",
"type": "news",
"image": "https://img.idxchannel.com/media/800/images/idx/2026/07/23/IHSG_6_430_Dhera.jpg",
"title": "IHSG Dibuka Rebound ke 6.447, Sektor Barang Baku Melonjak 3 Persen",
"source": "idxchannel.com",
"category": "MARKET NEWS",
"thumbnail": "https://img.idxchannel.com/media/439/images/idx/2026/07/23/IHSG_6_430_Dhera.jpg",
"publishedAt": "2026-08-20T02:31:00.000Z"
},
{
"id": "392980",
"url": "https://www.idxchannel.com/market-news/harga-saham-turun-hingga-57-persen-cbdk-berencana-buyback-rp250-miliar",
"slug": "harga-saham-turun-hingga-57-persen-cbdk-berencana-buyback-rp250-miliar",
"type": "news",
"image": "https://img.idxchannel.com/media/800/images/idx/2022/05/23/tujuan_dan_dampak_buyback.jpeg",
"title": "Harga Saham Turun hingga 57 Persen, CBDK Berencana Buyback Rp250 Miliar",
"source": "idxchannel.com",
"category": "MARKET NEWS",
"thumbnail": "https://img.idxchannel.com/media/439/images/idx/2022/05/23/tujuan_dan_dampak_buyback.jpeg",
"publishedAt": "2026-08-19T23:00:00.000Z"
}
],
"query": "ihsg",
"channel": null,
"dataset": "search",
"hasMore": true,
"nextPage": 2,
"provider": "idxchannel"
}
```
---
### Article Archive
Articles published on a given date, filterable by channel.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:idxchannel/archive`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `date` | string | query | no | Archive date as YYYY-MM-DD. Default today in Jakarta time |
| `channel` | enum(market-news|economics|banking|syariah|ecotainment|milenomic|inspirator|economia|news|technology) | query | no | Channel to scope to. Omit for all channels |
| `page` | number | query | no | Page number, 6 items per page. Default 1 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:idxchannel/archive?date=2026-08-20&channel=economics&page=1" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:idxchannel/archive?date=2026-08-20&channel=economics&page=1", {
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:idxchannel/archive?date=2026-08-20&channel=economics&page=1",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"date": "2026-08-19",
"page": 1,
"count": 6,
"items": [
{
"url": "https://www.idxchannel.com/economics/ekonom-nilai-pengalihan-utang-whoosh-ke-kemenkeu-bukan-solusi-bebas-risiko-fiskal",
"title": "Ekonom Nilai Pengalihan Utang Whoosh ke Kemenkeu Bukan Solusi Bebas Risiko Fiskal",
"source": "idxchannel.com",
"caption": "Ekonom Nilai Pengalihan Utang Whoosh ke Kemenkeu Bukan Solusi Bebas Risiko Fiskal. (Foto: iNews Media Group)",
"category": "ECONOMICS",
"thumbnail": "https://img.idxchannel.com/media/439/images/idx/2026/03/23/Whoosh.jpeg",
"publishedAt": "2026-08-19T16:00:00.000Z"
},
{
"url": "https://www.idxchannel.com/economics/pemerintah-siapkan-pendataan-rumah-rusak-dan-lahan-huntap-bagi-korban-terdampak-gempa-ntt",
"title": "Pemerintah Siapkan Pendataan Rumah Rusak dan Lahan Huntap bagi Korban Terdampak Gempa NTT",
"source": "idxchannel.com",
"caption": "Pemerintah Siapkan Pendataan Rumah Rusak dan Lahan Huntap bagi Korban Terdampak Gempa NTT. (Foto Istimewa)",
"category": "ECONOMICS",
"thumbnail": "https://img.idxchannel.com/media/439/images/idx/2026/08/15/Gempa_Bumi_NTT-3.jpg",
"publishedAt": "2026-08-19T15:30:00.000Z"
},
{
"url": "https://www.idxchannel.com/economics/kementerian-pkp-dorong-pemanfaatan-aset-negara-untuk-perluasan-lahan-rumah-subsidi",
"title": "Kementerian PKP Dorong Pemanfaatan Aset Negara untuk Perluasan Lahan Rumah Subsidi",
"source": "idxchannel.com",
"caption": "Kementerian PKP Dorong Pemanfaatan Aset Negara untuk Perluasan Lahan Rumah Subsidi. (Foto: iNews Media Group)",
"category": "ECONOMICS",
"thumbnail": "https://img.idxchannel.com/media/439/images/idx/2026/08/05/maruarar_roh.jpg",
"publishedAt": "2026-08-19T15:30:00.000Z"
},
{
"url": "https://www.idxchannel.com/economics/harga-beli-listrik-pltp-masih-rendah-proyek-pengembangan-panas-bumi-tak-menarik-bagi-investor",
"title": "Harga Beli Listrik PLTP Masih Rendah, Proyek Pengembangan Panas Bumi Tak Menarik bagi Investor",
"source": "idxchannel.com",
"caption": "Harga Beli Listrik PLTP Masih Rendah, Proyek Pengembangan Panas Bumi Tak Menarik bagi Investor. (Foto Istimewa)",
"category": "ECONOMICS",
"thumbnail": "https://img.idxchannel.com/media/439/images/idx/2021/03/01/panas_bumi_idxchannel.jpg",
"publishedAt": "2026-08-19T14:45:00.000Z"
},
{
"url": "https://www.idxchannel.com/market-news/wall-street-dibuka-rebound-usai-aksi-jual-saham-teknologi-mereda",
"title": "Wall Street Dibuka Rebound usai Aksi Jual Saham Teknologi Mereda",
"source": "idxchannel.com",
"caption": "Wall Street Dibuka Rebound usai Aksi Jual Saham Teknologi Mereda. (Foto Istimewa)",
"category": "MARKET NEWS",
"thumbnail": "https://img.idxchannel.com/media/439/images/idx/2024/10/26/wall_street.jfif",
"publishedAt": "2026-08-19T14:32:00.000Z"
},
{
"url": "https://www.idxchannel.com/market-news/wton-gabung-kso-senilai-rp334-miliar-amankan-struktur-tanah-di-tol-cisumdawu",
"title": "WTON Gabung KSO Senilai Rp334 Miliar, Amankan Struktur Tanah di Tol Cisumdawu",
"source": "idxchannel.com",
"caption": "WTON Gabung KSO Senilai Rp334 Miliar, Amankan Struktur Tanah di Tol Cisumdawu",
"category": "MARKET NEWS",
"thumbnail": "https://img.idxchannel.com/media/439/images/idx/2026/08/19/WTON_Cisumdawu.jpeg",
"publishedAt": "2026-08-19T14:15:00.000Z"
}
],
"channel": null,
"dataset": "archive",
"hasMore": true,
"nextPage": 2,
"provider": "idxchannel"
}
```
---
### Related Articles
Articles tagged with a ticker code or keyword.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:idxchannel/related`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `q` | string | query | yes | Ticker code or tag keyword |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:idxchannel/related?q=bbca" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:idxchannel/related?q=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:idxchannel/related?q=bbca",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 6,
"items": [
{
"id": "393009",
"url": "https://www.idxchannel.com/market-news/10-saham-dengan-dividen-yield-jumbo-dan-valuasi-menarik-bssr-hingga-bmri",
"type": "news",
"title": "10 Saham dengan Dividen Yield Jumbo dan Valuasi Menarik, BSSR hingga BMRI",
"source": "idxchannel.com",
"caption": "10 Saham dengan Dividen Yield Jumbo dan Valuasi Menarik, BSSR hingga BMRI. (Foto: iStock)",
"category": "MARKET NEWS",
"thumbnail": "https://img.idxchannel.com/media/439/images/idx/2026/06/08/dividen_-_istock_-_8_June_26_-.jpg",
"publishedAt": "2026-08-20T03:07:00.000Z"
},
{
"id": "392901",
"url": "https://www.idxchannel.com/market-news/bi-tahan-suku-bunga-di-level-575-persen-simak-gerak-saham-bank",
"type": "news",
"title": "BI Tahan Suku Bunga di Level 5,75 Persen, Simak Gerak Saham Bank",
"source": "idxchannel.com",
"caption": "BI Tahan Suku Bunga di Level 5,75 Persen, Simak Gerak Saham Bank. (Foto: Magnific)",
"category": "MARKET NEWS",
"thumbnail": "https://img.idxchannel.com/media/439/images/idx/2025/10/20/gedung_bank_-_freepik_20_okt_25.jpg",
"publishedAt": "2026-08-19T07:57:00.000Z"
},
{
"id": "392661",
"url": "https://www.idxchannel.com/banking/bi-hadirkan-kartu-kredit-indonesia-bank-mandiri-bmri-hingga-bsi-bris-siap-dukung",
"type": "news",
"title": "BI Hadirkan Kartu Kredit Indonesia, Bank Mandiri (BMRI) hingga BSI (BRIS) Siap Dukung",
"source": "idxchannel.com",
"caption": "Bank Indonesia (BI) bersama Asosiasi Sistem Pembayaran Indonesia (ASPI) resmi meluncurkan Kartu Kredit Indonesia (KKI) pada Senin (17/8/2026). (Foto: Dok. BI)",
"category": "BANKING",
"thumbnail": "https://img.idxchannel.com/media/439/images/idx/2026/08/17/bank_indonesia.jpg",
"publishedAt": "2026-08-17T03:45:00.000Z"
},
{
"id": "392343",
"url": "https://www.idxchannel.com/banking/penyaluran-kur-bri-bbri-capai-rp10381-triliun-hingga-akhir-juni-2026",
"type": "news",
"title": "Penyaluran KUR BRI (BBRI) Capai Rp103,81 Triliun hingga Akhir Juni 2026",
"source": "idxchannel.com",
"caption": "Penyaluran KUR BRI (BBRI) Capai Rp103,81 Triliun hingga Akhir Juni 2026 (FOTO:Dok BRI)",
"category": "BANKING",
"thumbnail": "https://img.idxchannel.com/media/439/images/idx/2026/08/13/1001213711.jpg",
"publishedAt": "2026-08-13T09:36:00.000Z"
},
{
"id": "391908",
"url": "https://www.idxchannel.com/market-news/ihsg-sesi-i-parkir-di-zona-merah-turun-049-persen-ke-6378",
"type": "news",
"title": "IHSG Sesi I Parkir di Zona Merah, Turun 0,49 Persen ke 6.378",
"source": "idxchannel.com",
"caption": "Indeks Harga Saham Gabungan (IHSG) parkir di zona merah pada penutupan sesi I perdagangan Senin (10/8/2026). (Foto: iNews Media/Dhera Arizona)",
"category": "MARKET NEWS",
"thumbnail": "https://img.idxchannel.com/media/439/images/idx/2026/07/23/ihsg_dhera.jpg",
"publishedAt": "2026-08-10T05:10:00.000Z"
},
{
"id": "391821",
"url": "https://www.idxchannel.com/market-news/10-saham-paling-banyak-diborong-asing-sepekan-bbri-teratas",
"type": "news",
"title": "10 Saham Paling Banyak Diborong Asing Sepekan, BBRI Teratas",
"source": "idxchannel.com",
"caption": "10 Saham Paling Banyak Diborong Asing Sepekan, BBRI Teratas. (Foto: Magnific0",
"category": "MARKET NEWS",
"thumbnail": "https://img.idxchannel.com/media/439/images/idx/2026/06/03/Saham_naik_-_buy_-_magnific_-_freepi_Jun_26.jpeg",
"publishedAt": "2026-08-09T04:53:00.000Z"
}
],
"query": "bbri",
"dataset": "related",
"provider": "idxchannel"
}
```
---
### Newsroom Feed
Newsroom RSS, the one listing that carries the numeric content id.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:idxchannel/feed`
- **Cache TTL:** 120s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `limit` | number | query | no | Maximum items to return. Default 10 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:idxchannel/feed?limit=10" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:idxchannel/feed?limit=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:idxchannel/feed?limit=10",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 5,
"items": [
{
"id": "393087",
"url": "https://www.idxchannel.com/ecotainment/atur-jadwal-liburan-lebih-leluasa-dengan-layanan-paylater",
"image": "https://img.idxchannel.com/media/439/images/idx/2026/08/20/Liburan_Lebih_Leluasa_dengan_Layanan_Paylater.png",
"title": "Atur Jadwal Liburan Lebih Leluasa dengan Layanan Paylater",
"source": "idxchannel.com",
"summary": "Atur Jadwal Liburan Lebih Leluasa dengan Layanan Paylater. (Foto: iNews Media Group)",
"category": "ECOTAINMENT",
"publishedAt": "2026-08-20T11:23:00.000Z"
},
{
"id": "393086",
"url": "https://www.idxchannel.com/news/1378-sekolah-terdampak-gempa-m77-di-ntt-pembelajaran-116328-murid-terganggu",
"image": "https://img.idxchannel.com/media/439/images/idx/2026/08/20/Screen_Shot_2026-08-20_at_16_46_44.jpg",
"title": "1.378 Sekolah Terdampak Gempa M7,7 di NTT, Pembelajaran 116.328 Murid Terganggu",
"source": "idxchannel.com",
"summary": "1.378 Sekolah Terdampak Gempa M7,7 di NTT, Pembelajaran 116.328 Murid Terganggu. (Foto: iNews Media Group)",
"category": "News",
"publishedAt": "2026-08-20T11:18:00.000Z"
},
{
"id": "393085",
"url": "https://www.idxchannel.com/market-news/yupi-tebar-dividen-interim-senilai-rp145-miliar-dibayar-september-2026",
"image": "https://img.idxchannel.com/media/439/images/idx/2025/05/11/yuppy_yupi.jpg",
"title": "YUPI Tebar Dividen Interim Senilai Rp145 Miliar, Dibayar September 2026",
"source": "idxchannel.com",
"summary": "PT Yupi Indo Jelly Gum Tbk (YUPI) mengumumkan pembagian dividen interim untuk tahun buku 2026 sebesar Rp145,36 miliar. (Foto: Ist)",
"category": "MARKET NEWS",
"publishedAt": "2026-08-20T11:06:00.000Z"
},
{
"id": "393084",
"url": "https://www.idxchannel.com/news/gempa-susulan-masih-guncang-ntt-pengungsi-tembus-92735-orang",
"image": "https://img.idxchannel.com/media/439/images/idx/2026/08/20/pengungsi_gempa_NTT.png",
"title": "Gempa Susulan Masih Guncang NTT, Pengungsi Tembus 92.735 Orang",
"source": "idxchannel.com",
"summary": "Gempa Susulan Masih Guncang NTT, Pengungsi Tembus 92.735 Orang. (Foto Tangkapan Layar)",
"category": "News",
"publishedAt": "2026-08-20T10:45:00.000Z"
},
{
"id": "393082",
"url": "https://www.idxchannel.com/economics/alih-status-status-guru-pppk-paruh-waktu-jadi-penuh-waktu-butuh-anggaran-rp31-triliun",
"image": "https://img.idxchannel.com/media/439/images/idx/2026/06/03/purbaya_anggie.jpeg",
"title": "Alih Status Status Guru PPPK Paruh Waktu Jadi Penuh Waktu Butuh Anggaran Rp31 Triliun",
"source": "idxchannel.com",
"summary": "Alih Status Status Guru PPPK Paruh Waktu Jadi Penuh Waktu Butuh Anggaran Rp31 Triliun. (Foto iNews Media Group)",
"category": "ECONOMICS",
"publishedAt": "2026-08-20T10:20:00.000Z"
}
],
"dataset": "feed",
"provider": "idxchannel"
}
```
---
### Channel Feed
Per-channel syndication feed with a wider image rendition.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:idxchannel/syndication`
- **Cache TTL:** 120s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `channel` | enum(market-news|economics|banking|syariah|ecotainment|milenomic|inspirator|economia|news|technology|idxtainment|the-founder|video|foto|idxc-live) | query | yes | Syndication channel |
| `limit` | number | query | no | Maximum items to return. Default 10 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:idxchannel/syndication?channel=market-news&limit=10" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:idxchannel/syndication?channel=market-news&limit=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:idxchannel/syndication?channel=market-news&limit=10",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 5,
"items": [
{
"url": "https://www.idxchannel.com/video-1/easy-ksei-hadir-kini-ikut-rups-bisa-secara-online",
"image": "https://img.idxchannel.com/media/439/images/idx/2022/06/21/easy_case.jpg",
"title": "EASY KSEI HADIR, KINI IKUT RUPS BISA SECARA ONLINE",
"source": "idxchannel.com",
"summary": "EASY KSEI HADIR, KINI IKUT RUPS BISA SECARA ONLINE.(SUMBER: IDX CHANNEL)",
"category": "VIDEO",
"publishedAt": "2022-06-21T07:28:00.000Z"
},
{
"url": "https://www.idxchannel.com/video-1/mendag-pergi-sidak-kepasar",
"image": "https://img.idxchannel.com/media/439/images/idx/2022/06/20/maxresdefault.jpg",
"title": "MENDAG PERGI SIDAK KEPASAR",
"source": "idxchannel.com",
"summary": "MENDAG PERGI SIDAK KEPASAR, (SUMBER: IDX CHANNEL)",
"category": "VIDEO",
"publishedAt": "2022-06-16T11:34:00.000Z"
},
{
"url": "https://www.idxchannel.com/video-1/melirik-potensi-bisnis-harum-energy-di-2022",
"image": "https://img.idxchannel.com/media/439/images/idx/2022/04/25/MELIRIK_POTENSI_BISNIS_HARUM_ENERGY_DI_2022.JPG",
"title": "MELIRIK POTENSI BISNIS HARUM ENERGY DI 2022",
"source": "idxchannel.com",
"summary": "MELIRIK POTENSI BISNIS HARUM ENERGY DI 2022 (SUMBER-IDX CHANNEL)",
"category": "VIDEO",
"publishedAt": "2022-04-25T04:49:00.000Z"
},
{
"url": "https://www.idxchannel.com/video-1/naik-lima-kali-lipat-kasus-covid-19-naik-menjadi-5454-kasus",
"image": "https://img.idxchannel.com/media/439/images/idx/Multimedia/2022/01/21/WhatsApp_Image_2022-01-21_at_16_50_07.jpeg",
"title": "Naik Lima Kali Lipat, Kasus Covid-19 Naik Menjadi 5.454 Kasus",
"source": "idxchannel.com",
"summary": "Naik Lima Kali Lipat, Kasus Covid-19 Naik Menjadi 5.454 Kasus",
"category": "VIDEO",
"publishedAt": "2022-01-21T15:32:00.000Z"
},
{
"url": "https://www.idxchannel.com/video-1/waspada-pinjol-ilegal-simak-perbedaan-pinjol-legal-dan-ilegal",
"image": "https://img.idxchannel.com/media/439/images/idx/Multimedia/2022/01/20/WhatsApp_Image_2022-01-20_at_13_10_49__1_.jpeg",
"title": "Waspada Pinjol Ilegal! Simak Perbedaan Pinjol Legal dan Ilegal",
"source": "idxchannel.com",
"summary": "Waspada Pinjol Ilegal! Simak Perbedaan Pinjol Legal dan Ilegal",
"category": "VIDEO",
"publishedAt": "2022-01-20T08:32:00.000Z"
}
],
"channel": "video",
"dataset": "syndication",
"provider": "idxchannel"
}
```
---
### Article Detail
One article with body text, tags and editorial credits.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:idxchannel/detail`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `url` | string | query | yes | Full article URL |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:idxchannel/detail?url=https%3A%2F%2Fwww.idxchannel.com%2Fmarket-news%2Fbbca-kucurkan-dividen-interim-rp307-triliun-kuartal-iii-2026" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:idxchannel/detail?url=https%3A%2F%2Fwww.idxchannel.com%2Fmarket-news%2Fbbca-kucurkan-dividen-interim-rp307-triliun-kuartal-iii-2026", {
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:idxchannel/detail?url=https%3A%2F%2Fwww.idxchannel.com%2Fmarket-news%2Fbbca-kucurkan-dividen-interim-rp307-triliun-kuartal-iii-2026",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"url": "https://www.idxchannel.com/market-news/bbca-kucurkan-dividen-interim-rp307-triliun-kuartal-iii-2026",
"tags": [
"BBCA",
"Dividen Interim",
"BCA",
"dividen bbca"
],
"image": "https://img.idxchannel.com/media/700/images/idx/2024/07/26/BBCA_-_BCA_gedung_-_freepik.jpg",
"title": "BBCA Kucurkan Dividen Interim Rp3,07 Triliun Kuartal III-2026",
"author": "Anggie Ariesta",
"source": "idxchannel.com",
"content": "IDXChannel – PT Bank Central Asia Tbk (BBCA) menggelontorkan dana sebesar Rp3,07 triliun untuk pembagian dividen interim kuartal III-2026. Aksi korporasi ini merupakan bagian dari rencana perseroan untuk membagikan dividen interim sebanyak tiga kali secara berkala pada tahun buku 2026.\n\nPembagian kali ini menjadi termin kedua, setelah dividen interim kuartal II-2026 direalisasikan pada 26 Juni 2026. Kebijakan tersebut mengacu pada keputusan Rapat Umum Pemegang Saham Tahunan (RUPST) pada 12 Maret 2026 yang mengizinkan Direksi dan Dewan Komisaris membagikan dividen per kuartal sesuai kondisi keuangan perseroan.\n\nPresiden Direktur BCA Hendra Lembong mengatakan, besaran nilai dividen interim tersebut telah memperhitungkan ketahanan modal, kecukupan likuiditas, ekspansi entitas anak, serta kualitas aset bank yang tetap terjaga.\n\n“Kami bersyukur dapat kembali menjalankan komitmen untuk membagikan dividen interim lebih dari satu kali pada tahun buku 2026. Nilai dividen interim yang lebih tinggi dari kuartal sebelumnya merupakan cerminan kinerja solid Perseroan pada semester I 2026. Terobosan ini diharapkan dapat menjadi hadiah bagi investor, bertepatan dengan bulan Kemerdekaan Republik Indonesia,” ujar Hendra dalam keterangan resmi, Rabu (19/8/2026).",
"dataset": "article",
"editors": [
{
"url": "https://www.idxchannel.com/author/anggie-ariesta",
"name": "Anggie Ariesta",
"role": "Reporter"
},
{
"url": "https://www.idxchannel.com/author/dhera-arizona-pratiwi-editor",
"name": "Dhera Arizona Pratiwi",
"role": "Editor"
}
],
"summary": "PT Bank Central Asia Tbk (BBCA) menggelontorkan dana sebesar Rp3,07 triliun untuk pembagian dividen interim kuartal III-2026.",
"category": "Market news",
"provider": "idxchannel",
"updatedAt": "2026-08-19T21:04:00.000Z",
"wordCount": 169,
"publishedAt": "2026-08-19T21:04:00.000Z"
}
```
---
## Indodax
**Category:** finance · **Slug:** `indodax`
**Detail page:** https://zapi.ink/api/finance/indodax
Indonesia's crypto exchange — prices in rupiah from the venue that actually trades them, with order book and tape.
**Tags:** crypto, indonesia, idr, exchange, orderbook
### Ticker
Price and 24h volume for one pair.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:indodax/ticker`
- **Cache TTL:** 15s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `pair` | string | query | yes | Trading pair. Accepts btc_idr, btcidr or BTC/IDR. Quote currency must be IDR or USDT |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:indodax/ticker?pair=btc_idr" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:indodax/ticker?pair=btc_idr", {
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:indodax/ticker?pair=btc_idr",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"buy": 1317913000,
"low": 1180000000,
"base": "BTC",
"high": 1330777000,
"last": 1317914000,
"pair": "btc_idr",
"sell": 1317914000,
"quote": "IDR",
"exchange": "indodax",
"serverTime": 1787279331,
"volumeBase": 80.70368942,
"volumeQuote": 102638466782
}
```
---
### Tickers
Every traded pair in one call, filterable.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:indodax/tickers`
- **Cache TTL:** 30s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `quote` | enum(all|idr|usdt) | query | no | Restrict to pairs quoted in this currency. Default all |
| `search` | string | query | no | Filter by base symbol or coin name |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:indodax/tickers?quote=idr&search=btc" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:indodax/tickers?quote=idr&search=btc", {
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:indodax/tickers?quote=idr&search=btc",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 493,
"items": [
{
"buy": 17652,
"low": 17641,
"base": "USDT",
"high": 17776,
"last": 17652,
"name": "Tether USDt",
"pair": "usdt_idr",
"sell": 17653,
"quote": "IDR",
"serverTime": 1787279325,
"volumeBase": 10709308.76272961,
"volumeQuote": 189573344009
},
{
"buy": 1317913000,
"low": 1180000000,
"base": "BTC",
"high": 1330777000,
"last": 1317914000,
"name": "Bitcoin",
"pair": "btc_idr",
"sell": 1317914000,
"quote": "IDR",
"serverTime": 1787279325,
"volumeBase": 80.7076104,
"volumeQuote": 102643265363
},
{
"buy": 22863,
"low": 19252,
"base": "XRP",
"high": 23600,
"last": 22858,
"name": "XRP",
"pair": "xrp_idr",
"sell": 22881,
"quote": "IDR",
"serverTime": 1787279325,
"volumeBase": 1625135.97405475,
"volumeQuote": 35047049729
},
{
"buy": 41539000,
"low": 39403000,
"base": "ETH",
"high": 41882000,
"last": 41539000,
"name": "Ethereum",
"pair": "eth_idr",
"sell": 41540000,
"quote": "IDR",
"serverTime": 1787279325,
"volumeBase": 838.57376805,
"volumeQuote": 34052102116
},
{
"buy": 1306534,
"low": 1203000,
"base": "HYPE",
"high": 1319999,
"last": 1306534,
"name": "Hyperliquid",
"pair": "hype_idr",
"sell": 1307953,
"quote": "IDR",
"serverTime": 1787279325,
"volumeBase": 20852.55778727,
"volumeQuote": 26667942975
},
{
"buy": 2165,
"low": 2125,
"base": "BEAT",
"high": 2770,
"last": 2168,
"name": "Audiera",
"pair": "beat_idr",
"sell": 2170,
"quote": "IDR",
"serverTime": 1787279325,
"volumeBase": 5921869.17768854,
"volumeQuote": 14373885113
},
{
"buy": 1570785,
"low": 1490000,
"base": "SOL",
"high": 1580999,
"last": 1573690,
"name": "Solana",
"pair": "sol_idr",
"sell": 1574830,
"quote": "IDR",
"serverTime": 1787279325,
"volumeBase": 7015.38769476,
"volumeQuote": 10789821633
},
{
"buy": 0.056714,
"low": 0.050542,
"base": "PEPE",
"high": 0.05746,
"last": 0.056774,
"name": "Pepe",
"pair": "pepe_idr",
"sell": 0.056774,
"quote": "IDR",
"serverTime": 1787279325,
"volumeBase": 177047571396,
"volumeQuote": 9536034038
}
],
"quote": "idr",
"exchange": "indodax"
}
```
---
### Order book
Resting bids and asks for one pair.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:indodax/depth`
- **Cache TTL:** 10s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `pair` | string | query | yes | Trading pair. Accepts btc_idr, btcidr or BTC/IDR. Quote currency must be IDR or USDT |
| `limit` | number | query | no | Levels per side. Default all levels returned upstream, max 200 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:indodax/depth?pair=btc_idr&limit=50" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:indodax/depth?pair=btc_idr&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:indodax/depth?pair=btc_idr&limit=50",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"asks": [
{
"price": 1317914000,
"amount": 0.02009075
},
{
"price": 1318160000,
"amount": 0.00020161
},
{
"price": 1318162000,
"amount": 0.029039
},
{
"price": 1318388000,
"amount": 0.00255254
},
{
"price": 1318533000,
"amount": 0.09656028
},
{
"price": 1318535000,
"amount": 0.01088637
},
{
"price": 1318635000,
"amount": 0.0003665
},
{
"price": 1318666000,
"amount": 0.00030461
}
],
"base": "BTC",
"bids": [
{
"price": 1317913000,
"amount": 0.27245832
},
{
"price": 1317912000,
"amount": 0.06592225
},
{
"price": 1317910000,
"amount": 0.00012073
},
{
"price": 1317067000,
"amount": 0.00378831
},
{
"price": 1317012000,
"amount": 0.00007576
},
{
"price": 1317000000,
"amount": 0.00083346
},
{
"price": 1316000000,
"amount": 0.00007582
},
{
"price": 1315991000,
"amount": 0.00564038
}
],
"pair": "btc_idr",
"quote": "IDR",
"spread": 1000,
"askCount": 150,
"bidCount": 150,
"exchange": "indodax"
}
```
---
### Trades
The recently executed tape for one pair.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:indodax/trades`
- **Cache TTL:** 10s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `pair` | string | query | yes | Trading pair. Accepts btc_idr, btcidr or BTC/IDR. Quote currency must be IDR or USDT |
| `limit` | number | query | no | Number of recent trades. Default 50, max 200 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:indodax/trades?pair=btc_idr&limit=50" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:indodax/trades?pair=btc_idr&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:indodax/trades?pair=btc_idr&limit=50",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"base": "BTC",
"pair": "btc_idr",
"count": 50,
"items": [
{
"side": "buy",
"price": 1317914000,
"amount": 0.00015772,
"tradeId": "72057594146822065",
"tradedAt": 1787279328
},
{
"side": "buy",
"price": 1317914000,
"amount": 0.00001114,
"tradeId": "72057594146822053",
"tradedAt": 1787279325
},
{
"side": "buy",
"price": 1317914000,
"amount": 0.00075617,
"tradeId": "72057594146822045",
"tradedAt": 1787279319
},
{
"side": "buy",
"price": 1317914000,
"amount": 0.03448426,
"tradeId": "72057594146822039",
"tradedAt": 1787279315
},
{
"side": "buy",
"price": 1317914000,
"amount": 0.00017316,
"tradeId": "72057594146822040",
"tradedAt": 1787279315
},
{
"side": "buy",
"price": 1317914000,
"amount": 0.00007619,
"tradeId": "72057594146822041",
"tradedAt": 1787279315
},
{
"side": "buy",
"price": 1317914000,
"amount": 0.0000433,
"tradeId": "72057594146822042",
"tradedAt": 1787279315
},
{
"side": "buy",
"price": 1317914000,
"amount": 0.03097794,
"tradeId": "72057594146822043",
"tradedAt": 1787279315
}
],
"quote": "IDR",
"exchange": "indodax"
}
```
---
### Pairs
Tradable pairs with fees, precision and market status.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:indodax/pairs`
- **Cache TTL:** 600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `quote` | enum(all|idr|usdt) | query | no | Restrict to pairs quoted in this currency. Default all |
| `search` | string | query | no | Filter by base symbol |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:indodax/pairs?quote=idr&search=btc" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:indodax/pairs?quote=idr&search=btc", {
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:indodax/pairs?quote=idr&search=btc",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 493,
"items": [
{
"base": "BTC",
"logo": "https://indodax.com/v2/logo/svg/color/btc.svg",
"pair": "btc_idr",
"quote": "IDR",
"suspended": false,
"coingeckoId": "bitcoin",
"compactPair": "btcidr",
"description": "BTC/IDR",
"minOrderBase": 0.00000759,
"minOrderQuote": 10000,
"pricePrecision": 1000,
"coinmarketcapId": 1,
"depositDisabled": false,
"makerFeePercent": 0.1,
"takerFeePercent": 0.2,
"volumePrecision": 0,
"underMaintenance": false
},
{
"base": "1INCH",
"logo": "https://indodax.com/v2/logo/svg/color/oneinch.svg",
"pair": "1inch_idr",
"quote": "IDR",
"suspended": false,
"coingeckoId": "1inch",
"compactPair": "1inchidr",
"description": "1INCH/IDR",
"minOrderBase": 6.4808814,
"minOrderQuote": 10000,
"pricePrecision": 1,
"coinmarketcapId": 8104,
"depositDisabled": false,
"makerFeePercent": 0.1,
"takerFeePercent": 0.2,
"volumePrecision": 0,
"underMaintenance": false
},
{
"base": "AAVE",
"logo": "https://indodax.com/v2/logo/svg/color/lend.svg",
"pair": "aave_idr",
"quote": "IDR",
"suspended": false,
"coingeckoId": "aave",
"compactPair": "aaveidr",
"description": "AAVE/IDR",
"minOrderBase": 0.00561799,
"minOrderQuote": 10000,
"pricePrecision": 1,
"coinmarketcapId": 7278,
"depositDisabled": false,
"makerFeePercent": 0.1,
"takerFeePercent": 0.2,
"volumePrecision": 0,
"underMaintenance": false
},
{
"base": "AAPLX",
"logo": "https://indodax.com/v2/logo/svg/color/aaplx.svg",
"pair": "aaplx_idr",
"quote": "IDR",
"suspended": false,
"coingeckoId": "apple-xstock",
"compactPair": "aaplxidr",
"description": "AAPLX/IDR",
"minOrderBase": 0.00179066,
"minOrderQuote": 10000,
"pricePrecision": 1,
"coinmarketcapId": 36994,
"depositDisabled": false,
"makerFeePercent": 0.1,
"takerFeePercent": 0.2,
"volumePrecision": 0,
"underMaintenance": false
},
{
"base": "AB",
"logo": "https://indodax.com/v2/logo/svg/color/ab.svg",
"pair": "ab_idr",
"quote": "IDR",
"suspended": false,
"coingeckoId": "newton-project",
"compactPair": "abidr",
"description": "AB/IDR",
"minOrderBase": 476.19047619,
"minOrderQuote": 10000,
"pricePrecision": 0.001,
"coinmarketcapId": 3871,
"depositDisabled": false,
"makerFeePercent": 0.1,
"takerFeePercent": 0.2,
"volumePrecision": 0,
"underMaintenance": false
},
{
"base": "ACE",
"logo": "https://indodax.com/v2/logo/svg/color/ace.svg",
"pair": "ace_idr",
"quote": "IDR",
"suspended": false,
"coingeckoId": "endurance",
"compactPair": "aceidr",
"description": "ACE/IDR",
"minOrderBase": 2.42013553,
"minOrderQuote": 10000,
"pricePrecision": 1,
"coinmarketcapId": 28674,
"depositDisabled": false,
"makerFeePercent": 0.1,
"takerFeePercent": 0.2,
"volumePrecision": 0,
"underMaintenance": false
},
{
"base": "ACH",
"logo": "https://indodax.com/v2/logo/svg/color/ach.svg",
"pair": "ach_idr",
"quote": "IDR",
"suspended": false,
"coingeckoId": "alchemy-pay",
"compactPair": "achidr",
"description": "ACH/IDR",
"minOrderBase": 126.58227848,
"minOrderQuote": 10000,
"pricePrecision": 1,
"coinmarketcapId": 6958,
"depositDisabled": false,
"makerFeePercent": 0.1,
"takerFeePercent": 0.2,
"volumePrecision": 0,
"underMaintenance": false
},
{
"base": "ACN",
"logo": "https://indodax.com/v2/logo/svg/color/acn.svg",
"pair": "acn_idr",
"quote": "IDR",
"suspended": false,
"coingeckoId": "solidus-aitech",
"compactPair": "acnidr",
"description": "ACN/IDR",
"minOrderBase": 117.42602161,
"minOrderQuote": 10000,
"pricePrecision": 0.001,
"coinmarketcapId": 19055,
"depositDisabled": false,
"makerFeePercent": 0.1,
"takerFeePercent": 0.2,
"volumePrecision": 0,
"underMaintenance": false
}
],
"quote": "idr",
"exchange": "indodax"
}
```
---
### Klines
Indodax OHLCV candles, from the TradingView UDF datafeed the market page uses.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:indodax/klines`
- **Cache TTL:** 30s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `pair` | string | query | yes | Trading pair. Accepts btc_idr, btcidr or BTC/IDR. Quote currency must be IDR or USDT |
| `tf` | string | query | no | Candle size: whole minutes (1, 5, 15, 30, 60, 120, 240) or 1D, 3D, 1W. Default 15 |
| `from` | string | query | no | Window start. Epoch seconds/ms or ISO date. Default 200 candles before `to` |
| `to` | string | query | no | Window end. Epoch seconds/ms or ISO date. Default now |
| `limit` | number | query | no | Keep only the newest N candles of the window. Default all |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:indodax/klines?pair=btc_idr&tf=15&from=2026-07-01T00%3A00%3A00Z&to=2026-08-01T00%3A00%3A00Z&limit=500" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:indodax/klines?pair=btc_idr&tf=15&from=2026-07-01T00%3A00%3A00Z&to=2026-08-01T00%3A00%3A00Z&limit=500", {
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:indodax/klines?pair=btc_idr&tf=15&from=2026-07-01T00%3A00%3A00Z&to=2026-08-01T00%3A00%3A00Z&limit=500",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"tf": "15",
"to": 1787279330,
"base": "BTC",
"from": 1787099330,
"pair": "btc_idr",
"count": 201,
"items": [
{
"low": 1150916000,
"date": "2026-08-19T00:15:00.000Z",
"high": 1151002000,
"open": 1151002000,
"close": 1150916000,
"volume": 0.1083018,
"openTime": 1787098500000,
"closeTime": 1787099399999
},
{
"low": 1148534000,
"date": "2026-08-19T00:30:00.000Z",
"high": 1150918000,
"open": 1150918000,
"close": 1149245000,
"volume": 0.10019917,
"openTime": 1787099400000,
"closeTime": 1787100299999
},
{
"low": 1148025000,
"date": "2026-08-19T00:45:00.000Z",
"high": 1148983000,
"open": 1148539000,
"close": 1148153000,
"volume": 0.09220108,
"openTime": 1787100300000,
"closeTime": 1787101199999
},
{
"low": 1145907000,
"date": "2026-08-19T01:00:00.000Z",
"high": 1148331000,
"open": 1148024000,
"close": 1148242000,
"volume": 0.53834921,
"openTime": 1787101200000,
"closeTime": 1787102099999
},
{
"low": 1147744000,
"date": "2026-08-19T01:15:00.000Z",
"high": 1147984000,
"open": 1147745000,
"close": 1147824000,
"volume": 0.26493121,
"openTime": 1787102100000,
"closeTime": 1787102999999
},
{
"low": 1145908000,
"date": "2026-08-19T01:30:00.000Z",
"high": 1148241000,
"open": 1147745000,
"close": 1146060000,
"volume": 0.2205319,
"openTime": 1787103000000,
"closeTime": 1787103899999
},
{
"low": 1146014000,
"date": "2026-08-19T01:45:00.000Z",
"high": 1146055000,
"open": 1146055000,
"close": 1146055000,
"volume": 0.10137007,
"openTime": 1787103900000,
"closeTime": 1787104799999
},
{
"low": 1146014000,
"date": "2026-08-19T02:00:00.000Z",
"high": 1146055000,
"open": 1146055000,
"close": 1146054000,
"volume": 0.03404333,
"openTime": 1787104800000,
"closeTime": 1787105699999
}
],
"quote": "IDR",
"total": 201,
"dataset": "klines",
"provider": "indodax"
}
```
---
## Investing
**Category:** finance · **Slug:** `investing`
**Detail page:** https://zapi.ink/api/finance/investing
Data pasar finansial lengkap — quote saham/forex/crypto/komoditas, teknikal, OHLCV historis, berita, analisis, dan kalender ekonomi.
**Tags:** finance, stocks, forex, crypto, market, quotes, economic-calendar
### Search
Cari instrumen (saham/forex/crypto/komoditas) + berita.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:investing/search`
- **Cache TTL:** 120s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `q` | string | query | yes | Kata kunci pencarian instrumen/berita |
| `type` | enum(all|quotes|news|articles) | query | no | Bagian hasil yang dikembalikan (default all) |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:investing/search?q=apple&type=all" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:investing/search?q=apple&type=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:investing/search?q=apple&type=all",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"news": [
{
"id": 4741015,
"url": "https://www.investing.com/news/stock-market-news/exclusivetatas-iphone-parts-factory-contaminated-farmland-water-india-pollution-body-alleges-4741015",
"image": "https://i-invdn-com.investing.com/trkd-images/LYNXMPEM5C08U_L.jpg",
"title": "Exclusive-Tata’s iPhone parts factory contaminated farmland water, India pollution body alleges"
},
{
"id": 4741023,
"url": "https://www.investing.com/news/stock-market-news/mag-7-mangos-spacex-forces-name-rethink-on-wall-streets-techstock-moniker-4741023",
"image": "https://i-invdn-com.investing.com/trkd-images/LYNXMPEM5C09W_L.jpg",
"title": "Mag 7? MANGOS? SpaceX forces name rethink on Wall Street’s tech-stock moniker"
},
{
"id": 4739346,
"url": "https://www.investing.com/news/economy-news/hedge-funds-sold-broader-tech-ahead-of-spacex-ipo-jpmorgan-data-shows-4739346",
"image": "https://i-invdn-com.investing.com/trkd-images/LYNXMPEM5B0QU_L.jpg",
"title": "Hedge funds sold broader tech ahead of SpaceX IPO, JPMorgan data shows"
},
{
"id": 4739803,
"url": "https://www.investing.com/news/company-news/healthcare-triangle-closes-36m-convertible-note-offering-93CH-4739803",
"image": "https://i-invdn-com.investing.com/news/LYNXNPEB6R0AQ_S.jpg",
"title": "Healthcare Triangle closes $3.6M convertible note offering"
},
{
"id": 4741019,
"url": "https://www.investing.com/news/company-news/tata-iphone-parts-plant-warned-over-wastewater-pollution--reuters-4741019",
"image": "https://i-invdn-com.investing.com/news/moved_small-LYNXMPEK8O0ML_L.jpg",
"title": "Tata iPhone parts plant warned over wastewater pollution - Reuters"
}
],
"query": "apple",
"quotes": [
{
"url": "https://www.investing.com/equities/apple-computer-inc",
"name": "Apple Inc",
"type": "Stock - NASDAQ",
"pairId": 6408,
"symbol": "AAPL",
"country": "USA",
"exchange": "NASDAQ"
},
{
"url": "https://www.investing.com/crypto/bunny/apple-usd",
"name": "dog with apple in mouth US Dollar",
"type": "FX - XT.COM",
"pairId": 1225435,
"symbol": "APPLE/USD",
"country": "dog_with_apple_in_mouth",
"exchange": "XT.COM"
},
{
"url": "https://www.investing.com/equities/apple-computer-inc?cid=986251",
"name": "Apple Inc",
"type": "Stock - Switzerland",
"pairId": 986251,
"symbol": "AAPLUSD",
"country": "Switzerland",
"exchange": "Switzerland"
},
{
"url": "https://www.investing.com/equities/apple-computer-inc?cid=963008",
"name": "Apple Inc",
"type": "Stock - Xetra",
"pairId": 963008,
"symbol": "AAPL",
"country": "Germany",
"exchange": "Xetra"
},
{
"url": "https://www.investing.com/equities/apple-computer-inc?cid=993325",
"name": "Apple Inc",
"type": "Stock - Switzerland",
"pairId": 993325,
"symbol": "AAPL",
"country": "Switzerland",
"exchange": "Switzerland"
},
{
"url": "https://www.investing.com/equities/apple-computer-inc?cid=1202722",
"name": "Apple Inc",
"type": "Stock - London",
"pairId": 1202722,
"symbol": "0R2V",
"country": "UK",
"exchange": "London"
},
{
"url": "https://www.investing.com/equities/apple-hospitality-reit-inc",
"name": "Apple Hospitality REIT Inc",
"type": "Stock - NYSE",
"pairId": 959642,
"symbol": "APLE",
"country": "USA",
"exchange": "NYSE"
},
{
"url": "https://www.investing.com/etfs/aapy",
"name": "Kurv Yield Premium Strategy Apple ETF",
"type": "ETF - NYSE",
"pairId": 1215129,
"symbol": "AAPY",
"country": "USA",
"exchange": "NYSE"
}
],
"articles": [
{
"id": 200182160,
"url": "https://www.investing.com/analysis/aapl-(apr-11)-200182160",
"title": "Apple Consolidates"
},
{
"id": 200282090,
"url": "https://www.investing.com/analysis/apple-confusion-200282090",
"title": "Apple Confusion"
},
{
"id": 200412540,
"url": "https://www.investing.com/analysis/adams-apple-200412540",
"title": "Adam’s Apple"
},
{
"id": 200367514,
"url": "https://www.investing.com/analysis/apple-technicals-200367514",
"title": "Apple Technicals"
},
{
"id": 260813,
"url": "https://www.investing.com/analysis/rotten-apple-260813",
"title": "Rotten Apple?"
}
]
}
```
---
### Quote
Quote real-time instrumen (harga, perubahan, range, PE, EPS, dividen).
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:investing/quote`
- **Cache TTL:** 30s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `query` | string | query | yes | Simbol atau nama instrumen (saham, index, crypto, forex, komoditas). Contoh: AAPL, bitcoin, EUR/USD |
| `pairId` | number | query | no | Pair ID internal langsung (override pencarian). Kalau diisi, parameter `query` tidak dipakai untuk resolve. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:investing/quote?query=AAPL&pairId=6408" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:investing/quote?query=AAPL&pairId=6408", {
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:investing/quote?query=AAPL&pairId=6408",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"eps": 8.2491,
"low": 289.62,
"url": "https://www.investing.com/equities/apple-computer-inc",
"beta": 1.06,
"high": 297.14,
"last": 291.13,
"name": "Apple Inc",
"open": 296.03,
"type": "Stock - NASDAQ",
"change": -4.5,
"pairId": 6408,
"symbol": "AAPL",
"volume": 38784789,
"peRatio": 35.22,
"revenue": "451.44B",
"dayRange": "289.62 - 297.14",
"dividend": 1.08,
"exchange": "NASDAQ",
"provider": "investing",
"avgVolume": 46507492,
"marketCap": "4.28T",
"week52Low": 195.07,
"week52High": 317.4,
"week52Range": "195.07 - 317.4",
"changePercent": -1.52,
"extendedHours": "After",
"extendedPrice": 291.58,
"lastTimestamp": 1781294399,
"oneYearReturn": "48.2%",
"previousClose": 295.63,
"exchangeIsOpen": false,
"extendedChange": 0.45,
"nextEarningsDate": "2026-07-30",
"technicalSummary": "Strong Sell",
"dividendYieldPercent": 0.37
}
```
---
### Technical
Ringkasan analisis teknikal (MA, oscillator, pivot) per timeframe.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:investing/technical`
- **Cache TTL:** 120s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `query` | string | query | yes | Symbol / company name to resolve (stock, index, crypto, forex, commodity). |
| `pairId` | number | query | no | Optional numeric pair id override. Skips symbol resolution when provided. |
| `timeframe` | enum(5m|15m|1h|1d) | query | no | Analysis timeframe. One of: 5m, 15m, 1h, 1d. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:investing/technical?query=AAPL&pairId=6408&timeframe=1d" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:investing/technical?query=AAPL&pairId=6408&timeframe=1d", {
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:investing/technical?query=AAPL&pairId=6408&timeframe=1d",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"name": "Apple Inc",
"pairId": 6408,
"symbol": "AAPL",
"summary": "SELL",
"timeframe": "1d",
"updatedAt": 1781294702,
"indicators": [
{
"name": "RSI(14)",
"value": 44.049,
"action": "Sell"
},
{
"name": "STOCH(9,6)",
"value": 29.697,
"action": "Sell"
},
{
"name": "STOCHRSI(14)",
"value": 3.783,
"action": "Oversold"
},
{
"name": "MACD(12,26)",
"value": 2.68,
"action": "Buy"
},
{
"name": "ATR(14)",
"value": 7.5725,
"action": "High Volatility"
},
{
"name": "ADX(14)",
"value": 39.584,
"action": "Sell"
},
{
"name": "CCI(14)",
"value": -138.3806,
"action": "Sell"
},
{
"name": "Highs/Lows(14)",
"value": -10.8686,
"action": "Sell"
}
],
"oscillators": {
"buy": 1,
"sell": 8,
"signal": "red",
"neutral": 2,
"summary": "Strong Sell"
},
"pivotPoints": [
{
"level": "R3",
"classic": 305.96,
"fibonacci": 301.48
},
{
"level": "R2",
"classic": 301.48,
"fibonacci": 298.65
},
{
"level": "R1",
"classic": 298.55,
"fibonacci": 296.9
},
{
"level": "Pivot Point",
"classic": 294.07,
"fibonacci": 294.07
},
{
"level": "S1",
"classic": 291.14,
"fibonacci": 291.24
},
{
"level": "S2",
"classic": 286.66,
"fibonacci": 289.49
},
{
"level": "S3",
"classic": 283.73,
"fibonacci": 286.66
}
],
"summaryText": "Sell",
"movingAverages": {
"buy": 6,
"sell": 6,
"signal": "black",
"summary": "Neutral"
},
"movingAverageDetails": [
{
"name": "MA5",
"simple": 294.09,
"exponential": 295.69,
"simpleAction": "Sell",
"exponentialAction": "Sell"
},
{
"name": "MA10",
"simple": 302.08,
"exponential": 299.05,
"simpleAction": "Sell",
"exponentialAction": "Sell"
},
{
"name": "MA20",
"simple": 303.88,
"exponential": 298.84,
"simpleAction": "Sell",
"exponentialAction": "Sell"
},
{
"name": "MA50",
"simple": 285.49,
"exponential": 289.41,
"simpleAction": "Buy",
"exponentialAction": "Buy"
},
{
"name": "MA100",
"simple": 272.84,
"exponential": 278.98,
"simpleAction": "Buy",
"exponentialAction": "Buy"
},
{
"name": "MA200",
"simple": 266.87,
"exponential": 266.44,
"simpleAction": "Buy",
"exponentialAction": "Buy"
}
]
}
```
---
### Historical
Data OHLCV historis (interval & periode fleksibel).
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:investing/historical`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `query` | string | query | yes | Symbol or name of the instrument to resolve (stock ticker, index, commodity, FX pair, crypto). Resolved to an internal id. |
| `pairId` | number | query | no | Optional internal instrument id override. When provided, symbol resolution is skipped. |
| `interval` | enum(1m|5m|15m|30m|1h|5h|1d|1w|1mo) | query | no | Candle interval: 1m, 5m, 15m, 30m, 1h, 5h (intraday) or 1d, 1w, 1mo. Default 1d |
| `period` | enum(1d|1w|1mo|3mo|6mo|1y|5y|max) | query | no | Lookback range: 1d, 1w, 1mo, 3mo, 6mo, 1y, 5y, max. Default 1mo. The upstream re-aggregates rather than honouring the interval literally — 1y returns ~53 daily rows, 5y ~261. Use max for full-depth candles. Any single call returns at most 5000 rows. |
| `pointscount` | number | query | no | Candle density the upstream is asked for. Only 60, 70, 90, 110, 120, 140 and 160 are accepted. Default 120. It is not a row cap — the cap is 5000 rows per call and is driven by period |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:investing/historical?query=AAPL&pairId=6408&interval=1d&period=1mo&pointscount=120" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:investing/historical?query=AAPL&pairId=6408&interval=1d&period=1mo&pointscount=120", {
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:investing/historical?query=AAPL&pairId=6408&interval=1d&period=1mo&pointscount=120",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 22,
"pairId": 6408,
"period": "1mo",
"symbol": "AAPL",
"candles": [
{
"low": 293.5,
"date": "2026-05-13T00:00:00.000Z",
"high": 300.92,
"open": 293.5,
"close": 298.87,
"volume": 52684260,
"timestamp": 1778630400000
},
{
"low": 295.38,
"date": "2026-05-14T00:00:00.000Z",
"high": 300.45,
"open": 299.82,
"close": 298.21,
"volume": 35324920,
"timestamp": 1778716800000
},
{
"low": 296.52,
"date": "2026-05-15T00:00:00.000Z",
"high": 303.2,
"open": 297.9,
"close": 300.23,
"volume": 54862836,
"timestamp": 1778803200000
},
{
"low": 294.91,
"date": "2026-05-18T00:00:00.000Z",
"high": 300.66,
"open": 300.24,
"close": 297.84,
"volume": 34482960,
"timestamp": 1779062400000
},
{
"low": 296.35,
"date": "2026-05-19T00:00:00.000Z",
"high": 300.51,
"open": 296.97,
"close": 298.97,
"volume": 42243560,
"timestamp": 1779148800000
},
{
"low": 298.08,
"date": "2026-05-20T00:00:00.000Z",
"high": 302.8,
"open": 298.18,
"close": 302.25,
"volume": 38229844,
"timestamp": 1779235200000
},
{
"low": 300.4,
"date": "2026-05-21T00:00:00.000Z",
"high": 305.54,
"open": 301.05,
"close": 304.99,
"volume": 42965128,
"timestamp": 1779321600000
},
{
"low": 305.84,
"date": "2026-05-22T00:00:00.000Z",
"high": 311.4,
"open": 306.12,
"close": 308.82,
"volume": 43670224,
"timestamp": 1779408000000
}
],
"interval": "1d"
}
```
---
### News
Berita pasar terbaru / per-instrumen.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:investing/news`
- **Cache TTL:** 180s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `query` | string | query | no | Simbol/kata kunci instrumen. Kosongkan untuk berita terbaru umum. |
| `page` | number | query | no | Nomor halaman (default 1) |
| `category` | string | query | no | Filter kategori berita (opsional, hanya untuk feed umum) |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:investing/news?query=apple&page=1&category=economy" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:investing/news?query=apple&page=1&category=economy", {
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:investing/news?query=apple&page=1&category=economy",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"page": 1,
"count": 20,
"items": [
{
"id": 4741066,
"url": "https://www.investing.com/news/economy-news/uk-intercepts-russian-oil-tanker-linked-to-shadow-fleet-in-english-channel-4741066",
"image": "https://i-invdn-com.investing.com/news/Shipping_800x533_L_1618572654.jpg",
"title": "UK intercepts Russian oil tanker linked to shadow fleet in English Channel",
"source": "Investing.com",
"excerpt": "Investing.com -- British forces intercepted a Russian shadow fleet oil tanker attempting to transit the English Channel on Sunday,...",
"category": "ECONOMY",
"publishedAt": "2026-06-14T07:05:22.000Z"
},
{
"id": 4741065,
"url": "https://www.investing.com/news/economy-news/starmer-takaichi-to-discuss-fighter-jet-project-as-uk-funding-questions-persist-4741065",
"image": "https://i-invdn-com.investing.com/news/moved_LYNXMPEK8O0VV_L.jpg",
"title": "Starmer, Takaichi to discuss fighter jet project as UK funding questions persist",
"source": "Investing.com",
"excerpt": "Investing.com -- British Prime Minister Keir Starmer is set to meet Japanese Prime Minister Sanae Takaichi on Sunday as...",
"category": "ECONOMY",
"publishedAt": "2026-06-14T06:33:08.000Z"
},
{
"id": 4741064,
"url": "https://www.investing.com/news/economy-news/south-korea-household-loans-surge-as-investors-pile-into-stocks-4741064",
"image": "https://i-invdn-com.investing.com/news/SouthKorea_800x533_L_1606575512.jpg",
"title": "South Korea household loans surge as investors pile into stocks",
"source": "Investing.com",
"excerpt": "Investing.com -- Citi said a sharp rally in South Korean equities is contributing to rising financial stability risks as household...",
"category": "ECONOMY",
"publishedAt": "2026-06-14T05:59:41.000Z"
},
{
"id": 4741063,
"url": "https://www.investing.com/news/economy-news/rubio-defends-hormuz-blockade-after-india-protests-deaths-of-sailors-4741063",
"image": "https://i-invdn-com.investing.com/news/moved_LYNXNPEL3912L_L.jpg",
"title": "Rubio defends Hormuz blockade after India protests deaths of sailors",
"source": "Investing.com",
"excerpt": "Investing.com -- U.S. Secretary of State Marco Rubio defended Washington’s actions in the Strait of Hormuz after India protested...",
"category": "ECONOMY",
"publishedAt": "2026-06-14T05:33:40.000Z"
},
{
"id": 4741062,
"url": "https://www.investing.com/news/economy-news/japan-moves-to-secure-rare-earth-supplies-with-greenland-visit--nikkei-4741062",
"image": "https://i-invdn-com.investing.com/news/LYNXMPEB430M1_L.jpg",
"title": "Japan moves to secure rare earth supplies with Greenland visit - Nikkei",
"source": "Investing.com",
"excerpt": "Investing.com -- Japan is preparing to send a delegation to Greenland this summer to evaluate possible rare earth extraction,...",
"category": "ECONOMY",
"publishedAt": "2026-06-14T05:06:10.000Z"
},
{
"id": 4741061,
"url": "https://www.investing.com/news/economy-news/trump-says-iran-deal-could-be-signed-sunday-tehran-disputes-timing-4741061",
"image": "https://i-invdn-com.investing.com/news/moved_LYNXMPEM3J0V1_1200_L.jpg",
"title": "Trump says Iran deal could be signed Sunday, Tehran disputes timing",
"source": "Investing.com",
"excerpt": "Investing.com -- U.S. President Donald Trump said an agreement with Iran to halt the war could be signed as early as Sunday,...",
"category": "ECONOMY",
"publishedAt": "2026-06-14T04:10:00.000Z"
},
{
"id": 4741057,
"url": "https://www.investing.com/news/economy-news/dollar-likely-to-find-support-as-long-as-strait-remains-mostly-closed-4741057",
"image": "https://i-invdn-com.investing.com/news/LYNXNPEB960O0_L.jpg",
"title": "Dollar likely to find support as long as Strait remains mostly closed",
"source": "Investing.com",
"excerpt": "Investing.com -- The U.S. dollar is likely to remain supported in the near term despite a recent pullback in oil prices, according...",
"category": "ECONOMY",
"publishedAt": "2026-06-14T03:01:52.000Z"
},
{
"id": 4741050,
"url": "https://www.investing.com/news/economy-news/uk-japan-to-deepen-ties-with-18-billion-investment-agreement-4741050",
"image": "https://i-invdn-com.investing.com/news/LYNXNPEC501G5_L.jpg",
"title": "UK, Japan to deepen ties with £18 billion investment agreement",
"source": "Investing.com",
"excerpt": "Investing.com -- The UK and Japan are expected to sign an £18 billion ($24.1 billion) investment agreement focused on clean...",
"category": "ECONOMY",
"publishedAt": "2026-06-14T00:06:36.000Z"
}
],
"hasMore": true,
"nextPage": 2
}
```
---
### Article
Isi artikel berita lengkap (input id dari news).
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:investing/article`
- **Cache TTL:** 1800s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `id` | unknown | query | no | ID artikel berita. Wajib jika `url` kosong. |
| `url` | string | query | no | URL artikel penuh (alternatif `id`). |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:investing/article?id=4741065&url=https%3A%2F%2Fwww.investing.com%2Fnews%2Feconomy-news%2Fsome-article-4741065" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:investing/article?id=4741065&url=https%3A%2F%2Fwww.investing.com%2Fnews%2Feconomy-news%2Fsome-article-4741065", {
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:investing/article?id=4741065&url=https%3A%2F%2Fwww.investing.com%2Fnews%2Feconomy-news%2Fsome-article-4741065",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"id": 4741066,
"url": "https://www.investing.com/news/economy-news/uk-intercepts-russian-oil-tanker-linked-to-shadow-fleet-in-english-channel-4741066",
"image": "https://i-invdn-com.investing.com/news/Shipping_800x533_L_1618572654.jpg",
"title": "UK intercepts Russian oil tanker linked to shadow fleet in English Channel",
"author": "Simon Mugo",
"source": "Investing.com",
"authorUrl": "https://www.investing.com/members/contributors/277000282",
"updatedAt": "2026-06-14T07:05:22Z",
"relatedIds": [
8833
],
"contentText": "Investing.com -- British forces intercepted a Russian shadow fleet oil tanker attempting to transit the English Channel on Sunday, according to a statement from the UK Ministry of Defence.\n\nTrack geopolitical developments and energy markets with InvestingPro\n\nThe vessel, identified as the SMYRTOS, was boarded by Royal Marine Commandos and specially trained officers from the National Crime Agency.\n\nBritish authorities said the tanker has been detained and will remain under monitoring off the country’s southern coast while investigations continue.\n\nThe Ministry of Defence said the enforcement action was carried out within British territorial waters and in accordance with domestic and international law.\n\nNo details were immediately provided about the vessel’s cargo, destination, or ownership.\n\nThe interception marks the latest effort by Western governments to crack down on Russia’s so-called shadow fleet, a network of tankers used to transport Russian oil outside the scope of Western sanctions and price cap measures.\n\nThe fleet has become an increasing focus of sanctions enforcement since the start of the war in Ukraine, with European governments stepping up scrutiny of shipping activity in key maritime routes.\n\nBritish Prime Minister Keir Starmer said he personally authorized the operation.\n\n\"This successful operation delivers yet another blow to Russia and reminds those fueling Putin’s war in Ukraine that we will not let them hide,\" Starmer said in a post on X.\n\nThe English Channel is one of the world’s busiest shipping lanes and a critical route for energy and commercial trade between Europe and global markets.\n\nThe incident comes as Western nations continue to tighten enforcement measures aimed at restricting Russia’s ability to generate revenue from oil exports while maintaining support for Ukraine.",
"publishedAt": "2026-06-14T07:05:22Z"
}
```
---
### Analysis
Artikel analisis/opini per instrumen.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:investing/analysis`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `query` | string | query | yes | Simbol/nama instrumen (mis. AAPL, Tesla) |
| `pairId` | number | query | no | Override pair ID internal (lewati resolusi simbol) |
| `page` | number | query | no | Nomor halaman (default 1) |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:investing/analysis?query=AAPL&pairId=1&page=1" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:investing/analysis?query=AAPL&pairId=1&page=1", {
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:investing/analysis?query=AAPL&pairId=1&page=1",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"page": 1,
"count": 10,
"items": [
{
"url": "http://www.investing.com/analysis/spacex-guide-everything-you-need-to-know-about-the-biggest-ipo-in-history-200682043",
"image": "https://d1-invdn-com.investing.com/company_logo/85038e5c6dc77e60512aa6c2ea4bd961.jpg",
"title": "SpaceX Guide: Everything You Need to Know About the Biggest IPO in History",
"author": "Thomas Monteiro",
"excerpt": "SpaceX begins trading on Nasdaq today under the ticker SPCX, targeting a valuation of approximately $1.75 trillion and seeking to...",
"articleId": 200682043,
"publishedAt": "2026-06-12T18:02:17.000Z"
},
{
"url": "http://www.investing.com/analysis/week-ahead-central-bank-decisions-us-retail-sales-and-japan-inflation-in-focus-200682072",
"image": "https://d1-invdn-com.investing.com/company_logo/202cdce0d0cd64f29fca913a2c714f3a.jpg",
"title": "Week Ahead: Central Bank Decisions, US Retail Sales, and Japan Inflation in Focus",
"author": "Ryan Anderson",
"excerpt": "\nMON: G7 Summit (15-17 Jun), German Wholesale Prices (May), Indian WPI (May), EZ Industrial Production (Apr), US Industrial...",
"articleId": 200682072,
"publishedAt": "2026-06-12T14:57:49.000Z"
},
{
"url": "http://www.investing.com/analysis/the-largest-public-offering-in-history-spacex-ipo-comes-with-a-stratospheric-risk-200681913",
"image": "https://d1-invdn-com.investing.com/company_logo/54f1b84dfaaf7a6d5075200b13f21246.jpg",
"title": "The Largest Public Offering in History: SpaceX IPO Comes With a Stratospheric Risk",
"author": "Arturo Gómez Gutiérrez",
"excerpt": "When Saudi Aramco listed on the Tadawul exchange in December 2019, it set a benchmark that the financial world assumed would stand...",
"articleId": 200681913,
"publishedAt": "2026-06-10T18:36:50.000Z"
},
{
"url": "http://www.investing.com/analysis/apples-siri-ai-was-finally-announced--so-why-is-the-stock-tanking-200681818",
"image": "https://d1-invdn-com.investing.com/company_logo/2ca976c96d700a6557ba4064971fc3ca.jpg",
"title": "Apple’s Siri AI Was Finally Announced - So Why Is the Stock Tanking?",
"author": "Sam Quirke ",
"excerpt": "Apple Inc (NASDAQ:AAPL) started the week with an almost-perfect setup. Multiple quarters of solid results, a market that’s been...",
"articleId": 200681818,
"publishedAt": "2026-06-09T15:56:23.000Z"
},
{
"url": "http://www.investing.com/analysis/apple-intelligence-monetization-is-the-real-wwdc-story-200681775",
"image": "https://d1-invdn-com.investing.com/company_logo/e65d0784b05fbedf064b2abd0dc70a29.jpg",
"title": "Apple Intelligence Monetization Is the Real WWDC Story",
"author": "Opeyemi Babalola",
"excerpt": "Apple’s Siri AI launch signals a new iCloud+ revenue push, but a vague launch timeline sent AAPL down nearly 2% on June 8,...",
"articleId": 200681775,
"publishedAt": "2026-06-09T08:38:43.000Z"
},
{
"url": "http://www.investing.com/analysis/week-in-focus-us-cpi-opec-boc-ecb-uk-gdp-and-china-inflation-200681607",
"image": "https://d1-invdn-com.investing.com/company_logo/202cdce0d0cd64f29fca913a2c714f3a.jpg",
"title": "Week in Focus: US CPI, OPEC, BoC, ECB, UK GDP and China Inflation",
"author": "Ryan Anderson",
"excerpt": "\nSUN: OPEC/JMMC Meeting (Jun)\nMON: Japanese GDP (Q1), German Factory Orders (Apr), US Consumer Inflation Expectations\nTUE: EIA...",
"articleId": 200681607,
"publishedAt": "2026-06-05T13:32:04.000Z"
},
{
"url": "http://www.investing.com/analysis/what-exactly-is-agentic-ai-and-why-are-some-stocks-blowing-up-because-of-it-200681295",
"image": "https://d1-invdn-com.investing.com/company_logo/2ca976c96d700a6557ba4064971fc3ca.jpg",
"title": "What Exactly Is Agentic AI, and Why Are Some Stocks Blowing Up Because of It?",
"author": "Sam Quirke ",
"excerpt": "There is a new phrase dominating Wall Street right now, and if you have been paying attention to earnings calls, analyst notes, or...",
"articleId": 200681295,
"publishedAt": "2026-06-01T16:55:26.000Z"
},
{
"url": "http://www.investing.com/analysis/dell-takes-aim-at-apple-with-a-699-xps-13-200681259",
"image": "https://d1-invdn-com.investing.com/company_logo/ad848e2ff2022b304416fb3bdd9194c4.jpg",
"title": "Dell Takes Aim at Apple With a $699 XPS 13",
"author": "Boluwatife Remy",
"excerpt": "Apple (NASDAQ:AAPL) changed the conversation about laptop pricing earlier this year, and Dell (NYSE:DELL) just fired back in the...",
"articleId": 200681259,
"publishedAt": "2026-06-01T09:36:15.000Z"
}
],
"pairId": 6408,
"symbol": "AAPL",
"hasMore": true,
"nextPage": 2
}
```
---
### Calendar
Kalender ekonomi (filter negara/importance/rentang).
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:investing/calendar`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `country` | string | query | no | Kode negara (US, EU, GB, JP, CN, ID, ...). Kosong = basket negara major utama |
| `importance` | enum(all|high|medium|low) | query | no | Tingkat dampak event. Default all (semua tingkat) |
| `range` | enum(today|tomorrow|week) | query | no | Rentang waktu: today, tomorrow, atau week (default today) |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:investing/calendar?country=US&importance=high&range=today" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:investing/calendar?country=US&importance=high&range=today", {
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:investing/calendar?country=US&importance=high&range=today",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 87,
"range": "week",
"events": [
{
"date": "2026-06-15",
"time": "08:30",
"event": "NY Empire State Manufacturing Index (Jun)",
"country": "United States",
"currency": "USD",
"datetime": "2026/06/15 08:30:00",
"forecast": "13.20",
"previous": "19.60",
"importance": 2
},
{
"date": "2026-06-15",
"time": "09:15",
"event": "Capacity Utilization Rate (May)",
"country": "United States",
"currency": "USD",
"datetime": "2026/06/15 09:15:00",
"forecast": "76.2%",
"previous": "76.1%",
"importance": 1
},
{
"date": "2026-06-15",
"time": "09:15",
"event": "Industrial Production (YoY) (May)",
"country": "United States",
"currency": "USD",
"datetime": "2026/06/15 09:15:00",
"previous": "1.35%",
"importance": 2
},
{
"date": "2026-06-15",
"time": "09:15",
"event": "Industrial Production (MoM) (May)",
"country": "United States",
"currency": "USD",
"datetime": "2026/06/15 09:15:00",
"forecast": "0.3%",
"previous": "0.7%",
"importance": 2
},
{
"date": "2026-06-15",
"time": "09:15",
"event": "Manufacturing Production (MoM) (May)",
"country": "United States",
"currency": "USD",
"datetime": "2026/06/15 09:15:00",
"previous": "0.6%",
"importance": 1
},
{
"date": "2026-06-15",
"time": "10:00",
"event": "NAHB Housing Market Index (Jun)",
"country": "United States",
"currency": "USD",
"datetime": "2026/06/15 10:00:00",
"forecast": "36",
"previous": "37",
"importance": 1
},
{
"date": "2026-06-15",
"time": "11:30",
"event": "3-Month Bill Auction",
"country": "United States",
"currency": "USD",
"datetime": "2026/06/15 11:30:00",
"previous": "3.640%",
"importance": 1
},
{
"date": "2026-06-15",
"time": "11:30",
"event": "6-Month Bill Auction",
"country": "United States",
"currency": "USD",
"datetime": "2026/06/15 11:30:00",
"previous": "3.690%",
"importance": 1
}
],
"country": "US",
"importance": "all"
}
```
---
### Market Table
A whole market's live quote table in one call — FX majors with bid/ask, bonds, stocks, indices, commodities, index futures and ETFs.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:investing/market-table`
- **Cache TTL:** 60s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `table` | enum(forex|commodities|indices|index-futures|bonds|stocks|etf) | query | no | Which market table to pull. forex = 27 major/minor FX pairs with live bid and ask, commodities = metals, energy and agri futures, indices = world cash indices, index-futures = index futures, bonds = government bonds with coupon and price, stocks = headline equities with bid and ask, etf = major ETFs. Default forex |
| `names` | enum(true|false) | query | no | Resolve instrument names and exchanges. The quote table itself carries no names, so this costs one extra lookup per instrument the process has not seen. Set false for the fastest possible price-only table. Default true |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:investing/market-table?table=forex&names=true" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:investing/market-table?table=forex&names=true", {
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:investing/market-table?table=forex&names=true",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 27,
"items": [
{
"ask": 1.1571,
"bid": 1.1569,
"low": 1.1526,
"high": 1.1586,
"last": 1.157,
"name": "EUR/USD",
"open": 1.1529,
"type": "Currency",
"change": 0.0041,
"lastAt": "2026-08-14T20:58:58.000Z",
"pairId": 1,
"symbol": "EUR/USD",
"volume": 0,
"dayRange": "1.1526 - 1.1586",
"exchange": "Real-time Currencies",
"avgVolume": 0,
"week52Low": 1.1325,
"week52High": 1.2079,
"week52Range": "1.1325 - 1.2079",
"changePercent": 0.36,
"lastTimestamp": 1786741138,
"previousClose": 1.1529,
"exchangeIsOpen": false,
"turnoverVolume": 0,
"technicalSummary": "Strong Buy"
},
{
"ask": 1.3536,
"bid": 1.3531,
"low": 1.3482,
"high": 1.3562,
"last": 1.3533,
"name": "GBP/USD",
"open": 1.3486,
"type": "Currency",
"change": 0.0047,
"lastAt": "2026-08-14T20:58:55.000Z",
"pairId": 2,
"symbol": "GBP/USD",
"volume": 0,
"dayRange": "1.3482 - 1.3562",
"exchange": "Real-time Currencies",
"avgVolume": 0,
"week52Low": 1.3009,
"week52High": 1.3869,
"week52Range": "1.3009 - 1.3869",
"changePercent": 0.35,
"lastTimestamp": 1786741135,
"previousClose": 1.3486,
"exchangeIsOpen": false,
"turnoverVolume": 0,
"technicalSummary": "Buy"
},
{
"ask": 159.34,
"bid": 159.31,
"low": 158.6,
"high": 159.55,
"last": 159.32,
"name": "USD/JPY",
"open": 159.5,
"type": "Currency",
"change": -0.18,
"lastAt": "2026-08-14T20:58:59.000Z",
"pairId": 3,
"symbol": "USD/JPY",
"volume": 0,
"dayRange": "158.60 - 159.55",
"exchange": "Real-time Currencies",
"avgVolume": 0,
"week52Low": 145.48,
"week52High": 164,
"week52Range": "145.48 - 164",
"changePercent": -0.11,
"lastTimestamp": 1786741139,
"previousClose": 159.5,
"exchangeIsOpen": false,
"turnoverVolume": 0,
"technicalSummary": "Buy"
},
{
"ask": 0.8135,
"bid": 0.8132,
"low": 0.8104,
"high": 0.8146,
"last": 0.8134,
"name": "USD/CHF",
"open": 0.8137,
"type": "Currency",
"change": -0.0003,
"lastAt": "2026-08-14T20:58:01.000Z",
"pairId": 4,
"symbol": "USD/CHF",
"volume": 0,
"dayRange": "0.8104 - 0.8146",
"exchange": "Real-time Currencies",
"avgVolume": 0,
"week52Low": 0.7604,
"week52High": 0.8208,
"week52Range": "0.7604 - 0.8208",
"changePercent": -0.04,
"lastTimestamp": 1786741081,
"previousClose": 0.8137,
"exchangeIsOpen": false,
"turnoverVolume": 0,
"technicalSummary": "Strong Buy"
},
{
"ask": 0.7088,
"bid": 0.7083,
"low": 0.7054,
"high": 0.7096,
"last": 0.7086,
"name": "AUD/USD",
"open": 0.7059,
"type": "Currency",
"change": 0.0027,
"lastAt": "2026-08-14T20:58:54.000Z",
"pairId": 5,
"symbol": "AUD/USD",
"volume": 0,
"dayRange": "0.7054 - 0.7096",
"exchange": "Real-time Currencies",
"avgVolume": 0,
"week52Low": 0.6414,
"week52High": 0.7279,
"week52Range": "0.6414 - 0.7279",
"changePercent": 0.38,
"lastTimestamp": 1786741134,
"previousClose": 0.7059,
"exchangeIsOpen": false,
"turnoverVolume": 0,
"technicalSummary": "Strong Buy"
},
{
"ask": 1.388,
"bid": 1.3869,
"low": 1.3864,
"high": 1.3937,
"last": 1.3874,
"name": "USD/CAD",
"open": 1.3931,
"type": "Currency",
"change": -0.0057,
"lastAt": "2026-08-14T20:58:54.000Z",
"pairId": 7,
"symbol": "USD/CAD",
"volume": 0,
"dayRange": "1.3864 - 1.3937",
"exchange": "Real-time Currencies",
"avgVolume": 0,
"week52Low": 1.3481,
"week52High": 1.425,
"week52Range": "1.3481 - 1.425",
"changePercent": -0.41,
"lastTimestamp": 1786741134,
"previousClose": 1.3931,
"exchangeIsOpen": false,
"turnoverVolume": 0,
"technicalSummary": "Strong Sell"
}
],
"table": "forex",
"provider": "investing",
"namedCount": 27
}
```
---
### Earnings Calendar
Every company reporting on a given day, with EPS actual, forecast and previous, revenue and market cap.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:investing/earnings-calendar`
- **Cache TTL:** 900s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `range` | enum(yesterday|today|tomorrow) | query | no | Which reporting day to list. The upstream publishes exactly these three days and no others. Default today |
| `importance` | enum(all|high|medium|low) | query | no | Filter by the upstream's own importance rating: low = 1, medium = 2, high = 3. Default all |
| `symbol` | string | query | no | Keep only rows whose ticker or company name contains this text |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:investing/earnings-calendar?range=today&importance=all&symbol=AAPL" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:investing/earnings-calendar?range=today&importance=all&symbol=AAPL", {
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:investing/earnings-calendar?range=today&importance=all&symbol=AAPL",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"date": "2026-08-17",
"count": 197,
"items": [
{
"date": "2026-08-17",
"pairId": 23647,
"symbol": "BHP",
"company": "BHP Group Ltd ADR",
"country": "United States",
"countryId": 5,
"marketCap": "220.87B",
"shortName": "BHP Group Ltd ADR",
"timestamp": 1786924800,
"importance": 1,
"epsForecast": 2.91,
"marketPhase": "during-market",
"parentPairId": 23647,
"reportPeriod": "06/2026",
"relatedPairId": 23647,
"marketCapValue": 220870000000
},
{
"eps": 0.24,
"date": "2026-08-17",
"pairId": 1220872,
"symbol": "GMBXF",
"company": "Grupo Mexico, S.A.B. De C.V.",
"country": "United States",
"revenue": "5.72B",
"countryId": 5,
"marketCap": "99.6B",
"shortName": "Grupo Mexico",
"timestamp": 1786924800,
"importance": 1,
"epsForecast": 0.2149,
"epsPrevious": 0.21,
"parentPairId": 27109,
"reportPeriod": "06/2026",
"relatedPairId": 1220872,
"marketCapValue": 99600000000,
"revenueForecast": "5.63B"
},
{
"date": "2026-08-17",
"pairId": 942065,
"symbol": "NABZY",
"company": "National Australia Bank Ltd ADR",
"country": "United States",
"countryId": 5,
"marketCap": "90.42B",
"shortName": "National Australia Bank ADR",
"timestamp": 1786924800,
"importance": 1,
"parentPairId": 942065,
"reportPeriod": "06/2026",
"relatedPairId": 942065,
"marketCapValue": 90420000000
},
{
"date": "2026-08-17",
"pairId": 942253,
"symbol": "TYIDY",
"company": "Toyota Industries Corporation",
"country": "United States",
"countryId": 5,
"marketCap": "38.46B",
"shortName": "Toyota Industries Corporation",
"timestamp": 1786924800,
"importance": 1,
"epsForecast": 2.18,
"epsPrevious": 0.7667,
"parentPairId": 942253,
"reportPeriod": "06/2026",
"relatedPairId": 942253,
"marketCapValue": 38460000000,
"revenueForecast": "6.52B"
},
{
"date": "2026-08-17",
"pairId": 21187,
"symbol": "AVVIY",
"company": "Aviva PLC ADR",
"country": "United States",
"countryId": 5,
"marketCap": "29.41B",
"shortName": "Aviva ADR",
"timestamp": 1786924800,
"importance": 1,
"parentPairId": 21187,
"reportPeriod": "06/2026",
"relatedPairId": 21187,
"marketCapValue": 29410000000
},
{
"date": "2026-08-17",
"pairId": 942119,
"symbol": "PPERY",
"company": "Bank Mandiri Persero Tbk PT ADR",
"country": "United States",
"countryId": 5,
"marketCap": "21.83B",
"shortName": "Bank Mandiri Persero ADR",
"timestamp": 1786924800,
"importance": 1,
"epsForecast": 0.3435,
"epsPrevious": 0.3682,
"parentPairId": 942119,
"reportPeriod": "06/2026",
"relatedPairId": 942119,
"marketCapValue": 21830000000,
"revenueForecast": "2.2B"
}
],
"range": "tomorrow",
"total": 197,
"provider": "investing",
"importance": "all"
}
```
---
### Economic Calendar
Scheduled macro releases with actual, forecast and previous values, plus the revision history.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:investing/economic-calendar`
- **Cache TTL:** 900s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `range` | enum(yesterday|today|tomorrow|week) | query | no | Which window to list. The upstream publishes exactly these four and ignores any explicit date. week is the current Sunday-to-Saturday week. Default today |
| `country` | string | query | no | Keep only events for this country. Accepts US, EU, GB, JP, CN, DE, FR, CA, AU, CH, IT, ES, ID, IN, BR, RU, KR, HK, SG, NZ, MX, ZA, TR, SA. Omit for every country |
| `importance` | enum(all|high|medium|low) | query | no | Expected volatility of the release. Default all |
| `names` | enum(true|false) | query | no | Resolve event names, countries and currencies from the web calendar. Costs one extra request per 200 events. Set false for ids and values only. Default true |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:investing/economic-calendar?range=today&country=US&importance=high&names=true" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:investing/economic-calendar?range=today&country=US&importance=high&names=true", {
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:investing/economic-calendar?range=today&country=US&importance=high&names=true",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 9,
"items": [
{
"url": "https://www.investing.com/economic-calendar/gdp-119",
"date": "2026-08-16",
"time": "23:50",
"event": "GDP (QoQ) (Q2)",
"rowId": 554256,
"period": "q2",
"country": "Japan",
"currency": "JPY",
"datetime": "2026-08-16T23:50:00.000Z",
"forecast": "0.5%",
"previous": "0.5%",
"countryId": 35,
"direction": "neutral",
"timestamp": 1786924200,
"updatedAt": "2026-08-15T19:09:25Z",
"importance": 3,
"volatility": "High Volatility Expected",
"eventAttrId": 119,
"preliminary": true,
"relatedArticleId": 0
},
{
"url": "https://www.investing.com/economic-calendar/cpi-67",
"date": "2026-08-19",
"time": "06:00",
"event": "CPI (YoY) (Jul)",
"rowId": 554444,
"period": "jul",
"country": "United Kingdom",
"currency": "GBP",
"datetime": "2026-08-19T06:00:00.000Z",
"forecast": "2.5%",
"previous": "2.6%",
"countryId": 4,
"direction": "neutral",
"timestamp": 1787119200,
"updatedAt": "2026-08-15T19:09:24Z",
"importance": 3,
"volatility": "High Volatility Expected",
"eventAttrId": 67,
"relatedArticleId": 0
},
{
"url": "https://www.investing.com/economic-calendar/cpi-68",
"date": "2026-08-19",
"time": "09:00",
"event": "CPI (YoY) (Jul)",
"rowId": 554470,
"period": "jul",
"country": "Euro Zone",
"currency": "EUR",
"datetime": "2026-08-19T09:00:00.000Z",
"forecast": "2.9%",
"previous": "2.9%",
"countryId": 72,
"direction": "neutral",
"timestamp": 1787130000,
"updatedAt": "2026-08-14T18:20:25Z",
"importance": 3,
"volatility": "High Volatility Expected",
"eventAttrId": 68,
"relatedArticleId": 0
},
{
"url": "https://www.investing.com/economic-calendar/eia-crude-oil-inventories-75",
"date": "2026-08-19",
"time": "14:30",
"event": "Crude Oil Inventories",
"rowId": 555433,
"country": "United States",
"currency": "USD",
"datetime": "2026-08-19T14:30:00.000Z",
"previous": "17.423M",
"countryId": 5,
"direction": "neutral",
"timestamp": 1787149800,
"updatedAt": "2026-08-15T19:09:27Z",
"importance": 3,
"volatility": "High Volatility Expected",
"eventAttrId": 75,
"relatedArticleId": 0
},
{
"url": "https://www.investing.com/economic-calendar/fomc-meeting-minutes-108",
"date": "2026-08-19",
"time": "18:00",
"event": "FOMC Meeting Minutes",
"rowId": 555236,
"country": "United States",
"currency": "USD",
"datetime": "2026-08-19T18:00:00.000Z",
"countryId": 5,
"direction": "neutral",
"timestamp": 1787162400,
"updatedAt": "2026-08-11T06:33:45Z",
"importance": 3,
"volatility": "High Volatility Expected",
"eventAttrId": 108,
"relatedArticleId": 0
},
{
"url": "https://www.investing.com/economic-calendar/philadelphia-fed-manufacturing-index-236",
"date": "2026-08-20",
"time": "12:30",
"event": "Philadelphia Fed Manufacturing Index (Aug)",
"rowId": 554545,
"period": "aug",
"country": "United States",
"currency": "USD",
"datetime": "2026-08-20T12:30:00.000Z",
"forecast": "24.3",
"previous": "41.4",
"countryId": 5,
"direction": "neutral",
"timestamp": 1787229000,
"updatedAt": "2026-08-15T19:09:27Z",
"importance": 3,
"volatility": "High Volatility Expected",
"eventAttrId": 236,
"relatedArticleId": 0
}
],
"range": "week",
"total": 252,
"dateTo": "2026-08-21",
"dateFrom": "2026-08-16",
"provider": "investing",
"importance": "high",
"namedCount": 9
}
```
---
### Market Holidays
Which exchanges are shut on a given range, and which close early.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:investing/market-holidays`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `range` | enum(yesterday|today|tomorrow|week) | query | no | Which window to list. The upstream publishes exactly these four and ignores any explicit date. week is the current Sunday-to-Saturday week. Default week |
| `country` | string | query | no | Keep only holidays for this country. Accepts the three-letter code the upstream uses (JPN, USA, GBR, DEU, ZAF, ...) or the country name |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:investing/market-holidays?range=week&country=JPN" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:investing/market-holidays?range=week&country=JPN", {
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:investing/market-holidays?range=week&country=JPN",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 0,
"items": [],
"range": "week",
"total": 2,
"country": "JPN",
"provider": "investing"
}
```
---
### Indicator History
The full published history of one macro indicator, back to its first print.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:investing/indicator-history`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `eventAttrId` | number | query | yes | The indicator's stable id, as returned in `eventAttrId` by the economic-calendar endpoint |
| `country` | string | query | no | Two-letter code of the country that publishes the indicator, as used in its own chart path. It must match the event's country — the same id under another country is a 404. Default us |
| `count` | number | query | no | Keep only the most recent N prints. Omit for the whole series |
| `order` | enum(asc|desc) | query | no | asc = oldest print first, desc = newest first. Default asc |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:investing/indicator-history?eventAttrId=56&country=us&count=120&order=asc" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:investing/indicator-history?eventAttrId=56&country=us&count=120&order=asc", {
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:investing/indicator-history?eventAttrId=56&country=us&count=120&order=asc",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 120,
"items": [
{
"date": "2016-07-15T12:30:00.000Z",
"actual": 0.2,
"forecast": 0.2,
"timestamp": 1468585800000,
"actualState": "neutral",
"actualFormatted": "0.2%",
"forecastFormatted": "0.2%"
},
{
"date": "2016-08-16T12:30:00.000Z",
"actual": 0.1,
"forecast": 0.2,
"timestamp": 1471350600000,
"actualState": "down",
"actualFormatted": "0.1%",
"forecastFormatted": "0.2%"
},
{
"date": "2016-09-16T12:30:00.000Z",
"actual": 0.3,
"forecast": 0.2,
"timestamp": 1474029000000,
"actualState": "up",
"actualFormatted": "0.3%",
"forecastFormatted": "0.2%"
},
{
"date": "2016-10-18T12:30:00.000Z",
"actual": 0.1,
"forecast": 0.2,
"timestamp": 1476793800000,
"actualState": "down",
"actualFormatted": "0.1%",
"forecastFormatted": "0.2%"
},
{
"date": "2016-11-17T13:30:00.000Z",
"actual": 0.1,
"forecast": 0.2,
"timestamp": 1479389400000,
"actualState": "down",
"actualFormatted": "0.1%",
"forecastFormatted": "0.2%"
},
{
"date": "2016-12-15T13:30:00.000Z",
"actual": 0.2,
"forecast": 0.2,
"timestamp": 1481808600000,
"actualState": "neutral",
"actualFormatted": "0.2%",
"forecastFormatted": "0.2%"
}
],
"total": 678,
"country": "us",
"provider": "investing",
"lastPrint": "2026-08-12T12:30:00.000Z",
"firstPrint": "1970-01-01T09:00:00.000Z",
"eventAttrId": 56
}
```
---
### Financials
Income statement, balance sheet and cash flow for a listed company — quarterly and annual.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:investing/financials`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `query` | string | query | no | Ticker or company name to resolve. Ignored when pairId is given |
| `pairId` | number | query | no | Internal instrument id, which skips symbol resolution |
| `period` | enum(quarterly|annual|both) | query | no | Which period length to return. Default both |
| `statement` | enum(all|income|balance|cashflow) | query | no | Which statement to return: income statement, balance sheet, cash flow, or all three. Default all |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:investing/financials?query=AAPL&pairId=6408&period=both&statement=all" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:investing/financials?query=AAPL&pairId=6408&period=both&statement=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:investing/financials?query=AAPL&pairId=6408&period=both&statement=all",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 24,
"pairId": 6408,
"period": "both",
"symbol": "AAPL",
"summary": "Apple Inc. reported earnings results for the third quarter and nine months ended June 27, 2026. For the third quarter, the company reported revenue was USD 109,417 million compared to USD 94,036 million a year ago. Net income was USD 29,789 million compared to USD 23,434 million a year ago. Basic earnings per share from continuing operations was USD 2.03 compared to USD 1.57 a year ago. Diluted earnings per share from continuing operations was USD 2.02 compared to USD 1.57 a year ago.\rFor the nine months, revenue was USD 364,357 million compared to USD 313,695 million a year ago. Net income was USD 101,464 million compared to USD 84,544 million a year ago. Basic earnings per share from continuing operations was USD 6.91 compared to USD 5.64 a year ago. Diluted earnings per share from continuing operations was USD 6.88 compared to USD 5.62 a year ago.",
"provider": "investing",
"statement": "all",
"statements": {
"annual": {
"income": [
{
"date": "Sep 27, 2025",
"netIncome": 112010,
"periodEnd": "2025-09-27",
"timestamp": 1758931200,
"grossProfit": 195201,
"totalRevenue": 416161,
"operationIncome": 133050
},
{
"date": "Sep 28, 2024",
"netIncome": 93736,
"periodEnd": "2024-09-28",
"timestamp": 1727481600,
"grossProfit": 180683,
"totalRevenue": 391035,
"operationIncome": 123216
},
{
"date": "Sep 30, 2023",
"netIncome": 96995,
"periodEnd": "2023-09-30",
"timestamp": 1696032000,
"grossProfit": 169148,
"totalRevenue": 383285,
"operationIncome": 114301
},
{
"date": "Sep 24, 2022",
"netIncome": 99803,
"periodEnd": "2022-09-24",
"timestamp": 1663977600,
"grossProfit": 170782,
"totalRevenue": 394328,
"operationIncome": 119437
}
],
"balance": [
{
"date": "Sep 27, 2025",
"periodEnd": "2025-09-27",
"timestamp": 1758931200,
"totalAssets": 359241,
"totalEquity": 73733,
"totalLiabilities": 285508
},
{
"date": "Sep 28, 2024",
"periodEnd": "2024-09-28",
"timestamp": 1727481600,
"totalAssets": 364980,
"totalEquity": 56950,
"totalLiabilities": 308030
},
{
"date": "Sep 30, 2023",
"periodEnd": "2023-09-30",
"timestamp": 1696032000,
"totalAssets": 352583,
"totalEquity": 62146,
"totalLiabilities": 290437
},
{
"date": "Sep 24, 2022",
"periodEnd": "2022-09-24",
"timestamp": 1663977600,
"totalAssets": 352755,
"totalEquity": 50672,
"totalLiabilities": 302083
}
],
"cashflow": [
{
"date": "Sep 27, 2025",
"financing": -120686,
"investing": 15195,
"netChange": 5991,
"operating": 111482,
"periodEnd": "2025-09-27",
"timestamp": 1758931200
},
{
"date": "Sep 28, 2024",
"financing": -121983,
"investing": 2935,
"netChange": -794,
"operating": 118254,
"periodEnd": "2024-09-28",
"timestamp": 1727481600
},
{
"date": "Sep 30, 2023",
"financing": -108488,
"investing": 3705,
"netChange": 5760,
"operating": 110543,
"periodEnd": "2023-09-30",
"timestamp": 1696032000
},
{
"date": "Sep 24, 2022",
"financing": -110749,
"investing": -22354,
"netChange": -10952,
"operating": 122151,
"periodEnd": "2022-09-24",
"timestamp": 1663977600
}
]
},
"quarterly": {
"income": [
{
"date": "Jun 27, 2026",
"netIncome": 29789,
"periodEnd": "2026-06-27",
"timestamp": 1782518400,
"grossProfit": 54770,
"totalRevenue": 109417,
"operationIncome": 35695
},
{
"date": "Mar 28, 2026",
"netIncome": 29578,
"periodEnd": "2026-03-28",
"timestamp": 1774656000,
"grossProfit": 54781,
"totalRevenue": 111184,
"operationIncome": 35885
},
{
"date": "Dec 27, 2025",
"netIncome": 42097,
"periodEnd": "2025-12-27",
"timestamp": 1766793600,
"grossProfit": 69231,
"totalRevenue": 143756,
"operationIncome": 50852
},
{
"date": "Sep 27, 2025",
"netIncome": 27466,
"periodEnd": "2025-09-27",
"timestamp": 1758931200,
"grossProfit": 48341,
"totalRevenue": 102466,
"operationIncome": 32427
}
],
"balance": [
{
"date": "Jun 27, 2026",
"periodEnd": "2026-06-27",
"timestamp": 1782518400,
"totalAssets": 383266,
"totalEquity": 107520,
"totalLiabilities": 275746
},
{
"date": "Mar 28, 2026",
"periodEnd": "2026-03-28",
"timestamp": 1774656000,
"totalAssets": 371082,
"totalEquity": 106491,
"totalLiabilities": 264591
},
{
"date": "Dec 27, 2025",
"periodEnd": "2025-12-27",
"timestamp": 1766793600,
"totalAssets": 379297,
"totalEquity": 88190,
"totalLiabilities": 291107
},
{
"date": "Sep 27, 2025",
"periodEnd": "2025-09-27",
"timestamp": 1758931200,
"totalAssets": 359241,
"totalEquity": 73733,
"totalLiabilities": 285508
}
],
"cashflow": [
{
"date": "Jun 27, 2026",
"financing": -32640,
"investing": -7757,
"netChange": -6028,
"operating": 34369,
"periodEnd": "2026-06-27",
"timestamp": 1782518400
},
{
"date": "Mar 28, 2026",
"financing": -22279,
"investing": -6168,
"netChange": 255,
"operating": 28702,
"periodEnd": "2026-03-28",
"timestamp": 1774656000
},
{
"date": "Dec 27, 2025",
"financing": -39656,
"investing": -4886,
"netChange": 9383,
"operating": 53925,
"periodEnd": "2025-12-27",
"timestamp": 1766793600
},
{
"date": "Sep 27, 2025",
"financing": -27476,
"investing": -2587,
"netChange": -335,
"operating": 29728,
"periodEnd": "2025-09-27",
"timestamp": 1758931200
}
]
}
}
}
```
---
### Dividends Calendar
Who goes ex-dividend on which day, how much, and when it pays.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:investing/dividends-calendar`
- **Cache TTL:** 900s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `country` | string | query | no | Listing country. Accepts US, EU, GB, JP, CN, DE, FR, CA, AU, CH, IT, ES, ID, IN, BR, RU, KR, HK, SG, NZ, MX, ZA, TR, SA. Default US |
| `dateFrom` | string | query | no | First ex-dividend date to include, YYYY-MM-DD. Defaults to today |
| `dateTo` | string | query | no | Last ex-dividend date to include, YYYY-MM-DD. Defaults to seven days after dateFrom. At most 31 days apart |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:investing/dividends-calendar?country=US&dateFrom=2026-08-12&dateTo=2026-08-19" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:investing/dividends-calendar?country=US&dateFrom=2026-08-12&dateTo=2026-08-19", {
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:investing/dividends-calendar?country=US&dateFrom=2026-08-12&dateTo=2026-08-19",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 381,
"items": [
{
"url": "https://www.investing.com/equities/target-dividends",
"exDate": "2026-08-12",
"symbol": "TGT",
"company": "Target Corporation",
"country": "United States",
"payDate": "2026-09-01",
"dividend": 1.16,
"frequency": "Quarterly",
"shortName": "Target",
"payTimestamp": 1788220800,
"yieldPercent": 3.05
},
{
"url": "https://www.investing.com/equities/singapore-airlines-ltd-dividends",
"exDate": "2026-08-12",
"symbol": "SINGY",
"company": "Singapore Airlines Ltd",
"country": "United States",
"payDate": "2026-09-17",
"dividend": 0.276621,
"frequency": "Semi-Annual",
"shortName": "Singapore Airlines",
"payTimestamp": 1789603200,
"yieldPercent": 4.02
},
{
"url": "https://www.investing.com/equities/singapore-airlines-ltd-dividends",
"exDate": "2026-08-12",
"symbol": "SINGY",
"company": "Singapore Airlines Ltd",
"country": "United States",
"payDate": "2026-09-17",
"dividend": 0.086613,
"frequency": "Semi-Annual",
"shortName": "Singapore Airlines",
"payTimestamp": 1789603200,
"yieldPercent": 4.02
},
{
"url": "https://www.investing.com/equities/paccar-inc-dividends",
"exDate": "2026-08-12",
"symbol": "PCAR",
"company": "PACCAR Inc",
"country": "United States",
"payDate": "2026-09-02",
"dividend": 0.35,
"frequency": "Quarterly",
"shortName": "PACCAR",
"payTimestamp": 1788307200,
"yieldPercent": 1.06
},
{
"url": "https://www.investing.com/equities/winmark-corp-dividends",
"exDate": "2026-08-12",
"symbol": "WINA",
"company": "Winmark Corporation",
"country": "United States",
"payDate": "2026-09-01",
"dividend": 1.02,
"frequency": "Quarterly",
"shortName": "Winmark",
"payTimestamp": 1788220800,
"yieldPercent": 1.1
},
{
"url": "https://www.investing.com/equities/united-rentals-dividends",
"exDate": "2026-08-12",
"symbol": "URI",
"company": "United Rentals Inc",
"country": "United States",
"payDate": "2026-08-26",
"dividend": 1.97,
"frequency": "Quarterly",
"shortName": "United Rentals",
"payTimestamp": 1787702400,
"yieldPercent": 0.69
}
],
"total": 381,
"dateTo": "2026-08-19",
"country": "US",
"dateFrom": "2026-08-12",
"provider": "investing"
}
```
---
### FX Cross Rates
The cross-rate grid, flattened into one row per currency pair.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:investing/fx-cross-rates`
- **Cache TTL:** 60s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `base` | string | query | no | Keep only rows quoting this base currency, as a three-letter code. Omit for the whole grid |
| `quote` | string | query | no | Keep only the counter currency, as a three-letter code. Omit for every counter currency |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:investing/fx-cross-rates?base=USD"e=JPY" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:investing/fx-cross-rates?base=USD"e=JPY", {
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:investing/fx-cross-rates?base=USD"e=JPY",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"base": "USD",
"count": 1,
"items": [
{
"base": "USD",
"rate": 159.32,
"quote": "JPY",
"pairId": 3,
"symbol": "USD/JPY"
}
],
"quote": "JPY",
"total": 42,
"provider": "investing",
"currencies": [
"AUD",
"CAD",
"CHF",
"EUR",
"GBP",
"JPY"
]
}
```
---
## Ipotnews
**Category:** finance · **Slug:** `ipotnews`
**Detail page:** https://zapi.ink/api/finance/ipotnews
IPOT News headline timeline — minute-resolution WIB timestamps across a
**Tags:** finance, ipotnews
### News
IPOT News headline timeline — minute-resolution WIB timestamps across a
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:ipotnews/news`
- **Cache TTL:** 120s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `category` | enum(terbaru|topnews|international|economy|industries|ipsnews|komoditi|capitalmarketregulations|law|politics|bonds|funds|stocks|developed|emerging|jci) | query | no | Section: terbaru topnews international economy industries ipsnews komoditi capitalmarketregulations law politics bonds funds stocks developed emerging jci. Default terbaru |
| `query` | string | query | no | Filter headlines by substring |
| `page` | number | query | no | Page number. Default 1 |
| `count` | number | query | no | Items per page. Default 25, max 100 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:ipotnews/news?category=terbaru&query=dividen&page=1&count=25" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:ipotnews/news?category=terbaru&query=dividen&page=1&count=25", {
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:ipotnews/news?category=terbaru&query=dividen&page=1&count=25",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"page": 1,
"count": 25,
"items": [
{
"url": "https://www.ipotnews.com/ipotnews/newsDetail.php?jdl=Deretan_Sentimen_Ini_Diprediksi_Kurangi_Tekanan_pada_Nilai_Tukar_Rupiah_di_Akhir_2026&news_id=234780&group_news=IPOTNEWS&news_date=2026-08-21&taging_subtype=BERITABARU&name=&search=y_general&q=berita%2C+berita+terbaru%2C+informasi+baru%2C+AI%2C+AI+News&halaman=1",
"date": "2026-08-21",
"group": "IPOTNEWS",
"title": "Deretan Sentimen Ini Diprediksi Kurangi Tekanan pada Nilai Tukar Rupiah di Akhir 2026",
"newsId": "234780",
"subtype": "BERITABARU",
"publishedAt": "2026-08-21T02:24:00.000Z"
},
{
"url": "https://www.ipotnews.com/ipotnews/newsDetail.php?jdl=IHSG_Diprediksi_Semringah_Sambut_Akhir_Pekan__Cek_Analisa_Saham_ARCI_RMKE&news_id=234778&group_news=IPOTNEWS&news_date=2026-08-21&taging_subtype=ARCI&name=&search=y_general&q=ARCI%2C+AI%2C+AI+News&halaman=1",
"date": "2026-08-21",
"group": "IPOTNEWS",
"title": "IHSG Diprediksi Semringah Sambut Akhir Pekan, Cek Analisa Saham ARCI-RMKE",
"newsId": "234778",
"subtype": "ARCI",
"publishedAt": "2026-08-21T02:24:00.000Z"
},
{
"url": "https://www.ipotnews.com/ipotnews/newsDetail.php?jdl=Pemerintah_dan_DPR_Sepakati_RUU_P2_APBN_2025_Lanjut_ke_Tingkat_Selanjutnya&news_id=234772&group_news=IPOTNEWS&news_date=2026-08-21&taging_subtype=BERITABARU&name=&search=y_general&q=berita%2C+berita+terbaru%2C+informasi+baru%2C+AI%2C+AI+News&halaman=1",
"date": "2026-08-21",
"group": "IPOTNEWS",
"title": "Pemerintah dan DPR Sepakati RUU P2 APBN 2025 Lanjut ke Tingkat Selanjutnya",
"newsId": "234772",
"subtype": "BERITABARU",
"publishedAt": "2026-08-21T02:24:00.000Z"
},
{
"url": "https://www.ipotnews.com/ipotnews/newsDetail.php?jdl=Harga_Emas_Antam_Hari_Ini_Stagnan_di_Level_Rp2_725_000_per_Gram&news_id=234770&group_news=IPOTNEWS&news_date=2026-08-21&taging_subtype=STOCK&name=&search=y_general&q=ANTM%2C+ANTAM+%28Persero%29+Tbk.%2C+AI%2C+AI+News&halaman=1",
"date": "2026-08-21",
"group": "IPOTNEWS",
"title": "Harga Emas Antam Hari Ini Stagnan di Level Rp2.725.000 per Gram",
"newsId": "234770",
"subtype": "STOCK",
"publishedAt": "2026-08-21T02:24:00.000Z"
},
{
"url": "https://www.ipotnews.com/ipotnews/newsDetail.php?jdl=Coal___Thermal_coal__supply_side_constraints_set_to_keep_prices_elevated&news_id=234768&group_news=IPOTNEWS&news_date=2026-08-21&taging_subtype=BATUBARA&name=&search=y_general&q=Sector+Update%2C+Coal%2C+HRUM%2C+AADI%2C+PTBA%2C+ITMG%2C+UNTR%2C&halaman=1",
"date": "2026-08-21",
"group": "IPOTNEWS",
"title": "Coal - Thermal coal: supply-side constraints set to keep prices elevated",
"newsId": "234768",
"subtype": "BATUBARA",
"publishedAt": "2026-08-21T02:22:00.000Z"
},
{
"url": "https://www.ipotnews.com/ipotnews/newsDetail.php?jdl=JPFA___Soft_2Q26_profit_was_dragged_down_by_weak_DOC_broiler_prices&news_id=234767&group_news=IPOTNEWS&news_date=2026-08-21&taging_subtype=INSTIRESEARCH&name=&search=y_general&q=Company+Update%2C+Poultry%2C+JPFA%2C&halaman=1",
"date": "2026-08-21",
"group": "IPOTNEWS",
"title": "JPFA - Soft 2Q26 profit was dragged down by weak DOC/broiler prices",
"newsId": "234767",
"subtype": "INSTIRESEARCH",
"publishedAt": "2026-08-21T02:13:00.000Z"
},
{
"url": "https://www.ipotnews.com/ipotnews/newsDetail.php?jdl=Hang_Seng_Index_rises_for_fifth_consecutive_day_as_financial_stocks_support_market&news_id=234766&group_news=IPOTNEWS&news_date=2026-08-21&taging_subtype=MARKETOVERVIEW&name=&search=y_general&q=HSI+Hong+Kong&halaman=1",
"date": "2026-08-21",
"group": "IPOTNEWS",
"title": "Hang Seng Index rises for fifth consecutive day as financial stocks support market",
"newsId": "234766",
"subtype": "MARKETOVERVIEW",
"publishedAt": "2026-08-21T01:56:00.000Z"
},
{
"url": "https://www.ipotnews.com/ipotnews/newsDetail.php?jdl=Jardine_C_C_Jual_Dealer_Otomotif_di_Singapura_dan_Malaysia_ke_Chandra_Asri_(TPIA)_Senilai_S$265_Juta&news_id=234763&group_news=IPOTNEWS&news_date=2026-08-21&taging_subtype=MARKETOVERVIEW&name=&search=y_general&q=TPIA&halaman=1",
"date": "2026-08-21",
"group": "IPOTNEWS",
"title": "Jardine C&C Jual Dealer Otomotif di Singapura dan Malaysia ke Chandra Asri (TPIA) Senilai S$265 Juta",
"newsId": "234763",
"subtype": "MARKETOVERVIEW",
"publishedAt": "2026-08-21T01:29:00.000Z"
}
],
"query": null,
"total": 169,
"dataset": "news",
"hasMore": true,
"category": "terbaru",
"nextPage": 2,
"provider": "ipotnews"
}
```
---
## Ishares Metals
**Category:** finance · **Slug:** `ishares-metals`
**Detail page:** https://zapi.ink/api/finance/ishares-metals
The US iShares product screener — 524 funds with NAV, fees, identifiers and
**Tags:** finance, ishares-metals
### Screener
The US iShares product screener — 524 funds with NAV, fees, identifiers and
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:ishares-metals/screener`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `query` | string | query | no | Filter by fund name, ticker, ISIN or CUSIP, case-insensitive. |
| `assetClass` | enum(Equity|Fixed Income|Real Estate|Commodity|Multi Asset|Digital Assets|Cash) | query | no | Restrict to one asset class. |
| `page` | number | query | no | Page of funds. Default 1. |
| `limit` | number | query | no | Funds per page. Default 25, max 100. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:ishares-metals/screener?query=gold&assetClass=Commodity&page=1&limit=25" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:ishares-metals/screener?query=gold&assetClass=Commodity&page=1&limit=25", {
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:ishares-metals/screener?query=gold&assetClass=Commodity&page=1&limit=25",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"page": 1,
"count": 3,
"items": [
{
"url": "https://www.ishares.com/us/products/239561/ishares-gold-trust-fund",
"isin": "US4642852044",
"name": "iShares Gold Trust",
"cusip": "464285204",
"sedol": "BMDB791",
"region": "Global",
"ticker": "IAU",
"navAsOf": "2026-08-20",
"netAssets": 65975016307.58,
"assetClass": "Commodity",
"navPerShare": 84.286191,
"portfolioId": 239561,
"returnsAsOf": "2026-07-31",
"inceptionDate": "2005-01-21",
"netAssetsAsOf": "2026-08-20",
"subAssetClass": "Precious Metals",
"investmentStyle": "Index",
"returnYtdPercent": -6.668,
"expenseRatioPercent": 0.25,
"returnOneYearPercent": 21.758,
"returnTenYearPercent": 11.3326,
"returnFiveYearPercent": 16.8481,
"netExpenseRatioPercent": 0.25,
"returnThreeYearPercent": 26.5811,
"returnSinceInceptionPercent": 10.6743
},
{
"url": "https://www.ishares.com/us/products/306979/ishares-gold-trust-micro",
"isin": "US46436F1030",
"name": "iShares Gold Trust Micro",
"cusip": "46436F103",
"sedol": "-",
"region": "Global",
"ticker": "IAUM",
"navAsOf": "2026-08-20",
"netAssets": 7776582936.16,
"assetClass": "Commodity",
"navPerShare": 44.667335,
"portfolioId": 306979,
"returnsAsOf": "2026-07-31",
"inceptionDate": "2021-06-15",
"netAssetsAsOf": "2026-08-20",
"subAssetClass": "Precious Metals",
"investmentStyle": "Index",
"returnYtdPercent": -6.569,
"expenseRatioPercent": 0.09,
"returnOneYearPercent": 21.976,
"returnTenYearPercent": null,
"returnFiveYearPercent": 17.0512,
"netExpenseRatioPercent": 0.09,
"returnThreeYearPercent": 26.8068,
"returnSinceInceptionPercent": 16.1193
},
{
"url": "https://www.ishares.com/us/products/239654/ishares-msci-global-gold-miners-etf",
"isin": "US46434G8556",
"name": "iShares MSCI Global Gold Miners ETF",
"cusip": "46434G855",
"sedol": "-",
"region": "Global",
"ticker": "RING",
"navAsOf": "2026-08-20",
"netAssets": 2490576809.96,
"assetClass": "Equity",
"navPerShare": 87.38866,
"portfolioId": 239654,
"returnsAsOf": "2026-07-31",
"inceptionDate": "2012-01-31",
"netAssetsAsOf": "2026-08-20",
"subAssetClass": "All Cap",
"investmentStyle": "Index",
"returnYtdPercent": -12.936497,
"expenseRatioPercent": 0.39,
"returnOneYearPercent": 48.030674,
"returnTenYearPercent": 11.069236,
"returnFiveYearPercent": 19.350937,
"netExpenseRatioPercent": 0.39,
"returnThreeYearPercent": 40.070807,
"returnSinceInceptionPercent": 2.97921
}
],
"query": "gold",
"total": 3,
"dataset": "screener",
"hasMore": false,
"nextPage": null,
"provider": "ishares-metals",
"assetClass": null,
"assetClasses": [
"Equity",
"Fixed Income",
"Real Estate",
"Commodity",
"Multi Asset",
"Digital Assets",
"Cash"
]
}
```
---
### Quote
One iShares metal fund at a glance — NAV, market price, premium/discount, net
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:ishares-metals/quote`
- **Cache TTL:** 900s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `ticker` | enum(IAU|SLV|IAUM|GSG|COMT|CMDY|ISTM) | query | no | Fund ticker. IAU/IAUM hold gold, SLV holds silver. Default IAU. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:ishares-metals/quote?ticker=IAU" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:ishares-metals/quote?ticker=IAU", {
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:ishares-metals/quote?ticker=IAU",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"url": "https://www.ishares.com/us/products/239561/ishares-gold-trust-fund",
"asOf": "Aug 20, 2026",
"name": "iShares Gold Trust",
"cusip": "464285204",
"metal": "gold",
"ticker": "IAU",
"dataset": "quote",
"currency": "USD",
"exchange": "NYSE Arca",
"provider": "ishares-metals",
"benchmark": "LBMA Gold Price",
"netAssets": 65975016308,
"dailyVolume": 10875357,
"portfolioId": 239561,
"closingPrice": 84.84,
"inceptionDate": "Jan 21, 2005",
"midPointPrice": 84.83,
"ouncesInTrust": 14718802,
"tonnesInTrust": 457.81,
"benchmarkTicker": "GOLDLNPM",
"historyAvailable": false,
"sharesOutstanding": 782750000,
"premiumDiscountPercent": 1.15,
"thirtyDayAverageVolume": 5314173,
"premiumDiscountClosePercent": 1.16,
"thirtyDayMedianBidAskSpreadPercent": 0.01
}
```
---
### Fund Facts
iShares physical-metal trusts — the fact table on the fund page, including
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:ishares-metals/fund-facts`
- **Cache TTL:** 900s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `ticker` | enum(IAU|SLV|IAUM|GSG|COMT|CMDY|ISTM) | query | no | Fund ticker. IAU/IAUM hold gold, SLV holds silver. Default IAU. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:ishares-metals/fund-facts?ticker=IAU" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:ishares-metals/fund-facts?ticker=IAU", {
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:ishares-metals/fund-facts?ticker=IAU",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"url": "https://www.ishares.com/us/products/239561/ishares-gold-trust-fund",
"asOf": "Aug 20, 2026",
"name": "iShares Gold Trust",
"count": 21,
"items": [
{
"key": "assetClass",
"unit": null,
"label": "Asset Class",
"value": "Commodity",
"numeric": null,
"upstreamKey": "assetClass"
},
{
"key": "basketAmt",
"unit": null,
"label": "Basket Amount",
"value": "940.08",
"numeric": 940.08,
"upstreamKey": "basketAmt"
},
{
"key": "bidAskMidpointPrice",
"unit": null,
"label": "Mid-Point Price",
"value": "84.83",
"numeric": 84.83,
"upstreamKey": "bidAskMidpointPrice"
},
{
"key": "closingPrice",
"unit": null,
"label": "Closing Price",
"value": "84.84",
"numeric": 84.84,
"upstreamKey": "closingPrice"
},
{
"key": "dailyVolume",
"unit": null,
"label": "Daily Volume",
"value": "10,875,357.00",
"numeric": 10875357,
"upstreamKey": "consolidatedVolume"
},
{
"key": "cusip",
"unit": null,
"label": "CUSIP",
"value": "464285204",
"numeric": 464285204,
"upstreamKey": "cusip"
},
{
"key": "exchange",
"unit": null,
"label": "Exchange",
"value": "NYSE Arca",
"numeric": null,
"upstreamKey": "exchange"
},
{
"key": "indexSeriesName",
"unit": null,
"label": "Reference Benchmark",
"value": "LBMA Gold Price",
"numeric": null,
"upstreamKey": "indexSeriesName"
}
],
"metal": "gold",
"ticker": "IAU",
"dataset": "fund-facts",
"provider": "ishares-metals",
"portfolioId": 239561,
"historyAvailable": false
}
```
---
## Kontan
**Category:** finance · **Slug:** `kontan`
**Detail page:** https://zapi.ink/api/finance/kontan
Indonesian business daily plus its data centre — news search and archive back to 2008, and 21 economic datasets covering markets, macro, commodities and industry.
**Tags:** kontan, saham, indonesia, ekonomi, market, news, finance
### Channel Feed
RSS items from one Kontan channel.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:kontan/feed`
- **Cache TTL:** 120s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `channel` | enum(investasi|keuangan|industri|nasional|internasional|insight|kolom|lifestyle|personalfinance|regional|english) | query | no | Kontan channel. Default investasi |
| `limit` | number | query | no | Maximum items to return. Default 20, max 300 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:kontan/feed?channel=investasi&limit=20" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:kontan/feed?channel=investasi&limit=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:kontan/feed?channel=investasi&limit=20",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 5,
"items": [
{
"url": "https://keuangan.kontan.co.id/news/kebutuhan-bisnis-nasabah-kian-berkembang-qlola-by-bri-hadirkan-new-experience",
"title": "Kebutuhan Bisnis Nasabah Kian Berkembang, QLola by BRI Hadirkan New Experience",
"source": "kontan.co.id",
"summary": "Kebutuhan perusahaan dalam mengelola transaksi keuangan terus berkembang seiring dengan semakin luasnya aktivitas bisnis.",
"publishedAt": "2026-08-20T11:18:36.000Z"
},
{
"url": "https://keuangan.kontan.co.id/news/industri-multifinance-jaga-pertumbuhan-laba-hingga-semester-i-2026",
"title": "Industri Multifinance Jaga Pertumbuhan Laba hingga Semester I-2026",
"source": "kontan.co.id",
"summary": "Otoritas Jasa Keuangan (OJK) mencatatkan pertumbuhan laba industri multifinance pada semester I-2026. Ini respon BRI Finance dan MUF.",
"publishedAt": "2026-08-20T11:03:42.000Z"
},
{
"url": "https://keuangan.kontan.co.id/news/cimb-niaga-luncurkan-kki-ritel-bisa-transaksi-qris-pakai-kartu-kredit",
"title": "CIMB Niaga Luncurkan KKI Ritel, Bisa Transaksi QRIS Pakai Kartu Kredit",
"source": "kontan.co.id",
"summary": "CIMB Niaga resmi meluncurkan Kartu Kredit Indonesia (KKI) Ritel untuk memperkuat ekosistem pembayaran domestik dan mendorong transaksi digital",
"publishedAt": "2026-08-20T10:59:16.000Z"
},
{
"url": "https://keuangan.kontan.co.id/news/asuransi-syariah-andalkan-instrumen-pendapatan-tetap-guna-jaga-portofolio-investasi",
"title": "Asuransi Syariah Andalkan Instrumen Pendapatan Tetap Guna Jaga Portofolio Investasi",
"source": "kontan.co.id",
"summary": "Data OJK, Hasil investasi asuransi syariah tercatat sebesar Rp503 miliar pada Juni 2026, turun sekitar 49,7% secara tahunan.",
"publishedAt": "2026-08-20T10:16:39.000Z"
},
{
"url": "https://keuangan.kontan.co.id/news/kredit-citi-indonesia-tumbuh-805-pipeline-semester-ii-capai-rp-5-triliun",
"title": "Kredit Citi Indonesia Tumbuh 8,05%, Pipeline Semester II Capai Rp 5 Triliun",
"source": "kontan.co.id",
"summary": "Kredit Citi Indonesia tumbuh 8,05% menjadi Rp29,9 triliun, didukung pipeline Rp5 triliun, meski laba semester I-2026 turun 25,45%",
"publishedAt": "2026-08-20T10:02:21.000Z"
}
],
"channel": "keuangan",
"dataset": "feed",
"provider": "kontan"
}
```
---
### Article Search
Search Kontan articles by keyword.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:kontan/search`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `q` | string | query | yes | Search keyword |
| `page` | number | query | no | Page number, 20 items per page. Default 1 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:kontan/search?q=saham&page=1" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:kontan/search?q=saham&page=1", {
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:kontan/search?q=saham&page=1",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"page": 1,
"count": 20,
"items": [
{
"url": "https://investasi.kontan.co.id/news/menanti-data-transaksi-berjalan-begini-proyeksi-rupiah-besok-218",
"image": "https://foto.kontan.co.id/MuI3SlN5h0D3Cmd5CNI50jnHbl4=/smart/2026/07/13/1682104807t.jpg",
"title": "Menanti Data Transaksi Berjalan, Begini Proyeksi Rupiah Besok (21/8)",
"source": "kontan.co.id",
"category": "investasi",
"publishedAt": "2026-08-19T17:00:00.000Z"
},
{
"url": "https://pusatdata.kontan.co.id/news/keyakinan-terhadap-dolar-as-susut-kurs-rupiah-menguat-tajam-hari-ini-208",
"image": "https://foto.kontan.co.id/MuI3SlN5h0D3Cmd5CNI50jnHbl4=/smart/2026/07/13/1682104807t.jpg",
"title": "Keyakinan Terhadap Dolar AS Susut, Kurs Rupiah Menguat Tajam Hari Ini (20/8)",
"source": "kontan.co.id",
"category": "pusatdata",
"publishedAt": "2026-08-19T17:00:00.000Z"
},
{
"url": "https://investasi.kontan.co.id/news/as-buyback-obligasi-rupiah-menguat-ke-rp-17748-per-dolar-as",
"image": "https://foto.kontan.co.id/TCiPlY_kmz2RdommtcB14Gar_Ds=/smart/2026/06/02/1463542562t.jpg",
"title": "AS Buyback Obligasi, Rupiah Menguat ke Rp 17.748 per Dolar AS",
"source": "kontan.co.id",
"category": "investasi",
"publishedAt": "2026-08-19T17:00:00.000Z"
},
{
"url": "https://industri.kontan.co.id/news/rupiah-lemas-pelaku-industri-travel-perkuat-efisiensi-dan-arus-kas",
"image": "https://foto.kontan.co.id/pdIEmRtLwtIGkqFGKjJ0Q-E6GaU=/smart/2026/08/20/1097049320t.jpg",
"title": "Rupiah Lemas, Pelaku Industri Travel Perkuat Efisiensi dan Arus Kas",
"source": "kontan.co.id",
"category": "industri",
"publishedAt": "2026-08-19T17:00:00.000Z"
},
{
"url": "https://internasional.kontan.co.id/news/bursa-asia-menguat-rupiah-ikut-perkasa-usai-pemerintah-as-redakan-pasar-obligasi",
"image": "https://foto.kontan.co.id/DJC0P_rCe8fvsJDnW1249jCVmn8=/smart/2026/08/12/2106780513t.jpg",
"title": "Bursa Asia Menguat, Rupiah Ikut Perkasa Usai Pemerintah AS Redakan Pasar Obligasi",
"source": "kontan.co.id",
"category": "internasional",
"publishedAt": "2026-08-19T17:00:00.000Z"
},
{
"url": "https://investasi.kontan.co.id/news/rupiah-ditutup-menguat-ke-rp-17748-per-dolar-as-hari-ini-208-paling-kuat-di-asia",
"image": "https://foto.kontan.co.id/IwUkJinvLN5GS46ZqYJQ5IuGMbw=/smart/2026/07/27/1018513453t.jpg",
"title": "Rupiah Ditutup Menguat ke Rp 17.748 Per Dolar AS Hari Ini (20/8), Paling Kuat di Asia",
"source": "kontan.co.id",
"category": "investasi",
"publishedAt": "2026-08-19T17:00:00.000Z"
},
{
"url": "https://nasional.kontan.co.id/news/bi-tahan-bunga-575-risiko-kenaikan-suku-bunga-masih-mengintai",
"image": "https://foto.kontan.co.id/O7UrLzEIEAhBcoMua4yEMr11WQo=/smart/2026/08/04/468742067t.jpg",
"title": "BI Tahan Suku Bunga 5,75%, Risiko Kenaikan BI Rate Masih Mengintai",
"source": "kontan.co.id",
"category": "nasional",
"publishedAt": "2026-08-19T17:00:00.000Z"
},
{
"url": "https://investasi.kontan.co.id/news/rupiah-spot-menguat-038-ke-rp-17771-per-dolar-as-pada-kamis-208-siang",
"image": "https://foto.kontan.co.id/YCrDKF1zMr6zJQmg62qjDF8n054=/smart/2026/06/04/291669906t.jpg",
"title": "Rupiah Spot Menguat 0,38% ke Rp 17.771 per Dolar AS pada Kamis (20/8) Siang",
"source": "kontan.co.id",
"category": "investasi",
"publishedAt": "2026-08-19T17:00:00.000Z"
}
],
"query": "rupiah",
"dataset": "search",
"hasMore": true,
"nextPage": 2,
"provider": "kontan"
}
```
---
### Article Archive
One day of Kontan, any date back to 2008, filterable by channel.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:kontan/archive`
- **Cache TTL:** 600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `date` | string | query | no | Archive date as YYYY-MM-DD, back to 2008. Default today in Jakarta time |
| `channel` | enum(nasional|keuangan|investasi|industri|internasional|peluangusaha|personalfinance|english|lifestyle|fokus|regional|yangter|kesehatan|caritahu|analisis|executive|kolom|kilaskementerian|infografik|insight|cekfakta|seremonia|native|exportexpert|tabloid|kilaskorporasi|edsus|tv|stocksetup|belanjaon|newssetup|filmon|kiaton|sportsetup|momsmoneyid|pressrelease|jelajahekonomi|aktual|showcase|finansial|sehat|pusatdata|global|style|sosok|iptek) | query | no | Channel to scope to. Omit for all channels |
| `page` | number | query | no | Page number, 20 items per page. Default 1 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:kontan/archive?date=2026-08-20&channel=investasi&page=1" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:kontan/archive?date=2026-08-20&channel=investasi&page=1", {
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:kontan/archive?date=2026-08-20&channel=investasi&page=1",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"date": "2026-08-19",
"page": 1,
"count": 20,
"items": [
{
"url": "https://keuangan.kontan.co.id/news/perusahaan-modal-ventura-berizin-diawasi-ojk",
"image": "https://foto.kontan.co.id/ykIbm29-SqlRTK1SzMtGp2RshRQ=/smart/2024/01/23/571413721t.jpg",
"title": "Perusahaan Modal Ventura Berizin Diawasi OJK",
"source": "kontan.co.id",
"category": "keuangan",
"publishedAt": "2026-08-18T17:00:00.000Z"
},
{
"url": "https://keuangan.kontan.co.id/news/ini-tantangan-industri-lkm-seimbangkan-tingkat-inklusi-dengan-literasi",
"image": "https://foto.kontan.co.id/TQnxIGr1eSy3dXcgqfZvxco_zzY=/smart/2024/11/25/1007564343t.jpg",
"title": "Ini Tantangan Industri LKM Seimbangkan Tingkat Inklusi dengan Literasi",
"source": "kontan.co.id",
"category": "keuangan",
"publishedAt": "2026-08-18T17:00:00.000Z"
},
{
"url": "https://nasional.kontan.co.id/news/kemenhaj-usul-bpih-2027-rp1073-juta-jemaah-bayar-rp429-juta",
"image": "https://foto.kontan.co.id/gp2xguKiEv5ZEtVv2e85tYxPg0o=/smart/2019/03/20/1281679964t.jpg",
"title": "Kemenhaj Usul BPIH 2027 Rp107,3 Juta, Jemaah Bayar Rp42,9 Juta",
"source": "kontan.co.id",
"category": "nasional",
"publishedAt": "2026-08-18T17:00:00.000Z"
},
{
"url": "https://keuangan.kontan.co.id/news/pamor-srbi-di-industri-dana-pensiun-konvensional-kian-menanjak",
"image": "https://foto.kontan.co.id/TyzaEeTatYT899uUb5oTBghVQ9w=/smart/2026/02/20/985607880t.jpg",
"title": "Pamor SRBI di Industri Dana Pensiun Konvensional Kian Menanjak",
"source": "kontan.co.id",
"category": "keuangan",
"publishedAt": "2026-08-18T17:00:00.000Z"
},
{
"url": "https://nasional.kontan.co.id/news/kemenhaj-pastikan-layanan-jemaah-tetap-berjalan-di-tengah-gempa-ntt",
"image": "https://foto.kontan.co.id/Ynl_BA8tPFUes9GUQLCzALhCnlY=/smart/2026/08/18/1319090054t.jpg",
"title": "Kemenhaj Pastikan Layanan Jemaah Tetap Berjalan di Tengah Gempa NTT",
"source": "kontan.co.id",
"category": "nasional",
"publishedAt": "2026-08-18T17:00:00.000Z"
},
{
"url": "https://industri.kontan.co.id/news/investasi-industri-logam-us-844-m-gifametec-bidik-kebutuhan-teknologi-makin-besar",
"image": "https://foto.kontan.co.id/HglgYwyyKUascXJxwOF-H1ac-tM=/smart/2026/08/19/1554404743t.jpg",
"title": "Investasi Industri Logam US$ 8,44 M, GIFA&METEC Bidik Kebutuhan Teknologi Makin Besar",
"source": "kontan.co.id",
"category": "industri",
"publishedAt": "2026-08-18T17:00:00.000Z"
},
{
"url": "https://investasi.kontan.co.id/news/asing-net-buy-rp-933-miliar-intip-saham-yang-banyak-diborong-rabu-198",
"image": "https://foto.kontan.co.id/pdzE8ycbnuFkytp94ZQYCtRUHMg=/smart/2026/07/27/105291204t.jpg",
"title": "Asing Net Buy Rp 933 Miliar, Intip Saham yang Banyak Diborong, Rabu (19/8)",
"source": "kontan.co.id",
"category": "investasi",
"publishedAt": "2026-08-18T17:00:00.000Z"
},
{
"url": "https://investasi.kontan.co.id/news/wall-street-pulih-saham-moderna-melonjak-lebih-dari-dua-kali-lipat",
"image": "https://foto.kontan.co.id/qNznnBAguTjVQ9X5ATzbHSsdZMw=/smart/2026/07/21/1556276433t.jpg",
"title": "Wall Street Pulih, Saham Moderna Melonjak Lebih dari Dua Kali Lipat",
"source": "kontan.co.id",
"category": "investasi",
"publishedAt": "2026-08-18T17:00:00.000Z"
}
],
"channel": null,
"dataset": "archive",
"hasMore": true,
"nextPage": 2,
"provider": "kontan"
}
```
---
### Article Detail
One article with body, tags, writer, editor and word count.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:kontan/detail`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `url` | string | query | yes | Full article URL |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:kontan/detail?url=https%3A%2F%2Finvestasi.kontan.co.id%2Fnews%2Feskalasi-geopolitik-bayangi-pasar-harga-minyak-berpotensi-tembus-us-100" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:kontan/detail?url=https%3A%2F%2Finvestasi.kontan.co.id%2Fnews%2Feskalasi-geopolitik-bayangi-pasar-harga-minyak-berpotensi-tembus-us-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:kontan/detail?url=https%3A%2F%2Finvestasi.kontan.co.id%2Fnews%2Feskalasi-geopolitik-bayangi-pasar-harga-minyak-berpotensi-tembus-us-100",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"id": "1361201",
"url": "https://investasi.kontan.co.id/news/eskalasi-geopolitik-bayangi-pasar-harga-minyak-berpotensi-tembus-us-100",
"tags": [
"harga minyak dunia",
"harga minyak mentah",
"minyak brent",
"brent",
"wti",
"harga minyak brent",
"brent wti",
"west texas intermediate wti"
],
"type": "Standard",
"image": "https://foto.kontan.co.id/OPjZDSDIJeCm92MUcH3qWKMjT60=/smart/2026/08/12/68597051.jpg",
"title": "Eskalasi Geopolitik Bayangi Pasar, Harga Minyak Berpotensi Tembus US$ 100",
"author": "Muhammad Fatih",
"editor": "Anna Suci Perwitasari",
"source": "kontan.co.id",
"content": "Reporter: Muhammad Fatih | Editor: Anna Suci Perwitasari\n\nKONTAN.CO.ID - JAKARTA. Harga minyak mentah dunia diproyeksikan masih cenderung berada di level tinggi dan volatil hingga akhir tahun seiring meningkatnya risiko gangguan pasokan fisik akibat eskalasi konflik di Timur Tengah.\n\nKamis (20/8/2026), mengutip Bloomberg, harga minyak mentah berjangka jenis Brent untuk kontrak pengiriman Oktober naik 35 sen atau 0,38% menjadi US$ 91,97 per barel.\n\nSejalan, harga minyak mentah berjangka West Texas Intermediate (WTI) untuk kontrak pengiriman September 2026 naik 17 sen menjadi US$ 86,00 per barel. Dengan harga WTI kontrak pengiriman Oktober 2026 yang lebih aktif, menguatkan 38 sen atau 0,45%, menjadi US$ 84,77 per barel.\n\nLonjakan harga minyak mentah belakangan ini tidak lagi sekadar dipicu oleh sentimen psikologis pasar, melainkan telah merefleksikan gangguan pasokan fisik (supply disruption) yang nyata di lapangan.\n\nBaca Juga: PGEO Gelar MESOP 127 Juta Saham Mulai 24 Agustus Selama 30 Hari\n\nMenurunnya lalu lintas kapal tanker di Selat Hormuz serta tersendatnya ekspor minyak dari kawasan Teluk menjadi penopang utama kenaikan harga energi global saat ini.\n\nMeski negara produsen besar yang tergabung dalam OPEC+ serta Amerika Serikat masih memiliki kapasitas cadangan untuk menambah pasokan, fleksibilitas tersebut dinilai tetap terbatas dalam meredam lonjakan harga.\n\nKeterbatasan tersebut terjadi lantaran hambatan distribusi di titik krusial seperti Selat Hormuz tidak serta-merta dapat digantikan oleh peningkatan produksi dari wilayah lain.\n\nChief Analyst Doo Financial Futures Lukman Leong mengatakan, pergerakan pasar komoditas energi saat ini telah mengalami pergeseran mendasar dibandingkan dengan fase-fase awal ketegangan geopolitik.\n\n\"Saat ini sudah lebih banyak mencerminkan risiko supply disruption yang nyata, bukan hanya faktor psikologis. Di awal konflik, pasar menaikkan harga karena khawatir terhadap kemungkinan gangguan pasokan. Sekarang, gangguan tersebut sudah menjadi kenyataan,\" kata Lukman kepada Kontan, Kamis (20/8/2026).\n\nDalam skenario dasar (base case), Lukman memproyeksikan harga minyak Brent bergerak di kisaran US$ 85–US$ 100 per barel dan WTI berada di rentang US$ 80–US$ 95 per barel hingga akhir tahun.\n\nKendati demikian, arah pergerakan harga minyak masih memiliki kecenderungan menguat (upside bias) bergantung pada situasi geopolitik di Timur Tengah.\n\nApabila konflik Iran-AS terus meluas dan memicu penutupan Selat Hormuz dalam jangka waktu yang lebih lama, harga minyak jenis Brent diperkirakan berpotensi menembus level US$ 100 hingga US$ 110 per barel.\n\nBaca Juga: AS Buyback Obligasi, Rupiah Menguat ke Rp 17.748 per Dolar AS\n\nSebaliknya, jika dicapai kesepakatan damai serta kepastian pembukaan kembali arus pelayaran, geopolitical premium diprediksi akan luntur dan mengoreksi harga Brent ke kisaran US$ 75–US$ 85 per barel.\n\n\"OPEC+, khususnya negara produsen besar seperti Saudi, memiliki spare capacity yang dapat dimobilisasi jika diperlukan, sementara produksi minyak AS yang tinggi juga menjadi penyangga bagi pasokan global. Namun, kemampuan tersebut tetap terbatas karena jika gangguan utama berasal dari Selat Hormuz, tambahan produksi dari negara lain tidak serta-merta dapat menggantikan pasokan yang terhambat,\" tutup Lukman.\n\nCek Berita dan Artikel yang lain di Google News",
"dataset": "article",
"summary": "Harga minyak acuan terus reli untuk lima sesi berturut-turut dan membuat harga minyak berpeluang kembali ke atas US$ 100 per barel",
"category": "investasi",
"provider": "kontan",
"authorUrl": "https://www.kontan.co.id/author/531/muhammad-fatih",
"updatedAt": "2026-08-20T09:38:30.000Z",
"wordCount": 547,
"publishedAt": "2026-08-20T09:38:30.000Z",
"subcategory": "Komoditas"
}
```
---
### Tag Articles
Articles filed under one tag.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:kontan/tag`
- **Cache TTL:** 600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `tag` | string | query | yes | Tag slug, as it appears in a /tag/ URL |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:kontan/tag?tag=harga-minyak" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:kontan/tag?tag=harga-minyak", {
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:kontan/tag?tag=harga-minyak",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"tag": "harga-minyak",
"count": 10,
"items": [
{
"url": "https://investasi.kontan.co.id/news/ancaman-sanksi-iran-tekan-pasokan-fisik-harga-minyak-dibayangi-volatilitas",
"image": "https://foto.kontan.co.id/yL8aYhYetjEXqh2suETeB2j9-O4=/smart/2026/08/12/68597051t.jpg",
"title": "Ancaman Sanksi Iran Tekan Pasokan Fisik, Harga Minyak Dibayangi Volatilitas",
"source": "kontan.co.id",
"publishedAt": "2026-08-20T10:11:00.000Z"
},
{
"url": "https://industri.kontan.co.id/news/target-lifting-gas-rapbn-2027-turun-aspermigas-soroti-serapan-dan-harga-gas",
"image": "https://foto.kontan.co.id/CO96WasNrDme_N3pZCzGLnLi9qM=/smart/2016/08/24/1767780674t.jpg",
"title": "Target Lifting Gas RAPBN 2027 Turun, Aspermigas Soroti Serapan dan Harga Gas",
"source": "kontan.co.id",
"publishedAt": "2026-08-20T10:03:00.000Z"
},
{
"url": "https://investasi.kontan.co.id/news/eskalasi-geopolitik-bayangi-pasar-harga-minyak-berpotensi-tembus-us-100",
"image": "https://foto.kontan.co.id/yL8aYhYetjEXqh2suETeB2j9-O4=/smart/2026/08/12/68597051t.jpg",
"title": "Eskalasi Geopolitik Bayangi Pasar, Harga Minyak Berpotensi Tembus US$ 100",
"source": "kontan.co.id",
"publishedAt": "2026-08-20T09:38:00.000Z"
},
{
"url": "https://internasional.kontan.co.id/news/harga-minyak-naik-karena-kekhawatiran-pasokan-timur-tengah-di-tengah-kebuntuan-perang",
"image": "https://foto.kontan.co.id/meJ3wjvpi0CAYB9jJ-rx7LonD7M=/smart/2026/08/02/2139721256t.jpg",
"title": "Harga Minyak Naik karena Kekhawatiran Pasokan Timur Tengah di Tengah Kebuntuan Perang",
"source": "kontan.co.id",
"publishedAt": "2026-08-20T07:07:00.000Z"
},
{
"url": "https://internasional.kontan.co.id/news/harga-minyak-menguat-5-sesi-berturut-turut-wti-dekati-us-90-per-barel",
"image": "https://foto.kontan.co.id/yL8aYhYetjEXqh2suETeB2j9-O4=/smart/2026/08/12/68597051t.jpg",
"title": "Harga Minyak Menguat 5 Sesi Berturut-Turut, WTI Dekati US$ 90 Per Barel",
"source": "kontan.co.id",
"publishedAt": "2026-08-20T05:54:00.000Z"
},
{
"url": "https://internasional.kontan.co.id/news/impor-jepang-cetak-rekor-harga-minyak-dorong-tekanan-inflasi",
"image": "https://foto.kontan.co.id/Q_4jptaQKL0VAfQCSFJzIiIO_ZM=/smart/2020/09/10/351650731t.jpg",
"title": "Impor Jepang Cetak Rekor, Harga Minyak Dorong Tekanan Inflasi",
"source": "kontan.co.id",
"publishedAt": "2026-08-20T03:15:00.000Z"
},
{
"url": "https://internasional.kontan.co.id/news/harga-minyak-dunia-stabil-kamis-208-brent-ke-us9187-dan-wti-ke-us8581",
"image": "https://foto.kontan.co.id/iK5uoe7BW9A0rnQpfJjoMZdkF9g=/smart/2026/08/02/951545591t.jpg",
"title": "Harga Minyak Dunia Stabil Kamis (20/8), Brent ke US$91,87 dan WTI ke US$85,81",
"source": "kontan.co.id",
"publishedAt": "2026-08-20T01:56:00.000Z"
},
{
"url": "https://investasi.kontan.co.id/news/harga-minyak-lanjut-menguat-kamis-208-pagi-dipicu-ancaman-perang-ekonomi-as-iran",
"image": "https://foto.kontan.co.id/iK5uoe7BW9A0rnQpfJjoMZdkF9g=/smart/2026/08/02/951545591t.jpg",
"title": "Harga Minyak Lanjut Menguat Kamis (20/8) Pagi, Dipicu Ancaman Perang Ekonomi AS-Iran",
"source": "kontan.co.id",
"publishedAt": "2026-08-20T00:36:00.000Z"
}
],
"dataset": "tag",
"provider": "kontan"
}
```
---
### Author Articles
One writer's articles, paged.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:kontan/author`
- **Cache TTL:** 600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `author` | string | query | yes | Author path as
/, or a full /author/ URL |
| `page` | number | query | no | Page number, 10 items per page. Default 1 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:kontan/author?author=531%2Fmuhammad-fatih&page=1" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:kontan/author?author=531%2Fmuhammad-fatih&page=1", {
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:kontan/author?author=531%2Fmuhammad-fatih&page=1",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"page": 1,
"count": 10,
"items": [
{
"url": "https://investasi.kontan.co.id/news/ancaman-sanksi-iran-tekan-pasokan-fisik-harga-minyak-dibayangi-volatilitas",
"image": "https://foto.kontan.co.id/yL8aYhYetjEXqh2suETeB2j9-O4=/smart/2026/08/12/68597051t.jpg",
"title": "Ancaman Sanksi Iran Tekan Pasokan Fisik, Harga Minyak Dibayangi Volatilitas",
"source": "kontan.co.id",
"category": "HARGA MINYAK BUMI",
"publishedAt": "2026-08-20T10:11:00.000Z"
},
{
"url": "https://investasi.kontan.co.id/news/eskalasi-geopolitik-bayangi-pasar-harga-minyak-berpotensi-tembus-us-100",
"image": "https://foto.kontan.co.id/yL8aYhYetjEXqh2suETeB2j9-O4=/smart/2026/08/12/68597051t.jpg",
"title": "Eskalasi Geopolitik Bayangi Pasar, Harga Minyak Berpotensi Tembus US$ 100",
"source": "kontan.co.id",
"category": "GEJOLAK HARGA MINYAK",
"publishedAt": "2026-08-20T09:38:00.000Z"
},
{
"url": "https://insight.kontan.co.id/news/pasar-sigap-mengantisipasi-arah-bi-rate",
"image": "https://foto.kontan.co.id/voz-g-59WslBn_GnqjYTg5jivEA=/smart/2026/08/11/1478964731t.jpg",
"title": "Pasar Sigap Mengantisipasi Arah BI Rate",
"source": "kontan.co.id",
"category": "KURS RUPIAH-DOLAR AS",
"publishedAt": "2026-08-20T00:10:00.000Z"
},
{
"url": "https://investasi.kontan.co.id/news/bi-rate-ditahan-575-rupiah-masih-berisiko-kembali-ke-level-rp-18000",
"image": "https://foto.kontan.co.id/IwUkJinvLN5GS46ZqYJQ5IuGMbw=/smart/2026/07/27/1018513453t.jpg",
"title": "BI Rate Ditahan 5,75%, Rupiah Masih Berisiko Kembali ke Level Rp 18.000",
"source": "kontan.co.id",
"category": "PREDIKSI RUPIAH",
"publishedAt": "2026-08-19T11:59:00.000Z"
},
{
"url": "https://investasi.kontan.co.id/news/persiapkan-bursa-mineral-dan-komoditas-strategis-ojk-lantik-deputi-komisioner-baru",
"image": "https://foto.kontan.co.id/ln6z1R5u7YZjoPdBT7kVdlKfJgA=/smart/2026/08/04/998991175t.jpg",
"title": "Persiapkan Bursa Mineral dan Komoditas Strategis, OJK Lantik Deputi Komisioner Baru",
"source": "kontan.co.id",
"category": "KOMODITAS MINERAL",
"publishedAt": "2026-08-19T11:47:00.000Z"
},
{
"url": "https://investasi.kontan.co.id/news/ihsg-terpangkas-ke-level-6394-cermati-sinyal-kebijakan-bi-dan-lonjakan-minyak",
"image": "https://foto.kontan.co.id/Ye6ekpiFplOYPyeXkE5UCLw5ftA=/smart/2026/04/13/686589134t.jpg",
"title": "IHSG Terpangkas ke Level 6.394, Cermati Sinyal Kebijakan BI dan Lonjakan Minyak",
"source": "kontan.co.id",
"category": "IHSG",
"publishedAt": "2026-08-19T11:10:00.000Z"
},
{
"url": "https://investasi.kontan.co.id/news/ftse-russell-tunda-rebalancing-saham-ri-bei-dapat-waktu-benahi-pasar",
"image": "https://foto.kontan.co.id/YwnESMue6wr21OoWeRbKgKIXXq8=/smart/2025/09/21/724964975t.jpg",
"title": "FTSE Russell Tunda Rebalancing Saham RI, BEI Dapat Waktu Benahi Pasar",
"source": "kontan.co.id",
"category": "IHSG",
"publishedAt": "2026-08-19T10:58:00.000Z"
},
{
"url": "https://investasi.kontan.co.id/news/yield-sbn-melandai-intip-proyeksi-obligasi-tenor-5-dan-10-tahun",
"image": "https://foto.kontan.co.id/TdEBOfRxdIpQT9ChsqomPAJ2eGo=/smart/2022/06/02/652195280t.jpg",
"title": "Yield SBN Melandai, Intip Proyeksi Obligasi Tenor 5 dan 10 Tahun",
"source": "kontan.co.id",
"category": "OBLIGASI",
"publishedAt": "2026-08-19T10:35:00.000Z"
}
],
"author": "531/muhammad-fatih",
"dataset": "author",
"hasMore": true,
"nextPage": 2,
"provider": "kontan"
}
```
---
### Trading Recap
IDX trading recap: market totals, investor split, blue chips and busiest brokers.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:kontan/rekap-data`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `section` | number | query | no | Which table on the page, 1-based. Default 1; `sections` lists them all |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:kontan/rekap-data?section=1" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:kontan/rekap-data?section=1", {
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:kontan/rekap-data?section=1",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 3,
"items": [
{
"event": "Buy",
"totalValue": "15.776.495.743.834",
"totalVolume": "77.092.754.743",
"foreignValue": "5.354.211.791.469",
"domesticValue": "10.422.283.952.365",
"foreignVolume": "44.094.527.410",
"domesticVolume": "32.998.227.333"
},
{
"event": "Sell",
"totalValue": "15.776.495.743.834",
"totalVolume": "77.092.754.743",
"foreignValue": "4.673.957.116.262",
"domesticValue": "11.102.538.627.572",
"foreignVolume": "45.719.387.678",
"domesticVolume": "31.373.367.065"
},
{
"event": "Net",
"totalValue": "0",
"totalVolume": "0",
"foreignValue": "680.254.675.207",
"domesticValue": "-680.254.675.207",
"foreignVolume": "-1.624.860.268",
"domesticVolume": "1.624.860.268"
}
],
"columns": [
{
"field": "event",
"label": "Event"
},
{
"field": "domesticVolume",
"label": "Domestic Volume"
},
{
"field": "domesticValue",
"label": "Domestic Value"
},
{
"field": "foreignVolume",
"label": "Foreign Volume"
},
{
"field": "foreignValue",
"label": "Foreign Value"
},
{
"field": "totalVolume",
"label": "Total Volume"
},
{
"field": "totalValue",
"label": "Total Value"
}
],
"dataset": "rekap-data",
"section": 2,
"provider": "kontan",
"sections": [
{
"count": 8,
"title": "Rekap Perdagangan Saham BEI",
"section": 1
},
{
"count": 3,
"title": "Rekap Perdagangan Saham Menurut Investor",
"section": 2
},
{
"count": 10,
"title": "10 Saham LQ45 dengan PER Terendah",
"section": 3
},
{
"count": 10,
"title": "10 Saham LQ45 dengan PER Tertinggi",
"section": 4
},
{
"count": 10,
"title": "Pembeli Blue Chip",
"section": 5
},
{
"count": 10,
"title": "Penjual Blue Chip",
"section": 6
},
{
"count": 10,
"title": "Broker Teraktif (Nilai)",
"section": 7
},
{
"count": 10,
"title": "Broker Teraktif (Volume)",
"section": 8
}
],
"sectionTitle": "Rekap Perdagangan Saham Menurut Investor"
}
```
---
### Global Indices
World stock indices with last, change and change percent.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:kontan/indeks-global`
- **Cache TTL:** 900s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `search` | string | query | no | Filter rows to those containing this text, case-insensitive |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:kontan/indeks-global?search=SSEC" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:kontan/indeks-global?search=SSEC", {
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:kontan/indeks-global?search=SSEC",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 1,
"items": [
{
"last": "3903.72",
"name": "SSEC",
"change": "9.3",
"updatedAt": "2026-08-20 15:01:30",
"changePercent": "0.24"
}
],
"search": "ssec",
"columns": [
{
"field": "name",
"label": "Name"
},
{
"field": "last",
"label": "Last"
},
{
"field": "change",
"label": "Change"
},
{
"field": "changePercent",
"label": "Change (%)"
},
{
"field": "updatedAt",
"label": "Last Update"
}
],
"dataset": "indeks-global",
"provider": "kontan"
}
```
---
### Sectoral Indices
IDX sectoral indices with last and change.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:kontan/indeks-sektoral`
- **Cache TTL:** 900s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `search` | string | query | no | Filter rows to those containing this text, case-insensitive |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:kontan/indeks-sektoral?search=IDXFINANCE" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:kontan/indeks-sektoral?search=IDXFINANCE", {
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:kontan/indeks-sektoral?search=IDXFINANCE",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 1,
"items": [
{
"last": "1365.6470",
"name": "IDXFINANCE",
"change": "20.077",
"changePercent": "1.49"
}
],
"search": "idxfinance",
"columns": [
{
"field": "name",
"label": "Name"
},
{
"field": "last",
"label": "Last"
},
{
"field": "change",
"label": "Change"
},
{
"field": "changePercent",
"label": "Change (%)"
}
],
"dataset": "indeks-sektoral",
"provider": "kontan"
}
```
---
### Foreign Flow
Daily net foreign flow into Indonesian equities.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:kontan/dana-asing-saham`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `search` | string | query | no | Filter rows to those containing this text, case-insensitive |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:kontan/dana-asing-saham?search=2026-08" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:kontan/dana-asing-saham?search=2026-08", {
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:kontan/dana-asing-saham?search=2026-08",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 12,
"items": [
{
"date": "2026-08-19",
"midPrice": "933.53"
},
{
"date": "2026-08-18",
"midPrice": "-355.17"
},
{
"date": "2026-08-14",
"midPrice": "-1034.66"
},
{
"date": "2026-08-13",
"midPrice": "-1413.24"
},
{
"date": "2026-08-12",
"midPrice": "725.21"
},
{
"date": "2026-08-11",
"midPrice": "-687.84"
},
{
"date": "2026-08-10",
"midPrice": "829.69"
},
{
"date": "2026-08-07",
"midPrice": "1235.52"
}
],
"search": "2026-08",
"columns": [
{
"field": "midPrice",
"label": "Mid Price"
},
{
"field": "date",
"label": "Date"
}
],
"dataset": "dana-asing-saham",
"provider": "kontan"
}
```
---
### Benchmark SUN Yield
Government bond yield curve by tenor, today against yesterday.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:kontan/yield-sun-acuan`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `search` | string | query | no | Filter rows to those containing this text, case-insensitive |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:kontan/yield-sun-acuan?search=10" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:kontan/yield-sun-acuan?search=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:kontan/yield-sun-acuan?search=10",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 39,
"items": [
{
"date": "2026-08-19",
"today": "6.5155",
"tenorYear": "0.1",
"yesterday": "6.5334"
},
{
"date": "2026-08-19",
"today": "6.6560",
"tenorYear": "1",
"yesterday": "6.6690"
},
{
"date": "2026-08-19",
"today": "6.7594",
"tenorYear": "2",
"yesterday": "6.7796"
},
{
"date": "2026-08-19",
"today": "6.8363",
"tenorYear": "3",
"yesterday": "6.8664"
},
{
"date": "2026-08-19",
"today": "6.8993",
"tenorYear": "4",
"yesterday": "6.9374"
},
{
"date": "2026-08-19",
"today": "6.9541",
"tenorYear": "5",
"yesterday": "6.9968"
},
{
"date": "2026-08-19",
"today": "7.0027",
"tenorYear": "6",
"yesterday": "7.0469"
},
{
"date": "2026-08-19",
"today": "7.0460",
"tenorYear": "7",
"yesterday": "7.0891"
}
],
"search": "2026-08",
"columns": [
{
"field": "tenorYear",
"label": "Tenor (Year)"
},
{
"field": "today",
"label": "Today"
},
{
"field": "yesterday",
"label": "Yesterday"
},
{
"field": "date",
"label": "Date"
}
],
"dataset": "yield-sun-acuan",
"provider": "kontan"
}
```
---
### SUN Ownership
Government bond ownership split by institution type.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:kontan/kepemilikan-sun`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `search` | string | query | no | Filter rows to those containing this text, case-insensitive |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:kontan/kepemilikan-sun?search=Bank" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:kontan/kepemilikan-sun?search=Bank", {
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:kontan/kepemilikan-sun?search=Bank",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 3,
"items": [
{
"sun": "765.09",
"date": "2026-06-30",
"sbsn": "168.06",
"total": "933.15",
"sunPercent": "13.53",
"institution": "Bank Konvensional",
"sbsnPercent": "13.03",
"totalPercent": "13.44"
},
{
"sun": "-",
"date": "2026-06-30",
"sbsn": "118.11",
"total": "118.11",
"sunPercent": "-",
"institution": "Bank Syariah",
"sbsnPercent": "9.16",
"totalPercent": "1.70"
},
{
"sun": "1817.06",
"date": "2026-06-30",
"sbsn": "223.34",
"total": "2040.41",
"sunPercent": "32.13",
"institution": "Bank Indonesia",
"sbsnPercent": "17.32",
"totalPercent": "29.38"
}
],
"search": "bank",
"columns": [
{
"field": "institution",
"label": "Institusi"
},
{
"field": "sun",
"label": "SUN"
},
{
"field": "sunPercent",
"label": "SUN Persentase (%)"
},
{
"field": "sbsn",
"label": "SBSN"
},
{
"field": "sbsnPercent",
"label": "SBSN Persentase (%)"
},
{
"field": "total",
"label": "Total"
},
{
"field": "totalPercent",
"label": "Total Persentase (%)"
},
{
"field": "date",
"label": "Tanggal"
}
],
"dataset": "kepemilikan-sun",
"provider": "kontan"
}
```
---
### Corporate Bond Yield
Corporate bond yield curve by tenor and credit rating.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:kontan/yield-obligasi-korporasi`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `search` | string | query | no | Filter rows to those containing this text, case-insensitive |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:kontan/yield-obligasi-korporasi?search=5" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:kontan/yield-obligasi-korporasi?search=5", {
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:kontan/yield-obligasi-korporasi?search=5",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 11,
"items": [
{
"a": "7.8492",
"aa": "7.0307",
"aaa": "6.8238",
"bbb": "9.0000",
"igs": "6.5155",
"date": "2026-08-19",
"tenorYear": "0.1"
},
{
"a": "8.1708",
"aa": "7.3923",
"aaa": "7.1307",
"bbb": "10.0000",
"igs": "6.6560",
"date": "2026-08-19",
"tenorYear": "1"
},
{
"a": "8.4000",
"aa": "7.5300",
"aaa": "7.2504",
"bbb": "10.0000",
"igs": "6.7594",
"date": "2026-08-19",
"tenorYear": "2"
},
{
"a": "8.5465",
"aa": "7.5952",
"aaa": "7.3305",
"bbb": "10.0000",
"igs": "6.8363",
"date": "2026-08-19",
"tenorYear": "3"
},
{
"a": "8.6453",
"aa": "7.6536",
"aaa": "7.4167",
"bbb": "11.0000",
"igs": "6.8993",
"date": "2026-08-19",
"tenorYear": "4"
},
{
"a": "8.7180",
"aa": "7.7161",
"aaa": "7.5067",
"bbb": "11.0000",
"igs": "6.9541",
"date": "2026-08-19",
"tenorYear": "5"
},
{
"a": "8.7778",
"aa": "7.7788",
"aaa": "7.5910",
"bbb": "11.0000",
"igs": "7.0027",
"date": "2026-08-19",
"tenorYear": "6"
},
{
"a": "8.8320",
"aa": "7.8360",
"aaa": "7.6627",
"bbb": "11.0000",
"igs": "7.0460",
"date": "2026-08-19",
"tenorYear": "7"
}
],
"search": "2026-08",
"columns": [
{
"field": "tenorYear",
"label": "Tenor (Tahun)"
},
{
"field": "igs",
"label": "IGS"
},
{
"field": "aaa",
"label": "AAA"
},
{
"field": "aa",
"label": "AA"
},
{
"field": "a",
"label": "A"
},
{
"field": "bbb",
"label": "BBB"
},
{
"field": "date",
"label": "Tanggal"
}
],
"dataset": "yield-obligasi-korporasi",
"provider": "kontan"
}
```
---
### Retail SBN Yield
Retail government bond series with yield, price and coupon.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:kontan/yield-sbn-ritel`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `search` | string | query | no | Filter rows to those containing this text, case-insensitive |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:kontan/yield-sbn-ritel?search=ORI" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:kontan/yield-sbn-ritel?search=ORI", {
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:kontan/yield-sbn-ritel?search=ORI",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 15,
"items": [
{
"ttm": "2.91",
"date": "2026-08-19",
"coupon": "6.0000",
"series": "ORI023T6",
"todayPrice": "97.8872",
"todayYield": "6.9045",
"yesterdayPrice": "97.8143",
"yesterdayYield": "6.9319"
},
{
"ttm": "0.16",
"date": "2026-08-19",
"coupon": "6.0000",
"series": "ORI024T3",
"todayPrice": "99.9334",
"todayYield": "6.5292",
"yesterdayPrice": "99.9296",
"yesterdayYield": "6.5465"
},
{
"ttm": "3.16",
"date": "2026-08-19",
"coupon": "6.0000",
"series": "ORI024T6",
"todayPrice": "98.5104",
"todayYield": "6.8764",
"yesterdayPrice": "98.4283",
"yesterdayYield": "6.9052"
},
{
"ttm": "0.49",
"date": "2026-08-19",
"coupon": "6.0000",
"series": "ORI025T3",
"todayPrice": "99.7694",
"todayYield": "6.7301",
"yesterdayPrice": "99.7631",
"yesterdayYield": "6.7408"
},
{
"ttm": "3.50",
"date": "2026-08-19",
"coupon": "6.0000",
"series": "ORI025T6",
"todayPrice": "98.6947",
"todayYield": "6.8214",
"yesterdayPrice": "98.5910",
"yesterdayYield": "6.8548"
},
{
"ttm": "1.16",
"date": "2026-08-19",
"coupon": "6.0000",
"series": "ORI026T3",
"todayPrice": "99.3499",
"todayYield": "6.8865",
"yesterdayPrice": "99.3661",
"yesterdayYield": "6.8707"
},
{
"ttm": "4.16",
"date": "2026-08-19",
"coupon": "6.0000",
"series": "ORI026T6",
"todayPrice": "97.5455",
"todayYield": "7.0835",
"yesterdayPrice": "97.4098",
"yesterdayYield": "7.1214"
},
{
"ttm": "1.49",
"date": "2026-08-19",
"coupon": "7.0000",
"series": "ORI027T3",
"todayPrice": "99.9561",
"todayYield": "6.6809",
"yesterdayPrice": "99.9354",
"yesterdayYield": "6.6956"
}
],
"search": "ori",
"columns": [
{
"field": "series",
"label": "Series"
},
{
"field": "ttm",
"label": "TTM"
},
{
"field": "todayYield",
"label": "Today Yield"
},
{
"field": "todayPrice",
"label": "Today Price"
},
{
"field": "yesterdayYield",
"label": "Yesterday Yield"
},
{
"field": "yesterdayPrice",
"label": "Yesterday Price"
},
{
"field": "coupon",
"label": "Coupon"
},
{
"field": "date",
"label": "Date"
}
],
"dataset": "yield-sbn-ritel",
"provider": "kontan"
}
```
---
### Deposit Benchmark Rate
Deposit insurance benchmark rate by period, rupiah and foreign currency.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:kontan/sbw`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `search` | string | query | no | Filter rows to those containing this text, case-insensitive |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:kontan/sbw?search=2026" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:kontan/sbw?search=2026", {
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:kontan/sbw?search=2026",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 3,
"items": [
{
"date": "01/06/2026 - 30/09/2026",
"rupiahPercent": "3.5%",
"foreignCurrencyPercent": "2%"
},
{
"date": "01/02/2026 - 31/05/2026",
"rupiahPercent": "3.5%",
"foreignCurrencyPercent": "2%"
},
{
"date": "01/10/2025 - 31/01/2026",
"rupiahPercent": "3.5%",
"foreignCurrencyPercent": "2%"
}
],
"search": "2026",
"columns": [
{
"field": "date",
"label": "Tanggal"
},
{
"field": "rupiahPercent",
"label": "Rupiah (%)"
},
{
"field": "foreignCurrencyPercent",
"label": "Valas (%)"
}
],
"dataset": "sbw",
"provider": "kontan"
}
```
---
### CPO Price
Crude palm oil futures by contract month, with price and volume.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:kontan/cpo`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `search` | string | query | no | Filter rows to those containing this text, case-insensitive |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:kontan/cpo?search=Aug" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:kontan/cpo?search=Aug", {
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:kontan/cpo?search=Aug",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 6,
"items": [
{
"date": "2026-08-06",
"price": "16205",
"volume": "100",
"contract": "Aug",
"contractYear": "2025"
},
{
"date": "2026-08-06",
"price": "16605",
"volume": "0",
"contract": "Sep",
"contractYear": "2025"
},
{
"date": "2026-08-06",
"price": "16870",
"volume": "0",
"contract": "Okt",
"contractYear": "2025"
},
{
"date": "2026-08-06",
"price": "17075",
"volume": "0",
"contract": "Nov",
"contractYear": "2025"
},
{
"date": "2026-08-06",
"price": "17260",
"volume": "0",
"contract": "Des",
"contractYear": "2025"
},
{
"date": "2026-08-06",
"price": "17260",
"volume": "0",
"contract": "Jan",
"contractYear": "2025"
}
],
"search": "2026",
"columns": [
{
"field": "contract",
"label": "Kontrak Aktif"
},
{
"field": "price",
"label": "Harga"
},
{
"field": "volume",
"label": "Volume"
},
{
"field": "contractYear",
"label": "Tahun Kontrak"
},
{
"field": "date",
"label": "Tanggal"
}
],
"dataset": "cpo",
"provider": "kontan"
}
```
---
### Mineral Prices
Government reference prices for mineral commodities.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:kontan/mineral`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `search` | string | query | no | Filter rows to those containing this text, case-insensitive |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:kontan/mineral?search=Batubara" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:kontan/mineral?search=Batubara", {
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:kontan/mineral?search=Batubara",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 2,
"items": [
{
"year": "2026",
"month": "APRIL (P1)",
"price": "99.87",
"mineral": "Batubara",
"priceUnit": "(USD/ton)"
},
{
"year": "2026",
"month": "APRIL (P2)",
"price": "103.43",
"mineral": "Batubara",
"priceUnit": "(USD/ton)"
}
],
"search": "batubara",
"columns": [
{
"field": "mineral",
"label": "Jenis Mineral"
},
{
"field": "price",
"label": "Harga"
},
{
"field": "priceUnit",
"label": "Satuan Harga"
},
{
"field": "month",
"label": "Bulan"
},
{
"field": "year",
"label": "Tahun"
}
],
"dataset": "mineral",
"provider": "kontan"
}
```
---
### Car Sales
Monthly car sales by brand: wholesale, retail, production, export and import.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:kontan/penjualan-mobil`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `search` | string | query | no | Filter rows to those containing this text, case-insensitive |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:kontan/penjualan-mobil?search=TOYOTA" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:kontan/penjualan-mobil?search=TOYOTA", {
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:kontan/penjualan-mobil?search=TOYOTA",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 2,
"items": [
{
"year": "2026",
"brand": "TOYOTA",
"month": "JULI",
"export": "14311",
"import": "4553",
"retail": "21008",
"wholesale": "21642",
"production": "44314"
},
{
"year": "2026",
"brand": "TOYOTA CKD",
"month": "JULI",
"export": "#N/A",
"import": "#N/A",
"retail": "#N/A",
"wholesale": "#N/A",
"production": "#N/A"
}
],
"search": "toyota",
"columns": [
{
"field": "brand",
"label": "Brand"
},
{
"field": "wholesale",
"label": "Whole Sales"
},
{
"field": "retail",
"label": "Retail Sales"
},
{
"field": "production",
"label": "Production"
},
{
"field": "export",
"label": "Export"
},
{
"field": "import",
"label": "Import"
},
{
"field": "month",
"label": "Month"
},
{
"field": "year",
"label": "Year"
}
],
"dataset": "penjualan-mobil",
"provider": "kontan"
}
```
---
### Deposit Rates
Time deposit rates by bank across the 1, 3, 6 and 12 month tenors.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:kontan/bunga-deposito`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `search` | string | query | no | Filter rows to those containing this text, case-insensitive |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:kontan/bunga-deposito?search=BCA" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:kontan/bunga-deposito?search=BCA", {
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:kontan/bunga-deposito?search=BCA",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 10,
"items": [
{
"bank": "J TRUST BANK",
"updatedAt": "2026-08-07",
"month1Percent": "3.00",
"month3Percent": "3.25",
"month6Percent": "3.50",
"month12Percent": "3.75"
},
{
"bank": "BANK DANAMON",
"updatedAt": "2026-08-07",
"month1Percent": "3.75",
"month3Percent": "3.75",
"month6Percent": "4.00",
"month12Percent": "4.00"
},
{
"bank": "BANK JATIM",
"updatedAt": "2024-07-19",
"month1Percent": "2.6",
"month3Percent": "2.75",
"month6Percent": "2.9",
"month12Percent": "2.95"
},
{
"bank": "BANK KB INDONESIA",
"updatedAt": "2026-08-07",
"month1Percent": "3.50",
"month3Percent": "3.75",
"month6Percent": "4.00",
"month12Percent": "3.75"
},
{
"bank": "BANK MANDIRI",
"updatedAt": "2026-08-07",
"month1Percent": "2.25",
"month3Percent": "2.25",
"month6Percent": "2.5",
"month12Percent": "2.5"
},
{
"bank": "BANK MEGA",
"updatedAt": "2026-08-07",
"month1Percent": "4.25",
"month3Percent": "4.004.75",
"month6Percent": "5.00",
"month12Percent": "5.00"
},
{
"bank": "BANK PANIN",
"updatedAt": "2026-08-07",
"month1Percent": "3.50",
"month3Percent": "3.50",
"month6Percent": "3.50",
"month12Percent": "3.50"
},
{
"bank": "BANK PERMATA",
"updatedAt": "2026-08-07",
"month1Percent": "3.50",
"month3Percent": "3.75",
"month6Percent": "3.75",
"month12Percent": "3.75"
}
],
"search": "bank",
"columns": [
{
"field": "bank",
"label": "Nama Bank"
},
{
"field": "month1Percent",
"label": "1 Bln (%)"
},
{
"field": "month3Percent",
"label": "3 Bln (%)"
},
{
"field": "month6Percent",
"label": "6 Bln (%)"
},
{
"field": "month12Percent",
"label": "12 Bln (%)"
},
{
"field": "updatedAt",
"label": "Update"
}
],
"dataset": "bunga-deposito",
"provider": "kontan"
}
```
---
### Mutual Funds
Fund NAV and daily return, one table per fund type.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:kontan/reksadana`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `section` | number | query | no | Which table on the page, 1-based. Default 1; `sections` lists them all |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:kontan/reksadana?section=1" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:kontan/reksadana?section=1", {
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:kontan/reksadana?section=1",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 11,
"items": [
{
"nab": "732.64",
"fund": "Indo Arthabuana Golden Compass",
"dividend": "0.00",
"dailyReturn": "0.21"
},
{
"nab": "1103.20",
"fund": "SAM Syariah Berimbang",
"dividend": "0.00",
"dailyReturn": "-0.40"
},
{
"nab": "9354.06",
"fund": "Panin Dana Unggulan",
"dividend": "0.00",
"dailyReturn": "-0.32"
},
{
"nab": "998.33",
"fund": "Nusadana Balanced Fund",
"dividend": "0.00",
"dailyReturn": "0.26"
},
{
"nab": "4517.24",
"fund": "Prospera Balance",
"dividend": "0.00",
"dailyReturn": "-0.57"
},
{
"nab": "950.57",
"fund": "Trimegah Balanced Absolute Strategy Nusantara",
"dividend": "0.00",
"dailyReturn": "-0.53"
},
{
"nab": "993.94",
"fund": "Juara Sinai Balanced Fund Kelas A",
"dividend": "0.00",
"dailyReturn": "0.65"
},
{
"nab": "4312.41",
"fund": "Syailendra Balanced Opportunity Fund Kelas A",
"dividend": "0.00",
"dailyReturn": "-0.93"
}
],
"columns": [
{
"field": "fund",
"label": "Reksadana"
},
{
"field": "nab",
"label": "NAB"
},
{
"field": "dividend",
"label": "Deviden"
},
{
"field": "dailyReturn",
"label": "Daily Return"
}
],
"dataset": "reksadana",
"section": 2,
"provider": "kontan",
"sections": [
{
"count": 11,
"title": "Reksadana Saham",
"section": 1
},
{
"count": 11,
"title": "Reksadana Campuran",
"section": 2
},
{
"count": 11,
"title": "Reksadana Pendapatan Tetap",
"section": 3
},
{
"count": 11,
"title": "Reksadana Pasar Uang",
"section": 4
},
{
"count": 11,
"title": "Reksadana Terproteksi",
"section": 5
},
{
"count": 11,
"title": "Reksadana ETF",
"section": 6
},
{
"count": 11,
"title": "Reksadana Indeks",
"section": 7
}
],
"sectionTitle": "Reksadana Campuran"
}
```
---
### GDP
Gross domestic product by quarter and year, current and constant prices.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:kontan/pdb`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `section` | number | query | no | Which table on the page, 1-based. Default 1; `sections` lists them all |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:kontan/pdb?section=1" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:kontan/pdb?section=1", {
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:kontan/pdb?section=1",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 10,
"items": [
{
"q1": "3264523,50 (-0,98)",
"q2": "3396302,60 (4,04)",
"q3": "3444756,70 (1,43)",
"q4": "3474461,20 (0,86)",
"year": "2025",
"total": "13580524,70 (5,11)"
},
{
"q1": "3112906,10 (-0,83)",
"q2": "3230971,10 (3,79)",
"q3": "3279593,40 (1,50)",
"q4": "3296741,70 (0,53)",
"year": "2024",
"total": "12920281,70 (5,03)"
},
{
"q1": "2961512,20 (-0,91)",
"q2": "3075791,50 (3,86)",
"q3": "3124938,50 (1,60)",
"q4": "3139084,50 (0,45)",
"year": "2023",
"total": "12301393,60 (5,05)"
},
{
"q1": "2819330,40 (-0,94)",
"q2": "2924458,00 (3,73)",
"q3": "2977972,90 (1,83)",
"q4": "2988636,50 (0,36)",
"year": "2022",
"total": "11710397,80 (5,31)"
},
{
"q1": "2684447,50 (-0,93)",
"q2": "2773067,20 (3,30)",
"q3": "2816494,70 (1,57)",
"q4": "2846068,50 (1,05)",
"year": "2021",
"total": "11120077,90 (3,70)"
},
{
"q1": "2703027,10 (-2,41)",
"q2": "2589769,20 (-4,19)",
"q3": "2720481,30 (5,05)",
"q4": "2709721,70 (-0,40)",
"year": "2020",
"total": "10722999,30 (-2,07)"
},
{
"q1": "2625180,50 (-0,52)",
"q2": "2735414,10 (4,20)",
"q3": "2818812,70 (3,05)",
"q4": "2769748,10 (-1,74)",
"year": "2019",
"total": "10949155,40 (5,02)"
},
{
"q1": "2498697,50 (-0,41)",
"q2": "2603852,60 (4,21)",
"q3": "2684332,20 (3,09)",
"q4": "2638969,60 (-1,69)",
"year": "2018",
"total": "10425851,90 (5,17)"
}
],
"columns": [
{
"field": "year",
"label": "Tahun"
},
{
"field": "q1",
"label": "Q1 (M)"
},
{
"field": "q2",
"label": "Q2 (M)"
},
{
"field": "q3",
"label": "Q3 (M)"
},
{
"field": "q4",
"label": "Q4 (M)"
},
{
"field": "total",
"label": "Total (M)"
}
],
"dataset": "pdb",
"section": 2,
"provider": "kontan",
"sections": [
{
"count": 10,
"title": "PDB Harga Berlaku",
"section": 1
},
{
"count": 10,
"title": "PDB Harga Konstan",
"section": 2
}
],
"sectionTitle": "PDB Harga Konstan"
}
```
---
### BI Rate
Bank Indonesia policy rate, one point per meeting, back to 2016.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:kontan/bi-rate`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `from` | string | query | no | Keep points on or after this date, YYYY-MM-DD |
| `to` | string | query | no | Keep points on or before this date, YYYY-MM-DD |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:kontan/bi-rate?from=2024-01-01&to=2026-08-20" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:kontan/bi-rate?from=2024-01-01&to=2026-08-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:kontan/bi-rate?from=2024-01-01&to=2026-08-20",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": null,
"from": "2025-01-01",
"count": 20,
"items": [
{
"date": "2025-01-15",
"rate": 5.75
},
{
"date": "2025-02-19",
"rate": 5.75
},
{
"date": "2025-03-19",
"rate": 5.75
},
{
"date": "2025-04-23",
"rate": 5.75
},
{
"date": "2025-05-21",
"rate": 5.5
},
{
"date": "2025-06-18",
"rate": 5.5
},
{
"date": "2025-07-16",
"rate": 5.25
},
{
"date": "2025-08-20",
"rate": 5
}
],
"dataset": "bi-rate",
"provider": "kontan"
}
```
---
### Inflation
Month-on-month inflation alongside the year-on-year rate.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:kontan/inflasi`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `from` | string | query | no | Keep points on or after this date, YYYY-MM-DD |
| `to` | string | query | no | Keep points on or before this date, YYYY-MM-DD |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:kontan/inflasi?from=2024-01-01&to=2026-08-20" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:kontan/inflasi?from=2024-01-01&to=2026-08-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:kontan/inflasi?from=2024-01-01&to=2026-08-20",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": null,
"from": "2025-01-01",
"count": 19,
"items": [
{
"date": "2025-01-31",
"annual": 0.76,
"monthly": 0.76
},
{
"date": "2025-02-28",
"annual": -0.09,
"monthly": 0.48
},
{
"date": "2025-03-31",
"annual": 1.03,
"monthly": 1.65
},
{
"date": "2025-04-30",
"annual": 1.95,
"monthly": 1.17
},
{
"date": "2025-05-31",
"annual": 1.6,
"monthly": 0.37
},
{
"date": "2025-06-30",
"annual": 1.87,
"monthly": 0.19
},
{
"date": "2025-07-31",
"annual": 2.37,
"monthly": 0.3
},
{
"date": "2025-08-31",
"annual": 2.31,
"monthly": 0.08
}
],
"dataset": "inflasi",
"provider": "kontan"
}
```
---
### FX Reserves
Foreign exchange reserves, monthly, in millions of US dollars.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:kontan/devisa`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `from` | string | query | no | Keep points on or after this date, YYYY-MM-DD |
| `to` | string | query | no | Keep points on or before this date, YYYY-MM-DD |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:kontan/devisa?from=2024-01-01&to=2026-08-20" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:kontan/devisa?from=2024-01-01&to=2026-08-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:kontan/devisa?from=2024-01-01&to=2026-08-20",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": null,
"from": "2025-01-01",
"count": 19,
"items": [
{
"date": "2025-01-31",
"reserves": 156085
},
{
"date": "2025-02-28",
"reserves": 154509
},
{
"date": "2025-03-27",
"reserves": 157090
},
{
"date": "2025-04-30",
"reserves": 152467
},
{
"date": "2025-05-28",
"reserves": 152488
},
{
"date": "2025-06-30",
"reserves": 152567
},
{
"date": "2025-07-31",
"reserves": 151988
},
{
"date": "2025-08-29",
"reserves": 150708
}
],
"dataset": "devisa",
"provider": "kontan"
}
```
---
### BI Reference Rate
Daily USD reference rate: sell, buy and the middle rate.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:kontan/kurs-bi`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `from` | string | query | no | Keep points on or after this date, YYYY-MM-DD |
| `to` | string | query | no | Keep points on or before this date, YYYY-MM-DD |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:kontan/kurs-bi?from=2024-01-01&to=2026-08-20" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:kontan/kurs-bi?from=2024-01-01&to=2026-08-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:kontan/kurs-bi?from=2024-01-01&to=2026-08-20",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": null,
"from": "2025-01-01",
"count": 62,
"items": [
{
"buy": 17630,
"mid": 17719,
"date": "2026-05-20",
"sell": 17807
},
{
"buy": 17596,
"mid": 17685,
"date": "2026-05-21",
"sell": 17773
},
{
"buy": 17584,
"mid": 17673,
"date": "2026-05-22",
"sell": 17761
},
{
"buy": 17628,
"mid": 17717,
"date": "2026-05-25",
"sell": 17805
},
{
"buy": 17654,
"mid": 17743,
"date": "2026-05-26",
"sell": 17831
},
{
"buy": 17700,
"mid": 17789,
"date": "2026-05-29",
"sell": 17877
},
{
"buy": 17793,
"mid": 17883,
"date": "2026-06-02",
"sell": 17972
},
{
"buy": 17773,
"mid": 17863,
"date": "2026-06-03",
"sell": 17952
}
],
"dataset": "kurs-bi",
"provider": "kontan"
}
```
---
### Gold and Silver Price
Antam gold and silver prices over a date range, with buyback.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:kontan/logam-mulia`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `metal` | enum(gold|silver) | query | no | Which metal. Default gold |
| `from` | string | query | no | Range start, YYYY-MM-DD. Defaults to the upstream's own recent window |
| `to` | string | query | no | Range end, YYYY-MM-DD |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:kontan/logam-mulia?metal=gold&from=2026-07-01&to=2026-08-20" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:kontan/logam-mulia?metal=gold&from=2026-07-01&to=2026-08-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:kontan/logam-mulia?metal=gold&from=2026-07-01&to=2026-08-20",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": "2026-08-20",
"from": "2026-08-01",
"count": 20,
"items": [
{
"date": "2026-08-01",
"price": 2603000,
"buyback": 2368000
},
{
"date": "2026-08-02",
"price": 2603000,
"buyback": 2368000
},
{
"date": "2026-08-03",
"price": 2610000,
"buyback": 2379000
},
{
"date": "2026-08-04",
"price": 2603000,
"buyback": 2374000
},
{
"date": "2026-08-05",
"price": 2629000,
"buyback": 2400000
},
{
"date": "2026-08-06",
"price": 2679000,
"buyback": 2490000
},
{
"date": "2026-08-07",
"price": 2650000,
"buyback": 2461000
},
{
"date": "2026-08-08",
"price": 2690000,
"buyback": 2511000
}
],
"metal": "gold",
"dataset": "logam-mulia",
"provider": "kontan"
}
```
---
### Infographics
Kontan's data infographics, paged.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:kontan/infografik`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `page` | number | query | no | Page number, 10 items per page. Default 1 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:kontan/infografik?page=1" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:kontan/infografik?page=1", {
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:kontan/infografik?page=1",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"page": 2,
"count": 10,
"items": [
{
"url": "https://pusatdata.kontan.co.id/infografik/256/Cadangan-Devisa-Mei-2025-Hingga-Juni-2026",
"image": "https://fs-media.kontan.co.id/chart/chart_9547320260709101556.jpeg",
"title": "Cadangan Devisa Mei 2025 Hingga Juni 2026",
"topic": "Bank Indonesia",
"source": "kontan.co.id",
"summary": "Cadangan devisa Juni 2026 meningkat jadi US$ 145,59 miliar setelah bulan sebelumnya berada di titik terendah dalam hampir dua tahun",
"publishedAt": "2026-07-09"
},
{
"url": "https://pusatdata.kontan.co.id/infografik/255/Perkembangan-Dana-Kelolaan-Reksadana-Per-Jenis-Hingga-Juni-2026",
"image": "https://fs-media.kontan.co.id/chart/chart_9619420260708024733.jpeg",
"title": "Perkembangan Dana Kelolaan Reksadana Per Jenis Hingga Juni 2026",
"topic": "OJK",
"source": "kontan.co.id",
"summary": "Dari semua jenis reksadana, hanya reksadana terproteksi dan reksadana global yang naik pada Juni 2026",
"publishedAt": "2026-07-08"
},
{
"url": "https://pusatdata.kontan.co.id/infografik/254/Dana-Kelolaan-dan-Unit-Penyertaan-Reksadana-Turun-pada-Juni-2026",
"image": "https://fs-media.kontan.co.id/chart/chart_7331820260708013356.jpeg",
"title": "Dana Kelolaan dan Unit Penyertaan Reksadana Turun pada Juni 2026",
"topic": "OJK",
"source": "kontan.co.id",
"summary": "Dana kelolaan reksadana turun dalam dua bulan beruntun hingga Juni 2026. Sedangkan unit penyertaan reksadana turun tiga bulan beruntun",
"publishedAt": "2026-07-08"
},
{
"url": "https://pusatdata.kontan.co.id/infografik/253/CEO-Index-Juli-2026-Meningkat-Jadi-304",
"image": "https://fs-media.kontan.co.id/chart/chart_9336720260706010116.jpeg",
"title": "CEO Index Juli 2026 Meningkat Jadi 3,04",
"topic": "KONTAN",
"source": "kontan.co.id",
"summary": "Indeks Keyakinan CEO Indonesia atau Indonesia CEO Confidence Index (ICCI) pada kuartal III-2026 kembali masuk ke zona optimisme di level 3,04",
"publishedAt": "2026-07-06"
},
{
"url": "https://pusatdata.kontan.co.id/infografik/252/Defisit-Neraca-Migas-Membesar-Saat-Total-Neraca-Dagang-Defisit-pada-Mei-2026",
"image": "https://fs-media.kontan.co.id/chart/chart_8170120260701041255.jpeg",
"title": "Defisit Neraca Migas Membesar Saat Total Neraca Dagang Defisit pada Mei 2026",
"topic": "BPS",
"source": "kontan.co.id",
"summary": "Defisit neraca migas mencapai rekor tertinggi pada Mei 2026, yakni US$ 3,76 miliar",
"publishedAt": "2026-07-01"
},
{
"url": "https://pusatdata.kontan.co.id/infografik/251/Neraca-Dagang-Indonesia-Mei-2026-Defisit-Untuk-Pertama-Kali-Setelah-72-Bulan",
"image": "https://fs-media.kontan.co.id/chart/chart_6933020260701032444.jpeg",
"title": "Neraca Dagang Indonesia Mei 2026 Defisit Untuk Pertama Kali Setelah 72 Bulan",
"topic": "BPS",
"source": "kontan.co.id",
"summary": "Neraca dagang Indonesia defisit untuk pertama kalinya pada Mei 2926 setelah surplus selama 72 bulan berturut-turut",
"publishedAt": "2026-07-01"
},
{
"url": "https://pusatdata.kontan.co.id/infografik/250/Inflasi-Juni-2026-Mencapai-334-Terangkat-oleh-Kelompok-Transportasi",
"image": "https://fs-media.kontan.co.id/chart/chart_2368220260701124329.jpeg",
"title": "Inflasi Juni 2026 Mencapai 3,34% Terangkat oleh Kelompok Transportasi",
"topic": "BPS",
"source": "kontan.co.id",
"summary": "Inflasi tahunan mencapai 3,34%, terutama dipicu oleh kenaikan harga bensin, tarif angkutan udara, serta pelumas atau oli mesin",
"publishedAt": "2026-07-01"
},
{
"url": "https://pusatdata.kontan.co.id/infografik/249/Rekor-BI-Menggenggam-SBN-Rp-2000-Triliun",
"image": "https://fs-media.kontan.co.id/chart/chart_713020260618090525.jpeg",
"title": "Rekor! BI Menggenggam SBN Rp 2.000 Triliun",
"topic": "DJPPR Kemenkeu",
"source": "kontan.co.id",
"summary": "Kepemilikan Surat Berharga Negara (SBN) oleh Bank Indonesia tembus rekor baru, mencapai Rp 2.044 triliun per 17 Juni 2026",
"publishedAt": "2026-06-18"
}
],
"dataset": "infografik",
"hasMore": true,
"nextPage": 3,
"provider": "kontan"
}
```
---
## KSEI
**Category:** finance · **Slug:** `ksei`
**Detail page:** https://zapi.ink/api/finance/ksei
Kustodian Sentral Efek Indonesia: demografi investor pasar modal, sebaran investor domestik per wilayah, dan kepemilikan efek per instrumen dipecah lokal/asing.
**Tags:** ksei, investor, kepemilikan, scripless, indonesia, finance
### Investor Demographics
Demografi investor individu per bulan — jenis kelamin, usia, pendidikan, pekerjaan, atau penghasilan. Aset dilaporkan dalam triliun rupiah.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:ksei/demographics`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `by` | enum(gender|age|education|occupation|income) | query | no | Breakdown to return. Default gender. |
| `month` | string | query | no | Keep only this month (YYYY-MM). Omit for the whole published series. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:ksei/demographics?by=age&month=2026-04" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:ksei/demographics?by=age&month=2026-04", {
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:ksei/demographics?by=age&month=2026-04",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 22,
"items": [
{
"group": "< 30 Years Old",
"month": "2026-06",
"investors": 15643100,
"totalAsset": 64.88
},
{
"group": "> 60 Years Old",
"month": "2026-06",
"investors": 798396,
"totalAsset": 862.25
},
{
"group": "31 - 40 Years Old",
"month": "2026-06",
"investors": 7140574,
"totalAsset": 238.45
},
{
"group": "41 - 50 Years Old",
"month": "2026-06",
"investors": 3691232,
"totalAsset": 230.68
},
{
"group": "51 - 60 Years Old",
"month": "2026-06",
"investors": 1629234,
"totalAsset": 313
},
{
"group": "< 30 Years Old",
"month": "2026-05",
"investors": 15057862,
"totalAsset": 69.99
},
{
"group": "> 60 Years Old",
"month": "2026-05",
"investors": 761503,
"totalAsset": 921.57
},
{
"group": "31 - 40 Years Old",
"month": "2026-05",
"investors": 6826882,
"totalAsset": 233.5
}
],
"source": "ksei",
"assetUnit": "IDR trillion",
"breakdown": "age",
"latestMonth": "2026-06"
}
```
---
### Domestic Distribution
Sebaran investor domestik per wilayah: porsi jumlah investor, porsi aset, dan total asetnya.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:ksei/distribution`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `month` | string | query | no | Keep only this month (YYYY-MM). Omit for the whole published series. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:ksei/distribution?month=2026-05" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:ksei/distribution?month=2026-05", {
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:ksei/distribution?month=2026-05",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 25,
"items": [
{
"area": "Jawa",
"month": "2026-06",
"assetPct": 94.17,
"totalAsset": 5148.75,
"investorPct": 65.41
},
{
"area": "Sumatera",
"month": "2026-06",
"assetPct": 2.52,
"totalAsset": 137.55,
"investorPct": 18.93
},
{
"area": "Kalimantan",
"month": "2026-06",
"assetPct": 2.24,
"totalAsset": 122.2,
"investorPct": 5.47
},
{
"area": "Bali, NTT, dan NTB",
"month": "2026-06",
"assetPct": 0.49,
"totalAsset": 26.83,
"investorPct": 3.54
},
{
"area": "Sulawesi",
"month": "2026-06",
"assetPct": 0.44,
"totalAsset": 24.05,
"investorPct": 5.65
},
{
"area": "Maluku dan Papua",
"month": "2026-06",
"assetPct": 0.1,
"totalAsset": 5.7,
"investorPct": 0.94
},
{
"area": "Jawa",
"month": "2026-05",
"assetPct": 94.49,
"totalAsset": 5440.29,
"investorPct": 65.8
},
{
"area": "Sumatera",
"month": "2026-05",
"assetPct": 2.43,
"totalAsset": 140.14,
"investorPct": 18.66
}
],
"source": "ksei",
"assetUnit": "IDR trillion",
"latestMonth": "2026-06"
}
```
---
### Securities Ownership
Kepemilikan efek per instrumen dari berkas posisi bulanan KSEI: porsi lokal dan asing dipecah sembilan tipe investor, dengan dua basis persentase asing yang dinamai eksplisit.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:ksei/ownership`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `date` | string | query | no | Exact publication date (YYYY-MM-DD / YYYYMMDD), or a month (YYYY-MM) to take that month's file. Omit for the latest published. |
| `code` | string | query | no | Keep a single security code. |
| `type` | string | query | no | Keep one instrument type — EQUITY, CORPORATE BOND, SUKUK, MUTUAL FUND, … |
| `length` | number | query | no | Rows to return (default 50, max 1000) |
| `start` | number | query | no | Row offset (default 0) |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:ksei/ownership?date=2026-07-31&code=BBCA&type=EQUITY&length=50&start=0" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:ksei/ownership?date=2026-07-31&code=BBCA&type=EQUITY&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:ksei/ownership?date=2026-07-31&code=BBCA&type=EQUITY&length=50&start=0",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"code": "BBCA",
"date": "2026-07-31",
"items": [
{
"code": "BBCA",
"date": "2026-07-31",
"type": "EQUITY",
"local": {
"total": 16323584367,
"others": 14283100,
"corporate": 639358985,
"insurance": 2406061790,
"foundation": 73486060,
"individual": 11091661113,
"mutualFund": 1223560978,
"securities": 110263741,
"pensionFund": 327545000,
"financialInstitution": 437363600
},
"price": 6325,
"foreign": {
"total": 36130106753,
"others": 5736807195,
"corporate": 989616284,
"insurance": 651011685,
"foundation": 299882405,
"individual": 326311580,
"mutualFund": 20232370180,
"securities": 434821897,
"pensionFund": 4948602260,
"financialInstitution": 2510683267
},
"outstanding": 123275050000,
"recordedTotal": 52453691120,
"foreignPctOfRecorded": 68.88,
"foreignPctOfOutstanding": 29.31
}
],
"start": 0,
"total": 1,
"length": 50,
"source": "ksei"
}
```
---
## Lbma
**Category:** finance · **Slug:** `lbma`
**Detail page:** https://zapi.ink/api/finance/lbma
The running average the auction operator publishes per metal and session.
**Tags:** finance, lbma
### Average
The running average the auction operator publishes per metal and session.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:lbma/average`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `metal` | enum(gold|silver|platinum|palladium) | query | no | Keep a single metal. Omit for all four |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:lbma/average?metal=gold" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:lbma/average?metal=gold", {
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:lbma/average?metal=gold",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 2,
"items": [
{
"metal": "gold",
"price": 4570.92,
"fixing": "am"
},
{
"metal": "gold",
"price": 4572.355,
"fixing": "pm"
}
],
"metal": "gold",
"dataset": "average",
"currency": "usd",
"provider": "lbma"
}
```
---
### Prices
LBMA daily benchmark fixings — the auction prices themselves, back to 1968.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:lbma/prices`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `metal` | enum(gold|silver|platinum|palladium) | query | no | Metal to read. Default gold |
| `fixing` | enum(am|pm) | query | no | Auction session. Default am. Silver has a single daily auction and rejects this |
| `currency` | enum(usd|gbp|eur) | query | no | Quote currency. Default usd. EUR is null before 1999 |
| `window` | enum(full|limited) | query | no | full is the whole series, limited is the last ~14 fixings. Default full |
| `from` | string | query | no | Earliest date to keep, YYYY-MM-DD |
| `to` | string | query | no | Latest date to keep, YYYY-MM-DD |
| `order` | enum(desc|asc) | query | no | desc is newest first. Default desc |
| `page` | number | query | no | Page number, 1-based. Default 1 |
| `limit` | number | query | no | Rows per page. Default 50, max 500 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:lbma/prices?metal=gold&fixing=am¤cy=usd&window=full&from=2026-01-01&to=2026-08-19&order=desc&page=1&limit=50" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:lbma/prices?metal=gold&fixing=am¤cy=usd&window=full&from=2026-01-01&to=2026-08-19&order=desc&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:lbma/prices?metal=gold&fixing=am¤cy=usd&window=full&from=2026-01-01&to=2026-08-19&order=desc&page=1&limit=50",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": null,
"from": null,
"page": 1,
"count": 50,
"items": [
{
"date": "2026-08-20",
"price": 4487.6
},
{
"date": "2026-08-19",
"price": 4355.75
},
{
"date": "2026-08-18",
"price": 4388.75
},
{
"date": "2026-08-17",
"price": 4393.6
},
{
"date": "2026-08-14",
"price": 4349.9
},
{
"date": "2026-08-13",
"price": 4380.45
},
{
"date": "2026-08-12",
"price": 4413.2
},
{
"date": "2026-08-11",
"price": 4372.2
}
],
"metal": "gold",
"order": "desc",
"total": 14818,
"fixing": "am",
"window": "full",
"dataset": "prices",
"hasMore": true,
"currency": "usd",
"nextPage": 2,
"provider": "lbma"
}
```
---
### Today
The latest published fixing for all four metals in USD, GBP and EUR.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:lbma/today`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `metal` | enum(gold|silver|platinum|palladium) | query | no | Keep a single metal. Omit for all four |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:lbma/today?metal=gold" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:lbma/today?metal=gold", {
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:lbma/today?metal=gold",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 2,
"items": [
{
"eur": 3833.76,
"gbp": 3288.96,
"usd": 4487.6,
"metal": "gold",
"fixing": "am",
"timestamp": "20/08 11:00:00"
},
{
"eur": 3839.65,
"gbp": 3287.8,
"usd": 4482.95,
"metal": "gold",
"fixing": "pm",
"timestamp": "20/08 11:00:00"
}
],
"metal": "gold",
"dataset": "today",
"provider": "lbma"
}
```
---
### Vault Holdings
London vault tonnage, monthly since July 2016 — gold and silver held in the
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:lbma/vault-holdings`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `from` | string | query | no | Earliest month to keep, YYYY-MM or YYYY-MM-DD |
| `to` | string | query | no | Latest month to keep, YYYY-MM or YYYY-MM-DD |
| `order` | enum(desc|asc) | query | no | desc is newest first. Default desc |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:lbma/vault-holdings?from=2024-01&to=2026-08&order=desc" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:lbma/vault-holdings?from=2024-01&to=2026-08&order=desc", {
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:lbma/vault-holdings?from=2024-01&to=2026-08&order=desc",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": null,
"from": "2024-01",
"unit": "thousand troy ounces",
"count": 31,
"items": [
{
"date": "2026-07-02",
"gold": 306527,
"silver": 907059
},
{
"date": "2026-06-02",
"gold": 304285,
"silver": 902843
},
{
"date": "2026-05-02",
"gold": 301968,
"silver": 887725
},
{
"date": "2026-04-02",
"gold": 301320,
"silver": 882655
},
{
"date": "2026-03-02",
"gold": 300260,
"silver": 883743
},
{
"date": "2026-02-02",
"gold": 296096,
"silver": 870170
},
{
"date": "2026-01-02",
"gold": 294440,
"silver": 891511
},
{
"date": "2025-12-02",
"gold": 292777,
"silver": 894357
}
],
"order": "desc",
"dataset": "vault-holdings",
"provider": "lbma"
}
```
---
### Clearing
London clearing statistics, monthly since October 1996 — the volume, transfer
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:lbma/clearing`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `from` | string | query | no | Earliest month to keep, YYYY-MM or YYYY-MM-DD |
| `to` | string | query | no | Latest month to keep, YYYY-MM or YYYY-MM-DD |
| `order` | enum(desc|asc) | query | no | desc is newest first. Default desc |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:lbma/clearing?from=2024-01&to=2026-08&order=desc" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:lbma/clearing?from=2024-01&to=2026-08&order=desc", {
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:lbma/clearing?from=2024-01&to=2026-08&order=desc",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": null,
"from": "2024-01",
"count": 30,
"items": [
{
"date": "2026-06-02",
"goldTransfers": 7227,
"goldVolumeMoz": 16.7,
"goldValueUsdBn": 70.9,
"silverTransfers": 2114,
"silverVolumeMoz": 192.8,
"silverValueUsdBn": 12.9
},
{
"date": "2026-05-02",
"goldTransfers": 6464,
"goldVolumeMoz": 16.1,
"goldValueUsdBn": 73.7,
"silverTransfers": 2312,
"silverVolumeMoz": 194.9,
"silverValueUsdBn": 15.2
},
{
"date": "2026-04-02",
"goldTransfers": 6902,
"goldVolumeMoz": 15.7,
"goldValueUsdBn": 74.2,
"silverTransfers": 1935,
"silverVolumeMoz": 189.4,
"silverValueUsdBn": 14.3
},
{
"date": "2026-03-02",
"goldTransfers": 8679,
"goldVolumeMoz": 17.9,
"goldValueUsdBn": 87,
"silverTransfers": 2695,
"silverVolumeMoz": 218,
"silverValueUsdBn": 17.1
},
{
"date": "2026-02-02",
"goldTransfers": 8578,
"goldVolumeMoz": 17.7,
"goldValueUsdBn": 88.7,
"silverTransfers": 3506,
"silverVolumeMoz": 200.6,
"silverValueUsdBn": 16.6
},
{
"date": "2026-01-02",
"goldTransfers": 7341,
"goldVolumeMoz": 18.2,
"goldValueUsdBn": 86.1,
"silverTransfers": 4575,
"silverVolumeMoz": 287.1,
"silverValueUsdBn": 26.4
},
{
"date": "2025-12-02",
"goldTransfers": 5676,
"goldVolumeMoz": 16.5,
"goldValueUsdBn": 70.9,
"silverTransfers": 3320,
"silverVolumeMoz": 242,
"silverValueUsdBn": 15.6
},
{
"date": "2025-11-02",
"goldTransfers": 6581,
"goldVolumeMoz": 15.4,
"goldValueUsdBn": 63.1,
"silverTransfers": 2459,
"silverVolumeMoz": 213.3,
"silverValueUsdBn": 10.8
}
],
"order": "desc",
"dataset": "clearing",
"provider": "lbma"
}
```
---
## Lotus Archi
**Category:** finance · **Slug:** `lotus-archi`
**Detail page:** https://zapi.ink/api/finance/lotus-archi
Indonesian gold and silver from Lotus Archi — counter prices, per-gram buyback, and daily history for both metals.
**Tags:** gold, silver, indonesia, idr, buyback
### Price board
Every bar and coin quoted today, gold and silver, with the per-gram buyback rate.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:lotus-archi/price`
- **Cache TTL:** 1800s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `metal` | enum(gold|silver|all) | query | no | Restrict to one metal. Default all. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:lotus-archi/price?metal=gold" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:lotus-archi/price?metal=gold", {
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:lotus-archi/price?metal=gold",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"asOf": "2026-08-29",
"count": 20,
"items": [
{
"metal": "gold",
"price": 329000,
"product": "0,1 gr",
"productId": 1,
"weightGram": 0.1,
"weightText": "0,1 gr",
"pricePerGram": 3290000,
"buybackPerGram": 2325000
},
{
"metal": "gold",
"price": 608000,
"product": "0,2 gr",
"productId": 2,
"weightGram": 0.2,
"weightText": "0,2 gr",
"pricePerGram": 3040000,
"buybackPerGram": 2325000
},
{
"metal": "gold",
"price": 1297000,
"product": "0,5 gr",
"productId": 3,
"weightGram": 0.5,
"weightText": "0,5 gr",
"pricePerGram": 2594000,
"buybackPerGram": 2325000
},
{
"metal": "gold",
"price": 1297000,
"product": "0,5 gr WB",
"productId": 4,
"weightGram": 0.5,
"weightText": "0,5 gr WB",
"pricePerGram": 2594000,
"buybackPerGram": 2325000
},
{
"metal": "gold",
"price": 2493000,
"product": "1 gr",
"productId": 5,
"weightGram": 1,
"weightText": "1 gr",
"pricePerGram": 2493000,
"buybackPerGram": 2325000
},
{
"metal": "gold",
"price": 4904000,
"product": "2 gr",
"productId": 6,
"weightGram": 2,
"weightText": "2 gr",
"pricePerGram": 2452000,
"buybackPerGram": 2325000
},
{
"metal": "gold",
"price": 12111000,
"product": "5 gr",
"productId": 7,
"weightGram": 5,
"weightText": "5 gr",
"pricePerGram": 2422200,
"buybackPerGram": 2325000
},
{
"metal": "gold",
"price": 24167000,
"product": "10 gr",
"productId": 8,
"weightGram": 10,
"weightText": "10 gr",
"pricePerGram": 2416700,
"buybackPerGram": 2325000
}
],
"metal": "all",
"total": 20,
"dataset": "price",
"currency": "IDR",
"provider": "lotus-archi",
"goldPricePerGram": 2493000,
"goldBuybackPerGram": 2325000,
"silverPricePerGram": 62000,
"silverBuybackPerGram": 42000
}
```
---
### Buyback
Per-gram buyback rate per metal — one rate for every bar size.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:lotus-archi/buyback`
- **Cache TTL:** 1800s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `metal` | enum(gold|silver|all) | query | no | Restrict to one metal. Default all. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:lotus-archi/buyback?metal=gold" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:lotus-archi/buyback?metal=gold", {
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:lotus-archi/buyback?metal=gold",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"asOf": "2026-08-29",
"count": 2,
"items": [
{
"date": "2026-08-29",
"metal": "gold",
"pricePerGram": 2493000,
"spreadPerGram": 168000,
"buybackPerGram": 2325000
},
{
"date": "2026-08-29",
"metal": "silver",
"pricePerGram": 62000,
"spreadPerGram": 20000,
"buybackPerGram": 42000
}
],
"metal": "all",
"dataset": "buyback",
"currency": "IDR",
"provider": "lotus-archi",
"appliesToAllDenominations": true
}
```
---
### Gold history
Daily gold price and buyback, back to February 2025.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:lotus-archi/gold-history`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `from` | string | query | no | Earliest date to include, YYYY-MM-DD. |
| `to` | string | query | no | Latest date to include, YYYY-MM-DD. |
| `order` | enum(asc|desc) | query | no | Oldest first (asc) or newest first (desc). Default desc. |
| `page` | number | query | no | Page of days. Default 1. |
| `limit` | number | query | no | Days per page. Default 100, max 1000. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:lotus-archi/gold-history?from=2026-01-01&to=2026-08-29&order=desc&page=1&limit=100" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:lotus-archi/gold-history?from=2026-01-01&to=2026-08-29&order=desc&page=1&limit=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:lotus-archi/gold-history?from=2026-01-01&to=2026-08-29&order=desc&page=1&limit=100",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": "2026-08-29",
"from": "2026-01-01",
"page": 1,
"count": 10,
"items": [
{
"date": "2026-08-29",
"recordId": 453,
"pricePerGram": 2493000,
"spreadPerGram": 168000,
"buybackPerGram": 2325000
},
{
"date": "2026-08-28",
"recordId": 452,
"pricePerGram": 2530000,
"spreadPerGram": 165000,
"buybackPerGram": 2365000
},
{
"date": "2026-08-27",
"recordId": 451,
"pricePerGram": 2548000,
"spreadPerGram": 163000,
"buybackPerGram": 2385000
},
{
"date": "2026-08-26",
"recordId": 450,
"pricePerGram": 2581000,
"spreadPerGram": 171000,
"buybackPerGram": 2410000
},
{
"date": "2026-08-25",
"recordId": 449,
"pricePerGram": 2593000,
"spreadPerGram": 173000,
"buybackPerGram": 2420000
},
{
"date": "2026-08-24",
"recordId": 448,
"pricePerGram": 2591000,
"spreadPerGram": 181000,
"buybackPerGram": 2410000
},
{
"date": "2026-08-22",
"recordId": 447,
"pricePerGram": 2607000,
"spreadPerGram": 197000,
"buybackPerGram": 2410000
},
{
"date": "2026-08-21",
"recordId": 446,
"pricePerGram": 2591000,
"spreadPerGram": 196000,
"buybackPerGram": 2395000
}
],
"metal": "gold",
"order": "desc",
"total": 179,
"covered": 423,
"dataset": "gold-history",
"hasMore": true,
"currency": "IDR",
"nextPage": 2,
"provider": "lotus-archi",
"unitGram": 1,
"latestDate": "2026-08-29",
"earliestDate": "2025-02-27"
}
```
---
### Silver history
Daily silver price and buyback, back to August 2025.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:lotus-archi/silver-history`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `from` | string | query | no | Earliest date to include, YYYY-MM-DD. |
| `to` | string | query | no | Latest date to include, YYYY-MM-DD. |
| `order` | enum(asc|desc) | query | no | Oldest first (asc) or newest first (desc). Default desc. |
| `page` | number | query | no | Page of days. Default 1. |
| `limit` | number | query | no | Days per page. Default 100, max 1000. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:lotus-archi/silver-history?from=2026-01-01&to=2026-08-29&order=desc&page=1&limit=100" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:lotus-archi/silver-history?from=2026-01-01&to=2026-08-29&order=desc&page=1&limit=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:lotus-archi/silver-history?from=2026-01-01&to=2026-08-29&order=desc&page=1&limit=100",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": "2026-08-29",
"from": "2026-01-01",
"page": 1,
"count": 10,
"items": [
{
"date": "2026-08-29",
"recordId": 191,
"pricePerGram": 62000,
"spreadPerGram": 20000,
"buybackPerGram": 42000
},
{
"date": "2026-08-28",
"recordId": 190,
"pricePerGram": 62000,
"spreadPerGram": 20000,
"buybackPerGram": 42000
},
{
"date": "2026-08-27",
"recordId": 189,
"pricePerGram": 62000,
"spreadPerGram": 20000,
"buybackPerGram": 42000
},
{
"date": "2026-08-26",
"recordId": 188,
"pricePerGram": 63000,
"spreadPerGram": 20000,
"buybackPerGram": 43000
},
{
"date": "2026-08-25",
"recordId": 187,
"pricePerGram": 62000,
"spreadPerGram": 20000,
"buybackPerGram": 42000
},
{
"date": "2026-08-24",
"recordId": 186,
"pricePerGram": 62000,
"spreadPerGram": 20000,
"buybackPerGram": 42000
},
{
"date": "2026-08-22",
"recordId": 185,
"pricePerGram": 63000,
"spreadPerGram": 20000,
"buybackPerGram": 43000
},
{
"date": "2026-08-21",
"recordId": 184,
"pricePerGram": 62000,
"spreadPerGram": 20000,
"buybackPerGram": 42000
}
],
"metal": "silver",
"order": "desc",
"total": 117,
"covered": 191,
"dataset": "silver-history",
"hasMore": true,
"currency": "IDR",
"nextPage": 2,
"provider": "lotus-archi",
"unitGram": 1,
"latestDate": "2026-08-29",
"earliestDate": "2025-08-22"
}
```
---
## MacroMicro
**Category:** finance · **Slug:** `macromicro`
**Detail page:** https://zapi.ink/api/finance/macromicro
Macro and market charts, indicators, calendars and 13F filings from MacroMicro.
**Tags:** macro, economics, charts, indicators, calendar, 13f, markets
### Chart
Series values, render config and the source stat ids behind them, for up to 12 charts in one call.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:macromicro/chart/:id`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `id` | string | path | yes | Chart ids, comma-separated, up to 12. Take them from `charts`, `collection` or `market`. |
| `from` | string | query | no | Drop observations before this date, YYYY-MM-DD. |
| `to` | string | query | no | Drop observations after this date, YYYY-MM-DD. |
| `length` | number | query | no | Observations per series, newest first (default 100, max 20000) |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:macromicro/chart/:id?from=2020-01-01&to=2026-08-29&length=100" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:macromicro/chart/:id?from=2020-01-01&to=2026-08-29&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:macromicro/chart/:id?from=2020-01-01&to=2026-08-29&length=100",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": null,
"from": "2015-01-01",
"count": 2,
"items": [
{
"url": "https://en.macromicro.me/charts/55744/global-citi-earnings-revision-index",
"slug": "global-citi-earnings-revision-index",
"type": 1,
"nameEn": "World - Citi Earnings Revision Index",
"nameSc": "全球-花旗盈利修正指数",
"nameTc": "全球-花旗盈利修正指數",
"series": [
{
"color": "#3bafda",
"count": 8,
"stats": [
{
"units": "idx",
"nameEn": "World - Citigroup Earnings Revision Index",
"nameSc": "全球-花旗盈利修正指数",
"nameTc": "全球-花旗盈利修正指數",
"statId": 22951,
"category": 21,
"frequency": "W",
"operation": "lin",
"categoryV2": 100003,
"aggregation": "eop",
"frequencyName": "Weekly",
"unitsOriginal": "idx",
"frequencyOriginal": "W"
}
],
"total": 607,
"units": "idx",
"nameEn": "World",
"nameSc": "全球-花旗盈利修正指数",
"nameTc": "全球-花旗盈利修正指數",
"axisType": "linear",
"lastDate": "2026-08-14",
"lineType": "column",
"firstDate": "2015-01-04",
"frequency": "W",
"lineWidth": 2,
"operation": "lin",
"axisOffset": 0,
"axisPosition": 1,
"axisReversed": false,
"observations": [
{
"date": "2026-08-14",
"value": 0.18
},
{
"date": "2026-08-07",
"value": 0.26
},
{
"date": "2026-07-31",
"value": 0.2
},
{
"date": "2026-07-24",
"value": 0.18
},
{
"date": "2026-07-17",
"value": 0.14
},
{
"date": "2026-07-10",
"value": 0.12
},
{
"date": "2026-07-03",
"value": 0.12
},
{
"date": "2026-06-26",
"value": 0.19
}
],
"frequencyName": "Weekly",
"unitsOriginal": "idx",
"frequencyOriginal": "W"
},
{
"color": "#e9573f",
"count": 8,
"stats": [
{
"units": "idx",
"nameEn": "DM - Citigroup Earnings Revision Index",
"nameSc": "成熟市场-花旗盈利修正指数",
"nameTc": "成熟市場-花旗盈利修正指數",
"statId": 22952,
"category": 21,
"frequency": "W",
"operation": "lin",
"categoryV2": 100003,
"aggregation": "eop",
"frequencyName": "Weekly",
"unitsOriginal": "idx",
"frequencyOriginal": "W"
}
],
"total": 607,
"units": "idx",
"nameEn": "Developed Markets",
"nameSc": "成熟市场-花旗盈利修正指数",
"nameTc": "成熟市場-花旗盈利修正指數",
"axisType": "linear",
"lastDate": "2026-08-14",
"lineType": "line",
"firstDate": "2015-01-04",
"frequency": "W",
"lineWidth": 2,
"operation": "lin",
"axisOffset": 0,
"axisPosition": 1,
"axisReversed": false,
"observations": [
{
"date": "2026-08-14",
"value": 0.24
},
{
"date": "2026-08-07",
"value": 0.29
},
{
"date": "2026-07-31",
"value": 0.24
},
{
"date": "2026-07-24",
"value": 0.22
},
{
"date": "2026-07-17",
"value": 0.2
},
{
"date": "2026-07-10",
"value": 0.16
},
{
"date": "2026-07-03",
"value": 0.15
},
{
"date": "2026-06-26",
"value": 0.25
}
],
"frequencyName": "Weekly",
"unitsOriginal": "idx",
"frequencyOriginal": "W"
},
{
"color": "#f6bb42",
"count": 8,
"stats": [
{
"units": "idx",
"nameEn": "EM - Citigroup Earnings Revision Index",
"nameSc": "新兴市场-花旗盈利修正指数",
"nameTc": "新興市場-花旗盈利修正指數",
"statId": 22953,
"category": 21,
"frequency": "W",
"operation": "lin",
"categoryV2": 100003,
"aggregation": "eop",
"frequencyName": "Weekly",
"unitsOriginal": "idx",
"frequencyOriginal": "W"
}
],
"total": 607,
"units": "idx",
"nameEn": "Emerging Markets",
"nameSc": "新兴市场-花旗盈利修正指数",
"nameTc": "新興市場-花旗盈利修正指數",
"axisType": "linear",
"lastDate": "2026-08-14",
"lineType": "line",
"firstDate": "2015-01-04",
"frequency": "W",
"lineWidth": 2,
"operation": "lin",
"axisOffset": 0,
"axisPosition": 1,
"axisReversed": false,
"observations": [
{
"date": "2026-08-14",
"value": 0.09
},
{
"date": "2026-08-07",
"value": 0.18
},
{
"date": "2026-07-31",
"value": 0.08
},
{
"date": "2026-07-24",
"value": 0.09
},
{
"date": "2026-07-17",
"value": -0.04
},
{
"date": "2026-07-10",
"value": 0.04
},
{
"date": "2026-07-03",
"value": 0.07
},
{
"date": "2026-06-26",
"value": 0.01
}
],
"frequencyName": "Weekly",
"unitsOriginal": "idx",
"frequencyOriginal": "W"
},
{
"color": "#70ca63",
"count": 8,
"stats": [
{
"units": "idx",
"nameEn": "Asia Pacific (ex. Japan) - Citigroup Earnings Revision Index",
"nameSc": "亚太(排除日本)-花旗盈利修正指数",
"nameTc": "亞太(排除日本)-花旗盈利修正指數",
"statId": 22958,
"category": 21,
"frequency": "W",
"operation": "lin",
"categoryV2": 100003,
"aggregation": "eop",
"frequencyName": "Weekly",
"unitsOriginal": "idx",
"frequencyOriginal": "W"
}
],
"total": 607,
"units": "idx",
"nameEn": "Asia Pacific (ex. Japan)",
"nameSc": "亚太(排除日本)-花旗盈利修正指数",
"nameTc": "亞太(排除日本)-花旗盈利修正指數",
"axisType": "linear",
"lastDate": "2026-08-14",
"lineType": "line",
"firstDate": "2015-01-04",
"frequency": "W",
"lineWidth": 2,
"operation": "lin",
"axisOffset": 0,
"axisPosition": 1,
"axisReversed": false,
"observations": [
{
"date": "2026-08-14",
"value": -0.09
},
{
"date": "2026-08-07",
"value": 0.36
},
{
"date": "2026-07-31",
"value": -0.18
},
{
"date": "2026-07-24",
"value": -0.11
},
{
"date": "2026-07-17",
"value": -0.2
},
{
"date": "2026-07-10",
"value": -0.14
},
{
"date": "2026-07-03",
"value": -0.23
},
{
"date": "2026-06-26",
"value": -0.36
}
],
"frequencyName": "Weekly",
"unitsOriginal": "idx",
"frequencyOriginal": "W"
}
],
"chartId": 55744,
"seriesCount": 4,
"sortBarChart": false,
"descriptionEn": "The Citi Earnings Revision Index is calculated as “Proportion of Companies Revising EPS (%)” − “Proportion of Companies Revising EPS Down (%)” (compared to last week). When the index is above the zero axis, it means that analysts on average are optimistic about the outlook for corporate earnings, and vice versa, it means that analysts are relatively pessimistic.",
"descriptionSc": "花旗盈利修正指数计算方式为「上调 EPS 的公司比例(%)」−「下调 EPS 的公司比例(%)」(与上周相比)。该指数位于零轴之上时,代表平均而言分析师对于企业盈利展望持乐观态度,反之则表示相对而言分析师持较悲观看法。",
"descriptionTc": "花旗盈利修正指數計算方式為「上調 EPS 的公司比例(%)」−「下調 EPS 的公司比例(%)」(與上週相比)。該指數位於零軸之上時,代表平均而言分析師對於企業盈利展望持樂觀態度,反之則表示相對而言分析師持較悲觀看法。",
"valueDecimals": 2
},
{
"url": "https://en.macromicro.me/charts/26279/us-epu",
"slug": "us-epu",
"type": 1,
"nameEn": "US - Economic Policy Uncertainty Index",
"nameSc": "美国-经济不确定指数",
"nameTc": "美國-經濟不確定指數",
"series": [
{
"color": "#3bafda",
"count": 8,
"stats": [
{
"units": "idx",
"nameEn": "US - Economic Policy Uncertainty Index",
"nameSc": "美国-经济不确定指数",
"nameTc": "美國-經濟不確定指數",
"statId": 7909,
"country": "us",
"category": 1,
"frequency": "D",
"operation": "lin",
"categoryV2": 100001,
"aggregation": "eop",
"frequencyName": "Daily",
"unitsOriginal": "idx",
"frequencyOriginal": "D"
}
],
"total": 4258,
"units": "idx",
"nameEn": "US Economic Policy Uncertainty Index",
"nameSc": "美国-经济不确定指数",
"nameTc": "美國-經濟不確定指數",
"axisType": "linear",
"lastDate": "2026-08-28",
"lineType": "line",
"firstDate": "2015-01-01",
"frequency": "D",
"lineWidth": 2,
"operation": "lin",
"axisOffset": 0,
"operationN": "7",
"axisPosition": 1,
"axisReversed": false,
"observations": [
{
"date": "2026-08-28",
"value": 252.08
},
{
"date": "2026-08-27",
"value": 168.85
},
{
"date": "2026-08-26",
"value": 270.71
},
{
"date": "2026-08-25",
"value": 164.93
},
{
"date": "2026-08-24",
"value": 346.67
},
{
"date": "2026-08-23",
"value": 265.3
},
{
"date": "2026-08-22",
"value": 174.21
},
{
"date": "2026-08-21",
"value": 153.47
}
],
"frequencyName": "Daily",
"unitsOriginal": "idx",
"frequencyOriginal": "D"
},
{
"color": "#e9573f",
"count": 8,
"stats": [
{
"units": "idx",
"nameEn": "US - Economic Policy Uncertainty Index (MA30)",
"nameSc": "美国-经济不确定指数(MA30)",
"nameTc": "美國-經濟不確定指數(MA30)",
"statId": 7911,
"country": "us",
"category": 1,
"frequency": "D",
"operation": "lin",
"categoryV2": 100001,
"aggregation": "eop",
"frequencyName": "Daily",
"unitsOriginal": "idx",
"frequencyOriginal": "D"
}
],
"total": 4258,
"units": "idx",
"nameEn": "US Economic Policy Uncertainty Index (MA30)",
"nameSc": "美国-经济不确定指数(MA30)",
"nameTc": "美國-經濟不確定指數(MA30)",
"axisType": "linear",
"lastDate": "2026-08-28",
"lineType": "line",
"firstDate": "2015-01-01",
"frequency": "D",
"lineWidth": 2,
"operation": "lin",
"axisOffset": 0,
"axisPosition": 1,
"axisReversed": false,
"observations": [
{
"date": "2026-08-28",
"value": 243.5297
},
{
"date": "2026-08-27",
"value": 242.9523
},
{
"date": "2026-08-26",
"value": 246.3347
},
{
"date": "2026-08-25",
"value": 248.1603
},
{
"date": "2026-08-24",
"value": 250.773
},
{
"date": "2026-08-23",
"value": 248.8827
},
{
"date": "2026-08-22",
"value": 264.1837
},
{
"date": "2026-08-21",
"value": 264.849
}
],
"frequencyName": "Daily",
"unitsOriginal": "idx",
"frequencyOriginal": "D"
}
],
"chartId": 26279,
"country": "us",
"seriesCount": 2,
"sortBarChart": false,
"descriptionEn": "The primary measure for this index is the number of articles that contain at least one term from each of 3 sets of terms. The first set is economic or economy. The second is uncertain or uncertainty. The third set is legislation or deficit or regulation or congress or federal reserve or white house.",
"descriptionSc": "美国经济不确定指数以文本探勘的方式分析美国超过 1000 报纸,若当日报纸提到关于经济、不确定性、法规、国会、美联储、白宫等有关词彙越多,该指数越高。\n\n该指标以新闻报导的角度去衡量美国经济不确定性的状况,若该指数越高,代表美国经济不确定性较高。",
"descriptionTc": "美國經濟不確定指數以文本探勘的方式分析美國超過 1000 報紙,若當日報紙提到關於經濟、不確定性、法規、國會、聯準會、白宮等有關詞彙越多,該指數越高。\n\n該指標以新聞報導的角度去衡量美國經濟不確定性的狀況,若該指數越高,代表美國經濟不確定性較高。",
"valueDecimals": 2
}
],
"total": 2,
"charts": [
55744,
26279
],
"length": 8,
"dataset": "chart",
"missing": [],
"provider": "macromicro",
"resolved": [
55744,
26279
]
}
```
---
### Charts
The full chart catalogue — id, slug and URL for every chart the site publishes.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:macromicro/charts`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `query` | string | query | no | Keep only charts whose slug contains this text. |
| `country` | string | query | no | Keep only charts whose slug starts with this country prefix. |
| `page` | number | query | no | Result page (default 1) |
| `count` | number | query | no | Charts per page (default 100, max 500) |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:macromicro/charts?query=inflation&country=us&page=1&count=100" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:macromicro/charts?query=inflation&country=us&page=1&count=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:macromicro/charts?query=inflation&country=us&page=1&count=100",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"page": 1,
"count": 8,
"items": [
{
"url": "https://en.macromicro.me/charts/152511/us-pce-price-index-change-in-inflation-distribution",
"slug": "us-pce-price-index-change-in-inflation-distribution",
"chartId": 152511
},
{
"url": "https://en.macromicro.me/charts/152510/us-pce-price-index-inflation-distribution",
"slug": "us-pce-price-index-inflation-distribution",
"chartId": 152510
},
{
"url": "https://en.macromicro.me/charts/152487/us-inflation-shock-momentum-index",
"slug": "us-inflation-shock-momentum-index",
"chartId": 152487
},
{
"url": "https://en.macromicro.me/charts/151992/us-trimmed-mean-inflation",
"slug": "us-trimmed-mean-inflation",
"chartId": 151992
},
{
"url": "https://en.macromicro.me/charts/147683/us-money-supply-and-inflation-vs-gold",
"slug": "us-money-supply-and-inflation-vs-gold",
"chartId": 147683
},
{
"url": "https://en.macromicro.me/charts/131622/us-cleveland-fed-expected-inflation",
"slug": "us-cleveland-fed-expected-inflation",
"chartId": 131622
},
{
"url": "https://en.macromicro.me/charts/131621/us-new-york-fed-expected-inflation",
"slug": "us-new-york-fed-expected-inflation",
"chartId": 131621
},
{
"url": "https://en.macromicro.me/charts/116478/us-the-number-of-mentions-of-inflation-in-all-industry",
"slug": "us-the-number-of-mentions-of-inflation-in-all-industry",
"chartId": 116478
}
],
"query": "inflation",
"total": 20,
"country": "us",
"dataset": "charts",
"hasMore": true,
"nextPage": 2,
"provider": "macromicro"
}
```
---
### Series Search
Search the indicator directory: 66,000+ series with country, frequency, units and currency.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:macromicro/series-search`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `query` | string | query | no | Free-text match against the indicator name. |
| `country` | string | query | no | Two-letter country code. |
| `category` | string | query | no | Category id. |
| `categoryParent` | string | query | no | Parent category id. |
| `slug` | string | query | no | Exact indicator slug. |
| `page` | number | query | no | Result page (default 1) |
| `count` | number | query | no | Rows per page (default 100, max 500) |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:macromicro/series-search?query=inflation&country=us&category=21&categoryParent=100003&slug=realgdp&page=1&count=100" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:macromicro/series-search?query=inflation&country=us&category=21&categoryParent=100003&slug=realgdp&page=1&count=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:macromicro/series-search?query=inflation&country=us&category=21&categoryParent=100003&slug=realgdp&page=1&count=100",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"page": 1,
"count": 8,
"items": [
{
"name": "US - Gold - Commercial Net Position",
"slug": "cot-gold-commercial",
"statId": 3070,
"country": "us",
"frequency": "W",
"unitsName": "Number",
"countryName": "United States",
"frequencyName": "Weekly"
},
{
"name": "US - Gold - Non Commercial Net Position",
"slug": "cot-gold-noncommercial",
"statId": 3071,
"country": "us",
"frequency": "W",
"unitsName": "Number",
"countryName": "United States",
"frequencyName": "Weekly"
},
{
"name": "Gold COT Index",
"slug": "gold-cot-index",
"units": "idx",
"statId": 3351,
"country": "us",
"frequency": "W",
"unitsName": "Index",
"countryName": "United States",
"frequencyName": "Weekly"
},
{
"name": "CBOE - Gold ETF Volatility Index [GVZ]",
"slug": "gvz",
"units": "idx",
"statId": 7147,
"country": "us",
"frequency": "D",
"unitsName": "Index",
"countryName": "United States",
"frequencyName": "Daily"
},
{
"name": "CBOE - Equity VIX on Goldman Sachs [VXGS]",
"slug": "vxgs",
"units": "idx",
"statId": 7169,
"country": "us",
"frequency": "D",
"unitsName": "Index",
"countryName": "United States",
"frequencyName": "Daily"
},
{
"name": "CFTC - Gold Futures & Options - Managed Money Net Position",
"slug": "gold-futures-and-options-manage-money-net-position",
"statId": 8308,
"country": "us",
"frequency": "W",
"unitsName": "Number",
"countryName": "United States",
"frequencyName": "Weekly"
},
{
"name": "CFTC - Gold Futures & Options - Managed Money Long Position",
"slug": "gold-futures-and-options-manage-money-long-position",
"statId": 8309,
"country": "us",
"frequency": "W",
"unitsName": "Number",
"countryName": "United States",
"frequencyName": "Weekly"
},
{
"name": "CFTC - Gold Futures & Options - Managed Money Short Position",
"slug": "gold-futures-and-options-manage-money-short-position",
"statId": 8310,
"country": "us",
"frequency": "W",
"unitsName": "Number",
"countryName": "United States",
"frequencyName": "Weekly"
}
],
"query": "gold",
"total": 225,
"country": "us",
"dataset": "series-search",
"hasMore": true,
"category": null,
"nextPage": 2,
"provider": "macromicro"
}
```
---
### Collection
One curated collection and every chart in it, in the site's own order.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:macromicro/collection/:id`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `id` | string | path | yes | Collection id. Take it from a collection URL. |
| `slug` | string | query | no | Collection slug. Optional — the id decides which collection you get. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:macromicro/collection/:id?slug=high-frequency-data" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:macromicro/collection/:id?slug=high-frequency-data", {
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:macromicro/collection/:id?slug=high-frequency-data",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"url": "https://en.macromicro.me/collections/3208/high-frequency-data",
"name": "High Frequency Data",
"slug": "high-frequency-data",
"count": 12,
"items": [
{
"url": "https://en.macromicro.me/charts/22281/flight-tracking",
"slug": "flight-tracking",
"type": 1,
"state": "active",
"nameEn": "World - Global Flight Tracking",
"chartId": 22281,
"updatedAt": "2025-05-19T17:20:18.000Z",
"viewCount": 0,
"commentCount": 3,
"bookmarkCount": 216,
"descriptionEn": "The number of daily flights is calculated by Flightradar counting the number of flights on the website.\n\nCommercial flights: Commercial passenger flights + cargo flights + charter flights + some business jet flights.\nTotal flights: Commercial flights above + rest of business jet flights + private flights + gliders + most helicopter flights + most ambulance flights + government flights + some military flights + drones",
"isMembersOnly": false
},
{
"url": "https://en.macromicro.me/charts/26114/us-tsa-checkpoint",
"slug": "us-tsa-checkpoint",
"type": 1,
"state": "active",
"nameEn": "US - TSA Checkpoint Travel Numbers",
"chartId": 26114,
"country": "us",
"updatedAt": "2023-08-30T04:29:21.000Z",
"viewCount": 0,
"commentCount": 0,
"bookmarkCount": 42,
"descriptionEn": "This chart shows the headcount of travelers everyday at the US borders and the changes in the number of travelers since the pandemic hit.",
"isMembersOnly": false
},
{
"url": "https://en.macromicro.me/charts/947/commodity-ccfi-scfi",
"slug": "commodity-ccfi-scfi",
"type": 1,
"state": "active",
"nameEn": "China - Global & Shanghai Export Containerized Freight Index",
"chartId": 947,
"country": "cn",
"updatedAt": "2026-04-04T09:10:17.000Z",
"viewCount": 0,
"commentCount": 11,
"bookmarkCount": 1238,
"descriptionEn": "First released in 1998 by the Shanghai Shipping Exchange, the China Export Containerized Freight Index (CCFI) is based on the freight rate and shipped volume of 12 selected trade routes around the world, reflecting changes in freight rates. Updated weekly, the index provides a timely reflection of trends in the costs of outbound container shipping from China.\n\nDeparting ports in China include the ports of Dalian, Tianjin, Qingdao, Shanghai, Nanjing, Ningbo, Xiamen, Fuzhou, Shenzhen and Guangzhou. \n\nAs Shanghai is China's maritime hub and an important port of departure for exports, the Shanghai Export Containerized Freight Index (SCFI) is also a key indicator to watch. The index is also updated weekly.\n\nSince China is the world's largest exporter, these freight rate indices can reflect current global trade conditions.\n\nNote: The data is updated weekly and reflects index readings as of the previous Friday.",
"isMembersOnly": false
},
{
"url": "https://en.macromicro.me/charts/26279/us-epu",
"slug": "us-epu",
"type": 1,
"state": "active",
"nameEn": "US - Economic Policy Uncertainty Index",
"chartId": 26279,
"country": "us",
"updatedAt": "2026-08-11T19:43:46.000Z",
"viewCount": 0,
"commentCount": 1,
"bookmarkCount": 60,
"descriptionEn": "The primary measure for this index is the number of articles that contain at least one term from each of 3 sets of terms. The first set is economic or economy. The second is uncertain or uncertainty. The third set is legislation or deficit or regulation or congress or federal reserve or white house.",
"isMembersOnly": true
},
{
"url": "https://en.macromicro.me/charts/135277/chinaeconomic-policy-uncertainty-index",
"slug": "chinaeconomic-policy-uncertainty-index",
"type": 1,
"state": "active",
"nameEn": "China-Economic Policy Uncertainty Index",
"chartId": 135277,
"country": "cn",
"updatedAt": "2025-08-29T13:50:31.000Z",
"viewCount": 0,
"commentCount": 0,
"bookmarkCount": 5,
"isMembersOnly": false
},
{
"url": "https://en.macromicro.me/charts/45866/global-citi-surprise-index",
"slug": "global-citi-surprise-index",
"type": 1,
"state": "active",
"nameEn": "World - Citi Surprise Index",
"chartId": 45866,
"updatedAt": "2026-08-12T18:25:22.000Z",
"viewCount": 0,
"commentCount": 12,
"bookmarkCount": 209,
"descriptionEn": "Citigroup Economic Surprise Index represents the sum of the difference between official economic results and forecasts. With a sum over 0, its economic performance generally beats market expectations. With a sum below 0, its economic conditions are generally worse than expected.\n\nSurprise index readings climb up as economy recovers but declines fast as economy declines.",
"isMembersOnly": true
},
{
"url": "https://en.macromicro.me/charts/55744/global-citi-earnings-revision-index",
"slug": "global-citi-earnings-revision-index",
"type": 1,
"state": "active",
"nameEn": "World - Citi Earnings Revision Index",
"chartId": 55744,
"updatedAt": "2026-03-24T04:01:14.000Z",
"viewCount": 0,
"commentCount": 2,
"bookmarkCount": 123,
"descriptionEn": "The Citi Earnings Revision Index is calculated as “Proportion of Companies Revising EPS (%)” − “Proportion of Companies Revising EPS Down (%)” (compared to last week). When the index is above the zero axis, it means that analysts on average are optimistic about the outlook for corporate earnings, and vice versa, it means that analysts are relatively pessimistic.",
"isMembersOnly": true
},
{
"url": "https://en.macromicro.me/charts/55746/us-eu-jp-citi-earnings-revision-index",
"slug": "us-eu-jp-citi-earnings-revision-index",
"type": 1,
"state": "active",
"nameEn": "US, Europe, Japan - Citi Earnings Revision Index",
"chartId": 55746,
"updatedAt": "2026-01-02T12:53:44.000Z",
"viewCount": 0,
"commentCount": 0,
"bookmarkCount": 51,
"descriptionEn": "The Citi Earnings Revision Index is calculated as “Proportion of Companies with EPS Upgrades (%)” − “Proportion of Companies with EPS Downgrades (%)” (compared to last week). When the index is above the zero axis, it means that analysts on average are optimistic about the outlook for corporate earnings, and vice versa, it means that analysts are relatively pessimistic.",
"isMembersOnly": true
}
],
"total": 12,
"country": null,
"dataset": "collection",
"chartIds": [
22281,
26114,
947,
26279,
135277,
45866,
55744,
55746
],
"isPublic": true,
"language": "tc",
"provider": "macromicro",
"createdAt": "2020-10-30T09:33:13.000Z",
"updatedAt": "2025-07-06T07:41:58.000Z",
"coverStatId": 7250,
"description": "High frequency data",
"collectionId": 3208,
"isSearchable": true,
"isMembersOnly": false
}
```
---
### Market
Live quotes for one asset class with six percentage-change windows and 380 days of raw values.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:macromicro/market/:category`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `category` | enum(stocks|forex|bonds|etf|crypto|volatility|cds|commodities) | path | yes | Asset class: stocks, forex, bonds, etf, crypto, volatility, cds, commodities. |
| `history` | enum(true|false) | query | no | Include the 380-day raw value series on every quote. Default false. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:macromicro/market/:category?history=false" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:macromicro/market/:category?history=false", {
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:macromicro/market/:category?history=false",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 54,
"items": [
{
"name": "Crude Oil (WTI)",
"group": 1,
"statId": 486,
"altName": "Crude Oil (WTI)",
"chartId": 888,
"history": [
{
"date": "2025-08-14",
"value": 63.96
},
{
"date": "2025-08-15",
"value": 62.8
},
{
"date": "2025-08-16",
"value": 62.8
},
{
"date": "2025-08-17",
"value": 61.74
},
{
"date": "2025-08-18",
"value": 63.42
},
{
"date": "2025-08-19",
"value": 62.35
},
{
"date": "2025-08-20",
"value": 63.21
},
{
"date": "2025-08-21",
"value": 63.52
}
],
"chartUrl": "https://en.macromicro.me/charts/888/commodity-wti",
"position": 3,
"statName": "NYMEX - WTI Crude Oil Futures Price",
"chartSlug": "commodity-wti",
"chartType": 1,
"viewCount": 0,
"chartState": "active",
"pctChanges": {
"1D": [
{
"date": "2026-08-28",
"value": 83.4,
"changePercent": -0.16
},
{
"date": "2026-08-27",
"value": 83.53
},
{
"date": "2026-08-26",
"value": 82.23
},
{
"date": "2026-08-25",
"value": 82.36
},
{
"date": "2026-08-24",
"value": 85.01
},
{
"date": "2026-08-23",
"value": 86.02
}
],
"1M": [
{
"date": "2026-08-28",
"value": 83.4,
"changePercent": -1.26
},
{
"date": "2026-07-29",
"value": 84.46
},
{
"date": "2026-06-29",
"value": 70.75
},
{
"date": "2026-05-29",
"value": 87.36
},
{
"date": "2026-04-29",
"value": 106.88
},
{
"date": "2026-03-29",
"value": 102.8
}
],
"1W": [
{
"date": "2026-08-28",
"value": 83.4,
"changePercent": -4.2
},
{
"date": "2026-08-21",
"value": 87.06
},
{
"date": "2026-08-14",
"value": 82.4
},
{
"date": "2026-08-07",
"value": 78.18
},
{
"date": "2026-07-31",
"value": 84.67
},
{
"date": "2026-07-24",
"value": 85.15
}
],
"1Y": [
{
"date": "2026-08-28",
"value": 83.4,
"changePercent": 30.29
},
{
"date": "2025-08-29",
"value": 64.01
},
{
"date": "2024-08-29",
"value": 75.91
},
{
"date": "2023-08-29",
"value": 81.16
},
{
"date": "2022-08-29",
"value": 97.01
},
{
"date": "2021-08-29",
"value": 69.33
}
],
"6M": [
{
"date": "2026-08-28",
"value": 83.4,
"changePercent": 15.85
},
{
"date": "2026-03-01",
"value": 71.99
},
{
"date": "2025-09-01",
"value": 64.64
},
{
"date": "2025-02-28",
"value": 69.76
},
{
"date": "2024-09-01",
"value": 72.98
},
{
"date": "2024-03-01",
"value": 79.97
}
],
"YTD": [
{
"date": "2026-08-28",
"value": 83.4,
"changePercent": 45.07
},
{
"date": "2026-01-01",
"value": 57.49
}
]
},
"chartNameEn": "WTI Crude Oil",
"chartCountry": "us",
"commentCount": 1,
"statCategory": 22,
"bookmarkCount": 168,
"isMembersOnly": false,
"chartUpdatedAt": "2026-06-08T06:43:17.000Z",
"imageUpdatedAt": "2026-08-28T22:59:38.000Z",
"chartDescription": "Market: New York Mercantile Exchange (NYMEX)\nContract Size: 1000 barrels\nPrice Quotation: USD/barrel"
},
{
"name": "Crude Oil (Brent)",
"group": 1,
"statId": 389,
"altName": "Crude Oil (Brent)",
"chartId": 889,
"history": [
{
"date": "2025-08-14",
"value": 66.84
},
{
"date": "2025-08-15",
"value": 65.85
},
{
"date": "2025-08-16",
"value": 65.85
},
{
"date": "2025-08-17",
"value": 65.59
},
{
"date": "2025-08-18",
"value": 66.01
},
{
"date": "2025-08-19",
"value": 65.3
},
{
"date": "2025-08-20",
"value": 66.31
},
{
"date": "2025-08-21",
"value": 67.12
}
],
"chartUrl": "https://en.macromicro.me/charts/889/commodity-brent",
"position": 3,
"statName": "NYMEX - Crude Oil (Brent)",
"chartSlug": "commodity-brent",
"chartType": 1,
"viewCount": 0,
"chartState": "active",
"pctChanges": {
"1D": [
{
"date": "2026-08-28",
"value": 88.1,
"changePercent": -0.47
},
{
"date": "2026-08-27",
"value": 88.52
},
{
"date": "2026-08-26",
"value": 86.94
},
{
"date": "2026-08-25",
"value": 87.27
},
{
"date": "2026-08-24",
"value": 90.54
},
{
"date": "2026-08-23",
"value": 91.59
}
],
"1M": [
{
"date": "2026-08-28",
"value": 88.1,
"changePercent": -2.91
},
{
"date": "2026-07-29",
"value": 90.74
},
{
"date": "2026-06-29",
"value": 73.15
},
{
"date": "2026-05-29",
"value": 92.05
},
{
"date": "2026-04-29",
"value": 118.03
},
{
"date": "2026-03-29",
"value": 108.48
}
],
"1W": [
{
"date": "2026-08-28",
"value": 88.1,
"changePercent": -4.93
},
{
"date": "2026-08-21",
"value": 92.67
},
{
"date": "2026-08-14",
"value": 88.52
},
{
"date": "2026-08-07",
"value": 83.55
},
{
"date": "2026-07-31",
"value": 90.12
},
{
"date": "2026-07-24",
"value": 91.68
}
],
"1Y": [
{
"date": "2026-08-28",
"value": 88.1,
"changePercent": 29.33
},
{
"date": "2025-08-29",
"value": 68.12
},
{
"date": "2024-08-29",
"value": 79.94
},
{
"date": "2023-08-29",
"value": 85.49
},
{
"date": "2022-08-29",
"value": 102.93
},
{
"date": "2021-08-29",
"value": 72.57
}
],
"6M": [
{
"date": "2026-08-28",
"value": 88.1,
"changePercent": 12.43
},
{
"date": "2026-03-01",
"value": 78.36
},
{
"date": "2025-09-01",
"value": 68.15
},
{
"date": "2025-02-28",
"value": 73.18
},
{
"date": "2024-09-01",
"value": 76.32
},
{
"date": "2024-03-01",
"value": 83.55
}
],
"YTD": [
{
"date": "2026-08-28",
"value": 88.1,
"changePercent": 44.78
},
{
"date": "2025-12-31",
"value": 60.85
}
]
},
"chartNameEn": "Brent Crude Oil",
"chartCountry": "gb",
"commentCount": 0,
"statCategory": 22,
"bookmarkCount": 201,
"isMembersOnly": false,
"chartUpdatedAt": "2026-07-07T03:14:24.000Z",
"imageUpdatedAt": "2026-08-28T22:59:31.000Z",
"chartDescription": "Market: New York Mercantile Exchange (NYMEX)\nContract Size: 1000 Barrels\nPrice Quotation: USD/barrel"
},
{
"name": "Natural Gas",
"group": 1,
"statId": 1607,
"altName": "Natural Gas",
"chartId": 890,
"history": [
{
"date": "2025-08-14",
"value": 2.841
},
{
"date": "2025-08-15",
"value": 2.916
},
{
"date": "2025-08-16",
"value": 2.916
},
{
"date": "2025-08-17",
"value": 2.872
},
{
"date": "2025-08-18",
"value": 2.992
},
{
"date": "2025-08-19",
"value": 2.862
},
{
"date": "2025-08-20",
"value": 2.842
},
{
"date": "2025-08-21",
"value": 2.826
}
],
"chartUrl": "https://en.macromicro.me/charts/890/commodity-natural-gas",
"position": 3,
"statName": "NYMEX - Henry Hub Natural Gas Futures Price",
"chartSlug": "commodity-natural-gas",
"chartType": 1,
"viewCount": 0,
"chartState": "active",
"pctChanges": {
"1D": [
{
"date": "2026-08-28",
"value": 2.888,
"changePercent": -0.89
},
{
"date": "2026-08-27",
"value": 2.914
},
{
"date": "2026-08-26",
"value": 2.874
},
{
"date": "2026-08-25",
"value": 2.821
},
{
"date": "2026-08-24",
"value": 2.835
},
{
"date": "2026-08-23",
"value": 2.774
}
],
"1M": [
{
"date": "2026-08-28",
"value": 2.888,
"changePercent": 6.1
},
{
"date": "2026-07-29",
"value": 2.722
},
{
"date": "2026-06-29",
"value": 3.181
},
{
"date": "2026-05-29",
"value": 3.29
},
{
"date": "2026-04-29",
"value": 2.647
},
{
"date": "2026-03-29",
"value": 2.956
}
],
"1W": [
{
"date": "2026-08-28",
"value": 2.888,
"changePercent": 2.74
},
{
"date": "2026-08-21",
"value": 2.811
},
{
"date": "2026-08-14",
"value": 2.733
},
{
"date": "2026-08-07",
"value": 2.662
},
{
"date": "2026-07-31",
"value": 2.747
},
{
"date": "2026-07-24",
"value": 2.888
}
],
"1Y": [
{
"date": "2026-08-28",
"value": 2.888,
"changePercent": -3.64
},
{
"date": "2025-08-29",
"value": 2.997
},
{
"date": "2024-08-29",
"value": 2.529
},
{
"date": "2023-08-29",
"value": 2.556
},
{
"date": "2022-08-29",
"value": 9.353
},
{
"date": "2021-08-29",
"value": 4.471
}
],
"6M": [
{
"date": "2026-08-28",
"value": 2.888,
"changePercent": 0.38
},
{
"date": "2026-03-01",
"value": 2.877
},
{
"date": "2025-09-01",
"value": 2.982
},
{
"date": "2025-02-28",
"value": 3.834
},
{
"date": "2024-09-01",
"value": 2.181
},
{
"date": "2024-03-01",
"value": 1.835
}
],
"YTD": [
{
"date": "2026-08-28",
"value": 2.888,
"changePercent": -20.72
},
{
"date": "2026-01-01",
"value": 3.643
}
]
},
"chartNameEn": "Natural Gas",
"chartCountry": "us",
"commentCount": 0,
"statCategory": 22,
"bookmarkCount": 43,
"isMembersOnly": false,
"chartUpdatedAt": "2025-03-02T12:43:10.000Z",
"imageUpdatedAt": "2026-08-28T22:59:31.000Z",
"chartDescription": "Market: New York Mercantile Exchange (NYMEX)\nContract Size: 10000 MMBtu\nPrice Quotation: USD/MMBtu"
},
{
"name": "Heating Oil",
"group": 1,
"statId": 1608,
"altName": "Heating Oil",
"chartId": 891,
"history": [
{
"date": "2025-08-14",
"value": 2.235
},
{
"date": "2025-08-15",
"value": 2.225
},
{
"date": "2025-08-16",
"value": 2.225
},
{
"date": "2025-08-17",
"value": 2.216
},
{
"date": "2025-08-18",
"value": 2.237
},
{
"date": "2025-08-19",
"value": 2.244
},
{
"date": "2025-08-20",
"value": 2.273
},
{
"date": "2025-08-21",
"value": 2.32
}
],
"chartUrl": "https://en.macromicro.me/charts/891/commodity-heating-oil",
"position": 3,
"statName": "NYMEX - Heating Oil Futures Price",
"chartSlug": "commodity-heating-oil",
"chartType": 1,
"viewCount": 0,
"chartState": "active",
"pctChanges": {
"1D": [
{
"date": "2026-08-28",
"value": 4.3432,
"changePercent": 1.51
},
{
"date": "2026-08-27",
"value": 4.2787
},
{
"date": "2026-08-26",
"value": 4.26
},
{
"date": "2026-08-25",
"value": 4.2438
},
{
"date": "2026-08-24",
"value": 4.2677
},
{
"date": "2026-08-23",
"value": 4.436
}
],
"1M": [
{
"date": "2026-08-28",
"value": 4.3432,
"changePercent": 2.54
},
{
"date": "2026-07-29",
"value": 4.2357
},
{
"date": "2026-06-29",
"value": 3.3317
},
{
"date": "2026-05-29",
"value": 3.4886
},
{
"date": "2026-04-29",
"value": 4.1987
},
{
"date": "2026-03-29",
"value": 4.3593
}
],
"1W": [
{
"date": "2026-08-28",
"value": 4.3432,
"changePercent": -3.37
},
{
"date": "2026-08-21",
"value": 4.4948
},
{
"date": "2026-08-14",
"value": 4.2829
},
{
"date": "2026-08-07",
"value": 3.8231
},
{
"date": "2026-07-31",
"value": 4.0955
},
{
"date": "2026-07-24",
"value": 4.0954
}
],
"1Y": [
{
"date": "2026-08-28",
"value": 4.3432,
"changePercent": 91.61
},
{
"date": "2025-08-29",
"value": 2.2667
},
{
"date": "2024-08-29",
"value": 2.284
},
{
"date": "2023-08-29",
"value": 3.2095
},
{
"date": "2022-08-29",
"value": 3.8516
},
{
"date": "2021-08-27",
"value": 2.1092
}
],
"6M": [
{
"date": "2026-08-28",
"value": 4.3432,
"changePercent": 52.78
},
{
"date": "2026-03-01",
"value": 2.8427
},
{
"date": "2025-09-01",
"value": 2.3102
},
{
"date": "2025-02-28",
"value": 2.3549
},
{
"date": "2024-09-01",
"value": 2.2694
},
{
"date": "2024-03-01",
"value": 2.7042
}
],
"YTD": [
{
"date": "2026-08-28",
"value": 4.3432,
"changePercent": 104.76
},
{
"date": "2026-01-01",
"value": 2.1211
}
]
},
"chartNameEn": "Heating Oil",
"chartCountry": "us",
"commentCount": 0,
"statCategory": 22,
"bookmarkCount": 5,
"isMembersOnly": false,
"chartUpdatedAt": "2024-09-19T07:41:17.000Z",
"imageUpdatedAt": "2026-08-28T22:59:24.000Z",
"chartDescription": "Market: New York Mercantile Exchange (NYMEX)\nContract Size: 42000 Gallons\nPrice Quotation: USD/Gallon\n\nHeating oil is the second refined product produced from crude oil; the first is gasoline. Heating oil if the fuel for heating up homes in the winter, so the weather is the biggest factor that influences the price of heating oil. Heating oil is often a hedge for diesel and engine oil suppliers."
},
{
"name": "Gasoline",
"group": 1,
"statId": 1609,
"altName": "Gasoline",
"chartId": 892,
"history": [
{
"date": "2025-08-14",
"value": 2.109
},
{
"date": "2025-08-15",
"value": 2.073
},
{
"date": "2025-08-16",
"value": 2.073
},
{
"date": "2025-08-17",
"value": 2.069
},
{
"date": "2025-08-18",
"value": 1.937
},
{
"date": "2025-08-19",
"value": 1.923
},
{
"date": "2025-08-20",
"value": 1.959
},
{
"date": "2025-08-21",
"value": 1.987
}
],
"chartUrl": "https://en.macromicro.me/charts/892/commodity-gasoline",
"position": 3,
"statName": "NYMEX - Gasoline RBOB Futures Price",
"chartSlug": "commodity-gasoline",
"chartType": 1,
"viewCount": 0,
"chartState": "active",
"pctChanges": {
"1D": [
{
"date": "2026-08-28",
"value": 3.4899,
"changePercent": 3.12
},
{
"date": "2026-08-27",
"value": 3.3842
},
{
"date": "2026-08-26",
"value": 3.3201
},
{
"date": "2026-08-25",
"value": 3.2529
},
{
"date": "2026-08-24",
"value": 3.2708
},
{
"date": "2026-08-23",
"value": 3.3142
}
],
"1M": [
{
"date": "2026-08-28",
"value": 3.4899,
"changePercent": 8.19
},
{
"date": "2026-07-29",
"value": 3.2258
},
{
"date": "2026-06-29",
"value": 3.0614
},
{
"date": "2026-05-29",
"value": 3.0344
},
{
"date": "2026-04-29",
"value": 3.7411
},
{
"date": "2026-03-29",
"value": 3.2677
}
],
"1W": [
{
"date": "2026-08-28",
"value": 3.4899,
"changePercent": 4.24
},
{
"date": "2026-08-21",
"value": 3.3479
},
{
"date": "2026-08-14",
"value": 3.1841
},
{
"date": "2026-08-07",
"value": 2.9853
},
{
"date": "2026-07-31",
"value": 3.1142
},
{
"date": "2026-07-24",
"value": 3.2516
}
],
"1Y": [
{
"date": "2026-08-28",
"value": 3.4899,
"changePercent": 77.25
},
{
"date": "2025-08-29",
"value": 1.9689
},
{
"date": "2024-08-29",
"value": 2.2477
},
{
"date": "2023-08-29",
"value": 2.5565
},
{
"date": "2022-08-29",
"value": 2.8776
},
{
"date": "2021-08-29",
"value": 2.169
}
],
"6M": [
{
"date": "2026-08-28",
"value": 3.4899,
"changePercent": 45.87
},
{
"date": "2026-03-01",
"value": 2.3925
},
{
"date": "2025-09-01",
"value": 1.9884
},
{
"date": "2025-02-28",
"value": 2.2223
},
{
"date": "2024-09-01",
"value": 2.073
},
{
"date": "2024-03-01",
"value": 2.6144
}
],
"YTD": [
{
"date": "2026-08-28",
"value": 3.4899,
"changePercent": 104.09
},
{
"date": "2026-01-01",
"value": 1.71
}
]
},
"chartNameEn": "Gasoline",
"chartCountry": "us",
"commentCount": 0,
"statCategory": 22,
"bookmarkCount": 17,
"isMembersOnly": false,
"chartUpdatedAt": "2024-09-19T07:41:30.000Z",
"imageUpdatedAt": "2026-08-28T22:59:23.000Z",
"chartDescription": "Market: New York Mercantile Exchange (NYMEX)\nContract Size: 42,000 Gallons\nPrice Quotation: USD/gallon\n\nGasoline is used in transportation; demand for gasoline surges during high seasons for traveling. The higher the octane rating number is, the better quality the gas is."
},
{
"name": "Corn",
"group": 2,
"statId": 3994,
"altName": "Corn",
"chartId": 1294,
"history": [
{
"date": "2025-08-14",
"value": 2202
},
{
"date": "2025-08-15",
"value": 2190
},
{
"date": "2025-08-16",
"value": 2190
},
{
"date": "2025-08-17",
"value": 2190
},
{
"date": "2025-08-18",
"value": 2177
},
{
"date": "2025-08-19",
"value": 2170
},
{
"date": "2025-08-20",
"value": 2170
},
{
"date": "2025-08-21",
"value": 2166
}
],
"chartUrl": "https://en.macromicro.me/charts/1294/cn-corn-futures",
"position": 3,
"statName": "China - Corn Futures",
"chartSlug": "cn-corn-futures",
"chartType": 1,
"viewCount": 0,
"chartState": "active",
"pctChanges": {
"1D": [
{
"date": "2026-08-28",
"value": 2285,
"changePercent": -0.09
},
{
"date": "2026-08-27",
"value": 2287
},
{
"date": "2026-08-26",
"value": 2281
},
{
"date": "2026-08-25",
"value": 2276
},
{
"date": "2026-08-24",
"value": 2280
},
{
"date": "2026-08-21",
"value": 2264
}
],
"1M": [
{
"date": "2026-08-28",
"value": 2285,
"changePercent": 0.79
},
{
"date": "2026-07-29",
"value": 2267
},
{
"date": "2026-06-29",
"value": 2337
},
{
"date": "2026-05-29",
"value": 2322
},
{
"date": "2026-04-29",
"value": 2431
},
{
"date": "2026-03-27",
"value": 2369
}
],
"1W": [
{
"date": "2026-08-28",
"value": 2285,
"changePercent": 0.93
},
{
"date": "2026-08-21",
"value": 2264
},
{
"date": "2026-08-14",
"value": 2226
},
{
"date": "2026-08-07",
"value": 2245
},
{
"date": "2026-07-31",
"value": 2269
},
{
"date": "2026-07-24",
"value": 2277
}
],
"1Y": [
{
"date": "2026-08-28",
"value": 2285,
"changePercent": 4.29
},
{
"date": "2025-08-29",
"value": 2191
},
{
"date": "2024-08-29",
"value": 2344
},
{
"date": "2023-08-29",
"value": 2728
},
{
"date": "2022-08-29",
"value": 2806
},
{
"date": "2021-08-27",
"value": 2478
}
],
"6M": [
{
"date": "2026-08-28",
"value": 2285,
"changePercent": -3.18
},
{
"date": "2026-02-27",
"value": 2360
},
{
"date": "2025-09-01",
"value": 2193
},
{
"date": "2025-02-28",
"value": 2292
},
{
"date": "2024-08-30",
"value": 2338
},
{
"date": "2024-03-01",
"value": 2462
}
],
"YTD": [
{
"date": "2026-08-28",
"value": 2285,
"changePercent": 2.65
},
{
"date": "2025-12-31",
"value": 2226
}
]
},
"chartNameEn": "China Corn Futures",
"relatedLink": "https://en.macromicro.me/collections/53/agri-corn",
"chartCountry": "cn",
"commentCount": 0,
"statCategory": 28,
"bookmarkCount": 7,
"isMembersOnly": false,
"chartUpdatedAt": "2023-03-23T08:58:05.000Z",
"imageUpdatedAt": "2026-08-28T23:06:45.000Z",
"chartDescription": "Market: Dalian Commodity Exchange\nContract Size: 10 Tons/hand\nPrice Quotation: CNT/ton"
},
{
"name": "Soybean Meal",
"group": 2,
"statId": 3986,
"altName": "Soybean Meal",
"chartId": 1295,
"history": [
{
"date": "2025-08-14",
"value": 3157
},
{
"date": "2025-08-15",
"value": 3137
},
{
"date": "2025-08-16",
"value": 3137
},
{
"date": "2025-08-17",
"value": 3137
},
{
"date": "2025-08-18",
"value": 3155
},
{
"date": "2025-08-19",
"value": 3161
},
{
"date": "2025-08-20",
"value": 3160
},
{
"date": "2025-08-21",
"value": 3113
}
],
"chartUrl": "https://en.macromicro.me/charts/1295/cn-soybean-meal",
"position": 3,
"statName": "China - Soybean Meal Futures [M]",
"chartSlug": "cn-soybean-meal",
"chartType": 1,
"viewCount": 0,
"chartState": "active",
"pctChanges": {
"1D": [
{
"date": "2026-08-28",
"value": 3359,
"changePercent": 0.12
},
{
"date": "2026-08-27",
"value": 3355
},
{
"date": "2026-08-26",
"value": 3297
},
{
"date": "2026-08-25",
"value": 3245
},
{
"date": "2026-08-24",
"value": 3232
},
{
"date": "2026-08-21",
"value": 3228
}
],
"1M": [
{
"date": "2026-08-28",
"value": 3359,
"changePercent": 8.04
},
{
"date": "2026-07-29",
"value": 3109
},
{
"date": "2026-06-29",
"value": 2967
},
{
"date": "2026-05-29",
"value": 2991
},
{
"date": "2026-04-29",
"value": 3020
},
{
"date": "2026-03-27",
"value": 2937
}
],
"1W": [
{
"date": "2026-08-28",
"value": 3359,
"changePercent": 4.06
},
{
"date": "2026-08-21",
"value": 3228
},
{
"date": "2026-08-14",
"value": 3165
},
{
"date": "2026-08-07",
"value": 3154
},
{
"date": "2026-07-31",
"value": 3071
},
{
"date": "2026-07-24",
"value": 3225
}
],
"1Y": [
{
"date": "2026-08-28",
"value": 3359,
"changePercent": 9.95
},
{
"date": "2025-08-29",
"value": 3055
},
{
"date": "2024-08-29",
"value": 2998
},
{
"date": "2023-08-29",
"value": 4144
},
{
"date": "2022-08-29",
"value": 3789
},
{
"date": "2021-08-27",
"value": 3501
}
],
"6M": [
{
"date": "2026-08-28",
"value": 3359,
"changePercent": 18.57
},
{
"date": "2026-02-27",
"value": 2833
},
{
"date": "2025-09-01",
"value": 3054
},
{
"date": "2025-02-28",
"value": 2932
},
{
"date": "2024-08-30",
"value": 3027
},
{
"date": "2024-03-01",
"value": 3086
}
],
"YTD": [
{
"date": "2026-08-28",
"value": 3359,
"changePercent": 22.19
},
{
"date": "2025-12-31",
"value": 2749
}
]
},
"chartNameEn": "China Soybean Meal Futures",
"chartCountry": "cn",
"commentCount": 0,
"statCategory": 22,
"bookmarkCount": 2,
"isMembersOnly": false,
"chartUpdatedAt": "2023-03-23T08:56:22.000Z",
"imageUpdatedAt": "2026-08-29T05:49:31.000Z",
"chartDescription": "Market: Dalian Commodity Exchange\nContract Size: 10 Tons/hand\nPrice Quotation: CNT/ton"
},
{
"name": "Rapeseed Meal",
"group": 2,
"statId": 4002,
"altName": "Rapeseed Meal",
"chartId": 1296,
"history": [
{
"date": "2025-08-14",
"value": 2606
},
{
"date": "2025-08-15",
"value": 2546
},
{
"date": "2025-08-16",
"value": 2546
},
{
"date": "2025-08-17",
"value": 2546
},
{
"date": "2025-08-18",
"value": 2590
},
{
"date": "2025-08-19",
"value": 2604
},
{
"date": "2025-08-20",
"value": 2627
},
{
"date": "2025-08-21",
"value": 2561
}
],
"chartUrl": "https://en.macromicro.me/charts/1296/cn-rapeseed-meal-futures",
"position": 3,
"statName": "China - Rapeseed Meal Futures [RM]",
"chartSlug": "cn-rapeseed-meal-futures",
"chartType": 1,
"viewCount": 0,
"chartState": "active",
"pctChanges": {
"1D": [
{
"date": "2026-08-28",
"value": 2346,
"changePercent": -0.09
},
{
"date": "2026-08-27",
"value": 2348
},
{
"date": "2026-08-26",
"value": 2314
},
{
"date": "2026-08-25",
"value": 2243
},
{
"date": "2026-08-24",
"value": 2235
},
{
"date": "2026-08-21",
"value": 2238
}
],
"1M": [
{
"date": "2026-08-28",
"value": 2346,
"changePercent": 0.39
},
{
"date": "2026-07-29",
"value": 2337
},
{
"date": "2026-06-29",
"value": 2296
},
{
"date": "2026-05-29",
"value": 2301
},
{
"date": "2026-04-29",
"value": 2417
},
{
"date": "2026-03-27",
"value": 2315
}
],
"1W": [
{
"date": "2026-08-28",
"value": 2346,
"changePercent": 4.83
},
{
"date": "2026-08-21",
"value": 2238
},
{
"date": "2026-08-14",
"value": 2191
},
{
"date": "2026-08-07",
"value": 2173
},
{
"date": "2026-07-31",
"value": 2316
},
{
"date": "2026-07-24",
"value": 2467
}
],
"1Y": [
{
"date": "2026-08-28",
"value": 2346,
"changePercent": -6.65
},
{
"date": "2025-08-29",
"value": 2513
},
{
"date": "2024-08-29",
"value": 2240
},
{
"date": "2023-08-29",
"value": 3382
},
{
"date": "2022-08-29",
"value": 2894
},
{
"date": "2021-08-27",
"value": 2883
}
],
"6M": [
{
"date": "2026-08-28",
"value": 2346,
"changePercent": 2.58
},
{
"date": "2026-02-27",
"value": 2287
},
{
"date": "2025-09-01",
"value": 2513
},
{
"date": "2025-02-28",
"value": 2566
},
{
"date": "2024-08-30",
"value": 2248
},
{
"date": "2024-03-01",
"value": 2495
}
],
"YTD": [
{
"date": "2026-08-28",
"value": 2346,
"changePercent": -0.8
},
{
"date": "2025-12-31",
"value": 2365
}
]
},
"chartNameEn": "China Rapeseed Meal Futures",
"chartCountry": "cn",
"commentCount": 0,
"statCategory": 22,
"bookmarkCount": 1,
"isMembersOnly": false,
"chartUpdatedAt": "2021-07-14T04:38:56.000Z",
"imageUpdatedAt": "2026-08-29T05:49:30.000Z",
"chartDescription": "Market: Zhengzhou Commodity Exchange\nContract Size: 10 Tons/hand\nPrice Quotation: CNY/ton"
}
],
"total": 54,
"groups": 6,
"dataset": "market",
"category": "commodities",
"provider": "macromicro",
"updatedAt": "2022-11-29T10:13:11.000Z"
}
```
---
### Calendar Macro
Scheduled macro data releases for the window around a date.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:macromicro/calendar-macro`
- **Cache TTL:** 1800s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `date` | string | query | no | Any date inside the month you want, YYYY-MM-DD. Defaults to today. |
| `country` | string | query | no | Keep only releases for this two-letter country code. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:macromicro/calendar-macro?date=2026-08-29&country=us" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:macromicro/calendar-macro?date=2026-08-29&country=us", {
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:macromicro/calendar-macro?date=2026-08-29&country=us",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": "2026-09-09T16:00:00.000Z",
"date": "2026-08-29",
"from": "2026-07-21T16:00:00.000Z",
"count": 53,
"items": [
{
"url": "https://en.macromicro.me/collections/4/us-employ-relative/19/initial-jobless-claims",
"name": "US Initial & Continuing Jobless Claims",
"statId": 34,
"country": "us",
"eventId": 16,
"groupId": 1190,
"onFront": true,
"isPublic": true,
"createdAt": "2020-04-08T07:36:16.000Z",
"updatedAt": "2023-01-12T09:48:23.000Z",
"onCalendar": true,
"releasedAt": "2026-07-23T12:30:00.000Z",
"onQuickview": true,
"releasedAtEpoch": 1784809800
},
{
"url": "https://en.macromicro.me/collections/7/us-housing-relative/34/new-house-price",
"name": "US Supply and Demand of New Homes",
"statId": 252,
"country": "us",
"eventId": 36,
"groupId": 86,
"onFront": true,
"isPublic": true,
"createdAt": "2020-04-08T07:36:16.000Z",
"updatedAt": "2026-03-23T04:20:44.000Z",
"onCalendar": false,
"releasedAt": "2026-07-24T14:00:00.000Z",
"onQuickview": true,
"relatedCharts": [
31,
32,
34,
30
],
"releasedAtEpoch": 1784901600
},
{
"url": "https://en.macromicro.me/collections/8/us-industry-relative/3/durable-goods",
"name": "US Durable Goods Orders",
"statId": 321,
"country": "us",
"eventId": 35,
"groupId": 55,
"onFront": false,
"isPublic": true,
"createdAt": "2020-04-08T07:36:16.000Z",
"updatedAt": "2026-03-23T04:20:44.000Z",
"onCalendar": false,
"releasedAt": "2026-07-27T12:30:00.000Z",
"onQuickview": true,
"releasedAtEpoch": 1785155400
},
{
"url": "https://en.macromicro.me/collections/7/us-housing-relative/35/house-index",
"name": "US S&P House Price Index",
"statId": 0,
"country": "us",
"eventId": 34,
"groupId": 79,
"onFront": false,
"createdAt": "2020-04-08T07:36:16.000Z",
"updatedAt": "2023-01-12T09:51:33.000Z",
"onCalendar": false,
"releasedAt": "2026-07-28T14:00:00.000Z",
"onQuickview": true,
"relatedCharts": [
31,
32,
34,
30
],
"releasedAtEpoch": 1785247200
},
{
"url": "https://en.macromicro.me/collections/3/us-consumption-relative/22/consumer-confidence",
"name": "US Consumer Confidence",
"statId": 7054,
"country": "us",
"eventId": 33,
"groupId": 68,
"onFront": true,
"isPublic": true,
"createdAt": "2020-04-08T07:36:16.000Z",
"updatedAt": "2023-01-12T09:50:55.000Z",
"onCalendar": false,
"releasedAt": "2026-07-28T14:00:00.000Z",
"onQuickview": true,
"releasedAtEpoch": 1785247200
},
{
"url": "https://en.macromicro.me/collections/4238/us-federal/17668/us-fed-fund-interest-rate",
"name": "US Fed Interest Rate Policy",
"statId": 0,
"country": "us",
"eventId": 244,
"groupId": 922,
"onFront": false,
"createdAt": "2023-01-31T09:54:03.000Z",
"updatedAt": "2023-01-31T09:54:03.000Z",
"onCalendar": true,
"releasedAt": "2026-07-29T18:00:00.000Z",
"onQuickview": true,
"relatedCharts": [
48,
4238,
17668,
6287,
77,
1242,
1320,
34394
],
"releasedAtEpoch": 1785348000
},
{
"url": "https://en.macromicro.me/collections/3/us-consumption-relative/88/real-disposable-personal-income",
"name": "US Disposable Personal Income",
"statId": 0,
"country": "us",
"eventId": 202,
"groupId": 940,
"onFront": false,
"createdAt": "2020-08-22T11:16:05.000Z",
"updatedAt": "2026-03-23T04:20:44.000Z",
"onCalendar": false,
"releasedAt": "2026-07-30T12:30:00.000Z",
"onQuickview": true,
"releasedAtEpoch": 1785414600
},
{
"url": "https://en.macromicro.me/collections/3/us-consumption-relative/23/saving-rate",
"name": "US Personal Spending",
"statId": 74,
"country": "us",
"eventId": 197,
"groupId": 72,
"onFront": true,
"isPublic": true,
"createdAt": "2020-08-17T07:00:43.000Z",
"updatedAt": "2026-03-23T04:20:44.000Z",
"onCalendar": false,
"releasedAt": "2026-07-30T12:30:00.000Z",
"onQuickview": true,
"relatedCharts": [
30444,
25948,
86
],
"releasedAtEpoch": 1785414600
}
],
"total": 212,
"country": "us",
"dataset": "calendar-macro",
"provider": "macromicro"
}
```
---
### Calendar Earnings
Earnings calendar with ticker, fiscal period, market cap and logo.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:macromicro/calendar-earnings`
- **Cache TTL:** 1800s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `date` | string | query | no | Any date inside the window you want, YYYY-MM-DD. Defaults to today. |
| `symbol` | string | query | no | Keep only this ticker. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:macromicro/calendar-earnings?date=2026-08-29&symbol=AAPL" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:macromicro/calendar-earnings?date=2026-08-29&symbol=AAPL", {
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:macromicro/calendar-earnings?date=2026-08-29&symbol=AAPL",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": "2026-09-10",
"date": "2026-08-29",
"from": "2026-07-22",
"count": 434,
"items": [
{
"date": "2026-07-22",
"logo": "https://cdn.macromicro.me/stocks/logo/T/TEL-2bac1695.png",
"name": "TE CONNECTIVITY PLC",
"time": "01:00",
"symbol": "TEL",
"earningId": 12820,
"marketCap": 58974060000,
"fiscalYear": 2026,
"industryId": 452030,
"fiscalPeriod": "Q2"
},
{
"date": "2026-07-22",
"logo": "https://cdn.macromicro.me/stocks/logo/O/OTIS-848b696b.png",
"name": "OTIS WORLDWIDE CORP",
"time": "01:08",
"symbol": "OTIS",
"earningId": 6949,
"marketCap": 27634247999,
"fiscalYear": 2026,
"industryId": 201060,
"fiscalPeriod": "Q2"
},
{
"date": "2026-07-22",
"logo": "https://cdn.macromicro.me/stocks/logo/G/GEV-18bc3ee8.png",
"name": "GE VERNOVA INC",
"time": "01:27",
"symbol": "GEV",
"earningId": 11455,
"marketCap": 244397240000,
"fiscalYear": 2026,
"industryId": 201040,
"fiscalPeriod": "Q2"
},
{
"date": "2026-07-22",
"logo": "https://cdn.macromicro.me/stocks/logo/P/PHM-5aff5450.png",
"name": "PULTEGROUP INC",
"time": "01:30",
"symbol": "PHM",
"earningId": 7258,
"marketCap": 24644384389,
"fiscalYear": 2026,
"industryId": 252010,
"fiscalPeriod": "Q2"
},
{
"date": "2026-07-22",
"logo": "https://cdn.macromicro.me/stocks/logo/T/T-ca084bdc.png",
"name": "AT&T INC",
"time": "01:30",
"symbol": "T",
"earningId": 8226,
"marketCap": 180388000000,
"fiscalYear": 2026,
"industryId": 501010,
"fiscalPeriod": "Q2"
},
{
"date": "2026-07-22",
"logo": "https://cdn.macromicro.me/stocks/logo/W/WAB-258a6b91.png",
"name": "WABTEC CORP",
"time": "01:30",
"symbol": "WAB",
"earningId": 9174,
"marketCap": 49532985000,
"fiscalYear": 2026,
"industryId": 201060,
"fiscalPeriod": "Q2"
},
{
"date": "2026-07-22",
"logo": "https://cdn.macromicro.me/stocks/logo/T/TDY-5e11846c.png",
"name": "TELEDYNE TECHNOLOGIES INC",
"time": "01:55",
"symbol": "TDY",
"earningId": 8301,
"marketCap": 29169924000,
"fiscalYear": 2026,
"industryId": 452030,
"fiscalPeriod": "Q2"
},
{
"date": "2026-07-22",
"logo": "https://cdn.macromicro.me/stocks/logo/P/PM-6f18d12c.png",
"name": "PHILIP MORRIS INTERNATIONAL",
"time": "01:59",
"symbol": "PM",
"earningId": 7328,
"marketCap": 299889628239,
"fiscalYear": 2026,
"industryId": 302030,
"fiscalPeriod": "Q2"
}
],
"total": 434,
"symbol": null,
"dataset": "calendar-earnings",
"provider": "macromicro"
}
```
---
### Calendar Holidays
Market holidays by date and country.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:macromicro/calendar-holidays`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `country` | string | query | no | Keep only this two-letter country code. |
| `from` | string | query | no | Drop holidays before this date, YYYY-MM-DD. |
| `to` | string | query | no | Drop holidays after this date, YYYY-MM-DD. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:macromicro/calendar-holidays?country=us&from=2026-01-01&to=2026-12-31" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:macromicro/calendar-holidays?country=us&from=2026-01-01&to=2026-12-31", {
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:macromicro/calendar-holidays?country=us&from=2026-01-01&to=2026-12-31",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": "2026-12-31",
"from": "2026-01-01",
"count": 10,
"items": [
{
"date": "2026-01-01",
"name": "New Year's Day",
"country": "us",
"holidayId": 198,
"countryName": "United States"
},
{
"date": "2026-01-19",
"name": "Martin L. King Day",
"country": "us",
"holidayId": 199,
"countryName": "United States"
},
{
"date": "2026-02-16",
"name": "Presidents' Day",
"country": "us",
"holidayId": 200,
"countryName": "United States"
},
{
"date": "2026-04-03",
"name": "Good Friday (not Fed Hol)",
"country": "us",
"holidayId": 201,
"countryName": "United States"
},
{
"date": "2026-05-25",
"name": "Memorial Day",
"country": "us",
"holidayId": 202,
"countryName": "United States"
},
{
"date": "2026-06-19",
"name": "Juneteenth",
"country": "us",
"holidayId": 203,
"countryName": "United States"
},
{
"date": "2026-07-03",
"name": "Independence Day",
"country": "us",
"holidayId": 204,
"countryName": "United States"
},
{
"date": "2026-09-07",
"name": "Labor Day",
"country": "us",
"holidayId": 205,
"countryName": "United States"
}
],
"total": 385,
"country": "us",
"dataset": "calendar-holidays",
"provider": "macromicro"
}
```
---
### Institutions
13F filers with CIK, slug and the quarter each one is currently reported through.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:macromicro/institutions`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `query` | string | query | no | Free-text match against the institution name or slug. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:macromicro/institutions?query=berkshire" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:macromicro/institutions?query=berkshire", {
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:macromicro/institutions?query=berkshire",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 1,
"items": [
{
"cik": "0001067983",
"url": "https://en.macromicro.me/13f/berkshire_hathaway",
"slug": "berkshire_hathaway",
"nameEn": "Berkshire Hathaway Inc",
"nameSc": "波克夏·海瑟威",
"nameTc": "波克夏·海瑟威",
"period": "q",
"quarter": "2026-Q2",
"createdAt": "2020-12-23T05:07:52.000Z",
"institutionId": 2
}
],
"query": "berkshire",
"total": 20,
"dataset": "institutions",
"provider": "macromicro"
}
```
---
### Institution Holdings
One filer's twenty largest positions for a quarter, plus its biggest increases and decreases.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:macromicro/institution-holdings/:institutionId`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `institutionId` | string | path | yes | Institution id, from `institutions`. |
| `quarter` | string | query | no | Reporting quarter. Defaults to the latest the upstream reports for this filer. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:macromicro/institution-holdings/:institutionId?quarter=2026-Q2" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:macromicro/institution-holdings/:institutionId?quarter=2026-Q2", {
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:macromicro/institution-holdings/:institutionId?quarter=2026-Q2",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"name": null,
"count": 20,
"items": [
{
"url": "https://en.macromicro.me/stocks/info/AAPL",
"isEtf": false,
"nameEn": "Apple Inc",
"nameSc": "苹果",
"nameTc": "蘋果",
"shares": 227917808,
"splits": [
{
"date": "2020-08-31",
"label": "August 31, 20",
"numerator": 4,
"denominator": 1
},
{
"date": "2014-06-09",
"label": "June 09, 14",
"numerator": 7,
"denominator": 1
},
{
"date": "2005-02-28",
"label": "February 28, 05",
"numerator": 2,
"denominator": 1
},
{
"date": "2000-06-21",
"label": "June 21, 00",
"numerator": 2,
"denominator": 1
},
{
"date": "1987-06-16",
"label": "June 16, 87",
"numerator": 2,
"denominator": 1
}
],
"ticker": "AAPL",
"sectorId": 5,
"holdingId": 22,
"portfolioPercent": 22.04,
"sharesChangePercentYear": -18.6,
"sharesChangePercent3Year": -75.11,
"portfolioPercentChangeYear": -0.28,
"sharesChangePercentQuarter": 0,
"portfolioPercentChange3Year": -28.95,
"portfolioPercentChangeQuarter": 0.06
},
{
"url": "https://en.macromicro.me/stocks/info/AXP",
"isEtf": false,
"nameEn": "American Express Co",
"nameSc": "美国运通",
"nameTc": "美國運通",
"shares": 151610700,
"splits": [
{
"date": "2005-10-03",
"label": "October 03, 05",
"numerator": 10000,
"denominator": 8753
},
{
"date": "2000-05-11",
"label": "May 11, 00",
"numerator": 3,
"denominator": 1
},
{
"date": "1994-05-31",
"label": "May 31, 94",
"numerator": 400,
"denominator": 353
},
{
"date": "1987-05-11",
"label": "May 11, 87",
"numerator": 2,
"denominator": 1
},
{
"date": "1983-08-11",
"label": "August 11, 83",
"numerator": 3,
"denominator": 2
},
{
"date": "1983-02-11",
"label": "February 11, 83",
"numerator": 4,
"denominator": 3
}
],
"ticker": "AXP",
"sectorId": 7,
"holdingId": 16,
"portfolioPercent": 17.14,
"sharesChangePercentYear": 0,
"sharesChangePercent3Year": 0,
"portfolioPercentChangeYear": -1.63,
"sharesChangePercentQuarter": 0,
"portfolioPercentChange3Year": 9.55,
"portfolioPercentChangeQuarter": -0.29
},
{
"url": "https://en.macromicro.me/stocks/info/KO",
"isEtf": false,
"nameEn": "Coca-Cola Co",
"nameSc": "Coca-Cola Co",
"nameTc": "可口可樂",
"shares": 400000000,
"splits": [
{
"date": "2012-08-13",
"label": "August 13, 12",
"numerator": 2,
"denominator": 1
},
{
"date": "1996-05-13",
"label": "May 13, 96",
"numerator": 2,
"denominator": 1
},
{
"date": "1992-05-12",
"label": "May 12, 92",
"numerator": 2,
"denominator": 1
},
{
"date": "1990-05-14",
"label": "May 14, 90",
"numerator": 2,
"denominator": 1
},
{
"date": "1986-07-01",
"label": "July 01, 86",
"numerator": 3,
"denominator": 1
},
{
"date": "1977-06-01",
"label": "June 01, 77",
"numerator": 2,
"denominator": 1
},
{
"date": "1968-06-03",
"label": "June 03, 68",
"numerator": 2,
"denominator": 1
},
{
"date": "1965-05-19",
"label": "May 19, 65",
"numerator": 2,
"denominator": 1
}
],
"ticker": "KO",
"sectorId": 8,
"holdingId": 71,
"portfolioPercent": 10.87,
"sharesChangePercentYear": 0,
"sharesChangePercent3Year": 0,
"portfolioPercentChangeYear": -0.13,
"sharesChangePercentQuarter": 0,
"portfolioPercentChange3Year": 3.95,
"portfolioPercentChangeQuarter": -0.68
},
{
"url": "https://en.macromicro.me/stocks/info/GOOGL",
"isEtf": false,
"nameEn": "Alphabet, Inc. Class A",
"nameSc": "Alphabet公司 (A股)",
"nameTc": "Alphabet公司 (A股)",
"shares": 78791167,
"splits": [
{
"date": "2022-07-18",
"label": "July 18, 22",
"numerator": 20,
"denominator": 1
},
{
"date": "2014-04-03",
"label": "April 03, 14",
"numerator": 999,
"denominator": 500
}
],
"ticker": "GOOGL",
"sectorId": 10,
"holdingId": 754,
"portfolioPercent": 9.41,
"sharesChangePercentYear": 0,
"sharesChangePercent3Year": 0,
"portfolioPercentChangeYear": 0,
"sharesChangePercentQuarter": 45.24,
"portfolioPercentChange3Year": 0,
"portfolioPercentChangeQuarter": 3.49
},
{
"url": "https://en.macromicro.me/stocks/info/BAC",
"isEtf": false,
"nameEn": "Bank of America Corp",
"nameSc": "美国银行",
"nameTc": "美國銀行",
"shares": 483394015,
"splits": [
{
"date": "2004-08-30",
"label": "August 30, 04",
"numerator": 2,
"denominator": 1
},
{
"date": "1997-02-28",
"label": "February 28, 97",
"numerator": 2,
"denominator": 1
},
{
"date": "1986-11-21",
"label": "November 21, 86",
"numerator": 2,
"denominator": 1
}
],
"ticker": "BAC",
"sectorId": 7,
"holdingId": 564,
"portfolioPercent": 9.2,
"sharesChangePercentYear": -20.14,
"sharesChangePercent3Year": -53.2,
"portfolioPercentChangeYear": -1.92,
"sharesChangePercentQuarter": -5.89,
"portfolioPercentChange3Year": 0.69,
"portfolioPercentChangeQuarter": -0.31
},
{
"url": "https://en.macromicro.me/stocks/info/CVX",
"isEtf": false,
"nameEn": "Chevron Corp",
"nameSc": "雪佛龙",
"nameTc": "雪佛龍",
"shares": 84375856,
"splits": [
{
"date": "2004-09-13",
"label": "September 13, 04",
"numerator": 2,
"denominator": 1
},
{
"date": "1994-06-13",
"label": "June 13, 94",
"numerator": 2,
"denominator": 1
},
{
"date": "1981-03-11",
"label": "March 11, 81",
"numerator": 2,
"denominator": 1
},
{
"date": "1973-12-11",
"label": "December 11, 73",
"numerator": 2,
"denominator": 1
},
{
"date": "1962-12-17",
"label": "December 17, 62",
"numerator": 21,
"denominator": 20
}
],
"ticker": "CVX",
"sectorId": 11,
"holdingId": 66,
"portfolioPercent": 4.68,
"sharesChangePercentYear": -30.88,
"sharesChangePercent3Year": -31.47,
"portfolioPercentChangeYear": -2.11,
"sharesChangePercentQuarter": 0,
"portfolioPercentChange3Year": -0.88,
"portfolioPercentChangeQuarter": -1.95
},
{
"url": "https://en.macromicro.me/stocks/info/OXY",
"isEtf": false,
"nameEn": "Occidental Petroleum Corp",
"nameSc": "西方石油",
"nameTc": "西方石油",
"shares": 264941431,
"splits": [
{
"date": "2014-12-01",
"label": "December 01, 14",
"numerator": 521,
"denominator": 500
},
{
"date": "2006-08-16",
"label": "August 16, 06",
"numerator": 2,
"denominator": 1
}
],
"ticker": "OXY",
"sectorId": 11,
"holdingId": 196,
"portfolioPercent": 4.3,
"sharesChangePercentYear": 0,
"sharesChangePercent3Year": 18.21,
"portfolioPercentChangeYear": -0.02,
"sharesChangePercentQuarter": 0,
"portfolioPercentChange3Year": 0.52,
"portfolioPercentChangeQuarter": -2.25
},
{
"url": "https://en.macromicro.me/stocks/info/CB",
"isEtf": false,
"nameEn": "Chubb Ltd",
"nameSc": "安达保险",
"nameTc": "安達保險",
"shares": 34249183,
"splits": [
{
"date": "2006-04-19",
"label": "April 19, 06",
"numerator": 1,
"denominator": 2
},
{
"date": "1998-03-03",
"label": "March 03, 98",
"numerator": 3,
"denominator": 1
},
{
"date": "1996-05-06",
"label": "May 06, 96",
"numerator": 1,
"denominator": 2
},
{
"date": "1990-05-31",
"label": "May 31, 90",
"numerator": 2,
"denominator": 1
},
{
"date": "1985-10-25",
"label": "October 25, 85",
"numerator": 3,
"denominator": 2
}
],
"ticker": "CB",
"sectorId": 7,
"holdingId": 863,
"portfolioPercent": 3.9,
"sharesChangePercentYear": 26.69,
"sharesChangePercent3Year": 0,
"portfolioPercentChangeYear": 0.86,
"sharesChangePercentQuarter": 0,
"portfolioPercentChange3Year": 0,
"portfolioPercentChangeQuarter": -0.34
}
],
"total": 20,
"losers": [
{
"url": "https://en.macromicro.me/stocks/info/KR",
"name": "Kroger Co",
"ticker": "KR",
"assetId": 155,
"current": {
"date": "2026-06-30",
"shares": 39000000,
"portfolioPercent": 0.72
},
"previous": {
"date": "2026-03-31",
"shares": 50000000,
"portfolioPercent": 1.37
},
"sectorName": "EQUITY-Consumer Defensive",
"sharesDiff": -11000000,
"portfolioPercent": 0.72,
"sharesChangePercent": -22,
"portfolioPercentChange": -0.65
},
{
"url": "https://en.macromicro.me/stocks/info/BAC",
"name": "Bank of America Corp",
"ticker": "BAC",
"assetId": 564,
"current": {
"date": "2026-06-30",
"shares": 483394015,
"portfolioPercent": 9.2
},
"previous": {
"date": "2026-03-31",
"shares": 513624165,
"portfolioPercent": 9.51
},
"sectorName": "EQUITY-Financial Services",
"sharesDiff": -30230150,
"portfolioPercent": 9.2,
"sharesChangePercent": -5.89,
"portfolioPercentChange": -0.31
},
{
"url": "https://en.macromicro.me/stocks/info/COF",
"name": "Capital One Financial Corp",
"ticker": "COF",
"assetId": 56,
"current": {
"date": "2026-06-30",
"shares": 3000000,
"portfolioPercent": 0.2
},
"previous": {
"date": "2026-03-31",
"shares": 7150000,
"portfolioPercent": 0.49
},
"sectorName": "EQUITY-Financial Services",
"sharesDiff": -4150000,
"portfolioPercent": 0.2,
"sharesChangePercent": -58.04,
"portfolioPercentChange": -0.29
},
{
"name": "Nucor Corp",
"ticker": "NUE",
"assetId": 367,
"current": {
"date": "2026-06-30",
"shares": 1857752,
"portfolioPercent": 0.14
},
"previous": {
"date": "2026-03-31",
"shares": 3907075,
"portfolioPercent": 0.25
},
"sectorName": "EQUITY-Basic Materials",
"sharesDiff": -2049323,
"portfolioPercent": 0.14,
"sharesChangePercent": -52.45,
"portfolioPercentChange": -0.11
},
{
"url": "https://en.macromicro.me/stocks/info/STZ",
"name": "Constellation Brands Inc",
"ticker": "STZ",
"assetId": 80,
"current": {
"date": "2026-06-30",
"shares": 0,
"portfolioPercent": 0
},
"previous": {
"date": "2026-03-31",
"shares": 632890,
"portfolioPercent": 0.04
},
"sectorName": "EQUITY-Consumer Defensive",
"sharesDiff": -632890,
"portfolioPercent": 0,
"sharesChangePercent": -100,
"portfolioPercentChange": -0.04
}
],
"dataset": "institution-holdings",
"gainers": [
{
"url": "https://en.macromicro.me/stocks/info/GOOGL",
"name": "Alphabet, Inc. Class A",
"ticker": "GOOGL",
"assetId": 754,
"current": {
"date": "2026-06-30",
"shares": 78791167,
"portfolioPercent": 9.41
},
"previous": {
"date": "2026-03-31",
"shares": 54249798,
"portfolioPercent": 5.92
},
"sectorName": "EQUITY-Communication Services",
"sharesDiff": 24541369,
"portfolioPercent": 9.41,
"sharesChangePercent": 45.24,
"portfolioPercentChange": 3.49
},
{
"url": "https://en.macromicro.me/stocks/info/GOOG",
"name": "Alphabet, Inc. Class C",
"ticker": "GOOG",
"assetId": 1200,
"current": {
"date": "2026-06-30",
"shares": 27188433,
"portfolioPercent": 3.21
},
"previous": {
"date": "2026-03-31",
"shares": 3585215,
"portfolioPercent": 0.39
},
"sectorName": "EQUITY-Communication Services",
"sharesDiff": 23603218,
"portfolioPercent": 3.21,
"sharesChangePercent": 658.35,
"portfolioPercentChange": 2.82
},
{
"name": "Delta Air Lines Inc",
"ticker": "DAL",
"assetId": 483,
"current": {
"date": "2026-06-30",
"shares": 57320000,
"portfolioPercent": 1.79
},
"previous": {
"date": "2026-03-31",
"shares": 39809456,
"portfolioPercent": 1.01
},
"sectorName": "EQUITY-Industrials",
"sharesDiff": 17510544,
"portfolioPercent": 1.79,
"sharesChangePercent": 43.99,
"portfolioPercentChange": 0.78
},
{
"name": "Lennar Corp",
"ticker": "LEN",
"assetId": 772,
"current": {
"date": "2026-06-30",
"shares": 13111741,
"portfolioPercent": 0.39
},
"previous": {
"date": "2026-03-31",
"shares": 10099642,
"portfolioPercent": 0.33
},
"sectorName": "EQUITY-Consumer Cyclical",
"sharesDiff": 3012099,
"portfolioPercent": 0.39,
"sharesChangePercent": 29.82,
"portfolioPercentChange": 0.06
},
{
"name": "Macy's Inc",
"ticker": "M",
"assetId": 169,
"current": {
"date": "2026-06-30",
"shares": 7347426,
"portfolioPercent": 0.05
},
"previous": {
"date": "2026-03-31",
"shares": 3038355,
"portfolioPercent": 0.02
},
"sectorName": "EQUITY-Consumer Cyclical",
"sharesDiff": 4309071,
"portfolioPercent": 0.05,
"sharesChangePercent": 141.82,
"portfolioPercentChange": 0.03
}
],
"quarter": "2026-Q2",
"provider": "macromicro",
"institutionId": 2,
"portfolioValue": 299253556246
}
```
---
## Mempool Space
**Category:** finance · **Slug:** `mempool-space`
**Detail page:** https://zapi.ink/api/finance/mempool-space
Recommended fee tiers in sat/vB, as mempool.space's own estimator sees them.
**Tags:** finance, mempool-space
### Fees
Recommended fee tiers in sat/vB, as mempool.space's own estimator sees them.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:mempool-space/fees`
- **Cache TTL:** 60s
**Parameters:**
_No parameters._
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:mempool-space/fees" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:mempool-space/fees", {
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:mempool-space/fees",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"unit": "sat/vB",
"dataset": "fees",
"hourFee": 1,
"provider": "mempool-space",
"economyFee": 1,
"fastestFee": 1,
"minimumFee": 1,
"halfHourFee": 1
}
```
---
### Blocks
The last 15 blocks, decorated with mempool.space's own per-block analysis.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:mempool-space/blocks`
- **Cache TTL:** 120s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `height` | number | query | no | Start height. Returns that block and the 14 below it. Omit for the chain tip. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:mempool-space/blocks?height=963330" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:mempool-space/blocks?height=963330", {
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:mempool-space/blocks?height=963330",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 15,
"items": [
{
"bits": 386020669,
"date": "2026-08-20T16:13:55.000Z",
"hash": "000000000000000000012494c7465e63c75e19b5ea6fac791a9e17deb9b9821b",
"size": 1692049,
"time": 1787242435,
"nonce": 4184907309,
"stale": false,
"avgFee": 494,
"height": 963330,
"poolId": 44,
"reward": 314443642,
"weight": 3994084,
"txCount": 3932,
"version": 637640704,
"feeRange": [
0,
0,
1,
1,
2,
3,
163
],
"poolName": "AntPool",
"poolSlug": "antpool",
"avgTxSize": 430.19,
"matchRate": 91.02,
"medianFee": 1,
"totalFees": 1943642,
"avgFeeRate": 1,
"difficulty": 127479855693691.4,
"medianTime": 1787240341,
"merkleRoot": "3a862f73950ada239a23900a5af2c1b096897c212c7c9c42af055837f65b1fce",
"similarity": null,
"totalInputs": 8803,
"virtualSize": 998521,
"expectedFees": 1983549,
"totalOutputs": 8787,
"utxoSetChange": -16,
"expectedWeight": 3991925,
"segwitTotalTxs": 3127,
"totalOutputAmt": 916989493513,
"coinbaseAddress": "37jKPSmbEGwgfacCr2nayn1wTaqMAbA94Z",
"segwitTotalSize": 1554524,
"previousBlockHash": "000000000000000000010b9a7c4cd90b904ae75d8a58b7583d24f8546bc3094d",
"segwitTotalWeight": 3444092
},
{
"bits": 386020669,
"date": "2026-08-20T16:10:10.000Z",
"hash": "000000000000000000010b9a7c4cd90b904ae75d8a58b7583d24f8546bc3094d",
"size": 1687761,
"time": 1787242210,
"nonce": 497520903,
"stale": false,
"avgFee": 960,
"height": 963329,
"poolId": 115,
"reward": 315138459,
"weight": 3994731,
"txCount": 2747,
"version": 537919488,
"feeRange": [
0,
0,
1,
2,
2,
4,
74
],
"poolName": "MARA Pool",
"poolSlug": "marapool",
"avgTxSize": 614.29,
"matchRate": 97.92,
"medianFee": 2,
"totalFees": 2638459,
"avgFeeRate": 2,
"difficulty": 127479855693691.4,
"medianTime": 1787240064,
"merkleRoot": "3b8f723ecb4bc3f5f47e8bab0964479c726633d78bf0db82bf9583ffa1cf197b",
"similarity": null,
"totalInputs": 9417,
"virtualSize": 998682.75,
"expectedFees": 2860693,
"totalOutputs": 6595,
"utxoSetChange": -2822,
"expectedWeight": 3991950,
"segwitTotalTxs": 2474,
"totalOutputAmt": 880748033230,
"coinbaseAddress": "32i1m6gNcSHwiPX9nfTNXVjme9j5DU8y5g",
"segwitTotalSize": 1521952,
"previousBlockHash": "000000000000000000007f37c59f2281d657b83257db8788a26572c5e7369b29",
"segwitTotalWeight": 3331603
},
{
"bits": 386020669,
"date": "2026-08-20T16:05:37.000Z",
"hash": "000000000000000000007f37c59f2281d657b83257db8788a26572c5e7369b29",
"size": 1548015,
"time": 1787241937,
"nonce": 3099071765,
"stale": false,
"avgFee": 906,
"height": 963328,
"poolId": 73,
"reward": 315854966,
"weight": 3993615,
"txCount": 3703,
"version": 699105280,
"feeRange": [
0,
1,
2,
3,
3,
5,
105
],
"poolName": "ViaBTC",
"poolSlug": "viabtc",
"avgTxSize": 417.92,
"matchRate": 97.2,
"medianFee": 3,
"totalFees": 3354966,
"avgFeeRate": 3,
"difficulty": 127479855693691.4,
"medianTime": 1787239225,
"merkleRoot": "36fbc55f29dad244a6578994f499d3ce0b39b7990fdcfb5bc61b3056468c243c",
"similarity": null,
"totalInputs": 7719,
"virtualSize": 998403.75,
"expectedFees": 3406355,
"totalOutputs": 8437,
"utxoSetChange": 718,
"expectedWeight": 3991908,
"segwitTotalTxs": 3301,
"totalOutputAmt": 1463544994069,
"coinbaseAddress": "1PuJjnF476W3zXfVYmJfGnouzFDAXakkL4",
"segwitTotalSize": 1358046,
"previousBlockHash": "00000000000000000001ae083ea48f0a77511d01b73c4b27e8e7b77bd4363223",
"segwitTotalWeight": 3233847
},
{
"bits": 386020669,
"date": "2026-08-20T15:59:03.000Z",
"hash": "00000000000000000001ae083ea48f0a77511d01b73c4b27e8e7b77bd4363223",
"size": 1576510,
"time": 1787241543,
"nonce": 3391365394,
"stale": false,
"avgFee": 1085,
"height": 963327,
"poolId": 111,
"reward": 317434742,
"weight": 3993112,
"txCount": 4547,
"version": 537460736,
"feeRange": [
0,
2,
3,
4,
5,
6,
301
],
"poolName": "Foundry USA",
"poolSlug": "foundryusa",
"avgTxSize": 346.65000000000003,
"matchRate": 98.92,
"medianFee": 4,
"totalFees": 4934742,
"avgFeeRate": 4,
"difficulty": 127479855693691.4,
"medianTime": 1787239084,
"merkleRoot": "bead81fc0127a59fda9b9366f2a9c22c5502d368f8f72a3166ab73dc7e8bb38f",
"similarity": null,
"totalInputs": 7362,
"virtualSize": 998278,
"expectedFees": 4980508,
"totalOutputs": 11810,
"utxoSetChange": 4448,
"expectedWeight": 3991883,
"segwitTotalTxs": 4285,
"totalOutputAmt": 1263242911274,
"coinbaseAddress": "bc1qwzrryqr3ja8w7hnja2spmkgfdcgvqwp5swz4af4ngsjecfz0w0pqud7k38",
"segwitTotalSize": 1494062,
"previousBlockHash": "00000000000000000000cb181d3340ebcc9bb3def8fd21e71a8fc5e6e500c2b6",
"segwitTotalWeight": 3663428
},
{
"bits": 386020669,
"date": "2026-08-20T15:39:27.000Z",
"hash": "00000000000000000000cb181d3340ebcc9bb3def8fd21e71a8fc5e6e500c2b6",
"size": 1715125,
"time": 1787240367,
"nonce": 2187032938,
"stale": false,
"avgFee": 372,
"height": 963326,
"poolId": 73,
"reward": 313786694,
"weight": 3993529,
"txCount": 3457,
"version": 536944640,
"feeRange": [
0,
0,
1,
1,
1,
1,
60
],
"poolName": "ViaBTC",
"poolSlug": "viabtc",
"avgTxSize": 496,
"matchRate": 94.59,
"medianFee": 1,
"totalFees": 1286694,
"avgFeeRate": 1,
"difficulty": 127479855693691.4,
"medianTime": 1787238880,
"merkleRoot": "35142a559442b7c4a1bb0d8b55edebe3cfa506ba36997421a03983d2c12bebfe",
"similarity": null,
"totalInputs": 8966,
"virtualSize": 998382.25,
"expectedFees": 1303252,
"totalOutputs": 6963,
"utxoSetChange": -2003,
"expectedWeight": 3991896,
"segwitTotalTxs": 3196,
"totalOutputAmt": 671518441880,
"coinbaseAddress": "1PuJjnF476W3zXfVYmJfGnouzFDAXakkL4",
"segwitTotalSize": 1570440,
"previousBlockHash": "00000000000000000001cf93d5567acdbcf00d32bc9e160dffc625949774b9b2",
"segwitTotalWeight": 3414897
},
{
"bits": 386020669,
"date": "2026-08-20T15:39:01.000Z",
"hash": "00000000000000000001cf93d5567acdbcf00d32bc9e160dffc625949774b9b2",
"size": 1600039,
"time": 1787240341,
"nonce": 1935619878,
"stale": false,
"avgFee": 897,
"height": 963325,
"poolId": 102,
"reward": 315722504,
"weight": 3993655,
"txCount": 3592,
"version": 536936448,
"feeRange": [
0,
1,
2,
2,
3,
5,
200
],
"poolName": "SpiderPool",
"poolSlug": "spiderpool",
"avgTxSize": 445.3,
"matchRate": 99.03,
"medianFee": 2,
"totalFees": 3222504,
"avgFeeRate": 3,
"difficulty": 127479855693691.4,
"medianTime": 1787238429,
"merkleRoot": "c539da26f745fd83c905ef7220a51812f8f89abd9977f4886fa2df3c79290255",
"similarity": null,
"totalInputs": 8655,
"virtualSize": 998413.75,
"expectedFees": 3223292,
"totalOutputs": 7943,
"utxoSetChange": -712,
"expectedWeight": 3991764,
"segwitTotalTxs": 3174,
"totalOutputAmt": 921523360758,
"coinbaseAddress": "1BM1sAcrfV6d4zPKytzziu4McLQDsFC2Qc",
"segwitTotalSize": 1390155,
"previousBlockHash": "000000000000000000022f062782ab666902fda1b880ec7ce12b76193b622ccc",
"segwitTotalWeight": 3154227
},
{
"bits": 386020669,
"date": "2026-08-20T15:34:24.000Z",
"hash": "000000000000000000022f062782ab666902fda1b880ec7ce12b76193b622ccc",
"size": 1598037,
"time": 1787240064,
"nonce": 2501336116,
"stale": false,
"avgFee": 1105,
"height": 963324,
"poolId": 44,
"reward": 317507570,
"weight": 3994074,
"txCount": 4532,
"version": 544079872,
"feeRange": [
0,
2,
3,
4,
5,
6,
302
],
"poolName": "AntPool",
"poolSlug": "antpool",
"avgTxSize": 352.49,
"matchRate": 98.35,
"medianFee": 4,
"totalFees": 5007570,
"avgFeeRate": 5,
"difficulty": 127479855693691.4,
"medianTime": 1787235905,
"merkleRoot": "bd851bfe999ca91f8e9064a7600ca82ce686aa658d261505a3bbabc37d8cf0de",
"similarity": null,
"totalInputs": 7660,
"virtualSize": 998518.5,
"expectedFees": 5102042,
"totalOutputs": 11360,
"utxoSetChange": 3700,
"expectedWeight": 3991893,
"segwitTotalTxs": 4211,
"totalOutputAmt": 1566054329974,
"coinbaseAddress": "37jKPSmbEGwgfacCr2nayn1wTaqMAbA94Z",
"segwitTotalSize": 1515137,
"previousBlockHash": "00000000000000000001bb8da6308e5994a943ca1dfb30bfbc7575a487d736c0",
"segwitTotalWeight": 3662582
},
{
"bits": 386020669,
"date": "2026-08-20T15:20:25.000Z",
"hash": "00000000000000000001bb8da6308e5994a943ca1dfb30bfbc7575a487d736c0",
"size": 1548415,
"time": 1787239225,
"nonce": 3459762381,
"stale": false,
"avgFee": 894,
"height": 963323,
"poolId": 44,
"reward": 314996382,
"weight": 3993928,
"txCount": 2793,
"version": 638132224,
"feeRange": [
0,
2,
2,
2,
2,
3,
106
],
"poolName": "AntPool",
"poolSlug": "antpool",
"avgTxSize": 554.19,
"matchRate": 93.59,
"medianFee": 2,
"totalFees": 2496382,
"avgFeeRate": 2,
"difficulty": 127479855693691.4,
"medianTime": 1787235519,
"merkleRoot": "e92af7ac9ccddfe04261334686fd3eb35fd25b653cd5b28c8dd3df3c2a08bf66",
"similarity": null,
"totalInputs": 8457,
"virtualSize": 998482,
"expectedFees": 2617355,
"totalOutputs": 6300,
"utxoSetChange": -2157,
"expectedWeight": 3991687,
"segwitTotalTxs": 2548,
"totalOutputAmt": 754662897109,
"coinbaseAddress": "37jKPSmbEGwgfacCr2nayn1wTaqMAbA94Z",
"segwitTotalSize": 1240188,
"previousBlockHash": "00000000000000000001b526d9c88a240b124f0b2e406b413627ac76cbe4973a",
"segwitTotalWeight": 2761128
}
],
"height": 963330,
"dataset": "blocks",
"provider": "mempool-space"
}
```
---
### Mempool
Pending transactions and the fee-rate histogram behind them.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:mempool-space/mempool`
- **Cache TTL:** 60s
**Parameters:**
_No parameters._
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:mempool-space/mempool" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:mempool-space/mempool", {
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:mempool-space/mempool",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 226,
"items": [
{
"vsize": 93728,
"feeRate": 5.0099845
},
{
"vsize": 51246,
"feeRate": 2.8633094
},
{
"vsize": 54421,
"feeRate": 2
},
{
"vsize": 62099,
"feeRate": 1.005336
},
{
"vsize": 50137,
"feeRate": 0.70642203
},
{
"vsize": 50840,
"feeRate": 0.5343321
},
{
"vsize": 52056,
"feeRate": 0.5043951
},
{
"vsize": 52014,
"feeRate": 0.500987
}
],
"vsize": 43778589,
"dataset": "mempool",
"txCount": 84482,
"provider": "mempool-space",
"totalFee": 8637374
}
```
---
### Difficulty Adjustment
Retarget progress and the difficulty change mempool.space projects from it.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:mempool-space/difficulty-adjustment`
- **Cache TTL:** 120s
**Parameters:**
_No parameters._
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:mempool-space/difficulty-adjustment" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:mempool-space/difficulty-adjustment", {
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:mempool-space/difficulty-adjustment",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"dataset": "difficulty-adjustment",
"provider": "mempool-space",
"timeOffset": 0,
"previousDate": "2026-08-08T19:35:55.000Z",
"previousTime": 1786217755,
"expectedBlocks": 1768.8733333333332,
"timeAvgSeconds": 609,
"progressPercent": 86.5079365079365,
"remainingBlocks": 272,
"difficultyChange": -1.3496349842272548,
"previousRetarget": 0.9889358055576736,
"remainingSeconds": 165528,
"nextRetargetHeight": 963648,
"estimatedRetargetDate": "2026-08-23T00:23:26.504Z",
"estimatedRetargetTime": 1787444607,
"adjustedTimeAvgSeconds": 609
}
```
---
### Fee Projection
The blocks mempool.space projects from the current mempool, by fee band.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:mempool-space/fee-projection`
- **Cache TTL:** 60s
**Parameters:**
_No parameters._
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:mempool-space/fee-projection" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:mempool-space/fee-projection", {
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:mempool-space/fee-projection",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"unit": "sat/vB",
"count": 8,
"items": [
{
"txCount": 5458,
"feeRange": [
0.5004868549172347,
0.5029596412556053,
0.5058749663646964,
0.5320310255673657,
0.5946145333825157,
1.019225839528326,
30.54054054054054
],
"blockSize": 1605900,
"medianFee": 0.5322800718132853,
"totalFees": 1153306,
"blockIndex": 0,
"blockVsize": 997950
},
{
"txCount": 3215,
"feeRange": [
0.41651705565529623,
0.41759319816873774,
0.41759319816873774,
0.43198191835004945,
0.452189949285385,
0.4853376378800108,
0.5008757456530016
],
"blockSize": 2082583,
"medianFee": 0.4320060088865006,
"totalFees": 444893,
"blockIndex": 1,
"blockVsize": 997999
},
{
"txCount": 7165,
"feeRange": [
0.3838383838383838,
0.41651705565529623,
0.41651705565529623,
0.41651705565529623,
0.41651705565529623,
0.41656104773975494,
0.41756594724220625
],
"blockSize": 1583481,
"medianFee": 0.4165170556552962,
"totalFees": 415722,
"blockIndex": 2,
"blockVsize": 997993.5
},
{
"txCount": 6938,
"feeRange": [
0.3832752613240418,
0.38640236792537447,
0.3962703962703963,
0.4022266115999282,
0.41651705565529623,
0.41651705565529623,
0.41651705565529623
],
"blockSize": 1590664,
"medianFee": 0.4096576576576578,
"totalFees": 403880,
"blockIndex": 3,
"blockVsize": 997987
},
{
"txCount": 419,
"feeRange": [
0.3487544483985765,
0.3700719424460432,
0.3700719424460432,
0.3700719424460432,
0.3817427385892116,
0.3861945316001793,
0.38626378552855734
],
"blockSize": 1037107,
"medianFee": 0.3749687560752076,
"totalFees": 374388,
"blockIndex": 4,
"blockVsize": 997973.5
},
{
"txCount": 60,
"feeRange": [
0.21212121212121213,
0.3314805457301668,
0.34197333333333335,
0.34197333333333335,
0.3493603881782091,
0.37402867234573034,
0.37490628384194596
],
"blockSize": 1048847,
"medianFee": 0.37402867234573034,
"totalFees": 372841,
"blockIndex": 5,
"blockVsize": 997991.75
},
{
"txCount": 252,
"feeRange": [
0.2949852507374631,
0.2966292134831461,
0.2980618124672603,
0.3000475963826749,
0.30205949656750575,
0.3143631436314363,
0.350679931712486
],
"blockSize": 2999333,
"medianFee": 0.30007109045827335,
"totalFees": 313519,
"blockIndex": 6,
"blockVsize": 997893.5
},
{
"txCount": 60988,
"feeRange": [
0.09973274888411843,
0.10364055970076447,
0.10500230998134744,
0.12021287065004276,
0.12021287065004277,
0.13023565659089015,
0.13023565659089018,
0.13023565659089018
],
"blockSize": 112784000,
"medianFee": 0.13023565659089015,
"totalFees": 5163610,
"blockIndex": 7,
"blockVsize": 36822692.75
}
],
"dataset": "fee-projection",
"provider": "mempool-space"
}
```
---
## Myfxbook
**Category:** finance · **Slug:** `myfxbook`
**Detail page:** https://zapi.ink/api/finance/myfxbook
Myfxbook community outlook — how the crowd of tracked live accounts is
**Tags:** finance, myfxbook
### Community Outlook
Myfxbook community outlook — how the crowd of tracked live accounts is
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:myfxbook/community-outlook`
- **Cache TTL:** 60s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `query` | string | query | no | Filter on symbol; the slash is optional. Omit for every symbol |
| `limit` | number | query | no | Items to return. Default 100, max 200 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:myfxbook/community-outlook?query=EURUSD&limit=100" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:myfxbook/community-outlook?query=EURUSD&limit=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:myfxbook/community-outlook?query=EURUSD&limit=100",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"asOf": "2026-08-21T02:32:50.576Z",
"count": 1,
"items": [
{
"price": 1.16957,
"symbol": "EURUSD",
"longLots": 4094.43,
"shortLots": 15259.68,
"longPercent": 21,
"avgLongPrice": 1.166,
"shortPercent": 79,
"avgShortPrice": 1.1479,
"longPositions": 12084,
"shortPositions": 46813,
"netShortPercent": 58,
"longDistancePips": 36,
"popularityPercent": 58,
"shortDistancePips": -217
}
],
"query": "EURUSD",
"total": 1,
"dataset": "community-outlook",
"provider": "myfxbook"
}
```
---
## Nasdaq
**Category:** finance · **Slug:** `nasdaq`
**Detail page:** https://zapi.ink/api/finance/nasdaq
Data resmi Nasdaq: kutipan saham/ETF/indeks dan kalender rilis laba per tanggal.
**Tags:** nasdaq, stock, earnings, usa, finance
### Quote
Kutipan satu instrumen. Angka upstream yang berformat mata uang dan persen dinormalkan ke number.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:nasdaq/quote`
- **Cache TTL:** 60s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Ticker symbol. Required. |
| `type` | enum(stock|etf|index) | query | no | Asset class the symbol belongs to. Default stock. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:nasdaq/quote?symbol=AAPL&type=stock" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:nasdaq/quote?symbol=AAPL&type=stock", {
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:nasdaq/quote?symbol=AAPL&type=stock",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"asOf": "Aug 6, 2026",
"name": "Apple Inc. Common Stock",
"price": 313.33,
"change": 0.92,
"low52w": 216.58,
"source": "nasdaq",
"symbol": "AAPL",
"volume": 34437471,
"high52w": 344.57,
"exchange": "NASDAQ-GS",
"direction": "up",
"isRealTime": false,
"marketStatus": "Closed",
"securityType": "Common Stock",
"changePercent": 0.29
}
```
---
### Earnings Calendar
Perusahaan yang merilis laba pada satu tanggal, dengan EPS aktual, perkiraan, kejutan, dan kapitalisasi pasar.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:nasdaq/earnings-calendar`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `date` | string | query | no | Trading date (YYYY-MM-DD or YYYYMMDD). Defaults to today. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:nasdaq/earnings-calendar?date=2026-08-07" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:nasdaq/earnings-calendar?date=2026-08-07", {
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:nasdaq/earnings-calendar?date=2026-08-07",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"asOf": "Fri, Aug 7, 2026",
"date": "2026-08-07",
"count": 41,
"items": [
{
"eps": 1.01,
"name": "Vistra Corp.",
"time": "time-pre-market",
"symbol": "VST",
"marketCap": 47670857326,
"epsForecast": 1.54,
"reportsCount": 4,
"fiscalQuarterEnding": "Jun/2026"
},
{
"eps": 0.43,
"name": "Take-Two Interactive Software, Inc.",
"time": "time-pre-market",
"symbol": "TTWO",
"marketCap": 43161929148,
"epsForecast": 0.08,
"reportsCount": 9,
"fiscalQuarterEnding": "Jun/2026"
},
{
"eps": 0.32,
"name": "PPL Corporation",
"time": "time-pre-market",
"symbol": "PPL",
"marketCap": 26046369532,
"epsForecast": 0.35,
"reportsCount": 5,
"fiscalQuarterEnding": "Jun/2026"
},
{
"eps": 0.36,
"name": "Plains All American Pipeline, L.P.",
"time": "time-pre-market",
"symbol": "PAA",
"marketCap": 16594105184,
"epsForecast": 0.4,
"reportsCount": 5,
"fiscalQuarterEnding": "Jun/2026"
},
{
"eps": 0.57,
"name": "Emera Incorporated",
"time": "time-pre-market",
"symbol": "EMA",
"marketCap": 15785444093,
"epsForecast": 0.51,
"reportsCount": 3,
"fiscalQuarterEnding": "Jun/2026"
},
{
"name": "Oklo Inc.",
"time": "time-pre-market",
"symbol": "OKLO",
"marketCap": 7340679742,
"reportsCount": 6,
"fiscalQuarterEnding": "Jun/2026"
},
{
"eps": 0.43,
"name": "Fluor Corporation",
"time": "time-pre-market",
"symbol": "FLR",
"marketCap": 6808907430,
"epsForecast": 0.73,
"reportsCount": 2,
"fiscalQuarterEnding": "Jun/2026"
},
{
"eps": 1.93,
"name": "Essent Group Ltd.",
"time": "time-pre-market",
"symbol": "ESNT",
"marketCap": 6036933859,
"epsForecast": 1.77,
"reportsCount": 3,
"fiscalQuarterEnding": "Jun/2026"
}
],
"source": "nasdaq"
}
```
---
## OJK
**Category:** finance · **Slug:** `ojk`
**Detail page:** https://zapi.ink/api/finance/ojk
Indonesian financial regulator data — assets under management across every regulated investment product class.
**Tags:** indonesia, regulator, mutual-funds, aum, statistics
### Assets under management
Industry AUM by product class, as the regulator publishes it.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:ojk/aum`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `product` | enum(all|KPD|Reksadana|DINFRA|RDPT|EBA|DIRE) | query | no | Restrict to one product type. Default all |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:ojk/aum?product=Reksadana" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:ojk/aum?product=Reksadana", {
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:ojk/aum?product=Reksadana",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 1,
"items": [
{
"aum": 656542402547236,
"asOf": "2026-07",
"product": "Reksadana",
"reported": true,
"description": "Mutual funds"
}
],
"source": "ojk",
"product": "Reksadana",
"currency": "IDR",
"totalAum": 656542402547236,
"latestPeriod": "2026-07"
}
```
---
### Statistik Perbankan
Statistik Perbankan Indonesia — the regulator's monthly banking statistics, as
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:ojk/statistik-perbankan`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `limit` | number | query | no | Publications to return. The index serves 10 per page and there is no page parameter. |
| `documents` | enum(true|false) | query | no | Resolve each publication's XLSX and PDF links. Default true; costs one request per entry. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:ojk/statistik-perbankan?limit=5&documents=true" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:ojk/statistik-perbankan?limit=5&documents=true", {
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:ojk/statistik-perbankan?limit=5&documents=true",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 5,
"items": [
{
"year": 2025,
"month": 6,
"title": "Statistik Perbankan Indonesia - Juni 2025",
"pdfUrl": "https://ojk.go.id/id/kanal/perbankan/data-dan-statistik/statistik-perbankan-indonesia/Documents/Pages/Statistik-Perbankan-Indonesia---Juni-2025/STATISTIK%20PERBANKAN%20INDONESIA%20%20-Juni%202025.pdf",
"period": "2025-06",
"pageUrl": "https://ojk.go.id/id/kanal/perbankan/data-dan-statistik/statistik-perbankan-indonesia/Pages/Statistik-Perbankan-Indonesia---Juni-2025.aspx",
"xlsxUrl": "https://ojk.go.id/id/kanal/perbankan/data-dan-statistik/statistik-perbankan-indonesia/Documents/Pages/Statistik-Perbankan-Indonesia---Juni-2025/STATISTIK%20PERBANKAN%20INDONESIA%20%20-Juni%202025.xlsx"
},
{
"year": 2025,
"month": 5,
"title": "Statistik Perbankan Indonesia - Mei 2025",
"pdfUrl": "https://ojk.go.id/id/kanal/perbankan/data-dan-statistik/statistik-perbankan-indonesia/Documents/Pages/Statistik-Perbankan-Indonesia---Mei-2025/STATISTIK%20PERBANKAN%20INDONESIA-MEI%202025.pdf",
"period": "2025-05",
"pageUrl": "https://ojk.go.id/id/kanal/perbankan/data-dan-statistik/statistik-perbankan-indonesia/Pages/Statistik-Perbankan-Indonesia---Mei-2025.aspx",
"xlsxUrl": "https://ojk.go.id/id/kanal/perbankan/data-dan-statistik/statistik-perbankan-indonesia/Documents/Pages/Statistik-Perbankan-Indonesia---Mei-2025/STATISTIK%20PERBANKAN%20INDONESIA-MEI%202025.xlsx"
},
{
"year": 2025,
"month": 4,
"title": "Statistik Perbankan Indonesia - April 2025",
"pdfUrl": "https://ojk.go.id/id/kanal/perbankan/data-dan-statistik/statistik-perbankan-indonesia/Documents/Pages/Statistik-Perbankan-Indonesia---April-2025/STATISTIK%20PERBANKAN%20INDONESIA%20-April%202025.pdf",
"period": "2025-04",
"pageUrl": "https://ojk.go.id/id/kanal/perbankan/data-dan-statistik/statistik-perbankan-indonesia/Pages/Statistik-Perbankan-Indonesia---April-2025.aspx",
"xlsxUrl": "https://ojk.go.id/id/kanal/perbankan/data-dan-statistik/statistik-perbankan-indonesia/Documents/Pages/Statistik-Perbankan-Indonesia---April-2025/STATISTIK%20PERBANKAN%20INDONESIA%20-April%202025.xlsx"
},
{
"year": 2025,
"month": 3,
"title": "Statistik Perbankan Indonesia - Maret 2025",
"pdfUrl": "https://ojk.go.id/id/kanal/perbankan/data-dan-statistik/statistik-perbankan-indonesia/Documents/Pages/Statistik-Perbankan-Indonesia---Maret-2025/STATISTIK%20PERBANKAN%20INDONESIA%20-Maret%202025.pdf",
"period": "2025-03",
"pageUrl": "https://ojk.go.id/id/kanal/perbankan/data-dan-statistik/statistik-perbankan-indonesia/Pages/Statistik-Perbankan-Indonesia---Maret-2025.aspx",
"xlsxUrl": "https://ojk.go.id/id/kanal/perbankan/data-dan-statistik/statistik-perbankan-indonesia/Documents/Pages/Statistik-Perbankan-Indonesia---Maret-2025/STATISTIK%20PERBANKAN%20INDONESIA%20-Maret%202025.xlsx"
},
{
"year": 2025,
"month": 2,
"title": "Statistik Perbankan Indonesia - Februari 2025",
"pdfUrl": "https://ojk.go.id/id/kanal/perbankan/data-dan-statistik/statistik-perbankan-indonesia/Documents/Pages/Statistik-Perbankan-Indonesia---Februari-2025/STATISTIK%20PERBANKAN%20INDONESIA%20-FEBRUARI%202025.pdf",
"period": "2025-02",
"pageUrl": "https://ojk.go.id/id/kanal/perbankan/data-dan-statistik/statistik-perbankan-indonesia/Pages/Statistik-Perbankan-Indonesia---Februari-2025.aspx",
"xlsxUrl": "https://ojk.go.id/id/kanal/perbankan/data-dan-statistik/statistik-perbankan-indonesia/Documents/Pages/Statistik-Perbankan-Indonesia---Februari-2025/STATISTIK%20PERBANKAN%20INDONESIA%20-FEBRUARI%202025.xlsx"
}
],
"dataset": "statistik-perbankan",
"provider": "ojk",
"latestPeriod": "2025-06"
}
```
---
### Pasar Modal
Statistik Pasar Modal — the regulator's monthly capital-market publications.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:ojk/pasar-modal`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `report` | enum(all|emisi-efek|bid-ask-spread) | query | no | Which report family. Default all — the index interleaves both. |
| `limit` | number | query | no | Publications to return. The index serves 10 per page and there is no page parameter. |
| `documents` | enum(true|false) | query | no | Resolve each publication's XLSX and PDF links. Default true; costs one request per entry. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:ojk/pasar-modal?report=emisi-efek&limit=5&documents=true" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:ojk/pasar-modal?report=emisi-efek&limit=5&documents=true", {
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:ojk/pasar-modal?report=emisi-efek&limit=5&documents=true",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 5,
"items": [
{
"year": 2026,
"month": 7,
"title": "Ikhtisar Perkembangan Emisi Efek & Aksi Korporasi - Juli 2026",
"pdfUrl": "https://ojk.go.id/id/kanal/pasar-modal/data-dan-statistik/statistik-pasar-modal/Documents/1.%20IKHTISAR%20PERKEMBANGAN%20EMISI%20EFEK%20&%20AKSI%20KORPORASI%20MINGGU%20KE-1%20JULI%202026.pdf",
"period": "2026-07",
"pageUrl": "https://ojk.go.id/id/kanal/pasar-modal/data-dan-statistik/statistik-pasar-modal/Pages/Ikhtisar-Perkembangan-Emisi-Efek-&-Aksi-Korporasi---Juli-2026.aspx",
"xlsxUrl": "https://ojk.go.id/id/kanal/pasar-modal/data-dan-statistik/statistik-pasar-modal/Documents/1.%20IKHTISAR%20PERKEMBANGAN%20EMISI%20EFEK%20&%20AKSI%20KORPORASI%20MINGGU%20KE-1%20JULI%202026.xlsx"
},
{
"year": 2026,
"month": 6,
"title": "Ikhtisar Perkembangan Emisi Efek & Aksi Korporasi - Juni 2026",
"pdfUrl": "https://ojk.go.id/id/kanal/pasar-modal/data-dan-statistik/statistik-pasar-modal/Documents/1.%20IKHTISAR%20PERKEMBANGAN%20EMISI%20EFEK%20&%20AKSI%20KORPORASI%20MINGGU%20KE-1%20JUNI%202026.pdf",
"period": "2026-06",
"pageUrl": "https://ojk.go.id/id/kanal/pasar-modal/data-dan-statistik/statistik-pasar-modal/Pages/Ikhtisar-Perkembangan-Emisi-Efek-&-Aksi-Korporasi---Juni-2026.aspx",
"xlsxUrl": "https://ojk.go.id/id/kanal/pasar-modal/data-dan-statistik/statistik-pasar-modal/Documents/1.%20IKHTISAR%20PERKEMBANGAN%20EMISI%20EFEK%20&%20AKSI%20KORPORASI%20MINGGU%20KE-1%20JUNI%202026.xlsx"
},
{
"year": 2026,
"month": 5,
"title": "Ikhtisar Perkembangan Emisi Efek & Aksi Korporasi - Mei 2026",
"pdfUrl": "https://ojk.go.id/id/kanal/pasar-modal/data-dan-statistik/statistik-pasar-modal/Documents/1.%20IKHTISAR%20PERKEMBANGAN%20EMISI%20EFEK%20&%20AKSI%20KORPORASI%20MINGGU%20KE-1%20MEI%202026.pdf",
"period": "2026-05",
"pageUrl": "https://ojk.go.id/id/kanal/pasar-modal/data-dan-statistik/statistik-pasar-modal/Pages/Ikhtisar-Perkembangan-Emisi-Efek-&-Aksi-Korporasi---Mei-2026.aspx",
"xlsxUrl": "https://ojk.go.id/id/kanal/pasar-modal/data-dan-statistik/statistik-pasar-modal/Documents/1.%20IKHTISAR%20PERKEMBANGAN%20EMISI%20EFEK%20&%20AKSI%20KORPORASI%20MINGGU%20KE-1%20MEI%202026.xlsx"
},
{
"year": 2026,
"month": 4,
"title": "Ikhtisar Perkembangan Emisi Efek & Aksi Korporasi - April 2026",
"pdfUrl": "https://ojk.go.id/id/kanal/pasar-modal/data-dan-statistik/statistik-pasar-modal/Documents/1.%20IKHTISAR%20PERKEMBANGAN%20EMISI%20EFEK%20&%20AKSI%20KORPORASI%20MINGGU%20KE-1%20APRIL%202026.pdf",
"period": "2026-04",
"pageUrl": "https://ojk.go.id/id/kanal/pasar-modal/data-dan-statistik/statistik-pasar-modal/Pages/Ikhtisar-Perkembangan-Emisi-Efek-&-Aksi-Korporasi---April-2026.aspx",
"xlsxUrl": "https://ojk.go.id/id/kanal/pasar-modal/data-dan-statistik/statistik-pasar-modal/Documents/1.%20IKHTISAR%20PERKEMBANGAN%20EMISI%20EFEK%20&%20AKSI%20KORPORASI%20MINGGU%20KE-1%20APRIL%202026.xlsx"
},
{
"year": 2026,
"month": 3,
"title": "Ikhtisar Perkembangan Emisi Efek & Aksi Korporasi - Maret 2026",
"pdfUrl": "https://ojk.go.id/id/kanal/pasar-modal/data-dan-statistik/statistik-pasar-modal/Documents/1.%20IKHTISAR%20PERKEMBANGAN%20EMISI%20EFEK%20&%20AKSI%20KORPORASI%20MINGGU%20KE-1%20MARET%202026.pdf",
"period": "2026-03",
"pageUrl": "https://ojk.go.id/id/kanal/pasar-modal/data-dan-statistik/statistik-pasar-modal/Pages/Ikhtisar-Perkembangan-Emisi-Efek-&-Aksi-Korporasi---Maret-2026.aspx",
"xlsxUrl": "https://ojk.go.id/id/kanal/pasar-modal/data-dan-statistik/statistik-pasar-modal/Documents/1.%20IKHTISAR%20PERKEMBANGAN%20EMISI%20EFEK%20&%20AKSI%20KORPORASI%20MINGGU%20KE-1%20MARET%202026.xlsx"
}
],
"report": "emisi-efek",
"dataset": "pasar-modal",
"provider": "ojk",
"latestPeriod": "2026-07"
}
```
---
## OKX
**Category:** finance · **Slug:** `okx`
**Detail page:** https://zapi.ink/api/finance/okx
OKX v5 public market data: candles with archive fallback, order books, funding, open interest and the rubik analytics series.
**Tags:** okx, crypto, derivatives, funding, open-interest, candles
### Books
Order-book snapshot for one OKX instrument.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:okx/books`
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Instrument ID, OKX's own form |
| `count` | number | query | no | Levels per side. Default 20, max 400 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:okx/books?symbol=BTC-USDT-SWAP&count=20" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:okx/books?symbol=BTC-USDT-SWAP&count=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:okx/books?symbol=BTC-USDT-SWAP&count=20",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"asks": [
{
"size": 116.79,
"price": 71647.1,
"orderCount": 15
},
{
"size": 0.01,
"price": 71647.4,
"orderCount": 1
},
{
"size": 0.01,
"price": 71647.7,
"orderCount": 1
},
{
"size": 0.02,
"price": 71647.8,
"orderCount": 1
},
{
"size": 0.32,
"price": 71647.9,
"orderCount": 2
},
{
"size": 27.64,
"price": 71648,
"orderCount": 10
}
],
"bids": [
{
"size": 245.55,
"price": 71647,
"orderCount": 24
},
{
"size": 0.01,
"price": 71645.3,
"orderCount": 1
},
{
"size": 0.01,
"price": 71645,
"orderCount": 1
},
{
"size": 2.8,
"price": 71644.9,
"orderCount": 2
},
{
"size": 66.24,
"price": 71644.8,
"orderCount": 4
},
{
"size": 17.47,
"price": 71644.7,
"orderCount": 2
}
],
"date": "2026-08-20T14:57:49.556Z",
"time": 1787237869556,
"symbol": "BTC-USDT-SWAP",
"dataset": "books",
"askCount": 20,
"bidCount": 20,
"provider": "okx",
"sequence": 334874037257
}
```
---
### Candles
OHLCV candles for one OKX instrument, with the live-window trap guarded.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:okx/candles`
- **Cache TTL:** 30s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Instrument ID, OKX's own form |
| `bar` | enum(1m|3m|5m|15m|30m|1H|2H|4H|6H|12H|1D|2D|3D|1W|1M|3M|6Hutc|12Hutc|1Dutc|2Dutc|3Dutc|1Wutc|1Mutc|3Mutc) | query | no | Candle size. The utc suffix moves the daily cut to 00:00 UTC. Default 5m |
| `end` | string | query | no | Return candles older than this. Epoch ms/s or ISO date |
| `count` | number | query | no | Candles per page. Default 100, max 300 — the exchange silently clamps anything higher |
| `page` | number | query | no | Page number, walking backwards in time. Default 1, max 20 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:okx/candles?symbol=BTC-USDT-SWAP&bar=5m&end=2026-08-14T00%3A00%3A00Z&count=100&page=1" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:okx/candles?symbol=BTC-USDT-SWAP&bar=5m&end=2026-08-14T00%3A00%3A00Z&count=100&page=1", {
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:okx/candles?symbol=BTC-USDT-SWAP&bar=5m&end=2026-08-14T00%3A00%3A00Z&count=100&page=1",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"bar": "5m",
"page": 1,
"count": 100,
"items": [
{
"low": 63660.1,
"date": "2026-08-13T15:40:00.000Z",
"high": 63731.3,
"open": 63678.2,
"close": 63695.1,
"volume": 14417.99,
"isClosed": true,
"openTime": 1786635600000,
"closeTime": 1786635899999,
"volumeQuote": 9183713.97058,
"volumeCurrency": 144.1799
},
{
"low": 63594.3,
"date": "2026-08-13T15:45:00.000Z",
"high": 63695.2,
"open": 63695.1,
"close": 63602.4,
"volume": 19226.23,
"isClosed": true,
"openTime": 1786635900000,
"closeTime": 1786636199999,
"volumeQuote": 12234135.96111,
"volumeCurrency": 192.2623
},
{
"low": 63558.4,
"date": "2026-08-13T15:50:00.000Z",
"high": 63658.8,
"open": 63602.4,
"close": 63589.9,
"volume": 26785.7,
"isClosed": true,
"openTime": 1786636200000,
"closeTime": 1786636499999,
"volumeQuote": 17034946.38627,
"volumeCurrency": 267.857
},
{
"low": 63380.1,
"date": "2026-08-13T15:55:00.000Z",
"high": 63610,
"open": 63589.9,
"close": 63383.9,
"volume": 94472.94,
"isClosed": true,
"openTime": 1786636500000,
"closeTime": 1786636799999,
"volumeQuote": 59961346.62193,
"volumeCurrency": 944.7294
},
{
"low": 63359.5,
"date": "2026-08-13T16:00:00.000Z",
"high": 63463.7,
"open": 63384,
"close": 63440.7,
"volume": 89009.19,
"isClosed": true,
"openTime": 1786636800000,
"closeTime": 1786637099999,
"volumeQuote": 56442069.28557,
"volumeCurrency": 890.0919
},
{
"low": 63377,
"date": "2026-08-13T16:05:00.000Z",
"high": 63490.5,
"open": 63440.7,
"close": 63428,
"volume": 47281.44,
"isClosed": true,
"openTime": 1786637100000,
"closeTime": 1786637399999,
"volumeQuote": 29987184.67715,
"volumeCurrency": 472.8144
}
],
"symbol": "BTC-USDT-SWAP",
"dataset": "candles",
"hasMore": true,
"nextPage": 2,
"provider": "okx",
"fromArchive": true
}
```
---
### Funding Rate History
Settled funding for one OKX perpetual.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:okx/funding-rate-history`
- **Cache TTL:** 60s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Perpetual instrument ID |
| `end` | string | query | no | Return settlements older than this. Epoch ms/s or ISO date |
| `count` | number | query | no | Settlements per page. Default 100, max 100 |
| `page` | number | query | no | Page number, walking backwards in time. Default 1, max 20 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:okx/funding-rate-history?symbol=BTC-USDT-SWAP&end=2026-08-01T00%3A00%3A00Z&count=100&page=1" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:okx/funding-rate-history?symbol=BTC-USDT-SWAP&end=2026-08-01T00%3A00%3A00Z&count=100&page=1", {
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:okx/funding-rate-history?symbol=BTC-USDT-SWAP&end=2026-08-01T00%3A00%3A00Z&count=100&page=1",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"page": 1,
"count": 100,
"items": [
{
"date": "2026-06-28T16:00:00.000Z",
"time": 1782662400000,
"method": "current_period",
"symbol": "BTC-USDT-SWAP",
"formulaType": "withRate",
"fundingRate": 0.0000395436281002,
"realizedRate": 0.0000395436281002
},
{
"date": "2026-06-29T00:00:00.000Z",
"time": 1782691200000,
"method": "current_period",
"symbol": "BTC-USDT-SWAP",
"formulaType": "withRate",
"fundingRate": 0.0000046598340778,
"realizedRate": 0.0000046598340778
},
{
"date": "2026-06-29T08:00:00.000Z",
"time": 1782720000000,
"method": "current_period",
"symbol": "BTC-USDT-SWAP",
"formulaType": "withRate",
"fundingRate": 0.0000503634854124,
"realizedRate": 0.0000503634854124
},
{
"date": "2026-06-29T16:00:00.000Z",
"time": 1782748800000,
"method": "current_period",
"symbol": "BTC-USDT-SWAP",
"formulaType": "withRate",
"fundingRate": 0.0000717956019909,
"realizedRate": 0.0000717956019909
},
{
"date": "2026-06-30T00:00:00.000Z",
"time": 1782777600000,
"method": "current_period",
"symbol": "BTC-USDT-SWAP",
"formulaType": "withRate",
"fundingRate": 0.0000845798622754,
"realizedRate": 0.0000845798622754
},
{
"date": "2026-06-30T08:00:00.000Z",
"time": 1782806400000,
"method": "current_period",
"symbol": "BTC-USDT-SWAP",
"formulaType": "withRate",
"fundingRate": 0.0000521934781504,
"realizedRate": 0.0000521934781504
}
],
"symbol": "BTC-USDT-SWAP",
"dataset": "funding-rate-history",
"hasMore": true,
"nextPage": 2,
"provider": "okx"
}
```
---
### Funding Rate
Current and next funding for one OKX perpetual, with the rate caps.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:okx/funding-rate`
- **Cache TTL:** 30s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Perpetual instrument ID |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:okx/funding-rate?symbol=BTC-USDT-SWAP" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:okx/funding-rate?symbol=BTC-USDT-SWAP", {
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:okx/funding-rate?symbol=BTC-USDT-SWAP",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"date": "2026-08-20T14:58:05.180Z",
"time": 1787237885180,
"method": "current_period",
"symbol": "BTC-USDT-SWAP",
"dataset": "funding-rate",
"premium": -0.0005606459980755,
"instType": "SWAP",
"provider": "okx",
"formulaType": "withRate",
"fundingDate": "2026-08-20T16:00:00.000Z",
"fundingRate": 0.0000694968722686,
"fundingTime": 1787241600000,
"impactValue": 20000,
"interestRate": 0.0001,
"maxFundingRate": 0.00375,
"minFundingRate": -0.00375,
"nextFundingDate": "2026-08-21T00:00:00.000Z",
"nextFundingRate": null,
"nextFundingTime": 1787270400000,
"settlementState": "settled",
"settledFundingRate": 0.0001,
"previousFundingDate": "2026-08-20T08:00:00.000Z",
"previousFundingTime": 1787212800000
}
```
---
### History Candles
The OKX candle ARCHIVE — the real backfill, 300 bars per call.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:okx/history-candles`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Instrument ID, OKX's own form |
| `bar` | enum(1m|3m|5m|15m|30m|1H|2H|4H|6H|12H|1D|2D|3D|1W|1M|3M|6Hutc|12Hutc|1Dutc|2Dutc|3Dutc|1Wutc|1Mutc|3Mutc) | query | no | Candle size. The utc suffix moves the daily cut to 00:00 UTC. Default 5m |
| `end` | string | query | no | Return candles older than this. Epoch ms/s or ISO date |
| `count` | number | query | no | Candles per page. Default 100, max 300 — the exchange silently clamps anything higher |
| `page` | number | query | no | Page number, walking backwards in time. Default 1, max 20 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:okx/history-candles?symbol=BTC-USDT-SWAP&bar=5m&end=2020-06-01T00%3A00%3A00Z&count=100&page=1" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:okx/history-candles?symbol=BTC-USDT-SWAP&bar=5m&end=2020-06-01T00%3A00%3A00Z&count=100&page=1", {
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:okx/history-candles?symbol=BTC-USDT-SWAP&bar=5m&end=2020-06-01T00%3A00%3A00Z&count=100&page=1",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"bar": "5m",
"page": 1,
"count": 100,
"items": [
{
"low": 9463,
"date": "2020-05-31T15:40:00.000Z",
"high": 9481.1,
"open": 9477,
"close": 9463.2,
"volume": 10297,
"isClosed": true,
"openTime": 1590939600000,
"closeTime": 1590939899999,
"volumeQuote": 975559.58625,
"volumeCurrency": 102.97
},
{
"low": 9455.4,
"date": "2020-05-31T15:45:00.000Z",
"high": 9472.8,
"open": 9463.1,
"close": 9461.4,
"volume": 9213,
"isClosed": true,
"openTime": 1590939900000,
"closeTime": 1590940199999,
"volumeQuote": 871856.6235,
"volumeCurrency": 92.13
},
{
"low": 9450.1,
"date": "2020-05-31T15:50:00.000Z",
"high": 9478.3,
"open": 9461.3,
"close": 9476.7,
"volume": 11532,
"isClosed": true,
"openTime": 1590940200000,
"closeTime": 1590940499999,
"volumeQuote": 1091236.57275,
"volumeCurrency": 115.32
},
{
"low": 9473.2,
"date": "2020-05-31T15:55:00.000Z",
"high": 9483.1,
"open": 9476.8,
"close": 9479.6,
"volume": 13050,
"isClosed": true,
"openTime": 1590940500000,
"closeTime": 1590940799999,
"volumeQuote": 1236993.09825,
"volumeCurrency": 130.5
},
{
"low": 9462.8,
"date": "2020-05-31T16:00:00.000Z",
"high": 9495,
"open": 9479.6,
"close": 9495,
"volume": 23036,
"isClosed": true,
"openTime": 1590940800000,
"closeTime": 1590941099999,
"volumeQuote": 2184295.88175,
"volumeCurrency": 230.36
},
{
"low": 9486.2,
"date": "2020-05-31T16:05:00.000Z",
"high": 9501.6,
"open": 9494.9,
"close": 9493,
"volume": 18142,
"isClosed": true,
"openTime": 1590941100000,
"closeTime": 1590941399999,
"volumeQuote": 1722206.32075,
"volumeCurrency": 181.42
}
],
"symbol": "BTC-USDT-SWAP",
"dataset": "history-candles",
"hasMore": true,
"nextPage": 2,
"provider": "okx"
}
```
---
### Instruments
Contract specifications for one OKX product line: tick, lot, leverage, expiry.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:okx/instruments`
- **Cache TTL:** 600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `instType` | enum(SPOT|MARGIN|SWAP|FUTURES|OPTION) | query | no | Product line. Default SWAP |
| `symbol` | string | query | no | One instrument ID. Omit to list the whole line |
| `instFamily` | string | query | no | Contract family, for FUTURES and OPTION |
| `uly` | string | query | no | Underlying, for FUTURES and OPTION |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:okx/instruments?instType=SWAP&symbol=BTC-USDT-SWAP&instFamily=BTC-USDT&uly=BTC-USD" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:okx/instruments?instType=SWAP&symbol=BTC-USDT-SWAP&instFamily=BTC-USDT&uly=BTC-USD", {
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:okx/instruments?instType=SWAP&symbol=BTC-USDT-SWAP&instFamily=BTC-USDT&uly=BTC-USD",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 1,
"items": [
{
"alias": null,
"state": "live",
"symbol": "BTC-USDT-SWAP",
"lotSize": 0.01,
"minSize": 0.01,
"instType": "SWAP",
"listDate": "2019-11-12T11:16:48.000Z",
"listTime": 1573557408000,
"ruleType": "normal",
"tickSize": 0.1,
"expiryDate": null,
"expiryTime": null,
"instFamily": "BTC-USDT",
"optionType": null,
"maxLeverage": 100,
"strikePrice": null,
"baseCurrency": null,
"contractType": "linear",
"maxLimitSize": 100000000,
"contractValue": 0.01,
"maxMarketSize": 35000,
"quoteCurrency": null,
"maxLimitAmount": 20000000,
"settleCurrency": "USDT",
"contractMultiplier": 1,
"contractValueCurrency": "BTC"
}
],
"symbol": "BTC-USDT-SWAP",
"dataset": "instruments",
"instType": "SWAP",
"provider": "okx"
}
```
---
### Long Short Ratio
Long/short account ratio across an OKX coin.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:okx/long-short-ratio`
- **Cache TTL:** 60s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `currency` | string | query | no | Coin the series is measured in. Default BTC |
| `period` | enum(5m|1H|1D) | query | no | Sampling interval. Default 5m |
| `start` | string | query | no | Oldest point to include. Epoch ms/s or ISO date |
| `end` | string | query | no | Newest point to include. Epoch ms/s or ISO date |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:okx/long-short-ratio?currency=BTC&period=5m&start=2026-08-19T00%3A00%3A00Z&end=2026-08-20T00%3A00%3A00Z" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:okx/long-short-ratio?currency=BTC&period=5m&start=2026-08-19T00%3A00%3A00Z&end=2026-08-20T00%3A00%3A00Z", {
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:okx/long-short-ratio?currency=BTC&period=5m&start=2026-08-19T00%3A00%3A00Z&end=2026-08-20T00%3A00%3A00Z",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 289,
"items": [
{
"date": "2026-08-19T00:00:00.000Z",
"time": 1787097600000,
"longShortRatio": 1.38
},
{
"date": "2026-08-19T00:05:00.000Z",
"time": 1787097900000,
"longShortRatio": 1.38
},
{
"date": "2026-08-19T00:10:00.000Z",
"time": 1787098200000,
"longShortRatio": 1.38
},
{
"date": "2026-08-19T00:15:00.000Z",
"time": 1787098500000,
"longShortRatio": 1.35
},
{
"date": "2026-08-19T00:20:00.000Z",
"time": 1787098800000,
"longShortRatio": 1.36
},
{
"date": "2026-08-19T00:25:00.000Z",
"time": 1787099100000,
"longShortRatio": 1.36
}
],
"period": "5m",
"dataset": "long-short-ratio",
"currency": "BTC",
"provider": "okx"
}
```
---
### Mark Price
Mark price for OKX derivatives, one instrument or a whole product line.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:okx/mark-price`
- **Cache TTL:** 10s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `instType` | enum(MARGIN|SWAP|FUTURES|OPTION) | query | no | Product line. Default SWAP |
| `symbol` | string | query | no | One instrument ID. Omit to list the whole line |
| `instFamily` | string | query | no | Contract family, for FUTURES and OPTION |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:okx/mark-price?instType=SWAP&symbol=BTC-USDT-SWAP&instFamily=BTC-USDT" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:okx/mark-price?instType=SWAP&symbol=BTC-USDT-SWAP&instFamily=BTC-USDT", {
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:okx/mark-price?instType=SWAP&symbol=BTC-USDT-SWAP&instFamily=BTC-USDT",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 1,
"items": [
{
"date": "2026-08-20T14:58:34.087Z",
"time": 1787237914087,
"symbol": "BTC-USDT-SWAP",
"instType": "SWAP",
"markPrice": 71637.9
}
],
"symbol": "BTC-USDT-SWAP",
"dataset": "mark-price",
"instType": "SWAP",
"provider": "okx"
}
```
---
### Open Interest Volume
Open interest and trading volume across an OKX coin, as a series.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:okx/open-interest-volume`
- **Cache TTL:** 60s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `currency` | string | query | no | Coin the series is measured in. Default BTC |
| `period` | enum(5m|1H|1D) | query | no | Sampling interval. Default 5m |
| `start` | string | query | no | Oldest point to include. Epoch ms/s or ISO date |
| `end` | string | query | no | Newest point to include. Epoch ms/s or ISO date |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:okx/open-interest-volume?currency=BTC&period=5m&start=2026-08-19T00%3A00%3A00Z&end=2026-08-20T00%3A00%3A00Z" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:okx/open-interest-volume?currency=BTC&period=5m&start=2026-08-19T00%3A00%3A00Z&end=2026-08-20T00%3A00%3A00Z", {
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:okx/open-interest-volume?currency=BTC&period=5m&start=2026-08-19T00%3A00%3A00Z&end=2026-08-20T00%3A00%3A00Z",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 289,
"items": [
{
"date": "2026-08-19T00:00:00.000Z",
"time": 1787097600000,
"volume": 4625681.3003,
"openInterest": 2734863303.818
},
{
"date": "2026-08-19T00:05:00.000Z",
"time": 1787097900000,
"volume": 19376638.5103,
"openInterest": 2732066244.4829
},
{
"date": "2026-08-19T00:10:00.000Z",
"time": 1787098200000,
"volume": 21160767.9023,
"openInterest": 2736080690.2392
},
{
"date": "2026-08-19T00:15:00.000Z",
"time": 1787098500000,
"volume": 18460955.7031,
"openInterest": 2735382416.5911
},
{
"date": "2026-08-19T00:20:00.000Z",
"time": 1787098800000,
"volume": 17187939.4254,
"openInterest": 2735341157.5042
},
{
"date": "2026-08-19T00:25:00.000Z",
"time": 1787099100000,
"volume": 8980848.8529,
"openInterest": 2734355299.2411
}
],
"period": "5m",
"dataset": "open-interest-volume",
"currency": "BTC",
"provider": "okx"
}
```
---
### Open Interest
Open interest for OKX derivatives — a live snapshot, not a series.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:okx/open-interest`
- **Cache TTL:** 30s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `instType` | enum(SWAP|FUTURES|OPTION) | query | no | Product line. Open interest is published for derivatives only |
| `symbol` | string | query | no | One instrument ID. Omit to list the whole line |
| `instFamily` | string | query | no | Contract family, for FUTURES and OPTION |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:okx/open-interest?instType=SWAP&symbol=BTC-USDT-SWAP&instFamily=BTC-USDT" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:okx/open-interest?instType=SWAP&symbol=BTC-USDT-SWAP&instFamily=BTC-USDT", {
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:okx/open-interest?instType=SWAP&symbol=BTC-USDT-SWAP&instFamily=BTC-USDT",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 1,
"items": [
{
"date": "2026-08-20T14:58:47.103Z",
"time": 1787237927103,
"symbol": "BTC-USDT-SWAP",
"instType": "SWAP",
"openInterest": 3014259.4000000125,
"openInterestUsd": 2159463662.310409,
"openInterestBase": 30142.59400000013
}
],
"symbol": "BTC-USDT-SWAP",
"dataset": "open-interest",
"instType": "SWAP",
"provider": "okx"
}
```
---
### Price Limit
The band OKX will accept orders inside for one instrument, right now.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:okx/price-limit`
- **Cache TTL:** 5s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Instrument ID, OKX's own form |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:okx/price-limit?symbol=BTC-USDT-SWAP" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:okx/price-limit?symbol=BTC-USDT-SWAP", {
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:okx/price-limit?symbol=BTC-USDT-SWAP",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"date": "2026-08-20T14:58:53.307Z",
"time": 1787237933307,
"symbol": "BTC-USDT-SWAP",
"dataset": "price-limit",
"enabled": true,
"buyLimit": 72046,
"instType": "SWAP",
"provider": "okx",
"sellLimit": 71328.7
}
```
---
### Taker Volume
Taker buy and sell volume across an OKX coin.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:okx/taker-volume`
- **Cache TTL:** 60s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `currency` | string | query | no | Coin the series is measured in. Default BTC |
| `instType` | enum(SPOT|CONTRACTS) | query | no | Where the volume is measured. Default CONTRACTS |
| `period` | enum(5m|1H|1D) | query | no | Sampling interval. Default 5m |
| `start` | string | query | no | Oldest point to include. Epoch ms/s or ISO date |
| `end` | string | query | no | Newest point to include. Epoch ms/s or ISO date |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:okx/taker-volume?currency=BTC&instType=CONTRACTS&period=5m&start=2026-08-19T00%3A00%3A00Z&end=2026-08-20T00%3A00%3A00Z" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:okx/taker-volume?currency=BTC&instType=CONTRACTS&period=5m&start=2026-08-19T00%3A00%3A00Z&end=2026-08-20T00%3A00%3A00Z", {
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:okx/taker-volume?currency=BTC&instType=CONTRACTS&period=5m&start=2026-08-19T00%3A00%3A00Z&end=2026-08-20T00%3A00%3A00Z",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 289,
"items": [
{
"date": "2026-08-19T00:00:00.000Z",
"time": 1787097600000,
"buyVolume": 1157482.2695,
"sellVolume": 3468199.0308
},
{
"date": "2026-08-19T00:05:00.000Z",
"time": 1787097900000,
"buyVolume": 4028628.1914,
"sellVolume": 15347874.6106
},
{
"date": "2026-08-19T00:10:00.000Z",
"time": 1787098200000,
"buyVolume": 4554562.4544,
"sellVolume": 16606205.4479
},
{
"date": "2026-08-19T00:15:00.000Z",
"time": 1787098500000,
"buyVolume": 2839560.0399,
"sellVolume": 15621395.6632
},
{
"date": "2026-08-19T00:20:00.000Z",
"time": 1787098800000,
"buyVolume": 5391706.8318,
"sellVolume": 11793019.5104
},
{
"date": "2026-08-19T00:25:00.000Z",
"time": 1787099100000,
"buyVolume": 5629821.6608,
"sellVolume": 3351027.1921
}
],
"period": "5m",
"dataset": "taker-volume",
"currency": "BTC",
"provider": "okx"
}
```
---
### Ticker
Live 24h snapshot for one OKX instrument.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:okx/ticker`
- **Cache TTL:** 5s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Instrument ID, OKX's own form |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:okx/ticker?symbol=BTC-USDT-SWAP" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:okx/ticker?symbol=BTC-USDT-SWAP", {
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:okx/ticker?symbol=BTC-USDT-SWAP",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"date": "2026-08-20T14:59:12.768Z",
"time": 1787237952768,
"low24h": 65856.4,
"symbol": "BTC-USDT-SWAP",
"askSize": 64.45,
"bidSize": 1072.36,
"dataset": "ticker",
"high24h": 72492.9,
"open24h": 65894.6,
"askPrice": 71728,
"bidPrice": 71727.9,
"instType": "SWAP",
"lastSize": 0.09,
"openUtc0": 69307.9,
"openUtc8": 68530,
"provider": "okx",
"lastPrice": 71727.9,
"volume24h": 22525952.7,
"volumeCurrency24h": 225259.527
}
```
---
### Tickers
Live 24h snapshot for every OKX instrument in one product line.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:okx/tickers`
- **Cache TTL:** 15s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `instType` | enum(SPOT|MARGIN|SWAP|FUTURES|OPTION) | query | no | Product line. Default SWAP |
| `instFamily` | string | query | no | Contract family, for FUTURES and OPTION |
| `uly` | string | query | no | Underlying, for FUTURES and OPTION |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:okx/tickers?instType=SWAP&instFamily=BTC-USDT&uly=BTC-USD" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:okx/tickers?instType=SWAP&instFamily=BTC-USDT&uly=BTC-USD", {
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:okx/tickers?instType=SWAP&instFamily=BTC-USDT&uly=BTC-USD",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 1,
"items": [
{
"date": "2026-08-20T14:59:22.766Z",
"time": 1787237962766,
"low24h": 65856.4,
"symbol": "BTC-USDT-SWAP",
"askSize": 194.64,
"bidSize": 419.76,
"high24h": 72492.9,
"open24h": 65894.6,
"askPrice": 71740.2,
"bidPrice": 71740.1,
"instType": "SWAP",
"lastSize": 0.6,
"openUtc0": 69307.9,
"openUtc8": 68530,
"lastPrice": 71740.2,
"volume24h": 22527583.84,
"volumeCurrency24h": 225275.8384
}
],
"dataset": "tickers",
"instType": "SWAP",
"provider": "okx"
}
```
---
### Trades
Recent public prints for one OKX instrument, newest first.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:okx/trades`
- **Cache TTL:** 5s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Instrument ID, OKX's own form |
| `count` | number | query | no | Prints to return. Default 100, max 500 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:okx/trades?symbol=BTC-USDT-SWAP&count=100" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:okx/trades?symbol=BTC-USDT-SWAP&count=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:okx/trades?symbol=BTC-USDT-SWAP&count=100",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 100,
"items": [
{
"date": "2026-08-20T14:59:27.499Z",
"side": "sell",
"size": 0.04,
"time": 1787237967499,
"price": 71745,
"symbol": "BTC-USDT-SWAP",
"tradeId": "2846741966"
},
{
"date": "2026-08-20T14:59:27.145Z",
"side": "sell",
"size": 0.07,
"time": 1787237967145,
"price": 71745,
"symbol": "BTC-USDT-SWAP",
"tradeId": "2846741965"
},
{
"date": "2026-08-20T14:59:27.127Z",
"side": "sell",
"size": 2.59,
"time": 1787237967127,
"price": 71745,
"symbol": "BTC-USDT-SWAP",
"tradeId": "2846741964"
},
{
"date": "2026-08-20T14:59:26.979Z",
"side": "buy",
"size": 3.29,
"time": 1787237966979,
"price": 71745.1,
"symbol": "BTC-USDT-SWAP",
"tradeId": "2846741963"
},
{
"date": "2026-08-20T14:59:26.963Z",
"side": "buy",
"size": 0.03,
"time": 1787237966963,
"price": 71745.1,
"symbol": "BTC-USDT-SWAP",
"tradeId": "2846741962"
},
{
"date": "2026-08-20T14:59:26.963Z",
"side": "buy",
"size": 0.01,
"time": 1787237966963,
"price": 71745.1,
"symbol": "BTC-USDT-SWAP",
"tradeId": "2846741961"
}
],
"symbol": "BTC-USDT-SWAP",
"dataset": "trades",
"provider": "okx"
}
```
---
## Pboc
**Category:** finance · **Slug:** `pboc`
**Detail page:** https://zapi.ink/api/finance/pboc
China's Loan Prime Rate, 1-year and 5-year.
**Tags:** finance, pboc
### Lpr
China's Loan Prime Rate, 1-year and 5-year.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:pboc/lpr`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `lang` | enum(en|cn) | query | no | Language of the publisher's own date labels. Default en. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:pboc/lpr?lang=en" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:pboc/lpr?lang=en", {
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:pboc/lpr?lang=en",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"lang": "en",
"count": 12,
"items": [
{
"date": "2026-08-20",
"rates": [
{
"rate": 3,
"tenor": "1Y"
},
{
"rate": 3.5,
"tenor": "5Y"
}
],
"dateLabel": "20 Aug 2026"
},
{
"date": "2026-07-20",
"rates": [
{
"rate": 3,
"tenor": "1Y"
},
{
"rate": 3.5,
"tenor": "5Y"
}
],
"dateLabel": "20 Jul 2026"
},
{
"date": "2026-06-22",
"rates": [
{
"rate": 3,
"tenor": "1Y"
},
{
"rate": 3.5,
"tenor": "5Y"
}
],
"dateLabel": "22 Jun 2026"
},
{
"date": "2026-05-20",
"rates": [
{
"rate": 3,
"tenor": "1Y"
},
{
"rate": 3.5,
"tenor": "5Y"
}
],
"dateLabel": "20 May 2026"
},
{
"date": "2026-04-20",
"rates": [
{
"rate": 3,
"tenor": "1Y"
},
{
"rate": 3.5,
"tenor": "5Y"
}
],
"dateLabel": "20 Apr 2026"
},
{
"date": "2026-03-20",
"rates": [
{
"rate": 3,
"tenor": "1Y"
},
{
"rate": 3.5,
"tenor": "5Y"
}
],
"dateLabel": "20 Mar 2026"
},
{
"date": "2026-02-24",
"rates": [
{
"rate": 3,
"tenor": "1Y"
},
{
"rate": 3.5,
"tenor": "5Y"
}
],
"dateLabel": "24 Feb 2026"
},
{
"date": "2026-01-20",
"rates": [
{
"rate": 3,
"tenor": "1Y"
},
{
"rate": 3.5,
"tenor": "5Y"
}
],
"dateLabel": "20 Jan 2026"
}
],
"tenors": [
"1Y",
"5Y"
],
"dataset": "lpr",
"provider": "pboc",
"windowEnd": "21 Aug 2026",
"latestDate": "2026-08-20",
"latestRates": [
{
"rate": 3,
"tenor": "1Y"
},
{
"rate": 3.5,
"tenor": "5Y"
}
],
"retrievedAt": "2026-08-21 10:22:43",
"windowStart": "22 Aug 2025"
}
```
---
## Pegadaian Gold
**Category:** finance · **Slug:** `pegadaian`
**Detail page:** https://zapi.ink/api/finance/pegadaian
Indonesian retail gold — the buy and sell price a state pawnbroker quotes, per gram, with daily history.
**Tags:** gold, indonesia, idr, commodity, savings
### Gold price
Today's buy and sell price per gram, and the spread.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:pegadaian/gold-price`
- **Cache TTL:** 900s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `x` | string | query | no | Unused — the current price takes no parameters |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:pegadaian/gold-price?x=" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:pegadaian/gold-price?x=", {
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:pegadaian/gold-price?x=",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"date": "2026-08-20",
"metal": "gold",
"source": "pegadaian",
"currency": "IDR",
"unitGram": 0.01,
"buyPerGram": 2490000,
"buyPerUnit": 24900,
"sellPerGram": 2622000,
"sellPerUnit": 26220,
"spreadPerGram": 132000
}
```
---
### Gold history
Daily buy/sell history over 7 to 360 days.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:pegadaian/gold-history`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `days` | enum(7|30|90|180|360) | query | no | Window length in days. Default 30 |
| `type` | enum(all|sell|buy) | query | no | Which side to return. Default all |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:pegadaian/gold-history?days=30&type=all" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:pegadaian/gold-history?days=30&type=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:pegadaian/gold-history?days=30&type=all",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"days": 30,
"type": "all",
"count": 30,
"items": [
{
"date": "2026-08-20",
"buyPerGram": 2490000,
"sellPerGram": 2622000,
"spreadPerGram": 132000
},
{
"date": "2026-08-19",
"buyPerGram": 2446000,
"sellPerGram": 2575000,
"spreadPerGram": 129000
},
{
"date": "2026-08-18",
"buyPerGram": 2474000,
"sellPerGram": 2605000,
"spreadPerGram": 131000
},
{
"date": "2026-08-17",
"buyPerGram": 2472000,
"sellPerGram": 2603000,
"spreadPerGram": 131000
},
{
"date": "2026-08-16",
"buyPerGram": 2463000,
"sellPerGram": 2593000,
"spreadPerGram": 130000
},
{
"date": "2026-08-15",
"buyPerGram": 2463000,
"sellPerGram": 2593000,
"spreadPerGram": 130000
},
{
"date": "2026-08-14",
"buyPerGram": 2452000,
"sellPerGram": 2582000,
"spreadPerGram": 130000
},
{
"date": "2026-08-13",
"buyPerGram": 2472000,
"sellPerGram": 2603000,
"spreadPerGram": 131000
}
],
"metal": "gold",
"source": "pegadaian",
"currency": "IDR"
}
```
---
### Harga Harian
The daily Tabungan Emas record itself, rather than today's point inferred from a
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:pegadaian/harga-harian`
- **Cache TTL:** 900s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `x` | string | query | no | Unused — the daily record takes no parameters |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:pegadaian/harga-harian?x=" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:pegadaian/harga-harian?x=", {
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:pegadaian/harga-harian?x=",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"date": "2026-08-20",
"metal": "gold",
"source": "pegadaian",
"currency": "IDR",
"unitGram": 0.01,
"buyPerGram": 2490000,
"buyPerUnit": 24900,
"sellPerGram": 2622000,
"sellPerUnit": 26220,
"spreadPerGram": 132000,
"buyChangePercent": 1.8,
"sellChangePercent": 1.83
}
```
---
## PIHPS (Harga Pangan)
**Category:** finance · **Slug:** `pihps`
**Detail page:** https://zapi.ink/api/finance/pihps
Harga pangan strategis harian dari Bank Indonesia: per komoditas, per provinsi, di empat tingkat pasar (tradisional, modern, pedagang besar, produsen).
**Tags:** pihps, bank-indonesia, harga-pangan, inflasi, indonesia, finance
### Food Prices
Harga harian satu komoditas per provinsi. Hari tanpa survei dikembalikan sebagai null, bukan nol.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:pihps/prices`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `commodity` | string | query | no | Commodity or category id from `pihps/commodities` (default cat_1, rice). |
| `market` | enum(1|2|3|4) | query | no | Market tier: 1 traditional (default), 2 modern, 3 wholesaler, 4 producer. |
| `province` | string | query | no | Province id from `pihps/regions`. Omit for all provinces. |
| `from` | string | query | no | Start date (YYYY-MM-DD or YYYYMMDD). Default 7 days back. |
| `to` | string | query | no | End date (YYYY-MM-DD or YYYYMMDD). Default today. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:pihps/prices?commodity=cat_1&market=1&province=13&from=2026-08-01&to=2026-08-08" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:pihps/prices?commodity=cat_1&market=1&province=13&from=2026-08-01&to=2026-08-08", {
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:pihps/prices?commodity=cat_1&market=1&province=13&from=2026-08-01&to=2026-08-08",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": "2026-08-07",
"from": "2026-08-03",
"count": 35,
"dates": [
"2026-08-03",
"2026-08-04",
"2026-08-05",
"2026-08-06",
"2026-08-07"
],
"items": [
{
"level": 0,
"prices": [
{
"date": "2026-08-03",
"price": 16200
},
{
"date": "2026-08-04",
"price": 16250
},
{
"date": "2026-08-05",
"price": 16250
},
{
"date": "2026-08-06",
"price": 16250
},
{
"date": "2026-08-07",
"price": 16250
}
],
"region": "Semua Provinsi"
},
{
"level": 1,
"prices": [
{
"date": "2026-08-03",
"price": 15650
},
{
"date": "2026-08-04",
"price": 15350
},
{
"date": "2026-08-05",
"price": 15650
},
{
"date": "2026-08-06",
"price": null
},
{
"date": "2026-08-07",
"price": 15350
}
],
"region": "Aceh"
},
{
"level": 1,
"prices": [
{
"date": "2026-08-03",
"price": 15350
},
{
"date": "2026-08-04",
"price": 15400
},
{
"date": "2026-08-05",
"price": 15400
},
{
"date": "2026-08-06",
"price": 15400
},
{
"date": "2026-08-07",
"price": 15400
}
],
"region": "Sumatera Utara"
},
{
"level": 1,
"prices": [
{
"date": "2026-08-03",
"price": 17900
},
{
"date": "2026-08-04",
"price": 17900
},
{
"date": "2026-08-05",
"price": 18150
},
{
"date": "2026-08-06",
"price": 17900
},
{
"date": "2026-08-07",
"price": 17900
}
],
"region": "Sumatera Barat"
},
{
"level": 1,
"prices": [
{
"date": "2026-08-03",
"price": 16650
},
{
"date": "2026-08-04",
"price": 16650
},
{
"date": "2026-08-05",
"price": 16650
},
{
"date": "2026-08-06",
"price": 16800
},
{
"date": "2026-08-07",
"price": 16700
}
],
"region": "Riau"
},
{
"level": 1,
"prices": [
{
"date": "2026-08-03",
"price": 15500
},
{
"date": "2026-08-04",
"price": null
},
{
"date": "2026-08-05",
"price": 15500
},
{
"date": "2026-08-06",
"price": 15500
},
{
"date": "2026-08-07",
"price": null
}
],
"region": "Kepulauan Riau"
},
{
"level": 1,
"prices": [
{
"date": "2026-08-03",
"price": 15550
},
{
"date": "2026-08-04",
"price": 15550
},
{
"date": "2026-08-05",
"price": 15550
},
{
"date": "2026-08-06",
"price": 15550
},
{
"date": "2026-08-07",
"price": 15550
}
],
"region": "Jambi"
},
{
"level": 1,
"prices": [
{
"date": "2026-08-03",
"price": 15800
},
{
"date": "2026-08-04",
"price": 15800
},
{
"date": "2026-08-05",
"price": 15850
},
{
"date": "2026-08-06",
"price": 15850
},
{
"date": "2026-08-07",
"price": 15850
}
],
"region": "Bengkulu"
}
],
"market": "1",
"source": "bank-indonesia-pihps",
"currency": "IDR",
"commodity": "cat_1"
}
```
---
### Commodities
Daftar acuan komoditas dan kategori beserta satuannya, plus empat tingkat pasar yang bisa dipilih.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:pihps/commodities`
- **Cache TTL:** 86400s
**Parameters:**
_No parameters._
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:pihps/commodities" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:pihps/commodities", {
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:pihps/commodities",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 31,
"items": [
{
"id": "cat_1",
"name": "Beras",
"unit": "kg",
"order": 1,
"categoryId": null
},
{
"id": "com_1",
"name": "Beras Kualitas Bawah I",
"unit": "kg",
"order": 1,
"categoryId": "cat_1"
},
{
"id": "cat_2",
"name": "Daging Ayam",
"unit": "kg",
"order": 2,
"categoryId": null
},
{
"id": "com_2",
"name": "Beras Kualitas Bawah II",
"unit": "kg",
"order": 2,
"categoryId": "cat_1"
},
{
"id": "cat_3",
"name": "Daging Sapi",
"unit": "kg",
"order": 3,
"categoryId": null
},
{
"id": "com_3",
"name": "Beras Kualitas Medium I",
"unit": "kg",
"order": 3,
"categoryId": "cat_1"
},
{
"id": "cat_4",
"name": "Telur Ayam",
"unit": "kg",
"order": 4,
"categoryId": null
},
{
"id": "com_4",
"name": "Beras Kualitas Medium II",
"unit": "kg",
"order": 4,
"categoryId": "cat_1"
}
],
"source": "bank-indonesia-pihps",
"markets": [
{
"id": "1",
"name": "Pasar Tradisional"
},
{
"id": "2",
"name": "Pasar Modern"
},
{
"id": "3",
"name": "Pedagang Besar"
},
{
"id": "4",
"name": "Produsen"
}
]
}
```
---
### Regions
Provinsi, atau kabupaten/kota di satu provinsi kalau `province` diisi.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:pihps/regions`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `province` | string | query | no | Province id. When set, returns that province's regencies instead of the province list. |
| `market` | enum(1|2|3|4) | query | no | Market tier the regency list applies to (default 1). |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:pihps/regions?province=13&market=1" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:pihps/regions?province=13&market=1", {
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:pihps/regions?province=13&market=1",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 1,
"items": [
{
"id": "34",
"name": "Kota Jakarta Pusat"
}
],
"level": "regency",
"source": "bank-indonesia-pihps",
"province": "13"
}
```
---
## Pintu
**Category:** finance · **Slug:** `pintu`
**Detail page:** https://zapi.ink/api/finance/pintu
Harga aset kripto di Pintu dalam rupiah, dengan perubahan harian, mingguan, bulanan, dan tahunan.
**Tags:** pintu, crypto, idr, indonesia, finance
### Prices
Seluruh pasar Pintu, atau satu pair kalau `pair` diisi.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:pintu/prices`
- **Cache TTL:** 60s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `pair` | string | query | no | Keep a single pair. Omit for the whole market. |
| `length` | number | query | no | Rows to return (default 50, max 1000) |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:pintu/prices?pair=btc%2Fidr&length=50" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:pintu/prices?pair=btc%2Fidr&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:pintu/prices?pair=btc%2Fidr&length=50",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 8,
"items": [
{
"pair": "0g/idr",
"price": 2763,
"changeDayPercent": 9.43,
"changeWeekPercent": 7.38,
"changeYearPercent": 0,
"changeMonthPercent": -21.01
},
{
"pair": "1000sats/idr",
"price": 2,
"changeDayPercent": 0,
"changeWeekPercent": 0,
"changeYearPercent": 0,
"changeMonthPercent": 0
},
{
"pair": "1inch/idr",
"price": 1494,
"changeDayPercent": 0.34,
"changeWeekPercent": 3.03,
"changeYearPercent": -67.59,
"changeMonthPercent": 15.99
},
{
"pair": "2z/idr",
"price": 981.3,
"changeDayPercent": -0.21,
"changeWeekPercent": -2.65,
"changeYearPercent": 0,
"changeMonthPercent": -23.34
},
{
"pair": "aaplx/idr",
"price": 5566632,
"changeDayPercent": -0.31,
"changeWeekPercent": 0.51,
"changeYearPercent": 48.6,
"changeMonthPercent": -1.78
},
{
"pair": "aave/idr",
"price": 1602433,
"changeDayPercent": -1.04,
"changeWeekPercent": -1.44,
"changeYearPercent": -66.04,
"changeMonthPercent": -0.55
},
{
"pair": "abbvx/idr",
"price": 4457995,
"changeDayPercent": -0.76,
"changeWeekPercent": -3.38,
"changeYearPercent": 38.34,
"changeMonthPercent": -4.28
},
{
"pair": "abton/idr",
"price": 1940602,
"changeDayPercent": -0.45,
"changeWeekPercent": 0.68,
"changeYearPercent": 0,
"changeMonthPercent": 12.07
}
],
"total": 604,
"source": "pintu",
"currency": "IDR"
}
```
---
## Pluang
**Category:** finance · **Slug:** `pluang`
**Detail page:** https://zapi.ink/api/finance/pluang
Data pasar Pluang lintas aset: order book, running trade, tradebook dan ringkasan broker per saham IDX, plus saham Amerika, emas, kripto, sinyal analis dan berita.
**Tags:** pluang, saham, idx, order-book, broker-summary, crypto, gold, finance
### Resolve Stock Code
Tukar kode saham IDX jadi id numerik Pluang. Endpoint IDX lain berkunci pada id ini.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:pluang/resolve`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `code` | string | query | yes | Stock code. Required. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:pluang/resolve?code=BBCA" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:pluang/resolve?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:pluang/resolve?code=BBCA",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"code": "BBCA",
"source": "pluang",
"stockId": 10020
}
```
---
### Quote
Kutipan satu saham IDX berikut key stats yang Pluang tampilkan: kapitalisasi pasar, volume, lot, turnover, harga rata-rata, IEP/IEV. Terima `code` atau `stockId`.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:pluang/quote`
- **Cache TTL:** 30s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `code` | string | query | no | Stock code. Either this or `stockId` is required. |
| `stockId` | number | query | no | Numeric Pluang asset id, 10000 or greater. Alternative to `code`. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:pluang/quote?code=BBCA&stockId=10020" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:pluang/quote?code=BBCA&stockId=10020", {
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:pluang/quote?code=BBCA&stockId=10020",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"code": "BBCA",
"source": "pluang",
"stockId": 10020,
"keyStats": {
"avg": "6,328.83",
"iep": "6,350",
"iev": "158.78K",
"lot": "569.54K",
"val": "360.45B",
"vol": "56.95M",
"turnover": "360.45B",
"market_cap": "778.02T"
},
"highestIndicativePrice": 6350
}
```
---
### Multi Quote
Snapshot bid/ask/OHLC beberapa saham sekaligus, maksimal 20 instrumen per panggilan.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:pluang/summary`
- **Cache TTL:** 30s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `codes` | string | query | no | Comma-separated stock codes, max 20. |
| `stockIds` | string | query | no | Comma-separated numeric ids, max 20. Alternative to `codes`. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:pluang/summary?codes=BBCA%2CTLKM&stockIds=10020%2C10048" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:pluang/summary?codes=BBCA%2CTLKM&stockIds=10020%2C10048", {
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:pluang/summary?codes=BBCA%2CTLKM&stockIds=10020%2C10048",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 2,
"items": [
{
"ask": 6350,
"bid": 6325,
"low": 6275,
"code": "BBCA",
"high": 6350,
"open": 6300,
"volume": 56953500,
"stockId": 10020,
"lastPrice": 6350,
"previousClose": 6375
},
{
"ask": 2620,
"bid": 2610,
"low": 2590,
"code": "TLKM",
"high": 2630,
"open": 2600,
"volume": 80799200,
"stockId": 10175,
"lastPrice": 2620,
"previousClose": 2590
}
],
"source": "pluang"
}
```
---
### Reference Prices
Harga acuan di tiap horizon — 1 hari, 1 minggu, 1 bulan, 3 bulan, YTD, 1 tahun, 5 tahun. Yang dikirim harga, bukan persentase.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:pluang/price-change`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `code` | string | query | no | Stock code. Either this or `stockId` is required. |
| `stockId` | number | query | no | Numeric Pluang asset id, 10000 or greater. Alternative to `code`. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:pluang/price-change?code=BBCA&stockId=10020" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:pluang/price-change?code=BBCA&stockId=10020", {
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:pluang/price-change?code=BBCA&stockId=10020",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"ytd": 8075,
"code": "BBCA",
"basis": "reference price at each horizon",
"oneDay": 6375,
"source": "pluang",
"oneWeek": 6375,
"oneYear": 8775,
"stockId": 10020,
"fiveYear": 6410,
"oneMonth": 6125,
"threeMonth": 6100
}
```
---
### Intraday Chart
Candle intraday satu sesi, berjarak 5 menit. Upstream hanya melayani satu timeframe; riwayat panjang ada di `finance:idx/stock-history`.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:pluang/chart`
- **Cache TTL:** 60s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `code` | string | query | no | Stock code. Either this or `stockId` is required. |
| `stockId` | number | query | no | Numeric Pluang asset id, 10000 or greater. Alternative to `code`. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:pluang/chart?code=BBCA&stockId=10020" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:pluang/chart?code=BBCA&stockId=10020", {
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:pluang/chart?code=BBCA&stockId=10020",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"code": "BBCA",
"count": 85,
"items": [
{
"low": 6300,
"high": 6300,
"open": 6300,
"close": 6300,
"volume": 1428700,
"endTime": "2026-08-14T02:00:00Z",
"startTime": "2026-08-14T01:55:00Z"
},
{
"low": 6300,
"high": 6350,
"open": 6300,
"close": 6325,
"volume": 1049800,
"endTime": "2026-08-14T02:05:00Z",
"startTime": "2026-08-14T02:00:00Z"
},
{
"low": 6325,
"high": 6350,
"open": 6325,
"close": 6350,
"volume": 106600,
"endTime": "2026-08-14T02:10:00Z",
"startTime": "2026-08-14T02:05:00Z"
},
{
"low": 6325,
"high": 6350,
"open": 6350,
"close": 6325,
"volume": 1256000,
"endTime": "2026-08-14T02:15:00Z",
"startTime": "2026-08-14T02:10:00Z"
},
{
"low": 6325,
"high": 6350,
"open": 6325,
"close": 6325,
"volume": 287800,
"endTime": "2026-08-14T02:20:00Z",
"startTime": "2026-08-14T02:15:00Z"
},
{
"low": 6325,
"high": 6350,
"open": 6325,
"close": 6325,
"volume": 532800,
"endTime": "2026-08-14T02:25:00Z",
"startTime": "2026-08-14T02:20:00Z"
}
],
"source": "pluang",
"stockId": 10020,
"timeFrame": "1d",
"intervalSeconds": 300
}
```
---
### Order Book
Antrean bid dan ask satu saham IDX beserta lot-nya, plus porsi bid/ask.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:pluang/orderbook`
- **Cache TTL:** 15s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `code` | string | query | no | Stock code. Either this or `stockId` is required. |
| `stockId` | number | query | no | Numeric Pluang asset id, 10000 or greater. Alternative to `code`. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:pluang/orderbook?code=BBCA&stockId=10020" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:pluang/orderbook?code=BBCA&stockId=10020", {
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:pluang/orderbook?code=BBCA&stockId=10020",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"asks": [
{
"lots": 14620,
"price": 6350
}
],
"bids": [
{
"lots": 17597,
"price": 6325
}
],
"code": "BBCA",
"source": "pluang",
"bestAsk": 6350,
"bestBid": 6325,
"stockId": 10020,
"askCount": 1,
"bidCount": 1,
"askPercent": 45,
"bidPercent": 55
}
```
---
### Running Trade
Tiap cetakan transaksi satu saham, terbaru dulu, dengan kursor untuk menarik lebih dalam. Bisa disaring per sisi agresor dan ambang lot. Tidak ada kode broker per cetakan.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:pluang/running-trades`
- **Cache TTL:** 15s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `code` | string | query | no | Stock code. Either this or `stockId` is required. |
| `stockId` | number | query | no | Numeric Pluang asset id, 10000 or greater. Alternative to `code`. |
| `action` | enum(BUY|SELL) | query | no | Keep one aggressor side. Filtered here — the upstream ignores its own tab parameter. |
| `minLot` | number | query | no | Keep prints of at least this many lots (big-print filter). |
| `cursor` | string | query | no | Continue from a previous response's `nextCursor`. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:pluang/running-trades?code=BBCA&stockId=10020&action=BUY&minLot=500&cursor=MTA3MTY%3D" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:pluang/running-trades?code=BBCA&stockId=10020&action=BUY&minLot=500&cursor=MTA3MTY%3D", {
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:pluang/running-trades?code=BBCA&stockId=10020&action=BUY&minLot=500&cursor=MTA3MTY%3D",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"code": "BBCA",
"count": 19,
"items": [
{
"lots": 200,
"time": "15:49:51",
"price": 6350,
"action": "BUY",
"sequence": 10989
},
{
"lots": 155,
"time": "15:49:51",
"price": 6350,
"action": "BUY",
"sequence": 10977
},
{
"lots": 104,
"time": "15:49:51",
"price": 6350,
"action": "BUY",
"sequence": 10958
},
{
"lots": 1355,
"time": "15:49:51",
"price": 6350,
"action": "BUY",
"sequence": 10955
},
{
"lots": 137,
"time": "15:49:48",
"price": 6325,
"action": "SELL",
"sequence": 10942
},
{
"lots": 130,
"time": "15:49:45",
"price": 6350,
"action": "BUY",
"sequence": 10927
}
],
"minLot": 100,
"source": "pluang",
"fetched": 332,
"stockId": 10020,
"nextCursor": "MTA3MTY="
}
```
---
### Tradebook
Rekap transaksi per harga, per waktu, dan per volume — ketiganya dikirim sekaligus, lengkap dengan sesi pra dan pasca.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:pluang/tradebook`
- **Cache TTL:** 30s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `code` | string | query | no | Stock code. Either this or `stockId` is required. |
| `stockId` | number | query | no | Numeric Pluang asset id, 10000 or greater. Alternative to `code`. |
| `tab` | enum(ALL|PRICE|TIME|VOLUME) | query | no | Which block fills `items`: PRICE (default), TIME or VOLUME. ALL returns the price block. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:pluang/tradebook?code=BBCA&stockId=10020&tab=PRICE" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:pluang/tradebook?code=BBCA&stockId=10020&tab=PRICE", {
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:pluang/tradebook?code=BBCA&stockId=10020&tab=PRICE",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"tab": "PRICE",
"code": "BBCA",
"count": 4,
"items": [
{
"price": 6350,
"buyFreq": 2489,
"buyLots": 53734,
"preFreq": 0,
"preLots": 0,
"postFreq": 140,
"postLots": 8465,
"sellFreq": 0,
"sellLots": 0,
"totalFreq": 3105,
"totalLots": 220983
},
{
"price": 6325,
"buyFreq": 1975,
"buyLots": 90923,
"preFreq": 0,
"preLots": 0,
"postFreq": 0,
"postLots": 0,
"sellFreq": 3125,
"sellLots": 125284,
"totalFreq": 5100,
"totalLots": 216207
},
{
"price": 6300,
"buyFreq": 230,
"buyLots": 31328,
"preFreq": 365,
"preLots": 14287,
"postFreq": 0,
"postLots": 0,
"sellFreq": 2789,
"sellLots": 85247,
"totalFreq": 3384,
"totalLots": 130862
},
{
"price": 6275,
"buyFreq": 0,
"buyLots": 0,
"preFreq": 0,
"preLots": 0,
"postFreq": 0,
"postLots": 0,
"sellFreq": 74,
"sellLots": 1483,
"totalFreq": 74,
"totalLots": 1483
}
],
"byTime": [],
"source": "pluang",
"byPrice": [
{
"price": 6350,
"buyFreq": 2489,
"buyLots": 53734,
"preFreq": 0,
"preLots": 0,
"postFreq": 140,
"postLots": 8465,
"sellFreq": 0,
"sellLots": 0,
"totalFreq": 3105,
"totalLots": 220983
},
{
"price": 6325,
"buyFreq": 1975,
"buyLots": 90923,
"preFreq": 0,
"preLots": 0,
"postFreq": 0,
"postLots": 0,
"sellFreq": 3125,
"sellLots": 125284,
"totalFreq": 5100,
"totalLots": 216207
},
{
"price": 6300,
"buyFreq": 230,
"buyLots": 31328,
"preFreq": 365,
"preLots": 14287,
"postFreq": 0,
"postLots": 0,
"sellFreq": 2789,
"sellLots": 85247,
"totalFreq": 3384,
"totalLots": 130862
},
{
"price": 6275,
"buyFreq": 0,
"buyLots": 0,
"preFreq": 0,
"preLots": 0,
"postFreq": 0,
"postLots": 0,
"sellFreq": 74,
"sellLots": 1483,
"totalFreq": 74,
"totalLots": 1483
}
],
"stockId": 10020,
"byVolume": []
}
```
---
### Broker Summary
Ringkasan broker per saham atas rentang tanggal: lot, nilai, dan harga rata-rata tiap sisi. Upstream memberi sepuluh broker teratas, bukan tabel penuh.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:pluang/broker-summary`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `code` | string | query | no | Stock code. Either this or `stockId` is required. |
| `stockId` | number | query | no | Numeric Pluang asset id, 10000 or greater. Alternative to `code`. |
| `startDate` | string | query | no | Range start (YYYY-MM-DD). Defaults to `endDate`. |
| `endDate` | string | query | no | Range end (YYYY-MM-DD). Defaults to today. |
| `net` | enum(true|false) | query | no | `true` (default) nets buy against sell per broker; `false` returns gross. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:pluang/broker-summary?code=BBCA&stockId=10020&startDate=2026-08-01&endDate=2026-08-14&net=true" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:pluang/broker-summary?code=BBCA&stockId=10020&startDate=2026-08-01&endDate=2026-08-14&net=true", {
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:pluang/broker-summary?code=BBCA&stockId=10020&startDate=2026-08-01&endDate=2026-08-14&net=true",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"net": true,
"code": "BBCA",
"count": 10,
"buyers": [
{
"lots": 1310018,
"value": 832292697500,
"broker": "ZP",
"averagePrice": 6353
},
{
"lots": 307857,
"value": 196743635000,
"broker": "RX",
"averagePrice": 6390
},
{
"lots": 191390,
"value": 122735672500,
"broker": "AZ",
"averagePrice": 6412
},
{
"lots": 98308,
"value": 66368732500,
"broker": "BK",
"averagePrice": 6751
},
{
"lots": 70975,
"value": 44601875000,
"broker": "KZ",
"averagePrice": 6284
},
{
"lots": 54720,
"value": 35565697500,
"broker": "IF",
"averagePrice": 6499
}
],
"capped": true,
"source": "pluang",
"endDate": "2026-08-14",
"sellers": [
{
"lots": 441220,
"value": 280909935000,
"broker": "AK",
"averagePrice": 6366
},
{
"lots": 300363,
"value": 189810415000,
"broker": "CC",
"averagePrice": 6319
},
{
"lots": 240852,
"value": 153742430000,
"broker": "NI",
"averagePrice": 6383
},
{
"lots": 140832,
"value": 89638357500,
"broker": "LG",
"averagePrice": 6364
},
{
"lots": 137094,
"value": 87217600000,
"broker": "PD",
"averagePrice": 6361
},
{
"lots": 129971,
"value": 83048745000,
"broker": "BB",
"averagePrice": 6389
}
],
"stockId": 10020,
"startDate": "2026-08-01"
}
```
---
### Broker List
Daftar induk broker IDX menurut Pluang, dengan klasifikasi lokal/asing versi mereka.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:pluang/brokers`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `type` | enum(LOCAL|FOREIGN) | query | no | Keep one broker type, as Pluang classifies it. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:pluang/brokers?type=FOREIGN" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:pluang/brokers?type=FOREIGN", {
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:pluang/brokers?type=FOREIGN",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"type": "FOREIGN",
"count": 23,
"items": [
{
"code": "AG",
"name": "Kiwoom Sekuritas Indonesia",
"type": "FOREIGN"
},
{
"code": "AH",
"name": "Shinhan Sekuritas Indonesia",
"type": "FOREIGN"
},
{
"code": "AI",
"name": "UOB Kay Hian Sekuritas",
"type": "FOREIGN"
},
{
"code": "AK",
"name": "UBS Sekuritas Indonesia",
"type": "FOREIGN"
},
{
"code": "BK",
"name": "J.P. Morgan Sekuritas Indonesia",
"type": "FOREIGN"
},
{
"code": "BQ",
"name": "Korea Investment and Sekuritas Indonesia",
"type": "FOREIGN"
}
],
"source": "pluang"
}
```
---
### Fundamentals
EPS aktual per kuartal, ikhtisar, dan rasio valuasi/profitabilitas satu emiten.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:pluang/fundamentals`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `code` | string | query | no | Stock code. Either this or `stockId` is required. |
| `stockId` | number | query | no | Numeric Pluang asset id, 10000 or greater. Alternative to `code`. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:pluang/fundamentals?code=BBCA&stockId=10020" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:pluang/fundamentals?code=BBCA&stockId=10020", {
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:pluang/fundamentals?code=BBCA&stockId=10020",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"code": "BBCA",
"ratios": {
"dividend": {
"ttm": "5.61%",
"payoutRatio": "0.12%",
"dividendPerShare": "55"
},
"solvency": {
"cr": "-",
"de": "4.6%"
},
"valuation": {
"pb": "2.78x",
"pe": "13.61x",
"ps": "6.09x",
"cps": "Rp207.35",
"rps": "Rp1,042.5",
"cfps": "-"
},
"profitability": {
"gpm": "56.01%",
"npm": "45.22%",
"opm": "56.01%",
"roa": "3.63%",
"roe": "20.44%"
}
},
"source": "pluang",
"stockId": 10020,
"earnings": [
{
"quarter": "Q2 '25",
"actualEps": 475.51
},
{
"quarter": "Q3 '25",
"actualEps": 474.12
},
{
"quarter": "Q4 '25",
"actualEps": 466.74
},
{
"quarter": "Q1 '26",
"actualEps": 481.28
},
{
"quarter": "Q2 '26",
"actualEps": 484
}
],
"overview": {
"eps": "Rp466.74",
"bvps": "Rp2,283.24",
"revenue": "Rp127.23T",
"net_income": "Rp57.54T",
"gross_profit": "Rp71.26T"
},
"lastUpdated": "Last updated on 29 Jul 2026"
}
```
---
### Financial Statements
Neraca, arus kas, dan laba rugi satu emiten, kuartalan maupun tahunan.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:pluang/financials`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `code` | string | query | no | Stock code. Either this or `stockId` is required. |
| `stockId` | number | query | no | Numeric Pluang asset id, 10000 or greater. Alternative to `code`. |
| `period` | enum(quarterly|annually|both) | query | no | Which period block to return. Default both. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:pluang/financials?code=BBCA&stockId=10020&period=quarterly" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:pluang/financials?code=BBCA&stockId=10020&period=quarterly", {
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:pluang/financials?code=BBCA&stockId=10020&period=quarterly",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"code": "BBCA",
"period": "quarterly",
"source": "pluang",
"stockId": 10020,
"quarterly": {
"cashFlow": {
"chart": [
{
"netCF": 0,
"finance": -33082545000000,
"investing": 13076544000000,
"operating": 40923218000000,
"timeframe": "Q2\n’25"
},
{
"netCF": 0,
"finance": -32695944000000,
"investing": -18460091000000,
"operating": 65931980000000,
"timeframe": "Q3\n’25"
},
{
"netCF": 0,
"finance": -41708637000000,
"investing": -33690926000000,
"operating": 77508785000000,
"timeframe": "Q4\n’25"
},
{
"netCF": 0,
"finance": -1072636000000,
"investing": -16987375000000,
"operating": 47920728000000,
"timeframe": "Q1\n’26"
},
{
"netCF": 0,
"finance": 10516285000000,
"investing": -34324511000000,
"operating": 32261974000000,
"timeframe": "Q2\n’26"
}
],
"table": [
{
"items": [
{
"column1": {
"value": "Item"
},
"column2": {
"value": "Q2 2025"
},
"column3": {
"value": "Y/Y Change"
},
"viewType": "row"
},
{
"dividerColor": "#202224"
},
{
"column1": {
"value": "CF from Operations"
},
"column2": {
"value": "Rp40.92T"
},
"column3": {
"color": "#FF7570",
"value": "-12.63%"
},
"viewType": "row"
},
{
"column1": {
"value": "CF from Investment"
},
"column2": {
"value": "Rp13.08T"
},
"column3": {
"color": "#FF7570",
"value": "-144.07%"
},
"viewType": "row"
},
{
"column1": {
"value": "CF from Financing"
},
"column2": {
"value": "Rp33.08T"
},
"column3": {
"color": "#08F691",
"value": "+15.78%"
},
"viewType": "row"
},
{
"dividerColor": "#6B7072"
}
],
"title": "Q2\n’25",
"isSelected": false
},
{
"items": [
{
"column1": {
"value": "Item"
},
"column2": {
"value": "Q3 2025"
},
"column3": {
"value": "Y/Y Change"
},
"viewType": "row"
},
{
"dividerColor": "#202224"
},
{
"column1": {
"value": "CF from Operations"
},
"column2": {
"value": "Rp65.93T"
},
"column3": {
"color": "#FF7570",
"value": "-11.12%"
},
"viewType": "row"
},
{
"column1": {
"value": "CF from Investment"
},
"column2": {
"value": "Rp18.46T"
},
"column3": {
"color": "#FF7570",
"value": "-72.89%"
},
"viewType": "row"
},
{
"column1": {
"value": "CF from Financing"
},
"column2": {
"value": "Rp32.7T"
},
"column3": {
"color": "#08F691",
"value": "+14.42%"
},
"viewType": "row"
},
{
"dividerColor": "#6B7072"
}
],
"title": "Q3\n’25",
"isSelected": false
},
{
"items": [
{
"column1": {
"value": "Item"
},
"column2": {
"value": "Q4 2025"
},
"column3": {
"value": "Y/Y Change"
},
"viewType": "row"
},
{
"dividerColor": "#202224"
},
{
"column1": {
"value": "CF from Operations"
},
"column2": {
"value": "Rp77.51T"
},
"column3": {
"color": "#08F691",
"value": "+44.01%"
},
"viewType": "row"
},
{
"column1": {
"value": "CF from Investment"
},
"column2": {
"value": "Rp33.69T"
},
"column3": {
"color": "#FF7570",
"value": "-42.85%"
},
"viewType": "row"
},
{
"column1": {
"value": "CF from Financing"
},
"column2": {
"value": "Rp41.71T"
},
"column3": {
"color": "#08F691",
"value": "+25.14%"
},
"viewType": "row"
},
{
"dividerColor": "#6B7072"
}
],
"title": "Q4\n’25",
"isSelected": false
},
{
"items": [
{
"column1": {
"value": "Item"
},
"column2": {
"value": "Q1 2026"
},
"column3": {
"value": "Y/Y Change"
},
"viewType": "row"
},
{
"dividerColor": "#202224"
},
{
"column1": {
"value": "CF from Operations"
},
"column2": {
"value": "Rp47.92T"
},
"column3": {
"color": "#08F691",
"value": "+36.2%"
},
"viewType": "row"
},
{
"column1": {
"value": "CF from Investment"
},
"column2": {
"value": "Rp16.99T"
},
"column3": {
"color": "#08F691",
"value": "+294.98%"
},
"viewType": "row"
},
{
"column1": {
"value": "CF from Financing"
},
"column2": {
"value": "Rp1.07T"
},
"column3": {
"color": "#08F691",
"value": "+49103.49%"
},
"viewType": "row"
},
{
"dividerColor": "#6B7072"
}
],
"title": "Q1\n’26",
"isSelected": false
},
{
"items": [
{
"column1": {
"value": "Item"
},
"column2": {
"value": "Q2 2026"
},
"column3": {
"value": "Y/Y Change"
},
"viewType": "row"
},
{
"dividerColor": "#202224"
},
{
"column1": {
"value": "CF from Operations"
},
"column2": {
"value": "Rp32.26T"
},
"column3": {
"color": "#FF7570",
"value": "-21.16%"
},
"viewType": "row"
},
{
"column1": {
"value": "CF from Investment"
},
"column2": {
"value": "Rp34.32T"
},
"column3": {
"color": "#FF7570",
"value": "-362.49%"
},
"viewType": "row"
},
{
"column1": {
"value": "CF from Financing"
},
"column2": {
"value": "Rp10.52T"
},
"column3": {
"color": "#FF7570",
"value": "-131.79%"
},
"viewType": "row"
},
{
"dividerColor": "#6B7072"
}
],
"title": "Q2\n’26",
"isSelected": true
}
],
"title": "Cash Flow"
},
"balanceSheet": {
"chart": [
{
"assets": 1504118975000000,
"timeframe": "Q2\n’25",
"debtToAsset": 0.82,
"liabilities": 1233079977000000
},
{
"assets": 1538501812000000,
"timeframe": "Q3\n’25",
"debtToAsset": 0.81,
"liabilities": 1251857118000000
},
{
"assets": 1586828536000000,
"timeframe": "Q4\n’25",
"debtToAsset": 0.82,
"liabilities": 1294508286000000
},
{
"assets": 1640830566000000,
"timeframe": "Q1\n’26",
"debtToAsset": 0.84,
"liabilities": 1370360247000000
},
{
"assets": 1660579336000000,
"timeframe": "Q2\n’26",
"debtToAsset": 0.83,
"liabilities": 1379511881000000
}
],
"table": [
{
"items": [
{
"column1": {
"value": "Item"
},
"column2": {
"value": "Q2 2025"
},
"column3": {
"value": "Y/Y Change"
},
"viewType": "row"
},
{
"dividerColor": "#202224"
},
{
"column1": {
"value": "Total Assets"
},
"column2": {
"value": "Rp1504.12T"
},
"column3": {
"color": "#08F691",
"value": "+5.52%"
},
"viewType": "subheader"
},
{
"column1": {
"value": "Total Liabilities"
},
"column2": {
"value": "Rp1233.08T"
},
"column3": {
"color": "#08F691",
"value": "+4.83%"
},
"viewType": "subheader"
},
{
"column1": {
"value": "Total Equity"
},
"column2": {
"value": "Rp261.6T"
},
"column3": {
"color": "#08F691",
"value": "+8.69%"
},
"viewType": "subheader"
},
{
"column1": {
"value": "Total Liabilities & Total Equity"
},
"column2": {
"value": "Rp1494.68T"
},
"column3": {
"color": "#08F691",
"value": "+5.48%"
},
"viewType": "subheader"
}
],
"title": "Q2\n’25",
"isSelected": false
},
{
"items": [
{
"column1": {
"value": "Item"
},
"column2": {
"value": "Q3 2025"
},
"column3": {
"value": "Y/Y Change"
},
"viewType": "row"
},
{
"dividerColor": "#202224"
},
{
"column1": {
"value": "Total Assets"
},
"column2": {
"value": "Rp1538.5T"
},
"column3": {
"color": "#08F691",
"value": "+7.31%"
},
"viewType": "subheader"
},
{
"column1": {
"value": "Total Liabilities"
},
"column2": {
"value": "Rp1251.86T"
},
"column3": {
"color": "#08F691",
"value": "+7.04%"
},
"viewType": "subheader"
},
{
"column1": {
"value": "Total Equity"
},
"column2": {
"value": "Rp276.42T"
},
"column3": {
"color": "#08F691",
"value": "+8.07%"
},
"viewType": "subheader"
},
{
"column1": {
"value": "Total Liabilities & Total Equity"
},
"column2": {
"value": "Rp1528.27T"
},
"column3": {
"color": "#08F691",
"value": "+7.22%"
},
"viewType": "subheader"
}
],
"title": "Q3\n’25",
"isSelected": false
},
{
"items": [
{
"column1": {
"value": "Item"
},
"column2": {
"value": "Q4 2025"
},
"column3": {
"value": "Y/Y Change"
},
"viewType": "row"
},
{
"dividerColor": "#202224"
},
{
"column1": {
"value": "Total Assets"
},
"column2": {
"value": "Rp1586.83T"
},
"column3": {
"color": "#08F691",
"value": "+9.49%"
},
"viewType": "subheader"
},
{
"column1": {
"value": "Total Liabilities"
},
"column2": {
"value": "Rp1294.51T"
},
"column3": {
"color": "#08F691",
"value": "+9.95%"
},
"viewType": "subheader"
},
{
"column1": {
"value": "Total Equity"
},
"column2": {
"value": "Rp281.47T"
},
"column3": {
"color": "#08F691",
"value": "+7.17%"
},
"viewType": "subheader"
},
{
"column1": {
"value": "Total Liabilities & Total Equity"
},
"column2": {
"value": "Rp1575.97T"
},
"column3": {
"color": "#08F691",
"value": "+9.44%"
},
"viewType": "subheader"
}
],
"title": "Q4\n’25",
"isSelected": false
},
{
"items": [
{
"column1": {
"value": "Item"
},
"column2": {
"value": "Q1 2026"
},
"column3": {
"value": "Y/Y Change"
},
"viewType": "row"
},
{
"dividerColor": "#202224"
},
{
"column1": {
"value": "Total Assets"
},
"column2": {
"value": "Rp1640.83T"
},
"column3": {
"color": "#08F691",
"value": "+6.98%"
},
"viewType": "subheader"
},
{
"column1": {
"value": "Total Liabilities"
},
"column2": {
"value": "Rp1370.36T"
},
"column3": {
"color": "#08F691",
"value": "+7.22%"
},
"viewType": "subheader"
},
{
"column1": {
"value": "Total Equity"
},
"column2": {
"value": "Rp259.13T"
},
"column3": {
"color": "#08F691",
"value": "+5.2%"
},
"viewType": "subheader"
},
{
"column1": {
"value": "Total Liabilities & Total Equity"
},
"column2": {
"value": "Rp1629.49T"
},
"column3": {
"color": "#08F691",
"value": "+6.9%"
},
"viewType": "subheader"
}
],
"title": "Q1\n’26",
"isSelected": false
},
{
"items": [
{
"column1": {
"value": "Item"
},
"column2": {
"value": "Q2 2026"
},
"column3": {
"value": "Y/Y Change"
},
"viewType": "row"
},
{
"dividerColor": "#202224"
},
{
"column1": {
"value": "Total Assets"
},
"column2": {
"value": "Rp1660.58T"
},
"column3": {
"color": "#08F691",
"value": "+10.4%"
},
"viewType": "subheader"
},
{
"column1": {
"value": "Total Liabilities"
},
"column2": {
"value": "Rp1379.51T"
},
"column3": {
"color": "#08F691",
"value": "+11.88%"
},
"viewType": "subheader"
},
{
"column1": {
"value": "Total Equity"
},
"column2": {
"value": "Rp270.44T"
},
"column3": {
"color": "#08F691",
"value": "+3.38%"
},
"viewType": "subheader"
},
{
"column1": {
"value": "Total Liabilities & Total Equity"
},
"column2": {
"value": "Rp1649.95T"
},
"column3": {
"color": "#08F691",
"value": "+10.39%"
},
"viewType": "subheader"
}
],
"title": "Q2\n’26",
"isSelected": true
}
],
"title": "Balance Sheet"
},
"incomeStatement": {
"chart": [
{
"revenue": 75713936000000,
"timeframe": "Q2\n’25",
"profitMargin": 0.38,
"netProfitLoss": 29016414000000
},
{
"revenue": 114691174000000,
"timeframe": "Q3\n’25",
"profitMargin": 0.38,
"netProfitLoss": 43397415000000
},
{
"revenue": 127229123000000,
"timeframe": "Q4\n’25",
"profitMargin": 0.45,
"netProfitLoss": 57537287000000
},
{
"revenue": 37661317000000,
"timeframe": "Q1\n’26",
"profitMargin": 0.39,
"netProfitLoss": 14684123000000
},
{
"revenue": 75842128000000,
"timeframe": "Q2\n’26",
"profitMargin": 0.39,
"netProfitLoss": 29534446000000
}
],
"table": [
{
"items": [
{
"column1": {
"value": "Item"
},
"column2": {
"value": "Q2 2025"
},
"column3": {
"value": "Y/Y Change"
},
"viewType": "row"
},
{
"dividerColor": "#202224"
},
{
"column1": {
"value": "Revenue"
},
"column2": {
"value": "Rp75.71T"
},
"column3": {
"color": "#08F691",
"value": "+28.64%"
},
"viewType": "row"
},
{
"column1": {
"value": "Cost of Revenue"
},
"column2": {
"value": "Rp38.78T"
},
"column3": {
"color": "#08F691",
"value": "+51.27%"
},
"viewType": "row"
},
{
"dividerColor": "#202224"
},
{
"column1": {
"value": "Gross Profit"
},
"column2": {
"value": "Rp35.79T"
},
"column3": {
"color": "#08F691",
"value": "+7.74%"
},
"viewType": "subheader"
}
],
"title": "Q2\n’25",
"isSelected": false
},
{
"items": [
{
"column1": {
"value": "Item"
},
"column2": {
"value": "Q3 2025"
},
"column3": {
"value": "Y/Y Change"
},
"viewType": "row"
},
{
"dividerColor": "#202224"
},
{
"column1": {
"value": "Revenue"
},
"column2": {
"value": "Rp114.69T"
},
"column3": {
"color": "#08F691",
"value": "+7.27%"
},
"viewType": "row"
},
{
"column1": {
"value": "Cost of Revenue"
},
"column2": {
"value": "Rp58.86T"
},
"column3": {
"color": "#08F691",
"value": "+6.9%"
},
"viewType": "row"
},
{
"dividerColor": "#202224"
},
{
"column1": {
"value": "Gross Profit"
},
"column2": {
"value": "Rp53.77T"
},
"column3": {
"color": "#08F691",
"value": "+5.74%"
},
"viewType": "subheader"
}
],
"title": "Q3\n’25",
"isSelected": false
},
{
"items": [
{
"column1": {
"value": "Item"
},
"column2": {
"value": "Q4 2025"
},
"column3": {
"value": "Y/Y Change"
},
"viewType": "row"
},
{
"dividerColor": "#202224"
},
{
"column1": {
"value": "Revenue"
},
"column2": {
"value": "Rp127.23T"
},
"column3": {
"color": "#08F691",
"value": "+5.29%"
},
"viewType": "row"
},
{
"column1": {
"value": "Cost of Revenue"
},
"column2": {
"value": "Rp55.97T"
},
"column3": {
"color": "#08F691",
"value": "+6.36%"
},
"viewType": "row"
},
{
"dividerColor": "#202224"
},
{
"column1": {
"value": "Gross Profit"
},
"column2": {
"value": "Rp71.26T"
},
"column3": {
"color": "#08F691",
"value": "+4.46%"
},
"viewType": "subheader"
}
],
"title": "Q4\n’25",
"isSelected": false
},
{
"items": [
{
"column1": {
"value": "Item"
},
"column2": {
"value": "Q1 2026"
},
"column3": {
"value": "Y/Y Change"
},
"viewType": "row"
},
{
"dividerColor": "#202224"
},
{
"column1": {
"value": "Revenue"
},
"column2": {
"value": "Rp37.66T"
},
"column3": {
"color": "#08F691",
"value": "+20.05%"
},
"viewType": "row"
},
{
"column1": {
"value": "Cost of Revenue"
},
"column2": {
"value": "Rp19.08T"
},
"column3": {
"color": "#08F691",
"value": "+37.1%"
},
"viewType": "row"
},
{
"dividerColor": "#202224"
},
{
"column1": {
"value": "Gross Profit"
},
"column2": {
"value": "Rp18.08T"
},
"column3": {
"color": "#08F691",
"value": "+3.56%"
},
"viewType": "subheader"
}
],
"title": "Q1\n’26",
"isSelected": false
},
{
"items": [
{
"column1": {
"value": "Item"
},
"column2": {
"value": "Q2 2026"
},
"column3": {
"value": "Y/Y Change"
},
"viewType": "row"
},
{
"dividerColor": "#202224"
},
{
"column1": {
"value": "Revenue"
},
"column2": {
"value": "Rp75.84T"
},
"column3": {
"color": "#08F691",
"value": "+0.17%"
},
"viewType": "row"
},
{
"column1": {
"value": "Cost of Revenue"
},
"column2": {
"value": "Rp38.01T"
},
"column3": {
"color": "#FF7570",
"value": "-1.97%"
},
"viewType": "row"
},
{
"dividerColor": "#202224"
},
{
"column1": {
"value": "Gross Profit"
},
"column2": {
"value": "Rp36.45T"
},
"column3": {
"color": "#08F691",
"value": "+1.84%"
},
"viewType": "subheader"
}
],
"title": "Q2\n’26",
"isSelected": true
}
],
"title": "Income Statement"
}
}
}
```
---
### Corporate Actions
Aksi korporasi yang lalu dan yang akan datang — dividen, split, RUPS — beserta tanggal cum, ex, dan pembayarannya.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:pluang/corporate-action`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `code` | string | query | no | Stock code. Either this or `stockId` is required. |
| `stockId` | number | query | no | Numeric Pluang asset id, 10000 or greater. Alternative to `code`. |
| `when` | enum(past|upcoming|both) | query | no | Which set to return. Default both. |
| `type` | string | query | no | Keep one action type, e.g. DIVIDEND. |
| `length` | number | query | no | Rows per set (default 50, max 200) |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:pluang/corporate-action?code=BBCA&stockId=10020&when=upcoming&type=DIVIDEND&length=20" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:pluang/corporate-action?code=BBCA&stockId=10020&when=upcoming&type=DIVIDEND&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:pluang/corporate-action?code=BBCA&stockId=10020&when=upcoming&type=DIVIDEND&length=20",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"code": "BBCA",
"past": [
{
"id": "6a26c4508a75a80d34feef70",
"type": "DIVIDEND",
"title": "Dividend",
"value": "Rp20",
"fields": {
"Ex Date": "17 Jun '26",
"Cum Date": "15 Jun '26",
"Pay Date": "26 Jun '26",
"Rec Date": "18 Jun '26"
}
},
{
"id": "69b806348cf6342e72f91bc8",
"type": "DIVIDEND",
"title": "Dividend",
"value": "Rp281",
"fields": {
"Ex Date": "30 Mar '26",
"Cum Date": "27 Mar '26",
"Pay Date": "08 Apr '26",
"Rec Date": "31 Mar '26"
}
},
{
"id": "6925af95dcb9d0863b0f1890",
"type": "DIVIDEND",
"title": "Dividend",
"value": "Rp55",
"fields": {
"Ex Date": "03 Dec '25",
"Cum Date": "02 Dec '25",
"Pay Date": "22 Dec '25",
"Rec Date": "04 Dec '25"
}
},
{
"id": "68beb46f3040ab65c8e21d21",
"type": "DIVIDEND",
"title": "Dividend",
"value": "Rp250",
"fields": {
"Ex Date": "21 Mar '25",
"Cum Date": "20 Mar '25",
"Pay Date": "11 Apr '25",
"Rec Date": "24 Mar '25"
}
},
{
"id": "68beb46f3040ab65c8e21d18",
"type": "DIVIDEND",
"title": "Dividend",
"value": "Rp50",
"fields": {
"Ex Date": "21 Nov '24",
"Cum Date": "20 Nov '24",
"Pay Date": "11 Dec '24",
"Rec Date": "22 Nov '24"
}
},
{
"id": "68beb46c4c4e4258101b1d10",
"type": "DIVIDEND",
"title": "Dividend",
"value": "Rp228",
"fields": {
"Ex Date": "25 Mar '24",
"Cum Date": "22 Mar '24",
"Pay Date": "04 Apr '24",
"Rec Date": "26 Mar '24"
}
}
],
"type": "DIVIDEND",
"when": "both",
"count": 10,
"source": "pluang",
"stockId": 10020,
"upcoming": []
}
```
---
### Company Profile
Profil emiten menurut Pluang: sektor, sejarah, alamat, direksi, komisaris, pemegang saham, dan FAQ.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:pluang/company-profile`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `code` | string | query | no | Stock code. Either this or `stockId` is required. |
| `stockId` | number | query | no | Numeric Pluang asset id, 10000 or greater. Alternative to `code`. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:pluang/company-profile?code=BBCA&stockId=10020" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:pluang/company-profile?code=BBCA&stockId=10020", {
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:pluang/company-profile?code=BBCA&stockId=10020",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"code": "BBCA",
"faqs": [],
"name": "PT. Bank Central Asia Tbk",
"about": "PT. Bank Central Asia, Tbk (the Company) was established under the name of N.V. Perseroan Dagang Dan Industrie Semarang Knitting Factory based on notarial deed No. 38 of Raden Mas Soeprapto dated 10 August 1955, which was then changed to PT Bank Central Asia based on notarial deed No. 144 of Ridwan Suselo dated 21 May 1974.",
"sector": "Banks",
"source": "pluang",
"address": "Address: Menara BCA, Grand Indonesia\nJl. MH Thamrin No. 1 - Jakarta Pusat 10310\nPhone: (021) 2358 8000\nFax: (021) 2358 8300\nEmail: investor_relations@bca.co.id\nWebsite: www.bca.co.id",
"stockId": 10020,
"directors": [],
"shareholders": [
{
"name": "PT Dwimuria Investama (C)",
"share": 54.942
},
{
"name": "Share Ownership of <5 - Scripless",
"share": 42.134
},
{
"name": "Share Ownership of <5 - Scrip",
"share": 2.508
},
{
"name": "Treasury Stock",
"share": 0.351
},
{
"name": "Jahja Setiaatmadja (Komisaris)",
"share": 0.03
},
{
"name": "Tan Ho Hien/Subur (Direksi)",
"share": 0.01
}
],
"commissioners": []
}
```
---
### Similar Stocks
Saham sejenis menurut Pluang, dengan perubahan harganya.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:pluang/similar-stocks`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `code` | string | query | no | Stock code. Either this or `stockId` is required. |
| `stockId` | number | query | no | Numeric Pluang asset id, 10000 or greater. Alternative to `code`. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:pluang/similar-stocks?code=BBCA&stockId=10020" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:pluang/similar-stocks?code=BBCA&stockId=10020", {
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:pluang/similar-stocks?code=BBCA&stockId=10020",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"code": "BBCA",
"count": 20,
"items": [
{
"code": "BYAN",
"name": "Bayan Resources Tbk.",
"stockId": 10048,
"category": "INDO_STOCK",
"priceChangePercent": "+20%"
},
{
"code": "MPRO",
"name": "Maha Properti Indonesia Tbk.",
"stockId": 10407,
"category": "INDO_STOCK",
"priceChangePercent": "+17.92%"
},
{
"code": "SRAJ",
"name": "Sejahteraraya Anugrahjaya Tbk.",
"stockId": 10090,
"category": "INDO_STOCK",
"priceChangePercent": "+15.38%"
},
{
"code": "ITMG",
"name": "Indo Tambangraya Megah Tbk",
"stockId": 10069,
"category": "INDO_STOCK",
"priceChangePercent": "+2.35%"
},
{
"code": "AADI",
"name": "Adaro Andalan Indonesia Tbk.",
"stockId": 10520,
"category": "INDO_STOCK",
"priceChangePercent": "+4.14%"
},
{
"code": "MGLV",
"name": "Panca Anugrah Wisesa Tbk.",
"stockId": 10928,
"category": "INDO_STOCK",
"priceChangePercent": "+2.31%"
}
],
"source": "pluang",
"stockId": 10020
}
```
---
### Stock News
Berita per emiten IDX. Upstream membatasi 20 item per halaman, jadi jalannya paging.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:pluang/news`
- **Cache TTL:** 900s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `code` | string | query | no | Stock code. Either this or `stockId` is required. |
| `stockId` | number | query | no | Numeric Pluang asset id, 10000 or greater. Alternative to `code`. |
| `page` | number | query | no | Page number, 1-based. Default 1. |
| `size` | number | query | no | Items per page, max 20 (upstream cap). Default 20. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:pluang/news?code=BBCA&stockId=10020&page=1&size=20" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:pluang/news?code=BBCA&stockId=10020&page=1&size=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:pluang/news?code=BBCA&stockId=10020&page=1&size=20",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"code": "BBCA",
"page": 1,
"size": 20,
"count": 20,
"items": [
{
"title": "BCA DORONG PERTUMBUHAN UMKM MELALUI KREDIT RINGAN DAN EKOSISTEM BISNIS TERINTEGRASI",
"description": "PT Bank Central Asia Tbk (BCA) kembali mengukuhkan komitmennya dalam memperkuat ekosistem Usaha Mikro, Kecil, dan Menengah (UMKM) dengan menghadirkan BCA UMKM Fest 2026. Menjelang perhelatan tahunan tersebut, BCA turut menghadirkan suku bunga kredit khusus bagi pelaku UMKM yang berlaku mulai 1 Juli 2026 hingga Januari 2027.\n\nPembiayaan khusus ini bertajuk Kredit Multiguna Usaha (KMU) Hari UMKM 2026. Program ini menawarkan suku bunga mulai dari 5,81% eff p.a. serta jangka waktu kredit lebih panjang bagi UMKM, sehingga memberikan angsuran yang lebih ringan untuk pelaku usaha.\n\nWakil Presiden Direktur BCA John Kosasih menyampaikan, \"Program pembiayaan ini diharapkan dapat membantu pelaku UMKM memperoleh akses modal lebih terjangkau sehingga mampu meningkatkan kapasitas produksi, memperluas jaringan usaha, melakukan investasi, hingga menciptakan lapangan kerja baru. Dukungan pembiayaan berkelanjutan juga menjadi bagian komitmen BCA mendorong pertumbuhan ekonomi nasional melalui penguatan sektor UMKM\".\n\nSelain melalui KMU Hari UMKM 2026, BCA juga memiliki Kredit Multiguna Usaha MerDeKa (Material, Developer, dan Kontraktor) yang ditujukan bagi calon debitur di sektor properti, konstruksi, serta bahan bangunan. Produk ini diharapkan mampu menciptakan efek berganda terhadap penyerapan tenaga kerja lokal dan percepatan pertumbuhan ekonomi di sektor riil dan perumahan.\n\nLangkah ini melengkapi berbagai solusi pembiayaan inklusif BCA, termasuk transaksi dan pengembangan bisnis pelaku UMKM. Secara khusus, BCA turut mendorong pengembangan bisnis UMKM salah satunya melalui perhelatan BCA UMKM Fest 2026, yang akan digelar secara hybrid mulai 1 Agustus-20 September 2026 (online) dan pada 20-23 Agustus 2026 (offline) di Indonesia Arena, Senayan, Jakarta. Ajang ini diharapkan bisa menjadi wadah bagi pelaku usaha untuk memperluas akses pasar, mendapatkan edukasi, hingga akses pembiayaan.\n\n\"BCA berharap kehadiran berbagai solusi pembiayaan ini dapat menjawab kebutuhan pelaku usaha di berbagai sektor. Kami percaya, dukungan optimal bagi pelaku UMKM dapat berkontribusi dalam skala lebih besar bagi ekonomi nasional hingga menciptakan lapangan kerja baru demi mendorong pertumbuhan ekonomi yang inklusif,\" kata John Kosasih.\n\nPenyaluran kredit BCA ke sektor UKM menyentuh Rp134,6 triliun atau tumbuh 6% YoY per semester I 2026. Dukungan BCA terhadap UMKM diwujudkan melalui pendekatan menyeluruh berbasis tiga pilar yaitu penguatan pembiayaan, pembinaan, dan transaksi.\n\nBCA tidak hanya membuka akses permodalan terjangkau, tetapi juga memberikan edukasi bisnis serta perluasan pasar lewat inisiatif BCA Bangga Lokal, BCA UMKM Fest, Sertifikasi Halal UMKM, dan UMKM Go Export. Kemudahan ini semakin lengkap dengan efisiensi pembayaran digital berbasis QRIS BCA, aplikasi Merchant BCA, hingga layanan myBCA. Integrasi seluruh ekosistem ini dihadirkan agar UMKM Indonesia dapat bertransformasi, naik kelas, serta memperkuat daya saing secara berkelanjutan di pasar domestik maupun global. (end)",
"publishedAt": "2026-08-04T09:30:24Z"
},
{
"title": "BCA TAWARKAN SUKU BUNGA KREDIT KHUSUS BAGI UMKM HINGGA JANUARI 2027",
"description": "PT Bank Central Asia Tbk (BBCA) atau BCA menawarkan suku bunga kredit khusus bagi usaha mikro, kecil, dan menengah (UMKM) yang berlaku mulai 1 Juni 2026 hingga Januari 2027.\n\nProgram itu dijalankan melalui pembiayaan bertajuk Kredit Multiguna Usaha (KMU) Hari UMKM 2026, dengan penawaran suku bunga mulai dari 5,81 persen efektif per tahun. Jangka waktu kredit juga diberikan lebih panjang bagi UMKM agar nilai angsuran lebih ringan.\n\n\"Program pembiayaan ini diharapkan dapat membantu pelaku UMKM memperoleh akses modal lebih terjangkau, sehingga mampu meningkatkan kapasitas produksi, memperluas jaringan usaha, melakukan investasi, hingga menciptakan lapangan kerja baru,\" kata Wakil Presiden Direktur BCA John Kosasih dalam keterangan tertulis di Jakarta, Kamis.\n\nSelain KMU Hari UMKM 2026, BCA juga memiliki program Kredit Multiguna Usaha MerDeKa (Material, Developer, dan Kontraktor) yang ditujukan bagi calon debitur di sektor properti, konstruksi, serta bahan bangunan.\n\nProduk tersebut diharapkan mampu menciptakan efek berganda terhadap penyerapan tenaga kerja lokal dan percepatan pertumbuhan ekonomi di sektor riil dan perumahan.\n\nUntuk mendukung UMKM, BCA akan mengadakan UMKM Fest 2026 yang digelar secara hibrida, dengan rincian perhelatan daring sepanjang 1 Agustus hingga 20 September 2026 dan perhelatan luring pada 20-23 Agustus 2026 di Indonesia Arena, Senayan, Jakarta.\n\nKegiatan itu bertujuan untuk menjadi wadah bagi pelaku usaha memperluas akses pasar, mendapatkan edukasi, hingga akses pembiayaan.\n\nJohn mengatakan berbagai dukungan itu diharapkan dapat menjawab kebutuhan pelaku usaha di berbagai sektor.\n\n\"Kami percaya, dukungan optimal bagi pelaku UMKM dapat berkontribusi dalam skala lebih besar bagi ekonomi nasional hingga menciptakan lapangan kerja baru demi mendorong pertumbuhan ekonomi yang inklusif,\" katanya lagi.\n\nPenyaluran kredit BCA ke sektor UKM menyentuh Rp134,6 triliun atau tumbuh 6 persen (year-on-year/yoy) per semester I-2026. Dukungan terhadap UMKM disalurkan melalui pendekatan berbasis tiga pilar, yaitu penguatan pembiayaan, pembinaan, dan transaksi. (end)",
"publishedAt": "2026-07-31T00:20:07Z"
},
{
"title": "BCA BERHARAP PIMPINAN BARU BI TERUS DORONG EKONOMI NASIONAL",
"description": "Presiden Direktur PT Bank Central Asia Tbk (BBCA) atau BCA, Hendra Lembong berharap pimpinan terbaru Bank Indonesia (BI) dapat terus membantu pertumbuhan ekonomi Indonesia semakin lebih baik ke depan.\n\n\"Mengenai pertanyaan Gubernur BI, ya kita tunggu kabar berikutnya. Pesan untuk calon-calonnya, ya tentu selalu semangat untuk membantu pertumbuhan ekonomi Indonesia supaya lebih baik lagi,\" ujar Hendra dalam Konferensi Pers Paparan Kinerja Semester I-2026 BCA di Jakarta, Selasa.\n\nTerkait estafet kepemimpinan pada bank sentral tersebut, Hendra menyatakan bahwa pihaknya masih terus mencermati dinamika dan perkembangan yang ada saat ini.\n\nSeiring dengan itu, EVP Corporate Communication & Social Responsibility BCA, Hera F. Haryn menyatakan harapannya untuk pimpinan baru BI dapat bersama-sama mendorong pertumbuhan ekonomi nasional.\n\n\"Untuk terkait dengan Gubernur Bank Indonesia yang baru, kami berharap tetap memberikan semangat beliau untuk terus bersama-sama menumbuhkan perekonomian nasional, jadi bersama-sama,\" ujar Hera.\n\nPada prinsipnya, BCA mendukung upaya pemerintah dan regulator memperkuat industri jasa keuangan, serta berkomitmen menjalankan bisnis dengan menjunjung tinggi prinsip kehati-hatian dan menerapkan manajemen risiko disiplin.\n\nSebagaimana diketahui, Menteri Sekretaris Negara (Mensesneg) Prasetyo Hadi menyatakan Presiden Prabowo Subianto telah menerima pengunduran diri Gubernur BI Perry Warjiyo dan akan menindaklanjutinya sesuai mekanisme yang diatur dalam Undang-Undang (UU) BI.\n\nPrasetyo menambahkan, sesuai ketentuan dalam Undang-Undang Bank Indonesia, jabatan Gubernur BI untuk sementara akan dijalankan oleh Deputi Gubernur Senior Destry Damayanti hingga gubernur definitif ditetapkan.\n\n\"Untuk selanjutnya sesuai dengan Undang-Undang Bank Indonesia, jabatan Gubernur Bank Indonesia akan secara otomatis dijabat oleh Deputi Gubernur Senior yang selanjutnya akan menjalankan seluruh tugas sebagai Pejabat Gubernur Sementara. Di dalam catatan yang dimaksud dengan Deputi Gubernur Senior adalah ibu Destry Damayanti,\" kata Prasetyo. (end)",
"publishedAt": "2026-07-29T00:24:39Z"
},
{
"title": "BCA CATAT LABA KONSOLIDASI Rp29,5 TRILIUN DI SEMESTER I-2026",
"description": "PT Bank Central Asia Tbk (BBCA) dan entitas anak, membukukan laba bersih sebesar Rp29,5 triliun pada semester I 2026, atau tumbuh tipis dibandingkan Rp28,5 triliun pada periode sama tahun sebelumnya.\n\nLaba perseroan ditopang oleh penyaluran kredit yang tumbuh 8 persen (yoy) mencapai Rp1.036 triliun pada semester I-2026, atau untuk pertama kalinya menembus level Rp1.000 triliun.\n\n\"Kinerja pada paruh pertama 2026 ditopang berbagai hal, seperti BCA Expoversary 2026 dan penyaluran kredit produktif ke berbagai sektor. Kami memastikan penyaluran kredit perseroan dilakukan dengan selalu mempertimbangkan prinsip kehati-hatian dan kondisi likuiditas perusahaan,\" ujar Presiden Direktur BCA Hendra Lembong dalam Paparan Publik di Jakarta, Selasa.\n\nCapaian kinerja perseroan ditopang oleh pendanaan yang solid, dengan pertumbuhan giro dan tabungan (CASA) sebesar 10,2 persen (yoy) mencapai Rp1.082 triliun pada semester I 2026.\n\nKemudian, total Dana Pihak Ketiga (DPK) perseroan tumbuh 7,9 persen (yoy) mencapai Rp1.284 triliun pada semester I 2026, dengan porsi CASA perseroan mencapai sekitar 84,3 persen dari total DPK, dan Cost of Fund (CoF) konsisten terjaga.\n\n\"BCA berterima kasih atas seluruh kepercayaan nasabah setia selama ini, sehingga kami dapat terus tumbuh dan memberikan pelayanan terbaik,\" ujar Hendra,.\n\nPenyaluran kredit perseroan ditopang oleh segmen pembiayaan produktif yang mencapai Rp802 triliun pada semester I 2026, atau tumbuh 11 persen (yoy).\n\nAdapun, penyaluran kredit produktif mencakup pembiayaan korporasi yang tumbuh 13,6 persen (yoy) menjadi Rp513,4 triliun, serta kredit komersial dan UKM dengan pertumbuhan 6,6 persen (yoy) menjadi Rp288,5 triliun pada semester I 2026.\n\nKemudian, kredit hijau (green financing) perseroan tumbuh 19 persen (yoy) mencapai Rp123 triliun pada semester I 2026, salah satunya ditopang pembiayaan berkelanjutan ke sektor Energi Baru Terbarukan (EBT) yang tumbuh hingga 82 persen (yoy) menjadi Rp7,7 triliun.\n\nSelain itu, kredit kendaraan bermotor listrik tumbuh 25 persen (yoy) mencapai Rp4 triliun pada semester I 2026.\n\nSementara itu, rasio loan at risk (LAR) dan non performing loan (NPL) terjaga masing-masing 4,9 persen dan 1,9 persen. Per Juni 2026, pendapatan non bunga perseroan tercatat senilai Rp13,2 triliun atau tumbuh 11 persen (yoy). (end)",
"publishedAt": "2026-07-29T00:15:19Z"
},
{
"title": "BCA BORONG 6 PENGHARGAAN BERGENGSI DI DIGITAL CX AWARDS 2026",
"description": "PT Bank Central Asia Tbk (BCA) meraih sejumlah penghargaan pada ajang Digital CX Awards 2026 yang digelar oleh lembaga publikasi independen The Digital Banker. Penghargaan tersebut diberikan atas berbagai inovasi digital BCA melalui platform myBCA, myBCA Bisnis, dan Ocean by BCA, yang terus dikembangkan untuk menghadirkan layanan perbankan yang relevan, mudah diakses, dan berorientasi pada kebutuhan nasabah.\n\nDigital CX Awards merupakan ajang penghargaan global yang mengevaluasi dan mengapresiasi institusi keuangan dengan inovasi pengalaman nasabah digital (Digital Customer Experience) yang paling menonjol, konsisten, dan berdampak masif.\n\nPresiden Direktur BCA, Hendra Lembong, menyatakan bahwa penghargaan ini jadi motivasi bagi BCA untuk terus menghadirkan inovasi yang relevan dan berdampak positif bagi seluruh nasabah.\n\n\"Kami percaya bahwa transformasi digital harus selalu berpusat pada kebutuhan nasabah. Oleh karena itu, BCA terus mengembangkan berbagai platform dan layanan digital yang aman, mudah digunakan, dan mampu memberikan nilai tambah bagi nasabah individu maupun bisnis,\" ujar Hendra.\n\nPada ajang tersebut, di tingkat nasional, myBCA meraih penghargaan sebagai Best Retail Bank for Digital CX - Indonesia dan Ocean by BCA memperoleh predikat Highly Acclaimed untuk kategori Best Wholesale/Transaction Bank for Digital CX - Indonesia.\n\nPada kategori Customer Journey/Strategy, Ocean by BCA mencatatkan pencapaian yang membanggakan dengan meraih penghargaan Outstanding Use of Digital Channels for Improved CX - Wholesale Banking. Penghargaan ini menjadi pengakuan atas upaya BCA dalam mengoptimalkan kanal digital guna meningkatkan pengalaman dan kenyamanan nasabah korporasi dalam mengakses layanan perbankan.\n\nBCA juga meraih penghargaan Excellence in Consistent Multi-Language CX pada kategori Omni Channel, yang mencerminkan komitmen perseroan dalam menghadirkan pengalaman layanan yang konsisten dan inklusif bagi nasabah dari berbagai latar belakang melalui berbagai kanal interaksi.\n\nTidak hanya di tingkat nasional, Ocean by BCA dengan layanan myBCA Bisnis juga berhasil meraih penghargaan regional sebagai Best Wholesale/Transaction Bank for Digital CX - Southeast Asia dan penghargaan Outstanding Digital CX Cash Management Platform - Southeast Asia pada kategori Wholesale/Transaction Banking.\n\nPada kuartal I 2026, sebanyak 99,8% transaksi yang diproses BCA merupakan transaksi digital. Secara keseluruhan, total frekuensi transaksi BCA tumbuh 61% dalam 3 tahun terakhir. Selaras dengan hal tersebut, jumlah nasabah BCA mencapai 34,5 juta, atau tumbuh 18% dalam 3 tahun terakhir.\n\n\"Pertumbuhan ini tentunya turut didukung oleh lini perbankan transaksi korporasi dan komersial yang stabil melalui berbagai aplikasi dan platform kami, sekaligus memperkuat posisi BCA sebagai pilar utama dalam ekosistem digital banking dan cash management nasional,\"tambah Hendra. (end)",
"publishedAt": "2026-07-15T04:14:56Z"
},
{
"title": "BAKTI BCA GELAR WORKSHOP GASTRONOMI UNTUK PENGELOLA DESA WISATA DI LABUAN BAJO",
"description": "PT Bank Central Asia Tbk (BCA) melalui program corporate shared value (CSV) Bakti BCA menggelar workshop peningkatan keterampilan gastronomi bagi para pengelola desa binaan di Labuan Bajo, Nusa Tenggara Timur. Langkah strategis yang diikuti oleh sembilan pengelola desa Bakti BCA ini diambil sebagai bentuk komitmen nyata perusahaan dalam memperkuat pemberdayaan masyarakat dan memaksimalkan potensi lokal di wilayah Indonesia Timur.\n\nMelalui lokakarya ini, desa wisata binaan diharapkan mampu menggali kaitan kuliner lokal dengan sejarah, seni, dan budaya setempat untuk menumbuhkan inspirasi penyajian di masing-masing desa. EVP Corporate Communication & Social Responsibility BCA, Hera F. Haryn, menjelaskan bahwa kuliner lokal merupakan salah satu potensi terdekat dengan keseharian masyarakat yang dapat menjadi penggerak ekonomi berkelanjutan jika disajikan dengan standar yang lebih baik.\n\nWorkshop ini mengusung pendekatan penyajian gastronomi end-to-end, mulai dari pemilihan dan pengolahan bahan baku lokal, teknik memasak, hingga tata cara menata hidangan agar menarik di mata wisatawan. Selama pelatihan, para peserta diajak mempraktikkan langsung setiap tahapan penyajian dengan didampingi langsung oleh Dapur Tara, pelaku usaha kuliner berbasis budaya Flores di Labuan Bajo yang bertindak sebagai fasilitator.\n\nSelain di Labuan Bajo, Bakti BCA secara rutin mendampingi desa wisata binaan di berbagai wilayah Indonesia melalui pembinaan holistik untuk meningkatkan kualitas sumber daya manusia (SDM) desa. Program pengembangan tersebut mencakup pengelolaan keuangan, rumah pangan hidup (RPH), revitalisasi kebun kopi, hingga dukungan sertifikasi demi mengoptimalkan potensi ekonomi lokal di bidang kuliner, kerajinan, dan pariwisata.\n\nSeluruh kontribusi nyata tersebut dijalankan secara terstruktur melalui tiga pilar utama inisiatif Desa Bakti BCA. Ketiga pilar tersebut meliputi Usaha Berbasis Kemasyarakatan untuk memastikan kepemilikan lokal, Peningkatan Kapasitas melalui pelatihan berkala untuk penguatan SDM dan tata kelola, serta Akses Pasar untuk memberikan dukungan promosi serta perluasan pasar melalui ekosistem BCA.\n\nHera menambahkan bahwa penguatan kapasitas masyarakat desa harus dilakukan secara konsisten dan berkesinambungan agar dampaknya benar-benar terasa dalam jangka panjang. Inisiatif ini menjadi bagian dari upaya berkelanjutan Bakti BCA dalam membangun ekosistem desa yang mandiri dan berdaya saing, sekaligus memastikan setiap program memberikan dampak nyata yang dapat tumbuh berkelanjutan. (end)",
"publishedAt": "2026-07-13T06:53:36Z"
}
],
"total": 212,
"source": "pluang",
"hasMore": true,
"stockId": 10020
}
```
---
### US Stock Quote
Kutipan saham atau indeks Amerika di Pluang, termasuk sesi extended-hours. Membawa penanda `delayed` karena Pluang sendiri menyatakan harganya tertunda.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:pluang/us-stock-quote`
- **Cache TTL:** 60s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `stockId` | number | query | yes | Numeric Pluang global-stock id. Upstream accepts 10000-20000. Required. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:pluang/us-stock-quote?stockId=10751" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:pluang/us-stock-quote?stockId=10751", {
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:pluang/us-stock-quote?stockId=10751",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"change": -1.4800000000000182,
"source": "pluang",
"spread": 0,
"delayed": true,
"stockId": 10751,
"midPrice": 776.34,
"sellPrice": 776.34,
"buyBackPrice": 776.34,
"changePercent": -0.19027538505052816,
"previousClose": 777.82,
"pricePrecision": 2,
"extendedHoursMidPrice": 776.34,
"extendedHoursSellPrice": 776.34,
"extendedHoursBuyBackPrice": 776.34
}
```
---
### US Stock Closes
Harga penutupan tiap horizon untuk saham atau indeks Amerika.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:pluang/us-stock-closes`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `stockId` | number | query | yes | Numeric Pluang global-stock id. Upstream accepts 10000-20000. Required. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:pluang/us-stock-closes?stockId=10751" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:pluang/us-stock-closes?stockId=10751", {
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:pluang/us-stock-closes?stockId=10751",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"ytd": 683.21,
"basis": "closing price at each horizon",
"source": "pluang",
"oneWeek": 768.6,
"oneYear": 644.87,
"stockId": 10751,
"fiveYear": 445.92,
"oneMonth": 749.08,
"threeMonth": 742.37
}
```
---
### US Stock Financials
Laporan keuangan saham Amerika, kuartalan dan tahunan.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:pluang/us-stock-financials`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `stockId` | number | query | yes | Numeric Pluang global-stock id. Upstream accepts 10000-20000. Required. |
| `period` | enum(quarterly|annually|both) | query | no | Which period block to return. Default both. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:pluang/us-stock-financials?stockId=10738&period=quarterly" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:pluang/us-stock-financials?stockId=10738&period=quarterly", {
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:pluang/us-stock-financials?stockId=10738&period=quarterly",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"period": "both",
"source": "pluang",
"stockId": 10738,
"annually": {
"cashFlow": {
"chart": [],
"table": [],
"title": "Cash Flow"
},
"balanceSheet": {
"chart": [],
"table": [],
"title": "Balance Sheet"
},
"incomeStatement": {
"chart": [],
"table": [],
"title": "Income Statement"
}
},
"quarterly": {
"cashFlow": {
"chart": [],
"table": [],
"title": "Cash Flow"
},
"balanceSheet": {
"chart": [],
"table": [],
"title": "Balance Sheet"
},
"incomeStatement": {
"chart": [],
"table": [],
"title": "Income Statement"
}
}
}
```
---
### US Stock Technicals
Indikator teknikal saham atau indeks Amerika di enam timeframe, dari 5 menit sampai bulanan.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:pluang/us-stock-technicals`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `stockId` | number | query | yes | Numeric Pluang global-stock id. Upstream accepts 10000-20000. Required. |
| `timeFrame` | enum(FIVE_MINUTES|FIFTEEN_MINUTES|HOURLY|DAILY|WEEKLY|MONTHLY) | query | no | Indicator timeframe — the upstream's full accepted set. Default DAILY. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:pluang/us-stock-technicals?stockId=10751&timeFrame=DAILY" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:pluang/us-stock-technicals?stockId=10751&timeFrame=DAILY", {
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:pluang/us-stock-technicals?stockId=10751&timeFrame=DAILY",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"source": "pluang",
"stockId": 10751,
"timeFrame": "DAILY",
"technicals": {
"oscillators": {
"indicators": [
{
"key": "RSI_6",
"value": 70.68034557235413,
"signal": "SELL"
},
{
"key": "RSI_12",
"value": 76.83947373336737,
"signal": "SELL"
},
{
"key": "ADX_6",
"value": 78.29064295022499,
"signal": "BUY"
},
{
"key": "ADX_12",
"value": 32.8219929610966,
"signal": "BUY"
},
{
"key": "CCI_5",
"value": 166.6666666666712,
"signal": "BUY"
},
{
"key": "CCI_10",
"value": 92.81409104522271,
"signal": "NEUTRAL"
}
],
"oscillatorsSummary": {
"icon": "https://image-cdn.pluang.com/icons/light/technical-indicators/bar-neutral.svg",
"signal": "NEUTRAL",
"buyCount": 5,
"sellCount": 5,
"neutralCount": 4,
"indicatorBars": [
{
"color": "#FF504B",
"isActive": false
},
{
"color": "#FFA7A5",
"isActive": false
},
{
"color": "#D5D7DC",
"isActive": true
},
{
"color": "#8FE295",
"isActive": false
},
{
"color": "#1FC62A",
"isActive": false
}
]
}
},
"movingAverages": {
"simpleIndicators": [
{
"key": "SMA_5",
"value": 773.3980000000001,
"signal": "BUY"
},
{
"key": "SMA_10",
"value": 768.112,
"signal": "BUY"
},
{
"key": "SMA_20",
"value": 754.5276249999998,
"signal": "BUY"
},
{
"key": "SMA_50",
"value": 748.4596499999998,
"signal": "BUY"
},
{
"key": "SMA_100",
"value": 728.1498750000003,
"signal": "BUY"
},
{
"key": "SMA_200",
"value": 704.984728,
"signal": "BUY"
}
],
"exponentialIndicators": [
{
"key": "EMA_5",
"value": 773.6426666666667,
"signal": "BUY"
},
{
"key": "EMA_10",
"value": 766.925090909091,
"signal": "BUY"
},
{
"key": "EMA_20",
"value": 755.5222559523809,
"signal": "BUY"
},
{
"key": "EMA_50",
"value": 749.2599656862744,
"signal": "BUY"
},
{
"key": "EMA_100",
"value": 727.8662418316834,
"signal": "BUY"
},
{
"key": "EMA_200",
"value": 705.2115610547263,
"signal": "BUY"
}
],
"movingAveragesSummary": {
"icon": "https://image-cdn.pluang.com/icons/light/technical-indicators/bar-bullish.svg",
"signal": "BULLISH",
"buyCount": 13,
"sellCount": 0,
"neutralCount": 0,
"indicatorBars": [
{
"color": "#FF504B",
"isActive": false
},
{
"color": "#FFA7A5",
"isActive": false
},
{
"color": "#D5D7DC",
"isActive": false
},
{
"color": "#8FE295",
"isActive": false
},
{
"color": "#1FC62A",
"isActive": true
}
]
}
},
"overallSummary": {
"icon": "https://image-cdn.pluang.com/icons/light/technical-indicators/overall-bullish.svg",
"signal": "BULLISH",
"buyCount": 18,
"sellCount": 5,
"neutralCount": 4,
"indicatorBars": [
{
"color": "#FF504B",
"isActive": false
},
{
"color": "#FFA7A5",
"isActive": false
},
{
"color": "#D5D7DC",
"isActive": false
},
{
"color": "#8FE295",
"isActive": false
},
{
"color": "#1FC62A",
"isActive": true
}
]
},
"supportAndResistance": {
"indicators": [
{
"key": "R3",
"color": "#1FC62A",
"value": 783.6433333333333
},
{
"key": "R2",
"color": "#1FC62A",
"value": 781.5066666666667
},
{
"key": "R1",
"color": "#1FC62A",
"value": 779.6633333333333
},
{
"key": "PP",
"color": "#000000",
"value": 777.5266666666666
},
{
"key": "S1",
"color": "#FF504B",
"value": 775.6833333333333
},
{
"key": "S2",
"color": "#FF504B",
"value": 773.5466666666666
}
]
}
}
}
```
---
### US Stock Profile
Profil dan status perdagangan saham atau indeks Amerika di Pluang.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:pluang/us-stock-description`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `stockId` | number | query | yes | Numeric Pluang global-stock id. Upstream accepts 10000-20000. Required. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:pluang/us-stock-description?stockId=10738" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:pluang/us-stock-description?stockId=10738", {
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:pluang/us-stock-description?stockId=10738",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"source": "pluang",
"stockId": 10738,
"description": {
"icon": "https://image-cdn.pluang.com/icons/light/global-stocks/qqq.svg",
"paln": {
"stockId": 10738,
"enableBuy": false,
"enableSell": false,
"optionsInfo": {
"educationUrl": "https://pluang.com/pwa/education-option",
"onboardingUrl": "https://pluang.com/en/pwa/option-onboarding",
"isOptionsAllowed": false
},
"disabledPopup": {
"title": "Trading Dihentikan",
"description": "Trading saham tanpa leverage dihentikan untuk sementara. Kamu bisa coba lagi nanti atau gunakan saham dengan leverage sebagai gantinya. Harap diingat bahwa semakin tinggi leverage yang digunakan, semakin tinggi risikonya."
},
"socketChannels": {
"descriptionScreen": "us_stock:trade_price:10738",
"marketStatsScreen": "us_stock:trade:10738",
"transactionScreen": "us_stock:trade_price:10738"
},
"isPreMarketOpen": false,
"isPostMarketOpen": false,
"recurringEnabled": true,
"recurringOrderId": null,
"hasRecurringOrder": false,
"palnTncPopupDetails": {
"text": "Konten ini merupakan informasi yang bersifat umum, dan tidak boleh dianggap sebagai segala bentuk ajakan, rekomendasi, atau saran apa pun. Pluang Saham AS dikelola resikonya oleh PT. PG Berjangka yang memiliki izin Penyaluran Amanat Nasabah ke bursa Luar Negeri (PALN) oleh BAPPEBTI. Transaksi-mu tercatat di Kliring Berjangka Indonesia (KBI). Baca Syarat dan Ketentuan produk kami.",
"title": "Disclaimer",
"tncUrl": "https://pluang.com/tnc/us-stock-paln-terms"
},
"bufferBalancePercent": 5,
"isOvernightMarketOpen": false,
"recurringOrderDetails": null,
"transactionFeeDistribution": {
"promo": 0,
"exchangeFee": 0,
"ppnPercentage": 0,
"regFeeMultiplier": 0,
"tafFeeMultiplier": 0,
"commissionPercentage": 0.3
},
"extendedHoursTradingOnboarding": {
"icon": "https://mobile-app-production.s3.ap-southeast-1.amazonaws.com/icons/global-stocks/onboarding/24-5-onboarding.svg",
"title": "Trading kapan pun dengan 24-Hour Market",
"description": "Jangan lewatkan kesempatan trading dengan trading 24 jam. Antisipasi perilisan laporan keuangan perusahaan atau berita penting lainnya dengan trading mulai Senin pukul 07:00 WIB hingga Sabtu pukul 07:00 WIB.",
"learnMoreUrl": "https://faq.pluang.com/s/article/Pertanyaan-Umum-Seputar-24-Hour-Market",
"learnMoreText": "Untuk informasi lebih lanjut, baca di sini.",
"tradingHoursData": {
"preMarketText": "Pre-Market",
"marketOpenTime": "20:30",
"postmarketText": "After-Hours",
"marketCloseTime": "03:00",
"regularHoursText": "Jam Reguler",
"preMarketOpenTime": "15:00",
"overnightMarketText": "Overnight",
"postMarketCloseTime": "07:00",
"overnightMarketOpenTime": "07:00"
},
"timezoneDescription": "Zona waktu yang ditampilkan adalah UTC+7 (WIB)"
},
"dummyTransactionFeeDistribution": null,
"bufferBalancePercentForStopBuyPALN": {
"stopPriceThreshold": 50,
"bufferPercentAboveThreshold": 2.5,
"bufferPercentBelowThreshold": 4
}
},
"enableBuy": false,
"stockType": "PALN",
"topLabels": [
{
"url": "https://faq.pluang.com/s/article/Pertanyaan-Umum-Seputar-24-Hour-Market",
"icon": "https://mobile-app-production.s3.ap-southeast-1.amazonaws.com/icons/global-stocks/onboarding/24-5.svg",
"text": "",
"type": "24_hour_market",
"textColor": "",
"borderColor": "",
"description": "Kamu bisa trading aset ini 24 jam dalam sehari, mulai dari Senin pukul 07:00 WIB hingga Sabtu pukul 07:00 WIB. Pelajari lebih lanjut",
"backgroundColor": ""
},
{
"url": "",
"icon": "",
"text": "Hingga 4x",
"type": "intraday_leverage",
"textColor": "#463CFF",
"borderColor": "#BCBCFF",
"description": "Leverage hingga 4x tersedia untuk aset ini.",
"backgroundColor": "#EEF2FF"
},
{
"url": "",
"icon": "https://mobile-app-production.s3.ap-southeast-1.amazonaws.com/icons/global-stocks/top-labels/market-holiday.svg",
"text": "",
"type": "market_holiday",
"textColor": "",
"borderColor": "",
"description": "Pasar modal sedang ditutup karena hari libur dan akan kembali dibuka pada 17 Aug 2026, 07:00 WIB.",
"backgroundColor": ""
}
],
"enableSell": false,
"cfdLeverage": {
"stockId": 10861,
"enableBuy": false,
"enableSell": false,
"intradayInfo": {
"tag": "4x (Day Trade)",
"image": "https://image-cdn.pluang.com/icons/common/global-stocks/leverage/leverage-4x.svg",
"title": "Day trade dengan leverage 4x",
"description": "Trading dengan 4x daya beli. Kamu harus menjual semua posisi day trade pada hari trading yang sama."
},
"isMarginCall": false,
"disabledPopup": {
"title": "Trading Dihentikan",
"description": "Trading saham dengan leverage dihentikan untuk sementara. Silakan coba lagi nanti."
},
"socketChannels": {
"descriptionScreen": "us_stock:trade_price:10861",
"marketStatsScreen": "us_stock:trade:10861",
"transactionScreen": "us_stock:trade_price:10861"
},
"leverageFeeInfo": {
"title": "Leverage Daily Fee",
"description": "Biaya overnight 7,5% per tahun (0,021% per hari) akan dikenakan secara harian pada pukul 13:00 WIB apabila kamu tidak menjual sahammu hingga bursa tutup.Biaya ini akan dihitung dari nilai eksposur, dan nominal biaya harian akan bervariasi sesuai dengan harga terakhir pada saat bursa tutup."
},
"leverageOptions": [
{
"key": "2x",
"leverage": 2,
"isDefault": false,
"isIntraday": false,
"description": "Gandakan daya belimu. Posisi dikenakan biaya harian hingga ditutup."
},
{
"key": "4x (Day Trade)",
"leverage": 4,
"isDefault": true,
"isIntraday": true,
"description": "Trading dengan 4x daya beli. Posisi harus ditutup sebelum pasar modal tutup."
}
],
"marginCallPopup": {
"title": "Kamu Menerima Margin Call",
"description": "Margin level kamu telah turun di bawah 70,00%. Untuk keluar dari margin call dan menghindari likuidasi, kamu harus mengembalikan margin level ke 100,00%. Tambahkan saldo USD Margin atau jual sebagian dari posisi kamu."
},
"enableIntradayBuy": false,
"enableIntradaySell": false,
"isCfdLeverageEligible": false,
"transactionFeeDistribution": {
"promo": 0,
"exchangeFee": 0,
"ppnPercentage": 0,
"regFeeMultiplier": 0,
"tafFeeMultiplier": 0,
"commissionPercentage": 0.3
},
"dummyTransactionFeeDistribution": null,
"bufferBalancePercentForStopBuyCFD": 5
},
"displayName": "Nasdaq100 ETF",
"miniBanners": [],
"contractCode": "QQQ",
"securityType": "ETF",
"isPluangPlusUser": false,
"marketClosedIcon": "https://mobile-app-production.s3.ap-southeast-1.amazonaws.com/icons/global-stocks/market-closed.svg",
"tradingHaltActive": false,
"assetBannerMessage": {
"url": "",
"message": "",
"clickAction": "",
"messageType": "Alert",
"showMessage": false,
"showArrowButton": false
},
"topLabelsShowCount": 3,
"watchlistAssetCode": "USSTOCK:10738",
"bottomBannerMessage": {
"title": "",
"message": "",
"clickAction": "",
"description": "",
"messageType": "Alert",
"showMessage": false,
"showArrowButton": false
},
"waivedOffFeePercent": 0,
"advancedChartDetails": {
"advancedChartUrl": "https://trade.pluang.com/pwa/advance-charts?ticker=QQQ&theme=light",
"enableTradingView": true,
"advancedChartTicker": "QQQ",
"showTradingViewBetaLabel": true
},
"minimumBuyAmountPaln": 0.98,
"minimumSellAmountPaln": 0.3,
"maxWaivedOffFeeAllowed": 0,
"fillByAmountFeeBufferMultiplier": 1,
"isLeverageEligibleForInstantMarginConversion": false
}
}
```
---
### Gold Price
Harga emas Pluang per gram — beli, jual, cicilan — plus perubahan tiap horizon.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:pluang/gold-price`
- **Cache TTL:** 60s
**Parameters:**
_No parameters._
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:pluang/gold-price" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:pluang/gold-price", {
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:pluang/gold-price",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"asOf": "2026-08-15T16:06:46.760+00:00",
"unit": "gram",
"source": "pluang",
"buyPrice": 2445939,
"currency": "IDR",
"midPrice": 2498406,
"sellPrice": 2550873,
"changePercent": {
"ONE_DAY": 0.3,
"ONE_WEEK": 0.48,
"ONE_YEAR": 32.57,
"FIVE_YEAR": 199.62,
"ONE_MONTH": 6.42,
"SIX_MONTH": -12.61,
"THREE_YEAR": 153.21
},
"installmentPrice": 2550873
}
```
---
### Gold Key Stats
Ukuran risiko emas yang Pluang tampilkan, seperti drawdown tiga bulan.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:pluang/gold-stats`
- **Cache TTL:** 3600s
**Parameters:**
_No parameters._
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:pluang/gold-stats" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:pluang/gold-stats", {
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:pluang/gold-stats",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 3,
"items": [
{
"key": "3M Drawdown",
"value": "11,41%",
"description": "Tingkat penurunan harga emas dari titik puncaknya ke titik terendah. Penurunan ini dipengaruhi time frame."
},
{
"key": "Trading Activity",
"value": "41% Beli | 59% Jual",
"description": "Persentase pengguna Pluang yang meningkatkan atau mengurangi posisi investasi dalam aset bersangkutan melalui perdagangan selama 24 jam terakhir. Meningkatnya aktivitas pembelian menandakan aset ini sedang diminati."
},
{
"key": "Typical Hold Time",
"value": "215 hari",
"description": "Waktu median yang menunjukkan lamanya pengguna Pluang hold aset ini sebelum menjualnya. Waktu hold yang panjang menunjukkan sebuah tren akumulasi. Pendeknya waktu hold mengindikasikan meningkatnya pergerakan ke aset lain."
}
],
"title": "Key Stats",
"source": "pluang"
}
```
---
### Gold Performance
Titik tertinggi dan terendah emas dalam 52 minggu dan 5 tahun, beserta tanggalnya.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:pluang/gold-performance`
- **Cache TTL:** 3600s
**Parameters:**
_No parameters._
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:pluang/gold-performance" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:pluang/gold-performance", {
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:pluang/gold-performance",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"source": "pluang",
"oneYear": {
"low": "52W Low: Rp485.000",
"high": "52W High: Rp3.227.664",
"lowDate": "27 March 2026",
"highDate": "17 October 2025",
"timeframe": "1Y",
"sliderPosition": 73.41,
"percentFromHigh": "-22,59%"
},
"fiveYear": {
"low": "5Y Low: Rp485.000",
"high": "5Y High: Rp3.227.664",
"lowDate": "27 March 2026",
"highDate": "17 October 2025",
"timeframe": "5Y",
"sliderPosition": 73.41,
"percentFromHigh": "-22,59%"
},
"currentMidPrice": "Rp2.498.406"
}
```
---
### Market Overview
Ikhtisar lintas aset dalam satu panggilan: kripto, saham AS, saham Indonesia, komoditas, indeks global, mata uang, dan obligasi.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:pluang/market-overview`
- **Cache TTL:** 60s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `category` | string | query | no | Keep one category — cryptocurrency, global_equity, indonesia_stocks, commodities, global_market, currencies, bonds. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:pluang/market-overview?category=commodities" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:pluang/market-overview?category=commodities", {
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:pluang/market-overview?category=commodities",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 1,
"items": [
{
"title": "Komoditi",
"assets": [
{
"name": "Gold*"
},
{
"name": "Silver*"
},
{
"name": "Copper"
},
{
"name": "Crude Oil"
}
],
"category": "commodities"
}
],
"source": "pluang",
"category": "commodities"
}
```
---
### Top Movers
Penggerak terbesar lintas kelas aset, naik maupun turun.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:pluang/top-movers`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `direction` | enum(gainers|losers|both) | query | no | Which side to return. Default both. |
| `length` | number | query | no | Rows per side (default 20, max 100) |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:pluang/top-movers?direction=gainers&length=10" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:pluang/top-movers?direction=gainers&length=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:pluang/top-movers?direction=gainers&length=10",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 5,
"losers": [],
"source": "pluang",
"gainers": [
{
"id": "cryptocurrency-10349",
"name": "CoW Protocol",
"symbol": "COW",
"assetId": 10349,
"category": "cryptocurrency",
"tradable": true,
"changePercent": 54.01
},
{
"id": "cryptocurrency-10748",
"name": "Hemi",
"symbol": "HEMI",
"assetId": 10748,
"category": "cryptocurrency",
"tradable": true,
"changePercent": 29.74
},
{
"id": "cryptocurrency-10562",
"name": "Walrus",
"symbol": "WAL",
"assetId": 10562,
"category": "cryptocurrency",
"tradable": true,
"changePercent": 26.25
},
{
"id": "cryptocurrency-10802",
"name": "OLAXBT",
"symbol": "AIO",
"assetId": 10802,
"category": "cryptocurrency",
"tradable": true,
"changePercent": 26.14
},
{
"id": "cryptocurrency-10259",
"name": "Moonriver",
"symbol": "MOVR",
"assetId": 10259,
"category": "cryptocurrency",
"tradable": true,
"changePercent": 23.69
}
],
"direction": "gainers"
}
```
---
### Asset Search
Cari aset lintas kelas di Pluang — saham IDX, saham AS, kripto.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:pluang/search`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `query` | string | query | yes | Text to search. Required. |
| `length` | number | query | no | Rows to return (default 20, max 100) |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:pluang/search?query=bbca&length=20" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:pluang/search?query=bbca&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:pluang/search?query=bbca&length=20",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 1,
"items": [
{
"id": "globalStock-10343",
"name": "Banco Bilbao Vizcaya Argentaria SA",
"symbol": "BBVA",
"assetId": 10343,
"category": "PALN",
"tradable": true
}
],
"query": "bbca",
"total": 1,
"source": "pluang"
}
```
---
### Analyst Top Picks
Pilihan teratas analis yang Pluang tampilkan, lengkap dengan target harga. Ini sinyal pihak ketiga, bukan data bursa.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:pluang/signals`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `category` | string | query | no | Keep one asset category as Pluang labels it. |
| `length` | number | query | no | Rows to return (default 20, max 100) |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:pluang/signals?category=globalStock&length=20" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:pluang/signals?category=globalStock&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:pluang/signals?category=globalStock&length=20",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 10,
"items": [
{
"name": "Braze Inc",
"symbol": "BRZE",
"assetId": 10610,
"category": "globalStock",
"signalId": "6a7f8223d62561e621dfca81"
},
{
"name": "Global E Online Ltd",
"symbol": "GLBE",
"assetId": 11073,
"category": "globalStock",
"signalId": "6a7f82245ff50983642363d4"
},
{
"name": "Neurocrine Biosciences Inc",
"symbol": "NBIX",
"assetId": 11080,
"category": "globalStock",
"signalId": "6a7f82245ff50983642363d6"
},
{
"name": "Cytokinetics Inc",
"symbol": "CYTK",
"assetId": 10969,
"category": "globalStock",
"signalId": "6a7f8224e7dd77bef74695c0"
},
{
"name": "Bitdeer Technologies Group",
"symbol": "BTDR",
"assetId": 10961,
"category": "globalStock",
"signalId": "6a7f8224e7dd77bef74695ba"
},
{
"name": "Vertiv Holdings Co",
"symbol": "VRT",
"assetId": 10945,
"category": "globalStock",
"signalId": "6a7f8224e7dd77bef74695b0"
}
],
"total": 10,
"source": "pluang"
}
```
---
### Market News
Feed berita pasar Pluang, lintas aset.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:pluang/news-feed`
- **Cache TTL:** 900s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `length` | number | query | no | Rows to return (default 25, max 200) |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:pluang/news-feed?length=25" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:pluang/news-feed?length=25", {
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:pluang/news-feed?length=25",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 10,
"items": [
{
"id": "d841d016c885c2f7a05c85e06e688e867a70cdeef65fa4d654ee887d11abb0f0",
"link": "https://www.antaranews.com/berita/5696176/rapbn-2027-jaga-ketahanan-pangan-nyalakan-kemandirian-energi",
"title": "RAPBN 2027: Jaga ketahanan pangan, nyalakan kemandirian energi",
"source": "antara",
"publishedAt": "2026-08-15T10:06:53.336Z"
},
{
"id": "e89de2e08f1c56da7ebe4398a9c2297324c7b04d2f297cad91498f0f3328185e",
"link": "https://www.antaranews.com/berita/5695935/djp-bali-membarui-data-pajak-bersama-pemda-dongkrak-penerimaan",
"title": "DJP Bali membarui data pajak bersama pemda dongkrak penerimaan",
"source": "antara",
"publishedAt": "2026-08-15T07:06:52.821Z"
},
{
"id": "f4c661a0a9663bf87e9e83b7ceebc872a048f0f25aa959aa655c119a07c8508d",
"link": "https://www.antaranews.com/berita/5695931/pakar-unej-harapkan-rapbn-2027-membawa-ekonomi-ri-naik-kelas",
"title": "Pakar Unej harapkan RAPBN 2027 membawa ekonomi RI naik kelas",
"source": "antara",
"publishedAt": "2026-08-15T07:06:55.918Z"
},
{
"id": "313a91d294eecb4c7224e8d399b86931a1d3a135665fb30e6744d94835642f19",
"link": "https://www.antaranews.com/berita/5695905/rapbn-2027-navigasi-pertumbuhan-disiplin-fiskal-dan-kesejahteraan",
"title": "RAPBN 2027: Navigasi pertumbuhan, disiplin fiskal, dan kesejahteraan",
"source": "antara",
"publishedAt": "2026-08-15T06:07:03.976Z"
},
{
"id": "5dd7eb600d4e1af3149645878e08546e2cc22f29cf3dbcbde9068b4b96e5ed70",
"link": "https://www.antaranews.com/berita/5695792/emas-vs-tabungan-bank-mana-yang-lebih-menguntungkan-ini-faktanya",
"title": "Emas vs tabungan bank: Mana yang lebih menguntungkan? Ini faktanya",
"source": "antara",
"publishedAt": "2026-08-15T05:06:52.723Z"
},
{
"id": "d5ce70ef5f72b9770e2a9162ef8691dcc47364acbefefb3ab09c92da914a78a7",
"link": "https://www.antaranews.com/berita/5695728/lps-ingatkan-nasabah-perhatikan-tingkat-bunga-sebelum-menabung-di-bank",
"title": "LPS ingatkan nasabah perhatikan tingkat bunga sebelum menabung di bank",
"source": "antara",
"publishedAt": "2026-08-15T04:06:51.054Z"
}
],
"total": 10,
"source": "pluang"
}
```
---
### Staking Rates
Imbal staking kripto di Pluang, tarif normal dan Pluang+.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:pluang/staking-rates`
- **Cache TTL:** 3600s
**Parameters:**
_No parameters._
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:pluang/staking-rates" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:pluang/staking-rates", {
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:pluang/staking-rates",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 3,
"items": [
{
"name": "Ethereum",
"symbol": "ETH",
"assetId": 10001,
"ratePercent": 1.19,
"plusRatePercent": 2
},
{
"name": "Solana",
"symbol": "SOL",
"assetId": 10032,
"ratePercent": 2.22,
"plusRatePercent": 4.5
},
{
"name": "Cosmos",
"symbol": "ATOM",
"assetId": 10028,
"ratePercent": 6.98,
"plusRatePercent": 11.34
}
],
"source": "pluang"
}
```
---
### Crypto Futures
Instrumen kripto berjangka yang Pluang tawarkan.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:pluang/crypto-futures`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `length` | number | query | no | Rows to return (default 100, max 500) |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:pluang/crypto-futures?length=50" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:pluang/crypto-futures?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:pluang/crypto-futures?length=50",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 49,
"items": [
{
"createdAt": "2025-03-27T03:11:09.829+00:00",
"updatedAt": "2025-04-09T11:33:06.099+00:00",
"instrumentId": 10024
},
{
"createdAt": "2025-02-24T03:11:24.788+00:00",
"updatedAt": "2025-02-27T12:05:47.509+00:00",
"instrumentId": 10014
},
{
"createdAt": "2025-04-30T02:45:52.542+00:00",
"updatedAt": "2025-04-30T06:56:30.419+00:00",
"instrumentId": 10059
},
{
"createdAt": "2025-02-12T01:02:57.705+00:00",
"updatedAt": "2025-02-27T10:21:12.000+00:00",
"instrumentId": 10004
},
{
"createdAt": "2026-06-19T03:04:01.358+00:00",
"updatedAt": "2026-06-19T08:06:35.434+00:00",
"instrumentId": 10197
},
{
"createdAt": "2025-03-27T03:11:09.837+00:00",
"updatedAt": "2025-04-09T11:33:03.570+00:00",
"instrumentId": 10028
}
],
"total": 49,
"source": "pluang"
}
```
---
## QRIS Static → Dynamic
**Category:** finance · **Slug:** `qris`
**Detail page:** https://zapi.ink/api/finance/qris
Convert QRIS Static ke Dynamic (set nominal + biaya layanan). Input via paste string atau upload gambar QR. EMVCo TLV + CRC16.
**Tags:** qris, qr, qris dinamis, dynamic qris, pembayaran, payment, emvco, indonesia
### Convert
Convert dari QRIS string (paste).
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:qris/convert`
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `qris` | string | query | yes | QRIS Static string (paste). Otomatis di-convert ke dynamic. |
| `amount` | number | query | yes | Nominal transaksi (Rupiah, tanpa titik/desimal). |
| `feeType` | enum(none|fixed|percent) | query | no | Biaya layanan: none (default), fixed (rupiah), percent (persen). |
| `feeValue` | number | query | no | Nilai fee — rupiah kalau fixed, persen kalau percent. Wajib kalau feeType != none. |
| `withImage` | enum(true|false) | query | no | Sertakan QR image (base64 data URL) di response. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:qris/convert?qris=00020101021126180014ID.CO.QRIS.WWW52045999530336054054000005802ID5910TOKO%20SAYUR6007JAKARTA6304ABCD&amount=15000&feeType=none&feeValue=1000&withImage=true" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:qris/convert?qris=00020101021126180014ID.CO.QRIS.WWW52045999530336054054000005802ID5910TOKO%20SAYUR6007JAKARTA6304ABCD&amount=15000&feeType=none&feeValue=1000&withImage=true", {
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:qris/convert?qris=00020101021126180014ID.CO.QRIS.WWW52045999530336054054000005802ID5910TOKO%20SAYUR6007JAKARTA6304ABCD&amount=15000&feeType=none&feeValue=1000&withImage=true",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"fee": null,
"amount": 15000,
"static": "00020101021126180014ID.CO.QRIS.WWW52045999530336054054000005802ID5910TOKO SAYUR6007JAKARTA6304ABCD",
"dynamic": "00020101021226180014ID.CO.QRIS.WWW52045999530336054054000005405150005802ID5910TOKO SAYUR6007JAKARTA63044ABA",
"qrImage": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAS...(truncated base64 PNG)",
"merchant": {
"name": "TOKO SAYUR",
"location": "JAKARTA"
},
"inputType": "string"
}
```
---
### Scan
Convert dari upload gambar QR.
- **Method:** `POST`
- **Endpoint:** `https://api.zapi.ink/v1/finance:qris/scan`
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `image` | file | form | yes | Upload gambar QRIS Static (jpg/png/webp). Max 5MB. |
| `amount` | number | form | yes | Nominal transaksi (Rupiah, tanpa titik/desimal). |
| `feeType` | enum(none|fixed|percent) | form | no | Biaya layanan: none (default), fixed (rupiah), percent (persen). |
| `feeValue` | number | form | no | Nilai fee — rupiah kalau fixed, persen kalau percent. Wajib kalau feeType != none. |
| `withImage` | enum(true|false) | form | no | Sertakan QR image (base64 data URL) di response. |
**cURL:**
```bash
curl -X POST "https://api.zapi.ink/v1/finance:qris/scan" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"image": "qris.png",
"amount": "15000",
"feeType": "none",
"feeValue": "1000",
"withImage": "true"
}'
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:qris/scan", {
method: "POST",
headers: { "x-api-key": process.env.ZAPI_KEY, "Content-Type": "application/json" },
body: JSON.stringify({
"image": "qris.png",
"amount": "15000",
"feeType": "none",
"feeValue": "1000",
"withImage": "true"
})
});
const data = await res.json();
```
**Python:**
```python
import requests
r = requests.post("https://api.zapi.ink/v1/finance:qris/scan",
headers={"x-api-key": "YOUR_API_KEY"},
json={
"image": "qris.png",
"amount": "15000",
"feeType": "none",
"feeValue": "1000",
"withImage": "true"
})
data = r.json()
```
**Example response:**
```json
{
"fee": null,
"amount": 50000,
"static": "00020101021126180014ID.CO.QRIS.WWW52045999530336054054000005802ID5910TOKO SAYUR6007JAKARTA6304ABCD",
"dynamic": "00020101021226180014ID.CO.QRIS.WWW52045999530336054054000005405500005802ID5910TOKO SAYUR6007JAKARTA63047C4B",
"qrImage": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAS...(truncated base64 PNG)",
"merchant": {
"name": "TOKO SAYUR",
"location": "JAKARTA"
},
"inputType": "image"
}
```
---
## Reku
**Category:** finance · **Slug:** `reku`
**Detail page:** https://zapi.ink/api/finance/reku
Reku OHLCV candles for one coin.
**Tags:** finance, reku
### Chart
Reku OHLCV candles for one coin.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:reku/chart`
- **Cache TTL:** 60s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `coin` | string | query | yes | Ticker (BTC) or the numeric coin id from `coins` |
| `interval` | string | query | no | Candle size in whole minutes, or a token like 15m, 4h, 1d, 1w. Minimum 5 minutes. Default 60 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:reku/chart?coin=BTC&interval=60" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:reku/chart?coin=BTC&interval=60", {
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:reku/chart?coin=BTC&interval=60",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"coin": "BTC",
"name": "Bitcoin",
"count": 100,
"items": [
{
"low": 1117760000,
"date": "2026-08-16T23:00:00.000Z",
"high": 1117760000,
"open": 1117760000,
"close": 1118300000,
"volume": 0.1964578290843674,
"openTime": 1786921200000,
"closeTime": 1786924799999,
"quoteVolume": 219799420
},
{
"low": 1116520000,
"date": "2026-08-17T00:00:00.000Z",
"high": 1119580000,
"open": 1118300000,
"close": 1118280000,
"volume": 0.006625787527614236,
"openTime": 1786924800000,
"closeTime": 1786928399999,
"quoteVolume": 7402301.6826
},
{
"low": 1122350000,
"date": "2026-08-17T01:00:00.000Z",
"high": 1124780000,
"open": 1118280000,
"close": 1124780000,
"volume": 0.5992000247168705,
"openTime": 1786928400000,
"closeTime": 1786931999999,
"quoteVolume": 673292144.7125
},
{
"low": 1121800000,
"date": "2026-08-17T02:00:00.000Z",
"high": 1129110000,
"open": 1124780000,
"close": 1127830000,
"volume": 0.7329703022669124,
"openTime": 1786932000000,
"closeTime": 1786935599999,
"quoteVolume": 825182023.5156
},
{
"low": 1126200000,
"date": "2026-08-17T03:00:00.000Z",
"high": 1129110000,
"open": 1127830000,
"close": 1129110000,
"volume": 0.1802460825180557,
"openTime": 1786935600000,
"closeTime": 1786939199999,
"quoteVolume": 203152777.5563999
},
{
"low": 1128310000,
"date": "2026-08-17T04:00:00.000Z",
"high": 1129500000,
"open": 1129110000,
"close": 1129500000,
"volume": 0.005963890127786594,
"openTime": 1786939200000,
"closeTime": 1786942799999,
"quoteVolume": 6735707.0599
},
{
"low": 1127260000,
"date": "2026-08-17T05:00:00.000Z",
"high": 1129760000,
"open": 1129500000,
"close": 1127260000,
"volume": 0.24658377136074727,
"openTime": 1786942800000,
"closeTime": 1786946399999,
"quoteVolume": 278412129.4932275
},
{
"low": 1129550000,
"date": "2026-08-17T06:00:00.000Z",
"high": 1131350000,
"open": 1127260000,
"close": 1130560000,
"volume": 0.18642497467911867,
"openTime": 1786946400000,
"closeTime": 1786949999999,
"quoteVolume": 210616358.79427
}
],
"coinId": 1,
"dataset": "chart",
"interval": "60m",
"provider": "reku",
"intervalMinutes": 60
}
```
---
### Prices
Reku last IDR price per listed coin — a second independent Indonesian quote,
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:reku/prices`
- **Cache TTL:** 15s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `query` | string | query | no | Filter by ticker or name substring |
| `page` | number | query | no | Page number. Default 1 |
| `count` | number | query | no | Items per page. Default 100, max 200 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:reku/prices?query=btc&page=1&count=100" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:reku/prices?query=btc&page=1&count=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:reku/prices?query=btc&page=1&count=100",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"page": 1,
"count": 1,
"items": [
{
"low": 195400000,
"high": 2092240000,
"name": "Bitcoin",
"open": 1457810000,
"coinId": 1,
"symbol": "BTC",
"lastPrice": 1322610000,
"quoteVolume": 9679778638711,
"changePercent": -9.27
}
],
"query": "btc",
"total": 1,
"dataset": "prices",
"hasMore": false,
"nextPage": null,
"provider": "reku"
}
```
---
### Coins
Reku instrument specs — the taker/maker fee, send limits and precision for
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:reku/coins`
- **Cache TTL:** 600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `query` | string | query | no | Filter by ticker or name substring |
| `tradable` | enum(true|false) | query | no | Keep only assets that can currently be bought or sold. Default all |
| `page` | number | query | no | Page number. Default 1 |
| `count` | number | query | no | Items per page. Default 100, max 500 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:reku/coins?query=btc&tradable=true&page=1&count=100" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:reku/coins?query=btc&tradable=true&page=1&count=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:reku/coins?query=btc&tradable=true&page=1&count=100",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"page": 1,
"count": 1,
"items": [
{
"logo": "https://images.reku.id/accounts/btc.svg?v=5",
"name": "Bitcoin",
"coinId": 1,
"symbol": "BTC",
"decimals": 8,
"enableBuy": true,
"enableSell": true,
"maxWithdrawal": 1,
"minWithdrawal": 0.0004,
"priceDecimals": 0,
"volumeDecimals": 0,
"makerFeePercent": 0.1,
"takerFeePercent": 0.1,
"enableWithdrawal": true,
"withdrawalFeeExternal": 0.00003,
"withdrawalFeeInternal": 0
}
],
"query": "btc",
"total": 1,
"dataset": "coins",
"hasMore": false,
"nextPage": null,
"provider": "reku",
"tradable": null
}
```
---
## Santiment
**Category:** finance · **Slug:** `santiment`
**Detail page:** https://zapi.ink/api/finance/santiment
What a Santiment metric will actually serve, straight from the API's own
**Tags:** finance, santiment
### Metric Metadata
What a Santiment metric will actually serve, straight from the API's own
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:santiment/metric-metadata`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `metric` | string | query | no | Metric name. Default social_volume_total. |
| `includeSlugs` | enum(true|false) | query | no | Include every asset slug this metric covers. Thousands of entries, roughly 37 KB. Default false. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:santiment/metric-metadata?metric=social_volume_total&includeSlugs=true" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:santiment/metric-metadata?metric=social_volume_total&includeSlugs=true", {
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:santiment/metric-metadata?metric=social_volume_total&includeSlugs=true",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 0,
"items": [],
"total": null,
"metric": "social_volume_total",
"dataset": "metric-metadata",
"provider": "santiment",
"minInterval": "5m",
"isRestricted": true,
"restrictedTo": "2026-07-22T02:25:57Z",
"restrictedFrom": "2025-08-21T02:25:57Z",
"defaultAggregation": "SUM",
"availableAggregations": [
"ANY",
"SUM",
"AVG",
"MIN",
"MAX",
"LAST",
"FIRST",
"MEDIAN"
]
}
```
---
### Metric
One Santiment metric series, at the metric's own minimum interval.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:santiment/metric`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `metric` | string | query | no | Metric name. Default social_volume_total, which publishes every 5 minutes. |
| `slug` | string | query | no | Asset slug as Santiment spells it. Default bitcoin. The `metric-metadata` endpoint lists every slug a metric covers. |
| `from` | string | query | no | ISO-8601 start. Default 24 hours before `to`. Must sit inside the restricted window. |
| `to` | string | query | no | ISO-8601 end. Default 31 days ago, the newest point the free tier serves. |
| `interval` | string | query | no | Bucket size as Nm, Nh, Nd or Nw. Default 5m. Cannot be finer than the metric's own floor. |
| `aggregation` | enum(ANY|SUM|AVG|MIN|MAX|LAST|FIRST|MEDIAN|COUNT|OHLC) | query | no | How points inside a bucket combine. Defaults to the metric's own aggregation. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:santiment/metric?metric=social_volume_total&slug=bitcoin&from=2026-07-20T00%3A00%3A00Z&to=2026-07-21T00%3A00%3A00Z&interval=5m&aggregation=SUM" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:santiment/metric?metric=social_volume_total&slug=bitcoin&from=2026-07-20T00%3A00%3A00Z&to=2026-07-21T00%3A00%3A00Z&interval=5m&aggregation=SUM", {
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:santiment/metric?metric=social_volume_total&slug=bitcoin&from=2026-07-20T00%3A00%3A00Z&to=2026-07-21T00%3A00%3A00Z&interval=5m&aggregation=SUM",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": "2026-07-21T02:25:57Z",
"from": "2026-07-20T02:25:57Z",
"slug": "bitcoin",
"count": 288,
"items": [
{
"date": "2026-07-20T02:30:00Z",
"time": 1784514600,
"value": 3
},
{
"date": "2026-07-20T02:35:00Z",
"time": 1784514900,
"value": 4
},
{
"date": "2026-07-20T02:40:00Z",
"time": 1784515200,
"value": 3
},
{
"date": "2026-07-20T02:45:00Z",
"time": 1784515500,
"value": 6
},
{
"date": "2026-07-20T02:50:00Z",
"time": 1784515800,
"value": 5
},
{
"date": "2026-07-20T02:55:00Z",
"time": 1784516100,
"value": 3
},
{
"date": "2026-07-20T03:00:00Z",
"time": 1784516400,
"value": 5
},
{
"date": "2026-07-20T03:05:00Z",
"time": 1784516700,
"value": 5
}
],
"metric": "social_volume_total",
"dataset": "metric",
"interval": "5m",
"provider": "santiment",
"aggregation": "SUM",
"minInterval": "5m",
"isRestricted": true,
"restrictedTo": "2026-07-22T02:25:57Z",
"restrictedFrom": "2025-08-21T02:25:57Z"
}
```
---
## Saweria
**Category:** finance · **Slug:** `saweria`
**Detail page:** https://zapi.ink/api/finance/saweria
Donasi QRIS ke kreator Saweria — bikin tagihan, dapat QR siap-scan, dan cek status pembayaran secara real-time. Anonim, tanpa login.
**Tags:** donation, qris, payment, saweria, indonesia
### Profil Kreator
Info kreator Saweria: nama, avatar, deskripsi, nominal cepat, dan sosial media.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:saweria/profile/:username`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `username` | string | path | yes | Username Saweria kreator (boleh @username atau URL saweria.co/...) |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:saweria/profile/:username" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:saweria/profile/:username", {
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:saweria/profile/:username",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"id": "0ed02b12-460e-4008-9dfc-501e320c986d",
"plus": true,
"avatar": "https://saweria-space.sgp1.cdn.digitaloceanspaces.com/prd/pp/0ed02b12-460e-4008-9dfc-501e320c986d-e2c0303a-2759-4b56-880a-8a5707e90c04.jpg",
"socials": {
"youtube": "zaadevofc",
"instagram": "zaadevofc"
},
"currency": "IDR",
"provider": "saweria",
"username": "zaadevofc",
"verified": false,
"profileUrl": "https://saweria.co/zaadevofc",
"description": "thanks for support my work ^^",
"hasWishlist": false,
"minDonation": 10000,
"quickAmounts": [
5000,
25000,
50000,
100000
]
}
```
---
### Buat Donasi QRIS
Bikin tagihan donasi QRIS anonim ke kreator. Balikin QR string, gambar QR, link bayar, dan nominal yang harus dibayar.
- **Method:** `POST`
- **Endpoint:** `https://api.zapi.ink/v1/finance:saweria/donate/:username`
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `username` | string | path | yes | Username Saweria yang mau didonasi (boleh @username atau URL) |
| `amount` | number | body | yes | Nominal donasi dalam Rupiah (min 1.000, max 10.000.000) |
| `message` | string | body | no | Pesan donasi (opsional, max 255 char) |
| `name` | string | body | no | Nama donatur yang tampil (opsional, default Anonim) |
| `email` | string | body | no | Email donatur buat kirim bukti (opsional) |
**cURL:**
```bash
curl -X POST "https://api.zapi.ink/v1/finance:saweria/donate/:username" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"amount": "10000",
"message": "Semangat terus berkarya!",
"name": "Anonim",
"email": "donatur@example.com"
}'
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:saweria/donate/:username", {
method: "POST",
headers: { "x-api-key": process.env.ZAPI_KEY, "Content-Type": "application/json" },
body: JSON.stringify({
"amount": "10000",
"message": "Semangat terus berkarya!",
"name": "Anonim",
"email": "donatur@example.com"
})
});
const data = await res.json();
```
**Python:**
```python
import requests
r = requests.post("https://api.zapi.ink/v1/finance:saweria/donate/:username",
headers={"x-api-key": "YOUR_API_KEY"},
json={
"amount": "10000",
"message": "Semangat terus berkarya!",
"name": "Anonim",
"email": "donatur@example.com"
})
data = r.json()
```
**Example response:**
```json
{
"to": "zaadevofc",
"from": "Anonim",
"note": "Bayar PERSIS Rp10.071 dengan scan `qrImage`/`qrString` pakai e-wallet atau m-banking. Cek status pakai endpoint `status` dengan `donationId`.",
"amount": 10000,
"payUrl": "https://saweria.co/qris/snap/7177f379-dec3-4c0f-bab8-b97a3a250fd5",
"status": "pending",
"message": "Semangat terus berkarya!",
"qrImage": "https://api.qrserver.com/v1/create-qr-code/?size=320x320&data=00020101021226650013CO.XENDIT.WWW01189360084800000000020215WNtXtb6qmr4ZJBw0303UME51370014ID.CO.QRIS.WWW0215ID20253781998505204509953033605405100715802ID5922PT%20Harta%20Tahta%20Sukaria6013JAKARTA%20PUSAT61051034062290525TpMmeM4kRGT7jRd8Vu6rAcYe863041DD1",
"currency": "IDR",
"provider": "saweria",
"qrString": "00020101021226650013CO.XENDIT.WWW01189360084800000000020215WNtXtb6qmr4ZJBw0303UME51370014ID.CO.QRIS.WWW0215ID20253781998505204509953033605405100715802ID5922PT Harta Tahta Sukaria6013JAKARTA PUSAT61051034062290525TpMmeM4kRGT7jRd8Vu6rAcYe863041DD1",
"createdAt": "Sun, 16 Aug 2026 08:28:04 GMT",
"donationId": "7177f379-dec3-4c0f-bab8-b97a3a250fd5",
"amountToPay": 10071,
"paymentType": "qris"
}
```
---
### Cek Status Donasi
Cek apakah donasi QRIS sudah dibayar (paid/pending/expired). Poll pakai donationId dari endpoint donate.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:saweria/status/:donationId`
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `donationId` | string | path | yes | ID tagihan donasi dari endpoint donate |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:saweria/status/:donationId" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:saweria/status/:donationId", {
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:saweria/status/:donationId",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": "zaadevofc",
"amount": 10071,
"isPaid": false,
"status": "pending",
"currency": "IDR",
"provider": "saweria",
"qrString": "00020101021226650013CO.XENDIT.WWW01189360084800000000020215WNtXtb6qmr4ZJBw0303UME51370014ID.CO.QRIS.WWW0215ID20253781998505204509953033605405100715802ID5922PT Harta Tahta Sukaria6013JAKARTA PUSAT61051034062290525P2Y5NROondzrK6Hwj5Jxlu92V6304D73C",
"createdAt": "Fri, 12 Jun 2026 03:27:59 GMT",
"donationId": "0dc802ff-19ac-4558-a3c8-9f7d88aa04d4",
"amountToPay": 10071
}
```
---
## SEC EDGAR
**Category:** finance · **Slug:** `sec-edgar`
**Detail page:** https://zapi.ink/api/finance/sec-edgar
US issuer filings and reported accounting figures — full-text search since 2001, company profiles, filing history and XBRL facts.
**Tags:** filings, sec, fundamentals, xbrl, us-stocks
### Search filings
Full-text search across every filing since 2001.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:sec-edgar/search`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `q` | string | query | no | Phrase to search. Quote it for an exact match |
| `company` | string | query | no | Restrict to an issuer by name or ticker |
| `forms` | string | query | no | Comma-separated form types, e.g. 10-K,8-K |
| `from` | string | query | no | Earliest filing date, YYYY-MM-DD |
| `to` | string | query | no | Latest filing date, YYYY-MM-DD |
| `page` | number | query | no | Page number, 100 results per page. Default 1, max 100 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:sec-edgar/search?q=%22supply%20chain%20risk%22&company=apple&forms=10-K&from=2025-01-01&to=2025-12-31&page=1" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:sec-edgar/search?q=%22supply%20chain%20risk%22&company=apple&forms=10-K&from=2025-01-01&to=2025-12-31&page=1", {
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:sec-edgar/search?q=%22supply%20chain%20risk%22&company=apple&forms=10-K&from=2025-01-01&to=2025-12-31&page=1",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"page": 1,
"count": 100,
"items": [
{
"cik": "0000815097",
"sic": "4400",
"url": "https://www.sec.gov/Archives/edgar/data/815097/000081509723000012/ccl-20221130.htm",
"form": "10-K",
"ticker": "CCL",
"company": "CARNIVAL CORP",
"filedAt": "2023-01-27",
"document": "ccl-20221130.htm",
"location": "Miami, FL",
"periodEnding": "2022-11-30",
"accessionNumber": "0000815097-23-000012"
},
{
"cik": "0001408198",
"sic": "7389",
"url": "https://www.sec.gov/Archives/edgar/data/1408198/000140819826000011/msci-20251231.htm",
"form": "10-K",
"ticker": "MSCI",
"company": "MSCI Inc.",
"filedAt": "2026-02-06",
"document": "msci-20251231.htm",
"location": "New York, NY",
"periodEnding": "2025-12-31",
"accessionNumber": "0001408198-26-000011"
},
{
"cik": "0001408198",
"sic": "7389",
"url": "https://www.sec.gov/Archives/edgar/data/1408198/000140819823000011/msci-20221231.htm",
"form": "10-K",
"ticker": "MSCI",
"company": "MSCI Inc.",
"filedAt": "2023-02-10",
"document": "msci-20221231.htm",
"location": "New York, NY",
"periodEnding": "2022-12-31",
"accessionNumber": "0001408198-23-000011"
},
{
"cik": "0001408198",
"sic": "7389",
"url": "https://www.sec.gov/Archives/edgar/data/1408198/000140819824000030/msci-20231231.htm",
"form": "10-K",
"ticker": "MSCI",
"company": "MSCI Inc.",
"filedAt": "2024-02-09",
"document": "msci-20231231.htm",
"location": "New York, NY",
"periodEnding": "2023-12-31",
"accessionNumber": "0001408198-24-000030"
},
{
"cik": "0001408198",
"sic": "7389",
"url": "https://www.sec.gov/Archives/edgar/data/1408198/000140819825000053/msci-20241231.htm",
"form": "10-K",
"ticker": "MSCI",
"company": "MSCI Inc.",
"filedAt": "2025-02-07",
"document": "msci-20241231.htm",
"location": "New York, NY",
"periodEnding": "2024-12-31",
"accessionNumber": "0001408198-25-000053"
},
{
"cik": "0001408198",
"sic": "7389",
"url": "https://www.sec.gov/Archives/edgar/data/1408198/000156459022004803/msci-10k_20211231.htm",
"form": "10-K",
"ticker": "MSCI",
"company": "MSCI Inc.",
"filedAt": "2022-02-11",
"document": "msci-10k_20211231.htm",
"location": "New York, NY",
"periodEnding": "2021-12-31",
"accessionNumber": "0001564590-22-004803"
},
{
"cik": "0000815097",
"sic": "4400",
"url": "https://www.sec.gov/Archives/edgar/data/815097/000081509724000011/ccl-20231130.htm",
"form": "10-K",
"ticker": "CCL",
"company": "CARNIVAL CORP",
"filedAt": "2024-01-26",
"document": "ccl-20231130.htm",
"location": "Miami, FL",
"periodEnding": "2023-11-30",
"accessionNumber": "0000815097-24-000011"
},
{
"cik": "0000067347",
"sic": "3714",
"url": "https://www.sec.gov/Archives/edgar/data/67347/000110465926066795/mod-20260331x10k.htm",
"form": "10-K",
"ticker": "MOD",
"company": "MODINE MANUFACTURING CO",
"filedAt": "2026-05-27",
"document": "mod-20260331x10k.htm",
"location": "Racine, WI",
"periodEnding": "2026-03-31",
"accessionNumber": "0001104659-26-066795"
}
],
"query": "climate risk",
"total": 10000,
"company": null,
"hasMore": true,
"nextPage": 2,
"provider": "sec-edgar",
"totalIsLowerBound": true
}
```
---
### Company
Resolve a name or ticker to an issuer profile.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:sec-edgar/company`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `company` | string | query | no | Company name or ticker to resolve |
| `cik` | string | query | no | Central Index Key, if already known |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:sec-edgar/company?company=apple&cik=320193" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:sec-edgar/company?company=apple&cik=320193", {
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:sec-edgar/company?company=apple&cik=320193",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"cik": "0000320193",
"ein": "942404110",
"sic": "3571",
"city": "CUPERTINO",
"name": "Apple Inc.",
"phone": "(408) 996-1010",
"state": "CA",
"tickers": [
"AAPL"
],
"category": "Large accelerated filer",
"industry": "Electronic Computers",
"provider": "sec-edgar",
"exchanges": [
"Nasdaq"
],
"entityType": "operating",
"filingCount": 1000,
"formerNames": [
{
"to": "2019-08-05",
"from": "2007-01-10",
"name": "APPLE INC"
},
{
"to": "2007-01-04",
"from": "1994-01-26",
"name": "APPLE COMPUTER INC"
},
{
"to": "1997-07-28",
"from": "1997-07-28",
"name": "APPLE COMPUTER INC/ FA"
}
],
"alternatives": [
{
"cik": "0001418121",
"name": "Apple Hospitality REIT, Inc.",
"ticker": "APLE"
},
{
"cik": "0000320193",
"name": "Apple Inc.",
"ticker": "AAPL"
},
{
"cik": "0001498864",
"name": "Apple REIT Ten, Inc."
},
{
"cik": "0000320193",
"name": "APPLE COMPUTER INC",
"ticker": "AAPL"
},
{
"cik": "0001418121",
"name": "Apple REIT Nine, Inc.",
"ticker": "APLE"
}
],
"fiscalYearEnd": "0926",
"stateOfIncorporation": "CA"
}
```
---
### Filings
An issuer's recent filings, filterable by form type.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:sec-edgar/filings`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `company` | string | query | no | Company name or ticker |
| `cik` | string | query | no | Central Index Key, if already known |
| `form` | string | query | no | Restrict to one form type, e.g. 10-K, 8-K, 4 |
| `page` | number | query | no | Page number. Default 1 |
| `count` | number | query | no | Rows per page. Default 25, max 100 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:sec-edgar/filings?company=apple&cik=320193&form=10-K&page=1&count=25" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:sec-edgar/filings?company=apple&cik=320193&form=10-K&page=1&count=25", {
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:sec-edgar/filings?company=apple&cik=320193&form=10-K&page=1&count=25",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"cik": "0000320193",
"form": "10-K",
"page": 1,
"count": 5,
"items": [
{
"url": "https://www.sec.gov/Archives/edgar/data/320193/000032019325000079/aapl-20250927.htm",
"form": "10-K",
"size": 9392337,
"isXbrl": true,
"filedAt": "2025-10-31",
"acceptedAt": "2025-10-31T10:01:26.000Z",
"fileNumber": "001-36743",
"reportDate": "2025-09-27",
"description": "10-K",
"accessionNumber": "0000320193-25-000079"
},
{
"url": "https://www.sec.gov/Archives/edgar/data/320193/000032019324000123/aapl-20240928.htm",
"form": "10-K",
"size": 9759333,
"isXbrl": true,
"filedAt": "2024-11-01",
"acceptedAt": "2024-11-01T10:01:36.000Z",
"fileNumber": "001-36743",
"reportDate": "2024-09-28",
"description": "10-K",
"accessionNumber": "0000320193-24-000123"
},
{
"url": "https://www.sec.gov/Archives/edgar/data/320193/000032019323000106/aapl-20230930.htm",
"form": "10-K",
"size": 9569569,
"isXbrl": true,
"filedAt": "2023-11-03",
"acceptedAt": "2023-11-02T22:08:27.000Z",
"fileNumber": "001-36743",
"reportDate": "2023-09-30",
"description": "10-K",
"accessionNumber": "0000320193-23-000106"
},
{
"url": "https://www.sec.gov/Archives/edgar/data/320193/000032019322000108/aapl-20220924.htm",
"form": "10-K",
"size": 10332356,
"isXbrl": true,
"filedAt": "2022-10-28",
"acceptedAt": "2022-10-27T22:01:14.000Z",
"fileNumber": "001-36743",
"reportDate": "2022-09-24",
"description": "10-K",
"accessionNumber": "0000320193-22-000108"
},
{
"url": "https://www.sec.gov/Archives/edgar/data/320193/000032019321000105/aapl-20210925.htm",
"form": "10-K",
"size": 10502096,
"isXbrl": true,
"filedAt": "2021-10-29",
"acceptedAt": "2021-10-28T22:04:28.000Z",
"fileNumber": "001-36743",
"reportDate": "2021-09-25",
"description": "10-K",
"accessionNumber": "0000320193-21-000105"
}
],
"total": 11,
"company": "Apple Inc.",
"hasMore": true,
"tickers": [
"AAPL"
],
"nextPage": 2,
"provider": "sec-edgar"
}
```
---
### Concept
One reported figure across every period an issuer filed.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:sec-edgar/concept`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `company` | string | query | no | Company name or ticker |
| `cik` | string | query | no | Central Index Key, if already known |
| `tag` | string | query | no | XBRL tag, e.g. Revenues, Assets, NetIncomeLoss |
| `taxonomy` | enum(us-gaap|ifrs-full|dei|srt) | query | no | Reporting taxonomy. Default us-gaap |
| `period` | enum(all|annual|quarterly) | query | no | Restrict by reporting length. Default all |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:sec-edgar/concept?company=apple&cik=320193&tag=Revenues&taxonomy=us-gaap&period=all" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:sec-edgar/concept?company=apple&cik=320193&tag=Revenues&taxonomy=us-gaap&period=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:sec-edgar/concept?company=apple&cik=320193&tag=Revenues&taxonomy=us-gaap&period=all",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"cik": "0000320193",
"tag": "Revenues",
"unit": "USD",
"count": 3,
"items": [
{
"end": "2018-09-29",
"form": "10-K",
"frame": "CY2018",
"start": "2017-10-01",
"value": 265595000000,
"filedAt": "2018-11-05",
"fiscalYear": 2018,
"periodType": "duration",
"fiscalPeriod": "FY",
"accessionNumber": "0000320193-18-000145"
},
{
"end": "2017-09-30",
"form": "10-K",
"frame": "CY2017",
"start": "2016-09-25",
"value": 229234000000,
"filedAt": "2018-11-05",
"fiscalYear": 2018,
"periodType": "duration",
"fiscalPeriod": "FY",
"accessionNumber": "0000320193-18-000145"
},
{
"end": "2016-09-24",
"form": "10-K",
"frame": "CY2016",
"start": "2015-09-27",
"value": 215639000000,
"filedAt": "2018-11-05",
"fiscalYear": 2018,
"periodType": "duration",
"fiscalPeriod": "FY",
"accessionNumber": "0000320193-18-000145"
}
],
"label": "Revenues",
"period": "annual",
"company": "Apple Inc.",
"provider": "sec-edgar",
"taxonomy": "us-gaap"
}
```
---
## Sge
**Category:** finance · **Slug:** `sge`
**Detail page:** https://zapi.ink/api/finance/sge
Every instrument's open, close, high, low and change for one trading day.
**Tags:** finance, sge
### Daily Quotes
Every instrument's open, close, high, low and change for one trading day.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:sge/daily-quotes`
- **Cache TTL:** 1800s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `date` | string | query | no | Trading day, YYYY-MM-DD. Default the most recent day with a published session |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:sge/daily-quotes?date=2026-08-19" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:sge/daily-quotes?date=2026-08-19", {
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:sge/daily-quotes?date=2026-08-19",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"date": "2026-08-19",
"count": 17,
"items": [
{
"low": 15400,
"high": 15400,
"open": 15400,
"close": 15400,
"change": -600,
"contract": "Ag99.99",
"changePercent": -3.896
},
{
"low": 939,
"high": 955,
"open": 952.2,
"close": 944.94,
"change": -10.06,
"contract": "Au(T+D)",
"changePercent": -1.057
},
{
"low": 0,
"high": 0,
"open": 0,
"close": 1096.7,
"change": 0,
"contract": "Au(T+N1)",
"changePercent": null
},
{
"low": 0,
"high": 0,
"open": 0,
"close": 1050,
"change": 0,
"contract": "Au(T+N2)",
"changePercent": null
},
{
"low": 942,
"high": 950,
"open": 950,
"close": 945.14,
"change": -9.8,
"contract": "Au100g",
"changePercent": -1.032
},
{
"low": 0,
"high": 0,
"open": 0,
"close": 370.5,
"change": 0,
"contract": "Au99.5",
"changePercent": null
},
{
"low": 943,
"high": 943,
"open": 943,
"close": 943,
"change": -11,
"contract": "Au99.95",
"changePercent": -1.166
},
{
"low": 939.5,
"high": 959.99,
"open": 952,
"close": 945.22,
"change": -9.94,
"contract": "Au99.99",
"changePercent": -1.044
}
],
"dataset": "daily-quotes",
"provider": "sge"
}
```
---
### Benchmark Average
SHAU period averages — the mean morning and afternoon fixing over a calendar
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:sge/benchmark-average`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `period` | enum(month|year) | query | no | Averaging period. Default month |
| `start` | string | query | no | Earliest period. YYYY-MM for month, YYYY for year. Default the start of the series |
| `end` | string | query | no | Latest period. YYYY-MM for month, YYYY for year. Default the end of the series |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:sge/benchmark-average?period=month&start=2016-04&end=2019-12" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:sge/benchmark-average?period=month&start=2016-04&end=2019-12", {
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:sge/benchmark-average?period=month&start=2016-04&end=2019-12",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"end": "2026-08",
"count": 45,
"items": [
{
"period": "201604",
"morning": 259.73,
"afternoon": 259.94
},
{
"period": "201605",
"morning": 264.8,
"afternoon": 264.66
},
{
"period": "201606",
"morning": 270.36,
"afternoon": 270.93
},
{
"period": "201607",
"morning": 287.88,
"afternoon": 287.84
},
{
"period": "201608",
"morning": 287.09,
"afternoon": 287.21
},
{
"period": "201609",
"morning": 285.49,
"afternoon": 285.58
},
{
"period": "201610",
"morning": 275.13,
"afternoon": 275.29
},
{
"period": "201611",
"morning": 275.3,
"afternoon": 275.56
}
],
"start": "2016-04",
"period": "month",
"dataset": "benchmark-average",
"provider": "sge",
"benchmark": "SHAU"
}
```
---
### Benchmark Price
SHAU — the Shanghai gold benchmark, morning and afternoon fixing per day,
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:sge/benchmark-price`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `from` | string | query | no | Earliest date to keep, YYYY-MM-DD |
| `to` | string | query | no | Latest date to keep, YYYY-MM-DD |
| `order` | enum(desc|asc) | query | no | desc is newest first. Default desc |
| `page` | number | query | no | Page number, 1-based. Default 1 |
| `limit` | number | query | no | Rows per page. Default 50, max 500 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:sge/benchmark-price?from=2026-01-01&to=2026-08-20&order=desc&page=1&limit=50" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:sge/benchmark-price?from=2026-01-01&to=2026-08-20&order=desc&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:sge/benchmark-price?from=2026-01-01&to=2026-08-20&order=desc&page=1&limit=50",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": null,
"from": "2026-01-01",
"page": 1,
"count": 50,
"items": [
{
"date": "2026-08-20",
"morning": 970.5,
"afternoon": 969.96
},
{
"date": "2026-08-19",
"morning": 945.27,
"afternoon": 943.32
},
{
"date": "2026-08-18",
"morning": 953.79,
"afternoon": 953.88
},
{
"date": "2026-08-17",
"morning": 951.8,
"afternoon": 952.98
},
{
"date": "2026-08-14",
"morning": 936.17,
"afternoon": 940.03
},
{
"date": "2026-08-13",
"morning": 956.44,
"afternoon": 950.18
},
{
"date": "2026-08-12",
"morning": 955.49,
"afternoon": 955.85
},
{
"date": "2026-08-11",
"morning": 961.33,
"afternoon": 946.95
}
],
"order": "desc",
"total": 153,
"dataset": "benchmark-price",
"hasMore": true,
"nextPage": 2,
"provider": "sge",
"benchmark": "SHAU"
}
```
---
### History
Daily open/close/low/high for one instrument, back to the start of the series.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:sge/history`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `instid` | enum(Au99.99|Au99.95|Au100g|Pt99.95|Ag(T+D)|Au(T+D)|mAu(T+D)|Au(T+N1)|Au(T+N2)|Ag99.99|iAu99.99|Au99.5|iAu100g|iAu99.5|PGC30g|NYAuTN06|NYAuTN12) | query | no | Instrument code. Default Au99.99 |
| `from` | string | query | no | Earliest date to keep, YYYY-MM-DD |
| `to` | string | query | no | Latest date to keep, YYYY-MM-DD |
| `order` | enum(desc|asc) | query | no | desc is newest first. Default desc |
| `page` | number | query | no | Page number, 1-based. Default 1 |
| `limit` | number | query | no | Rows per page. Default 50, max 500 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:sge/history?instid=Au99.99&from=2026-01-01&to=2026-08-20&order=desc&page=1&limit=50" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:sge/history?instid=Au99.99&from=2026-01-01&to=2026-08-20&order=desc&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:sge/history?instid=Au99.99&from=2026-01-01&to=2026-08-20&order=desc&page=1&limit=50",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": null,
"from": null,
"page": 1,
"count": 50,
"items": [
{
"low": 945,
"date": "2026-08-20",
"high": 972.9,
"open": 945,
"close": 968.14
},
{
"low": 939.5,
"date": "2026-08-19",
"high": 959.99,
"open": 952,
"close": 945.22
},
{
"low": 948.5,
"date": "2026-08-18",
"high": 961,
"open": 953,
"close": 955.16
},
{
"low": 946,
"date": "2026-08-17",
"high": 956,
"open": 946,
"close": 952.44
},
{
"low": 933.01,
"date": "2026-08-14",
"high": 955,
"open": 955,
"close": 940.72
},
{
"low": 947.2,
"date": "2026-08-13",
"high": 963,
"open": 955,
"close": 949.24
},
{
"low": 950,
"date": "2026-08-12",
"high": 958,
"open": 952.5,
"close": 955.75
},
{
"low": 938,
"date": "2026-08-11",
"high": 965,
"open": 940,
"close": 946.7
}
],
"order": "desc",
"total": 2347,
"instid": "Au99.99",
"dataset": "history",
"hasMore": true,
"nextPage": 2,
"provider": "sge"
}
```
---
### Lease Rates
The Shanghai gold lease / lending reference rate curve — O/N out to 3Y, one
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:sge/lease-rates`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `from` | string | query | no | Earliest publication date, YYYY-MM-DD. Default 90 days ago |
| `to` | string | query | no | Latest publication date, YYYY-MM-DD. Default today |
| `tenor` | enum(O/N|1M|3M|6M|9M|1Y|3Y) | query | no | Keep a single tenor. Omit for the whole curve |
| `order` | enum(desc|asc) | query | no | desc is newest first. Default desc |
| `page` | number | query | no | Page number, 1-based. Default 1 |
| `limit` | number | query | no | Quotes per page. Default 50, max 500 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:sge/lease-rates?from=2026-06-01&to=2026-08-20&tenor=1M&order=desc&page=1&limit=50" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:sge/lease-rates?from=2026-06-01&to=2026-08-20&tenor=1M&order=desc&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:sge/lease-rates?from=2026-06-01&to=2026-08-20&tenor=1M&order=desc&page=1&limit=50",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": "2026-08-21",
"from": "2026-06-01",
"page": 1,
"count": 50,
"items": [
{
"date": "2026-08-20",
"rate": 0.4876,
"tenor": "6M",
"variety": "1"
},
{
"date": "2026-08-20",
"rate": 0.4407,
"tenor": "O/N",
"variety": "1"
},
{
"date": "2026-08-20",
"rate": 0.5226,
"tenor": "3Y",
"variety": "1"
},
{
"date": "2026-08-20",
"rate": 0.4786,
"tenor": "3M",
"variety": "1"
},
{
"date": "2026-08-20",
"rate": 0.4708,
"tenor": "1M",
"variety": "1"
},
{
"date": "2026-08-20",
"rate": 0.4933,
"tenor": "9M",
"variety": "1"
},
{
"date": "2026-08-20",
"rate": 0.4999,
"tenor": "1Y",
"variety": "1"
},
{
"date": "2026-08-19",
"rate": 0.475,
"tenor": "9M",
"variety": "1"
}
],
"order": "desc",
"tenor": null,
"total": 406,
"dataset": "lease-rates",
"hasMore": true,
"nextPage": 2,
"provider": "sge"
}
```
---
## Snb
**Category:** finance · **Slug:** `snb`
**Detail page:** https://zapi.ink/api/finance/snb
The dimension tree of one SNB cube — the vocabulary `cube`'s `select` filter
**Tags:** finance, snb
### Cube Dimensions
The dimension tree of one SNB cube — the vocabulary `cube`'s `select` filter
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:snb/cube-dimensions`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `cube` | string | query | yes | SNB cube id. Confirmed: snboffzisa, zirepo, zimoma, rendoblim, devkum. |
| `lang` | enum(en|de|fr|it) | query | no | Language of the dimension names: en, de, fr or it. Default en. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:snb/cube-dimensions?cube=rendoblim&lang=en" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:snb/cube-dimensions?cube=rendoblim&lang=en", {
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:snb/cube-dimensions?cube=rendoblim&lang=en",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"cube": "rendoblim",
"lang": "en",
"count": 15,
"items": [
{
"id": "D0",
"name": "Overview",
"path": [
"Overview"
],
"depth": 0,
"isLeaf": false
},
{
"id": "D0_0",
"name": "CHF Swiss Confederation bond issues",
"path": [
"Overview",
"CHF Swiss Confederation bond issues"
],
"depth": 1,
"isLeaf": false
},
{
"id": "1J",
"name": "1 year",
"path": [
"Overview",
"CHF Swiss Confederation bond issues",
"1 year"
],
"depth": 2,
"isLeaf": true
},
{
"id": "2J",
"name": "2 years",
"path": [
"Overview",
"CHF Swiss Confederation bond issues",
"2 years"
],
"depth": 2,
"isLeaf": true
},
{
"id": "3J",
"name": "3 years",
"path": [
"Overview",
"CHF Swiss Confederation bond issues",
"3 years"
],
"depth": 2,
"isLeaf": true
},
{
"id": "4J",
"name": "4 years",
"path": [
"Overview",
"CHF Swiss Confederation bond issues",
"4 years"
],
"depth": 2,
"isLeaf": true
},
{
"id": "5J",
"name": "5 years",
"path": [
"Overview",
"CHF Swiss Confederation bond issues",
"5 years"
],
"depth": 2,
"isLeaf": true
},
{
"id": "6J",
"name": "6 years",
"path": [
"Overview",
"CHF Swiss Confederation bond issues",
"6 years"
],
"depth": 2,
"isLeaf": true
}
],
"leaves": 13,
"dataset": "cube-dimensions",
"provider": "snb"
}
```
---
### Money Market
SARON and the CHF money-market complex, in one answer.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:snb/money-market`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `set` | enum(all|saron|reference) | query | no | Which table: saron (the SARON term structure), reference (SARON, TOMN, EGMBF, LIBOR and the non-CHF benchmarks), or all. Default all. |
| `from` | string | query | no | Earliest observation date, YYYY-MM-DD. |
| `to` | string | query | no | Latest observation date, YYYY-MM-DD. |
| `select` | string | query | no | Dimension filter in the upstream's own syntax, applied to both tables. |
| `length` | number | query | no | Observations per series, newest first. Default 100, max 20000. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:snb/money-market?set=saron&from=2026-07-01&to=2026-07-15&select=D0(H0%2CH6)&length=30" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:snb/money-market?set=saron&from=2026-07-01&to=2026-07-15&select=D0(H0%2CH6)&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:snb/money-market?set=saron&from=2026-07-01&to=2026-07-15&select=D0(H0%2CH6)&length=30",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": null,
"set": "saron",
"from": null,
"count": 9,
"cubes": [
"zirepo"
],
"items": [
{
"key": "EPB@SNB.zirepo{H0}",
"cube": "zirepo",
"item": "H0",
"name": "Overnight (SARON), close of trading",
"path": [
"Overnight (SARON), close of trading"
],
"unit": "In percent",
"count": 100,
"table": "saron",
"total": 6819,
"values": [
{
"date": "2026-07-15",
"value": -0.043818
},
{
"date": "2026-07-14",
"value": -0.042717
},
{
"date": "2026-07-13",
"value": -0.038424
},
{
"date": "2026-07-10",
"value": -0.0383
},
{
"date": "2026-07-09",
"value": -0.038013
},
{
"date": "2026-07-08",
"value": -0.038456
},
{
"date": "2026-07-07",
"value": -0.038226
},
{
"date": "2026-07-06",
"value": -0.038263
}
],
"frequency": "P1D_L",
"latestDate": "2026-07-15",
"latestValue": -0.043818
},
{
"key": "EPB@SNB.zirepo{H6}",
"cube": "zirepo",
"item": "H6",
"name": "SARON 1M Compound Rate",
"path": [
"SARON 1M Compound Rate"
],
"unit": "In percent",
"count": 100,
"table": "saron",
"total": 6573,
"values": [
{
"date": "2026-07-15",
"value": -0.0387
},
{
"date": "2026-07-14",
"value": -0.0385
},
{
"date": "2026-07-13",
"value": -0.0383
},
{
"date": "2026-07-10",
"value": -0.0383
},
{
"date": "2026-07-09",
"value": -0.0383
},
{
"date": "2026-07-08",
"value": -0.0382
},
{
"date": "2026-07-07",
"value": -0.0382
},
{
"date": "2026-07-06",
"value": -0.0381
}
],
"frequency": "P1D_L",
"latestDate": "2026-07-15",
"latestValue": -0.0387
},
{
"key": "EPB@SNB.zirepo{H7}",
"cube": "zirepo",
"item": "H7",
"name": "SARON 3M Compound Rate",
"path": [
"SARON 3M Compound Rate"
],
"unit": "In percent",
"count": 100,
"table": "saron",
"total": 6573,
"values": [
{
"date": "2026-07-15",
"value": -0.0415
},
{
"date": "2026-07-14",
"value": -0.0415
},
{
"date": "2026-07-13",
"value": -0.0415
},
{
"date": "2026-07-10",
"value": -0.0416
},
{
"date": "2026-07-09",
"value": -0.0418
},
{
"date": "2026-07-08",
"value": -0.0419
},
{
"date": "2026-07-07",
"value": -0.0419
},
{
"date": "2026-07-06",
"value": -0.042
}
],
"frequency": "P1D_L",
"latestDate": "2026-07-15",
"latestValue": -0.0415
},
{
"key": "EPB@SNB.zirepo{H8}",
"cube": "zirepo",
"item": "H8",
"name": "SARON 6M Compound Rate",
"path": [
"SARON 6M Compound Rate"
],
"unit": "In percent",
"count": 100,
"table": "saron",
"total": 6573,
"values": [
{
"date": "2026-07-15",
"value": -0.0455
},
{
"date": "2026-07-14",
"value": -0.0456
},
{
"date": "2026-07-13",
"value": -0.0456
},
{
"date": "2026-07-10",
"value": -0.0459
},
{
"date": "2026-07-09",
"value": -0.0465
},
{
"date": "2026-07-08",
"value": -0.0466
},
{
"date": "2026-07-07",
"value": -0.0468
},
{
"date": "2026-07-06",
"value": -0.0471
}
],
"frequency": "P1D_L",
"latestDate": "2026-07-15",
"latestValue": -0.0455
},
{
"key": "EPB@SNB.zirepo{H1}",
"cube": "zirepo",
"item": "H1",
"name": "Tomorrow Next (SARTN), close of trading",
"path": [
"Tomorrow Next (SARTN), close of trading"
],
"unit": "In percent",
"count": 100,
"table": "saron",
"total": 6731,
"values": [
{
"date": "2026-07-15",
"value": -0.04024
},
{
"date": "2026-07-14",
"value": -0.03784
},
{
"date": "2026-07-13",
"value": -0.03124
},
{
"date": "2026-07-10",
"value": -0.02746
},
{
"date": "2026-07-09",
"value": -0.02908
},
{
"date": "2026-07-08",
"value": -0.02841
},
{
"date": "2026-07-07",
"value": -0.02241
},
{
"date": "2026-07-06",
"value": -0.03315
}
],
"frequency": "P1D_L",
"latestDate": "2026-07-15",
"latestValue": -0.04024
},
{
"key": "EPB@SNB.zirepo{H2}",
"cube": "zirepo",
"item": "H2",
"name": "1-week (SAR1W), close of trading",
"path": [
"1-week (SAR1W), close of trading"
],
"unit": "In percent",
"count": 100,
"table": "saron",
"total": 6541,
"values": [
{
"date": "2026-07-15",
"value": -0.03246
},
{
"date": "2026-07-14",
"value": -0.01588
},
{
"date": "2026-07-13",
"value": -0.01921
},
{
"date": "2026-07-10",
"value": -0.00958
},
{
"date": "2026-07-09",
"value": -0.00924
},
{
"date": "2026-07-08",
"value": -0.02342
},
{
"date": "2026-07-07",
"value": -0.01063
},
{
"date": "2026-07-06",
"value": -0.03015
}
],
"frequency": "P1D_L",
"latestDate": "2026-07-15",
"latestValue": -0.03246
},
{
"key": "EPB@SNB.zirepo{H3}",
"cube": "zirepo",
"item": "H3",
"name": "2-week (SAR2W), close of trading",
"path": [
"2-week (SAR2W), close of trading"
],
"unit": "In percent",
"count": 100,
"table": "saron",
"total": 6018,
"values": [
{
"date": "2026-07-15",
"value": -0.00437
},
{
"date": "2026-07-14",
"value": -0.005
},
{
"date": "2026-07-13",
"value": -0.01988
},
{
"date": "2026-07-10",
"value": -0.01449
},
{
"date": "2026-07-09",
"value": 0.0075
},
{
"date": "2026-07-08",
"value": 0.00437
},
{
"date": "2026-07-07",
"value": -0.00987
},
{
"date": "2026-07-06",
"value": -0.03483
}
],
"frequency": "P1D_L",
"latestDate": "2026-07-15",
"latestValue": -0.00437
},
{
"key": "EPB@SNB.zirepo{H4}",
"cube": "zirepo",
"item": "H4",
"name": "1-month (SAR1M), close of trading",
"path": [
"1-month (SAR1M), close of trading"
],
"unit": "In percent",
"count": 100,
"table": "saron",
"total": 6503,
"values": [
{
"date": "2026-07-15",
"value": -0.03583
},
{
"date": "2026-07-14",
"value": -0.03722
},
{
"date": "2026-07-13",
"value": -0.03802
},
{
"date": "2026-07-10",
"value": -0.03
},
{
"date": "2026-07-09",
"value": -0.028
},
{
"date": "2026-07-08",
"value": -0.03365
},
{
"date": "2026-07-07",
"value": -0.025
},
{
"date": "2026-07-06",
"value": -0.04659
}
],
"frequency": "P1D_L",
"latestDate": "2026-07-15",
"latestValue": -0.03583
}
],
"total": 57838,
"select": null,
"dataset": "money-market",
"provider": "snb"
}
```
---
### Bond Yields
Swiss Confederation bond yields by maturity.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:snb/bond-yields`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `maturity` | string | query | no | Maturities in years, comma-separated. Published: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 30. Default all. |
| `from` | string | query | no | Earliest month, YYYY-MM-DD or YYYY-MM. |
| `to` | string | query | no | Latest month, YYYY-MM-DD or YYYY-MM. |
| `length` | number | query | no | Observations to return, newest first. Default 200, max 20000. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:snb/bond-yields?maturity=10%2C30&from=2025-01-01&to=2025-07-31&length=60" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:snb/bond-yields?maturity=10%2C30&from=2025-01-01&to=2025-07-31&length=60", {
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:snb/bond-yields?maturity=10%2C30&from=2025-01-01&to=2025-07-31&length=60",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": null,
"cube": "rendoblim",
"from": null,
"count": 26,
"items": [
{
"item": "10J",
"yield": 0.378,
"period": "2025-07",
"maturity": 10
},
{
"item": "30J",
"yield": 0.564,
"period": "2025-07",
"maturity": 30
},
{
"item": "10J",
"yield": 0.41,
"period": "2025-06",
"maturity": 10
},
{
"item": "30J",
"yield": 0.6,
"period": "2025-06",
"maturity": 30
},
{
"item": "10J",
"yield": 0.259,
"period": "2025-05",
"maturity": 10
},
{
"item": "30J",
"yield": 0.418,
"period": "2025-05",
"maturity": 30
},
{
"item": "10J",
"yield": 0.326,
"period": "2025-04",
"maturity": 10
},
{
"item": "30J",
"yield": 0.436,
"period": "2025-04",
"maturity": 30
}
],
"total": 26,
"dataset": "bond-yields",
"provider": "snb",
"maturities": [
10,
30
],
"publishedAt": "2025-09-01 14:29",
"latestPeriod": "2025-07"
}
```
---
### Policy Rates
Official policy rates for five central banks, from one Swiss cube.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:snb/policy-rates`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `bank` | string | query | no | Central banks to return, comma-separated: snb, fed, ecb, boe, boj. Default all five. |
| `from` | string | query | no | Earliest month, YYYY-MM-DD or YYYY-MM. |
| `to` | string | query | no | Latest month, YYYY-MM-DD or YYYY-MM. |
| `length` | number | query | no | Observations to return, newest first. Default 200, max 5000. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:snb/policy-rates?bank=ecb%2Cboe&from=2026-01-01&to=2026-06-30&length=60" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:snb/policy-rates?bank=ecb%2Cboe&from=2026-01-01&to=2026-06-30&length=60", {
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:snb/policy-rates?bank=ecb%2Cboe&from=2026-01-01&to=2026-06-30&length=60",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": null,
"cube": "snboffzisa",
"from": null,
"banks": [
"ecb",
"boe"
],
"count": 200,
"items": [
{
"bank": "ecb",
"code": "EF",
"rate": 2.25,
"period": "2026-06",
"series": "Deposit facility"
},
{
"bank": "ecb",
"code": "H",
"rate": 2.4,
"period": "2026-06",
"series": "Main refinancing rate"
},
{
"bank": "boe",
"code": "L0",
"rate": 3.75,
"period": "2026-06",
"series": "Bank Rate"
},
{
"bank": "ecb",
"code": "SRF",
"rate": 2.65,
"period": "2026-06",
"series": "Marginal lending facility"
},
{
"bank": "ecb",
"code": "EF",
"rate": 2,
"period": "2026-05",
"series": "Deposit facility"
},
{
"bank": "ecb",
"code": "H",
"rate": 2.15,
"period": "2026-05",
"series": "Main refinancing rate"
},
{
"bank": "boe",
"code": "L0",
"rate": 3.75,
"period": "2026-05",
"series": "Bank Rate"
},
{
"bank": "ecb",
"code": "SRF",
"rate": 2.4,
"period": "2026-05",
"series": "Marginal lending facility"
}
],
"total": 1272,
"dataset": "policy-rates",
"provider": "snb",
"publishedAt": "2026-07-21 09:00",
"latestPeriod": "2026-06"
}
```
---
### Cube
Any SNB data cube, raw. Upstream: data.snb.ch/api/cube/{cube}/data/json/{lang} (keyless).
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:snb/cube`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `cube` | string | query | yes | SNB cube id. Confirmed: snboffzisa, zirepo, zimoma, rendoblim, devkum. |
| `lang` | enum(en|de|fr|it) | query | no | Language of the series names: en, de, fr or it. Default en. |
| `from` | string | query | no | Earliest observation date, YYYY-MM-DD (coarser periods accepted). |
| `to` | string | query | no | Latest observation date, YYYY-MM-DD. |
| `select` | string | query | no | Dimension filter in the upstream's own syntax. Cuts the payload hard — zirepo is 47 KB unfiltered and 420 bytes with D0(H0). |
| `length` | number | query | no | Observations per series, newest first. Default 200, max 20000. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:snb/cube?cube=zirepo&lang=en&from=2026-07-01&to=2026-08-20&select=D0(H0%2CH6)&length=100" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:snb/cube?cube=zirepo&lang=en&from=2026-07-01&to=2026-08-20&select=D0(H0%2CH6)&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:snb/cube?cube=zirepo&lang=en&from=2026-07-01&to=2026-08-20&select=D0(H0%2CH6)&length=100",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": null,
"cube": "zirepo",
"from": null,
"lang": "en",
"count": 9,
"items": [
{
"key": "EPB@SNB.zirepo{H0}",
"item": "H0",
"name": "Overnight (SARON), close of trading",
"path": [
"Overnight (SARON), close of trading"
],
"unit": "In percent",
"count": 200,
"scale": null,
"total": 6819,
"values": [
{
"date": "2026-07-15",
"value": -0.043818
},
{
"date": "2026-07-14",
"value": -0.042717
},
{
"date": "2026-07-13",
"value": -0.038424
},
{
"date": "2026-07-10",
"value": -0.0383
},
{
"date": "2026-07-09",
"value": -0.038013
},
{
"date": "2026-07-08",
"value": -0.038456
},
{
"date": "2026-07-07",
"value": -0.038226
},
{
"date": "2026-07-06",
"value": -0.038263
}
],
"frequency": "P1D_L",
"latestDate": "2026-07-15",
"latestValue": -0.043818
},
{
"key": "EPB@SNB.zirepo{H6}",
"item": "H6",
"name": "SARON 1M Compound Rate",
"path": [
"SARON 1M Compound Rate"
],
"unit": "In percent",
"count": 200,
"scale": null,
"total": 6573,
"values": [
{
"date": "2026-07-15",
"value": -0.0387
},
{
"date": "2026-07-14",
"value": -0.0385
},
{
"date": "2026-07-13",
"value": -0.0383
},
{
"date": "2026-07-10",
"value": -0.0383
},
{
"date": "2026-07-09",
"value": -0.0383
},
{
"date": "2026-07-08",
"value": -0.0382
},
{
"date": "2026-07-07",
"value": -0.0382
},
{
"date": "2026-07-06",
"value": -0.0381
}
],
"frequency": "P1D_L",
"latestDate": "2026-07-15",
"latestValue": -0.0387
},
{
"key": "EPB@SNB.zirepo{H7}",
"item": "H7",
"name": "SARON 3M Compound Rate",
"path": [
"SARON 3M Compound Rate"
],
"unit": "In percent",
"count": 200,
"scale": null,
"total": 6573,
"values": [
{
"date": "2026-07-15",
"value": -0.0415
},
{
"date": "2026-07-14",
"value": -0.0415
},
{
"date": "2026-07-13",
"value": -0.0415
},
{
"date": "2026-07-10",
"value": -0.0416
},
{
"date": "2026-07-09",
"value": -0.0418
},
{
"date": "2026-07-08",
"value": -0.0419
},
{
"date": "2026-07-07",
"value": -0.0419
},
{
"date": "2026-07-06",
"value": -0.042
}
],
"frequency": "P1D_L",
"latestDate": "2026-07-15",
"latestValue": -0.0415
},
{
"key": "EPB@SNB.zirepo{H8}",
"item": "H8",
"name": "SARON 6M Compound Rate",
"path": [
"SARON 6M Compound Rate"
],
"unit": "In percent",
"count": 200,
"scale": null,
"total": 6573,
"values": [
{
"date": "2026-07-15",
"value": -0.0455
},
{
"date": "2026-07-14",
"value": -0.0456
},
{
"date": "2026-07-13",
"value": -0.0456
},
{
"date": "2026-07-10",
"value": -0.0459
},
{
"date": "2026-07-09",
"value": -0.0465
},
{
"date": "2026-07-08",
"value": -0.0466
},
{
"date": "2026-07-07",
"value": -0.0468
},
{
"date": "2026-07-06",
"value": -0.0471
}
],
"frequency": "P1D_L",
"latestDate": "2026-07-15",
"latestValue": -0.0455
},
{
"key": "EPB@SNB.zirepo{H1}",
"item": "H1",
"name": "Tomorrow Next (SARTN), close of trading",
"path": [
"Tomorrow Next (SARTN), close of trading"
],
"unit": "In percent",
"count": 200,
"scale": null,
"total": 6731,
"values": [
{
"date": "2026-07-15",
"value": -0.04024
},
{
"date": "2026-07-14",
"value": -0.03784
},
{
"date": "2026-07-13",
"value": -0.03124
},
{
"date": "2026-07-10",
"value": -0.02746
},
{
"date": "2026-07-09",
"value": -0.02908
},
{
"date": "2026-07-08",
"value": -0.02841
},
{
"date": "2026-07-07",
"value": -0.02241
},
{
"date": "2026-07-06",
"value": -0.03315
}
],
"frequency": "P1D_L",
"latestDate": "2026-07-15",
"latestValue": -0.04024
},
{
"key": "EPB@SNB.zirepo{H2}",
"item": "H2",
"name": "1-week (SAR1W), close of trading",
"path": [
"1-week (SAR1W), close of trading"
],
"unit": "In percent",
"count": 200,
"scale": null,
"total": 6541,
"values": [
{
"date": "2026-07-15",
"value": -0.03246
},
{
"date": "2026-07-14",
"value": -0.01588
},
{
"date": "2026-07-13",
"value": -0.01921
},
{
"date": "2026-07-10",
"value": -0.00958
},
{
"date": "2026-07-09",
"value": -0.00924
},
{
"date": "2026-07-08",
"value": -0.02342
},
{
"date": "2026-07-07",
"value": -0.01063
},
{
"date": "2026-07-06",
"value": -0.03015
}
],
"frequency": "P1D_L",
"latestDate": "2026-07-15",
"latestValue": -0.03246
},
{
"key": "EPB@SNB.zirepo{H3}",
"item": "H3",
"name": "2-week (SAR2W), close of trading",
"path": [
"2-week (SAR2W), close of trading"
],
"unit": "In percent",
"count": 200,
"scale": null,
"total": 6018,
"values": [
{
"date": "2026-07-15",
"value": -0.00437
},
{
"date": "2026-07-14",
"value": -0.005
},
{
"date": "2026-07-13",
"value": -0.01988
},
{
"date": "2026-07-10",
"value": -0.01449
},
{
"date": "2026-07-09",
"value": 0.0075
},
{
"date": "2026-07-08",
"value": 0.00437
},
{
"date": "2026-07-07",
"value": -0.00987
},
{
"date": "2026-07-06",
"value": -0.03483
}
],
"frequency": "P1D_L",
"latestDate": "2026-07-15",
"latestValue": -0.00437
},
{
"key": "EPB@SNB.zirepo{H4}",
"item": "H4",
"name": "1-month (SAR1M), close of trading",
"path": [
"1-month (SAR1M), close of trading"
],
"unit": "In percent",
"count": 200,
"scale": null,
"total": 6503,
"values": [
{
"date": "2026-07-15",
"value": -0.03583
},
{
"date": "2026-07-14",
"value": -0.03722
},
{
"date": "2026-07-13",
"value": -0.03802
},
{
"date": "2026-07-10",
"value": -0.03
},
{
"date": "2026-07-09",
"value": -0.028
},
{
"date": "2026-07-08",
"value": -0.03365
},
{
"date": "2026-07-07",
"value": -0.025
},
{
"date": "2026-07-06",
"value": -0.04659
}
],
"frequency": "P1D_L",
"latestDate": "2026-07-15",
"latestValue": -0.03583
}
],
"total": 57838,
"select": null,
"dataset": "cube",
"provider": "snb"
}
```
---
## Spdr Gold
**Category:** finance · **Slug:** `spdr-gold`
**Detail page:** https://zapi.ink/api/finance/spdr-gold
The custodian's daily bar list — every gold bar in the trust, published as a PDF.
**Tags:** finance, spdr-gold
### Bar List
The custodian's daily bar list — every gold bar in the trust, published as a PDF.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:spdr-gold/bar-list`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `product` | enum(gld|gldm|o87|gsd|9840|2840|82840|1326) | query | no | Listing code. Default gld. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:spdr-gold/bar-list?product=gld" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:spdr-gold/bar-list?product=gld", {
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:spdr-gold/bar-list?product=gld",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"url": "https://api.spdrgoldshares.com/api/v1/barlist?underlying=gld",
"bytes": 697486,
"ticker": "GLD",
"dataset": "bar-list",
"product": "gld",
"filename": "GLD_HSBC_Barlist.pdf",
"provider": "spdr-gold",
"custodian": "HSBC",
"updatedAt": "2026-08-20T16:41:05.000Z",
"contentType": "application/pdf"
}
```
---
### Products
The eight SPDR gold listings, from the fund site's own product index. Every
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:spdr-gold/products`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `query` | string | query | no | Filter by name, ticker or exchange, case-insensitive. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:spdr-gold/products?query=hong%20kong" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:spdr-gold/products?query=hong%20kong", {
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:spdr-gold/products?query=hong%20kong",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 3,
"items": [
{
"url": "https://www.spdrgoldshares.com/hong-kong/9840",
"name": "Hong Kong 9840",
"region": "HONG_KONG",
"ticker": "9840",
"product": "9840",
"exchange": "HKeX",
"description": "As an asset class, gold is unique. The economic factors that determine the price of gold are different from the economic forces that determine the price of many other asset classes, such as equities, bonds, or real estate. Gold offers investors an attractive opportunity to diversify their portfolios. SPDR Gold Shares offers investors an innovative, relatively cost efficient and secure way to acces"
},
{
"url": "https://www.spdrgoldshares.com/hong-kong/2840",
"name": "Hong Kong 2840",
"region": "HONG_KONG",
"ticker": "2840",
"product": "2840",
"exchange": "HKeX",
"description": "As an asset class, gold is unique. The economic factors that determine the price of gold are different from the economic forces that determine the price of many other asset classes, such as equities, bonds, or real estate. Gold offers investors an attractive opportunity to diversify their portfolios. SPDR Gold Shares offers investors an innovative, relatively cost efficient and secure way to acces"
},
{
"url": "https://www.spdrgoldshares.com/hong-kong/82840",
"name": "Hong Kong 82840",
"region": "HONG_KONG",
"ticker": "82840",
"product": "82840",
"exchange": "HKeX",
"description": "As an asset class, gold is unique. The economic factors that determine the price of gold are different from the economic forces that determine the price of many other asset classes, such as equities, bonds, or real estate. Gold offers investors an attractive opportunity to diversify their portfolios. SPDR Gold Shares offers investors an innovative, relatively cost efficient and secure way to acces"
}
],
"query": "hong kong",
"dataset": "products",
"provider": "spdr-gold"
}
```
---
### Performance
Cumulative performance of the trust against the LBMA Gold Price, on NAV or on
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:spdr-gold/performance`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `product` | enum(gld|gldm|o87|gsd|9840|2840|82840|1326) | query | no | Listing code. Default gld. |
| `exchange` | enum(NYSE|SGX|HKeX|TSE) | query | no | Exchange for the listing. Defaults to the one that listing trades on. |
| `basis` | enum(nav|close) | query | no | Measure returns from NAV per share or from the market close. Default nav. |
| `lang` | enum(en|zh|ja) | query | no | Response language. Default en. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:spdr-gold/performance?product=gld&exchange=NYSE&basis=nav&lang=en" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:spdr-gold/performance?product=gld&exchange=NYSE&basis=nav&lang=en", {
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:spdr-gold/performance?product=gld&exchange=NYSE&basis=nav&lang=en",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"asOf": "07/31/2026",
"basis": "nav",
"count": 7,
"items": [
{
"period": "YTD",
"trustPercent": -6.746725,
"benchmarkPercent": -7.811713
},
{
"period": "1MONTH",
"trustPercent": -0.020102,
"benchmarkPercent": 0.013661
},
{
"period": "3MONTHS",
"trustPercent": -12.770604,
"benchmarkPercent": -12.680668
},
{
"period": "6MONTHS",
"trustPercent": -19.338008,
"benchmarkPercent": -19.174604
},
{
"period": "1YEAR",
"trustPercent": 21.584008,
"benchmarkPercent": 22.060718
},
{
"period": "5YEAR",
"trustPercent": 16.666645,
"benchmarkPercent": 17.128293
},
{
"period": "SINCE_INCEPTION",
"trustPercent": 10.27258,
"benchmarkPercent": 10.711371
}
],
"ticker": "GLD",
"dataset": "performance",
"product": "gld",
"exchange": "NYSE",
"provider": "spdr-gold",
"benchmark": "LBMA Gold Price"
}
```
---
### Holdings Daily
The daily holdings archive — one row per trading day back to the trust's first,
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:spdr-gold/holdings-daily`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `product` | enum(gld|gldm|o87|gsd|9840|2840|82840|1326) | query | no | Listing code. Default gld — the NYSE listing whose archive runs back to 18 Nov 2004. |
| `exchange` | enum(NYSE|SGX|HKeX|TSE) | query | no | Exchange for the listing. Defaults to the one that listing trades on. |
| `from` | string | query | no | Earliest trading date to return, YYYY-MM-DD. |
| `to` | string | query | no | Latest trading date to return, YYYY-MM-DD. |
| `order` | enum(desc|asc) | query | no | Newest first (desc) or oldest first (asc). Default desc. |
| `page` | number | query | no | Page of rows. Default 1. |
| `limit` | number | query | no | Rows per page. Default 100, max 2000. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:spdr-gold/holdings-daily?product=gld&exchange=NYSE&from=2026-01-01&to=2026-08-20&order=desc&page=1&limit=100" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:spdr-gold/holdings-daily?product=gld&exchange=NYSE&from=2026-01-01&to=2026-08-20&order=desc&page=1&limit=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:spdr-gold/holdings-daily?product=gld&exchange=NYSE&from=2026-01-01&to=2026-08-20&order=desc&page=1&limit=100",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": "2026-08-20",
"from": "2004-11-18",
"page": 1,
"unit": {
"tonnes": "tonnes",
"totalNav": "USD",
"totalOunces": "troy ounces"
},
"count": 100,
"items": [
{
"date": "2026-08-20",
"tonnes": 1038.93,
"holiday": false,
"midPoint": 415.29,
"totalNav": 149711988403.89,
"navPerShare": 411.183709,
"shareVolume": 13900941,
"totalOunces": 33402755.16,
"closingPrice": 415.26,
"ouncesPerShare": 0.091722,
"indicativePrice": 415.184,
"premiumDiscount": 0.0255
},
{
"date": "2026-08-19",
"tonnes": 1034.65,
"holiday": false,
"midPoint": 413.84,
"totalNav": 148356696692.68,
"navPerShare": 409.146985,
"shareVolume": 17480674,
"totalOunces": 33265172.64,
"closingPrice": 413.84,
"ouncesPerShare": 0.091723,
"indicativePrice": 413.677,
"premiumDiscount": 0.0394
},
{
"date": "2026-08-18",
"tonnes": 1025.24,
"holiday": false,
"midPoint": 398.55,
"totalNav": 145122668317.61,
"navPerShare": 403.903892,
"shareVolume": 10660893,
"totalOunces": 32962488.06,
"closingPrice": 398.55,
"ouncesPerShare": 0.091723,
"indicativePrice": 398.613,
"premiumDiscount": -0.0158
},
{
"date": "2026-08-17",
"tonnes": 1030.66,
"holiday": false,
"midPoint": 405.43,
"totalNav": 145967899101.56,
"navPerShare": 404.119322,
"shareVolume": 9604102,
"totalOunces": 33136762.48,
"closingPrice": 405.49,
"ouncesPerShare": 0.091724,
"indicativePrice": 405.356,
"premiumDiscount": 0.0183
},
{
"date": "2026-08-14",
"tonnes": 1023.53,
"holiday": false,
"midPoint": 401.42,
"totalNav": 144465452932.74,
"navPerShare": 402.74729,
"shareVolume": 6749803,
"totalOunces": 32907451.51,
"closingPrice": 401.48,
"ouncesPerShare": 0.091727,
"indicativePrice": 401.304,
"premiumDiscount": 0.0289
},
{
"date": "2026-08-13",
"tonnes": 1023.24,
"holiday": false,
"midPoint": 398.93,
"totalNav": 143844461429.95,
"navPerShare": 401.12789,
"shareVolume": 8695241,
"totalOunces": 32898278.77,
"closingPrice": 398.96,
"ouncesPerShare": 0.091728,
"indicativePrice": 398.793,
"premiumDiscount": 0.0344
},
{
"date": "2026-08-12",
"tonnes": 1025.81,
"holiday": false,
"midPoint": 404.86,
"totalNav": 145976478648.44,
"navPerShare": 406.054183,
"shareVolume": 10383090,
"totalOunces": 32980834.25,
"closingPrice": 404.92,
"ouncesPerShare": 0.091729,
"indicativePrice": 404.798,
"premiumDiscount": 0.0153
},
{
"date": "2026-08-11",
"tonnes": 1022.67,
"holiday": false,
"midPoint": 400.92,
"totalNav": 144107712877.1,
"navPerShare": 402.086252,
"shareVolume": 7439138,
"totalOunces": 32879931.86,
"closingPrice": 400.96,
"ouncesPerShare": 0.09173,
"indicativePrice": 400.851,
"premiumDiscount": 0.0172
}
],
"order": "desc",
"total": 5675,
"ticker": "GLD",
"dataset": "holdings-daily",
"hasMore": true,
"product": "gld",
"exchange": "NYSE",
"nextPage": 2,
"provider": "spdr-gold"
}
```
---
### Fund Data
SPDR Gold Shares live datapoints — NAV, spot, and the tonnage held in trust.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:spdr-gold/fund-data`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `product` | enum(gld|gldm|o87|gsd|9840|2840|82840|1326) | query | yes | Listing code. gld/gldm on NYSE, o87/gsd on SGX, 9840/2840/82840 on HKeX, 1326 on TSE. |
| `exchange` | enum(NYSE|SGX|HKeX|TSE) | query | no | Exchange for the listing. Defaults to the one that listing trades on. |
| `lang` | enum(en|zh|ja) | query | no | Response language. Default en. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:spdr-gold/fund-data?product=gld&exchange=NYSE&lang=en" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:spdr-gold/fund-data?product=gld&exchange=NYSE&lang=en", {
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:spdr-gold/fund-data?product=gld&exchange=NYSE&lang=en",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"asOf": "August 20, 2026",
"lang": "en",
"name": "SPDR Gold Shares",
"count": 23,
"items": [
{
"id": "closeUsd",
"date": "August 20, 2026",
"value": "US$ 415.26",
"numeric": 415.26,
"currency": "USD",
"direction": 0,
"published": true,
"upstreamId": "close_usd"
},
{
"id": "currentIopvUsd",
"date": null,
"value": "US$ 414.88",
"numeric": 414.88,
"currency": "USD",
"direction": 1,
"published": true,
"upstreamId": "current_iopv_usd"
},
{
"id": "dailyVolume",
"date": "August 20, 2026",
"value": "13,900,941",
"numeric": 13900941,
"currency": null,
"direction": 1,
"published": true,
"upstreamId": "daily_volume"
},
{
"id": "delayedIopvUsd",
"date": null,
"value": "US$ 415.40",
"numeric": 415.4,
"currency": "USD",
"direction": -1,
"published": true,
"upstreamId": "delayed_iopv_usd"
},
{
"id": "metalEntitlement",
"date": "August 20, 2026",
"value": "0.091722",
"numeric": 0.091722,
"currency": null,
"direction": null,
"published": true,
"upstreamId": "metal_entitlement"
},
{
"id": "midPointUsd",
"date": "August 19, 2026",
"value": "US$ 413.84",
"numeric": 413.84,
"currency": "USD",
"direction": 1,
"published": true,
"upstreamId": "mid_point_usd"
},
{
"id": "monthlySalesPerShare",
"date": "Aug 2026",
"value": "US$ 0.12535",
"numeric": 0.12535,
"currency": "USD",
"direction": null,
"published": true,
"upstreamId": "monthly_sales_per_share"
},
{
"id": "navShareUsd",
"date": "August 20, 2026",
"value": "US$ 411.18",
"numeric": 411.18,
"currency": "USD",
"direction": -1,
"published": true,
"upstreamId": "nav_share_usd"
}
],
"ticker": "GLD",
"dataset": "fund-data",
"product": "gld",
"exchange": "NYSE",
"provider": "spdr-gold"
}
```
---
## StockAnalysis
**Category:** finance · **Slug:** `stockanalysis`
**Detail page:** https://zapi.ink/api/finance/stockanalysis
Kutipan saham dan ETF Amerika tanpa API key: harga, perubahan, OHLC, volume, rentang 52 minggu, dan sesi extended-hours.
**Tags:** stock, etf, quote, usa, finance
### Quote
Kutipan satu saham atau ETF Amerika, termasuk harga sesi after-hours kalau ada.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:stockanalysis/quote`
- **Cache TTL:** 60s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Ticker symbol. Required. |
| `type` | enum(stock|etf) | query | no | `stock` (default) or `etf` — they live on different upstream paths. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:stockanalysis/quote?symbol=AAPL&type=stock" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:stockanalysis/quote?symbol=AAPL&type=stock", {
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:stockanalysis/quote?symbol=AAPL&type=stock",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"low": 310.74,
"asOf": "Aug 7, 2026, 4:00 PM EDT",
"high": 314.81,
"open": 311.45,
"type": "stock",
"price": 313.33,
"change": 0.92,
"low52w": 216.58,
"source": "stockanalysis",
"symbol": "AAPL",
"volume": 34562295,
"high52w": 344.57,
"exchange": "NASDAQ",
"tradingDay": "2026-08-07",
"marketStatus": "closed",
"changePercent": 0.29,
"extendedPrice": 313.25,
"previousClose": 313.33,
"extendedChange": -0.08,
"extendedSession": "After-hours"
}
```
---
## Stockbit
**Category:** finance · **Slug:** `stockbit`
**Detail page:** https://zapi.ink/api/finance/stockbit
Data saham IDX dari Stockbit: harga, chart intraday, profil emiten, diskusi komunitas, dan kamus investasi.
**Tags:** stockbit, saham, idx, indonesia, bursa, investasi
### Symbol
Harga terkini satu saham IDX: last, previous close, perubahan, volume, dan bid/offer terbaik.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:stockbit/symbol`
- **Cache TTL:** 60s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | IDX ticker, e.g. BBCA |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:stockbit/symbol?symbol=BBCA" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:stockbit/symbol?symbol=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:stockbit/symbol?symbol=BBCA",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"last": 6325,
"name": "Bank Central Asia Tbk.",
"type": "Saham",
"change": -125,
"sector": "Keuangan",
"symbol": "BBCA",
"volume": 153174800,
"bestBid": {
"price": 6350,
"volume": 2925000
},
"country": "ID",
"iconUrl": "https://assets.stockbit.com/logos/companies/BBCA.png",
"indexes": [
"TRADINGLIMIT",
"IDXVESTA28",
"ECONOMIC30",
"DAYTRADE",
"PRIMBANK10",
"IDXLQ45LCL"
],
"exchange": "IDX",
"provider": "stockbit",
"bestOffer": {
"price": 6375,
"volume": 548800
},
"followers": 3303290,
"subSector": "Bank",
"tradeable": true,
"updatedAt": "2026-07-31T08:00:03+07:00",
"tradingDate": "31 Jul 2026",
"tradingTime": "Fri 16:14",
"averageValue": 284796460,
"marketStatus": "close",
"changePercent": -1.94,
"previousClose": 6450,
"unusualMarketActivity": false
}
```
---
### Chart
Deret harga intraday satu saham, satu titik per menit perdagangan.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:stockbit/chart`
- **Cache TTL:** 60s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | IDX ticker, e.g. BBCA |
| `count` | number | query | no | Keep only the last N points. Default: the whole session |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:stockbit/chart?symbol=BBCA&count=100" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:stockbit/chart?symbol=BBCA&count=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:stockbit/chart?symbol=BBCA&count=100",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 5,
"items": [
{
"time": "2026-07-31 16:09:00",
"price": 6325,
"change": -125,
"changePercent": -1.94
},
{
"time": "2026-07-31 16:10:00",
"price": 6325,
"change": -125,
"changePercent": -1.94
},
{
"time": "2026-07-31 16:11:00",
"price": 6325,
"change": -125,
"changePercent": -1.94
},
{
"time": "2026-07-31 16:12:00",
"price": 6325,
"change": -125,
"changePercent": -1.94
},
{
"time": "2026-07-31 16:14:00",
"price": 6325,
"change": -125,
"changePercent": -1.94
}
],
"change": -125,
"symbol": "BBCA",
"interval": "intraday",
"provider": "stockbit",
"timeframe": "today",
"tradingDate": "31 Jul 2026",
"changePercent": -1.94,
"previousClose": 6450
}
```
---
### Stream
Postingan komunitas terbaru tentang satu saham.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:stockbit/stream`
- **Cache TTL:** 120s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | IDX ticker, e.g. BBCA |
| `count` | number | query | no | Cap the list. Default: every post the page carries |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:stockbit/stream?symbol=BBCA&count=10" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:stockbit/stream?symbol=BBCA&count=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:stockbit/stream?symbol=BBCA&count=10",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 5,
"items": [
{
"id": 34411610,
"isPro": false,
"likes": 0,
"images": [
"https://stream-asset.stockbit.com/283bb801-4e10-4e88-aba7-d8b862a61c45_stream.jpg"
],
"content": "$IHSG $BTC $BBCA",
"replies": 0,
"dislikes": 0,
"fullName": "Ryusuf Ivan",
"isPinned": false,
"username": "RahardianYusufIvandyaz",
"createdAt": "2026-08-02 17:45:44",
"isOfficial": false
},
{
"id": 34411604,
"isPro": false,
"likes": 0,
"images": [
"https://stream-asset.stockbit.com/9364d3c0-b966-4b65-830b-64d6390969a9_stream.jpg"
],
"content": "@NurseTyaaa Artinya Indonesia cerah 🚀😂. \n\n\nRT $IHSG $BBCA $BBRI",
"replies": 0,
"dislikes": 0,
"fullName": "Ovick",
"isPinned": false,
"username": "Taufik230295",
"createdAt": "2026-08-02 17:45:05",
"isOfficial": false
},
{
"id": 34411461,
"isPro": false,
"likes": 0,
"images": [
"https://stream-asset.stockbit.com/6c824ce3-a4d8-4de9-b0ed-dbfe3c695c76_stream.jpg"
],
"content": "Dengan FL portofolio sudah stabil di bawah 10%, strategi di bulan Agustus ini kemungkinan timbun cash dulu di deposito bank digital $BBSI , antisipasi koreksi harga $BBRI dan $BBCA atau untuk menghadapi volatilitas harga menjelang bulan November nanti",
"replies": 0,
"dislikes": 0,
"fullName": "Yaih",
"isPinned": false,
"username": "herwindyowarihkusumo",
"createdAt": "2026-08-02 17:28:02",
"isOfficial": false
},
{
"id": 34411341,
"isPro": false,
"likes": 0,
"images": [
"https://stream-asset.stockbit.com/0b190f1b-c369-435a-96f2-c98607643e87_stream.jpg",
"https://stream-asset.stockbit.com/2d818ffe-0fd2-4842-a673-66b07f7f919c_stream.jpg",
"https://stream-asset.stockbit.com/e7a1aa89-dbec-4887-a58e-97997e374146_stream.jpg"
],
"content": "platform sebelah bagus juga ya ngasih summary ini , sama flow dll\n.\nsemoga stockbit bisa nyusul 🤣\n.\ncapek Gonta ganti apps buat validasi move investasi\n.\n$BMRI $BBCA $BBRI",
"replies": 0,
"dislikes": 0,
"fullName": "Rama Abdurachman",
"isPinned": false,
"username": "ramaabd",
"createdAt": "2026-08-02 17:16:19",
"isOfficial": false
},
{
"id": 34411322,
"isPro": false,
"likes": 0,
"content": "Gemes lihat orang2 nulisnya laporan Q2, padahal laporan bulan Juni itu disebutnya semester 1, atau TW2, bukan Q2. Gimana sih ya... kan beda triwulanan ama kuartalan. $BBRI $BMRI $BBCA",
"replies": 0,
"dislikes": 0,
"fullName": "bunbun",
"isPinned": false,
"username": "bundagendis",
"createdAt": "2026-08-02 17:10:35",
"isOfficial": false
}
],
"symbol": "BBCA",
"provider": "stockbit"
}
```
---
### Profile
Profil emiten: deskripsi usaha, sektor, sub-sektor, dan indeks yang diikuti.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:stockbit/profile`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | IDX ticker, e.g. BBCA |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:stockbit/profile?symbol=BBCA" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:stockbit/profile?symbol=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:stockbit/profile?symbol=BBCA",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"name": "Bank Central Asia Tbk.",
"type": "Saham",
"sector": "Keuangan",
"symbol": "BBCA",
"country": "ID",
"iconUrl": "https://assets.stockbit.com/logos/companies/BBCA.png",
"indexes": [
"TRADINGLIMIT",
"IDXVESTA28",
"ECONOMIC30",
"DAYTRADE",
"PRIMBANK10",
"IDXLQ45LCL"
],
"exchange": "IDX",
"provider": "stockbit",
"followers": 3303290,
"subSector": "Bank",
"tradeable": true,
"background": "PT Bank Central Asia Tbk. atau BBCA dalam bidang usaha bank umum. Anak perusahaan diantaranya: PT BCA Finance (Pembiayaan Konsumen, Sewa Guna Usaha dan Anjak Piutang), BCA Finance Limited (Money Lending- Jasa Pengiriman Uang), PT Bank BCA Syariah (Perbankan Syariah), PT BCA Sekuritas (Penjamin Emisi Efek dan Pialang Perdagangan Saham), dan PT Asuransi Umum BCA (Asuransi Umum atau Asuransi Kerugian).Pada 2017 BCA mendirikan PT Central Capital Ventura (CCV) guna mengikuti inovasi layanan keuangan berbasis digital. Produk dan layanan Perseroan yaitu: produk simpanan, layanan transaksi perbankan, perbankan elektronik, layanan cash management, kartu kredit, bancassurance, produk investasi, fasilitas kredit, Bank garansi, fasilitas ekspor impor dan fasilitas valuta asing. Pada 2017 Jumlah kantor wilayah ada 12 terdiri dari (146 kantor cabang utama, 856 kantor cabang pembantu dan 244 kantor kas) tersebar di seluruh Indonesia, kantor non wilayah (1 kantor cabang utama) dan satu kantor perwakilan di Jakarta pusat.",
"listingStatus": "STATUS_ACTIVE"
}
```
---
### Glossary
Kamus istilah investasi: definisi, rumus, dan penjelasan. Bisa disaring per huruf atau kata kunci.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:stockbit/glossary`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `letter` | enum(a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) | query | no | Fetch one initial letter only. Default: every letter |
| `q` | string | query | no | Keep only terms whose name or definition contains this |
| `count` | number | query | no | Cap the list. Default: everything found |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:stockbit/glossary?letter=a&q=rasio&count=20" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:stockbit/glossary?letter=a&q=rasio&count=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:stockbit/glossary?letter=a&q=rasio&count=20",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 16,
"items": [
{
"id": 360,
"slug": "absolute-valuation-",
"term": "Absolute Valuation",
"letter": "a",
"definition": "Absolute valuation merupakan salah satu metode valuasi yang digunakan oleh investor untuk menaksir nilai intrinsik saham dengan menghitung akumulasi nilai aset ataupun potensi arus kas perusahaan. \n\nSebagai contoh jika kita ingin membeli ruko, kita bisa menaksir nilai intrinsik ruko dengan menghitung harga seluruh komponen ruko tersebut, mulai dari harga tanah, perabotan, serta komponen lainnya. \n\nSelain dengan menghitung total aset, kita juga bisa memperkirakan nilai intrinsik ruko tersebut dengan memproyeksikan kemampuannya dalam menghasilkan cash flow ke depannya. Cash flow bisa didapatkan dengan menyewakan ruko, menggunakannya sebagai tempat usaha atau modal kerja, dan lain-lain. \n\nDalam saham, metode yang paling sering digunakan dalam menghitung absolute valuation adalah discounted cash flow (DCF)."
},
{
"id": 176,
"slug": "accrued-expenses",
"term": "Accrued Expense",
"letter": "a",
"definition": "Accrued expenses adalah biaya yang telah dikeluarkan perusahaan, tetapi belum dibayar tunai. Biaya ini umumnya termasuk dalam kewajiban lancar dalam neraca perusahaan."
},
{
"id": 253,
"slug": "agio-saham",
"term": "Agio Saham",
"letter": "a",
"definition": "Selisih antara nilai nominal (par) saham dan harga yang dibayar investor untuk itu, biasanya akibat IPO atau rights issue."
},
{
"id": 321,
"slug": "akuisisi",
"term": "Akuisisi",
"letter": "a",
"definition": "Akuisisi adalah pengambilalihan kepemilikan perusahaan atau aset. Berbeda dengan pembelian saham biasa, akuisisi umumnya merujuk kepada aksi pembelian saham mayoritas atau lebih dari 50%. Ketika suatu entitas membeli lebih dari 50% saham suatu perusahaan, ia akan memiliki kontrol di perusahaan tersebut."
},
{
"id": 63,
"slug": "altman-z-score-modified",
"term": "Altman Z-Score (modified)",
"letter": "a",
"formula": "Altman Z-Score (Modified) dihitung menggunakan formula:\n\nZ-Score = 6.56A + 3.26B + 6.72C + 1.05D\n\nDimana:\n\nA = Working Capital / Total Assets\n\nB = Retained Earnings / Total Assets\n\nC = EBIT / Total Assets\n\nD = (Total Ekuitas - kepentingan non pengendali) / Total liabilities",
"definition": "Altman Z-Score adalah model probabilistik yang digunakan untuk menentukan resiko kebangkrutan. Altman Z-Score (Modified) didesain agar dapat diterapkan pada perusahaan di emerging market (negara berkembang).\n\nAdapun kategori hasil Z-Score adalah sebagai berikut:\n\n Z-Score < 1.1 mengindikasikan kemungkinan perusahaan sedang menuju kebangkrutan.\n Z-Score antara 1.1 dan 2.6 mengindikasikan perusahaan masuk kedalam zona \"hati-hati.\"\n\nZ-Score diatas 2.6 mengindikasikan perusahaan berada dalam zona aman.",
"explanation": "Z-Score Result:\n\nZ-Score < 1.1 mengindikasikan kemungkinan perusahaan sedang menuju kebangkrutan.\nZ-Score antara 1.1 dan 2.6 mengindikasikan perusahaan masuk kedalam zona \"hati-hati.\"\nZ-Score diatas 2.6 mengindikasikan perusahaan berada dalam zona aman."
},
{
"id": 66,
"slug": "altman-z-score-original",
"term": "Altman Z-Score (Original)",
"letter": "a",
"formula": "Altman Z-Score (Original) dihitung menggunakan formula:\n\nZ-Score = 1.2A + 1.4B + 3.3C + 0.6D + 1E\n\nDimana:\n\nA = Working Capital / Total Assets\n\nB = Retained Earnings / Total Assets\n\nC = EBIT / Total Assets\n\nD = Market value of equity / Total Liabilities\n\nE = Sales / Total Assets",
"definition": "Altman Z-Score menggabungkan beberapa rasio penting dalam metrik tunggal yang menyediakan informasi berharga tentang kesehatan keuangan perusahaan. Secara khusus, Altman Z-Score adalah model probabilistik yang digunakan untuk menentukan resiko kebangkrutan perusahaan.\n\nAltman Z-Score (Original) ini didesain agar dapat digunakan pada perusahaan manufaktur.",
"explanation": "Z-Score Result:\n\nZ-Score <1.81 mengindikasikan kemungkinan perusahaan sedang menuju kebangkrutan\nZ-Score antara 1.81 dan 2.99 mengindikasikan perusahaan masuk kedalam zona \"hati-hati\"\nZ-Score diatas 3.00 mengindikasikan perusahaan berada dalam zona aman"
}
],
"letter": "a",
"provider": "stockbit",
"lettersFetched": 1
}
```
---
### User
Profil publik anggota: nama, avatar, jumlah follower, following, dan ide.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:stockbit/user`
- **Cache TTL:** 900s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `username` | string | query | yes | Member handle, without the @ |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:stockbit/user?username=ramaabd" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:stockbit/user?username=ramaabd", {
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:stockbit/user?username=ramaabd",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"ideas": 105,
"fullName": "Rama Abdurachman",
"joinedAt": "2023-02-20T13:16:45Z",
"provider": "stockbit",
"username": "ramaabd",
"avatarUrl": "https://avatar.stockbit.com/1875309/2699292a-c1a3-4d7a-b366-85194701f22c-stockbit_image1768074830129.jpeg",
"followers": 12,
"following": 13,
"isVerified": false,
"avatarThumbnailUrl": "https://avatar.stockbit.com/thumb/1875309/2699292a-c1a3-4d7a-b366-85194701f22c-stockbit_image1768074830129.jpeg"
}
```
---
### Post
Satu postingan berdasarkan id permalink-nya.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:stockbit/post`
- **Cache TTL:** 600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `id` | string | query | yes | Numeric post id |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:stockbit/post?id=34411341" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:stockbit/post?id=34411341", {
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:stockbit/post?id=34411341",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"id": 34411341,
"url": "https://stockbit.com/post/34411341",
"isPro": false,
"likes": 0,
"images": [
"https://stream-asset.stockbit.com/0b190f1b-c369-435a-96f2-c98607643e87_stream.jpg",
"https://stream-asset.stockbit.com/2d818ffe-0fd2-4842-a673-66b07f7f919c_stream.jpg",
"https://stream-asset.stockbit.com/e7a1aa89-dbec-4887-a58e-97997e374146_stream.jpg"
],
"content": "platform sebelah bagus juga ya ngasih summary ini , sama flow dll\n.\nsemoga stockbit bisa nyusul 🤣\n.\ncapek Gonta ganti apps buat validasi move investasi\n.\n$BMRI $BBCA $BBRI",
"country": "ID",
"replies": 0,
"reposts": 0,
"dislikes": 0,
"fullName": "Rama Abdurachman",
"provider": "stockbit",
"username": "ramaabd",
"createdAt": "2026-08-02 17:16:19",
"isOfficial": false
}
```
---
### Trending
The ten tickers Stockbit's own community is moving on right now.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:stockbit/trending`
- **Cache TTL:** 300s
**Parameters:**
_No parameters._
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:stockbit/trending" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:stockbit/trending", {
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:stockbit/trending",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 10,
"items": [
{
"last": 825,
"name": "Petrindo Jaya Kreasi Tbk.",
"type": "Saham",
"change": -15,
"symbol": "CUAN",
"country": "ID",
"notation": [],
"companyId": "1000003994",
"tradeable": true,
"marginInfo": null,
"dayTradeInfo": null,
"changePercent": -1.79,
"listingStatus": "STATUS_ACTIVE",
"tradingLimitInfo": null,
"unusualMarketActivity": false
},
{
"last": 2010,
"name": "Chandra Asri Pacific Tbk.",
"type": "Saham",
"change": -50,
"symbol": "TPIA",
"country": "ID",
"notation": [],
"companyId": "432",
"tradeable": true,
"corpAction": {
"text": "Perusahaan Memiliki Corporate Action",
"active": false,
"iconUrl": "https://assets.stockbit.com/images/corp_action_event_icon.svg"
},
"marginInfo": null,
"dayTradeInfo": null,
"changePercent": -2.43,
"listingStatus": "STATUS_ACTIVE",
"tradingLimitInfo": null,
"unusualMarketActivity": false
},
{
"last": 102,
"name": "Gaya Abadi Sempurna Tbk.",
"type": "Saham",
"change": 14,
"symbol": "SLIS",
"country": "ID",
"notation": [],
"companyId": "1000002486",
"tradeable": true,
"corpAction": {
"text": "Perusahaan Memiliki Corporate Action",
"active": false,
"iconUrl": "https://assets.stockbit.com/images/corp_action_event_icon.svg"
},
"marginInfo": null,
"dayTradeInfo": null,
"changePercent": 15.91,
"listingStatus": "STATUS_ACTIVE",
"tradingLimitInfo": null,
"unusualMarketActivity": false
},
{
"last": 885,
"name": "VKTR Teknologi Mobilitas Tbk.",
"type": "Saham",
"change": 65,
"symbol": "VKTR",
"country": "ID",
"notation": [],
"companyId": "1000004126",
"tradeable": true,
"corpAction": {
"text": "Perusahaan Memiliki Corporate Action",
"active": false,
"iconUrl": "https://assets.stockbit.com/images/corp_action_event_icon.svg"
},
"marginInfo": null,
"dayTradeInfo": null,
"changePercent": 7.93,
"listingStatus": "STATUS_ACTIVE",
"tradingLimitInfo": null,
"unusualMarketActivity": false
},
{
"last": 1005,
"name": "Dian Swastatika Sentosa Tbk",
"type": "Saham",
"change": 15,
"symbol": "DSSA",
"country": "ID",
"notation": [],
"companyId": "143",
"tradeable": true,
"marginInfo": null,
"dayTradeInfo": null,
"changePercent": 1.52,
"listingStatus": "STATUS_ACTIVE",
"tradingLimitInfo": null,
"unusualMarketActivity": false
},
{
"last": 101,
"name": "Bakrie & Brothers Tbk",
"type": "Saham",
"change": 2,
"symbol": "BNBR",
"country": "ID",
"notation": [],
"companyId": "83",
"tradeable": true,
"marginInfo": null,
"dayTradeInfo": null,
"changePercent": 2.02,
"listingStatus": "STATUS_ACTIVE",
"tradingLimitInfo": null,
"unusualMarketActivity": false
}
],
"provider": "stockbit"
}
```
---
### Quote
An instrument snapshot read from the JSON API — the same data as symbol, far cheaper.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:stockbit/quote`
- **Cache TTL:** 60s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | IDX ticker or index code, e.g. BBCA or IHSG |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:stockbit/quote?symbol=BBCA" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:stockbit/quote?symbol=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:stockbit/quote?symbol=BBCA",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"last": 6350,
"name": "Bank Central Asia Tbk.",
"tabs": [
"stream",
"news",
"keystats",
"analysis",
"financials",
"fundachart"
],
"type": "Saham",
"change": -25,
"sector": "Keuangan",
"symbol": "BBCA",
"volume": 56953500,
"bestBid": {
"price": 6325,
"volume": 281900
},
"country": "ID",
"iconUrl": "https://assets.stockbit.com/logos/companies/BBCA.png",
"indexes": [
"TRADINGLIMIT",
"IDXVESTA28",
"ECONOMIC30",
"DAYTRADE",
"PRIMBANK10",
"IDXLQ45LCL"
],
"catalogs": [
{
"id": "20",
"name": "Bank",
"type": "sub_sector",
"symbol": "Bank",
"parentId": "3"
},
{
"id": "1000004658",
"name": "Day Trade",
"type": "indeks",
"symbol": "DAYTRADE",
"parentId": "88"
},
{
"id": "5",
"name": "Papan Utama",
"type": "listing-board",
"symbol": "Papan Utama",
"parentId": "89"
},
{
"id": "1000005139",
"name": "TRADINGLIMIT",
"type": "indeks",
"symbol": "TRADINGLIMIT",
"parentId": "88"
},
{
"id": "1000004998",
"name": "IDXVESTA28",
"type": "indeks",
"symbol": "IDXVESTA28",
"parentId": "88"
},
{
"id": "1000004908",
"name": "ECONOMIC30",
"type": "indeks",
"symbol": "ECONOMIC30",
"parentId": "88"
}
],
"exchange": "IDX",
"notation": [],
"provider": "stockbit",
"bestOffer": {
"price": 6350,
"volume": 2512000
},
"companyId": "54",
"followers": 0,
"subSector": "Bank",
"tradeable": true,
"updatedAt": "2026-08-14T08:00:03+07:00",
"corpAction": {
"text": "Perusahaan Memiliki Corporate Action",
"active": false,
"iconUrl": "https://assets.stockbit.com/images/corp_action_event_icon.svg"
},
"marginInfo": null,
"tradingDate": "14 Aug 2026",
"tradingTime": "Fri 16:14",
"averageValue": 230731634,
"dayTradeInfo": null,
"marketStatus": "close",
"changePercent": -0.39,
"listingStatus": "STATUS_ACTIVE",
"previousClose": 6375,
"marketTimeLeft": 148537,
"tradingLimitInfo": null,
"dayTradeMultiplier": 5,
"unusualMarketActivity": false
}
```
---
### User Stream
Every idea one member has posted.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:stockbit/user-stream`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `username` | string | query | yes | Member handle, without the @ |
| `count` | number | query | no | Cap the list. Default: every post the window carries (30) |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:stockbit/user-stream?username=ramaabd&count=10" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:stockbit/user-stream?username=ramaabd&count=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:stockbit/user-stream?username=ramaabd&count=10",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 10,
"items": [
{
"id": 34625484,
"url": "https://stockbit.com/post/34625484",
"isPro": false,
"likes": 0,
"views": 0,
"isNews": false,
"shares": 0,
"content": "mimpi basah sih 1400 wkwk, 1600 aja udah murah",
"country": "ID",
"isChart": false,
"replies": 0,
"reposts": 0,
"dislikes": 0,
"fullName": "Rama Abdurachman",
"isAuthor": false,
"isPinned": false,
"isReport": false,
"username": "ramaabd",
"avatarUrl": "https://avatar.stockbit.com/thumb/1875309/2699292a-c1a3-4d7a-b366-85194701f22c-stockbit_image1768074830129.jpeg",
"createdAt": "2026-08-07 09:59:11",
"isOfficial": false,
"isTrending": false,
"isVerified": false,
"parentPostId": 34617872,
"commenterType": "COMMENTER_TYPE_EVERYONE",
"isUnavailable": false,
"userPrivilege": 0,
"createdDisplay": "7 Aug 26, 09:59",
"verifiedStatus": "VERIFIED_STATUS_IDENTITY",
"repliesDisabled": false
},
{
"id": 34411341,
"url": "https://stockbit.com/post/34411341",
"isPro": false,
"likes": 0,
"views": 0,
"images": [
"https://stream-asset.stockbit.com/0b190f1b-c369-435a-96f2-c98607643e87_stream.jpg",
"https://stream-asset.stockbit.com/2d818ffe-0fd2-4842-a673-66b07f7f919c_stream.jpg",
"https://stream-asset.stockbit.com/e7a1aa89-dbec-4887-a58e-97997e374146_stream.jpg"
],
"isNews": false,
"shares": 0,
"content": "platform sebelah bagus juga ya ngasih summary ini , sama flow dll\n.\nsemoga stockbit bisa nyusul 🤣\n.\ncapek Gonta ganti apps buat validasi move investasi\n.\n$BMRI $BBCA $BBRI",
"country": "ID",
"isChart": false,
"replies": 3,
"reposts": 0,
"tickers": [
"BMRI",
"BBCA",
"BBRI"
],
"dislikes": 0,
"fullName": "Rama Abdurachman",
"isAuthor": false,
"isPinned": false,
"isReport": false,
"mentions": [
{
"url": "https://stockbit.com/symbol/BBCA",
"text": "$BBCA",
"ticker": "BBCA"
},
{
"url": "https://stockbit.com/symbol/BMRI",
"text": "$BMRI",
"ticker": "BMRI"
},
{
"url": "https://stockbit.com/symbol/BBRI",
"text": "$BBRI",
"ticker": "BBRI"
}
],
"username": "ramaabd",
"avatarUrl": "https://avatar.stockbit.com/thumb/1875309/2699292a-c1a3-4d7a-b366-85194701f22c-stockbit_image1768074830129.jpeg",
"createdAt": "2026-08-02 17:16:19",
"imagesData": [
{
"url": "https://stream-asset.stockbit.com/0b190f1b-c369-435a-96f2-c98607643e87_stream.jpg",
"frame": "portrait",
"ratio": 0.45,
"width": 1220,
"height": 2712
},
{
"url": "https://stream-asset.stockbit.com/2d818ffe-0fd2-4842-a673-66b07f7f919c_stream.jpg",
"frame": "portrait",
"ratio": 0.45,
"width": 1220,
"height": 2712
},
{
"url": "https://stream-asset.stockbit.com/e7a1aa89-dbec-4887-a58e-97997e374146_stream.jpg",
"frame": "portrait",
"ratio": 0.45,
"width": 1220,
"height": 2712
}
],
"isOfficial": false,
"isTrending": false,
"isVerified": false,
"commenterType": "COMMENTER_TYPE_EVERYONE",
"isUnavailable": false,
"userPrivilege": 0,
"createdDisplay": "2 Aug 26, 17:16",
"imageFrameType": "FRAME_TYPE_PORTRAIT",
"verifiedStatus": "VERIFIED_STATUS_IDENTITY",
"repliesDisabled": false
},
{
"id": 33792028,
"url": "https://stockbit.com/post/33792028",
"isPro": false,
"likes": 0,
"views": 0,
"isNews": false,
"shares": 0,
"content": "@Ivanrbnc pasti ada, cuma ya diem diem aja 🤣",
"country": "ID",
"isChart": false,
"replies": 3,
"reposts": 0,
"dislikes": 0,
"fullName": "Rama Abdurachman",
"isAuthor": false,
"isPinned": false,
"isReport": false,
"mentions": [
{
"url": "https://stockbit.com/Ivanrbnc",
"text": "@Ivanrbnc",
"ticker": "Ivanrbnc",
"username": "user"
}
],
"username": "ramaabd",
"avatarUrl": "https://avatar.stockbit.com/thumb/1875309/2699292a-c1a3-4d7a-b366-85194701f22c-stockbit_image1768074830129.jpeg",
"createdAt": "2026-07-16 09:07:17",
"replyToId": 33787779,
"isOfficial": false,
"isTrending": false,
"isVerified": false,
"parentPostId": 33787387,
"replyContent": {
"userId": 550502,
"content": "gue kira gaada yang notice, ternyata sama mennn. gue besok dca lagi deh",
"fullName": "Ivan Cezeliano",
"username": "Ivanrbnc",
"avatarUrl": "https://avatar.stockbit.com/thumb/550502/0d741fa0-de8d-4661-aea7-42bbed9697ae-stockbitLEav8AEitU20250719T122439ios.jpg",
"createdAt": "2026-07-16 02:07:26"
},
"commenterType": "COMMENTER_TYPE_EVERYONE",
"isUnavailable": false,
"userPrivilege": 0,
"createdDisplay": "16 Jul 26, 09:07",
"verifiedStatus": "VERIFIED_STATUS_IDENTITY",
"repliesDisabled": false
},
{
"id": 33787387,
"url": "https://stockbit.com/post/33787387",
"isPro": false,
"likes": 2,
"views": 0,
"images": [
"https://stream-asset.stockbit.com/0562220e-b202-4865-a01f-85cb20520843_stream.jpg"
],
"isNews": false,
"shares": 0,
"content": "$ANTM Broker summary Antam ngeri bgt Minggu ini\n.\nlaporan keuangan Q2 kapan ya, kayanya ada something ya fund fund ini ketahui retail belum 🤣\n.\nrandom tag $BBCA $ADRO",
"country": "ID",
"isChart": false,
"replies": 3,
"reposts": 0,
"tickers": [
"ANTM",
"BBCA",
"ADRO"
],
"dislikes": 0,
"fullName": "Rama Abdurachman",
"isAuthor": false,
"isPinned": false,
"isReport": false,
"mentions": [
{
"url": "https://stockbit.com/symbol/ANTM",
"text": "$ANTM",
"ticker": "ANTM"
},
{
"url": "https://stockbit.com/symbol/ADRO",
"text": "$ADRO",
"ticker": "ADRO"
},
{
"url": "https://stockbit.com/symbol/BBCA",
"text": "$BBCA",
"ticker": "BBCA"
}
],
"username": "ramaabd",
"avatarUrl": "https://avatar.stockbit.com/thumb/1875309/2699292a-c1a3-4d7a-b366-85194701f22c-stockbit_image1768074830129.jpeg",
"createdAt": "2026-07-15 23:38:13",
"imagesData": [
{
"url": "https://stream-asset.stockbit.com/0562220e-b202-4865-a01f-85cb20520843_stream.jpg",
"frame": "portrait",
"ratio": 0.45,
"width": 1220,
"height": 2712
}
],
"isOfficial": false,
"isTrending": false,
"isVerified": false,
"commenterType": "COMMENTER_TYPE_EVERYONE",
"isUnavailable": false,
"userPrivilege": 0,
"createdDisplay": "15 Jul 26, 23:38",
"imageFrameType": "FRAME_TYPE_PORTRAIT",
"verifiedStatus": "VERIFIED_STATUS_IDENTITY",
"repliesDisabled": false
},
{
"id": 32743999,
"url": "https://stockbit.com/post/32743999",
"isPro": false,
"likes": 7,
"views": 0,
"images": [
"https://stream-asset.stockbit.com/stream_1875309_40d68399-7177-411c-b61e-82a06001f0ae_1.jpg",
"https://stream-asset.stockbit.com/stream_1875309_40d68399-7177-411c-b61e-82a06001f0ae_2.jpg",
"https://stream-asset.stockbit.com/stream_1875309_40d68399-7177-411c-b61e-82a06001f0ae_3.jpg"
],
"isNews": false,
"shares": 0,
"content": "Menurut gue Bank Indonesia (Big Banks) di hukum nya bener bener nggak masuk nalar bjier\n\nMasa iya dividend yield nya lebih gede daripada saham batubara yang silikal 😵💫😭\n\nHarga kaya gini 10 tahun sekali belum tentu kejadian lagi\n\nPadahal fundamental Indonesia bagus , meskipun kelas menengah kegerus ya\n\nKayanya udah bisa pelan pelan masuk bank ya..\n\nKalau time horizon nabung 3-5 tahun\n\nSangat sangat oke\n\n$IHSG $BBRI $BMRI",
"country": "ID",
"isChart": false,
"replies": 0,
"reposts": 0,
"tickers": [
"IHSG",
"BBRI",
"BMRI"
],
"dislikes": 0,
"fullName": "Rama Abdurachman",
"isAuthor": false,
"isPinned": false,
"isReport": false,
"mentions": [
{
"url": "https://stockbit.com/symbol/BBRI",
"text": "$BBRI",
"ticker": "BBRI"
},
{
"url": "https://stockbit.com/symbol/IHSG",
"text": "$IHSG",
"ticker": "IHSG"
},
{
"url": "https://stockbit.com/symbol/BMRI",
"text": "$BMRI",
"ticker": "BMRI"
}
],
"username": "ramaabd",
"avatarUrl": "https://avatar.stockbit.com/thumb/1875309/2699292a-c1a3-4d7a-b366-85194701f22c-stockbit_image1768074830129.jpeg",
"createdAt": "2026-06-13 01:32:15",
"imagesData": [
{
"url": "https://stream-asset.stockbit.com/stream_1875309_40d68399-7177-411c-b61e-82a06001f0ae_1.jpg",
"frame": "square",
"ratio": 1,
"width": 1800,
"height": 1800
},
{
"url": "https://stream-asset.stockbit.com/stream_1875309_40d68399-7177-411c-b61e-82a06001f0ae_2.jpg",
"frame": "square",
"ratio": 1,
"width": 1800,
"height": 1800
},
{
"url": "https://stream-asset.stockbit.com/stream_1875309_40d68399-7177-411c-b61e-82a06001f0ae_3.jpg",
"frame": "square",
"ratio": 1,
"width": 1800,
"height": 1800
}
],
"isOfficial": false,
"isTrending": false,
"isVerified": false,
"commenterType": "COMMENTER_TYPE_EVERYONE",
"isUnavailable": false,
"userPrivilege": 0,
"createdDisplay": "13 Jun 26, 01:32",
"imageFrameType": "FRAME_TYPE_SQUARE",
"verifiedStatus": "VERIFIED_STATUS_IDENTITY",
"repliesDisabled": false
},
{
"id": 30154370,
"url": "https://stockbit.com/post/30154370",
"isPro": false,
"likes": 6,
"views": 0,
"isNews": false,
"shares": 0,
"content": "$BBRI 346 dividen per lot guys, 210an nanti bulan april Alhamdulillah 😭\n\nper lot 21k berartii",
"country": "ID",
"isChart": false,
"replies": 5,
"reposts": 0,
"tickers": [
"BBRI"
],
"dislikes": 0,
"fullName": "Rama Abdurachman",
"isAuthor": false,
"isPinned": false,
"isReport": false,
"mentions": [
{
"url": "https://stockbit.com/symbol/BBRI",
"text": "$BBRI",
"ticker": "BBRI"
}
],
"username": "ramaabd",
"avatarUrl": "https://avatar.stockbit.com/thumb/1875309/2699292a-c1a3-4d7a-b366-85194701f22c-stockbit_image1768074830129.jpeg",
"createdAt": "2026-04-10 12:08:23",
"updatedAt": "2026-04-10 12:09:30",
"isOfficial": false,
"isTrending": false,
"isVerified": false,
"commenterType": "COMMENTER_TYPE_EVERYONE",
"isUnavailable": false,
"userPrivilege": 0,
"createdDisplay": "10 Apr 26, 12:08",
"verifiedStatus": "VERIFIED_STATUS_IDENTITY",
"repliesDisabled": false
}
],
"provider": "stockbit",
"username": "ramaabd"
}
```
---
## Stooq
**Category:** finance · **Slug:** `stooq`
**Detail page:** https://zapi.ink/api/finance/stooq
Stooq — single-symbol quote off the HTML quote page.
**Tags:** finance, stooq
### Quote
Stooq — single-symbol quote off the HTML quote page.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:stooq/quote`
- **Cache TTL:** 30s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Stooq symbol. FX/metals `xauusd`, crypto `btcusd`, US equity `aapl.us`, commodity `cl.f` |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:stooq/quote?symbol=xauusd" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:stooq/quote?symbol=xauusd", {
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:stooq/quote?symbol=xauusd",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"ask": 4528.66,
"bid": 4528.11,
"low": 4509.89,
"date": "2026-08-21",
"high": 4542.47,
"last": 4528.39,
"name": "Gold (ozt) / U.S. Dollar",
"open": 4518.26,
"time": "04:26:24",
"change": 9.01,
"symbol": "xauusd",
"volume": null,
"askSize": null,
"bidSize": null,
"provider": "stooq",
"turnover": null,
"tradeCount": null,
"openInterest": null,
"changePercent": 0.2,
"previousClose": 4519.38
}
```
---
### History
Stooq — daily OHLC history off the HTML history page.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:stooq/history`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Stooq symbol. FX/metals `xauusd`, crypto `btcusd`, US equity `aapl.us`, commodity `cl.f` |
| `page` | number | query | no | Page of 40 daily rows, newest first. Default 1 |
| `from` | string | query | no | Oldest date to include, YYYY-MM-DD |
| `to` | string | query | no | Newest date to include, YYYY-MM-DD |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:stooq/history?symbol=xauusd&page=1&from=2024-01-01&to=2024-01-31" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:stooq/history?symbol=xauusd&page=1&from=2024-01-01&to=2024-01-31", {
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:stooq/history?symbol=xauusd&page=1&from=2024-01-01&to=2024-01-31",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": null,
"from": null,
"name": "Gold (ozt) / U.S. Dollar",
"page": 1,
"count": 40,
"items": [
{
"low": 4450.995,
"date": "2026-08-20",
"high": 4540.275,
"open": 4522.985,
"close": 4519.375,
"change": -3.66,
"volume": null,
"changePercent": -0.08
},
{
"low": 4325.405,
"date": "2026-08-19",
"high": 4524.295,
"open": 4336.765,
"close": 4523.035,
"change": 188.73,
"volume": null,
"changePercent": 4.35
},
{
"low": 4329.385,
"date": "2026-08-18",
"high": 4435.785,
"open": 4417.835,
"close": 4334.305,
"change": -82.41,
"volume": null,
"changePercent": -1.87
},
{
"low": 4367.485,
"date": "2026-08-17",
"high": 4428.865,
"open": 4376.385,
"close": 4416.715,
"change": 40.45,
"volume": null,
"changePercent": 0.92
},
{
"low": 4311.095,
"date": "2026-08-14",
"high": 4396.845,
"open": 4354.125,
"close": 4376.265,
"change": 25.09,
"volume": null,
"changePercent": 0.58
},
{
"low": 4344.735,
"date": "2026-08-13",
"high": 4449.085,
"open": 4410.705,
"close": 4351.175,
"change": -57.42,
"volume": null,
"changePercent": -1.3
},
{
"low": 4362.655,
"date": "2026-08-12",
"high": 4440.155,
"open": 4372.515,
"close": 4408.595,
"change": 40.46,
"volume": null,
"changePercent": 0.93
},
{
"low": 4356.965,
"date": "2026-08-11",
"high": 4435.135,
"open": 4389.525,
"close": 4368.135,
"change": -22.23,
"volume": null,
"changePercent": -0.51
}
],
"total": 15315,
"symbol": "xauusd",
"hasMore": true,
"nextPage": 2,
"provider": "stooq"
}
```
---
## Tokocrypto
**Category:** finance · **Slug:** `tokocrypto`
**Detail page:** https://zapi.ink/api/finance/tokocrypto
Tokocrypto aggregated tape — consecutive fills of one taker order at one
**Tags:** finance, tokocrypto
### Agg Trades
Tokocrypto aggregated tape — consecutive fills of one taker order at one
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:tokocrypto/agg-trades`
- **Cache TTL:** 5s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Symbol. Accepts BTCIDR, BTC_IDR or BTC/IDR |
| `limit` | number | query | no | Number of recent aggregated trades. Default 100, max 1000 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:tokocrypto/agg-trades?symbol=BTCIDR&limit=100" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:tokocrypto/agg-trades?symbol=BTCIDR&limit=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:tokocrypto/agg-trades?symbol=BTCIDR&limit=100",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"base": "BTC",
"pair": "BTC_IDR",
"count": 100,
"items": [
{
"side": "buy",
"price": 1326185291,
"value": 66309.26455,
"amount": 0.00005,
"tradedAt": 1787277957618,
"aggTradeId": "839944",
"lastTradeId": "897133",
"tradedAtIso": "2026-08-21T02:05:57.618Z",
"firstTradeId": "897133"
},
{
"side": "buy",
"price": 1326185291,
"value": 13261.85291,
"amount": 0.00001,
"tradedAt": 1787277958311,
"aggTradeId": "839945",
"lastTradeId": "897134",
"tradedAtIso": "2026-08-21T02:05:58.311Z",
"firstTradeId": "897134"
},
{
"side": "buy",
"price": 1326712538,
"value": 39801.37614,
"amount": 0.00003,
"tradedAt": 1787277958704,
"aggTradeId": "839946",
"lastTradeId": "897135",
"tradedAtIso": "2026-08-21T02:05:58.704Z",
"firstTradeId": "897135"
},
{
"side": "buy",
"price": 1326712538,
"value": 13267.12538,
"amount": 0.00001,
"tradedAt": 1787277959308,
"aggTradeId": "839947",
"lastTradeId": "897136",
"tradedAtIso": "2026-08-21T02:05:59.308Z",
"firstTradeId": "897136"
},
{
"side": "buy",
"price": 1326712538,
"value": 13267.12538,
"amount": 0.00001,
"tradedAt": 1787277960302,
"aggTradeId": "839948",
"lastTradeId": "897137",
"tradedAtIso": "2026-08-21T02:06:00.302Z",
"firstTradeId": "897137"
},
{
"side": "buy",
"price": 1326712538,
"value": 13267.12538,
"amount": 0.00001,
"tradedAt": 1787277962406,
"aggTradeId": "839949",
"lastTradeId": "897138",
"tradedAtIso": "2026-08-21T02:06:02.406Z",
"firstTradeId": "897138"
},
{
"side": "buy",
"price": 1327212210,
"value": 26544.2442,
"amount": 0.00002,
"tradedAt": 1787277965501,
"aggTradeId": "839950",
"lastTradeId": "897139",
"tradedAtIso": "2026-08-21T02:06:05.501Z",
"firstTradeId": "897139"
},
{
"side": "buy",
"price": 1327212210,
"value": 53088.4884,
"amount": 0.00004,
"tradedAt": 1787277966309,
"aggTradeId": "839951",
"lastTradeId": "897140",
"tradedAtIso": "2026-08-21T02:06:06.309Z",
"firstTradeId": "897140"
}
],
"quote": "IDR",
"symbol": "BTCIDR",
"dataset": "agg-trades",
"provider": "tokocrypto"
}
```
---
### Klines
Tokocrypto OHLCV candles, including the taker-buy split — the half of the
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:tokocrypto/klines`
- **Cache TTL:** 30s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Symbol. Accepts BTCIDR, BTC_IDR or BTC/IDR |
| `interval` | enum(1m|3m|5m|15m|30m|1h|2h|4h|6h|8h|12h|1d|3d|1w|1M) | query | no | Candle size: 1m 3m 5m 15m 30m 1h 2h 4h 6h 8h 12h 1d 3d 1w 1M. Default 15m |
| `startTime` | string | query | no | Oldest candle to include. Epoch seconds/ms or ISO date |
| `endTime` | string | query | no | Newest candle to include. Epoch seconds/ms or ISO date. Default now |
| `count` | number | query | no | Candles per page. Default 500, max 1000 |
| `page` | number | query | no | Page number, walking backwards in time. Default 1 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:tokocrypto/klines?symbol=BTCIDR&interval=15m&startTime=2026-08-01T00%3A00%3A00Z&endTime=2026-08-20T00%3A00%3A00Z&count=500&page=1" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:tokocrypto/klines?symbol=BTCIDR&interval=15m&startTime=2026-08-01T00%3A00%3A00Z&endTime=2026-08-20T00%3A00%3A00Z&count=500&page=1", {
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:tokocrypto/klines?symbol=BTCIDR&interval=15m&startTime=2026-08-01T00%3A00%3A00Z&endTime=2026-08-20T00%3A00%3A00Z&count=500&page=1",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"base": "BTC",
"page": 1,
"pair": "BTC_IDR",
"count": 500,
"items": [
{
"low": 1123639484,
"date": "2026-08-15T21:30:00.000Z",
"high": 1123917268,
"open": 1123639484,
"close": 1123917268,
"volume": 0.00347,
"openTime": 1786829400000,
"closeTime": 1786830299999,
"tradeCount": 4,
"quoteVolume": 3899087.9,
"takerBuyVolume": 0.00017,
"takerBuyQuoteVolume": 191065.93
},
{
"low": 1123925572,
"date": "2026-08-15T21:45:00.000Z",
"high": 1123925572,
"open": 1123925572,
"close": 1123925572,
"volume": 0.00127,
"openTime": 1786830300000,
"closeTime": 1786831199999,
"tradeCount": 1,
"quoteVolume": 1427385.47,
"takerBuyVolume": 0,
"takerBuyQuoteVolume": 0
},
{
"low": 1123671838,
"date": "2026-08-15T22:00:00.000Z",
"high": 1123931540,
"open": 1123931540,
"close": 1123671838,
"volume": 0.00205,
"openTime": 1786831200000,
"closeTime": 1786832099999,
"tradeCount": 44,
"quoteVolume": 2303927.04,
"takerBuyVolume": 0.00161,
"takerBuyQuoteVolume": 1809511.44
},
{
"low": 1123526294,
"date": "2026-08-15T22:15:00.000Z",
"high": 1125249663,
"open": 1123918687,
"close": 1123536529,
"volume": 0.01094,
"openTime": 1786832100000,
"closeTime": 1786832999999,
"tradeCount": 8,
"quoteVolume": 12304091.85,
"takerBuyVolume": 0.00897,
"takerBuyQuoteVolume": 10090743.12
},
{
"low": 1123648378,
"date": "2026-08-15T22:30:00.000Z",
"high": 1123648378,
"open": 1123648378,
"close": 1123648378,
"volume": 0.00003,
"openTime": 1786833000000,
"closeTime": 1786833899999,
"tradeCount": 1,
"quoteVolume": 33709.45,
"takerBuyVolume": 0,
"takerBuyQuoteVolume": 0
},
{
"low": 1123457394,
"date": "2026-08-15T22:45:00.000Z",
"high": 1125182518,
"open": 1123890961,
"close": 1123457394,
"volume": 0.00272,
"openTime": 1786833900000,
"closeTime": 1786834799999,
"tradeCount": 7,
"quoteVolume": 3056505,
"takerBuyVolume": 0.00092,
"takerBuyQuoteVolume": 1034110.85
},
{
"low": 1123457394,
"date": "2026-08-15T23:00:00.000Z",
"high": 1124010008,
"open": 1123981311,
"close": 1123982378,
"volume": 0.00266,
"openTime": 1786834800000,
"closeTime": 1786835699999,
"tradeCount": 46,
"quoteVolume": 2989712.71,
"takerBuyVolume": 0.00251,
"takerBuyQuoteVolume": 2821194.11
},
{
"low": 1123429622,
"date": "2026-08-15T23:15:00.000Z",
"high": 1123431185,
"open": 1123429622,
"close": 1123429622,
"volume": 0.01802,
"openTime": 1786835700000,
"closeTime": 1786836599999,
"tradeCount": 6,
"quoteVolume": 20244225.8,
"takerBuyVolume": 0,
"takerBuyQuoteVolume": 0
}
],
"quote": "IDR",
"symbol": "BTCIDR",
"dataset": "klines",
"endTime": 1787279399999,
"hasMore": true,
"interval": "15m",
"nextPage": 2,
"provider": "tokocrypto",
"startTime": null
}
```
---
### Ticker
Tokocrypto 24-hour ticker — the only IDR book in this repo carrying bid and
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:tokocrypto/ticker`
- **Cache TTL:** 10s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | no | One symbol. Accepts BTCIDR, BTC_IDR or BTC/IDR. Omit to list every symbol |
| `quote` | string | query | no | Restrict the list to this quote asset. Ignored when `symbol` is set |
| `query` | string | query | no | Filter the list by symbol substring. Ignored when `symbol` is set |
| `page` | number | query | no | Page number. Default 1 |
| `count` | number | query | no | Items per page. Default 100, max 500 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:tokocrypto/ticker?symbol=BTCIDR"e=IDR&query=btc&page=1&count=100" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:tokocrypto/ticker?symbol=BTCIDR"e=IDR&query=btc&page=1&count=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:tokocrypto/ticker?symbol=BTCIDR"e=IDR&query=btc&page=1&count=100",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"page": 1,
"count": 1,
"items": [
{
"base": "BTC",
"pair": "BTC_IDR",
"type": "main",
"quote": "IDR",
"askQty": 0.02811,
"bidQty": 0.04206,
"symbol": "BTCIDR",
"volume": 19.19794,
"lastQty": 0.00003,
"askPrice": 1322765665,
"bidPrice": 1321305370,
"lowPrice": 1222000000,
"openTime": 1787192764361,
"closeTime": 1787279164361,
"highPrice": 1336459176,
"lastPrice": 1320388680,
"openPrice": 1231613026,
"tradeCount": 4218,
"lastTradeId": 897237,
"openTimeIso": "2026-08-20T02:26:04.361Z",
"priceChange": 88775654,
"quoteVolume": 24512927167.4,
"closeTimeIso": "2026-08-21T02:26:04.361Z",
"firstTradeId": 893020,
"prevClosePrice": 1231691936,
"weightedAvgPrice": 1276851952.21,
"priceChangePercent": 7.208
}
],
"query": null,
"quote": null,
"total": 1,
"symbol": "BTCIDR",
"dataset": "ticker",
"hasMore": false,
"nextPage": null,
"provider": "tokocrypto"
}
```
---
### Symbols
Tokocrypto's own tradable list — symbol, precision and the order filters
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:tokocrypto/symbols`
- **Cache TTL:** 600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `quote` | string | query | no | Restrict to pairs quoted in this asset |
| `query` | string | query | no | Filter by symbol substring |
| `type` | enum(main|next|all) | query | no | Listing type. `next` pairs are served by a different market host and are excluded by default. Default main |
| `page` | number | query | no | Page number. Default 1 |
| `count` | number | query | no | Items per page. Default 100, max 500 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:tokocrypto/symbols?quote=IDR&query=btc&type=main&page=1&count=100" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:tokocrypto/symbols?quote=IDR&query=btc&type=main&page=1&count=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:tokocrypto/symbols?quote=IDR&query=btc&type=main&page=1&count=100",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"page": 1,
"type": "main",
"count": 29,
"items": [
{
"base": "ADA",
"pair": "ADA_IDR",
"type": "main",
"quote": "IDR",
"maxQty": 324354,
"minQty": 0.1,
"symbol": "ADAIDR",
"maxPrice": 284360,
"minPrice": 1,
"stepSize": 0.1,
"tickSize": 1,
"ocoEnabled": true,
"orderTypes": [
"LIMIT",
"LIMIT_MAKER",
"MARKET",
"STOP_LOSS",
"STOP_LOSS_LIMIT",
"TAKE_PROFIT",
"TAKE_PROFIT_LIMIT"
],
"maxNotional": 9000000000,
"minNotional": 20000,
"permissions": [
"SPOT"
],
"basePrecision": 8,
"icebergEnabled": true,
"quotePrecision": 2,
"spotTradingEnabled": true,
"marginTradingEnabled": false
},
{
"base": "ARB",
"pair": "ARB_IDR",
"type": "main",
"quote": "IDR",
"maxQty": 530991,
"minQty": 0.1,
"symbol": "ARBIDR",
"maxPrice": 173700,
"minPrice": 1,
"stepSize": 0.1,
"tickSize": 1,
"ocoEnabled": true,
"orderTypes": [
"LIMIT",
"LIMIT_MAKER",
"MARKET",
"STOP_LOSS",
"STOP_LOSS_LIMIT",
"TAKE_PROFIT",
"TAKE_PROFIT_LIMIT"
],
"maxNotional": 9000000000,
"minNotional": 20000,
"permissions": [
"SPOT"
],
"basePrecision": 8,
"icebergEnabled": true,
"quotePrecision": 2,
"spotTradingEnabled": true,
"marginTradingEnabled": false
},
{
"base": "ASTER",
"pair": "ASTER_IDR",
"type": "main",
"quote": "IDR",
"maxQty": 102481,
"minQty": 0.01,
"symbol": "ASTERIDR",
"maxPrice": 899999,
"minPrice": 1,
"stepSize": 0.01,
"tickSize": 1,
"ocoEnabled": true,
"orderTypes": [
"LIMIT",
"LIMIT_MAKER",
"MARKET",
"STOP_LOSS",
"STOP_LOSS_LIMIT",
"TAKE_PROFIT",
"TAKE_PROFIT_LIMIT"
],
"maxNotional": 9000000000,
"minNotional": 20000,
"permissions": [
"SPOT"
],
"basePrecision": 8,
"icebergEnabled": true,
"quotePrecision": 2,
"spotTradingEnabled": true,
"marginTradingEnabled": false
},
{
"base": "AVAX",
"pair": "AVAX_IDR",
"type": "main",
"quote": "IDR",
"maxQty": 9223,
"minQty": 0.01,
"symbol": "AVAXIDR",
"maxPrice": 9999999,
"minPrice": 1,
"stepSize": 0.01,
"tickSize": 1,
"ocoEnabled": true,
"orderTypes": [
"LIMIT",
"LIMIT_MAKER",
"MARKET",
"STOP_LOSS",
"STOP_LOSS_LIMIT",
"TAKE_PROFIT",
"TAKE_PROFIT_LIMIT"
],
"maxNotional": 9000000000,
"minNotional": 20000,
"permissions": [
"SPOT"
],
"basePrecision": 8,
"icebergEnabled": true,
"quotePrecision": 2,
"spotTradingEnabled": true,
"marginTradingEnabled": false
},
{
"base": "BNB",
"pair": "BNB_IDR",
"type": "main",
"quote": "IDR",
"maxQty": 250,
"minQty": 0.001,
"symbol": "BNBIDR",
"maxPrice": 368235275,
"minPrice": 1,
"stepSize": 0.001,
"tickSize": 1,
"ocoEnabled": true,
"orderTypes": [
"LIMIT",
"LIMIT_MAKER",
"MARKET",
"STOP_LOSS",
"STOP_LOSS_LIMIT",
"TAKE_PROFIT",
"TAKE_PROFIT_LIMIT"
],
"maxNotional": 9000000000,
"minNotional": 20000,
"permissions": [
"SPOT"
],
"basePrecision": 8,
"icebergEnabled": true,
"quotePrecision": 2,
"spotTradingEnabled": true,
"marginTradingEnabled": false
},
{
"base": "BTC",
"pair": "BTC_IDR",
"type": "main",
"quote": "IDR",
"maxQty": 3,
"minQty": 0.00001,
"symbol": "BTCIDR",
"maxPrice": 30028768800,
"minPrice": 1,
"stepSize": 0.00001,
"tickSize": 1,
"ocoEnabled": true,
"orderTypes": [
"LIMIT",
"LIMIT_MAKER",
"MARKET",
"STOP_LOSS",
"STOP_LOSS_LIMIT",
"TAKE_PROFIT",
"TAKE_PROFIT_LIMIT"
],
"maxNotional": 9000000000,
"minNotional": 20000,
"permissions": [
"SPOT"
],
"basePrecision": 8,
"icebergEnabled": true,
"quotePrecision": 2,
"spotTradingEnabled": true,
"marginTradingEnabled": false
},
{
"base": "DOGE",
"pair": "DOGE_IDR",
"type": "main",
"quote": "IDR",
"maxQty": 909593,
"minQty": 1,
"symbol": "DOGEIDR",
"maxPrice": 101400,
"minPrice": 1,
"stepSize": 1,
"tickSize": 1,
"ocoEnabled": true,
"orderTypes": [
"LIMIT",
"LIMIT_MAKER",
"MARKET",
"STOP_LOSS",
"STOP_LOSS_LIMIT",
"TAKE_PROFIT",
"TAKE_PROFIT_LIMIT"
],
"maxNotional": 9000000000,
"minNotional": 20000,
"permissions": [
"SPOT"
],
"basePrecision": 8,
"icebergEnabled": true,
"quotePrecision": 2,
"spotTradingEnabled": true,
"marginTradingEnabled": false
},
{
"base": "DOGS",
"pair": "DOGS_IDR",
"type": "main",
"quote": "IDR",
"maxQty": 2364967189,
"minQty": 1,
"symbol": "DOGSIDR",
"maxPrice": 38,
"minPrice": 0.01,
"stepSize": 1,
"tickSize": 0.01,
"ocoEnabled": true,
"orderTypes": [
"LIMIT",
"LIMIT_MAKER",
"MARKET",
"STOP_LOSS",
"STOP_LOSS_LIMIT",
"TAKE_PROFIT",
"TAKE_PROFIT_LIMIT"
],
"maxNotional": 9000000000,
"minNotional": 20000,
"permissions": [
"SPOT"
],
"basePrecision": 2,
"icebergEnabled": true,
"quotePrecision": 2,
"spotTradingEnabled": true,
"marginTradingEnabled": false
}
],
"query": null,
"quote": "IDR",
"total": 29,
"dataset": "symbols",
"hasMore": false,
"nextPage": null,
"provider": "tokocrypto"
}
```
---
### Trades
Tokocrypto executed tape — every print carries its own quote value and the
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:tokocrypto/trades`
- **Cache TTL:** 5s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Symbol. Accepts BTCIDR, BTC_IDR or BTC/IDR |
| `limit` | number | query | no | Number of recent trades. Default 100, max 1000 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:tokocrypto/trades?symbol=BTCIDR&limit=100" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:tokocrypto/trades?symbol=BTCIDR&limit=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:tokocrypto/trades?symbol=BTCIDR&limit=100",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"base": "BTC",
"pair": "BTC_IDR",
"count": 100,
"items": [
{
"side": "buy",
"price": 1326712538,
"value": 13267.12,
"amount": 0.00001,
"tradeId": "897138",
"tradedAt": 1787277962406,
"tradedAtIso": "2026-08-21T02:06:02.406Z"
},
{
"side": "buy",
"price": 1327212210,
"value": 26544.24,
"amount": 0.00002,
"tradeId": "897139",
"tradedAt": 1787277965501,
"tradedAtIso": "2026-08-21T02:06:05.501Z"
},
{
"side": "buy",
"price": 1327212210,
"value": 53088.48,
"amount": 0.00004,
"tradeId": "897140",
"tradedAt": 1787277966309,
"tradedAtIso": "2026-08-21T02:06:06.309Z"
},
{
"side": "buy",
"price": 1328023816,
"value": 39840.71,
"amount": 0.00003,
"tradeId": "897141",
"tradedAt": 1787277974821,
"tradedAtIso": "2026-08-21T02:06:14.821Z"
},
{
"side": "buy",
"price": 1329407375,
"value": 39882.22,
"amount": 0.00003,
"tradeId": "897142",
"tradedAt": 1787277984133,
"tradedAtIso": "2026-08-21T02:06:24.133Z"
},
{
"side": "buy",
"price": 1329407375,
"value": 13294.07,
"amount": 0.00001,
"tradeId": "897143",
"tradedAt": 1787277987109,
"tradedAtIso": "2026-08-21T02:06:27.109Z"
},
{
"side": "buy",
"price": 1329407375,
"value": 93058.51,
"amount": 0.00007,
"tradeId": "897144",
"tradedAt": 1787277988811,
"tradedAtIso": "2026-08-21T02:06:28.811Z"
},
{
"side": "buy",
"price": 1329407375,
"value": 159528.88,
"amount": 0.00012,
"tradeId": "897145",
"tradedAt": 1787277989208,
"tradedAtIso": "2026-08-21T02:06:29.208Z"
}
],
"quote": "IDR",
"symbol": "BTCIDR",
"dataset": "trades",
"provider": "tokocrypto"
}
```
---
### Depth
Tokocrypto order book — bid and ask levels with SIZES, which is what
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:tokocrypto/depth`
- **Cache TTL:** 5s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Symbol. Accepts BTCIDR, BTC_IDR or BTC/IDR |
| `limit` | number | query | no | Levels per side. Default 100, max 5000 — the exchange serves fewer when the book is thinner |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:tokocrypto/depth?symbol=BTCIDR&limit=100" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:tokocrypto/depth?symbol=BTCIDR&limit=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:tokocrypto/depth?symbol=BTCIDR&limit=100",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"asks": [
{
"price": 1323368740,
"value": 44518124.41360001,
"amount": 0.03364
},
{
"price": 1323403539,
"value": 37200873.48129,
"amount": 0.02811
},
{
"price": 1323439081,
"value": 181231747.75214002,
"amount": 0.13694
},
{
"price": 1323439084,
"value": 1760173.98172,
"amount": 0.00133
},
{
"price": 1323581129,
"value": 264716.2258,
"amount": 0.0002
},
{
"price": 1324147359,
"value": 1761115.98747,
"amount": 0.00133
},
{
"price": 1324210976,
"value": 3535643.30592,
"amount": 0.00267
},
{
"price": 1324417401,
"value": 3536194.46067,
"amount": 0.00267
}
],
"base": "BTC",
"bids": [
{
"price": 1321305370,
"value": 55574103.8622,
"amount": 0.04206
},
{
"price": 1321238003,
"value": 110891505.59179,
"amount": 0.08393
},
{
"price": 1321157600,
"value": 55567888.656,
"amount": 0.04206
},
{
"price": 1321082456,
"value": 60029986.80064,
"amount": 0.04544
},
{
"price": 1320388681,
"value": 90631479.06384,
"amount": 0.06864
},
{
"price": 1320264101,
"value": 1755951.25433,
"amount": 0.00133
},
{
"price": 1319549693,
"value": 1755001.09169,
"amount": 0.00133
},
{
"price": 1319036954,
"value": 1754319.14882,
"amount": 0.00133
}
],
"pair": "BTC_IDR",
"quote": "IDR",
"spread": 2063370,
"symbol": "BTCIDR",
"dataset": "depth",
"askCount": 100,
"bidCount": 100,
"provider": "tokocrypto",
"lastUpdateId": 243951922
}
```
---
## TradingView
**Category:** finance · **Slug:** `tradingview`
**Detail page:** https://zapi.ink/api/finance/tradingview
Screener, charts, technical indicators, fundamentals, news and the macro calendar across 16 markets — Indonesian equities, US equities, crypto, forex and futures.
**Tags:** stocks, crypto, forex, screener, chart, technical-analysis
### Screener
Filter and rank a whole exchange by price, market cap, sector and more.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:tradingview/screener`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `market` | enum(indonesia|america|crypto|forex|malaysia|singapore|thailand|japan|hongkong|india|uk|germany|australia|futures|cfd|bond|argentina|austria|bahrain|bangladesh|belgium|bonds|brazil|canada|chile|china|coin|colombia|cyprus|czech|denmark|economics2|egypt|estonia|finland|france|global|greece|hungary|iceland|israel|italy|kenya|korea|ksa|kuwait|latvia|lithuania|luxembourg|mexico|morocco|netherlands|newzealand|nigeria|norway|pakistan|peru|philippines|poland|portugal|qatar|romania|rsa|russia|serbia|slovakia|slovenia|spain|srilanka|sweden|switzerland|taiwan|tunisia|turkey|venezuela|vietnam) | query | no | Market to scan. Default indonesia |
| `search` | string | query | no | Filter by ticker or company name |
| `columns` | string | query | no | Comma-separated extra data columns to return, up to 100. Omit for the standard set. 4,084 names are accepted, including bid/ask/bid_ask_spread_pct for forex, on-chain and social metrics for crypto, dividends, pre/post-market and analyst targets for equities, and any indicator with a \|1 \|5 \|15 \|30 \|60 \|120 \|240 \|1W \|1M suffix |
| `sortBy` | string | query | no | Upstream column to sort on. Default market cap |
| `sortOrder` | enum(desc|asc) | query | no | Sort direction. Defaults to desc, or asc when sorting forex by name |
| `page` | number | query | no | Page number. Default 1 |
| `count` | number | query | no | Rows per page. Default 50, max 1000 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:tradingview/screener?market=indonesia&search=bank&columns=bid%2Cask%2Cbid_ask_spread_pct&sortBy=market_cap_basic&sortOrder=desc&page=1&count=50" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:tradingview/screener?market=indonesia&search=bank&columns=bid%2Cask%2Cbid_ask_spread_pct&sortBy=market_cap_basic&sortOrder=desc&page=1&count=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:tradingview/screener?market=indonesia&search=bank&columns=bid%2Cask%2Cbid_ask_spread_pct&sortBy=market_cap_basic&sortOrder=desc&page=1&count=50",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"page": 1,
"count": 5,
"items": [
{
"last": 6325,
"name": "PT Bank Central Asia Tbk",
"change": -125,
"sector": "Finance",
"symbol": "IDX:BBCA",
"ticker": "BBCA",
"volume": 153174800,
"peRatio": 13.405200751623779,
"exchange": "IDX",
"marketCap": 779714671484375,
"changePercent": -1.937984496124031
},
{
"last": 3040,
"name": "PT Bank Rakyat Indonesia (Persero) Tbk Class B",
"change": 50,
"sector": "Finance",
"symbol": "IDX:BBRI",
"ticker": "BBRI",
"volume": 226634400,
"peRatio": 7.82939339714289,
"exchange": "IDX",
"marketCap": 459397912503040,
"changePercent": 1.6722408026755853
},
{
"last": 4190,
"name": "PT Bank Mandiri (Persero) Tbk",
"change": 30,
"sector": "Finance",
"symbol": "IDX:BMRI",
"ticker": "BMRI",
"volume": 97657300,
"peRatio": 6.278753581998949,
"exchange": "IDX",
"marketCap": 392951904790270,
"changePercent": 0.7211538461538461
},
{
"last": 3530,
"name": "PT Bank Negara Indonesia (Persero) Tbk Class B",
"change": -20,
"sector": "Finance",
"symbol": "IDX:BBNI",
"ticker": "BBNI",
"volume": 48321300,
"peRatio": 6.473911603413677,
"exchange": "IDX",
"marketCap": 131590388558217,
"changePercent": -0.5633802816901409
},
{
"last": 1820,
"name": "PT Bank Syariah Indonesia (Persero) Tbk",
"change": 35,
"sector": "Finance",
"symbol": "IDX:BRIS",
"ticker": "BRIS",
"volume": 7921400,
"peRatio": 10.642303976947131,
"exchange": "IDX",
"marketCap": 83955256328125,
"changePercent": 1.9607843137254901
}
],
"query": "bank",
"total": 49,
"market": "indonesia",
"hasMore": true,
"nextPage": 2
}
```
---
### Symbol
One instrument with price and fundamentals, quoted in its own currency.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:tradingview/symbol`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Ticker, with or without its exchange prefix (IDX:BBCA) |
| `market` | enum(indonesia|america|crypto|forex|malaysia|singapore|thailand|japan|hongkong|india|uk|germany|australia|futures|cfd|bond) | query | no | Market the ticker belongs to. Default indonesia |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:tradingview/symbol?symbol=BBCA&market=indonesia" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:tradingview/symbol?symbol=BBCA&market=indonesia", {
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:tradingview/symbol?symbol=BBCA&market=indonesia",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"eps": 471.8318,
"low": 6325,
"debt": 55359119000000,
"high": 6450,
"last": 6325,
"name": "PT Bank Central Asia Tbk",
"open": 6425,
"change": -125,
"market": "indonesia",
"sector": "Finance",
"symbol": "IDX:BBCA",
"ticker": "BBCA",
"volume": 153174800,
"peRatio": 13.405200751623779,
"revenue": 126869068000000,
"currency": "IDR",
"exchange": "IDX",
"industry": "Major Banks",
"monthLow": 5625,
"provider": "tradingview",
"marketCap": 779714671484375,
"monthHigh": 6625,
"week52Low": 4820,
"week52High": 8975,
"priceToBook": 2.873025943873964,
"avgVolume10d": 163117410,
"changePercent": -1.937984496124031,
"dividendYieldPercent": 0
}
```
---
### Markets
Which markets can be scanned, and how many instruments each holds.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:tradingview/markets`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `search` | string | query | no | Filter markets by id or label |
| `scope` | enum(default|all) | query | no | `default` lists the 16 headline markets (~1s). `all` lists every one of the 76 the screener accepts, and takes ~13s because each market's instrument count is a separate upstream call. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:tradingview/markets?search=indo&scope=all" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:tradingview/markets?search=indo&scope=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:tradingview/markets?search=indo&scope=all",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 16,
"items": [
{
"id": "indonesia",
"label": "Indonesia Stock Exchange",
"instrumentCount": 881
},
{
"id": "america",
"label": "United States",
"instrumentCount": 19643
},
{
"id": "crypto",
"label": "Crypto",
"instrumentCount": 55807
},
{
"id": "forex",
"label": "Forex",
"instrumentCount": 6260
},
{
"id": "malaysia",
"label": "Malaysia",
"instrumentCount": 1145
},
{
"id": "singapore",
"label": "Singapore",
"instrumentCount": 645
},
{
"id": "thailand",
"label": "Thailand",
"instrumentCount": 2248
},
{
"id": "japan",
"label": "Japan",
"instrumentCount": 4393
}
],
"provider": "tradingview"
}
```
---
### Chart
OHLCV candles at 13 resolutions for any symbol the platform carries.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:tradingview/chart`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Exchange-qualified symbol. A bare ticker uses the market's default exchange |
| `market` | enum(indonesia|america|crypto|forex|malaysia|singapore|thailand|japan|hongkong|india|uk|germany|australia|futures|cfd|bond) | query | no | Market used to resolve a bare ticker. Default indonesia |
| `resolution` | enum(1|3|5|15|30|45|60|120|180|240|1D|1W|1M|3M|6M|12M) | query | no | Candle size in minutes, or 1D / 1W / 1M / 3M / 6M / 12M. Default 1D |
| `count` | number | query | no | Number of candles. Default 200, max 20000. The real bound is the instrument's own history: asking for more than it has returns everything it has |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:tradingview/chart?symbol=IDX%3ABBCA&market=indonesia&resolution=1D&count=200" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:tradingview/chart?symbol=IDX%3ABBCA&market=indonesia&resolution=1D&count=200", {
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:tradingview/chart?symbol=IDX%3ABBCA&market=indonesia&resolution=1D&count=200",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"name": "PT Bank Central Asia Tbk",
"count": 30,
"market": "indonesia",
"symbol": "IDX:BBCA",
"candles": [
{
"low": 6125,
"date": "2026-06-22T02:00:00.000Z",
"high": 6400,
"open": 6400,
"close": 6225,
"volume": 193401600,
"timestamp": 1782093600
},
{
"low": 6075,
"date": "2026-06-23T02:00:00.000Z",
"high": 6200,
"open": 6150,
"close": 6125,
"volume": 144561900,
"timestamp": 1782180000
},
{
"low": 5925,
"date": "2026-06-24T02:00:00.000Z",
"high": 6200,
"open": 6125,
"close": 5925,
"volume": 144928800,
"timestamp": 1782266400
},
{
"low": 5900,
"date": "2026-06-25T02:00:00.000Z",
"high": 6175,
"open": 5900,
"close": 6025,
"volume": 197935000,
"timestamp": 1782352800
},
{
"low": 6025,
"date": "2026-06-26T02:00:00.000Z",
"high": 6175,
"open": 6050,
"close": 6175,
"volume": 163378700,
"timestamp": 1782439200
},
{
"low": 5925,
"date": "2026-06-29T02:00:00.000Z",
"high": 6200,
"open": 6175,
"close": 5925,
"volume": 189886600,
"timestamp": 1782698400
},
{
"low": 5550,
"date": "2026-06-30T02:00:00.000Z",
"high": 5825,
"open": 5775,
"close": 5550,
"volume": 440738300,
"timestamp": 1782784800
},
{
"low": 5550,
"date": "2026-07-01T02:00:00.000Z",
"high": 5750,
"open": 5550,
"close": 5600,
"volume": 124123800,
"timestamp": 1782871200
}
],
"currency": "IDR",
"exchange": "IDX",
"provider": "tradingview",
"timezone": "Asia/Bangkok",
"resolution": "1D"
}
```
---
### Technicals
31 indicators plus buy/sell verdicts, on 10 timeframes.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:tradingview/technicals`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Ticker, with or without its exchange prefix |
| `market` | enum(indonesia|america|crypto|forex|malaysia|singapore|thailand|japan|hongkong|india|uk|germany|australia|futures|cfd|bond) | query | no | Market the ticker belongs to. Default indonesia |
| `timeframe` | enum(1m|5m|15m|30m|1h|2h|4h|1d|1w|1M) | query | no | Timeframe the indicators are computed on. Default 1d |
| `columns` | string | query | no | Comma-separated extra indicators to add to the standard set, up to 100. 298 bases are accepted, including the 44 Candle.* pattern detectors, all six pivot systems, Ichimoku, Aroon, DonchCh20, KltChnl, P.SAR, HullMA, VWAP, Stoch.RSI, 31 SMA and 31 EMA periods, and the [1] previous-bar variants. Each is computed on the timeframe you asked for |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:tradingview/technicals?symbol=BBCA&market=indonesia&timeframe=1d&columns=Candle.Hammer%2CPivot.M.Fibonacci.R1%2CIchimoku.BLine" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:tradingview/technicals?symbol=BBCA&market=indonesia&timeframe=1d&columns=Candle.Hammer%2CPivot.M.Fibonacci.R1%2CIchimoku.BLine", {
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:tradingview/technicals?symbol=BBCA&market=indonesia&timeframe=1d&columns=Candle.Hammer%2CPivot.M.Fibonacci.R1%2CIchimoku.BLine",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"adx": 13.301554083059738,
"atr": 188.06943171881582,
"rsi": 53.67932744764375,
"last": 6325,
"macd": 84.52113457980977,
"vwma": 6303.151581141213,
"cci20": 57.43019716819662,
"ema10": 6321.799747446807,
"ema20": 6260.688031551343,
"ema50": 6195.480231487916,
"sma10": 6362.5,
"sma20": 6288.75,
"sma50": 6018,
"ema100": 6416.569054506186,
"ema200": 6963.967952901217,
"market": "indonesia",
"sma100": 6283.5,
"sma200": 7124.375,
"stochD": 43.91743522178303,
"stochK": 50,
"symbol": "IDX:BBCA",
"ticker": "BBCA",
"summary": "neutral",
"momentum": -150,
"provider": "tradingview",
"ratingAll": 0.08787878787878788,
"timeframe": "1d",
"williamsR": -54.54545454545454,
"macdSignal": 92.23224289033081,
"bollingerLower": 6034.056556817809,
"bollingerUpper": 6543.443443182191,
"pivotClassicR1": 6460,
"pivotClassicS1": 4730,
"awesomeOscillator": 107.64705882352973,
"ratingOscillators": -0.09090909090909091,
"oscillatorsSummary": "neutral",
"pivotClassicMiddle": 5640,
"ratingMovingAverages": 0.26666666666666666,
"movingAveragesSummary": "buy"
}
```
---
### Performance
Trailing returns, volatility, beta and 52-week range.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:tradingview/performance`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Ticker, with or without its exchange prefix |
| `market` | enum(indonesia|america|crypto|forex|malaysia|singapore|thailand|japan|hongkong|india|uk|germany|australia|futures|cfd|bond) | query | no | Market the ticker belongs to. Default indonesia |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:tradingview/performance?symbol=BBCA&market=indonesia" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:tradingview/performance?symbol=BBCA&market=indonesia", {
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:tradingview/performance?symbol=BBCA&market=indonesia",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"last": 6325,
"name": "PT Bank Central Asia Tbk",
"market": "indonesia",
"symbol": "IDX:BBCA",
"ticker": "BBCA",
"currency": "IDR",
"exchange": "IDX",
"provider": "tradingview",
"beta1Year": 0.677129,
"week52Low": 4820,
"gapPercent": -0.3875968992248062,
"week52High": 8975,
"ytdPercent": -21.671826625387,
"avgVolume10d": 163117410,
"avgVolume30d": 176751580,
"week1Percent": 2.0161290322580645,
"year1Percent": -24.251497005988025,
"year5Percent": 4.718543046357616,
"month1Percent": 13.963963963963964,
"month3Percent": 6.302521008403361,
"month6Percent": -12.152777777777779,
"allTimePercent": 17971.428571428572,
"relativeVolume10d": 0.8523013641402308,
"volatilityDayPercent": 1.976284584980237,
"volatilityWeekPercent": 2.415757086242275,
"volatilityMonthPercent": 2.913881882241015
}
```
---
### Financials
Income, balance sheet, cash flow and the next earnings date.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:tradingview/financials`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Ticker, with or without its exchange prefix |
| `market` | enum(indonesia|america|malaysia|singapore|thailand|japan|hongkong|india|uk|germany|australia) | query | no | Market the ticker belongs to. Default indonesia |
| `period` | enum(quarter|annual|ttm) | query | no | Reporting period. Default quarter |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:tradingview/financials?symbol=BBCA&market=indonesia&period=quarter" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:tradingview/financials?symbol=BBCA&market=indonesia&period=quarter", {
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:tradingview/financials?symbol=BBCA&market=indonesia&period=quarter",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"name": "PT Bank Central Asia Tbk",
"market": "indonesia",
"period": "quarter",
"symbol": "IDX:BBCA",
"ticker": "BBCA",
"revenue": 32698735000000,
"currency": "IDR",
"provider": "tradingview",
"employees": 27937,
"netIncome": 14850323000000,
"totalDebt": 55359119000000,
"totalAssets": 1660579336000000,
"totalEquity": 270667746000000,
"currentRatio": 0.125086448946293,
"debtToEquity": 0.20470204833949399,
"freeCashFlow": 8287156000000,
"operatingIncome": 18388677000000,
"lastEarningsDate": 1785231300,
"nextEarningsDate": 1792065600,
"totalLiabilities": 1389911590000000,
"dividendYieldPercent": 0,
"returnOnAssetsPercent": 3.66893228325801,
"returnOnEquityPercent": 21.8239508306063,
"epsForecastNextQuarter": 122.338,
"dividendPayoutRatioPercent": 0
}
```
---
### News
Wire headlines attached to one instrument.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:tradingview/news`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Exchange-qualified symbol. A bare ticker uses the market's default exchange |
| `market` | enum(indonesia|america|crypto|forex|malaysia|singapore|thailand|japan|hongkong|india|uk|germany|australia) | query | no | Market used to resolve a bare ticker. Default indonesia |
| `lang` | enum(en|id) | query | no | Headline language. Default en |
| `count` | number | query | no | Maximum headlines. Default 25, max 50 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:tradingview/news?symbol=IDX%3ABBCA&market=indonesia&lang=en&count=25" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:tradingview/news?symbol=IDX%3ABBCA&market=indonesia&lang=en&count=25", {
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:tradingview/news?symbol=IDX%3ABBCA&market=indonesia&lang=en&count=25",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"lang": "en",
"count": 5,
"items": [
{
"id": "tag:reuters.com,2026:newsml_FWN43U0KR:0",
"url": "https://www.tradingview.com/news/reuters.com,2026:newsml_FWN43U0KR:0-bank-central-asia-posts-half-year-profit-attributable-of-29-534-trillion-rupiah/",
"title": "Bank Central Asia Posts Half-Year Profit Attributable Of 29.534 Trillion Rupiah",
"source": "Reuters",
"urgency": 2,
"publishedAt": 1785234099,
"headlineOnly": true,
"publishedAtIso": "2026-07-28T10:21:39.000Z",
"relatedSymbols": [
"IDX:BBCA"
]
},
{
"id": "tag:reuters.com,2026:newsml_FWN43U023:0",
"url": "https://www.tradingview.com/news/reuters.com,2026:newsml_FWN43U023:0-bank-central-asia-posts-gross-npl-ratio-of-1-86-as-at-june-30/",
"title": "Bank Central Asia Posts Gross NPL Ratio of 1.86% As At June 30",
"source": "Reuters",
"urgency": 2,
"publishedAt": 1785232512,
"headlineOnly": true,
"publishedAtIso": "2026-07-28T09:55:12.000Z",
"relatedSymbols": [
"IDX:BBCA"
]
},
{
"id": "urn:summary_document_slides:quartr.com:3910873:0",
"url": "https://www.tradingview.com/news/urn:summary_document_slides:quartr.com:3910873:0-bbca-strong-asset-and-loan-growth-digital-dominance-and-resilient-asset-quality-in-1h26/",
"title": "BBCA: Strong asset and loan growth, digital dominance, and resilient asset quality in 1H26",
"source": "Quartr",
"urgency": 2,
"publishedAt": 1785231802,
"headlineOnly": false,
"publishedAtIso": "2026-07-28T09:43:22.000Z",
"relatedSymbols": [
"IDX:BBCA"
]
},
{
"id": "urn:summary_document_report:quartr.com:3686476:0",
"url": "https://www.tradingview.com/news/urn:summary_document_report:quartr.com:3686476:0-bbca-net-profit-rose-2-year-over-year-with-strong-capital-and-improved-asset-quality/",
"title": "BBCA: Net profit rose 2% year-over-year, with strong capital and improved asset quality",
"source": "Quartr",
"urgency": 2,
"publishedAt": 1785231791,
"headlineOnly": false,
"publishedAtIso": "2026-07-28T09:43:11.000Z",
"relatedSymbols": [
"IDX:BBCA"
]
},
{
"id": "tag:reuters.com,2026:newsml_L4N43G12X:0",
"url": "https://www.tradingview.com/news/reuters.com,2026:newsml_L4N43G12X:0-beaten-down-indonesian-stocks-feel-the-love-as-ai-rally-cools/",
"title": "Beaten-down Indonesian stocks feel the love as AI rally cools",
"source": "Reuters",
"urgency": 2,
"publishedAt": 1784588400,
"headlineOnly": true,
"publishedAtIso": "2026-07-20T23:00:00.000Z",
"relatedSymbols": [
"IDX:COMPOSITE",
"KRX:KOSPI",
"IDX:INDF",
"IDX:BBCA",
"IDX:INCO",
"IDX:ADMR",
"IDX:AMMN"
]
}
],
"symbol": "IDX:BBCA",
"provider": "tradingview"
}
```
---
### Search
Resolve free text to instruments, with ISIN and listing currency.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:tradingview/search`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `q` | string | query | yes | Ticker, company name or ISIN |
| `exchange` | string | query | no | Restrict to one exchange |
| `type` | enum(all|stock|futures|forex|index|crypto|bond|economic|fund) | query | no | Instrument type. Default all |
| `page` | number | query | no | Page number. Default 1 |
| `count` | number | query | no | Results per page. Default 20, max 50 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:tradingview/search?q=bank%20central%20asia&exchange=IDX&type=all&page=1&count=20" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:tradingview/search?q=bank%20central%20asia&exchange=IDX&type=all&page=1&count=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:tradingview/search?q=bank%20central%20asia&exchange=IDX&type=all&page=1&count=20",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 5,
"items": [
{
"isin": "ID1000109507",
"name": "PT Bank Central Asia Tbk",
"type": "stock",
"ipoAt": 959738400,
"symbol": "IDX:BBCA",
"ticker": "BBCA",
"country": "ID",
"subType": "common",
"currency": "IDR",
"exchange": "IDX"
},
{
"isin": "ID1000109507",
"name": "PT Bank Central Asia Tbk",
"type": "stock",
"symbol": "GETTEX:BZG2",
"ticker": "BZG2",
"country": "DE",
"subType": "common",
"currency": "EUR",
"exchange": "GETTEX"
},
{
"isin": "ID1000109507",
"name": "PT Bank Central Asia Tbk",
"type": "stock",
"symbol": "LSX:A0NBWE",
"ticker": "A0NBWE",
"country": "DE",
"subType": "common",
"currency": "EUR",
"exchange": "LSX"
},
{
"isin": "ID1000109507",
"name": "PT Bank Central Asia Tbk",
"type": "stock",
"symbol": "LS:A0NBWE",
"ticker": "A0NBWE",
"country": "DE",
"subType": "common",
"currency": "EUR",
"exchange": "LS"
},
{
"isin": "ID1000109507",
"name": "PT Bank Central Asia Tbk",
"type": "stock",
"symbol": "FWB:BZG2",
"ticker": "BZG2",
"country": "DE",
"subType": "common",
"currency": "EUR",
"exchange": "FWB"
}
],
"query": "bank central asia",
"provider": "tradingview"
}
```
---
### Economic calendar
Macro releases with actual, forecast and previous values.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:tradingview/calendar`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `countries` | string | query | no | Comma-separated ISO country codes. Default ID |
| `from` | string | query | no | Window start, YYYY-MM-DD. Defaults to today |
| `to` | string | query | no | Window end, YYYY-MM-DD. Defaults to 7 days after the start |
| `importance` | enum(all|high|medium|low) | query | no | Minimum release importance. Default all |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:tradingview/calendar?countries=ID%2CUS&from=2026-08-01&to=2026-08-08&importance=all" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:tradingview/calendar?countries=ID%2CUS&from=2026-08-01&to=2026-08-08&importance=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:tradingview/calendar?countries=ID%2CUS&from=2026-08-01&to=2026-08-08&importance=all",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": "2026-08-09",
"from": "2026-08-02",
"count": 94,
"items": [
{
"id": "396409",
"date": "2026-08-03T00:30:00.000Z",
"title": "S&P Global Manufacturing PMI",
"period": "Jul",
"source": "S&P Global",
"country": "ID",
"currency": "IDR",
"previous": 46.9,
"indicator": "Manufacturing PMI",
"importance": "low",
"description": "The S&P Global Indonesia Manufacturing Purchasing Managers’ Index measures the performance of the manufacturing sector and is derived from a survey of 400 manufacturing companies. The Manufacturing Purchasing Managers Index is based on five individual indexes with the following weights: New Orders (30 percent), Output (25 percent), Employment (20 percent), Suppliers’ Delivery Times (15 percent) and Stock of Items Purchased (10 percent), with the Delivery Times index inverted so that it moves in a comparable direction. A reading above 50 indicates an expansion of the manufacturing sector compared to the previous month; below 50 represents a contraction; while 50 indicates no change. This is only a limited sample of PMI headline data displayed on the Customer’s service, under licence from S&P Global. Full historic PMI headline data and all other PMI sub-index data and histories are available on subscription from S&P Global. Contact economics@spglobal.com for more details."
},
{
"id": "403951",
"date": "2026-08-03T04:00:00.000Z",
"unit": "%",
"title": "Exports YoY",
"period": "Jun",
"source": "Statistics Indonesia",
"country": "ID",
"currency": "IDR",
"forecast": 0.25,
"previous": -5.73,
"indicator": "Exports YoY",
"importance": "low",
"description": "Exports have been an engine of economic growth in Indonesia. However, after reaching a peak in 2012, it have been in a steady decline due to lower commodity prices and dwindling global demand. Major exports are: oil and gas (12.4 percent of the total exports, of those gas 6.9 percent, crude oil 4.3 percent and oil products 1.2 percent); animal and vegetable fats and oils (14 percent); and electrical equipment and machinery (10.45 percent). Other exports include: footwear, part of such articles (3.4 percent); garments not knitted (3 percent) and ores, slag and ash (2.5 percent). Major export partners are: the United States (11.6 percent), China (10 percent of the total exports), Japan (9.9 percent), India (8.8 percent) and Singapore (7 percent)."
},
{
"id": "404148",
"date": "2026-08-03T04:00:00.000Z",
"unit": "%",
"title": "Inflation Rate MoM",
"period": "Jul",
"source": "Statistics Indonesia",
"country": "ID",
"currency": "IDR",
"forecast": 0.1,
"previous": 0.44,
"indicator": "Inflation Rate Mom",
"importance": "low",
"description": "In Indonesia, the consumer price index (CPI) is a measure of change over a specified period of time in the general level of prices of goods and services that a given population acquires, uses or pays for consumption. The CPI covers the urban population in the 44 provincial capital cities and regency capital cities in the country. The most important categories in Indonesia's CPI are Food, drinks and tobacco (25 percent of the total weight), Housing, water, electricity and household fuel (20.4 percent), Transportation (12.4 percent), and Food and beverage providers/Restaurant (8.7 percent). The index also includes: Household equipment, tools and routine maintenance (6 percent); Personal care and other services (5.9 percent); Information, communication and financial services (5.8 percent); Education (5.6 percent); and Clothing and footwear (5.4 percent). Health and Recreation, sports and culture account for the remaining 4.7 percent."
},
{
"id": "407218",
"date": "2026-08-03T04:00:00.000Z",
"unit": "%",
"title": "Core Inflation Rate YoY",
"period": "Jul",
"source": "Statistics Indonesia",
"country": "ID",
"currency": "IDR",
"forecast": 2.8,
"previous": 2.76,
"indicator": "Core Inflation Rate",
"importance": "low",
"description": "In Indonesia, the core inflation rate tracks changes in prices that consumers pay for a basket of goods which excludes some volatile price items."
},
{
"id": "409373",
"date": "2026-08-03T04:00:00.000Z",
"unit": "%",
"title": "Imports YoY",
"period": "Jun",
"source": "Statistics Indonesia",
"country": "ID",
"currency": "IDR",
"forecast": 25.3,
"previous": 22.16,
"indicator": "Imports YoY",
"importance": "low",
"description": "From 2004 to 2012, imports to Indonesia tripled, as large portion of the population entered middle-class and propelled higher purchases of oil and consumption goods. However, starting in mid-2013, imports have been declining due to low commodity prices and weak domestic consumption and investment. Main imports products are: oil and gas (around 17 percent of total imports), nuclear reactions, boilers, mechanical appliances (19 percent); iron and steel (5.4 percent), organic chemical materials (4.8 percent) and vehicles (4.5 percent). Main import partners are: China (25 percent of the total imports), Japan (11 percent), Singapore (7.6 percent), Thailand (6.8 percent) and the United States (6.4 percent)."
},
{
"id": "410705",
"date": "2026-08-03T04:00:00.000Z",
"unit": "$",
"scale": "B",
"title": "Balance of Trade",
"period": "Jun",
"source": "Statistics Indonesia",
"country": "ID",
"currency": "IDR",
"forecast": -0.79,
"previous": -1.61,
"indicator": "Balance of Trade",
"importance": "medium",
"description": "Since the 1970’s Indonesia has been recording consistent trade surpluses due to robust exports growth. However, from 2012 to 2014 the country started recording trade deficits, as exports shrank due to slowdown in the global economy and fall in commodity prices. In 2015, trade balance swang again to surplus due to almost 20 percent fall in imports. In recent years, the biggest trade deficits were recorded with China, Thailand, Japan, Germany and South Korea. Indonesia records trade surpluses mainly with India, United States, and Malaysia."
},
{
"id": "414341",
"date": "2026-08-03T04:00:00.000Z",
"unit": "%",
"title": "Inflation Rate YoY",
"period": "Jul",
"source": "Statistics Indonesia",
"country": "ID",
"currency": "IDR",
"forecast": 3.2,
"previous": 3.34,
"indicator": "Inflation Rate",
"importance": "medium",
"description": "In Indonesia, the consumer price index (CPI) is a measure of change over a specified period of time in the general level of prices of goods and services that a given population acquires, uses or pays for consumption. The CPI covers the urban population in the 44 provincial capital cities and regency capital cities in the country. The most important categories in Indonesia's CPI are Food, drinks and tobacco (25 percent of the total weight), Housing, water, electricity and household fuel (20.4 percent), Transportation (12.4 percent), and Food and beverage providers/Restaurant (8.7 percent). The index also includes: Household equipment, tools and routine maintenance (6 percent); Personal care and other services (5.9 percent); Information, communication and financial services (5.8 percent); Education (5.6 percent); and Clothing and footwear (5.4 percent). Health and Recreation, sports and culture account for the remaining 4.7 percent."
},
{
"id": "414584",
"date": "2026-08-03T05:00:00.000Z",
"title": "Tourist Arrivals YoY",
"period": "Jun",
"source": "Statistics Indonesia",
"country": "ID",
"currency": "IDR",
"previous": 5.83,
"indicator": "Tourist Arrivals",
"importance": "low",
"description": "In Indonesia, Tourist Arrivals refers to the number of foreign tourists visiting the country."
}
],
"provider": "tradingview",
"countries": [
"ID",
"US"
]
}
```
---
### Quote
Everything the platform holds about one instrument in a single snapshot, including bid/ask with sizes and the company profile.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:tradingview/quote`
- **Cache TTL:** 30s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Exchange-qualified symbol. A bare ticker uses the market's default exchange |
| `market` | enum(indonesia|america|crypto|forex|malaysia|singapore|thailand|japan|hongkong|india|uk|germany|australia|futures|cfd|bond) | query | no | Market used to resolve a bare ticker. Default indonesia |
| `scope` | enum(core|full|all) | query | no | How much of the snapshot to return. core is the quote, fundamentals and profile. full adds every other current-value field the session carries, around 1,000. all adds the fiscal history arrays on top, around 1,600 fields and 270 KB. Default core |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:tradingview/quote?symbol=IDX%3ABBCA&market=indonesia&scope=core" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:tradingview/quote?symbol=IDX%3ABBCA&market=indonesia&scope=core", {
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:tradingview/quote?symbol=IDX%3ABBCA&market=indonesia&scope=core",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"ask": 6350,
"bid": 6325,
"ceo": "Gregory Hendra Lembong",
"eps": 471.8318,
"low": 6275,
"high": 6350,
"last": 6350,
"name": "PT Bank Central Asia Tbk",
"open": 6300,
"type": "stock",
"change": -25,
"lastAt": 1786703215,
"market": "indonesia",
"minMov": 25,
"sector": "Finance",
"symbol": "IDX:BBCA",
"ticker": "BBCA",
"volume": 56953500,
"askSize": 1462000,
"bidSize": 1759700,
"country": "ID",
"founded": 1955,
"peRatio": 13.511170718039777,
"proName": "IDX:BBCA",
"session": "out_of_session",
"website": "http://www.bca.co.id",
"currency": "IDR",
"exchange": "IDX",
"industry": "Major Banks",
"provider": "tradingview",
"timezone": "Asia/Bangkok",
"avgVolume": 92992320,
"employees": 27937,
"lastAtIso": "2026-08-14T10:26:55.000Z",
"marketCap": 782796547656250,
"week52Low": 4820,
"allTimeLow": 35,
"fractional": false,
"isTradable": true,
"priceScale": 1,
"updateMode": "delayed_streaming_600",
"week52High": 8750,
"allTimeHigh": 10950,
"floatShares": 46561181410.544205,
"changePercent": -0.39,
"previousClose": 6375,
"listedExchange": "IDX",
"sharesOutstanding": 123275046875,
"businessDescription": "PT Bank Central Asia Tbk provides commercial banking and other financial services. It operates through the following segments: Loans, Treasury, and Others. The firm offers deposits account, transaction banking, electronic banking, cash management, credit cards, bank assurance, credit facilities, bank guarantees, export-import facilities, foreign exchange facilities, and investment products. The company was founded on August 10, 1955 and is headquartered in Jakarta, Indonesia.",
"dividendYieldPercent": 0
}
```
---
### Calendar History
The same macro release feed as `calendar`, but assembled across a window the
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:tradingview/calendar-history`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `countries` | string | query | no | Comma-separated ISO country codes. Default ID |
| `from` | string | query | no | Window start, YYYY-MM-DD. Defaults to one year ago. History begins 2013-01-01 |
| `to` | string | query | no | Window end, YYYY-MM-DD. Defaults to today |
| `importance` | enum(all|high|medium|low) | query | no | Keep only releases of this importance. Default all |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:tradingview/calendar-history?countries=US&from=2016-01-01&to=2018-12-31&importance=high" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:tradingview/calendar-history?countries=US&from=2016-01-01&to=2018-12-31&importance=high", {
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:tradingview/calendar-history?countries=US&from=2016-01-01&to=2018-12-31&importance=high",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": "2026-08-20",
"from": "2025-08-20",
"count": 261,
"items": [
{
"id": "382876",
"date": "2025-08-20T07:20:00.000Z",
"unit": "%",
"title": "Loan Growth YoY",
"actual": 7.03,
"period": "Jul",
"source": "Central Bank",
"ticker": "ECONOMICS:IDLG",
"country": "ID",
"category": "mny",
"currency": "IDR",
"previous": 7.77,
"actualRaw": 7.03,
"indicator": "Loan Growth",
"sourceUrl": "https://www.bi.go.id",
"importance": "low",
"description": "In Indonesia, loan growth refers to year over year change in total value of outstanding credits of commercial banks.",
"previousRaw": 7.77,
"referenceDate": "2025-07-31T00:00:00Z"
},
{
"id": "382877",
"date": "2025-08-20T07:30:00.000Z",
"unit": "%",
"title": "Deposit Facility Rate",
"actual": 4.25,
"period": "Aug",
"source": "Central Bank",
"ticker": "ECONOMICS:IDDIR",
"country": "ID",
"category": "mny",
"currency": "IDR",
"forecast": 4.5,
"previous": 4.5,
"actualRaw": 4.25,
"indicator": "Deposit Interest Rate",
"sourceUrl": "https://www.bi.go.id",
"importance": "low",
"description": "The Deposit Interest Rate is the average rate paid by commercial banks to individuals or corporations on deposits.",
"forecastRaw": 4.5,
"previousRaw": 4.5,
"referenceDate": "2025-08-20T00:00:00Z"
},
{
"id": "382878",
"date": "2025-08-20T07:30:00.000Z",
"unit": "%",
"title": "Lending Facility Rate",
"actual": 5.75,
"period": "Aug",
"source": "Central Bank",
"ticker": "ECONOMICS:IDLR",
"country": "ID",
"category": "mny",
"currency": "IDR",
"forecast": 6,
"previous": 6,
"actualRaw": 5.75,
"indicator": "Lending Rate",
"sourceUrl": "https://www.bi.go.id",
"importance": "low",
"description": "In Indonesia, lending rate refers to central bank lending facility rate.",
"forecastRaw": 6,
"previousRaw": 6,
"referenceDate": "2025-08-20T00:00:00Z"
},
{
"id": "390986",
"date": "2025-08-20T07:30:00.000Z",
"unit": "%",
"title": "Interest Rate Decision",
"actual": 5,
"source": "Central Bank",
"ticker": "ECONOMICS:IDINTR",
"country": "ID",
"category": "mny",
"currency": "IDR",
"forecast": 5.25,
"previous": 5.25,
"actualRaw": 5,
"indicator": "Interest Rate",
"sourceUrl": "https://www.bi.go.id",
"importance": "medium",
"description": "In Indonesia the interest rate decisions are taken by The Central Bank of Republic of Indonesia. In April of 2016, policymakers announced the replacement of the official discount interest rate with new 7-day reverse repurchase rate in August 2016. This is the rate at which central banks lend or discount eligible paper for deposit money banks, typically shown on an end-of-period basis.",
"forecastRaw": 5.25,
"previousRaw": 5.25,
"referenceDate": "2025-08-20T00:00:00Z"
},
{
"id": "382915",
"date": "2025-08-21T03:00:00.000Z",
"unit": "$",
"scale": "B",
"title": "Current Account",
"actual": -3,
"period": "Q2",
"source": "Central Bank",
"ticker": "ECONOMICS:IDCA",
"country": "ID",
"category": "trd",
"currency": "IDR",
"previous": -0.2,
"actualRaw": -3000000000,
"indicator": "Current Account",
"sourceUrl": "https://www.bi.go.id",
"importance": "low",
"description": "Current Account is the sum of the balance of trade (exports minus imports of goods and services), net factor income (such as interest and dividends) and net transfer payments (such as foreign aid).",
"previousRaw": -200000000,
"referenceDate": "2025-06-30T00:00:00Z"
},
{
"id": "382916",
"date": "2025-08-22T03:00:00.000Z",
"unit": "%",
"title": "M2 Money Supply YoY",
"actual": 6.5,
"period": "Jul",
"source": "Central Bank",
"ticker": "ECONOMICS:IDM2",
"country": "ID",
"category": "mny",
"currency": "IDR",
"previous": 6.4,
"actualRaw": 6.5,
"indicator": "Money Supply M2",
"sourceUrl": "https://www.bi.go.id",
"importance": "low",
"description": "Indonesia Money Supply M2 includes M1 plus short-term time deposits in banks.",
"previousRaw": 6.4,
"referenceDate": "2025-07-31T00:00:00Z"
}
],
"dataset": "calendar-history",
"hasMore": false,
"coverage": {
"actual": 232,
"forecast": 89,
"previous": 232
},
"nextFrom": null,
"provider": "tradingview",
"countries": [
"ID"
],
"importance": "all"
}
```
---
### Countries
Which countries the macro calendar actually covers, and what currency each
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:tradingview/countries`
- **Cache TTL:** 86400s
**Parameters:**
_No parameters._
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:tradingview/countries" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:tradingview/countries", {
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:tradingview/countries",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": "2026-08-27",
"from": "2026-08-13",
"count": 126,
"items": [
{
"country": "AE",
"currency": "AED",
"releases": 1
},
{
"country": "AL",
"currency": "ALL",
"releases": 2
},
{
"country": "AM",
"currency": "AMD",
"releases": 7
},
{
"country": "AO",
"currency": "AOA",
"releases": 2
},
{
"country": "AR",
"currency": "ARS",
"releases": 8
},
{
"country": "AT",
"currency": "EUR",
"releases": 7
}
],
"dataset": "countries",
"provider": "tradingview"
}
```
---
### Indicators
The distinct macro indicators a country publishes, with how often each one
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:tradingview/indicators`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `countries` | string | query | no | Comma-separated ISO country codes. Default ID |
| `from` | string | query | no | Window start, YYYY-MM-DD. Defaults to one year ago |
| `to` | string | query | no | Window end, YYYY-MM-DD. Defaults to today |
| `importance` | enum(all|high|medium|low) | query | no | Keep only releases of this importance. Default all |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:tradingview/indicators?countries=US&from=2024-01-01&to=2024-12-31&importance=high" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:tradingview/indicators?countries=US&from=2024-01-01&to=2024-12-31&importance=high", {
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:tradingview/indicators?countries=US&from=2024-01-01&to=2024-12-31&importance=high",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": "2026-08-20",
"from": "2025-08-20",
"count": 25,
"items": [
{
"country": "ID",
"category": "gov",
"currency": "IDR",
"lastDate": "2026-08-17T00:00:00.000Z",
"releases": 17,
"firstDate": "2025-09-05T00:00:00.000Z",
"indicator": "Holidays",
"importance": "low",
"withActual": 0,
"withForecast": 0
},
{
"unit": "%",
"ticker": "ECONOMICS:IDDIR",
"country": "ID",
"category": "mny",
"currency": "IDR",
"lastDate": "2026-08-19T07:20:00.000Z",
"releases": 14,
"firstDate": "2025-08-20T07:30:00.000Z",
"indicator": "Deposit Interest Rate",
"importance": "low",
"withActual": 14,
"withForecast": 10
},
{
"unit": "%",
"ticker": "ECONOMICS:IDINTR",
"country": "ID",
"category": "mny",
"currency": "IDR",
"lastDate": "2026-08-19T07:20:00.000Z",
"releases": 14,
"firstDate": "2025-08-20T07:30:00.000Z",
"indicator": "Interest Rate",
"importance": "medium",
"withActual": 14,
"withForecast": 13
},
{
"unit": "%",
"ticker": "ECONOMICS:IDLR",
"country": "ID",
"category": "mny",
"currency": "IDR",
"lastDate": "2026-08-19T07:20:00.000Z",
"releases": 14,
"firstDate": "2025-08-20T07:30:00.000Z",
"indicator": "Lending Rate",
"importance": "low",
"withActual": 14,
"withForecast": 11
},
{
"unit": "%",
"ticker": "ECONOMICS:IDLG",
"country": "ID",
"category": "mny",
"currency": "IDR",
"lastDate": "2026-08-19T07:15:00.000Z",
"releases": 13,
"firstDate": "2025-08-20T07:20:00.000Z",
"indicator": "Loan Growth",
"importance": "low",
"withActual": 13,
"withForecast": 0
},
{
"unit": "$",
"ticker": "ECONOMICS:IDBOT",
"country": "ID",
"category": "trd",
"currency": "IDR",
"lastDate": "2026-08-03T04:00:00.000Z",
"releases": 12,
"firstDate": "2025-09-01T04:00:00.000Z",
"indicator": "Balance of Trade",
"importance": "medium",
"withActual": 12,
"withForecast": 9
}
],
"dataset": "indicators",
"hasMore": false,
"nextFrom": null,
"provider": "tradingview",
"countries": [
"ID"
],
"importance": "all"
}
```
---
## Treasury Id
**Category:** finance · **Slug:** `treasury-id`
**Detail page:** https://zapi.ink/api/finance/treasury-id
Treasury's current retail gold quote in rupiah — what the app buys at and sells
**Tags:** finance, treasury-id
### Gold Price
Treasury's current retail gold quote in rupiah — what the app buys at and sells
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:treasury-id/gold-price`
- **Cache TTL:** 900s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `x` | string | query | no | Unused — the current price takes no parameters. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:treasury-id/gold-price?x=" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:treasury-id/gold-price?x=", {
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:treasury-id/gold-price?x=",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"asOf": "2026-08-21T09:23:00",
"metal": "gold",
"spread": 87611,
"dataset": "gold-price",
"asOfText": "21/08/26 - 09:23",
"buyPrice": 2655779,
"currency": "IDR",
"movement": "profit",
"provider": "treasury-id",
"unitGram": 1,
"changeAbs": 30090,
"sellPrice": 2568168,
"changePercent": 1.15
}
```
---
### Gold History
Treasury's retail gold price series in rupiah. The API decides its own
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:treasury-id/gold-history`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `period` | enum(1d|1w|1m|3m|6m|1y|5y) | query | no | Window ending now. Default 1m. Ignored when startDate is given. |
| `startDate` | string | query | no | Explicit window start, YYYY-MM-DD. Overrides period. |
| `endDate` | string | query | no | Explicit window end, YYYY-MM-DD. Defaults to now. |
| `type` | enum(daily|last_price) | query | no | Upstream series mode. Default daily. |
| `order` | enum(asc|desc) | query | no | Oldest first (asc) or newest first (desc). Default asc. |
| `page` | number | query | no | Page of points. Default 1. |
| `limit` | number | query | no | Points per page. Default 500, max 2000. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:treasury-id/gold-history?period=1m&startDate=2026-01-01&endDate=2026-08-20&type=daily&order=asc&page=1&limit=500" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:treasury-id/gold-history?period=1m&startDate=2026-01-01&endDate=2026-08-20&type=daily&order=asc&page=1&limit=500", {
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:treasury-id/gold-history?period=1m&startDate=2026-01-01&endDate=2026-08-20&type=daily&order=asc&page=1&limit=500",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"page": 1,
"type": "daily",
"count": 31,
"items": [
{
"time": "2026-07-22T00:00:00",
"spread": 81942,
"buyPrice": 2484171,
"timeText": "22/07/26 - 00:00",
"sellPrice": 2402229
},
{
"time": "2026-07-23T00:00:00",
"spread": 81524,
"buyPrice": 2474085,
"timeText": "23/07/26 - 00:00",
"sellPrice": 2392561
},
{
"time": "2026-07-24T00:00:00",
"spread": 80332,
"buyPrice": 2438342,
"timeText": "24/07/26 - 00:00",
"sellPrice": 2358010
},
{
"time": "2026-07-25T00:00:00",
"spread": 80193,
"buyPrice": 2432033,
"timeText": "25/07/26 - 00:00",
"sellPrice": 2351840
},
{
"time": "2026-07-26T00:00:00",
"spread": 82067,
"buyPrice": 2421212,
"timeText": "26/07/26 - 00:00",
"sellPrice": 2339145
},
{
"time": "2026-07-27T00:00:00",
"spread": 81272,
"buyPrice": 2464130,
"timeText": "27/07/26 - 00:00",
"sellPrice": 2382858
},
{
"time": "2026-07-28T00:00:00",
"spread": 81159,
"buyPrice": 2460448,
"timeText": "28/07/26 - 00:00",
"sellPrice": 2379289
},
{
"time": "2026-07-29T00:00:00",
"spread": 80385,
"buyPrice": 2437428,
"timeText": "29/07/26 - 00:00",
"sellPrice": 2357043
}
],
"metal": "gold",
"order": "asc",
"total": 31,
"period": "1m",
"dataset": "gold-history",
"endDate": "2026-08-21",
"hasMore": false,
"currency": "IDR",
"movement": "profit",
"nextPage": null,
"provider": "treasury-id",
"unitGram": 1,
"changeAbs": 171608,
"startDate": "2026-07-22",
"changePercent": 6.91
}
```
---
## TWSE (Taiwan)
**Category:** finance · **Slug:** `twse`
**Detail page:** https://zapi.ink/api/finance/twse
Seluruh pasar saham Taiwan dalam satu panggilan: OHLC, volume, nilai, dan jumlah transaksi tiap kode.
**Tags:** twse, taiwan, stock, exchange, finance
### Daily Market
Ringkasan harian seluruh emiten Taiwan. Tanggal kalender ROC upstream dikonversi ke ISO.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:twse/daily`
- **Cache TTL:** 900s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `code` | string | query | no | Keep a single listing code. Omit for the whole market. |
| `length` | number | query | no | Rows to return (default 50, max 2000) |
| `sort` | enum(value|volume|code) | query | no | Order rows by traded value (default), volume, or code. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:twse/daily?code=2330&length=50&sort=value" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:twse/daily?code=2330&length=50&sort=value", {
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:twse/daily?code=2330&length=50&sort=value",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"date": "2026-08-07",
"sort": "value",
"count": 8,
"items": [
{
"low": 2355,
"code": "2330",
"date": "2026-08-07",
"high": 2395,
"name": "台積電",
"open": 2390,
"close": 2370,
"value": 57947015347,
"change": 5,
"volume": 24414025,
"transactions": 64670
},
{
"low": 445,
"code": "2408",
"date": "2026-08-07",
"high": 463,
"name": "南亞科",
"open": 456.5,
"close": 457,
"value": 32106124944,
"change": -2,
"volume": 70547660,
"transactions": 70841
},
{
"low": 160.5,
"code": "2344",
"date": "2026-08-07",
"high": 170.5,
"name": "華邦電",
"open": 170,
"close": 163.5,
"value": 29019818860,
"change": -7.5,
"volume": 176709453,
"transactions": 118087
},
{
"low": 3825,
"code": "2454",
"date": "2026-08-07",
"high": 4010,
"name": "聯發科",
"open": 3990,
"close": 3900,
"value": 25900624790,
"change": -20,
"volume": 6607003,
"transactions": 42825
},
{
"low": 531,
"code": "2327",
"date": "2026-08-07",
"high": 578,
"name": "國巨*",
"open": 560,
"close": 540,
"value": 24331353698,
"change": -30,
"volume": 44277453,
"transactions": 95384
},
{
"low": 178.5,
"code": "1303",
"date": "2026-08-07",
"high": 193,
"name": "南亞",
"open": 189,
"close": 188,
"value": 23929994073,
"change": 9.5,
"volume": 129122451,
"transactions": 79564
},
{
"low": 942,
"code": "3037",
"date": "2026-08-07",
"high": 999,
"name": "欣興",
"open": 986,
"close": 955,
"value": 20870585514,
"change": -18,
"volume": 21596279,
"transactions": 36856
},
{
"low": 114,
"code": "2303",
"date": "2026-08-07",
"high": 121.5,
"name": "聯電",
"open": 121.5,
"close": 116,
"value": 19789208343,
"change": -5.5,
"volume": 169352784,
"transactions": 123813
}
],
"total": 1377,
"market": "taiwan",
"source": "twse",
"currency": "TWD"
}
```
---
## UBS Gold
**Category:** finance · **Slug:** `ubs`
**Detail page:** https://zapi.ink/api/finance/ubs
Indonesian retail gold from UBS — buy and buyback price per bar denomination, with daily history.
**Tags:** gold, indonesia, idr, buyback, commodity
### Price board
Buy and buyback price for every bar denomination on today's board.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:ubs/price`
- **Cache TTL:** 1800s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `denomination` | number | query | no | Keep only this bar weight in grams. Omit for the whole board. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:ubs/price?denomination=1" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:ubs/price?denomination=1", {
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:ubs/price?denomination=1",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"asOf": "2026-08-29",
"count": 13,
"items": [
{
"spread": 100800,
"buyPrice": 215800,
"weightGram": 0.05,
"weightText": "0.05 Gram",
"buybackPrice": 115000,
"buyPricePerGram": 4316000,
"buybackPricePerGram": 2300000
},
{
"spread": 113600,
"buyPrice": 344600,
"weightGram": 0.1,
"weightText": "0.1 Gram",
"buybackPrice": 231000,
"buyPricePerGram": 3446000,
"buybackPricePerGram": 2310000
},
{
"spread": 207900,
"buyPrice": 784900,
"weightGram": 0.25,
"weightText": "0.25 Gram",
"buybackPrice": 577000,
"buyPricePerGram": 3139600,
"buybackPricePerGram": 2308000
},
{
"spread": 261700,
"buyPrice": 1416700,
"weightGram": 0.5,
"weightText": "0.5 Gram",
"buybackPrice": 1155000,
"buyPricePerGram": 2833400,
"buybackPricePerGram": 2310000
},
{
"spread": 201500,
"buyPrice": 2512500,
"weightGram": 1,
"weightText": "1 Gram",
"buybackPrice": 2311000,
"buyPricePerGram": 2512500,
"buybackPricePerGram": 2311000
},
{
"spread": 339100,
"buyPrice": 4962100,
"weightGram": 2,
"weightText": "2 Gram",
"buybackPrice": 4623000,
"buyPricePerGram": 2481050,
"buybackPricePerGram": 2311500
},
{
"spread": 491700,
"buyPrice": 7425700,
"weightGram": 3,
"weightText": "3 Gram",
"buybackPrice": 6934000,
"buyPricePerGram": 2475233,
"buybackPricePerGram": 2311333
},
{
"spread": 618700,
"buyPrice": 9864700,
"weightGram": 4,
"weightText": "4 Gram",
"buybackPrice": 9246000,
"buyPricePerGram": 2466175,
"buybackPricePerGram": 2311500
}
],
"metal": "gold",
"total": 13,
"dataset": "price",
"currency": "IDR",
"provider": "ubs",
"denomination": null,
"productionYear": 2026,
"denominationsAvailable": [
0.05,
0.1,
0.25,
0.5,
1,
2,
3,
4
]
}
```
---
### Buyback
Buyback price per denomination — UBS quotes a different rate for each bar size.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:ubs/buyback`
- **Cache TTL:** 1800s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `denomination` | number | query | no | Keep only this bar weight in grams. Omit for the whole board. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:ubs/buyback?denomination=1" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:ubs/buyback?denomination=1", {
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:ubs/buyback?denomination=1",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"asOf": "2026-08-29",
"count": 13,
"items": [
{
"weightGram": 0.05,
"weightText": "0.05 Gram",
"buybackPrice": 115000,
"buybackPricePerGram": 2300000
},
{
"weightGram": 0.1,
"weightText": "0.1 Gram",
"buybackPrice": 231000,
"buybackPricePerGram": 2310000
},
{
"weightGram": 0.25,
"weightText": "0.25 Gram",
"buybackPrice": 577000,
"buybackPricePerGram": 2308000
},
{
"weightGram": 0.5,
"weightText": "0.5 Gram",
"buybackPrice": 1155000,
"buybackPricePerGram": 2310000
},
{
"weightGram": 1,
"weightText": "1 Gram",
"buybackPrice": 2311000,
"buybackPricePerGram": 2311000
},
{
"weightGram": 2,
"weightText": "2 Gram",
"buybackPrice": 4623000,
"buybackPricePerGram": 2311500
},
{
"weightGram": 3,
"weightText": "3 Gram",
"buybackPrice": 6934000,
"buybackPricePerGram": 2311333
},
{
"weightGram": 4,
"weightText": "4 Gram",
"buybackPrice": 9246000,
"buybackPricePerGram": 2311500
}
],
"metal": "gold",
"total": 13,
"dataset": "buyback",
"currency": "IDR",
"provider": "ubs",
"denomination": null,
"productionYear": 2026,
"denominationsAvailable": [
0.05,
0.1,
0.25,
0.5,
1,
2,
3,
4
],
"appliesToAllDenominations": false
}
```
---
### History
Daily 1 g buyback series back to 2023, filterable by date window.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:ubs/history`
- **Cache TTL:** 3600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `days` | number | query | no | How many of the most recent published days to pull. Default 30. Ignored when from or to is given. |
| `from` | string | query | no | Earliest date to include, YYYY-MM-DD. |
| `to` | string | query | no | Latest date to include, YYYY-MM-DD. |
| `order` | enum(asc|desc) | query | no | Oldest first (asc) or newest first (desc). Default desc. |
| `page` | number | query | no | Page of days. Default 1. |
| `limit` | number | query | no | Days per page. Default 100, max 1000. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:ubs/history?days=30&from=2026-01-01&to=2026-08-29&order=desc&page=1&limit=100" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:ubs/history?days=30&from=2026-01-01&to=2026-08-29&order=desc&page=1&limit=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:ubs/history?days=30&from=2026-01-01&to=2026-08-29&order=desc&page=1&limit=100",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": "2026-08-29",
"days": null,
"from": "2026-08-01",
"page": 1,
"count": 10,
"items": [
{
"low": 2289000,
"date": "2026-08-04",
"high": 2289000,
"open": 2289000,
"close": 2278000
},
{
"low": 2338000,
"date": "2026-08-05",
"high": 2338000,
"open": 2338000,
"close": 2327000
},
{
"low": 2404000,
"date": "2026-08-06",
"high": 2404000,
"open": 2404000,
"close": 2393000
},
{
"low": 2390000,
"date": "2026-08-07",
"high": 2390000,
"open": 2390000,
"close": 2379000
},
{
"low": 2391000,
"date": "2026-08-08",
"high": 2391000,
"open": 2391000,
"close": 2380000
},
{
"low": 2418000,
"date": "2026-08-11",
"high": 2418000,
"open": 2418000,
"close": 2406000
},
{
"low": 2381000,
"date": "2026-08-12",
"high": 2381000,
"open": 2381000,
"close": 2370000
},
{
"low": 2371000,
"date": "2026-08-14",
"high": 2371000,
"open": 2371000,
"close": 2360000
}
],
"metal": "gold",
"order": "asc",
"total": 21,
"covered": 498,
"dataset": "history",
"hasMore": true,
"currency": "IDR",
"nextPage": 2,
"provider": "ubs",
"unitGram": 1,
"latestDate": "2026-08-29",
"earliestDate": "2023-11-20"
}
```
---
### Summary
Today's 1 g buy and buyback, with the change against the previous published day.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:ubs/summary`
- **Cache TTL:** 1800s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `x` | string | query | no | Unused — the summary takes no parameters. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:ubs/summary?x=" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:ubs/summary?x=", {
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:ubs/summary?x=",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"asOf": "2026-08-29",
"metal": "gold",
"spread": 201500,
"dataset": "summary",
"buyPrice": 2512500,
"currency": "IDR",
"provider": "ubs",
"unitGram": 1,
"changeAbs": -28000,
"buybackPrice": 2311000,
"previousDate": "2026-08-28",
"changePercent": -1.2,
"denominationCount": 13,
"previousBuybackPrice": 2339000
}
```
---
## US Treasury
**Category:** finance · **Slug:** `us-treasury`
**Detail page:** https://zapi.ink/api/finance/us-treasury
Kurva imbal hasil Treasury Amerika, harian, seluruh tenor dari 1 bulan sampai 30 tahun.
**Tags:** treasury, yield, bond, macro, finance
### Yield Curve
Imbal hasil per tenor per hari bursa, terbaru dulu. Kolom dibaca lewat nama header, bukan posisi.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:us-treasury/yield-curve`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `year` | number | query | no | Calendar year. Defaults to the current year. |
| `length` | number | query | no | Trading days to return, newest first (default 10) |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:us-treasury/yield-curve?year=2026&length=10" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:us-treasury/yield-curve?year=2026&length=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:us-treasury/yield-curve?year=2026&length=10",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"unit": "percent",
"year": 2026,
"count": 8,
"items": [
{
"date": "2026-08-07",
"rates": {
"1 Mo": 3.79,
"1 Yr": 4.01,
"2 Mo": 3.83,
"2 Yr": 4.19,
"3 Mo": 3.87,
"3 Yr": 4.25,
"4 Mo": 3.89,
"5 Yr": 4.35,
"6 Mo": 3.96,
"7 Yr": 4.49,
"10 Yr": 4.65,
"20 Yr": 5.2,
"30 Yr": 5.19,
"1.5 Month": 3.79
}
},
{
"date": "2026-08-06",
"rates": {
"1 Mo": 3.8,
"1 Yr": 4.06,
"2 Mo": 3.84,
"2 Yr": 4.25,
"3 Mo": 3.9,
"3 Yr": 4.31,
"4 Mo": 3.92,
"5 Yr": 4.4,
"6 Mo": 3.99,
"7 Yr": 4.53,
"10 Yr": 4.69,
"20 Yr": 5.22,
"30 Yr": 5.22,
"1.5 Month": 3.8
}
},
{
"date": "2026-08-05",
"rates": {
"1 Mo": 3.77,
"1 Yr": 4.03,
"2 Mo": 3.84,
"2 Yr": 4.18,
"3 Mo": 3.89,
"3 Yr": 4.24,
"4 Mo": 3.91,
"5 Yr": 4.33,
"6 Mo": 3.98,
"7 Yr": 4.47,
"10 Yr": 4.63,
"20 Yr": 5.18,
"30 Yr": 5.17,
"1.5 Month": 3.79
}
},
{
"date": "2026-08-04",
"rates": {
"1 Mo": 3.78,
"1 Yr": 4.04,
"2 Mo": 3.85,
"2 Yr": 4.2,
"3 Mo": 3.89,
"3 Yr": 4.25,
"4 Mo": 3.91,
"5 Yr": 4.33,
"6 Mo": 4,
"7 Yr": 4.47,
"10 Yr": 4.63,
"20 Yr": 5.18,
"30 Yr": 5.18,
"1.5 Month": 3.8
}
},
{
"date": "2026-08-03",
"rates": {
"1 Mo": 3.79,
"1 Yr": 4.07,
"2 Mo": 3.87,
"2 Yr": 4.25,
"3 Mo": 3.91,
"3 Yr": 4.32,
"4 Mo": 3.94,
"5 Yr": 4.4,
"6 Mo": 4.02,
"7 Yr": 4.54,
"10 Yr": 4.7,
"20 Yr": 5.23,
"30 Yr": 5.23,
"1.5 Month": 3.82
}
},
{
"date": "2026-07-31",
"rates": {
"1 Mo": 3.78,
"1 Yr": 4.08,
"2 Mo": 3.85,
"2 Yr": 4.28,
"3 Mo": 3.83,
"3 Yr": 4.34,
"4 Mo": 3.92,
"5 Yr": 4.45,
"6 Mo": 3.98,
"7 Yr": 4.59,
"10 Yr": 4.75,
"20 Yr": 5.28,
"30 Yr": 5.27,
"1.5 Month": 3.8
}
},
{
"date": "2026-07-30",
"rates": {
"1 Mo": 3.79,
"1 Yr": 4.04,
"2 Mo": 3.84,
"2 Yr": 4.23,
"3 Mo": 3.82,
"3 Yr": 4.3,
"4 Mo": 3.92,
"5 Yr": 4.38,
"6 Mo": 3.98,
"7 Yr": 4.52,
"10 Yr": 4.68,
"20 Yr": 5.22,
"30 Yr": 5.21,
"1.5 Month": 3.8
}
},
{
"date": "2026-07-29",
"rates": {
"1 Mo": 3.73,
"1 Yr": 4.04,
"2 Mo": 3.83,
"2 Yr": 4.22,
"3 Mo": 3.83,
"3 Yr": 4.29,
"4 Mo": 3.91,
"5 Yr": 4.37,
"6 Mo": 3.97,
"7 Yr": 4.51,
"10 Yr": 4.67,
"20 Yr": 5.21,
"30 Yr": 5.2,
"1.5 Month": 3.8
}
}
],
"total": 151,
"source": "us-treasury",
"tenors": [
"1 Mo",
"1.5 Month",
"2 Mo",
"3 Mo",
"4 Mo",
"6 Mo",
"1 Yr",
"2 Yr"
]
}
```
---
### Auctions
Treasury auction results — one row per auction, 114 fields deep, since 1979.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:us-treasury/auctions`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `securityType` | enum(Bill|Note|Bond) | query | no | Security type: Bill, Note or Bond. Default all. |
| `securityTerm` | string | query | no | Exact security term, e.g. 13-Week, 2-Year, 10-Year, 29-Year 6-Month. Default all. |
| `cusip` | string | query | no | Exact CUSIP of a single issue. |
| `from` | string | query | no | Earliest auction date, YYYY-MM-DD. |
| `to` | string | query | no | Latest auction date, YYYY-MM-DD. |
| `page` | number | query | no | Page number, 1-based (default 1) |
| `length` | number | query | no | Auctions per page (default 20, max 500) |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:us-treasury/auctions?securityType=Bond&securityTerm=10-Year&cusip=912810US5&from=2026-01-01&to=2026-08-20&page=1&length=20" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:us-treasury/auctions?securityType=Bond&securityTerm=10-Year&cusip=912810US5&from=2026-01-01&to=2026-08-20&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:us-treasury/auctions?securityType=Bond&securityTerm=10-Year&cusip=912810US5&from=2026-01-01&to=2026-08-20&page=1&length=20",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": "2026-08-20",
"from": "2026-01-01",
"page": 1,
"count": 0,
"cusip": "912810US5",
"items": [],
"total": 0,
"fields": [
{
"name": "recordDate",
"type": "DATE",
"label": "Record Date",
"format": "YYYY-MM-DD"
},
{
"name": "cusip",
"type": "STRING",
"label": "CUSIP",
"format": "String"
},
{
"name": "securityType",
"type": "STRING",
"label": "Security Type",
"format": "String"
},
{
"name": "securityTerm",
"type": "STRING",
"label": "Security Term",
"format": "String"
},
{
"name": "auctionDate",
"type": "DATE",
"label": "Auction Date",
"format": "YYYY-MM-DD"
},
{
"name": "issueDate",
"type": "DATE",
"label": "Issue Date",
"format": "YYYY-MM-DD"
}
],
"dataset": "auctions",
"hasMore": false,
"nextPage": null,
"provider": "us-treasury",
"securityTerm": "10-Year",
"securityType": "Bond"
}
```
---
### Avg Interest Rates
Average interest rate the Treasury pays, by security type, monthly since 2001.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:us-treasury/avg-interest-rates`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `securityType` | enum(Marketable|Non-marketable|Interest-bearing Debt) | query | no | Security class: Marketable, Non-marketable or Interest-bearing Debt. Default all. |
| `security` | string | query | no | Exact security description, e.g. Treasury Bills, Treasury Notes, Treasury Bonds, Treasury Inflation-Protected Securities (TIPS). Default all. |
| `from` | string | query | no | Earliest record date, YYYY-MM-DD. |
| `to` | string | query | no | Latest record date, YYYY-MM-DD. |
| `page` | number | query | no | Page number, 1-based (default 1) |
| `length` | number | query | no | Rows per page (default 100, max 10000) |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:us-treasury/avg-interest-rates?securityType=Marketable&security=Treasury%20Notes&from=2026-01-01&to=2026-07-31&page=1&length=100" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:us-treasury/avg-interest-rates?securityType=Marketable&security=Treasury%20Notes&from=2026-01-01&to=2026-07-31&page=1&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:us-treasury/avg-interest-rates?securityType=Marketable&security=Treasury%20Notes&from=2026-01-01&to=2026-07-31&page=1&length=100",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": "2026-07-31",
"from": "2026-01-01",
"page": 1,
"count": 100,
"items": [
{
"recordDate": "2026-07-31",
"srcLineNbr": 1,
"securityDesc": "Treasury Bills",
"recordFiscalYear": 2026,
"securityTypeDesc": "Marketable",
"recordCalendarDay": 31,
"avgInterestRateAmt": 3.758,
"recordCalendarYear": 2026,
"recordCalendarMonth": 7,
"recordFiscalQuarter": 4,
"recordCalendarQuarter": 3
},
{
"recordDate": "2026-07-31",
"srcLineNbr": 2,
"securityDesc": "Treasury Notes",
"recordFiscalYear": 2026,
"securityTypeDesc": "Marketable",
"recordCalendarDay": 31,
"avgInterestRateAmt": 3.309,
"recordCalendarYear": 2026,
"recordCalendarMonth": 7,
"recordFiscalQuarter": 4,
"recordCalendarQuarter": 3
},
{
"recordDate": "2026-07-31",
"srcLineNbr": 3,
"securityDesc": "Treasury Bonds",
"recordFiscalYear": 2026,
"securityTypeDesc": "Marketable",
"recordCalendarDay": 31,
"avgInterestRateAmt": 3.442,
"recordCalendarYear": 2026,
"recordCalendarMonth": 7,
"recordFiscalQuarter": 4,
"recordCalendarQuarter": 3
},
{
"recordDate": "2026-07-31",
"srcLineNbr": 4,
"securityDesc": "Treasury Inflation-Protected Securities (TIPS)",
"recordFiscalYear": 2026,
"securityTypeDesc": "Marketable",
"recordCalendarDay": 31,
"avgInterestRateAmt": 1.127,
"recordCalendarYear": 2026,
"recordCalendarMonth": 7,
"recordFiscalQuarter": 4,
"recordCalendarQuarter": 3
},
{
"recordDate": "2026-07-31",
"srcLineNbr": 5,
"securityDesc": "Treasury Floating Rate Notes (FRN)",
"recordFiscalYear": 2026,
"securityTypeDesc": "Marketable",
"recordCalendarDay": 31,
"avgInterestRateAmt": 3.948,
"recordCalendarYear": 2026,
"recordCalendarMonth": 7,
"recordFiscalQuarter": 4,
"recordCalendarQuarter": 3
},
{
"recordDate": "2026-07-31",
"srcLineNbr": 6,
"securityDesc": "Federal Financing Bank",
"recordFiscalYear": 2026,
"securityTypeDesc": "Marketable",
"recordCalendarDay": 31,
"avgInterestRateAmt": 2.383,
"recordCalendarYear": 2026,
"recordCalendarMonth": 7,
"recordFiscalQuarter": 4,
"recordCalendarQuarter": 3
}
],
"total": 115,
"fields": [
{
"name": "recordDate",
"type": "DATE",
"label": "Record Date",
"format": "YYYY-MM-DD"
},
{
"name": "securityTypeDesc",
"type": "STRING",
"label": "Security Type Description",
"format": "String"
},
{
"name": "securityDesc",
"type": "STRING",
"label": "Security Description",
"format": "String"
},
{
"name": "avgInterestRateAmt",
"type": "PERCENTAGE",
"label": "Average Interest Rate Amount",
"format": "10.2%"
},
{
"name": "srcLineNbr",
"type": "INTEGER",
"label": "Source Line Number",
"format": "10"
},
{
"name": "recordFiscalYear",
"type": "YEAR",
"label": "Fiscal Year",
"format": "YYYY"
}
],
"dataset": "avg-interest-rates",
"hasMore": true,
"nextPage": 2,
"provider": "us-treasury",
"security": null,
"securityType": null
}
```
---
### Daily Treasury Statement
Daily Treasury Statement — the operating cash balance, by account, since 2005.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:us-treasury/daily-treasury-statement`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `account` | string | query | no | Exact account type, e.g. Treasury General Account (TGA) Opening Balance, Total TGA Deposits (Table II). Default all. |
| `from` | string | query | no | Earliest record date, YYYY-MM-DD. |
| `to` | string | query | no | Latest record date, YYYY-MM-DD. |
| `page` | number | query | no | Page number, 1-based (default 1) |
| `length` | number | query | no | Rows per page (default 100, max 10000) |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:us-treasury/daily-treasury-statement?account=Treasury%20General%20Account%20(TGA)%20Closing%20Balance&from=2026-08-01&to=2026-08-18&page=1&length=100" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:us-treasury/daily-treasury-statement?account=Treasury%20General%20Account%20(TGA)%20Closing%20Balance&from=2026-08-01&to=2026-08-18&page=1&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:us-treasury/daily-treasury-statement?account=Treasury%20General%20Account%20(TGA)%20Closing%20Balance&from=2026-08-01&to=2026-08-18&page=1&length=100",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": "2026-08-18",
"from": "2026-08-01",
"page": 1,
"count": 48,
"items": [
{
"tableNm": "Operating Cash Balance",
"tableNbr": "I",
"recordDate": "2026-08-18",
"srcLineNbr": 1,
"accountType": "Treasury General Account (TGA) Opening Balance",
"openMonthBal": 876566,
"openTodayBal": 932785,
"subTableName": "Cash Balance Details",
"closeTodayBal": null,
"recordFiscalYear": 2026,
"openFiscalYearBal": 890825,
"recordCalendarDay": 18,
"recordCalendarYear": 2026,
"recordCalendarMonth": 8,
"recordFiscalQuarter": 4,
"recordCalendarQuarter": 3
},
{
"tableNm": "Operating Cash Balance",
"tableNbr": "I",
"recordDate": "2026-08-18",
"srcLineNbr": 2,
"accountType": "Total TGA Deposits (Table II)",
"openMonthBal": 1941572,
"openTodayBal": 315449,
"subTableName": "Cash Balance Details",
"closeTodayBal": null,
"recordFiscalYear": 2026,
"openFiscalYearBal": 35045593,
"recordCalendarDay": 18,
"recordCalendarYear": 2026,
"recordCalendarMonth": 8,
"recordFiscalQuarter": 4,
"recordCalendarQuarter": 3
},
{
"tableNm": "Operating Cash Balance",
"tableNbr": "I",
"recordDate": "2026-08-18",
"srcLineNbr": 3,
"accountType": "Total TGA Withdrawals (Table II) (-)",
"openMonthBal": 1856186,
"openTodayBal": 286282,
"subTableName": "Cash Balance Details",
"closeTodayBal": null,
"recordFiscalYear": 2026,
"openFiscalYearBal": 34974466,
"recordCalendarDay": 18,
"recordCalendarYear": 2026,
"recordCalendarMonth": 8,
"recordFiscalQuarter": 4,
"recordCalendarQuarter": 3
},
{
"tableNm": "Operating Cash Balance",
"tableNbr": "I",
"recordDate": "2026-08-18",
"srcLineNbr": 4,
"accountType": "Treasury General Account (TGA) Closing Balance",
"openMonthBal": 961952,
"openTodayBal": 961952,
"subTableName": "Cash Balance Details",
"closeTodayBal": null,
"recordFiscalYear": 2026,
"openFiscalYearBal": 961952,
"recordCalendarDay": 18,
"recordCalendarYear": 2026,
"recordCalendarMonth": 8,
"recordFiscalQuarter": 4,
"recordCalendarQuarter": 3
},
{
"tableNm": "Operating Cash Balance",
"tableNbr": "I",
"recordDate": "2026-08-17",
"srcLineNbr": 1,
"accountType": "Treasury General Account (TGA) Opening Balance",
"openMonthBal": 876566,
"openTodayBal": 959184,
"subTableName": "Cash Balance Details",
"closeTodayBal": null,
"recordFiscalYear": 2026,
"openFiscalYearBal": 890825,
"recordCalendarDay": 17,
"recordCalendarYear": 2026,
"recordCalendarMonth": 8,
"recordFiscalQuarter": 4,
"recordCalendarQuarter": 3
},
{
"tableNm": "Operating Cash Balance",
"tableNbr": "I",
"recordDate": "2026-08-17",
"srcLineNbr": 2,
"accountType": "Total TGA Deposits (Table II)",
"openMonthBal": 1626124,
"openTodayBal": 205240,
"subTableName": "Cash Balance Details",
"closeTodayBal": null,
"recordFiscalYear": 2026,
"openFiscalYearBal": 34730144,
"recordCalendarDay": 17,
"recordCalendarYear": 2026,
"recordCalendarMonth": 8,
"recordFiscalQuarter": 4,
"recordCalendarQuarter": 3
}
],
"total": 48,
"fields": [
{
"name": "recordDate",
"type": "DATE",
"label": "Record Date",
"format": "YYYY-MM-DD"
},
{
"name": "accountType",
"type": "STRING",
"label": "Type of Account",
"format": "String"
},
{
"name": "closeTodayBal",
"type": "CURRENCY0",
"label": "Closing Balance Today",
"format": "$1,000,000"
},
{
"name": "openTodayBal",
"type": "CURRENCY0",
"label": "Opening Balance Today",
"format": "$1,000,000"
},
{
"name": "openMonthBal",
"type": "CURRENCY0",
"label": "Opening Balance This Month",
"format": "$1,000,000"
},
{
"name": "openFiscalYearBal",
"type": "CURRENCY0",
"label": "Opening Balance This Fiscal Year",
"format": "$1,000,000"
}
],
"account": null,
"dataset": "daily-treasury-statement",
"hasMore": false,
"nextPage": null,
"provider": "us-treasury"
}
```
---
### Debt To Penny
Total public debt outstanding, to the penny, every business day since 1993.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:us-treasury/debt-to-penny`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `from` | string | query | no | Earliest record date, YYYY-MM-DD. |
| `to` | string | query | no | Latest record date, YYYY-MM-DD. |
| `page` | number | query | no | Page number, 1-based (default 1) |
| `length` | number | query | no | Rows per page (default 100, max 10000) |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:us-treasury/debt-to-penny?from=2026-01-01&to=2026-08-18&page=1&length=100" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:us-treasury/debt-to-penny?from=2026-01-01&to=2026-08-18&page=1&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:us-treasury/debt-to-penny?from=2026-01-01&to=2026-08-18&page=1&length=100",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": "2026-08-18",
"from": "2026-01-01",
"page": 1,
"count": 100,
"items": [
{
"recordDate": "2026-08-18",
"srcLineNbr": 1,
"intragovHoldAmt": 7781627225522.14,
"recordFiscalYear": 2026,
"totPubDebtOutAmt": 40047425768420.22,
"debtHeldPublicAmt": 32265798542898.08,
"recordCalendarDay": 18,
"recordCalendarYear": 2026,
"recordCalendarMonth": 8,
"recordFiscalQuarter": 4,
"recordCalendarQuarter": 3
},
{
"recordDate": "2026-08-17",
"srcLineNbr": 1,
"intragovHoldAmt": 7759458876384.62,
"recordFiscalYear": 2026,
"totPubDebtOutAmt": 39986657878071.92,
"debtHeldPublicAmt": 32227199001687.3,
"recordCalendarDay": 17,
"recordCalendarYear": 2026,
"recordCalendarMonth": 8,
"recordFiscalQuarter": 4,
"recordCalendarQuarter": 3
},
{
"recordDate": "2026-08-14",
"srcLineNbr": 1,
"intragovHoldAmt": 7733240968527.27,
"recordFiscalYear": 2026,
"totPubDebtOutAmt": 39933634466112.78,
"debtHeldPublicAmt": 32200393497585.51,
"recordCalendarDay": 14,
"recordCalendarYear": 2026,
"recordCalendarMonth": 8,
"recordFiscalQuarter": 4,
"recordCalendarQuarter": 3
},
{
"recordDate": "2026-08-13",
"srcLineNbr": 1,
"intragovHoldAmt": 7733844720538.23,
"recordFiscalYear": 2026,
"totPubDebtOutAmt": 39934816207844.37,
"debtHeldPublicAmt": 32200971487306.14,
"recordCalendarDay": 13,
"recordCalendarYear": 2026,
"recordCalendarMonth": 8,
"recordFiscalQuarter": 4,
"recordCalendarQuarter": 3
},
{
"recordDate": "2026-08-12",
"srcLineNbr": 1,
"intragovHoldAmt": 7733417085160.39,
"recordFiscalYear": 2026,
"totPubDebtOutAmt": 39913529319464.71,
"debtHeldPublicAmt": 32180112234304.32,
"recordCalendarDay": 12,
"recordCalendarYear": 2026,
"recordCalendarMonth": 8,
"recordFiscalQuarter": 4,
"recordCalendarQuarter": 3
},
{
"recordDate": "2026-08-11",
"srcLineNbr": 1,
"intragovHoldAmt": 7759469075959.4,
"recordFiscalYear": 2026,
"totPubDebtOutAmt": 39941929832070.77,
"debtHeldPublicAmt": 32182460756111.37,
"recordCalendarDay": 11,
"recordCalendarYear": 2026,
"recordCalendarMonth": 8,
"recordFiscalQuarter": 4,
"recordCalendarQuarter": 3
}
],
"total": 159,
"fields": [
{
"name": "recordDate",
"type": "DATE",
"label": "Record Date",
"format": "YYYY-MM-DD"
},
{
"name": "debtHeldPublicAmt",
"type": "CURRENCY",
"label": "Debt Held by the Public",
"format": "$10.20"
},
{
"name": "intragovHoldAmt",
"type": "CURRENCY",
"label": "Intragovernmental Holdings",
"format": "$10.20"
},
{
"name": "totPubDebtOutAmt",
"type": "CURRENCY",
"label": "Total Public Debt Outstanding",
"format": "$10.20"
},
{
"name": "srcLineNbr",
"type": "INTEGER",
"label": "Source Line Number",
"format": "10"
},
{
"name": "recordFiscalYear",
"type": "YEAR",
"label": "Fiscal Year",
"format": "YYYY"
}
],
"dataset": "debt-to-penny",
"hasMore": true,
"nextPage": 2,
"provider": "us-treasury"
}
```
---
## Wikimedia Pageviews
**Category:** finance · **Slug:** `wikimedia`
**Detail page:** https://zapi.ink/api/finance/wikimedia
Kunjungan harian artikel Wikipedia — proksi perhatian publik terhadap satu perusahaan atau tema.
**Tags:** wikipedia, pageviews, alternative-data, finance
### Pageviews
Deret kunjungan harian satu artikel, plus total dan rata-ratanya. Ini data alternatif, bukan data pasar.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:wikimedia/pageviews`
- **Cache TTL:** 21600s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `article` | string | query | yes | Wikipedia article title. Required. |
| `project` | string | query | no | Wikipedia project. Default en.wikipedia. |
| `from` | string | query | no | Start date (YYYY-MM-DD). Default 30 days back. |
| `to` | string | query | no | End date (YYYY-MM-DD). Default today. |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:wikimedia/pageviews?article=Apple%20Inc.&project=en.wikipedia&from=2026-07-01&to=2026-08-01" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:wikimedia/pageviews?article=Apple%20Inc.&project=en.wikipedia&from=2026-07-01&to=2026-08-01", {
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:wikimedia/pageviews?article=Apple%20Inc.&project=en.wikipedia&from=2026-07-01&to=2026-08-01",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"to": "2026-08-01",
"from": "2026-07-25",
"count": 8,
"items": [
{
"date": "2026-08-01",
"views": 5141
},
{
"date": "2026-07-31",
"views": 5937
},
{
"date": "2026-07-30",
"views": 5838
},
{
"date": "2026-07-29",
"views": 5933
},
{
"date": "2026-07-28",
"views": 6275
},
{
"date": "2026-07-27",
"views": 5760
},
{
"date": "2026-07-26",
"views": 5092
},
{
"date": "2026-07-25",
"views": 4952
}
],
"source": "wikimedia",
"article": "Apple_Inc.",
"project": "en.wikipedia",
"totalViews": 44928,
"averageViews": 5616
}
```
---
## World Bank
**Category:** finance · **Slug:** `worldbank`
**Detail page:** https://zapi.ink/api/finance/worldbank
Deret indikator pembangunan Bank Dunia per negara — PDB, inflasi, populasi, dan ribuan lainnya.
**Tags:** worldbank, macro, gdp, indicator, finance
### Indicator Series
Deret satu indikator untuk satu negara. Tahun yang belum dilaporkan tetap dikirim dengan nilai null.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:worldbank/indicator`
- **Cache TTL:** 86400s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `country` | string | query | no | ISO country code, or `all`. Default IDN. |
| `indicator` | string | query | no | World Bank indicator id. Default NY.GDP.MKTP.CD (GDP, current US$). |
| `length` | number | query | no | Rows to return (default 20, max 500) |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:worldbank/indicator?country=IDN&indicator=NY.GDP.MKTP.CD&length=20" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:worldbank/indicator?country=IDN&indicator=NY.GDP.MKTP.CD&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:worldbank/indicator?country=IDN&indicator=NY.GDP.MKTP.CD&length=20",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 8,
"items": [
{
"year": "2025",
"value": 1445642584163.81
},
{
"year": "2024",
"value": 1396301788461.69
},
{
"year": "2023",
"value": 1371166925749.88
},
{
"year": "2022",
"value": 1319101183380.15
},
{
"year": "2021",
"value": 1186509691086.73
},
{
"year": "2020",
"value": 1059054842698.48
},
{
"year": "2019",
"value": 1119099871350.2
},
{
"year": "2018",
"value": 1042271532988.63
}
],
"total": 66,
"source": "world-bank",
"country": "Indonesia",
"indicator": "NY.GDP.MKTP.CD",
"countryCode": "IDN",
"lastUpdated": "2026-07-13",
"indicatorName": "GDP (current US$)"
}
```
---
## Yahoo Finance
**Category:** finance · **Slug:** `yahoo-finance`
**Detail page:** https://zapi.ink/api/finance/yahoo-finance
Global quotes, fundamentals, statements, options, earnings, ownership and analyst coverage. Jakarta listings via the .JK suffix.
**Tags:** stocks, quotes, fundamentals, options, earnings, analysts
### Quote
Live quotes for up to 20 symbols at once.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:yahoo-finance/quote`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbols` | string | query | yes | Comma-separated symbols, max 20. Jakarta listings use the .JK suffix |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:yahoo-finance/quote?symbols=BBCA.JK%2CAAPL" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:yahoo-finance/quote?symbols=BBCA.JK%2CAAPL", {
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:yahoo-finance/quote?symbols=BBCA.JK%2CAAPL",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 2,
"items": [
{
"ask": 6350,
"bid": 6325,
"eps": 471.84,
"low": 6325,
"high": 6450,
"last": 6325,
"name": "PT Bank Central Asia Tbk",
"open": 6425,
"type": "EQUITY",
"change": -125,
"symbol": "BBCA.JK",
"volume": 153174800,
"peRatio": 13.404968,
"currency": "IDR",
"exchange": "Jakarta",
"avgVolume": 266815186,
"bookValue": 2108.889,
"marketCap": 776974079361024,
"week52Low": 4820,
"week52High": 8975,
"marketState": "CLOSED",
"changePercent": -1.9379845,
"lastTimestamp": 1785489296,
"previousClose": 6450,
"fiftyDayAverage": 6018.5,
"sharesOutstanding": 122841751300,
"dividendYieldPercent": 5.63,
"twoHundredDayAverage": 7081.25
},
{
"ask": 310.96,
"bid": 306.17,
"eps": 8.71,
"low": 300,
"high": 310.69,
"last": 308.91,
"name": "Apple Inc.",
"open": 304.81,
"type": "EQUITY",
"change": -24.52,
"symbol": "AAPL",
"volume": 127398021,
"peRatio": 35.46613,
"currency": "USD",
"exchange": "NasdaqGS",
"avgVolume": 56470782,
"bookValue": 7.26,
"marketCap": 4537070911488,
"week52Low": 201.68,
"week52High": 344.57,
"marketState": "CLOSED",
"changePercent": -7.35386,
"lastTimestamp": 1785528001,
"previousClose": 333.43,
"fiftyDayAverage": 309.4994,
"sharesOutstanding": 14687356000,
"dividendYieldPercent": 0.35,
"twoHundredDayAverage": 277.9605
}
],
"provider": "yahoo"
}
```
---
### Summary
Valuation, margins, balance sheet and dividends for one instrument.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:yahoo-finance/summary`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Instrument symbol. Jakarta listings use the .JK suffix |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:yahoo-finance/summary?symbol=BBCA.JK" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:yahoo-finance/summary?symbol=BBCA.JK", {
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:yahoo-finance/summary?symbol=BBCA.JK",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"eps": 471.84,
"low": 6325,
"beta": 0,
"high": 6450,
"last": 6325,
"name": "PT Bank Central Asia Tbk",
"open": 6425,
"type": "EQUITY",
"change": -125,
"sector": "Financial Services",
"symbol": "BBCA.JK",
"volume": 153174800,
"country": "Indonesia",
"peRatio": 13.404968,
"revenue": 109295182020608,
"website": "https://www.bca.co.id",
"currency": "IDR",
"exchange": "Jakarta",
"industry": "Banks - Regional",
"provider": "yahoo",
"avgVolume": 266815186,
"employees": 27728,
"forwardPe": 13.109351,
"marketCap": 776974079361024,
"totalCash": 78018609414144,
"totalDebt": 52021302394880,
"week52Low": 4820,
"week52High": 8975,
"priceToBook": 2.9992096,
"dividendRate": 356,
"changePercent": -1.937984,
"previousClose": 6450,
"exDividendDate": 1781654400,
"enterpriseValue": 751206959939584,
"targetMeanPrice": 8074.84,
"sharesOutstanding": 122841751300,
"grossMarginPercent": 0,
"payoutRatioPercent": 75.42,
"recommendationMean": 1.38462,
"profitMarginPercent": 53.118,
"dividendYieldPercent": 5.63,
"revenueGrowthPercent": 2.5,
"returnOnEquityPercent": 21.818,
"operatingMarginPercent": 66.751
}
```
---
### Historical
Candles from one minute to one month, up to max range.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:yahoo-finance/historical`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Instrument symbol. Jakarta listings use the .JK suffix |
| `range` | enum(1d|5d|1mo|3mo|6mo|1y|2y|5y|10y|ytd|max) | query | no | Look-back window. Default 1mo |
| `interval` | enum(1m|2m|5m|15m|30m|60m|90m|1h|1d|5d|1wk|1mo|3mo) | query | no | Candle size. Default 1d. Intraday sizes only cover recent ranges |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:yahoo-finance/historical?symbol=BBCA.JK&range=1mo&interval=1d" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:yahoo-finance/historical?symbol=BBCA.JK&range=1mo&interval=1d", {
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:yahoo-finance/historical?symbol=BBCA.JK&range=1mo&interval=1d",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"name": "PT Bank Central Asia Tbk",
"count": 24,
"range": "1mo",
"symbol": "BBCA.JK",
"candles": [
{
"low": 5550,
"date": "2026-06-30",
"high": 5825,
"open": 5775,
"close": 5550,
"volume": 440738300,
"adjClose": 5550,
"timestamp": 1782784800
},
{
"low": 5550,
"date": "2026-07-01",
"high": 5750,
"open": 5550,
"close": 5600,
"volume": 124123800,
"adjClose": 5600,
"timestamp": 1782871200
},
{
"low": 5625,
"date": "2026-07-02",
"high": 5875,
"open": 5650,
"close": 5800,
"volume": 145119400,
"adjClose": 5800,
"timestamp": 1782957600
},
{
"low": 5900,
"date": "2026-07-03",
"high": 6150,
"open": 5925,
"close": 6050,
"volume": 200465200,
"adjClose": 6050,
"timestamp": 1783044000
},
{
"low": 5975,
"date": "2026-07-06",
"high": 6175,
"open": 6050,
"close": 6125,
"volume": 148684900,
"adjClose": 6125,
"timestamp": 1783303200
},
{
"low": 6150,
"date": "2026-07-07",
"high": 6300,
"open": 6200,
"close": 6300,
"volume": 183472100,
"adjClose": 6300,
"timestamp": 1783389600
},
{
"low": 6175,
"date": "2026-07-08",
"high": 6325,
"open": 6300,
"close": 6175,
"volume": 181123400,
"adjClose": 6175,
"timestamp": 1783476000
},
{
"low": 6050,
"date": "2026-07-09",
"high": 6200,
"open": 6100,
"close": 6200,
"volume": 181155800,
"adjClose": 6200,
"timestamp": 1783562400
}
],
"currency": "IDR",
"exchange": "Jakarta",
"interval": "1d",
"provider": "yahoo",
"timezone": "Asia/Jakarta"
}
```
---
### Search
Resolve a name or ticker to instruments, with related headlines.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:yahoo-finance/search`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `q` | string | query | yes | Company name or ticker |
| `type` | enum(all|quotes|news) | query | no | Which sections to return. Default all |
| `count` | number | query | no | Results per section. Default 10, max 20 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:yahoo-finance/search?q=bank%20central%20asia&type=all&count=10" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:yahoo-finance/search?q=bank%20central%20asia&type=all&count=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:yahoo-finance/search?q=bank%20central%20asia&type=all&count=10",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"news": [],
"query": "bank central asia",
"quotes": [
{
"name": "PT Bank Central Asia Tbk",
"type": "EQUITY",
"sector": "Financial Services",
"symbol": "BBCA.JK",
"exchange": "Jakarta",
"industry": "Banks—Regional"
},
{
"name": "PT Bank Central Asia Tbk",
"type": "EQUITY",
"sector": "Financial Services",
"symbol": "BZG.F",
"exchange": "Frankfurt",
"industry": "Banks—Regional"
},
{
"name": "PT Bank Central Asia Tbk",
"type": "EQUITY",
"sector": "Financial Services",
"symbol": "BZG2.SG",
"exchange": "Stuttgart",
"industry": "Banks—Regional"
},
{
"name": "PT Bank Central Asia Tbk",
"type": "EQUITY",
"sector": "Financial Services",
"symbol": "PBCRY",
"exchange": "OTC Markets",
"industry": "Banks—Regional"
},
{
"name": "PT Bank Central Asia Tbk",
"type": "EQUITY",
"sector": "Financial Services",
"symbol": "BZG2.MU",
"exchange": "Munich",
"industry": "Banks—Regional"
}
],
"provider": "yahoo"
}
```
---
### Screener
Prebuilt market screens — gainers, losers, most active and more.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:yahoo-finance/screener`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `screen` | enum(day_gainers|day_losers|most_actives|growth_technology_stocks|undervalued_growth_stocks|undervalued_large_caps|aggressive_small_caps|small_cap_gainers|most_shorted_stocks|portfolio_anchors|solid_large_growth_funds|solid_midcap_growth_funds|conservative_foreign_funds|high_yield_bond) | query | no | Which prebuilt screen to read. Default day_gainers |
| `page` | number | query | no | Page number. Default 1 |
| `count` | number | query | no | Rows per page. Default 25, max 100 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:yahoo-finance/screener?screen=day_gainers&page=1&count=25" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:yahoo-finance/screener?screen=day_gainers&page=1&count=25", {
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:yahoo-finance/screener?screen=day_gainers&page=1&count=25",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"page": 1,
"count": 5,
"items": [
{
"last": 744.54,
"name": "IES Holdings, Inc.",
"type": "EQUITY",
"change": 173,
"symbol": "IESC",
"volume": 485145,
"peRatio": 33.10538,
"currency": "USD",
"exchange": "NasdaqGM",
"marketCap": 14834130944,
"changePercent": 30.2691
},
{
"last": 60.43,
"name": "AXT, Inc.",
"type": "EQUITY",
"change": 13.49,
"symbol": "AXTI",
"volume": 29509839,
"peRatio": 2014.3334,
"currency": "USD",
"exchange": "NasdaqGS",
"marketCap": 3953522944,
"changePercent": 28.7388
},
{
"last": 121.21,
"name": "Integer Holdings Corporation",
"type": "EQUITY",
"change": 20.35,
"symbol": "ITGR",
"volume": 2355408,
"peRatio": 30.151741,
"currency": "USD",
"exchange": "NYSE",
"marketCap": 4115666176,
"changePercent": 20.1765
},
{
"last": 86,
"name": "Ambarella, Inc.",
"type": "EQUITY",
"change": 11.91,
"symbol": "AMBA",
"volume": 9037920,
"currency": "USD",
"exchange": "NasdaqGS",
"marketCap": 3772663808,
"changePercent": 16.075
},
{
"last": 271.58,
"name": "Amazon.com, Inc.",
"type": "EQUITY",
"change": 36.08,
"symbol": "AMZN",
"volume": 125921078,
"peRatio": 21.83119,
"currency": "USD",
"exchange": "NasdaqGS",
"marketCap": 2921415835648,
"changePercent": 15.3206
}
],
"title": "Day Gainers",
"total": 146,
"screen": "day_gainers",
"hasMore": true,
"nextPage": 2,
"provider": "yahoo"
}
```
---
### News
Headlines for one instrument.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:yahoo-finance/news`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Instrument symbol. Jakarta listings use the .JK suffix |
| `count` | number | query | no | Maximum headlines. Default 20, max 50 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:yahoo-finance/news?symbol=BBCA.JK&count=20" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:yahoo-finance/news?symbol=BBCA.JK&count=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:yahoo-finance/news?symbol=BBCA.JK&count=20",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 5,
"items": [
{
"url": "https://www.thestreet.com/investing/apples-record-iphone-boom-just-became-a-wall-street-trap?.tsrc=rss",
"title": "Apple’s record iPhone boom just became a Wall Street trap",
"description": "Apple (AAPL) reported the type of quarter that should have sent its stock price skyrocketing. Revenue rose 16% from a year earlier to $109 billion, while profit increased 26% to $29 billion. iPhone sales jumped 22%, Mac revenue climbed 25%, and the iPhone 17 produced the biggest product launch in ...",
"publishedAt": 1785632580,
"publishedAtIso": "2026-08-02T01:03:00.000Z"
},
{
"url": "https://finance.yahoo.com/technology/articles/us-schools-ditching-chromebooks-macbooks-233015401.html?.tsrc=rss",
"title": "US Schools Are Ditching Chromebooks for MacBooks by the Thousands— Apple Just Named Names",
"description": "Apple‘s latest earnings call revealed a wave of K-12 districts abandoning Chromebooks and Windows machines in favor of the company’s new MacBook Neo, with Chief Financial Officer Kevan Parekh naming specific schools driving the shift. Districts Go All-In on MacBook...",
"publishedAt": 1785627015,
"publishedAtIso": "2026-08-01T23:30:15.000Z"
},
{
"url": "https://www.thestreet.com/technology/apple-tim-cook-admits-ai-raises-price-products?.tsrc=rss",
"title": "Apple CEO sends strong warning on AI and price of Apple products",
"description": "Tim Cook spent part of July 30 thanking Apple shareholders at the end of what he confirmed would be his last earnings call as CEO. John Ternus takes over Sept. 1, and Cook moves to executive chairman. The farewell was warm. The statement that followed was not. Cook described Apple's memory cost ...",
"publishedAt": 1785614820,
"publishedAtIso": "2026-08-01T20:07:00.000Z"
},
{
"url": "https://finance.yahoo.com/markets/stocks/articles/apples-services-slowdown-weird-culprit-193027566.html?.tsrc=rss",
"title": "Apple's Services Slowdown Has a Weird Culprit: No F1 Movie This Year",
"description": "Apple Inc. said its red-hot Services division lost some momentum in the fiscal third quarter, with CFO Kevan Parekh pointing to an unusual culprit: there was no blockbuster “F1“ movie release this year to boost Apple TV+ revenue. Apple’s fiscal...",
"publishedAt": 1785612627,
"publishedAtIso": "2026-08-01T19:30:27.000Z"
},
{
"url": "https://finance.yahoo.com/technology/articles/still-buy-next-smartphone-subscribe-184727955.html?.tsrc=rss",
"title": "Should you still buy your next smartphone — or subscribe to it instead?",
"description": "Apple's new Upgrade program is the latest sign that smartphone ownership is changing.",
"publishedAt": 1785610047,
"publishedAtIso": "2026-08-01T18:47:27.000Z"
}
],
"symbol": "AAPL",
"provider": "yahoo"
}
```
---
### Options
Full option chain with implied volatility and open interest.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:yahoo-finance/options`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Underlying symbol |
| `expiration` | number | query | no | Expiry as a unix timestamp. Defaults to the nearest expiry |
| `side` | enum(all|calls|puts) | query | no | Which side of the chain to return. Default all |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:yahoo-finance/options?symbol=AAPL&expiration=1785715200&side=all" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:yahoo-finance/options?symbol=AAPL&expiration=1785715200&side=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:yahoo-finance/options?symbol=AAPL&expiration=1785715200&side=all",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"last": 308.91,
"puts": [
{
"ask": 0.18,
"bid": 0,
"change": 0,
"strike": 235,
"volume": 2,
"contract": "AAPL260803P00235000",
"currency": "USD",
"lastPrice": 0.01,
"expiration": 1785715200,
"inTheMoney": false,
"lastTradeAt": 1785339591,
"openInterest": 1,
"changePercent": 0,
"impliedVolatility": 1.5546897265624997
},
{
"ask": 0.04,
"bid": 0,
"change": -0.02,
"strike": 260,
"volume": 308,
"contract": "AAPL260803P00260000",
"currency": "USD",
"lastPrice": 0.02,
"expiration": 1785715200,
"inTheMoney": false,
"lastTradeAt": 1785520604,
"openInterest": 28,
"changePercent": -50,
"impliedVolatility": 0.867188828125
},
{
"ask": 0.04,
"bid": 0,
"change": -0.05,
"strike": 270,
"volume": 155,
"contract": "AAPL260803P00270000",
"currency": "USD",
"lastPrice": 0.02,
"expiration": 1785715200,
"inTheMoney": false,
"lastTradeAt": 1785526032,
"openInterest": 78,
"changePercent": -71.42857,
"impliedVolatility": 0.6953155468750001
},
{
"ask": 0.04,
"bid": 0,
"change": -0.05,
"strike": 275,
"volume": 412,
"contract": "AAPL260803P00275000",
"currency": "USD",
"lastPrice": 0.02,
"expiration": 1785715200,
"inTheMoney": false,
"lastTradeAt": 1785527121,
"openInterest": 7,
"changePercent": -71.42857,
"impliedVolatility": 0.6093789062500001
},
{
"ask": 0.05,
"bid": 0.02,
"change": -0.06,
"strike": 280,
"volume": 2776,
"contract": "AAPL260803P00280000",
"currency": "USD",
"lastPrice": 0.02,
"expiration": 1785715200,
"inTheMoney": false,
"lastTradeAt": 1785527977,
"openInterest": 152,
"changePercent": -75,
"impliedVolatility": 0.5585981640625001
},
{
"ask": 0.06,
"bid": 0.02,
"change": -0.07000001,
"strike": 282.5,
"volume": 482,
"contract": "AAPL260803P00282500",
"currency": "USD",
"lastPrice": 0.02,
"expiration": 1785715200,
"inTheMoney": false,
"lastTradeAt": 1785527891,
"openInterest": 41,
"changePercent": -77.77779,
"impliedVolatility": 0.5214891601562499
},
{
"ask": 0.07,
"bid": 0.03,
"change": -0.089999996,
"strike": 285,
"volume": 4531,
"contract": "AAPL260803P00285000",
"currency": "USD",
"lastPrice": 0.03,
"expiration": 1785715200,
"inTheMoney": false,
"lastTradeAt": 1785527880,
"openInterest": 63,
"changePercent": -75,
"impliedVolatility": 0.5136767382812499
},
{
"ask": 0.07,
"bid": 0.03,
"change": -0.06,
"strike": 287.5,
"volume": 3724,
"contract": "AAPL260803P00287500",
"currency": "USD",
"lastPrice": 0.06,
"expiration": 1785715200,
"inTheMoney": false,
"lastTradeAt": 1785527995,
"openInterest": 364,
"changePercent": -50,
"impliedVolatility": 0.46680220703125
}
],
"calls": [
{
"ask": 80.8,
"bid": 77,
"change": 0,
"strike": 230,
"contract": "AAPL260803C00230000",
"currency": "USD",
"lastPrice": 98.35,
"expiration": 1785715200,
"inTheMoney": true,
"lastTradeAt": 1784902378,
"openInterest": 1,
"changePercent": 0,
"impliedVolatility": 2.7900420874023437
},
{
"ask": 56.05,
"bid": 52.25,
"change": 0,
"strike": 255,
"volume": 1,
"contract": "AAPL260803C00255000",
"currency": "USD",
"lastPrice": 82.85,
"expiration": 1785715200,
"inTheMoney": true,
"lastTradeAt": 1785247209,
"openInterest": 1,
"changePercent": 0,
"impliedVolatility": 1.3056675341796873
},
{
"ask": 33.55,
"bid": 29.55,
"change": -38.83,
"strike": 277.5,
"volume": 7,
"contract": "AAPL260803C00277500",
"currency": "USD",
"lastPrice": 23.47,
"expiration": 1785715200,
"inTheMoney": true,
"lastTradeAt": 1785520620,
"openInterest": 2,
"changePercent": -62.32745,
"impliedVolatility": 0.7304714453125
},
{
"ask": 30.6,
"bid": 27.15,
"change": -31.699999,
"strike": 280,
"volume": 147,
"contract": "AAPL260803C00280000",
"currency": "USD",
"lastPrice": 22.1,
"expiration": 1785715200,
"inTheMoney": true,
"lastTradeAt": 1785521658,
"openInterest": 4,
"changePercent": -58.921932,
"impliedVolatility": 1.1828654138183592
},
{
"ask": 20.6,
"bid": 17.35,
"change": -33.51,
"strike": 290,
"volume": 142,
"contract": "AAPL260803C00290000",
"currency": "USD",
"lastPrice": 18.25,
"expiration": 1785715200,
"inTheMoney": true,
"lastTradeAt": 1785526217,
"openInterest": 12,
"changePercent": -64.74111,
"impliedVolatility": 0.8745129736328124
},
{
"ask": 15.15,
"bid": 13.15,
"change": -24.970001,
"strike": 295,
"volume": 1824,
"contract": "AAPL260803C00295000",
"currency": "USD",
"lastPrice": 14,
"expiration": 1785715200,
"inTheMoney": true,
"lastTradeAt": 1785527826,
"openInterest": 34,
"changePercent": -64.074936,
"impliedVolatility": 0.6372106591796876
},
{
"ask": 12.75,
"bid": 10.75,
"change": -22.819998,
"strike": 297.5,
"volume": 1067,
"contract": "AAPL260803C00297500",
"currency": "USD",
"lastPrice": 13.6,
"expiration": 1785715200,
"inTheMoney": true,
"lastTradeAt": 1785527988,
"openInterest": 21,
"changePercent": -62.657875,
"impliedVolatility": 0.57617611328125
},
{
"ask": 10.4,
"bid": 9.1,
"change": -24.779999,
"strike": 300,
"volume": 14427,
"contract": "AAPL260803C00300000",
"currency": "USD",
"lastPrice": 9.43,
"expiration": 1785715200,
"inTheMoney": true,
"lastTradeAt": 1785527995,
"openInterest": 38,
"changePercent": -72.43496,
"impliedVolatility": 0.5170946728515625
}
],
"count": 82,
"symbol": "AAPL",
"currency": "USD",
"provider": "yahoo",
"expiration": 1785715200,
"expirations": [
1785715200,
1785888000,
1786060800,
1786665600,
1787270400,
1787875200,
1788480000,
1789689600
],
"strikeCount": 50
}
```
---
### Insights
Third-party technical outlooks, valuation standing and developments.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:yahoo-finance/insights`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Instrument symbol. Jakarta listings use the .JK suffix |
| `count` | number | query | no | Significant developments to return. Default 10, max 30 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:yahoo-finance/insights?symbol=AAPL&count=10" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:yahoo-finance/insights?symbol=AAPL&count=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:yahoo-finance/insights?symbol=AAPL&count=10",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 1,
"items": [
{
"date": "2026-07-29",
"headline": "Qualcomm CEO - Our Two Near Term, Custom Silicon Wins Will Be Revenue Generating In The December Quarter - Conf Call"
}
],
"sector": "Technology",
"symbol": "AAPL",
"support": 230.4,
"provider": "yahoo",
"stopLoss": 281.086598,
"resistance": 311.4,
"companyHiring": 0.9512999999999999,
"longTermOutlook": {
"score": 1,
"summary": "There is one bullish event.",
"direction": "Bullish",
"indexDirection": "Bullish",
"sectorDirection": "Bullish",
"scoreDescription": "Weak Bullish Evidence"
},
"researchProvider": "Trading Central",
"shortTermOutlook": {
"score": 4,
"summary": "Recent bearish events outweigh bullish events.",
"direction": "Bearish",
"indexDirection": "Bullish",
"sectorDirection": "Bearish",
"scoreDescription": "Very Strong Bearish Evidence"
},
"valuationDiscount": "-8%",
"valuationDescription": "Overvalued",
"companyInnovativeness": 0.9981,
"companySustainability": 0.16519999999999999,
"companyEarningsReports": 0.8412000000000001,
"valuationRelativeValue": "Premium",
"companyInsiderSentiment": 0.355,
"intermediateTermOutlook": {
"score": 1,
"summary": "Recent bearish events outweigh bullish events.",
"direction": "Bearish",
"indexDirection": "Neutral",
"sectorDirection": "Bearish",
"scoreDescription": "Weak Bearish Evidence"
}
}
```
---
### Holders
Insider and institutional ownership, plus insider transactions.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:yahoo-finance/holders`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Instrument symbol. Jakarta listings use the .JK suffix |
| `count` | number | query | no | Rows per list. Default 10, max 50 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:yahoo-finance/holders?symbol=AAPL&count=10" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:yahoo-finance/holders?symbol=AAPL&count=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:yahoo-finance/holders?symbol=AAPL&count=10",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 5,
"funds": [
{
"value": 144017368370,
"shares": 466211410,
"reportDate": 1774915200,
"heldPercent": 3.17,
"organization": "VANGUARD INDEX FUNDS-Vanguard Total Stock Market Index Fund",
"changePercent": 0.4
},
{
"value": 115247571447,
"shares": 373078146,
"reportDate": 1774915200,
"heldPercent": 2.54,
"organization": "VANGUARD INDEX FUNDS-Vanguard 500 Index Fund",
"changePercent": 0.12
},
{
"value": 62606587179,
"shares": 202669342,
"reportDate": 1782777600,
"heldPercent": 1.38,
"organization": "iShares Trust-iShares Core S&P 500 ETF",
"changePercent": 4.78
},
{
"value": 58202930816,
"shares": 188413875,
"reportDate": 1782777600,
"heldPercent": 1.28,
"organization": "Fidelity Concord Street Trust-Fidelity 500 Index Fund",
"changePercent": 0.29
},
{
"value": 54825648946,
"shares": 177480976,
"reportDate": 1782777600,
"heldPercent": 1.21,
"organization": "SPDR S&P 500 ETF TRUST-State Street SPDR S&P 500 ETF Trust",
"changePercent": 0.24
}
],
"items": [
{
"value": 353607867928,
"shares": 1144695425,
"reportDate": 1774915200,
"heldPercent": 7.79,
"organization": "Blackrock Inc.",
"changePercent": -0.86
},
{
"value": 294653080436,
"shares": 953847648,
"reportDate": 1774915200,
"heldPercent": 6.49,
"organization": "Vanguard Capital Management LLC",
"changePercent": 100
},
{
"value": 186069286860,
"shares": 602341409,
"reportDate": 1774915200,
"heldPercent": 4.1,
"organization": "State Street Corporation",
"changePercent": -0.28
},
{
"value": 113869464610,
"shares": 368616954,
"reportDate": 1774915200,
"heldPercent": 2.51,
"organization": "Geode Capital Management, LLC",
"changePercent": 2.96
},
{
"value": 102384221873,
"shares": 331437055,
"reportDate": 1774915200,
"heldPercent": 2.26,
"organization": "Vanguard Portfolio Management LLC",
"changePercent": 100
}
],
"symbol": "AAPL",
"provider": "yahoo",
"insiderTrades": [
{
"at": 1781568000,
"name": "BORDERS BEN",
"value": 34236,
"shares": 116,
"relation": "Officer",
"transaction": "Sale at price 295.14 per share."
},
{
"at": 1781481600,
"name": "NEWSTEAD JENNIFER",
"shares": 30104,
"relation": "General Counsel"
},
{
"at": 1781481600,
"name": "BORDERS BEN",
"shares": 240,
"relation": "Officer"
},
{
"at": 1779840000,
"name": "LEVINSON ARTHUR D",
"value": 15551000,
"shares": 50000,
"relation": "Director",
"transaction": "Sale at price 311.02 per share."
},
{
"at": 1779840000,
"name": "LEVINSON ARTHUR D",
"value": 0,
"shares": 65000,
"relation": "Director",
"transaction": "Stock Gift at price 0.00 per share."
}
],
"institutionsCount": 7659,
"insidersHeldPercent": 1.637,
"institutionsHeldPercent": 65.734,
"institutionsFloatHeldPercent": 66.828
}
```
---
### Earnings
Reported vs consensus EPS, surprise, and forward estimates.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:yahoo-finance/earnings`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Instrument symbol. Jakarta listings use the .JK suffix |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:yahoo-finance/earnings?symbol=AAPL" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:yahoo-finance/earnings?symbol=AAPL", {
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:yahoo-finance/earnings?symbol=AAPL",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 4,
"items": [
{
"period": "-4q",
"currency": "USD",
"epsActual": 1.85,
"quarterEnd": 1759190400,
"epsEstimate": 1.76993,
"epsDifference": 0.08,
"surprisePercent": 4.52
},
{
"period": "-3q",
"currency": "USD",
"epsActual": 2.84,
"quarterEnd": 1767139200,
"epsEstimate": 2.6708,
"epsDifference": 0.17,
"surprisePercent": 6.34
},
{
"period": "-2q",
"currency": "USD",
"epsActual": 2.01,
"quarterEnd": 1774915200,
"epsEstimate": 1.94275,
"epsDifference": 0.07,
"surprisePercent": 3.46
},
{
"period": "-1q",
"currency": "USD",
"epsActual": 2.02,
"quarterEnd": 1782777600,
"epsEstimate": 1.89243,
"epsDifference": 0.13,
"surprisePercent": 6.74
}
],
"annual": [
{
"year": 2022,
"revenue": 394328000000,
"earnings": 99803000000
},
{
"year": 2023,
"revenue": 383285000000,
"earnings": 96995000000
},
{
"year": 2024,
"revenue": 391035000000,
"earnings": 93736000000
},
{
"year": 2025,
"revenue": 416161000000,
"earnings": 112010000000
}
],
"symbol": "AAPL",
"currency": "USD",
"provider": "yahoo",
"estimates": [
{
"epsLow": 1.95,
"period": "0q",
"endDate": "2026-09-30",
"epsHigh": 2.04,
"epsAverage": 1.97898,
"epsAnalysts": 26,
"growthPercent": 7.03,
"revenueAverage": 113259618670,
"revenueAnalysts": 26
},
{
"epsLow": 2.51,
"period": "+1q",
"endDate": "2026-12-31",
"epsHigh": 3.42,
"epsAverage": 2.90908,
"epsAnalysts": 23,
"growthPercent": 1.61,
"revenueAverage": 153920295200,
"revenueAnalysts": 21
},
{
"epsLow": 8.57,
"period": "0y",
"endDate": "2026-09-30",
"epsHigh": 8.92,
"epsAverage": 8.81411,
"epsAnalysts": 37,
"growthPercent": 18.030001,
"revenueAverage": 477391182150,
"revenueAnalysts": 28
},
{
"epsLow": 8.24,
"period": "+1y",
"endDate": "2027-09-30",
"epsHigh": 10.96,
"epsAverage": 9.58609,
"epsAnalysts": 41,
"growthPercent": 8.01,
"revenueAverage": 523865758660,
"revenueAnalysts": 40
}
],
"nextEarningsDate": 1793304000,
"nextEarningsDateEstimated": false
}
```
---
### Analysts
Rating distribution, price targets and the upgrade/downgrade tape.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:yahoo-finance/analysts`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Instrument symbol. Jakarta listings use the .JK suffix |
| `count` | number | query | no | Rating changes to return. Default 25, max 100 |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:yahoo-finance/analysts?symbol=AAPL&count=25" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:yahoo-finance/analysts?symbol=AAPL&count=25", {
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:yahoo-finance/analysts?symbol=AAPL&count=25",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 5,
"items": [
{
"at": 1785521260,
"firm": "JP Morgan",
"action": "main",
"toGrade": "Overweight",
"fromGrade": "Overweight",
"priceTarget": 340,
"priorPriceTarget": 345,
"priceTargetAction": "Lowers"
},
{
"at": 1785513830,
"firm": "TD Cowen",
"action": "main",
"toGrade": "Buy",
"fromGrade": "Buy",
"priceTarget": 400,
"priorPriceTarget": 350,
"priceTargetAction": "Raises"
},
{
"at": 1785510306,
"firm": "DA Davidson",
"action": "main",
"toGrade": "Neutral",
"fromGrade": "Neutral",
"priceTarget": 270,
"priorPriceTarget": 270,
"priceTargetAction": "Maintains"
},
{
"at": 1785510107,
"firm": "Wells Fargo",
"action": "main",
"toGrade": "Overweight",
"fromGrade": "Overweight",
"priceTarget": 350,
"priorPriceTarget": 310,
"priceTargetAction": "Raises"
},
{
"at": 1785500656,
"firm": "Needham",
"action": "reit",
"toGrade": "Hold",
"fromGrade": "Hold",
"priceTarget": 0,
"priorPriceTarget": 0
}
],
"trend": [
{
"buy": 22,
"hold": 14,
"sell": 2,
"period": "0m",
"strongBuy": 6,
"strongSell": 2
},
{
"buy": 22,
"hold": 16,
"sell": 1,
"period": "-1m",
"strongBuy": 6,
"strongSell": 2
},
{
"buy": 23,
"hold": 15,
"sell": 1,
"period": "-2m",
"strongBuy": 7,
"strongSell": 2
}
],
"symbol": "AAPL",
"provider": "yahoo",
"consensus": "buy",
"targetLow": 215,
"targetHigh": 400,
"targetMean": 323.28195,
"analystCount": 41,
"targetMedian": 330,
"consensusScore": 2.04348
}
```
---
### Financials
Income, balance sheet or cash flow as a period-by-period series.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:yahoo-finance/financials`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `symbol` | string | query | yes | Instrument symbol. Jakarta listings use the .JK suffix |
| `statement` | enum(income|balance|cashflow) | query | no | Which statement to return. Default income |
| `period` | enum(annual|quarterly|trailing) | query | no | Reporting period. Default annual |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:yahoo-finance/financials?symbol=AAPL&statement=income&period=annual" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:yahoo-finance/financials?symbol=AAPL&statement=income&period=annual", {
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:yahoo-finance/financials?symbol=AAPL&statement=income&period=annual",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 4,
"items": [
{
"date": "2025-09-30",
"ebitda": 144748000000,
"revenue": 416161000000,
"epsBasic": 7.49,
"netIncome": 112010000000,
"epsDiluted": 7.46,
"periodType": "12M",
"grossProfit": 195201000000,
"costOfRevenue": 220960000000,
"operatingIncome": 133050000000,
"operatingExpense": 62151000000
},
{
"date": "2024-09-30",
"ebitda": 134661000000,
"revenue": 391035000000,
"epsBasic": 6.11,
"netIncome": 93736000000,
"epsDiluted": 6.08,
"periodType": "12M",
"grossProfit": 180683000000,
"costOfRevenue": 210352000000,
"operatingIncome": 123216000000,
"operatingExpense": 57467000000
},
{
"date": "2023-09-30",
"ebitda": 125820000000,
"revenue": 383285000000,
"epsBasic": 6.16,
"netIncome": 96995000000,
"epsDiluted": 6.13,
"periodType": "12M",
"grossProfit": 169148000000,
"costOfRevenue": 214137000000,
"operatingIncome": 114301000000,
"operatingExpense": 54847000000
},
{
"date": "2022-09-30",
"ebitda": 130541000000,
"revenue": 394328000000,
"epsBasic": 6.15,
"netIncome": 99803000000,
"epsDiluted": 6.11,
"periodType": "12M",
"grossProfit": 170782000000,
"costOfRevenue": 223546000000,
"operatingIncome": 119437000000,
"operatingExpense": 51345000000
}
],
"period": "annual",
"symbol": "AAPL",
"currency": "USD",
"provider": "yahoo",
"statement": "income"
}
```
---
### Market summary
Index, futures and rate levels for a region.
- **Method:** `GET`
- **Endpoint:** `https://api.zapi.ink/v1/finance:yahoo-finance/market-summary`
- **Cache TTL:** 300s
**Parameters:**
| Name | Type | Location | Required | Description |
|------|------|----------|----------|-------------|
| `region` | enum(US|ID|GB|DE|JP|HK|SG|IN|AU) | query | no | Region whose summary strip to return. Default US |
**cURL:**
```bash
curl "https://api.zapi.ink/v1/finance:yahoo-finance/market-summary?region=US" \
-H "x-api-key: YOUR_API_KEY"
```
**JavaScript / TypeScript:**
```javascript
const res = await fetch("https://api.zapi.ink/v1/finance:yahoo-finance/market-summary?region=US", {
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:yahoo-finance/market-summary?region=US",
headers={"x-api-key": "YOUR_API_KEY"})
data = r.json()
```
**Example response:**
```json
{
"count": 15,
"items": [
{
"last": 7489.72,
"name": "S&P 500",
"type": "INDEX",
"change": 52.090332,
"symbol": "^GSPC",
"exchange": "SNP",
"marketState": "CLOSED",
"changePercent": 0.70036197,
"lastTimestamp": 1785532932,
"previousClose": 7437.63
},
{
"last": 52485.03,
"name": "Dow 30",
"type": "INDEX",
"change": 276.97266,
"symbol": "^DJI",
"exchange": "DJI",
"marketState": "CLOSED",
"changePercent": 0.53051704,
"lastTimestamp": 1785532938,
"previousClose": 52208.06
},
{
"last": 25373.854,
"name": "Nasdaq",
"type": "INDEX",
"change": 251.67578,
"symbol": "^IXIC",
"exchange": "Nasdaq GIDS",
"marketState": "CLOSED",
"changePercent": 1.0018072,
"lastTimestamp": 1785532559,
"previousClose": 25122.178
},
{
"last": 2931.339,
"name": "Russell 2000",
"type": "INDEX",
"change": -14.761963,
"symbol": "^RUT",
"exchange": "Chicago Options",
"marketState": "CLOSED",
"changePercent": -0.50106776,
"lastTimestamp": 1785529812,
"previousClose": 2946.101
},
{
"last": 84.67,
"name": "Crude Oil",
"type": "FUTURE",
"change": 1.0800018,
"symbol": "CL=F",
"exchange": "NY Mercantile",
"marketState": "CLOSED",
"changePercent": 1.2920228,
"lastTimestamp": 1785531599,
"previousClose": 83.59
},
{
"last": 4107,
"name": "Gold",
"type": "FUTURE",
"change": -53.600098,
"symbol": "GC=F",
"exchange": "COMEX",
"marketState": "CLOSED",
"changePercent": -1.288278,
"lastTimestamp": 1785531594,
"previousClose": 4160.6
},
{
"last": 57.786,
"name": "Silver",
"type": "FUTURE",
"change": -1.230999,
"symbol": "SI=F",
"exchange": "COMEX",
"marketState": "CLOSED",
"changePercent": -2.085838,
"lastTimestamp": 1785531588,
"previousClose": 59.017
},
{
"last": 1.1527377,
"name": "EUR/USD",
"type": "CURRENCY",
"change": -0.00013291836,
"symbol": "EURUSD=X",
"currency": "USD",
"exchange": "CCY",
"marketState": "CLOSED",
"changePercent": -0.011529291,
"lastTimestamp": 1785533393,
"previousClose": 1.1528707
}
],
"region": "US",
"provider": "yahoo"
}
```
---