Access ESG (Environmental, Social, Governance) rating data for companies, countries, sectors and ETFs.
The API uses Token Authentication. Include your token in the Authorization header on every request.
Authorization: Token <your_token>
To obtain a token, contact the administrator or use the login endpoint if available.
Retrieves a list of all available companies.
/api/companies/GET[
{
"symbol": "AAPL",
"name": "Apple Inc."
},
...
]
Retrieves ESG rating details for a specific company. Choose between AI-generated data (ai) or historical data (legacy).
/api/esg/<symbol>GETmodel (string): ai (default) or legacyyear (int): year of the datafrequency (string): report frequency (e.g. "Annual", "Quarterly")[
{
"e": 85.5,
"s": 78.2,
"g": 90.1,
"esg": 84.6,
"year": 2023,
"frequency": "Annual"
}
]
/api/countries/GET[
{
"country_code": "FR",
"country_descr": "France"
},
...
]
Retrieves average ESG statistics for a specific country.
/api/country/<symbol>GETmodel (string): ai (default) or legacyyear (int): year of the datafrequency (string): report frequency[
{
"symbol": "FR",
"name": "France",
"mean": 75.4,
"median": 76.2,
"year": 2023,
"frequency": "Annual"
}
]
/api/sectors/GET[
{"sector": "Technology"},
{"sector": "Finance"},
...
]
/api/sector/<symbol>GETmodel (string): ai (default) or legacyETF ratings are the holdings-weighted aggregation of the underlying companies' E/S/G/ESG scores, with independent re-weighting per pillar (holdings with a missing weight or score are excluded and the remaining weights are re-normalized to 100%). ETFs whose ESG coverage is below the reliability threshold are excluded from the results.
/api/etfs/GETmodel (string): legacy (default) or aimonth (string, YYYY-MM): holdings snapshot month. If omitted, the current/latest data is used.[
{
"symbol": "IWDA.AS",
"name": "iShares Core MSCI World UCITS ETF",
"exchange": "AS",
"score_e": 68.4,
"score_s": 61.2,
"score_g": 72.9,
"score_esg": 67.5,
"coverage_esg": 92.1,
"nb_holdings_total": 500,
"band_esg": "good"
},
...
]
Retrieves the weighted ESG rating for a specific ETF.
/api/etf/<symbol>GETmodel (string): legacy (default) or aimonth (string, YYYY-MM): holdings snapshot month. If omitted, the current/latest data is used.{
"symbol": "IWDA.AS",
"name": "iShares Core MSCI World UCITS ETF",
"exchange": "AS",
"score_e": 68.4,
"score_s": 61.2,
"score_g": 72.9,
"score_esg": 67.5,
"coverage_e": 92.1,
"coverage_s": 92.1,
"coverage_g": 92.1,
"coverage_esg": 92.1,
"nb_valid_esg": 480,
"nb_missing_esg": 20,
"nb_holdings_total": 500,
"band_esg": "good"
}
month selects a specific monthly holdings snapshot, the same way the
ETF dashboard lets you pick a past month. If a snapshot
doesn't exist for the requested month, the API returns an empty result rather than an error.
curl -X GET "https://api.investverte.com/api/esg/AAPL?year=2023" \
-H "Authorization: Token 1234567890abcdef"