{"name":"GridHub","description":"Real-time and historical electricity market data — demand, generation mix, wholesale prices, carbon intensity, and interconnector flows — across 25 grids in the US, UK, Australia, and continental Europe. Sourced from EIA, NESO, Elexon, AEMO, and ENTSO-E.","summary":"Real-time and historical electricity market data across 25 grids (US, UK, Australia, Europe). Demand, generation mix, wholesale prices, carbon intensity, interconnector flows, installed capacity. Free API key (500 requests/day, instant email signup) or x402 pay-per-call on Base ($0.001–$0.02), plus a free ?sample=true mode on every endpoint. MCP server for AI agents at https://api.grid-hub.app/mcp.","contact":"jalcodev@gmail.com","url":"https://grid-hub.app","x402_version":2,"x402_versions_supported":[1,2],"network":"base","payment_currency":"USDC","payment_chain":"eip155:8453","pay_to":"0x7ca97aE70E38736a94eEa00427D50846Bab978DD","facilitator":"https://api.cdp.coinbase.com/platform/v2/x402","facilitator_fallback":"https://x402.dexter.cash","openapi_spec":"https://api.grid-hub.app/openapi.json","x402_manifest":"https://api.grid-hub.app/.well-known/x402.json","llms_txt":"https://api.grid-hub.app/llms.txt","mcp":{"endpoint":"https://api.grid-hub.app/mcp","transport":"streamable-http","protocol_versions":["2026-07-28","2025-11-25","2025-06-18","2025-03-26"],"auth":"Optional. Authorization: Bearer <ghk_key> for full data; without it tools run in free sample mode.","tools":["list_zones","get_status","get_latest","get_zone_brief","get_history","get_map_snapshot"]},"free_tier":{"signup":"https://api.grid-hub.app/v1/keys/signup","method":"POST {\"email\": \"...\"}","daily_quota":500,"docs":"https://grid-hub.app/developers#free-key"},"data_sources":["EIA","ENTSO-E","NESO","Elexon","AEMO"],"zones_covered":25,"free_services":5,"paid_services":9,"updated":"2026-08-28","services":[{"name":"List all covered zones","endpoint":"https://api.grid-hub.app/v1/zones","method":"GET","price_usdc":0,"paid":false,"category":"metadata","description":"Coverage list with per-zone licence and attribution info.","params":{},"example_request":"GET https://api.grid-hub.app/v1/zones","example_response_keys":["zones"]},{"name":"Ingestion freshness per source/zone","endpoint":"https://api.grid-hub.app/v1/status","method":"GET","price_usdc":0,"paid":false,"category":"metadata","description":"Ingestion freshness per source/zone","params":{},"example_request":"GET https://api.grid-hub.app/v1/status","example_response_keys":["now","sources"]},{"name":"Zone boundary polygons","endpoint":"https://api.grid-hub.app/v1/geo/zones","method":"GET","price_usdc":0,"paid":false,"category":"geo","description":"GeoJSON FeatureCollection of covered zone boundaries.","params":{},"example_request":"GET https://api.grid-hub.app/v1/geo/zones","example_response_keys":[]},{"name":"Interconnector lines","endpoint":"https://api.grid-hub.app/v1/geo/interconnectors","method":"GET","price_usdc":0,"paid":false,"category":"geo","description":"GeoJSON LineStrings for tracked interconnector pairs, with from/to zone ids.","params":{},"example_request":"GET https://api.grid-hub.app/v1/geo/interconnectors","example_response_keys":[]},{"name":"Power plants ≥250MW","endpoint":"https://api.grid-hub.app/v1/geo/plants","method":"GET","price_usdc":0,"paid":false,"category":"geo","description":"Power plants ≥250MW","params":{"zone":{"type":"string","required":false,"in":"query"},"fuel":{"type":"string","required":false,"in":"query"},"min_mw":{"type":"number","required":false,"in":"query"}},"example_request":"GET https://api.grid-hub.app/v1/geo/plants","example_response_keys":[]},{"name":"Full current-state snapshot","endpoint":"https://api.grid-hub.app/v1/map/snapshot","method":"GET","price_usdc":0.002,"paid":true,"category":"data/electricity","description":"Every covered zone's latest metrics in one call.","params":{},"example_request":"GET https://api.grid-hub.app/v1/map/snapshot","example_response_keys":["generated","zones"]},{"name":"Zone brief — current state with historical context","endpoint":"https://api.grid-hub.app/v1/brief/{zone}","method":"GET","price_usdc":0.02,"paid":true,"category":"composite/electricity","description":"Composite snapshot for one zone: current price, demand, carbon intensity and generation mix, each ranked against that zone's own trailing 30-day distribution (percentile, median, min/max), plus 24h trend direction and a plain-language summary. One call replaces the four-to-five separate requests otherwise needed, and returns the interpretation rather than raw series. Context blocks are omitted for metrics a zone does not publish; each reports its actual data window and sample count.","params":{"zone":{"type":"string","required":true,"in":"path","description":"Zone identifier — see GET /v1/zones for the full list.","enum":["US-CAISO","US-ERCOT","US-PJM","US-MISO","US-NYISO","US-ISONE","US-SPP","GB","AU-NSW","AU-QLD","AU-VIC","AU-SA","AU-TAS","DE-LU","FR","ES","IT-NO","NL","BE","PL","SE-3","NO-2","DK-1","AT","CH"]}},"example_request":"GET https://api.grid-hub.app/v1/brief/GB","example_response_keys":["zone","zone_name","as_of","current","context","context_window_requested_days","trend_24h","generation_mix","generation_mix_unit","summary","coverage_note","attribution","license"]},{"name":"Latest snapshot for one zone","endpoint":"https://api.grid-hub.app/v1/latest/{zone}","method":"GET","price_usdc":0.001,"paid":true,"category":"data/electricity","description":"Most recent demand, price, generation mix, carbon intensity, and interchange for a single zone.","params":{"zone":{"type":"string","required":true,"in":"path","description":"Zone identifier — see GET /v1/zones for the full list.","enum":["US-CAISO","US-ERCOT","US-PJM","US-MISO","US-NYISO","US-ISONE","US-SPP","GB","AU-NSW","AU-QLD","AU-VIC","AU-SA","AU-TAS","DE-LU","FR","ES","IT-NO","NL","BE","PL","SE-3","NO-2","DK-1","AT","CH"]}},"example_request":"GET https://api.grid-hub.app/v1/latest/GB","example_response_keys":["zone","metrics","attribution","license","updated"]},{"name":"Historical demand","endpoint":"https://api.grid-hub.app/v1/demand/{zone}","method":"GET","price_usdc":0.01,"paid":true,"category":"data/electricity","description":"Demand (MW) time series for one zone.","params":{"zone":{"type":"string","required":true,"in":"path","description":"Zone identifier — see GET /v1/zones for the full list.","enum":["US-CAISO","US-ERCOT","US-PJM","US-MISO","US-NYISO","US-ISONE","US-SPP","GB","AU-NSW","AU-QLD","AU-VIC","AU-SA","AU-TAS","DE-LU","FR","ES","IT-NO","NL","BE","PL","SE-3","NO-2","DK-1","AT","CH"]},"start":{"type":"integer","required":false,"in":"query","description":"Unix seconds. Defaults to 24h before now."},"end":{"type":"integer","required":false,"in":"query","description":"Unix seconds. Defaults to now."},"limit":{"type":"integer","required":false,"in":"query","description":"Max rows returned. Default 1000.","maximum":5000}},"example_request":"GET https://api.grid-hub.app/v1/demand/GB?limit=100","example_response_keys":["zone","metric","start","end","count","attribution","license","data"]},{"name":"Historical generation mix","endpoint":"https://api.grid-hub.app/v1/generation/{zone}","method":"GET","price_usdc":0.01,"paid":true,"category":"data/electricity","description":"Generation by fuel type (MW or %) time series for one zone.","params":{"zone":{"type":"string","required":true,"in":"path","description":"Zone identifier — see GET /v1/zones for the full list.","enum":["US-CAISO","US-ERCOT","US-PJM","US-MISO","US-NYISO","US-ISONE","US-SPP","GB","AU-NSW","AU-QLD","AU-VIC","AU-SA","AU-TAS","DE-LU","FR","ES","IT-NO","NL","BE","PL","SE-3","NO-2","DK-1","AT","CH"]},"start":{"type":"integer","required":false,"in":"query","description":"Unix seconds. Defaults to 24h before now."},"end":{"type":"integer","required":false,"in":"query","description":"Unix seconds. Defaults to now."},"limit":{"type":"integer","required":false,"in":"query","description":"Max rows returned. Default 1000.","maximum":5000}},"example_request":"GET https://api.grid-hub.app/v1/generation/GB?limit=100","example_response_keys":["zone","metric","start","end","count","attribution","license","data"]},{"name":"Historical wholesale price","endpoint":"https://api.grid-hub.app/v1/price/{zone}","method":"GET","price_usdc":0.01,"paid":true,"category":"data/electricity","description":"Wholesale price time series for one zone, in local currency per MWh.","params":{"zone":{"type":"string","required":true,"in":"path","description":"Zone identifier — see GET /v1/zones for the full list.","enum":["US-CAISO","US-ERCOT","US-PJM","US-MISO","US-NYISO","US-ISONE","US-SPP","GB","AU-NSW","AU-QLD","AU-VIC","AU-SA","AU-TAS","DE-LU","FR","ES","IT-NO","NL","BE","PL","SE-3","NO-2","DK-1","AT","CH"]},"start":{"type":"integer","required":false,"in":"query","description":"Unix seconds. Defaults to 24h before now."},"end":{"type":"integer","required":false,"in":"query","description":"Unix seconds. Defaults to now."},"limit":{"type":"integer","required":false,"in":"query","description":"Max rows returned. Default 1000.","maximum":5000}},"example_request":"GET https://api.grid-hub.app/v1/price/GB?limit=100","example_response_keys":["zone","metric","start","end","count","attribution","license","data"]},{"name":"Historical carbon intensity","endpoint":"https://api.grid-hub.app/v1/carbon-intensity/{zone}","method":"GET","price_usdc":0.01,"paid":true,"category":"data/electricity","description":"Grid carbon intensity (gCO2/kWh) time series for one zone.","params":{"zone":{"type":"string","required":true,"in":"path","description":"Zone identifier — see GET /v1/zones for the full list.","enum":["US-CAISO","US-ERCOT","US-PJM","US-MISO","US-NYISO","US-ISONE","US-SPP","GB","AU-NSW","AU-QLD","AU-VIC","AU-SA","AU-TAS","DE-LU","FR","ES","IT-NO","NL","BE","PL","SE-3","NO-2","DK-1","AT","CH"]},"start":{"type":"integer","required":false,"in":"query","description":"Unix seconds. Defaults to 24h before now."},"end":{"type":"integer","required":false,"in":"query","description":"Unix seconds. Defaults to now."},"limit":{"type":"integer","required":false,"in":"query","description":"Max rows returned. Default 1000.","maximum":5000}},"example_request":"GET https://api.grid-hub.app/v1/carbon-intensity/GB?limit=100","example_response_keys":["zone","metric","start","end","count","attribution","license","data"]},{"name":"Historical interconnector flows","endpoint":"https://api.grid-hub.app/v1/interchange/{zone}","method":"GET","price_usdc":0.01,"paid":true,"category":"data/electricity","description":"Cross-border power flow (MW) time series for one zone.","params":{"zone":{"type":"string","required":true,"in":"path","description":"Zone identifier — see GET /v1/zones for the full list.","enum":["US-CAISO","US-ERCOT","US-PJM","US-MISO","US-NYISO","US-ISONE","US-SPP","GB","AU-NSW","AU-QLD","AU-VIC","AU-SA","AU-TAS","DE-LU","FR","ES","IT-NO","NL","BE","PL","SE-3","NO-2","DK-1","AT","CH"]},"start":{"type":"integer","required":false,"in":"query","description":"Unix seconds. Defaults to 24h before now."},"end":{"type":"integer","required":false,"in":"query","description":"Unix seconds. Defaults to now."},"limit":{"type":"integer","required":false,"in":"query","description":"Max rows returned. Default 1000.","maximum":5000}},"example_request":"GET https://api.grid-hub.app/v1/interchange/GB?limit=100","example_response_keys":["zone","metric","start","end","count","attribution","license","data"]},{"name":"Historical installed capacity","endpoint":"https://api.grid-hub.app/v1/capacity/{zone}","method":"GET","price_usdc":0.01,"paid":true,"category":"data/electricity","description":"Annual installed generation capacity (MW) by fuel type. European zones only.","params":{"zone":{"type":"string","required":true,"in":"path","description":"Zone identifier — see GET /v1/zones for the full list.","enum":["DE-LU","FR","ES","NL","BE","PL","NO-2","DK-1","AT","CH"]},"start":{"type":"integer","required":false,"in":"query","description":"Unix seconds. Defaults to 24h before now."},"end":{"type":"integer","required":false,"in":"query","description":"Unix seconds. Defaults to now."},"limit":{"type":"integer","required":false,"in":"query","description":"Max rows returned. Default 1000.","maximum":5000}},"example_request":"GET https://api.grid-hub.app/v1/capacity/GB?limit=100","example_response_keys":["zone","metric","start","end","count","attribution","license","data"]}]}