Skip to main content

Specialized Providers API Reference

Three routes query one specialised source each. Every route accepts refresh=true to bypass the cache.


GET /insider-transactions/{ticker}​

Form 4 insider transactions filed with the US SEC (EDGAR). Cached 12 hours.

ParameterTypeDefaultDescription
tickerstring—A share that files with the SEC (e.g. AAPL)
limitinteger20Transactions returned
refreshbooleanfalseAsk EDGAR again
{
"ticker": "AAPL",
"cik": "0000320193",
"company_name": "Apple Inc.",
"transactions": [
{
"filing_date": "2026-10-02",
"insider_name": "COOK TIMOTHY D",
"insider_title": "Chief Executive Officer",
"transaction_date": "2026-10-01",
"transaction_type": "Sell",
"transaction_code": "S",
"shares": 50000,
"price_per_share": 226.1,
"total_value": 11305000.0,
"shares_owned_after": 3280000,
"sec_filing_url": "https://www.sec.gov/Archives/edgar/data/..."
}
],
"total_count": 1,
"source": "SEC EDGAR"
}

transaction_type is the reading of the Form 4 code (P Buy, S Sell, A Award, M Option Exercise, G Gift, F Tax Withholding…). Set SEC_EDGAR_EMAIL to your own address: the SEC requires a contact in the User-Agent of automated clients. Values are illustrative.


GET /etf/{isin}/details​

UCITS ETF data from JustETF. Cached 24 hours. An ISIN known as something other than an ETF is refused.

{
"isin": "IE00B4L5Y983",
"name": "iShares Core MSCI World UCITS ETF USD (Acc)",
"ticker": "EUNL",
"net_expense_ratio": "0.0020",
"total_net_assets": "...",
"domicile": "Ireland",
"replication_method": "...",
"distribution_policy": "Accumulating",
"index_tracked": "MSCI World",
"inception_date": "2009-09-25",
"nb_holdings": 1400,
"performance": { "...": "..." },
"top_holdings": [ { "...": "..." } ],
"allocation": { "...": "..." },
"provider_url": "https://www.justetf.com/..."
}

The answer is not written to the etf_details and etf_holdings tables.


GET /index/{index_name}/constituents​

Members of an index, read from Wikipedia. Cached 7 days.

index_name is SP500, CAC40, NASDAQ100 or DAX (case-insensitive). Another name answers 400.

{
"index_name": "CAC40",
"constituents": [
{ "ticker": "AIR.PA", "isin": "NL0000235190", "name": "Airbus", "sector": "Industrie", "sub_sector": null, "weight": null, "country": null, "cik": null }
],
"total_count": 40,
"source_url": "https://fr.wikipedia.org/wiki/CAC_40",
"source": "Wikipedia"
}