# IDX



The Indonesia Stock Exchange's own market data — the trading day's stock summary and the index board, straight from the source.



## IDX Stock Summary

The exchange's own summary of the trading day — OHLC, volume, value, frequency, foreign flows, and listed shares on every stock.

- Method: `GET`
- Path: `/v1/market/idx/stocks`

**Parameters**

| Name | Type | | Description |
|---|---|---|---|
| `max_age` | integer (seconds) | optional | Ask for data no older than this. Clamped to the product's own floor, so it can narrow the window but never force a refresh on every call. |

**Example request**

```bash
curl https://api.diraz.ae/v1/market/idx/stocks \
  -H "Authorization: Bearer drz_live_…"
```

**Example response**

```json
{
  "data": {
    "total": 963,
    "items": [
      {
        "code": "AADI",
        "name": "Adaro Andalan Indonesia Tbk.",
        "open": 8100,
        "high": 8850,
        "low": 8050,
        "close": 8650,
        "previous": 8050,
        "change": 600,
        "volume": 21262200,
        "value": 182271837500,
        "frequency": 9962,
        "foreign_buy": 5896500,
        "foreign_sell": 9874800,
        "listed_shares": 7786891760,
        "tradeble_shares": 7786891760,
        "index_individual": 155.9
      }
    ]
  },
  "meta": {
    "request_id": "req_7Q2fK4mZ",
    "as_of": "2026-08-20T16:30:00.000Z",
    "age_seconds": 1200,
    "next_update_at": "2026-08-20T17:00:00.000Z"
  }
}
```

## IDX Index Summary

The exchange's own index board — every IDX index with its close, previous close, and change.

- Method: `GET`
- Path: `/v1/market/idx/indices`

**Parameters**

| Name | Type | | Description |
|---|---|---|---|
| `max_age` | integer (seconds) | optional | Ask for data no older than this. Clamped to the product's own floor, so it can narrow the window but never force a refresh on every call. |

**Example request**

```bash
curl https://api.diraz.ae/v1/market/idx/indices \
  -H "Authorization: Bearer drz_live_…"
```

**Example response**

```json
{
  "data": {
    "items": [
      {
        "code": "COMPOSITE",
        "name": "IHSG Composite",
        "close": 6501.59,
        "previous": 6394.13,
        "change": 107.46
      }
    ]
  },
  "meta": {
    "request_id": "req_7Q2fK4mZ",
    "as_of": "2026-08-20T16:30:00.000Z",
    "age_seconds": 1200,
    "next_update_at": "2026-08-20T17:00:00.000Z"
  }
}
```

## IDX Listed Companies

The exchange's own directory of listed companies — sector, industry, and contact details for every issuer.

- Method: `GET`
- Path: `/v1/market/idx/companies`

**Parameters**

| Name | Type | | Description |
|---|---|---|---|
| `max_age` | integer (seconds) | optional | Ask for data no older than this. Clamped to the product's own floor, so it can narrow the window but never force a refresh on every call. |

**Example request**

```bash
curl https://api.diraz.ae/v1/market/idx/companies \
  -H "Authorization: Bearer drz_live_…"
```

**Example response**

```json
{
  "data": {
    "total": 958,
    "items": [
      {
        "code": "AADI",
        "name": "PT Adaro Andalan Indonesia Tbk",
        "sector": "Energi",
        "sub_sector": "Minyak, Gas & Batu Bara",
        "industry": "Batu Bara",
        "sub_industry": "Batu Bara",
        "main_business": "Pertambangan Batu Bara",
        "website": "www.adaroindonesia.com",
        "phone": "(021) 2553 3065",
        "email": "corsec@adaroindonesia.com",
        "address": "Cyber 2 Tower Lantai 26",
        "listing_board": "Utama",
        "listing_date": "2024-12-05"
      }
    ]
  },
  "meta": {
    "request_id": "req_7Q2fK4mZ",
    "as_of": "2026-08-20T16:30:00.000Z",
    "age_seconds": 3600,
    "next_update_at": "2026-08-22T16:30:00.000Z"
  }
}
```

## IDX Listed Securities

Every listed security on the exchange — code, name, shares outstanding, and listing board.

- Method: `GET`
- Path: `/v1/market/idx/securities`

**Parameters**

| Name | Type | | Description |
|---|---|---|---|
| `max_age` | integer (seconds) | optional | Ask for data no older than this. Clamped to the product's own floor, so it can narrow the window but never force a refresh on every call. |

**Example request**

```bash
curl https://api.diraz.ae/v1/market/idx/securities \
  -H "Authorization: Bearer drz_live_…"
```

**Example response**

```json
{
  "data": {
    "total": 957,
    "items": [
      {
        "code": "AALI",
        "name": "Astra Agro Lestari Tbk.",
        "shares": 1924688333,
        "listing_date": "1997-12-09",
        "listing_board": "Utama"
      }
    ]
  },
  "meta": {
    "request_id": "req_7Q2fK4mZ",
    "as_of": "2026-08-20T16:30:00.000Z",
    "age_seconds": 3600,
    "next_update_at": "2026-08-22T16:30:00.000Z"
  }
}
```

## IDX Exchange Members

The exchange's own directory of member brokers — code, name, and license type.

- Method: `GET`
- Path: `/v1/market/idx/brokers`

**Parameters**

| Name | Type | | Description |
|---|---|---|---|
| `max_age` | integer (seconds) | optional | Ask for data no older than this. Clamped to the product's own floor, so it can narrow the window but never force a refresh on every call. |

**Example request**

```bash
curl https://api.diraz.ae/v1/market/idx/brokers \
  -H "Authorization: Bearer drz_live_…"
```

**Example response**

```json
{
  "data": {
    "total": 89,
    "items": [
      {
        "code": "AD",
        "name": "SUKADANA PRIMA SEKURITAS",
        "license": "Penjamin Emisi Efek, Perantara Pedagang Efek"
      }
    ]
  },
  "meta": {
    "request_id": "req_7Q2fK4mZ",
    "as_of": "2026-08-20T16:30:00.000Z",
    "age_seconds": 3600,
    "next_update_at": "2026-08-22T16:30:00.000Z"
  }
}
```

## IDX Company Profile

One company's full profile — sector, directors, commissioners, shareholders, dividends, bonds, and subsidiaries.

- Method: `GET`
- Path: `/v1/market/idx/company-profile`

**Parameters**

| Name | Type | | Description |
|---|---|---|---|
| `code` | string | required | The company's 4-letter IDX ticker. |

**Example request**

```bash
curl https://api.diraz.ae/v1/market/idx/company-profile \
  -H "Authorization: Bearer drz_live_…"
```

**Example response**

```json
{
  "data": {
    "code": "BBCA",
    "name": "PT Bank Central Asia Tbk.",
    "sector": "Keuangan",
    "sub_sector": "Bank",
    "industry": "Bank",
    "sub_industry": "Bank",
    "main_business": "Jasa Perbankan",
    "listing_date": null,
    "listing_board": null,
    "address": "Menara BCA, Grand Indonesia",
    "phone": "021-23588000",
    "fax": "021-23588300",
    "email": "investor_relations@bca.co.id",
    "website": "www.bca.co.id",
    "logo": "https://www.idx.co.id/Portals/0/StaticData/ListedCompanies/LogoEmiten/BBCA.jpg",
    "directors": [{ "name": "Gregory Hendra Lembong", "title": "PRESIDEN DIREKTUR" }],
    "commissioners": [{ "name": "Jahja Setiaatmadja", "title": "PRESIDEN KOMISARIS" }],
    "audit_committee": [{ "name": "Sumantri Slamet", "title": "KETUA" }],
    "corporate_secretary": [{ "name": "Rudy Budiardjo", "email": "corporate_secretary@bca.co.id", "phone": "021-23588000" }],
    "shareholders": [{ "name": "PT Dwimuria Investama Andalan", "category": "Lebih dari 5%", "shares": 67729950000, "share_pct": 54.942 }],
    "dividends": [],
    "bonds": [],
    "subsidiaries": []
  },
  "meta": {
    "request_id": "req_7Q2fK4mZ",
    "as_of": "2026-08-20T16:30:00.000Z",
    "age_seconds": 3600,
    "next_update_at": "2026-08-22T16:30:00.000Z"
  }
}
```

## IDX IPO & Relisting

New listings and relistings on the exchange, optionally filtered by year.

- Method: `GET`
- Path: `/v1/market/idx/ipo`

**Parameters**

| Name | Type | | Description |
|---|---|---|---|
| `year` | integer | optional | Filter by listing year. |

**Example request**

```bash
curl https://api.diraz.ae/v1/market/idx/ipo \
  -H "Authorization: Bearer drz_live_…"
```

**Example response**

```json
{
  "data": {
    "total": 7,
    "items": [
      {
        "code": "RANS",
        "name": "PT Rans Entertainmen Indonesia Tbk",
        "listing_date": "2026-07-10",
        "listing_board": "Pengembangan",
        "security_type": "saham",
        "listing_type": "baru",
        "shares_offered": 12609250000
      }
    ]
  },
  "meta": {
    "request_id": "req_7Q2fK4mZ",
    "as_of": "2026-08-20T16:30:00.000Z",
    "age_seconds": 3600,
    "next_update_at": "2026-08-22T16:30:00.000Z"
  }
}
```

## IDX Reference Lists

The exchange's own vocabulary — sector names, listing boards, or market session times.

- Method: `GET`
- Path: `/v1/market/idx/reference`

**Parameters**

| Name | Type | | Description |
|---|---|---|---|
| `set` | string | optional | Which list: `sectors`, `boards`, or `market-time`. |

**Example request**

```bash
curl https://api.diraz.ae/v1/market/idx/reference \
  -H "Authorization: Bearer drz_live_…"
```

**Example response**

```json
{
  "data": {
    "set": "sectors",
    "items": [
      "Healthcare",
      "Basic Materials",
      "Financials",
      "Transportation & Logistic",
      "Technology",
      "Consumer Non-Cyclicals",
      "Industrials",
      "Energy",
      "Consumer Cyclicals",
      "Infrastructures",
      "Properties & Real Estate"
    ]
  },
  "meta": {
    "request_id": "req_7Q2fK4mZ",
    "as_of": "2026-08-20T16:30:00.000Z",
    "age_seconds": 3600,
    "next_update_at": "2026-08-22T16:30:00.000Z"
  }
}
```

## IDX Market Participants

Every registered market participant, and whether it's a primary dealer.

- Method: `GET`
- Path: `/v1/market/idx/participants`

**Parameters**

| Name | Type | | Description |
|---|---|---|---|
| `max_age` | integer (seconds) | optional | Ask for data no older than this. Clamped to the product's own floor, so it can narrow the window but never force a refresh on every call. |

**Example request**

```bash
curl https://api.diraz.ae/v1/market/idx/participants \
  -H "Authorization: Bearer drz_live_…"
```

**Example response**

```json
{
  "data": {
    "total": 141,
    "items": [
      {
        "code": "B-AG",
        "name": "Bank Artha Graha Internasional Tbk",
        "license": "Bank",
        "is_primary_dealer": false
      }
    ]
  },
  "meta": {
    "request_id": "req_7Q2fK4mZ",
    "as_of": "2026-08-20T16:30:00.000Z",
    "age_seconds": 3600,
    "next_update_at": "2026-08-22T16:30:00.000Z"
  }
}
```

## IDX Primary Dealers

Government bond primary dealers registered with the exchange.

- Method: `GET`
- Path: `/v1/market/idx/primary-dealers`

**Parameters**

| Name | Type | | Description |
|---|---|---|---|
| `max_age` | integer (seconds) | optional | Ask for data no older than this. Clamped to the product's own floor, so it can narrow the window but never force a refresh on every call. |

**Example request**

```bash
curl https://api.diraz.ae/v1/market/idx/primary-dealers \
  -H "Authorization: Bearer drz_live_…"
```

**Example response**

```json
{
  "data": {
    "total": 21,
    "items": [
      { "code": "ANZP", "name": "Bank ANZ Indonesia" },
      { "code": "BBCA", "name": "Bank Central Asia, Tbk." }
    ]
  },
  "meta": {
    "request_id": "req_7Q2fK4mZ",
    "as_of": "2026-08-20T16:30:00.000Z",
    "age_seconds": 3600,
    "next_update_at": "2026-08-22T16:30:00.000Z"
  }
}
```

## IDX Issued Share History

Recent share issuance actions — warrant exercises, conversions, and similar changes in shares outstanding.

- Method: `GET`
- Path: `/v1/market/idx/issued-history`

**Parameters**

| Name | Type | | Description |
|---|---|---|---|
| `max_age` | integer (seconds) | optional | Ask for data no older than this. Clamped to the product's own floor, so it can narrow the window but never force a refresh on every call. |

**Example request**

```bash
curl https://api.diraz.ae/v1/market/idx/issued-history \
  -H "Authorization: Bearer drz_live_…"
```

**Example response**

```json
{
  "data": {
    "total": 10,
    "items": [
      {
        "code": "PJHB",
        "action": "waran",
        "shares": 5559,
        "shares_after": 1920809341,
        "listing_date": "2026-08-21"
      }
    ]
  },
  "meta": {
    "request_id": "req_7Q2fK4mZ",
    "as_of": "2026-08-20T16:30:00.000Z",
    "age_seconds": 3600,
    "next_update_at": "2026-08-22T16:30:00.000Z"
  }
}
```

## IDX Financial Reports

Annual financial-statement filings — the filer, the reporting period, and every attachment IDX published for it.

- Method: `GET`
- Path: `/v1/market/idx/financial-report`

**Parameters**

| Name | Type | | Description |
|---|---|---|---|
| `year` | integer | optional | Report year. |
| `period` | string | optional | `tw1`, `tw2`, `tw3`, or `audit`. |

**Example request**

```bash
curl https://api.diraz.ae/v1/market/idx/financial-report \
  -H "Authorization: Bearer drz_live_…"
```

**Example response**

```json
{
  "data": {
    "items": [
      {
        "code": "AADI",
        "name": "PT Adaro Andalan Indonesia Tbk",
        "report_year": "2024",
        "report_period": "Audit",
        "attachments": [
          {
            "file_id": "edca4d28-7ff8-4c32-b18e-14141cb0dd59",
            "file_name": "AnnualReport2024-AADI.pdf",
            "file_path": "/Portals/0/StaticData/AnnualReport2024-AADI.pdf",
            "file_type": ".pdf",
            "report_type": "rdf",
            "file_modified": "2025-04-20T10:12:00"
          }
        ]
      }
    ]
  },
  "meta": {
    "request_id": "req_7Q2fK4mZ",
    "as_of": "2026-08-20T16:30:00.000Z",
    "age_seconds": 1200,
    "next_update_at": "2026-08-22T16:30:00.000Z"
  }
}
```

## IDX Corporate Calendar

IDX's own corporate calendar for the current month — bond maturities, ex-dividend dates, general meetings, and similar events.

- Method: `GET`
- Path: `/v1/market/idx/calendar`

**Example request**

```bash
curl https://api.diraz.ae/v1/market/idx/calendar \
  -H "Authorization: Bearer drz_live_…"
```

**Example response**

```json
{
  "data": {
    "items": [
      {
        "id": 216022,
        "code": "PPLN",
        "date": "2026-08-01",
        "type": "obligasiJatuhTempo",
        "description": "Jatuh Tempo Obligasi / Sukuk Korporasi emisi Sukuk Ijarah Berkelanjutan III PLN."
      }
    ]
  },
  "meta": {
    "request_id": "req_7Q2fK4mZ",
    "as_of": "2026-08-20T16:30:00.000Z",
    "age_seconds": 1200,
    "next_update_at": "2026-08-22T16:30:00.000Z"
  }
}
```

## IDX Ownership Disclosure Files

KSEI's ownership-disclosure file index — every 5%/1%-and-above shareholding filing IDX has published a link to.

- Method: `GET`
- Path: `/v1/market/idx/ownership-files`

**Example request**

```bash
curl https://api.diraz.ae/v1/market/idx/ownership-files \
  -H "Authorization: Bearer drz_live_…"
```

**Example response**

```json
{
  "data": {
    "items": [
      {
        "url": "https://www.idx.co.id/Media/cqiex5iv/peng-2026-07-30-00043-lima-persen.xlsx",
        "category": "lima-persen",
        "file_name": "peng-2026-07-30-00043-lima-persen.xlsx",
        "published_at": "2026-07-30",
        "category_label": "Pemegang saham di atas 5%"
      }
    ]
  },
  "meta": {
    "request_id": "req_7Q2fK4mZ",
    "as_of": "2026-08-20T16:30:00.000Z",
    "age_seconds": 1200,
    "next_update_at": "2026-08-22T16:30:00.000Z"
  }
}
```

## IDX Additional Listings

Additional shares IDX-listed companies issued after their original listing — warrant conversions, private placements, and similar.

- Method: `GET`
- Path: `/v1/market/idx/additional-listings`

**Parameters**

| Name | Type | | Description |
|---|---|---|---|
| `year` | integer | optional | Filter to this year. |
| `month` | integer | optional | Filter to this month (1-12) — required to see a specific month, since the upstream defaults to the current month otherwise. |

**Example request**

```bash
curl https://api.diraz.ae/v1/market/idx/additional-listings \
  -H "Authorization: Bearer drz_live_…"
```

**Example response**

```json
{
  "data": {
    "year": 2025,
    "month": 8,
    "items": [
      {
        "code": "ACRO",
        "name": "Samcro Hyosung Adilestari Tbk.",
        "action_type": "Warrant",
        "shares": 1591,
        "start_date": "2025-08-01",
        "last_date": "2025-08-29"
      }
    ]
  },
  "meta": {
    "request_id": "req_7Q2fK4mZ",
    "as_of": "2026-08-20T16:30:00.000Z",
    "age_seconds": 1200,
    "next_update_at": "2026-08-22T16:30:00.000Z"
  }
}
```

## IDX Delistings

Companies removed from the IDX board — voluntary and forced delistings alike.

- Method: `GET`
- Path: `/v1/market/idx/delistings`

**Parameters**

| Name | Type | | Description |
|---|---|---|---|
| `year` | integer | optional | Filter to this year. |
| `month` | integer | optional | Filter to this month (1-12) — required to see a specific month, since the upstream defaults to the current month otherwise. |

**Example request**

```bash
curl https://api.diraz.ae/v1/market/idx/delistings \
  -H "Authorization: Bearer drz_live_…"
```

**Example response**

```json
{
  "data": {
    "year": 2025,
    "month": 3,
    "items": [
      { "code": "XYZC", "name": "Example Delisted Company Tbk." }
    ]
  },
  "meta": {
    "request_id": "req_7Q2fK4mZ",
    "as_of": "2026-08-20T16:30:00.000Z",
    "age_seconds": 1200,
    "next_update_at": "2026-08-22T16:30:00.000Z"
  }
}
```

## IDX Dividends

Cash dividend declarations across the IDX board — per-share amount, and the cum/ex/record/payment dates.

- Method: `GET`
- Path: `/v1/market/idx/dividends`

**Parameters**

| Name | Type | | Description |
|---|---|---|---|
| `year` | integer | optional | Filter to this year. |
| `month` | integer | optional | Filter to this month (1-12) — required to see a specific month, since the upstream defaults to the current month otherwise. |

**Example request**

```bash
curl https://api.diraz.ae/v1/market/idx/dividends \
  -H "Authorization: Bearer drz_live_…"
```

**Example response**

```json
{
  "data": {
    "year": 2025,
    "month": 6,
    "items": [
      {
        "code": "MEDC",
        "name": "Medco Energi Internasional Tbk.",
        "currency": "IDR",
        "cash_dividend": 25,
        "cum_date": "2025-06-17",
        "ex_date": "2025-06-18",
        "record_date": "2025-06-17",
        "payment_date": "2025-07-04",
        "note_code": "F"
      }
    ]
  },
  "meta": {
    "request_id": "req_7Q2fK4mZ",
    "as_of": "2026-08-20T16:30:00.000Z",
    "age_seconds": 1200,
    "next_update_at": "2026-08-22T16:30:00.000Z"
  }
}
```

## IDX New Listings

Companies newly listed on the IDX board.

- Method: `GET`
- Path: `/v1/market/idx/new-listings`

**Parameters**

| Name | Type | | Description |
|---|---|---|---|
| `year` | integer | optional | Filter to this year. |
| `month` | integer | optional | Filter to this month (1-12) — required to see a specific month, since the upstream defaults to the current month otherwise. |

**Example request**

```bash
curl https://api.diraz.ae/v1/market/idx/new-listings \
  -H "Authorization: Bearer drz_live_…"
```

**Example response**

```json
{
  "data": {
    "year": 2025,
    "month": 7,
    "items": [
      { "code": "RANS", "name": "PT Rans Entertainmen Indonesia Tbk" }
    ]
  },
  "meta": {
    "request_id": "req_7Q2fK4mZ",
    "as_of": "2026-08-20T16:30:00.000Z",
    "age_seconds": 1200,
    "next_update_at": "2026-08-22T16:30:00.000Z"
  }
}
```

## IDX Rights Offerings

Rights offerings (rights issues) on the IDX board — ratio, subscription price, and funds raised.

- Method: `GET`
- Path: `/v1/market/idx/rights-offerings`

**Parameters**

| Name | Type | | Description |
|---|---|---|---|
| `year` | integer | optional | Filter to this year. |
| `month` | integer | optional | Filter to this month (1-12) — required to see a specific month, since the upstream defaults to the current month otherwise. |

**Example request**

```bash
curl https://api.diraz.ae/v1/market/idx/rights-offerings \
  -H "Authorization: Bearer drz_live_…"
```

**Example response**

```json
{
  "data": {
    "year": 2025,
    "month": 3,
    "items": [
      {
        "code": "IATA",
        "name": "MNC Energy Investments Tbk.",
        "ratio": "5 : 4",
        "rights_certificate_trading": "06 - 12 Maret 2025",
        "shares_issued_millions": 20190.596389,
        "ex_price": 63,
        "fund_raised_million_idr": 1272007.572507,
        "ex_date": "2025-03-03",
        "record_date": "2025-03-05"
      }
    ]
  },
  "meta": {
    "request_id": "req_7Q2fK4mZ",
    "as_of": "2026-08-20T16:30:00.000Z",
    "age_seconds": 1200,
    "next_update_at": "2026-08-22T16:30:00.000Z"
  }
}
```

## IDX Stock Splits

Stock splits and reverse splits on the IDX board.

- Method: `GET`
- Path: `/v1/market/idx/stock-splits`

**Parameters**

| Name | Type | | Description |
|---|---|---|---|
| `year` | integer | optional | Filter to this year. |
| `month` | integer | optional | Filter to this month (1-12) — required to see a specific month, since the upstream defaults to the current month otherwise. |

**Example request**

```bash
curl https://api.diraz.ae/v1/market/idx/stock-splits \
  -H "Authorization: Bearer drz_live_…"
```

**Example response**

```json
{
  "data": {
    "year": 2024,
    "month": 5,
    "items": [
      { "code": "XYZC", "name": "Example Split Company Tbk." }
    ]
  },
  "meta": {
    "request_id": "req_7Q2fK4mZ",
    "as_of": "2026-08-20T16:30:00.000Z",
    "age_seconds": 1200,
    "next_update_at": "2026-08-22T16:30:00.000Z"
  }
}
```

## IDX Top Movers

The day's biggest gainers, losers, and busiest names by volume, value, or trade frequency.

- Method: `GET`
- Path: `/v1/market/idx/top-movers`

**Parameters**

| Name | Type | | Description |
|---|---|---|---|
| `type` | string | required | Which board to rank: `gainer`, `loser`, `volume`, `value`, or `frequent`. |
| `max_age` | integer (seconds) | optional | Ask for data no older than this. Clamped to the product's own floor, so it can narrow the window but never force a refresh on every call. |

**Example request**

```bash
curl https://api.diraz.ae/v1/market/idx/top-movers \
  -H "Authorization: Bearer drz_live_…"
```

**Example response**

```json
{
  "data": {
    "type": "gainer",
    "items": [
      { "code": "KIOS", "price": 91, "value": 4186683900, "change": 23, "volume": 49168300, "percent": 33.82, "frequency": 2892 }
    ]
  },
  "meta": {
    "request_id": "req_7Q2fK4mZ",
    "as_of": "2026-08-20T16:30:00.000Z",
    "age_seconds": 1200,
    "next_update_at": "2026-08-22T16:30:00.000Z"
  }
}
```

## IDX Broker Summary

Value, volume, and trade count cleared through every brokerage on the exchange today.

- Method: `GET`
- Path: `/v1/market/idx/broker-summary`

**Parameters**

| Name | Type | | Description |
|---|---|---|---|
| `max_age` | integer (seconds) | optional | Ask for data no older than this. Clamped to the product's own floor, so it can narrow the window but never force a refresh on every call. |

**Example request**

```bash
curl https://api.diraz.ae/v1/market/idx/broker-summary \
  -H "Authorization: Bearer drz_live_…"
```

**Example response**

```json
{
  "data": {
    "items": [
      { "code": "AD", "name": "Sukadana Prima Sekuritas", "value": 1187317700, "volume": 5131200, "frequency": 204, "date": "2026-08-20T00:00:00" }
    ]
  },
  "meta": {
    "request_id": "req_7Q2fK4mZ",
    "as_of": "2026-08-20T16:30:00.000Z",
    "age_seconds": 1200,
    "next_update_at": "2026-08-22T16:30:00.000Z"
  }
}
```

## IDX Foreign Flow

Foreign money moving in and out of every stock on the board today, ranked by net flow.

- Method: `GET`
- Path: `/v1/market/idx/foreign-flow`

**Parameters**

| Name | Type | | Description |
|---|---|---|---|
| `max_age` | integer (seconds) | optional | Ask for data no older than this. Clamped to the product's own floor, so it can narrow the window but never force a refresh on every call. |

**Example request**

```bash
curl https://api.diraz.ae/v1/market/idx/foreign-flow \
  -H "Authorization: Bearer drz_live_…"
```

**Example response**

```json
{
  "data": {
    "items": [
      { "code": "IATA", "name": "Karya Pacific Energy Tbk.", "close": 76, "value": 116766853900, "volume": 1640828700, "foreign_buy_shares": 243242400, "net_foreign_shares": 88222700, "foreign_sell_shares": 155019700 }
    ]
  },
  "meta": {
    "request_id": "req_7Q2fK4mZ",
    "as_of": "2026-08-20T16:30:00.000Z",
    "age_seconds": 1200,
    "next_update_at": "2026-08-22T16:30:00.000Z"
  }
}
```

## IDX Margin Summary

Which stocks traded on margin today, with price and volume.

- Method: `GET`
- Path: `/v1/market/idx/margin-summary`

**Parameters**

| Name | Type | | Description |
|---|---|---|---|
| `max_age` | integer (seconds) | optional | Ask for data no older than this. Clamped to the product's own floor, so it can narrow the window but never force a refresh on every call. |

**Example request**

```bash
curl https://api.diraz.ae/v1/market/idx/margin-summary \
  -H "Authorization: Bearer drz_live_…"
```

**Example response**

```json
{
  "data": {
    "items": [
      { "code": "AADI", "close": 8400, "high": 8500, "low": 8350, "change": 25, "volume": 474200, "value": 4010085000, "frequency": 178 }
    ]
  },
  "meta": {
    "request_id": "req_7Q2fK4mZ",
    "as_of": "2026-08-20T16:30:00.000Z",
    "age_seconds": 1200,
    "next_update_at": "2026-08-22T16:30:00.000Z"
  }
}
```

## IDX Stock History

One stock's own daily OHLC and foreign-flow history, its most recent trading days.

- Method: `GET`
- Path: `/v1/market/idx/stock-history`

**Parameters**

| Name | Type | | Description |
|---|---|---|---|
| `code` | string | required | The stock's ticker. |
| `max_age` | integer (seconds) | optional | Ask for data no older than this. Clamped to the product's own floor, so it can narrow the window but never force a refresh on every call. |

**Example request**

```bash
curl https://api.diraz.ae/v1/market/idx/stock-history \
  -H "Authorization: Bearer drz_live_…"
```

**Example response**

```json
{
  "data": {
    "code": "SSIA",
    "name": "Surya Semesta Internusa Tbk.",
    "from": "2026-05-24",
    "to": "2026-08-21",
    "count": 90,
    "unit": "shares",
    "value_basis": "close",
    "items": [
      { "date": "2026-08-21", "open": 1655, "high": 1690, "low": 1655, "close": 1670, "bid": 1670, "offer": 1675, "volume": 8596500, "value": 14356282500, "change": 15, "frequency": 2165, "listed_shares": 4705249440, "foreign_buy_shares": 757600, "foreign_buy_value": 1265192000, "foreign_sell_shares": 289600, "foreign_sell_value": 483632000, "net_foreign_shares": 468000, "net_foreign_value": 781560000 }
    ]
  },
  "meta": {
    "request_id": "req_7Q2fK4mZ",
    "as_of": "2026-08-20T16:30:00.000Z",
    "age_seconds": 1200,
    "next_update_at": "2026-08-22T16:30:00.000Z"
  }
}
```

## IDX Trading Info Daily

One stock's own trading card for today — price, volume, board, and remarks.

- Method: `GET`
- Path: `/v1/market/idx/trading-info-daily`

**Parameters**

| Name | Type | | Description |
|---|---|---|---|
| `code` | string | required | The stock's ticker. |
| `max_age` | integer (seconds) | optional | Ask for data no older than this. Clamped to the product's own floor, so it can narrow the window but never force a refresh on every call. |

**Example request**

```bash
curl https://api.diraz.ae/v1/market/idx/trading-info-daily \
  -H "Authorization: Bearer drz_live_…"
```

**Example response**

```json
{
  "data": {
    "code": "BBCA",
    "bid": 9900,
    "low": 9700,
    "high": 10000,
    "open": 9725,
    "close": 9900,
    "offer": 9925,
    "value": 100655092500,
    "change": 175,
    "volume": 10192200,
    "remarks": null,
    "previous": 9725,
    "bid_volume": 121900,
    "board_code": "RG",
    "frequency": 5678,
    "updated_at": "2026-08-20T16:30:00.000Z",
    "offer_volume": 55100,
    "listed_shares": 7786891760,
    "individual_index": 178.4
  },
  "meta": {
    "request_id": "req_7Q2fK4mZ",
    "as_of": "2026-08-20T16:30:00.000Z",
    "age_seconds": 1200,
    "next_update_at": "2026-08-22T16:30:00.000Z"
  }
}
```

## IDX Index Constituents

Every stock counted in an IDX index, and its own contribution to it.

- Method: `GET`
- Path: `/v1/market/idx/index-constituent`

**Parameters**

| Name | Type | | Description |
|---|---|---|---|
| `max_age` | integer (seconds) | optional | Ask for data no older than this. Clamped to the product's own floor, so it can narrow the window but never force a refresh on every call. |

**Example request**

```bash
curl https://api.diraz.ae/v1/market/idx/index-constituent \
  -H "Authorization: Bearer drz_live_…"
```

**Example response**

```json
{
  "data": {
    "items": [
      { "code": "BBCA", "date": "2026-08-20T00:00:00", "high": 10000, "low": 9700, "last": 9900, "group": "main", "change": 175, "previous": 9725, "change_percent": 1.8 }
    ]
  },
  "meta": {
    "request_id": "req_7Q2fK4mZ",
    "as_of": "2026-08-20T16:30:00.000Z",
    "age_seconds": 1200,
    "next_update_at": "2026-08-22T16:30:00.000Z"
  }
}
```

## IDX Derivatives

IDX's futures and options contracts — price, volume, and open interest on the whole board.

- Method: `GET`
- Path: `/v1/market/idx/derivatives`

**Parameters**

| Name | Type | | Description |
|---|---|---|---|
| `max_age` | integer (seconds) | optional | Ask for data no older than this. Clamped to the product's own floor, so it can narrow the window but never force a refresh on every call. |

**Example request**

```bash
curl https://api.diraz.ae/v1/market/idx/derivatives \
  -H "Authorization: Bearer drz_live_…"
```

**Example response**

```json
{
  "data": {
    "items": [
      { "code": "AMRTQ6", "traded_at": "2026-08-21T02:37:21Z", "open": 1420, "high": 0, "low": 0, "last": 0, "settle": 0, "change": 0, "volume": 0, "value": 0, "frequency": 0, "life_high": 0, "life_low": 0, "open_interest": 0, "bid": 140000, "offer": 1430 }
    ]
  },
  "meta": {
    "request_id": "req_7Q2fK4mZ",
    "as_of": "2026-08-20T16:30:00.000Z",
    "age_seconds": 1200,
    "next_update_at": "2026-08-22T16:30:00.000Z"
  }
}
```

## IDX Lendable Stock

Which stocks are available to borrow for short selling, and the fee.

- Method: `GET`
- Path: `/v1/market/idx/lendable-stock`

**Parameters**

| Name | Type | | Description |
|---|---|---|---|
| `max_age` | integer (seconds) | optional | Ask for data no older than this. Clamped to the product's own floor, so it can narrow the window but never force a refresh on every call. |

**Example request**

```bash
curl https://api.diraz.ae/v1/market/idx/lendable-stock \
  -H "Authorization: Bearer drz_live_…"
```

**Example response**

```json
{
  "data": {
    "items": [
      { "code": "BBCA", "volume": 500000, "regular_borrow_fee": 0.15, "front_end_borrow_fee": 0.25 }
    ]
  },
  "meta": {
    "request_id": "req_7Q2fK4mZ",
    "as_of": "2026-08-20T16:30:00.000Z",
    "age_seconds": 1200,
    "next_update_at": "2026-08-22T16:30:00.000Z"
  }
}
```

## IDX Bond Directory

The exchange's own bond and sukuk directory — ISIN, coupon, tenor, and outstanding amount for every listed instrument.

- Method: `GET`
- Path: `/v1/market/idx/bonds`

**Parameters**

| Name | Type | | Description |
|---|---|---|---|
| `max_age` | integer (seconds) | optional | Ask for data no older than this. Clamped to the product's own floor, so it can narrow the window but never force a refresh on every call. |

**Example request**

```bash
curl https://api.diraz.ae/v1/market/idx/bonds \
  -H "Authorization: Bearer drz_live_…"
```

**Example response**

```json
{
  "data": {
    "items": [
      {
        "isin": "IDA0000918A5",
        "name": "Obligasi Subordinasi Berkelanjutan I Tahap I Tahun 2018",
        "type": "Corporate Bond",
        "coupon": 8.5,
        "ticker": "SBBCA01ACN1",
        "nominal": 1000000,
        "currency": "IDR",
        "benchmark": "BI 7-Day Repo Rate",
        "maturity_date": "2025-07-05",
        "coupon_frequency": "Quarterly",
        "first_trading_date": "2018-07-06",
        "amount_outstanding": 435000000000
      }
    ]
  },
  "meta": {
    "request_id": "req_7Q2fK4mZ",
    "as_of": "2026-08-20T16:30:00.000Z",
    "age_seconds": 1200,
    "next_update_at": "2026-08-22T16:30:00.000Z"
  }
}
```

## IDX Bond Tickers

Every ticker on the bond board — resolve a code before requesting its detail.

- Method: `GET`
- Path: `/v1/market/idx/bond-tickers`

**Parameters**

| Name | Type | | Description |
|---|---|---|---|
| `max_age` | integer (seconds) | optional | Ask for data no older than this. Clamped to the product's own floor, so it can narrow the window but never force a refresh on every call. |

**Example request**

```bash
curl https://api.diraz.ae/v1/market/idx/bond-tickers \
  -H "Authorization: Bearer drz_live_…"
```

**Example response**

```json
{
  "data": {
    "items": ["SBBCA01ACN1", "SBBRI01ACN1", "FR0098"]
  },
  "meta": {
    "request_id": "req_7Q2fK4mZ",
    "as_of": "2026-08-20T16:30:00.000Z",
    "age_seconds": 1200,
    "next_update_at": "2026-08-22T16:30:00.000Z"
  }
}
```

## IDX Bond Daily Summary

The bond board's daily summary — last trade, best bid/ask, and traded volume for every instrument.

- Method: `GET`
- Path: `/v1/market/idx/bond-daily`

**Parameters**

| Name | Type | | Description |
|---|---|---|---|
| `max_age` | integer (seconds) | optional | Ask for data no older than this. Clamped to the product's own floor, so it can narrow the window but never force a refresh on every call. |

**Example request**

```bash
curl https://api.diraz.ae/v1/market/idx/bond-daily \
  -H "Authorization: Bearer drz_live_…"
```

**Example response**

```json
{
  "data": {
    "items": [
      {
        "instrument": "FR0098",
        "as_of": "2026-08-20T16:00:00",
        "low": 99.5,
        "high": 100.2,
        "last": 100.0,
        "value": 15000000000,
        "volume": 15000,
        "frequency": 42,
        "order_best_bid": 99.9,
        "order_best_ask": 100.1,
        "order_frequency": 12,
        "indicative_best_bid": 99.85,
        "indicative_best_ask": 100.15
      }
    ]
  },
  "meta": {
    "request_id": "req_7Q2fK4mZ",
    "as_of": "2026-08-20T16:30:00.000Z",
    "age_seconds": 1200,
    "next_update_at": "2026-08-22T16:30:00.000Z"
  }
}
```

## IDX Bond Trades

The bond market's trade tape — price, yield, and settlement date for recent trades.

- Method: `GET`
- Path: `/v1/market/idx/bond-trades`

**Parameters**

| Name | Type | | Description |
|---|---|---|---|
| `max_age` | integer (seconds) | optional | Ask for data no older than this. Clamped to the product's own floor, so it can narrow the window but never force a refresh on every call. |

**Example request**

```bash
curl https://api.diraz.ae/v1/market/idx/bond-trades \
  -H "Authorization: Bearer drz_live_…"
```

**Example response**

```json
{
  "data": {
    "items": [
      {
        "instrument": "FR0098",
        "price": 100.05,
        "value": 5000000000,
        "yield": 6.85,
        "status": "Matched",
        "volume": 5000,
        "traded_at": "2026-08-20T14:32:10",
        "settlement_date": "2026-08-22"
      }
    ]
  },
  "meta": {
    "request_id": "req_7Q2fK4mZ",
    "as_of": "2026-08-20T16:30:00.000Z",
    "age_seconds": 1200,
    "next_update_at": "2026-08-22T16:30:00.000Z"
  }
}
```

## IDX Bond Repo

The bond repo board — tenor, rates, and best bid/offer for every repo instrument.

- Method: `GET`
- Path: `/v1/market/idx/bond-repo`

**Parameters**

| Name | Type | | Description |
|---|---|---|---|
| `max_age` | integer (seconds) | optional | Ask for data no older than this. Clamped to the product's own floor, so it can narrow the window but never force a refresh on every call. |

**Example request**

```bash
curl https://api.diraz.ae/v1/market/idx/bond-repo \
  -H "Authorization: Bearer drz_live_…"
```

**Example response**

```json
{
  "data": {
    "items": [
      {
        "instrument": "FR0098-REPO",
        "as_of": "2026-08-20T16:00:00",
        "tenor": "7 hari",
        "value": 2000000000,
        "volume": 2000,
        "term_days": 7,
        "frequency": 5,
        "order_best_bid": 5.75,
        "order_best_offer": 5.85,
        "latest_repo_rate": 5.8,
        "lowest_repo_rate": 5.7,
        "highest_repo_rate": 5.9,
        "indicative_best_bid": 5.72,
        "indicative_best_offer": 5.88
      }
    ]
  },
  "meta": {
    "request_id": "req_7Q2fK4mZ",
    "as_of": "2026-08-20T16:30:00.000Z",
    "age_seconds": 1200,
    "next_update_at": "2026-08-22T16:30:00.000Z"
  }
}
```

## IDX Bond Index (INDOBeX)

The exchange's own bond index — composite, government, or corporate — value, change, and percent change.

- Method: `GET`
- Path: `/v1/market/idx/bond-index`

**Parameters**

| Name | Type | | Description |
|---|---|---|---|
| `max_age` | integer (seconds) | optional | Ask for data no older than this. Clamped to the product's own floor, so it can narrow the window but never force a refresh on every call. |
| `type` | string | optional | Which INDOBeX board: `composite`, `government`, or `corporate`. |

**Example request**

```bash
curl https://api.diraz.ae/v1/market/idx/bond-index \
  -H "Authorization: Bearer drz_live_…"
```

**Example response**

```json
{
  "data": {
    "items": [
      { "code": "INDOBeX Composite", "date": "2026-08-20", "value": 128.45, "change": 0.32, "change_percent": 0.25 }
    ]
  },
  "meta": {
    "request_id": "req_7Q2fK4mZ",
    "as_of": "2026-08-20T16:30:00.000Z",
    "age_seconds": 1200,
    "next_update_at": "2026-08-22T16:30:00.000Z"
  }
}
```

## IDX Government Bond Issuers

The government bond issuer directory — every issuer code and name.

- Method: `GET`
- Path: `/v1/market/idx/bond-issuers`

**Parameters**

| Name | Type | | Description |
|---|---|---|---|
| `max_age` | integer (seconds) | optional | Ask for data no older than this. Clamped to the product's own floor, so it can narrow the window but never force a refresh on every call. |

**Example request**

```bash
curl https://api.diraz.ae/v1/market/idx/bond-issuers \
  -H "Authorization: Bearer drz_live_…"
```

**Example response**

```json
{
  "data": {
    "items": [
      { "code": "FR", "name": "Fixed Rate Government Bond" }
    ]
  },
  "meta": {
    "request_id": "req_7Q2fK4mZ",
    "as_of": "2026-08-20T16:30:00.000Z",
    "age_seconds": 1200,
    "next_update_at": "2026-08-22T16:30:00.000Z"
  }
}
```

## IDX News

The exchange's own news and announcement feed — headlines, summaries, and images as IDX itself publishes them.

- Method: `GET`
- Path: `/v1/market/idx/news`

**Parameters**

| Name | Type | | Description |
|---|---|---|---|
| `max_age` | integer (seconds) | optional | Ask for data no older than this. Clamped to the product's own floor, so it can narrow the window but never force a refresh on every call. |

**Example request**

```bash
curl https://api.diraz.ae/v1/market/idx/news \
  -H "Authorization: Bearer drz_live_…"
```

**Example response**

```json
{
  "data": {
    "items": [
      {
        "id": 11692,
        "title": "Panggilan Rapat Umum Pemegang Saham Tahunan PT Bursa Efek Indonesia",
        "summary": "Pemberitahuan RUPS Tahunan.",
        "tags": ["RUPS"],
        "item_id": "11692",
        "locale": "id",
        "image_url": null,
        "path_base": null,
        "path_file": null,
        "is_headline": true,
        "published_at": "2026-06-12T08:00:00",
        "links": []
      }
    ]
  },
  "meta": {
    "request_id": "req_7Q2fK4mZ",
    "as_of": "2026-08-21T03:30:00.000Z",
    "age_seconds": 3600,
    "next_update_at": "2026-08-23T03:30:00.000Z"
  }
}
```

## IDX Announcements

Every listed company's official filings, as IDX publishes them — the general feed, not scoped to one stock.

- Method: `GET`
- Path: `/v1/market/idx/announcements`

**Parameters**

| Name | Type | | Description |
|---|---|---|---|
| `max_age` | integer (seconds) | optional | Ask for data no older than this. Clamped to the product's own floor, so it can narrow the window but never force a refresh on every call. |

**Example request**

```bash
curl https://api.diraz.ae/v1/market/idx/announcements \
  -H "Authorization: Bearer drz_live_…"
```

**Example response**

```json
{
  "data": {
    "items": [
      {
        "id": "20260802163712-045a/DIR/SP-MGU/VII/2026_id-id",
        "code": "FOLK",
        "type": "STOCK",
        "title": "Penyampaian Bukti Iklan Informasi Laporan Keuangan Interim",
        "announcement_no": "045a/DIR/SP-MGU/VII/2026",
        "published_at": "2026-08-02T16:37:12",
        "attachments": [
          { "url": "https://www.idx.co.id/StaticData/f0a450fdce_6f5321d463.pdf", "file_name": "f0a450fdce_6f5321d463.pdf" }
        ]
      }
    ]
  },
  "meta": {
    "request_id": "req_7Q2fK4mZ",
    "as_of": "2026-08-21T03:30:00.000Z",
    "age_seconds": 3600,
    "next_update_at": "2026-08-23T03:30:00.000Z"
  }
}
```

## IDX Company Announcements

One listed company's own filing history — the same feed as the general announcements, scoped to a single stock code.

- Method: `GET`
- Path: `/v1/market/idx/company-announcements`

**Parameters**

| Name | Type | | Description |
|---|---|---|---|
| `code` | string | required | A 4-letter IDX stock code. |
| `max_age` | integer (seconds) | optional | Ask for data no older than this. Clamped to the product's own floor, so it can narrow the window but never force a refresh on every call. |

**Example request**

```bash
curl https://api.diraz.ae/v1/market/idx/company-announcements \
  -H "Authorization: Bearer drz_live_…"
```

**Example response**

```json
{
  "data": {
    "code": "BBCA",
    "items": [
      {
        "id": "20260731175614-0069/CVG/2026_id-id",
        "code": "BBCA",
        "type": "STOCK",
        "title": "Perubahan dalam pengendalian baik langsung maupun tidak langsung terhadap Emiten",
        "form_id": "11000",
        "subject": null,
        "created_at": null,
        "announcement_no": "0069/CVG/2026",
        "published_at": "2026-07-31T17:56:14",
        "attachments": [
          { "url": "https://www.idx.co.id/StaticData/59c9d62180_96a02df66f.pdf", "file_name": "59c9d62180_96a02df66f.pdf" }
        ]
      }
    ]
  },
  "meta": {
    "request_id": "req_7Q2fK4mZ",
    "as_of": "2026-08-21T03:30:00.000Z",
    "age_seconds": 3600,
    "next_update_at": "2026-08-23T03:30:00.000Z"
  }
}
```

## IDX Press Releases

IDX's own press releases — the exchange speaking for itself, not a filing from a listed company.

- Method: `GET`
- Path: `/v1/market/idx/press-release`

**Parameters**

| Name | Type | | Description |
|---|---|---|---|
| `max_age` | integer (seconds) | optional | Ask for data no older than this. Clamped to the product's own floor, so it can narrow the window but never force a refresh on every call. |

**Example request**

```bash
curl https://api.diraz.ae/v1/market/idx/press-release \
  -H "Authorization: Bearer drz_live_…"
```

**Example response**

```json
{
  "data": {
    "items": [
      {
        "id": "pr-2026-08-01",
        "title": "IDX Catat Kinerja Perdagangan Semester I 2026",
        "locale": "id",
        "summary": "Ringkasan kinerja perdagangan bursa pada semester pertama.",
        "image_url": null,
        "published_at": "2026-08-01T09:00:00"
      }
    ]
  },
  "meta": {
    "request_id": "req_7Q2fK4mZ",
    "as_of": "2026-08-21T03:30:00.000Z",
    "age_seconds": 3600,
    "next_update_at": "2026-08-23T03:30:00.000Z"
  }
}
```

## IDX Market Activity Notices

Suspensions, relistings, or Unusual Market Activity notices — one type per call, straight from the exchange.

- Method: `GET`
- Path: `/v1/market/idx/market-activity`

**Parameters**

| Name | Type | | Description |
|---|---|---|---|
| `type` | string | required | `suspend`, `relisting`, or `uma`. |
| `max_age` | integer (seconds) | optional | Ask for data no older than this. Clamped to the product's own floor, so it can narrow the window but never force a refresh on every call. |

**Example request**

```bash
curl https://api.diraz.ae/v1/market/idx/market-activity \
  -H "Authorization: Bearer drz_live_…"
```

**Example response**

```json
{
  "data": {
    "type": "uma",
    "items": [
      {
        "title": "UMA atas Saham PT Solusi Environment Asia Tbk. (SOFA)",
        "uma_id": null,
        "status": null,
        "uma_date": "2026-06-11T00:00:00",
        "company_id": "SOFA",
        "attachment": "/Portals/0/StaticData/NewsAndAnnouncement/UMA/uma-sofa.pdf",
        "company_name": null,
        "announcement_no": null
      }
    ]
  },
  "meta": {
    "request_id": "req_7Q2fK4mZ",
    "as_of": "2026-08-21T03:30:00.000Z",
    "age_seconds": 3600,
    "next_update_at": "2026-08-23T03:30:00.000Z"
  }
}
```

## IDX Unusual Market Activity

The exchange's dedicated Unusual Market Activity feed — every recent notice, not filtered to one stock.

- Method: `GET`
- Path: `/v1/market/idx/uma`

**Parameters**

| Name | Type | | Description |
|---|---|---|---|
| `max_age` | integer (seconds) | optional | Ask for data no older than this. Clamped to the product's own floor, so it can narrow the window but never force a refresh on every call. |

**Example request**

```bash
curl https://api.diraz.ae/v1/market/idx/uma \
  -H "Authorization: Bearer drz_live_…"
```

**Example response**

```json
{
  "data": {
    "items": [
      {
        "id": "uma-2026-0611-sofa",
        "code": "SOFA",
        "date": "2026-06-11T00:00:00",
        "name": "PT Solusi Environment Asia Tbk.",
        "title": "UMA atas Saham PT Solusi Environment Asia Tbk. (SOFA)",
        "status": "active",
        "attachment": "/Portals/0/StaticData/NewsAndAnnouncement/UMA/uma-sofa.pdf",
        "announcement_no": null
      }
    ]
  },
  "meta": {
    "request_id": "req_7Q2fK4mZ",
    "as_of": "2026-08-21T03:30:00.000Z",
    "age_seconds": 3600,
    "next_update_at": "2026-08-23T03:30:00.000Z"
  }
}
```

## IDX Suspension History

The exchange's own record of trading suspensions, going back roughly three years by default.

- Method: `GET`
- Path: `/v1/market/idx/suspension`

**Parameters**

| Name | Type | | Description |
|---|---|---|---|
| `max_age` | integer (seconds) | optional | Ask for data no older than this. Clamped to the product's own floor, so it can narrow the window but never force a refresh on every call. |

**Example request**

```bash
curl https://api.diraz.ae/v1/market/idx/suspension \
  -H "Authorization: Bearer drz_live_…"
```

**Example response**

```json
{
  "data": {
    "items": [
      {
        "code": "SOFA",
        "date": "2026-06-11T00:00:00",
        "title": "Suspensi Perdagangan Saham PT Solusi Environment Asia Tbk.",
        "info_type": "SPT",
        "attachment": "/Portals/0/StaticData/NewsAndAnnouncement/SPT/sofa-suspend.pdf"
      }
    ]
  },
  "meta": {
    "request_id": "req_7Q2fK4mZ",
    "as_of": "2026-08-21T03:30:00.000Z",
    "age_seconds": 3600,
    "next_update_at": "2026-08-23T03:30:00.000Z"
  }
}
```

## IDX Sitemap

Every URL on idx.co.id, by section — useful for discovering what pages the exchange actually publishes.

- Method: `GET`
- Path: `/v1/market/idx/sitemap`

**Parameters**

| Name | Type | | Description |
|---|---|---|---|
| `max_age` | integer (seconds) | optional | Ask for data no older than this. Clamped to the product's own floor, so it can narrow the window but never force a refresh on every call. |

**Example request**

```bash
curl https://api.diraz.ae/v1/market/idx/sitemap \
  -H "Authorization: Bearer drz_live_…"
```

**Example response**

```json
{
  "data": {
    "note": "Menampilkan 7 URL di section \"idx-syariah\".",
    "urls": ["https://www.idx.co.id/id/idx-syariah/edukasi-pasar-modal-syariah"],
    "locale": "all",
    "total_urls": 232,
    "section_counts": { "data-pasar": 113, "berita": 11 }
  },
  "meta": {
    "request_id": "req_7Q2fK4mZ",
    "as_of": "2026-08-21T03:30:00.000Z",
    "age_seconds": 3600,
    "next_update_at": "2026-08-23T03:30:00.000Z"
  }
}
```

## IDX Structured Warrant Providers

Every structured-warrant provider registered on IDX, and the underlying they issue against.

- Method: `GET`
- Path: `/v1/market/idx/warrant-providers`

**Parameters**

| Name | Type | | Description |
|---|---|---|---|
| `max_age` | integer (seconds) | optional | Ask for data no older than this. Clamped to the product's own floor, so it can narrow the window but never force a refresh on every call. |

**Example request**

```bash
curl https://api.diraz.ae/v1/market/idx/warrant-providers \
  -H "Authorization: Bearer drz_live_…"
```

**Example response**

```json
{
  "data": {
    "items": [
      {
        "type": "Call",
        "int_row": 1,
        "kode_ab": "BBCA",
        "kode_sw": "BBCAKBA",
        "source": "KB Valbury",
        "last_trading_date": "2026-12-01",
        "first_trading_date": "2026-06-01"
      }
    ]
  },
  "meta": {
    "request_id": "req_7Q2fK4mZ",
    "as_of": "2026-08-21T03:30:00.000Z",
    "age_seconds": 3600,
    "next_update_at": "2026-08-23T03:30:00.000Z"
  }
}
```

## IDX Futures Contracts

Every futures contract code currently listed on the exchange.

- Method: `GET`
- Path: `/v1/market/idx/futures-contracts`

**Parameters**

| Name | Type | | Description |
|---|---|---|---|
| `max_age` | integer (seconds) | optional | Ask for data no older than this. Clamped to the product's own floor, so it can narrow the window but never force a refresh on every call. |

**Example request**

```bash
curl https://api.diraz.ae/v1/market/idx/futures-contracts \
  -H "Authorization: Bearer drz_live_…"
```

**Example response**

```json
{
  "data": {
    "items": ["AMRTQ6", "AMRTU6", "AMRTV6", "ANTMQ6"]
  },
  "meta": {
    "request_id": "req_7Q2fK4mZ",
    "as_of": "2026-08-21T03:30:00.000Z",
    "age_seconds": 3600,
    "next_update_at": "2026-08-23T03:30:00.000Z"
  }
}
```