{"openapi":"3.1.0","info":{"title":"Open Electricity (BYOK) API","version":"0.1.0","description":"Open Electricity (BYOK) lets an AI assistant read your own Open Electricity data through the Open Electricity API with a key you supply (Open Electricity API key). Read-only: 5 tools (list_facilities, get_network_generation, get_network_generation_by_fueltech, get_network_market_data, get_facility_generation). The BYOK key travels with each request, is used for that one call only and is never...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-openelectricity.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-openelectricity/docs"},"termsOfService":"https://connectorbay.com/byok-openelectricity/terms"},"servers":[{"url":"https://byok-openelectricity.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-openelectricity/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_facilities":{"post":{"operationId":"list_facilities","summary":"List power facilities and their units in Australian networks, filtered by facility code, network, region, fuel technolog","description":"List power facilities and their units in Australian networks, filtered by facility code, network, region, fuel technology or operating status. Use for \"Which operating wind farms are in South Australia\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"network_region":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Region code such as NSW1, QLD1, SA1, TAS1, VIC1 or WEM.","title":"Network Region"},"fueltech_id":{"anyOf":[{"enum":["battery","battery_charging","battery_discharging","bioenergy_biogas","bioenergy_biomass","coal_black","coal_brown","distillate","gas_ccgt","gas_ocgt","gas_recip","gas_steam","gas_wcmg","hydro","pumps","solar_rooftop","solar_thermal","solar_utility","nuclear","other","solar","wind","wind_offshore","imports","exports","interconnector","aggregator_vpp","aggregator_dr"],"type":"string"},{"type":"null"}],"default":null,"description":"One unit fuel technology, for example wind, solar_utility, coal_black, gas_ccgt, hydro or battery_discharging.","title":"Fueltech Id"},"status_id":{"anyOf":[{"enum":["committed","operating","retired"],"type":"string"},{"type":"null"}],"default":null,"description":"One unit status: committed, operating or retired.","title":"Status Id"},"network_id":{"anyOf":[{"enum":["NEM","WEM"],"type":"string"},{"type":"null"}],"default":null,"description":"One network code: NEM or WEM.","title":"Network Id"},"facility_code":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"One facility code to look up.","title":"Facility Code"}},"title":"list_facilitiesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_network_generation":{"post":{"operationId":"get_network_generation","summary":"Get a time series of generation for a network (power, energy, emissions or market value), optionally for one region or f","description":"Get a time series of generation for a network (power, energy, emissions or market value), optionally for one region or fuel technology. Use for \"How much power did the NEM generate each hour yesterday\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"network_code":{"description":"Electricity network: NEM (eastern Australia) or WEM (Western Australia).","enum":["NEM","WEM"],"title":"Network Code","type":"string"},"metrics":{"description":"Generation metric: power (MW), energy (MWh), emissions (tCO2) or market_value (AUD).","enum":["power","energy","emissions","market_value"],"title":"Metrics","type":"string"},"interval":{"anyOf":[{"enum":["5m","1h","1d","7d","1M","3M","season","1y","fy"],"type":"string"},{"type":"null"}],"default":"1h","description":"Aggregation step: 5m, 1h, 1d, 7d, 1M, 3M, season, 1y or fy (financial year). Longer steps allow longer date ranges.","title":"Interval"},"date_start":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Start of the range, ISO 8601 such as 2026-10-01 or 2026-10-01T00:00:00 (network time). The default plan reaches back 2 years.","title":"Date Start"},"date_end":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"End of the range, ISO 8601. The range allowed depends on the interval (for example 8 days of 5m, 32 days of 1h, 366 days of 1d).","title":"Date End"},"network_region":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Limit to one region of the network, for example NSW1, QLD1, SA1, TAS1 or VIC1.","title":"Network Region"},"primary_grouping":{"anyOf":[{"enum":["network","network_region"],"type":"string"},{"type":"null"}],"default":"network","description":"Group results by network or network_region.","title":"Primary Grouping"},"fueltech":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Limit to one fuel technology, for example wind or coal_black.","title":"Fueltech"},"fueltech_group":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Limit to one fuel technology group, for example coal, gas, hydro, solar, wind or battery.","title":"Fueltech Group"}},"required":["network_code","metrics"],"title":"get_network_generationArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_network_generation_by_fueltech":{"post":{"operationId":"get_network_generation_by_fueltech","summary":"Get a generation time series split by fuel technology, fuel technology group, status or renewable flag, for fuel-mix que","description":"Get a generation time series split by fuel technology, fuel technology group, status or renewable flag, for fuel-mix questions. Use for \"What was the NSW generation mix by fuel group last week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"network_code":{"description":"Electricity network: NEM (eastern Australia) or WEM (Western Australia).","enum":["NEM","WEM"],"title":"Network Code","type":"string"},"metrics":{"description":"Generation metric: power (MW), energy (MWh), emissions (tCO2) or market_value (AUD).","enum":["power","energy","emissions","market_value"],"title":"Metrics","type":"string"},"interval":{"anyOf":[{"enum":["5m","1h","1d","7d","1M","3M","season","1y","fy"],"type":"string"},{"type":"null"}],"default":"1h","description":"Aggregation step: 5m, 1h, 1d, 7d, 1M, 3M, season, 1y or fy (financial year). Longer steps allow longer date ranges.","title":"Interval"},"date_start":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Start of the range, ISO 8601 such as 2026-10-01 or 2026-10-01T00:00:00 (network time). The default plan reaches back 2 years.","title":"Date Start"},"date_end":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"End of the range, ISO 8601. The range allowed depends on the interval (for example 8 days of 5m, 32 days of 1h, 366 days of 1d).","title":"Date End"},"network_region":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Limit to one region of the network, for example NSW1, QLD1, SA1, TAS1 or VIC1.","title":"Network Region"},"primary_grouping":{"anyOf":[{"enum":["network","network_region"],"type":"string"},{"type":"null"}],"default":"network","description":"Group results by network or network_region.","title":"Primary Grouping"},"secondary_grouping":{"anyOf":[{"enum":["fueltech","fueltech_group","status","renewable"],"type":"string"},{"type":"null"}],"default":"fueltech_group","description":"Split results by fueltech, fueltech_group, status or renewable.","title":"Secondary Grouping"}},"required":["network_code","metrics"],"title":"get_network_generation_by_fueltechArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_network_market_data":{"post":{"operationId":"get_network_market_data","summary":"Get a time series of market data for a network: price, demand or demand energy, optionally per region. Use for \"What was","description":"Get a time series of market data for a network: price, demand or demand energy, optionally per region. Use for \"What was the electricity price in South Australia each day last month\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"network_code":{"description":"Electricity network: NEM (eastern Australia) or WEM (Western Australia).","enum":["NEM","WEM"],"title":"Network Code","type":"string"},"metrics":{"description":"Market metric: price, demand or demand_energy.","enum":["price","demand","demand_energy"],"title":"Metrics","type":"string"},"interval":{"anyOf":[{"enum":["5m","1h","1d","7d","1M","3M","season","1y","fy"],"type":"string"},{"type":"null"}],"default":"1h","description":"Aggregation step: 5m, 1h, 1d, 7d, 1M, 3M, season, 1y or fy (financial year). Longer steps allow longer date ranges.","title":"Interval"},"date_start":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Start of the range, ISO 8601 such as 2026-10-01 or 2026-10-01T00:00:00 (network time). The default plan reaches back 2 years.","title":"Date Start"},"date_end":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"End of the range, ISO 8601. The range allowed depends on the interval (for example 8 days of 5m, 32 days of 1h, 366 days of 1d).","title":"Date End"},"network_region":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Limit to one region of the network, for example NSW1, QLD1, SA1, TAS1 or VIC1.","title":"Network Region"},"primary_grouping":{"anyOf":[{"enum":["network","network_region"],"type":"string"},{"type":"null"}],"default":"network","description":"Group results by network or network_region.","title":"Primary Grouping"}},"required":["network_code","metrics"],"title":"get_network_market_dataArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_facility_generation":{"post":{"operationId":"get_facility_generation","summary":"Get a time series of generation for one or more facilities, grouped by unit. Use for \"How much did the Bayswater facilit","description":"Get a time series of generation for one or more facilities, grouped by unit. Use for \"How much did the Bayswater facility generate each day last month\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"network_code":{"description":"Electricity network: NEM (eastern Australia) or WEM (Western Australia).","enum":["NEM","WEM"],"title":"Network Code","type":"string"},"metrics":{"description":"Generation metric: power (MW), energy (MWh), emissions (tCO2) or market_value (AUD).","enum":["power","energy","emissions","market_value"],"title":"Metrics","type":"string"},"facility_code":{"description":"Facility code to get data for, for example BAYSW.","maxLength":30,"title":"Facility Code","type":"string"},"interval":{"anyOf":[{"enum":["5m","1h","1d","7d","1M","3M","season","1y","fy"],"type":"string"},{"type":"null"}],"default":"1h","description":"Aggregation step: 5m, 1h, 1d, 7d, 1M, 3M, season, 1y or fy (financial year). Longer steps allow longer date ranges.","title":"Interval"},"date_start":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Start of the range, ISO 8601 such as 2026-10-01 or 2026-10-01T00:00:00 (network time). The default plan reaches back 2 years.","title":"Date Start"},"date_end":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"End of the range, ISO 8601. The range allowed depends on the interval (for example 8 days of 5m, 32 days of 1h, 366 days of 1d).","title":"Date End"}},"required":["network_code","metrics","facility_code"],"title":"get_facility_generationArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}