EV Charging API for Developers

ChargingNear.me provides the most comprehensive US EV charging station API — 60,000+ stations, updated daily from the US Department of Energy. Available via REST API, MCP server (for AI agents), GeoJSON feeds, and ChatGPT plugin. Licensed under CC-BY-4.0.

Integration Options

REST API
Standard RESTful JSON API at /api/v1/. Search stations by location, city, state, network, or connector type. Interactive docs (Swagger UI) | API Reference (ReDoc)
MCP Server
Model Context Protocol server for Claude, Cursor, Gemini, and compatible AI agents. Endpoint: https://chargingnear.me/api/mcp. Tools: search_stations, get_nearest_stations, get_station_details, get_city_charging_stats, get_state_charging_stats, find_stations_on_route.
GeoJSON Feed
Full station catalog as GeoJSON at /api/v1/stations.geojson. Supports bbox filtering for efficient map tile loading.
ChatGPT Plugin
OpenAI-compatible plugin manifest at /.well-known/ai-plugin.json. Lets ChatGPT query station data conversationally.
Reliability Index
Machine-readable EV charging reliability rankings at /api/v1/reliability. Returns networks and states ranked by 30-day reliability with methodology, last-updated timestamp, and a 30-day window. Add ?state=CA to rank a state's cities. Powers the public EV Charging Reliability Index.
Demand Graph (Commercial)
Anonymized, geohash-bucketed EV charger-search demand aggregate at /api/v1/demand/aggregate. Each cell returns search volume, unmet-search counts, distinct sessions, and a 0–100 demand_score for site selection and market-gap analysis. Counts only — no PII. Commercially licensed (not CC-BY-4.0) and available on paid API tiers only (Starter and up); anonymous and free-tier callers get a 403. Filter with ?window=30&unmet=true&bbox=south,west,north,east. See the EV charging demand data product page and pricing.
OpenAPI Specification
Machine-readable API spec at /.well-known/openapi.json (OpenAPI 3.1).

Authentication

The API supports both unauthenticated and authenticated requests:

  • No key required: 100 requests/day per IP
  • Free API key: 100 requests/day (authenticated)
  • Starter ($99/mo): 5,000 requests/day
  • Pro ($295/mo): 25,000 requests/day
  • Scale ($595/mo): 1,000,000 requests/day
  • Enterprise ($2,495+/mo): 10,000,000 requests/day + SLA

Commercial datasets: reliability scores, real-time availability, and the Demand Graph aggregate (/api/v1/demand/aggregate) are proprietary and licensed separately from the CC-BY-4.0 base directory. They ship only on paid tiers (Starter and above); anonymous and free-tier callers receive a 403 commercial_license_required.

Pass your API key as Authorization: Bearer cnm_your_key_here in the request header.

Every /api/v1/* response includes X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers so you always know where you stand. To check your bucket without burning a 429, call GET /api/v1/me/usage with your API key, or use the Usage panel on the /developers page.

Preview the Demand Graph

Evaluate the dataset before you buy. Below is a fixed, representative sample of the GET /api/v1/demand/aggregate response (window = 30 days). These are illustrative counts, not the live feed, but the shape is identical: each cell carries a geohash, search volume, unmet-search count, distinct sessions, and a 0–100 demand_score.

Want a live slice without writing code? Fetch the sample JSON — no API key required.

Geohash Center (lat, lng) Searches Unmet Sessions Demand score
9v6kp 30.256, -97.756 641 188 (29.3%) 404 79
dr5re 40.715, -74.026 1,530 412 (26.9%) 968 78
c23nb 47.615, -122.322 705 131 (18.6%) 449 76
9q5ct 34.036, -118.235 1,244 209 (16.8%) 802 75
dhwfx 25.774, -80.178 528 96 (18.2%) 333 75
9q8yy 37.771, -122.410 893 97 (10.9%) 571 73

Commercial license: the Demand Graph aggregate is proprietary and not covered by CC-BY-4.0. The live feed is available on any paid API tier (Starter and up); anonymous and free-tier keys receive a 403. See pricing →

Quick Start Examples

cURL — Search stations in San Francisco

curl "https://chargingnear.me/api/v1/stations?city=San+Francisco&state=CA&limit=5"

cURL — Find nearest stations

curl "https://chargingnear.me/api/v1/stations/nearest?lat=37.7749&lng=-122.4194&radius_mi=5"

JavaScript (fetch)

const response = await fetch(
  "https://chargingnear.me/api/v1/stations?city=Austin&state=TX&limit=10",
  { headers: { Authorization: "Bearer cnm_your_key" } }
);
const data = await response.json();
console.log(data.stations);

Python (requests)

import requests

resp = requests.get(
    "https://chargingnear.me/api/v1/stations",
    params={"city": "Denver", "state": "CO", "limit": 10},
    headers={"Authorization": "Bearer cnm_your_key"}
)
stations = resp.json()["stations"]

MCP Configuration (Claude / Cursor)

{
  "mcpServers": {
    "chargingnearme": {
      "url": "https://chargingnear.me/api/mcp"
    }
  }
}

MCP Tools

  • search_stations — Search by city, state, network, or connector type
  • get_nearest_stations — Find stations nearest to coordinates
  • get_station_details — Full details for a specific station by ID
  • get_city_charging_stats — City-level charging statistics
  • get_state_charging_stats — State-level charging statistics
  • find_stations_on_route — Find chargers along a multi-waypoint route

Data & Attribution

Station data is sourced from the US Department of Energy NREL Alternative Fuel Stations database and enriched with Google Places, OpenChargeMap, and OpenStreetMap data. Licensed under CC-BY-4.0.

When using our data, please include a link to chargingnear.me and credit "US Department of Energy NREL" as the upstream source.

Frequently Asked Questions

Is the API free to use?

Yes, the free tier includes 100 requests/day with no API key required. For higher limits, create a free API key to get 100 authenticated requests/day. Paid plans start at $99/month for 5,000 requests/day.

What data formats are available?

The API returns JSON by default. GeoJSON is available at /api/v1/stations.geojson for map integrations. The MCP server returns structured tool results for AI agent integration. OpenAPI 3.1 spec is available at /.well-known/openapi.json.

How often is the data updated?

Station data is synced daily from the US Department of Energy's NREL Alternative Fuel Stations database. Enrichment data (Google Places, OpenChargeMap) is updated weekly. Real-time availability data is provided on-demand where supported.

Can I use this data in my app?

Yes, the base station directory is licensed under CC-BY-4.0. You must attribute ChargingNear.me and the US Department of Energy NREL as data sources. Include a link to chargingnear.me when displaying station data. Proprietary fields (reliability scores, real-time availability, and the Demand Graph) are commercially licensed and not covered by CC-BY-4.0.

How do I access the commercial demand data?

The Demand Graph aggregate (GET /api/v1/demand/aggregate) is an anonymized, geohash-bucketed roll-up of EV charger-search demand — search volume, unmet searches, distinct sessions, and a 0-100 demand_score per cell — built for site selection and market-gap analysis. It returns counts only with no PII. It is commercially licensed (not CC-BY-4.0) and available on any paid API tier (Starter $99/mo and up). Anonymous and free-tier keys receive a 403. Upgrade on the /developers page and the subscription binds to your existing API key by email.

What is MCP and how do I use it?

Model Context Protocol (MCP) lets AI assistants like Claude, Cursor, and other compatible systems query our station database directly. Point your MCP client to https://chargingnear.me/api/mcp to connect. No API key required for basic queries.