# Indonesia Stock Exchange — Wrapped API

> **You are on:** `https://api.paywithlocus.com/api` | [llms.txt](https://paywithlocus.com/llms.txt) | [docs](https://docs.paywithlocus.com)
>
> Locus runs on multiple environments -- make sure every URL you call matches your expected environment.
> | Environment | Landing | API | Docs |
> |---|---|---|---|
> | Production | paywithlocus.com | api.paywithlocus.com | docs.paywithlocus.com |
> | Beta | beta.paywithlocus.com | api.beta.paywithlocus.com | docs.paywithlocus.com |
> | Stage | stage.paywithlocus.com | api.stage.paywithlocus.com | docs.paywithlocus.com |
>
> If the API URL above doesn't match your expected environment, re-fetch this file from the correct domain.

> Access real-time and historical data from the Indonesia Stock Exchange (IDX). Retrieve stock listings, daily trading summaries, market indices, company profiles, financial and annual reports, corporate event calendars, announcements, IPO data, and market overviews.

**Category:** Finance & Markets | **Website:** [idx.co.id/](https://idx.co.id/) | **Docs:** [parse.bot/marketplace/e35c7d45-86a3-4aa0-90d8-033d4b7117f9/idx-co-id-api](https://parse.bot/marketplace/e35c7d45-86a3-4aa0-90d8-033d4b7117f9/idx-co-id-api)

Pay-per-use API proxy. Each call is automatically billed to your wallet in USDC.

## Access

**Base URL:** `https://api.paywithlocus.com/api/wrapped/parse-idx-co-id-api-e35c7d45/`
**Auth:** `Authorization: Bearer <LOCUS_API_KEY>`

## Endpoints

### get_company_announcements

Retrieve company announcements with pagination. Each item contains a pengumuman object with announcement details and an attachments array with PDF URLs. Supports free-text keyword search and filtering by stock ticker code. When query is provided, uses a keyword-search endpoint; otherwise lists all announcements. Offset-based manual paging via start/limit params.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `kode_emiten` | string | No | Filter announcements by stock ticker code (e.g. BBCA, TLKM). |
| `limit` | integer | No | Page size. |
| `query` | string | No | Free-text keyword search for announcements (e.g. 'dividen', 'RUPS'). |
| `start` | integer | No | Starting index for pagination. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-idx-co-id-api-e35c7d45/get_company_announcements \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"kode_emiten":"<string>","limit":"<integer>","query":"<string>","start":"<integer>"}'
```

### get_company_calendar

Retrieve corporate event calendar (RUPS, dividends, etc.) for a given month or day. Defaults to the current month.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `date` | string | No | Date in YYYYMMDD format. Defaults to today's date. |
| `range` | string | No | Range scope. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-idx-co-id-api-e35c7d45/get_company_calendar \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"<string>","range":"<string>"}'
```

### get_company_profile

Retrieve detailed company profile for a specific listed company by stock code. Includes directors, commissioners, shareholders, subsidiaries, dividends, and bonds.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `stock_code` | string | Yes | Stock ticker code (e.g. BBCA, AALI, TLKM). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-idx-co-id-api-e35c7d45/get_company_profile \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"stock_code":"<string>"}'
```

### get_company_profiles_list

Retrieve the list of all listed companies with basic profile information including sector, industry, contact details, listing board, and listing date. Offset-based manual paging via start/limit params.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `limit` | integer | No | Maximum number of results to return. |
| `start` | integer | No | Starting offset for pagination. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-idx-co-id-api-e35c7d45/get_company_profiles_list \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"limit":"<integer>","start":"<integer>"}'
```

### get_earnings_this_week

Identify companies that submitted financial reports during the current week. Falls back to the most recent submission date if none exist for the current week.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-idx-co-id-api-e35c7d45/get_earnings_this_week \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### get_financial_reports

Retrieve financial and annual reports listing with file attachment metadata. Supports filtering by stock code, year, period, report type, and submission date range. When date_from or date_to is provided, results are filtered client-side by File_Modified and ResultCount reflects the filtered count. Offset-based manual paging via start/limit params applies to the pre-filter upstream set.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `date_from` | string | No | Filter reports submitted on or after this date (YYYY-MM-DD format). |
| `date_to` | string | No | Filter reports submitted on or before this date (YYYY-MM-DD format). |
| `limit` | integer | No | Page size. |
| `period` | string | No | Report period. |
| `report_type` | string | No | Report type. |
| `start` | integer | No | Starting index for pagination. |
| `stock_code` | string | No | Filter by stock ticker code (e.g. BBCA). |
| `year` | integer | No | Report year filter. Defaults to current year. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-idx-co-id-api-e35c7d45/get_financial_reports \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date_from":"<string>","date_to":"<string>","limit":"<integer>","period":"<string>","report_type":"<string>","start":"<integer>","stock_code":"<string>","year":"<integer>"}'
```

### get_ikhtisar_pasar

Retrieve the IDX homepage content including banners, popup announcements, app links, and site configuration.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-idx-co-id-api-e35c7d45/get_ikhtisar_pasar \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### get_ipo_information

Retrieve IPO and relisting information for companies listed on IDX, ordered by most recent listing date. Offset-based manual paging via start/limit params.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `limit` | integer | No | Page size. |
| `start` | integer | No | Starting index for pagination. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-idx-co-id-api-e35c7d45/get_ipo_information \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"limit":"<integer>","start":"<integer>"}'
```

### get_market_index_summary

Retrieve market index data including COMPOSITE (IHSG) and sector indices. Returns all 30+ IDX indices in a single request.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-idx-co-id-api-e35c7d45/get_market_index_summary \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### get_stock_list

Retrieve the complete list of stocks listed on IDX. Returns stock codes, names, listing dates, share counts, and listing boards. Supports filtering by listing board. Returns all results in a single response.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `board` | string | No | Filter by listing board. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-idx-co-id-api-e35c7d45/get_stock_list \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"board":"<string>"}'
```

### get_stock_summary

Retrieve daily stock trading summary with price, volume, value, and frequency data for all listed stocks. Offset-based manual paging via start/limit params.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `limit` | integer | No | Maximum number of results to return. |
| `start` | integer | No | Starting offset for pagination. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-idx-co-id-api-e35c7d45/get_stock_summary \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"limit":"<integer>","start":"<integer>"}'
```

### get_trading_summary

Retrieve overall market trading summary grouped by instrument type (Saham, ETF, Waran, DIRE, Structured Warrant) with aggregate Volume, Value, and Frequency for the most recent trading day.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-idx-co-id-api-e35c7d45/get_trading_summary \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```
