Next free-source hunt
We check for new free data every weekday.
Datasets / Energy
api.ember-energy.org/

Ember Data API

Freeauth: free API keyCC-BY-4.0#energy#historical-data#time-series#macro-economic#risk✓ verified Nov 1, 2026

Ember Data API

Ember exposes yearly and monthly electricity generation, demand, power-sector emissions, carbon intensity and monthly installed capacity through a JSON REST API. Responses include geography and series identifiers, dates, units, values and query statistics; a free API key is required.

Required Attribution:

Ember requires citation as the data source; its example is "Monthly electricity generation data, Ember".

Coverage

Yearly electricity data covers more than 200 geographies and extends from 2000, while the current monthly dataset page describes 88 geographical areas. Ember updates yearly data twice monthly and says recent monthly or annual values can be estimated, provisional and revised.

Verdict

This is a harmonized electricity supply, demand and emissions signal for tracking power-system mix and transition trends across countries. Monthly and yearly resolutions suit structural comparisons rather than intraday monitoring. Recent values may combine annual and monthly sources, include estimates, and change after source revisions. Preserve series, units and retrieval dates because geography coverage and available periods differ by endpoint.

Get the free weekly email

Free weekly email of newly verified free data. Unsubscribe by emailing us.

Use in your agent

Load Ember yearly generation into pandas and Parquet. Checked against the provider's documentation on Nov 1, 2026.

Raw skill file (/skills/ember-data-api.md)Also in our MCP server: call get_ingestion_skill with {"slug": "ember-data-api"}.

Access

  • Request a free API key from Ember's API signup page.
  • Set the key in the EMBER_API_KEY environment variable; do not place it in source code.

Request

bash
curl 'https://api.ember-energy.org/v1/electricity-generation/yearly?entity_code=BRA&is_aggregate_series=false&start_date=2000&api_key=YOUR_API_KEY'

Format

JSON response with generation observations and metadata for geography, fuel or aggregate series, year, unit and value, plus query statistics.

Load into pandas and Parquet

Needs Python 3 with requests, pandas and pyarrow.

python
"""Brazil yearly Ember electricity generation -> pandas -> Parquet."""
import os
import requests
import pandas as pd

URL = "https://api.ember-energy.org/v1/electricity-generation/yearly"
params = {
    "entity_code": "BRA",
    "is_aggregate_series": "false",
    "start_date": 2000,
    "api_key": os.environ["EMBER_API_KEY"],
}
response = requests.get(URL, params=params, timeout=60)
response.raise_for_status()
payload = response.json()
data = payload.get("data", payload)
df = pd.json_normalize(data)
df.to_parquet("ember_brazil_yearly_generation.parquet", index=False)
print(len(df), "generation observations")

Not run: it needs a free API key.

Limits

  • Rate limit: No rate limiting restrictions at present.
  • Every dataset query requires an API key.
  • Endpoint periods and geography coverage vary; use the options endpoints to inspect available values and dates.

Quirks

  • The api_key is a query parameter, so avoid logging complete request URLs.
  • Yearly and monthly endpoints expose similar parameter names, but the underlying series and available ranges differ.
  • Recent annual values can be derived from shorter-lag monthly data and later revised.

Terms and attribution

  • API data is CC BY 4.0 and Ember must be cited as the source.
  • The licence permits personal and commercial use and prohibits adding further legal or technical restrictions.

Sources

Information and education only. Not financial, investment, legal or tax advice. Listings can be inaccurate, incomplete or out of date and are provided "as is". Free tiers, limits and licenses belong to each provider and can change, so check the provider's own terms before you rely on them. Terms & Disclaimer