# Open Charge Map API

> Open Charge Map returns charging location data and is available as a workflow and API.

Open Charge Map, also called OpenChargeMap or OCM, returns nearby charging locations, ordered nearest first. Search chargers needs an address, city, or postcode; optional filters include connector, radius, maximum results, and minimum power.

- Page: https://fous.com/tools/open-charge-map
- Handle: `@open-charge-map`
- Category: [Travel](https://fous.com/tools/category/travel)
- Source website: https://openchargemap.org
- Last verified: Sep 29, 2026

## Methods

### Search chargers

Operation `search_chargers`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Find Open Charge Map charging locations near an address, city, or postcode, nearest first. Unreported point counts, connector counts, operating status, and verification dates are left blank.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `location` | string | yes | `"New York, NY"` | Address, city, or postcode near which to search, for example Oxford, UK. |
| `connector` | string | no | `"CCS"` | Connector to require, for example CCS; any accepts all. |
| `radius_km` | number | no | `5` | Search radius in kilometres, for example 10 (maximum 100). |
| `max_results` | integer | no | `5` | Maximum number of locations, for example 20 (maximum 100). |
| `min_power_kw` | number | no | `50` | Minimum power in kW for a matching connector, for example 50; 0 accepts any power. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "location"
  ],
  "properties": {
    "location": {
      "type": "string",
      "minLength": 2,
      "description": "Address, city, or postcode near which to search, for example Oxford, UK.",
      "examples": [
        "New York, NY",
        "Oxford, UK"
      ]
    },
    "connector": {
      "enum": [
        "any",
        "CCS",
        "CHAdeMO",
        "Type 2",
        "Tesla/NACS",
        "J1772"
      ],
      "type": "string",
      "default": "any",
      "description": "Connector to require, for example CCS; any accepts all.",
      "examples": [
        "CCS",
        "CHAdeMO"
      ]
    },
    "radius_km": {
      "type": "number",
      "default": 10,
      "maximum": 100,
      "minimum": 0.1,
      "description": "Search radius in kilometres, for example 10 (maximum 100).",
      "examples": [
        5,
        2
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 20,
      "maximum": 100,
      "minimum": 1,
      "description": "Maximum number of locations, for example 20 (maximum 100).",
      "x-fous-developer": true,
      "examples": [
        5
      ]
    },
    "min_power_kw": {
      "type": "number",
      "default": 0,
      "minimum": 0,
      "description": "Minimum power in kW for a matching connector, for example 50; 0 accepts any power.",
      "examples": [
        50
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "location": "New York, NY",
      "connector": "CCS",
      "radius_km": 5,
      "max_results": 5,
      "min_power_kw": 50
    },
    {
      "location": "Oxford, UK"
    },
    {
      "location": "Oxford, UK",
      "connector": "CHAdeMO",
      "radius_km": 2,
      "max_results": 5,
      "min_power_kw": 50
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `chargers` | array |  |  |
| `chargers[].cost` | string or null |  |  |
| `chargers[].name` | string or null | `"Delancey & Essex Municipal Parking Garage"` |  |
| `chargers[].town` | string or null | `"Manhattan"` |  |
| `chargers[].access` | string or null | `"public"` |  |
| `chargers[].address` | string or null | `"107 Essex St"` |  |
| `chargers[].country` | string or null | `"United States"` |  |
| `chargers[].latitude` | number or null | `40.719051` |  |
| `chargers[].map_link` | string | `"https://map.openchargemap.io/?id=102832"` |  |
| `chargers[].operator` | string or null | `"EV Connect"` |  |
| `chargers[].postcode` | string or null | `"10002"` |  |
| `chargers[].longitude` | number or null | `-73.988181` |  |
| `chargers[].connectors` | array |  |  |
| `chargers[].distance_km` | number or null | `1.66` |  |
| `chargers[].operational` | boolean or null | `true` |  |
| `chargers[].distance_miles` | number or null | `1.03` |  |
| `chargers[].last_verified_date` | string or null | `"2024-03-11"` |  |
| `chargers[].open_charge_map_id` | integer | `102832` |  |
| `chargers[].number_of_charging_points` | integer or null | `11` |  |

**Example input**

```json
{
  "location": "New York, NY",
  "connector": "CCS",
  "radius_km": 5,
  "max_results": 5,
  "min_power_kw": 50
}
```

**Example output**

```json
{
  "chargers": [
    {
      "cost": null,
      "name": "Delancey & Essex Municipal Parking Garage",
      "town": "Manhattan",
      "access": "public",
      "address": "107 Essex St",
      "country": "United States",
      "latitude": 40.719051,
      "map_link": "https://map.openchargemap.io/?id=102832",
      "operator": "EV Connect",
      "postcode": "10002",
      "longitude": -73.988181,
      "connectors": [
        {
          "type": "Type 1 (J1772)",
          "count": 8,
          "power_kw": 7.5
        },
        {
          "type": "CHAdeMO",
          "count": 4,
          "power_kw": 50
        }
      ],
      "distance_km": 1.66,
      "operational": true,
      "distance_miles": 1.03,
      "last_verified_date": "2024-03-11",
      "open_charge_map_id": 102832,
      "number_of_charging_points": null
    },
    {
      "cost": null,
      "name": "DES - Delancey and Essex Municipal Parking Garage",
      "town": "New York",
      "access": "public",
      "address": "107 Essex Street",
      "country": "United States",
      "latitude": 40.719319,
      "map_link": "https://map.openchargemap.io/?id=353340",
      "operator": "EV Connect",
      "postcode": "10002",
      "longitude": -73.988197,
      "connectors": [
        {
          "type": "Type 1 (J1772)",
          "count": 8,
          "power_kw": 3.7
        },
        {
          "type": "CHAdeMO",
          "count": 1,
          "power_kw": 50
        }
      ],
      "distance_km": 1.67,
      "operational": true,
      "distance_miles": 1.04,
      "last_verified_date": "2025-11-11",
      "open_charge_map_id": 353340,
      "number_of_charging_points": null
    }
  ]
}
```

## Quick start

Replace `YOUR_API_KEY` with a Fous API key. To create one, open Developers at the bottom of Fous Studio, turn on Developer mode, then go to API keys (https://app.fous.com/keys). Change the values in `input` to run the same tool on new data.

```bash
curl 'https://api.fous.com/v1/query' \
  --fail-with-body --silent --show-error --max-time 180 \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "api": "@open-charge-map",
  "visibility": "public",
  "operation": "search_chargers",
  "version": 1,
  "input": {
    "location": "New York, NY",
    "connector": "CCS",
    "radius_km": 5,
    "max_results": 5,
    "min_power_kw": 50
  },
  "response": {
    "format": "json"
  }
}'
```

```python
# Save as fous.py and run with python3 fous.py. No packages needed.
import json
import urllib.error
import urllib.request

api_key = "YOUR_API_KEY"

body = json.loads("{\n  \"api\": \"@open-charge-map\",\n  \"visibility\": \"public\",\n  \"operation\": \"search_chargers\",\n  \"version\": 1,\n  \"input\": {\n    \"location\": \"New York, NY\",\n    \"connector\": \"CCS\",\n    \"radius_km\": 5,\n    \"max_results\": 5,\n    \"min_power_kw\": 50\n  },\n  \"response\": {\n    \"format\": \"json\"\n  }\n}")
request = urllib.request.Request(
    "https://api.fous.com/v1/query",
    data=json.dumps(body).encode("utf-8"),
    headers={
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
    },
    method="POST",
)
try:
    with urllib.request.urlopen(request, timeout=180) as response:
        result = json.load(response)
except urllib.error.HTTPError as error:
    raise RuntimeError(f"HTTP {error.code}: {error.read().decode('utf-8', errors='replace')}") from error
if result.get("success") is False:
    raise RuntimeError(result.get("error", {}).get("message", "Request failed"))
print(json.dumps(result["data"]["output"], indent=2))
```

```typescript
// Save as fous.mts and run with npx tsx fous.mts.
const apiKey = "YOUR_API_KEY";

const response = await fetch("https://api.fous.com/v1/query", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  signal: AbortSignal.timeout(180_000),
  body: JSON.stringify({
  "api": "@open-charge-map",
  "visibility": "public",
  "operation": "search_chargers",
  "version": 1,
  "input": {
    "location": "New York, NY",
    "connector": "CCS",
    "radius_km": 5,
    "max_results": 5,
    "min_power_kw": 50
  },
  "response": {
    "format": "json"
  }
}),
});
type ApiResult = { success: boolean; data?: { output: unknown }; error?: { message: string } };
const result: ApiResult = await response.json();
if (!response.ok || result.success === false) {
  throw new Error(result.error?.message ?? `HTTP ${response.status}`);
}
if (!result.data) throw new Error("Missing API response data");
console.log(result.data.output);
```

## Use from an AI assistant

Connect this tool to Claude Code, Claude Desktop, Cursor, VS Code, Codex and any MCP client as its own MCP server. Each method is a typed tool whose arguments are the method’s input.

- Server URL: `https://api.fous.com/mcp/tools/open-charge-map`
- Authorization: `Authorization: Bearer <Fous API key>`

**Tools**

- `search_chargers`: Search chargers. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `fous_get_run`: the result of a run that was still going, by its `request_id`. Free.

Claude Code:

```bash
claude mcp add --scope user --transport http fous-open-charge-map https://api.fous.com/mcp/tools/open-charge-map --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"
```

To give the assistant every tool, connect `https://api.fous.com/mcp`: it finds one with `fous_search_tools` and runs it with `fous_run_tool`. Setup for other clients: https://fous.com/llms-full.txt.

## Use cases

- Find charging locations near a planned stop
- Compare charger distance, connectors, and power
- Check a location’s operator and access details
- Review reported operating status and verification dates

## FAQ

### Can I run it with my own inputs?

Yes. Change the inputs in Studio and press Run, or send new inputs from your code, or ask a connected AI assistant.

### Can I call this Open Charge Map tool as an API?

Yes. Send a POST request to /v1/query with your Fous API key and the inputs, and get JSON back.

### How much does it cost?

Each completed run costs 1 credit. Failed runs without a completed receipt are free; completed work can remain charged if delivery is interrupted. With pay as you go, a credit costs 1¢. Monthly plans cost less per credit.

### Do I need a Open Charge Map account?

No. You only need a Fous account.

### How current is the data?

Fous gets the data from openchargemap.org when you run it. Some results are reused for up to 24 hours, and results that use your account or key are never reused. It was last verified on Sep 29, 2026.

### What charging locations are near an address or city?

Search chargers returns nearby locations ordered by distance, with address, town, distance, and map details.

### Which nearby chargers have a particular connector?

Search chargers can filter locations by connector and minimum power.

### What is reported about a charger’s status?

Search chargers returns operating status and last verified date when reported; unreported values are left blank.

## Related

- [PlugShare API](https://fous.com/tools/plugshare.md): EV charging station map and driver reviews.
- [Tesla API](https://fous.com/tools/tesla.md): Tesla offers new and certified pre-owned vehicles across the United States and nearby open Supercharger sites, with delivery estimates and opening hours only when available.
- [OpenStreetMap API](https://fous.com/tools/openstreetmap.md): OpenStreetMap returns place coordinates, address details, nearby readable place information, and ordered place search results from contributor-created data; results reflect mapped features and may be incomplete or differ from landmarks.
- [Alternative Fuels Data Center API](https://fous.com/tools/alternative-fuels-data-center.md): U.S. Department of Energy data on alternative fuel stations and vehicles.
- [Google Maps API](https://fous.com/tools/google-maps.md): Google Maps returns nearby places, public place details, up to 100 public reviews, and up to three routes; transit options vary by departure time.
- [Postcodes.io API](https://fous.com/tools/postcodes-io.md): Postcodes.io provides UK postcode, location and administrative information; nearby postcode results include distance and coordinates, while retired postcodes lack administrative details.
- [OfferUp API](https://fous.com/tools/offerup.md): Local marketplace for buying and selling items.
- [McDonald's API](https://fous.com/tools/mcdonalds.md): McDonald’s provides menu-item food information for US, UK and Canadian items, plus nearby US restaurants and listed hours today, which may miss unexpected closures.
- [All Travel tools](https://fous.com/tools/category/travel)
