{"openapi":"3.1.0","info":{"title":"NLR Developer Network (BYOK) API","version":"0.1.0","description":"NLR Developer Network (BYOK) lets an AI assistant read your own NLR Developer Network data through the NLR Developer Network API with a key you supply (developer.nlr.gov API key). Read-only: 6 tools (find_nearest_fuel_stations, find_nearest_ev_chargers, list_fuel_stations, estimate_solar_pv_output, get_solar_resource, get_utility_rates). The BYOK key travels with each request, is used for that...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-nlrdeveloper.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-nlrdeveloper/docs"},"termsOfService":"https://connectorbay.com/byok-nlrdeveloper/terms"},"servers":[{"url":"https://byok-nlrdeveloper.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-nlrdeveloper/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/find_nearest_fuel_stations":{"post":{"operationId":"find_nearest_fuel_stations","summary":"Find alternative-fuel stations (electric, natural gas, propane, ethanol, biodiesel, hydrogen) nearest to a point, closes","description":"Find alternative-fuel stations (electric, natural gas, propane, ethanol, biodiesel, hydrogen) nearest to a point, closest first, with address, fuel, status, hours and distance in miles. Use for \"Where are the nearest public EV chargers to downtown Denver\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"latitude":{"description":"Latitude in decimal degrees, -90 to 90.","maximum":90,"minimum":-90,"title":"Latitude","type":"number"},"longitude":{"description":"Longitude in decimal degrees, -180 to 180.","maximum":180,"minimum":-180,"title":"Longitude","type":"number"},"radius":{"anyOf":[{"maximum":500,"minimum":0,"type":"number"},{"type":"null"}],"default":5,"description":"Search radius in miles, 0 to 500.","title":"Radius"},"fuel_type":{"anyOf":[{"enum":["all","BD","CNG","ELEC","E85","HY","LNG","LPG","RD"],"type":"string"},{"type":"null"}],"default":null,"description":"Fuel type code: ELEC electric, CNG, LNG, LPG propane, E85 ethanol, BD biodiesel, RD renewable diesel, HY hydrogen, or all.","title":"Fuel Type"},"status":{"anyOf":[{"enum":["E","P","T","all"],"type":"string"},{"type":"null"}],"default":null,"description":"Station status: E open, P planned, T temporarily unavailable, or all.","title":"Status"},"access":{"anyOf":[{"enum":["public","private","all"],"type":"string"},{"type":"null"}],"default":null,"description":"Access: public, private or all.","title":"Access"},"ev_charging_level":{"anyOf":[{"enum":["1","2","dc_fast","all"],"type":"string"},{"type":"null"}],"default":null,"description":"Charging level for electric stations: 1, 2, dc_fast or all.","title":"Ev Charging Level"},"limit":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Stations to return, 1 to 200.","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of stations to skip, for paging.","title":"Offset"}},"required":["latitude","longitude"],"title":"find_nearest_fuel_stationsArguments","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/find_nearest_ev_chargers":{"post":{"operationId":"find_nearest_ev_chargers","summary":"Find electric vehicle charging stations nearest to a point, closest first, with network, connector types, Level 2 and DC","description":"Find electric vehicle charging stations nearest to a point, closest first, with network, connector types, Level 2 and DC fast port counts, hours and distance in miles. Use for \"Which DC fast chargers are within 10 miles of Boulder, Colorado\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"latitude":{"description":"Latitude in decimal degrees, -90 to 90.","maximum":90,"minimum":-90,"title":"Latitude","type":"number"},"longitude":{"description":"Longitude in decimal degrees, -180 to 180.","maximum":180,"minimum":-180,"title":"Longitude","type":"number"},"radius":{"anyOf":[{"maximum":500,"minimum":0,"type":"number"},{"type":"null"}],"default":5,"description":"Search radius in miles, 0 to 500.","title":"Radius"},"fuel_type":{"anyOf":[{"const":"ELEC","type":"string"},{"type":"null"}],"default":"ELEC","description":"Fixed value ELEC: electric stations only.","title":"Fuel Type"},"status":{"anyOf":[{"enum":["E","P","T","all"],"type":"string"},{"type":"null"}],"default":null,"description":"Station status: E open, P planned, T temporarily unavailable, or all.","title":"Status"},"access":{"anyOf":[{"enum":["public","private","all"],"type":"string"},{"type":"null"}],"default":null,"description":"Access: public, private or all.","title":"Access"},"ev_charging_level":{"anyOf":[{"enum":["1","2","dc_fast","all"],"type":"string"},{"type":"null"}],"default":null,"description":"Charging level for electric stations: 1, 2, dc_fast or all.","title":"Ev Charging Level"},"ev_network":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Charging network name as the service lists it, for example Tesla or ChargePoint Network.","title":"Ev Network"},"limit":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Stations to return, 1 to 200.","title":"Limit"}},"required":["latitude","longitude"],"title":"find_nearest_ev_chargersArguments","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/list_fuel_stations":{"post":{"operationId":"list_fuel_stations","summary":"List alternative-fuel stations by state or ZIP code, optionally by fuel, status, access, charging level or network; the ","description":"List alternative-fuel stations by state or ZIP code, optionally by fuel, status, access, charging level or network; the order is not specified by the service. Use for \"How many public electric charging stations are in Vermont, and where are some\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"state":{"anyOf":[{"maxLength":2,"type":"string"},{"type":"null"}],"default":null,"description":"Two-letter state code, for example VT.","title":"State"},"zip":{"anyOf":[{"maxLength":5,"type":"string"},{"type":"null"}],"default":null,"description":"Five-digit ZIP code.","title":"Zip"},"fuel_type":{"anyOf":[{"enum":["all","BD","CNG","ELEC","E85","HY","LNG","LPG","RD"],"type":"string"},{"type":"null"}],"default":null,"description":"Fuel type code: ELEC electric, CNG, LNG, LPG propane, E85 ethanol, BD biodiesel, RD renewable diesel, HY hydrogen, or all.","title":"Fuel Type"},"status":{"anyOf":[{"enum":["E","P","T","all"],"type":"string"},{"type":"null"}],"default":null,"description":"Station status: E open, P planned, T temporarily unavailable, or all.","title":"Status"},"access":{"anyOf":[{"enum":["public","private","all"],"type":"string"},{"type":"null"}],"default":null,"description":"Access: public, private or all.","title":"Access"},"ev_charging_level":{"anyOf":[{"enum":["1","2","dc_fast","all"],"type":"string"},{"type":"null"}],"default":null,"description":"Charging level for electric stations: 1, 2, dc_fast or all.","title":"Ev Charging Level"},"ev_network":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Charging network name as the service lists it, for example Tesla or ChargePoint Network.","title":"Ev Network"},"limit":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Stations to return, 1 to 200.","title":"Limit"}},"title":"list_fuel_stationsArguments","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/estimate_solar_pv_output":{"post":{"operationId":"estimate_solar_pv_output","summary":"Estimate the yearly and monthly AC energy output of a grid-connected solar system at a location with PVWatts: nameplate ","description":"Estimate the yearly and monthly AC energy output of a grid-connected solar system at a location with PVWatts: nameplate size, losses, mounting type, tilt and azimuth in; kWh, solar radiation and capacity factor out. Use for \"How much electricity would a 4 kW rooftop solar system produce in Denver\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"lat":{"description":"Latitude in decimal degrees, -90 to 90.","maximum":90,"minimum":-90,"title":"Lat","type":"number"},"lon":{"description":"Longitude in decimal degrees, -180 to 180.","maximum":180,"minimum":-180,"title":"Lon","type":"number"},"system_capacity":{"description":"Nameplate DC capacity in kilowatts, 0.05 to 500000.","maximum":500000,"minimum":0.05,"title":"System Capacity","type":"number"},"module_type":{"description":"Module type: 0 standard, 1 premium, 2 thin film.","enum":[0,1,2],"title":"Module Type","type":"integer"},"losses":{"description":"System losses in percent, -5 to 99.","maximum":99,"minimum":-5,"title":"Losses","type":"number"},"array_type":{"description":"Array type: 0 fixed open rack, 1 fixed roof mount, 2 one-axis tracking, 3 one-axis backtracking, 4 two-axis tracking.","enum":[0,1,2,3,4],"title":"Array Type","type":"integer"},"tilt":{"description":"Tilt angle in degrees, 0 to 90.","maximum":90,"minimum":0,"title":"Tilt","type":"number"},"azimuth":{"description":"Azimuth angle in degrees clockwise from north, 0 up to (not including) 360; 180 faces south.","maximum":359.9,"minimum":0,"title":"Azimuth","type":"number"},"dataset":{"anyOf":[{"enum":["nsrdb","tmy2","tmy3","intl"],"type":"string"},{"type":"null"}],"default":null,"description":"Weather dataset: nsrdb (default), tmy2, tmy3 or intl.","title":"Dataset"},"radius":{"anyOf":[{"maximum":1000,"minimum":0,"type":"number"},{"type":"null"}],"default":null,"description":"Weather station search radius in miles (service default 100); 0 picks the closest station.","title":"Radius"},"dc_ac_ratio":{"anyOf":[{"maximum":10,"minimum":0.1,"type":"number"},{"type":"null"}],"default":null,"description":"DC to AC ratio (service default 1.2).","title":"Dc Ac Ratio"},"gcr":{"anyOf":[{"maximum":0.99,"minimum":0.01,"type":"number"},{"type":"null"}],"default":null,"description":"Ground coverage ratio, 0.01 to 0.99 (service default 0.4).","title":"Gcr"},"inv_eff":{"anyOf":[{"maximum":99.5,"minimum":90,"type":"number"},{"type":"null"}],"default":null,"description":"Inverter efficiency in percent, 90 to 99.5 (service default 96).","title":"Inv Eff"}},"required":["lat","lon","system_capacity","module_type","losses","array_type","tilt","azimuth"],"title":"estimate_solar_pv_outputArguments","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_solar_resource":{"post":{"operationId":"get_solar_resource","summary":"Get average solar radiation at a U.S. location: direct normal irradiance, global horizontal irradiance and tilt-at-latit","description":"Get average solar radiation at a U.S. location: direct normal irradiance, global horizontal irradiance and tilt-at-latitude irradiance, annual and by month, in kWh per square metre per day. Use for \"How much sunshine does Phoenix get on average\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"lat":{"description":"Latitude in decimal degrees, -90 to 90.","maximum":90,"minimum":-90,"title":"Lat","type":"number"},"lon":{"description":"Longitude in decimal degrees, -180 to 180.","maximum":180,"minimum":-180,"title":"Lon","type":"number"}},"required":["lat","lon"],"title":"get_solar_resourceArguments","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_utility_rates":{"post":{"operationId":"get_utility_rates","summary":"Get the electric utility serving a U.S. location and its average residential, commercial and industrial rates in dollars","description":"Get the electric utility serving a U.S. location and its average residential, commercial and industrial rates in dollars per kWh. The service states this data dates from 2012 and is not being updated. Use for \"Which utility serves this location and what are its electricity rates\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"lat":{"description":"Latitude in decimal degrees, -90 to 90.","maximum":90,"minimum":-90,"title":"Lat","type":"number"},"lon":{"description":"Longitude in decimal degrees, -180 to 180.","maximum":180,"minimum":-180,"title":"Lon","type":"number"},"radius":{"anyOf":[{"maximum":200,"minimum":0,"type":"number"},{"type":"null"}],"default":null,"description":"Search radius in miles, 0 to 200 (service default 0).","title":"Radius"}},"required":["lat","lon"],"title":"get_utility_ratesArguments","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}}}}