High-performance API for filtering and sorting IDX-listed companies. Supports both structured SQL-like queries (where, order_by) and natural language queries (q). Returns a paginated list of companies.
Query modes (mutually exclusive — q overrides all others):
q: Natural language, e.g. top 10 tech companies by revenue in 2023where + order_by: SQL-like structured querySmart FY Handling
To account for reporting lags, ‘latest year’ queries made between January and April default to the previous audited year (e.g. a query in early 2026 uses 2024 data).
Syntax and Operators
Operators: =, !=, >, >=, <, <=, like, in
Logic: combine conditions with and and or
String values: use single or double quotes — sector = 'Technology'
Lists (for in): tags in ['blue-chip', 'dividend']
Yearly and Forecast Data
Access historical or forecast data using bracket notation: field[YYYY]
Examples: revenue[2023] > 100000000000 or forecast_eps_growth[2025] > 0.15
Arithmetic Expressions
Perform calculations within your query on both sides of a condition.
Examples: revenue[2024] / total_assets[2024] > 0.5 or revenue[2024] > revenue[2023] * 1.2
Available Fields
Direct Fields (Top-level columns)
How to Use: Query these fields directly using standard operators (=, !=, >, <, LIKE, IN). String comparisons are case-insensitive.
Examples
where=market_cap > 500000000000000where=company_name like '%energi%'where=sector = 'Financials' and listing_date > '2005-01-01'Array Fields
How to Use: Query using the in operator to check if any of the provided values exist in the array.
Examples
where=indices in ['LQ45', 'IDX30']where=tags in ['52-w-high', 'public-float-under-25']in operator.in operator.JSON Object Fields (Most Recent Data)
How to Use: Query as if they were direct fields — the parser automatically extracts the value from the underlying JSON.
Examples
where=pe_ttm < 15 and roe_ttm > 0.1where=last_close_price < all_time_high_pricewhere=ytd_low_date > '2025-03-01'Yearly JSON Fields (Historical & Forecast Data)
How to Use: Must use bracket notation field[YYYY] to access data for a specific year. Supports all numeric operators, field-to-field comparisons, and arithmetic expressions.
Examples
where=revenue[2023] > earnings[2023] * 5where=roe[2023] > 0.15 and roe[2022] > 0.15where=pe[2024] < pe_peer_avg[2024]eps[2024].eps_growth[2024].total_dividend[2024].total_yield[2024].earnings[2024].allowance_for_loans[2024]. (banking)capital_expenditure[2024].cash_and_equivalents[2024].cash_inflow[2024].cash_only[2024].cash_outflow[2024].core_capital_tier1[2024]. (banking)cost_of_revenue[2024].credit_rwa[2024]. (banking)current_account[2024]. (banking)current_assets[2024].current_liabilities[2024].earnings_before_tax[2024].ebit[2024].ebitda[2024].end_cash_position[2024].financing_cash_flow[2024].fixed_assets[2024].free_cash_flow[2024].gross_loan[2024]. (banking)gross_profit[2024].high_quality_liquid_asset[2024]. (banking)interest_expense[2024].interest_expense_non_operating[2024].interest_income[2024].inventories[2024].investing_cash_flow[2024].market_rwa[2024]. (banking)net_cash_flow[2024].net_interest_income[2024]. (banking)net_loan[2024]. (banking)net_premium_income[2024]. (insurance)non_current_liabilities[2024].non_interest_bearing_liabilities[2024]. (banking)non_interest_income[2024]. (banking)non_loan_assets[2024]. (banking)non_loan_earning_assets[2024]. (banking)non_loan_non_earning_assets[2024]. (banking)non_operating_income_or_loss[2024].operating_cash_flow[2024].operating_expense[2024].operating_pnl[2024].operational_rwa[2024]. (banking)other_interest_bearing_liabilities[2024]. (banking)outstanding_shares[2024].prepaid_assets[2024].premium_expense[2024]. (insurance)premium_income[2024]. (insurance)provision[2024].realized_capital_goods_investment[2024].retained_earnings[2024].revenue[2024].savings_account[2024]. (banking)supplementary_capital_tier2[2024]. (banking)tax[2024].time_deposit[2024]. (banking)total_assets[2024].total_capital[2024]. (banking)total_cash_and_due_from_banks[2024]. (banking)total_debt[2024].total_deposit[2024]. (banking)total_equity[2024].total_liabilities[2024].total_risk_weighted_asset[2024]. (banking)special_mention_loan[2024]. (banking)non_performing_loan[2024]. (banking)restructured_loan_current[2024]. (banking)forecast_eps_growth[2025].forecast_revenue_growth[2025].forecast_eps_estimate[2025].forecast_revenue_estimate[2025].pe[2024].pb[2024].ps[2024].pcf[2024].peg[2024].enterprise_to_ebitda[2024].enterprise_to_revenue[2024].pb_peer_avg[2024].pe_peer_avg[2024].ps_peer_avg[2024].debt_to_asset_ratio[2024].debt_to_equity_ratio[2024].cash_flow_to_debt_ratio[2024].interest_coverage_ratio[2024].current_ratio[2024].operating_cash_flow_margin[2024].fixed_asset_turnover[2024].total_asset_turnover[2024].roa[2024].roe[2024].net_profit_margin[2024].gross_profit_margin[2024].operating_profit_margin[2024].capital_adequacy_ratio[2024]. (banking)casa_ratio[2024]. (banking)leverage_ratio[2024]. (banking)loan_to_deposit_ratio[2024]. (banking)liquidity_coverage_ratio[2024]. (banking)efficiency_ratio[2024].net_interest_margin[2024]. (banking)cost_to_income_ratio[2024].Quarterly Financial Data
How to Use: Must use bracket notation field[Qi-YYYY] to access data for a specific quarter.
Examples
where=revenue_q[Q1-2024] > 1000000000where=earnings_q[Q4-2023] > earnings_q[Q3-2023]revenue_q[Q1-2024].earnings_q[Q1-2024].net_loan_q[Q1-2024]. (banking)gross_profit_q[Q1-2024].time_deposit_q[Q1-2024]. (banking)operating_pnl_q[Q1-2024].total_deposit_q[Q1-2024]. (banking)ebit_q[Q1-2024].ebitda_q[Q1-2024].earnings_before_tax_q[Q1-2024].tax_q[Q1-2024].cost_of_revenue_q[Q1-2024].current_account_q[Q1-2024]. (banking)interest_income_q[Q1-2024]. (banking)premium_expense_q[Q1-2024]. (insurance)savings_account_q[Q1-2024]. (banking)interest_expense_q[Q1-2024].operating_expense_q[Q1-2024].non_operating_income_or_loss_q[Q1-2024].interest_expense_non_operating_q[Q1-2024].non_interest_bearing_liabilities_q[Q1-2024]. (banking)realized_capital_goods_investment_q[Q1-2024].other_interest_bearing_liabilities_q[Q1-2024]. (banking)total_assets_q[Q1-2024].current_assets_q[Q1-2024].total_liabilities_q[Q1-2024].net_premium_income_q[Q1-2024]. (insurance)allowance_for_loans_q[Q1-2024]. (banking)current_liabilities_q[Q1-2024].non_current_liabilities_q[Q1-2024].total_equity_q[Q1-2024].total_debt_q[Q1-2024].cash_only_q[Q1-2024].provision_q[Q1-2024].gross_loan_q[Q1-2024]. (banking)total_cash_and_due_from_banks_q[Q1-2024]. (banking)operating_cash_flow_q[Q1-2024].investing_cash_flow_q[Q1-2024].financing_cash_flow_q[Q1-2024].net_interest_income_q[Q1-2024]. (banking)non_interest_income_q[Q1-2024]. (banking)free_cash_flow_q[Q1-2024].premium_income_q[Q1-2024]. (insurance)capital_expenditure_q[Q1-2024].JSON List Fields
How to Use: The query checks if any object in the list matches the condition. Use = or like for strings, numeric operators for numbers.
Examples
where=major_shareholders_name like 'PT%' and major_shareholders_share_percentage > 0.1where=key_executives_name = 'Prajogo Pangestu'like operator.like operator.like operator.API key passed directly in the Authorization header (without Bearer prefix).
SQL-like conditions for advanced filtering. Ignored if q is present. Supports operators =, !=, >, >=, <, <=, like, in combined with and/or. Use bracket notation for yearly fields: revenue[2024] > 1000000000000. Supports arithmetic on both sides: revenue[2024] / total_assets[2024] > 0.5.
A natural language query (e.g. top 10 tech companies by revenue in 2023). When q is provided, all other query parameters (where, order_by, etc.) are ignored as the LLM will generate them.
Field to sort results by. Use - prefix for descending order (e.g. -market_cap). Supports arithmetic expressions (e.g. -(earnings[2024]/earnings[2023])). Ignored if q is present.
Sort in descending order. Ignored if q is present.
Maximum number of results to return. Max: 200. Ignored if q is present.
Number of results to skip for pagination. Ignored if q is present.
If true, the response includes a query_values object showing the interpreted year and country extracted from the query.
Paginated list of companies matching the query.