PlugShare API: Search EV chargers near a place
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.
Unofficial. Not affiliated with or endorsed by PlugShare.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- Location, required
location Address, city or ZIP code, for example San Jose, CA.
San Jose, CA
- Connector optional
connector Connector type to match, for example CCS.
any (default)
One of
any,CCS,CHAdeMO,Tesla/NACS,J1772,Type 2.- Max Results optional
max_results Maximum number of stations, for example 20.
20 (default)
Whole number from 1 to 100.
- Radius (miles) optional
radius_miles Search radius in miles, for example 5.
5 (default)
Number from 0.1 to 50.
- Fast Charging Only optional
fast_charging_only Only show DC fast chargers, for example true.
false (default)
True or false.
Input as JSON
{ "location": "San Jose, CA"}Output
{ "chargers": [ { "cost": null, "name": "Edible Arrangements", "address": "201 E Taylor St, San Jose, CA 95112, USA", "network": null, "latitude": 37.351315, "longitude": -121.895919, "plugscore": null, "connectors": [ { "type": "Wall", "power_kw": null } ], "distance_km": 1.75, "opening_hours": null, "distance_miles": 1.09, "plugshare_link": "https://www.plugshare.com/location/291021" , "charging_points": 2, "plugshare_location_id": 291021 }, { "cost": "DCFC & Level 2\nEnergy\n$0.25/kWh\nStation Rate\nWhile charging - $0.00/hour\nWhile not charging (15 minute grace period) - $4.00/hour\nGuest fee - $0.99/session" , "name": "Royal Coach Tours", "address": "630 Stockton Ave, San Jose, CA 95126, USA", "network": "ChargePoint", "latitude": 37.339833, "longitude": -121.911169, "plugscore": null, "connectors": [ { "type": "J1772", "power_kw": 6.48 }, { "type": "CCS1", "power_kw": 62 }, { "type": "CHAdeMO", "power_kw": 62.5 } ], "distance_km": 1.86, "opening_hours": "All Days, 09:00 AM - 04:00 PM", "distance_miles": 1.16, "plugshare_link": "https://www.plugshare.com/location/486868" , "charging_points": 3, "plugshare_location_id": 486868 }, { "cost": null, "name": "J Lohr Vineyards & Wines", "address": "1000 Lenzen Ave, San Jose, CA 95126, USA", "network": null, "latitude": 37.333961, "longitude": -121.912763, "plugscore": null, "connectors": [ { "type": "CHAdeMO", "power_kw": null } ], "distance_km": 1.98, "opening_hours": null, "distance_miles": 1.23, "plugshare_link": "https://www.plugshare.com/location/145581" , "charging_points": 1, "plugshare_location_id": 145581 } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"plugshare.com/search_chargers","input":{"location":"San Jose, CA"}}' # 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": "plugshare.com/search_chargers" , "input": { "location": "San Jose, CA" }})# 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": "plugshare.com/search_chargers" , "input": { "location": "San Jose, CA" } }), 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 plugshare.com/search_chargers# with {"location":"San Jose, CA"}"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": { "location": { "type": "string", "minLength": 1, "description": "Address, city or ZIP code, for example San Jose, CA." }, "connector": { "enum": [ "any", "CCS", "CHAdeMO", "Tesla/NACS" , "J1772", "Type 2" ], "type": "string", "default": "any", "description": "Connector type to match, for example CCS." }, "max_results": { "type": "integer", "default": 20, "maximum": 100, "minimum": 1, "description": "Maximum number of stations, for example 20." }, "radius_miles": { "type": "number", "default": 5, "maximum": 50, "minimum": 0.1, "description": "Search radius in miles, for example 5." }, "fast_charging_only": { "type": "boolean", "default": false, "description": "Only show DC fast chargers, for example true." } }}Output schema
{ "type": "object", "required": [ "chargers" ], "properties": { "chargers": { "type": "array", "items": { "type": "object", "required": [ "name", "address", "distance_miles", "distance_km", "network", "plugscore", "charging_points", "connectors", "cost", "opening_hours", "plugshare_link", "plugshare_location_id", "latitude", "longitude" ], "properties": { "cost": { "type": [ "string", "null" ] }, "name": { "type": "string" }, "address": { "type": [ "string", "null" ] }, "network": { "type": [ "string", "null" ] }, "latitude": { "type": "number" }, "longitude": { "type": "number" }, "plugscore": { "type": [ "number", "null" ] }, "connectors": { "type": "array", "items": { "type": "object", "required": [ "type", "power_kw" ], "properties": { "type": { "type": "string" }, "power_kw": { "type": [ "number", "null" ] } }, "additionalProperties": false } }, "distance_km": { "type": "number" }, "opening_hours": { "type": [ "string", "null" ] }, "distance_miles": { "type": "number" }, "plugshare_link": { "type": "string" }, "charging_points": { "type": "integer" }, "plugshare_location_id": { "type": "integer" } }, "additionalProperties": false } } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
plugshare.com/search_chargers- Returns
- name, address, distance, network, PlugScore, connectors, cost, opening hours, PlugShare 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 plugshare.com/search_chargers with the inputs above.
Ask your agent
- Find CCS fast chargers within 10 miles of Barstow, CA, closest first, with their ratings and what they cost
- Any Tesla/NACS charging spots near 80202? I'd like to see the top 15 with their hours and connector types
- Look up public EV chargers on PlugShare around 1600 Amphitheatre Parkway, Mountain View, within 2 miles
- I'm driving a Leaf and need a CHAdeMO station near Flagstaff, Arizona — show me DC fast options within 25 miles and their PlugScores
- Use plugshare.com to list J1772 level 2 chargers near downtown Portland, Maine, max 10 results, including cost and network
See more
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.
afdc.energy.gov/search_ev_chargersFinds Open Charge Map charging locations near an address, city, or postcode, nearest first.
openchargemap.org/search_chargersFinds 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_storesLooks up a public Google Maps place by name and location and returns its profile: address, rating, hours, phone, website and photos.
google.com/get_placeFinds 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_storesFinds 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 McDonald's restaurants within 50 miles of a US city, address or ZIP code, nearest first. Each result includes today's hours, services and directions. Open-now status follows the listed hours.
mcdonalds.com/search_restaurantsFinds OfferUp items for sale near a US city or ZIP code, with prices, condition, seller names, distance and links. Distances use approximate listing locations.
offerup.com/search_listings