energy.gov API: Search EV chargers
Find public, open EV charging stations near a US or Canadian city, address, or postal code, sorted by distance. Power is the highest listed connector output at each station; unavailable details are null.
Unofficial. Not affiliated with or endorsed by energy.gov.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- Network optional
network Charging network name, such as Tesla or ChargePoint; any includes all networks.
any (default)
- Location, required
location A US or Canadian city, street address, ZIP code, or postal code, such as Austin, TX.
Austin, TX
2 characters or more.
- Max Results optional
max_results Maximum stations to return, for example 20 (up to 100).
20 (default)
Whole number from 1 to 100.
- Radius (miles) optional
radius_miles Search radius in miles, for example 5 (up to 50).
5 (default)
Number from 0.1 to 50.
- Charging Level optional
charging_level Charging level to match, such as dc_fast; any includes all levels.
any (default)
One of
any,level_2,dc_fast.- Connector Type optional
connector_type Connector to match, such as ccs; any includes all connectors.
any (default)
One of
any,j1772,ccs,chademo,tesla_nacs.
Input as JSON
{ "location": "Austin, TX"}Output
{ "stations": [ { "hours": "24 hours daily", "phone": "888-758-4389", "access": "Public", "address": "515 Congress Ave, Austin, TX 78701, US", "network": "ChargePoint Network", "pricing": null, "latitude": 30.267694, "map_link": "https://www.google.com/maps/search/?api=1&query=30.267694%2C-97.742662" , "power_kw": 6.5, "longitude": -97.742662, "station_id": 193059, "station_name": "515 CONGRESS 515 CONGRESS P9", "dc_fast_ports": 0, "level_2_ports": 2, "distance_miles": 0.02088, "connector_types": [ "J1772 (AC)" ], "date_last_confirmed": "2026-09-29" }, { "hours": "24 hours daily", "phone": "888-758-4389", "access": "Public", "address": "600 Congress Ave., Austin, TX 78701, US", "network": "ChargePoint Network", "pricing": null, "latitude": 30.268622, "map_link": "https://www.google.com/maps/search/?api=1&query=30.268622%2C-97.743064" , "power_kw": 7.7, "longitude": -97.743064, "station_id": 422038, "station_name": "600 CONGRESS EV 1", "dc_fast_ports": 0, "level_2_ports": 1, "distance_miles": 0.07123, "connector_types": [ "J1772 (AC)" ], "date_last_confirmed": "2026-09-29" }, { "hours": "24 hours daily", "phone": "888-758-4389", "access": "Public", "address": "600 Congress Ave., Austin, TX 78701, US", "network": "ChargePoint Network", "pricing": null, "latitude": 30.268619, "map_link": "https://www.google.com/maps/search/?api=1&query=30.268619%2C-97.743162" , "power_kw": 7.7, "longitude": -97.743162, "station_id": 422037, "station_name": "600 CONGRESS EV 2", "dc_fast_ports": 0, "level_2_ports": 1, "distance_miles": 0.07162, "connector_types": [ "J1772 (AC)" ], "date_last_confirmed": "2026-09-29" } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"afdc.energy.gov/search_ev_chargers","input":{"location":"Austin, TX"}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "afdc.energy.gov/search_ev_chargers" , "input": { "location": "Austin, TX" }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "afdc.energy.gov/search_ev_chargers" , "input": { "location": "Austin, TX" } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run afdc.energy.gov/search_ev_chargers# with {"location":"Austin, TX"}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "location" ], "properties": { "network": { "type": "string", "default": "any", "description": "Charging network name, such as Tesla or ChargePoint; any includes all networks." }, "location": { "type": "string", "minLength": 2, "description": "A US or Canadian city, street address, ZIP code, or postal code, such as Austin, TX." }, "max_results": { "type": "integer", "default": 20, "maximum": 100, "minimum": 1, "description": "Maximum stations to return, for example 20 (up to 100)." }, "radius_miles": { "type": "number", "default": 5, "maximum": 50, "minimum": 0.1, "description": "Search radius in miles, for example 5 (up to 50)." }, "charging_level": { "enum": [ "any", "level_2", "dc_fast" ], "type": "string", "default": "any", "description": "Charging level to match, such as dc_fast; any includes all levels." }, "connector_type": { "enum": [ "any", "j1772", "ccs", "chademo", "tesla_nacs" ], "type": "string", "default": "any", "description": "Connector to match, such as ccs; any includes all connectors." } }}Output schema
{ "type": "object", "required": [ "stations" ], "properties": { "stations": { "type": "array", "items": { "type": "object", "required": [ "station_name", "address", "distance_miles", "network", "connector_types", "level_2_ports", "dc_fast_ports", "power_kw", "access", "hours", "pricing", "phone", "date_last_confirmed", "map_link", "station_id", "latitude", "longitude" ], "properties": { "hours": { "type": [ "string", "null" ], "description": "Opening hours." }, "phone": { "type": [ "string", "null" ], "description": "Station phone number." }, "access": { "type": [ "string", "null" ], "description": "Access information." }, "address": { "type": "string", "description": "Full street address." }, "network": { "type": [ "string", "null" ], "description": "Charging network name." }, "pricing": { "type": [ "string", "null" ], "description": "Charging pricing text." }, "latitude": { "type": [ "number", "null" ], "description": "Station latitude." }, "map_link": { "type": "string", "description": "Link to this station on a map." }, "power_kw": { "type": [ "number", "null" ], "description": "Highest listed connector power in kilowatts." }, "longitude": { "type": [ "number", "null" ], "description": "Station longitude." }, "station_id": { "type": "integer", "description": "Station identifier." }, "station_name": { "type": "string", "description": "Station name." }, "dc_fast_ports": { "type": "integer", "description": "Number of DC fast ports." }, "level_2_ports": { "type": "integer", "description": "Number of Level 2 ports." }, "distance_miles": { "type": "number", "description": "Distance from the searched place in miles." }, "connector_types": { "type": "array", "items": { "type": "string" }, "description": "Connector types in words." }, "date_last_confirmed": { "type": [ "string", "null" ], "description": "Date the station was last confirmed, YYYY-MM-DD." } }, "additionalProperties": false }, "description": "Nearby EV charging stations, nearest first." } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
afdc.energy.gov/search_ev_chargers- Returns
- station name, address, distance, network, connectors, port counts, power, access, hours, pricing, phone, map link
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method afdc.energy.gov/search_ev_chargers with the inputs above.
Ask your agent
- Find DC fast chargers with CCS connectors within 10 miles of Boise, ID
- Where are the nearest public Tesla Superchargers to 1600 Pennsylvania Ave NW, Washington, DC? Show me up to 5.
- Using energy.gov, list Level 2 EV charging stations near postal code M5V 3L9 in Toronto, including hours and pricing
- Are there any ChargePoint stations within 3 miles of ZIP 94103? I need ones with J1772 plugs.
- Pull up CHAdeMO fast charging spots within 25 miles of Flagstaff, Arizona from energy.gov's station locator, sorted by distance
See more
Finds public PlugShare charging stations near an address, city or ZIP code, nearest first, with driver PlugScores and charging details. Cost and opening hours appear when listed.
plugshare.com/search_chargersFinds Open Charge Map charging locations near an address, city, or postcode, nearest first.
openchargemap.org/search_chargersFinds nearby GasBuddy stations for a US or Canadian city, address or postal code and lists their reported prices for a fuel grade, lowest listed price first.
gasbuddy.com/list_cheapest_gas_stationsFinds the AutoZone stores nearest a US ZIP code, city or street address, with contact details, opening hours, whether each is open now, distance and store page links.
autozone.com/search_storesFinds the US Costco warehouses nearest a city, address or ZIP code, with today's and weekly hours, gas station hours, services and posted gas prices.
costco.com/search_warehousesFinds Starbucks cafés near a city, address or ZIP code, nearest first, with whether each is open now, today's local hours and amenities; optionally only cafés open now.
starbucks.com/search_storesReturns official MPG or MPGe, range, annual fuel cost, five-year savings and emissions for every matching version of a vehicle. Costs use current fuel prices and 15,000 miles per year; plug-in hybrid costs include gasoline and electricity.
fueleconomy.gov/get_fuel_economyFinds U.S. federal grant opportunities by topic, agency, applicant type and status, with funding and eligibility details. Open results exclude opportunities whose closing date has passed.
grants.gov/search_grants