# Indonesia Stock Exchange (IDX) API
> Live data for the Indonesia Stock Exchange (IDX / Bursa Efek Indonesia, the Jakarta market) with no key: the live quote for one or more stocks by ticker (price, change, open/high/low, volume, market cap, P/E, sector, in rupiah, with the company name), a ranked market screener (top gainers, losers, most active, or largest by market cap), and the live value of the Indonesian indices (IDX Composite / Jakarta Composite, LQ45).

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/idx-api/..."
```

## Pricing
- **Free** (Free) — 16,000 calls/Mo, 2 req/s
- **Basic** ($18/Mo) — 325,000 calls/Mo, 10 req/s
- **Pro** ($48/Mo) — 1,720,000 calls/Mo, 20 req/s
- **Scale** ($113/Mo) — 8,650,000 calls/Mo, 50 req/s

## Endpoints

### Quotes

#### `GET /v1/quote` — Live quote for one or more IDX stocks

**Parameters:**
- `codes` (query, required, string) — IDX ticker(s), comma-separated up to 20 Example: `BBCA,TLKM`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/idx-api/v1/quote?codes=BBCA%2CTLKM"
```

**Response:**
```json
{
    "data": {
        "note": "The live quote for one or more Indonesian (IDX) stocks — price, change, open/high/low, volume, market cap, P/E and sector (in rupiah), with the company name. Pass codes (the IDX ticker, comma-separate up to 20, e.g. BBCA,TLKM).",
        "count": 2,
        "quotes": [
            {
                "low": 6100,
                "high": 6175,
                "open": 6100,
                "price": 6175,
                "change": 250,
                "sector": "Finance",
                "ticker": "BBCA",
                "volume": 14628000,
                "company": "PT Bank Central Asia Tbk",
                "currency": "IDR",
                "pe_ratio": 13.09,
                "market_cap": 730404652734375,
                "change_percent": 4.22
            },
            {
                "low": 2890,
                "high": 2910,
                "open": 2900,
                "price": 2910,
                "change": 50,
                "sector": "Communications",
                "ticker": "TLKM",
                "volume": 4155800,
                "company": "PT Telkom Indonesia (Persero) Tbk Class B",
                "currency": "IDR",
                "pe_ratio": 17.63,
                "market_cap": 283317945627860,
                "change_percent": 1.75
            }
        ],
        "source": "Indonesia Stock Exchange / IDX (TradingView)"
    },
    "meta": {
        "timestamp": "2026-06-15T02:10:44.495Z",
        "request_id": "406763e7-
…(truncated, see openapi.json for full schema)
```

### Screener

#### `GET /v1/screener` — Ranked market screener

**Parameters:**
- `by` (query, optional, string) — Ranking: gainers, losers, active, marketcap Example: `gainers`
- `limit` (query, optional, string) — Results 1-100 Example: `20`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/idx-api/v1/screener?by=gainers&limit=20"
```

**Response:**
```json
{
    "data": {
        "by": "gainers",
        "note": "A ranked screener of the Indonesian (IDX) market — the top stocks by your chosen ranking. Pass by (gainers, losers, active, or marketcap; default marketcap) and limit (1-100, default 20). Only real stocks above a market-cap floor are ranked.",
        "count": 20,
        "source": "Indonesia Stock Exchange / IDX (TradingView)",
        "results": [
            {
                "price": 3770,
                "change": 700,
                "sector": "Commercial Services",
                "ticker": "FORU",
                "volume": 11032500,
                "company": "PT Fortune Indonesia, Tbk",
                "currency": "IDR",
                "market_cap": 1753894476318,
                "change_percent": 22.8
            },
            {
                "price": 1200,
                "change": 195,
                "sector": "Producer Manufacturing",
                "ticker": "BUKK",
                "volume": 182100,
                "company": "PT Bukaka Teknik Utama Tbk",
                "currency": "IDR",
                "market_cap": 2653654163818,
                "change_percent": 19.4
            },
            {
                "price": 1730,
                "change": 280,
                "sector": "Communications",
                "ticker": "DATA",
                "volume": 225900,
                "company": "PT Remala Abadi Tbk",
                "currency": "IDR",
                "market_cap": 1993750000000
…(truncated, see openapi.json for full schema)
```

### Indices

#### `GET /v1/index` — Live value of an Indonesian index

**Parameters:**
- `name` (query, optional, string) — COMPOSITE or LQ45 Example: `COMPOSITE`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/idx-api/v1/index?name=COMPOSITE"
```

**Response:**
```json
{
    "data": {
        "low": 6118.076,
        "high": 6156.363,
        "name": "IDX Composite Index",
        "note": "The live value of an Indonesian stock index — current level, change, and the day's open/high/low. Pass name (COMPOSITE for the IDX Composite / Jakarta Composite, or LQ45; default COMPOSITE).",
        "open": 6118.725,
        "index": "COMPOSITE",
        "value": 6156.245,
        "change": 148.58899999999994,
        "source": "Indonesia Stock Exchange / IDX (TradingView)",
        "change_percent": 2.47
    },
    "meta": {
        "timestamp": "2026-06-15T02:10:44.953Z",
        "request_id": "50df3ed8-e004-44ca-8843-9521d9274993"
    },
    "status": "ok",
    "message": "Index retrieved successfully",
    "success": true
}
```

### Meta

#### `GET /v1/meta` — Service metadata & endpoint catalog

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/idx-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "sample": {
            "idx_composite": 6156.245
        },
        "source": "TradingView public screener (scanner.tradingview.com/indonesia/scan), keyless",
        "indexes": [
            "COMPOSITE",
            "LQ45"
        ],
        "screens": [
            "gainers",
            "losers",
            "active",
            "marketcap"
        ],
        "service": "idx-api",
        "endpoints": {
            "GET /v1/meta": "This document.",
            "GET /v1/index": "Live value of an Indonesian index (name).",
            "GET /v1/quote": "Live quote for one or more stocks (codes).",
            "GET /v1/screener": "Ranked market screener (by, limit)."
        },
        "description": "Live data for the Indonesia Stock Exchange (IDX / Bursa Efek Indonesia, the Jakarta market) with no key: the live quote for one or more stocks by ticker (price, change, open/high/low, volume, market cap, P/E, sector, in rupiah, with the company name), a ranked market screener (top gainers, losers, most active, or largest by market cap), and the live value of the Indonesian indices (IDX Composite / Jakarta Composite, LQ45). The Indonesia-equities / Jakarta-index / screener layer for trading dashboards and research. Distinct from other exchange readers — the IDX market with a built-in screener. Live, short cache only.",
        "upstream_status": "ok"
    },
    "meta": {
        "timestamp": "2026-06-15T02:10:45.041Z",
        "request_id": "6a4bf280-85
…(truncated, see openapi.json for full schema)
```


---
Marketplace page: https://www.oanor.com/api/idx-api
OpenAPI spec: https://www.oanor.com/api/idx-api/openapi.json
