# EV Charging Station Finder (`primeselectai/ev-charging-station-availability-api`) Actor

Return structured U.S. and Canadian EV charging-station records with source status, access rules, location, connectors, charging power, network, hours, pricing, and update timestamps.

- **URL**: https://apify.com/primeselectai/ev-charging-station-availability-api.md
- **Developed by:** [Simon Jessen](https://apify.com/primeselectai) (community)
- **Categories:** Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.67 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## EV Charging Station Availability API

Queries the official National Laboratory of the Rockies Alternative Fuel Stations API, which provides Alternative Fueling Station records for the United States and Canada. Source: https://developer.nlr.gov/docs/transportation/alt-fuel-stations-v1/ and https://afdc.energy.gov/data\_download.

### API key

A customer-provided developer API key is required. Configure it through the Actor's approved secure runtime configuration; the key is not included in requests produced by this connector.

### Inputs

Use latitude and longitude for proximity searches, optionally with radius. Otherwise use state, ZIP/postal code, access, status, and network filters. Connector types are applied after retrieval. `maxResults` controls the result cap.

### Outputs

Returns normalized station records with status, access, coordinates, address, hours, network, connector types, charging-unit details, pricing, confirmation date, and update timestamps.

### License and limitations

The approved source blueprint states that the data download terms permit use for any purpose whatsoever, including distribution, subject to the source terms, disclaimers, and indemnification provisions. Station status is source availability information, not guaranteed real-time connector occupancy. Data freshness varies by network and station type, and source rate limits apply.

> Store publication requires manual approval.

# Actor input Schema

## `query` (type: `string`):

Optional description; structured fields control the request.

## `latitude` (type: `number`):

Latitude for a proximity search.

## `longitude` (type: `number`):

Longitude for a proximity search.

## `radius` (type: `number`):

Search radius in miles when latitude and longitude are provided.

## `state` (type: `string`):

Two-character U.S. state or Canadian province code, or a comma-separated list.

## `zip` (type: `string`):

Five-digit U.S. ZIP code or source-supported postal-code filter.

## `access` (type: `string`):

Access filter: all, public, or private.

## `status` (type: `string`):

Station status code: E for available, P for planned, or T for temporarily unavailable.

## `network` (type: `string`):

Optional EV charging network identifier or name when supported by the selected endpoint.

## `connectorTypes` (type: `array`):

Optional connector-type filters applied after retrieving station records, such as J1772, J1772COMBO, TESLA, or CHAdeMO.

## `maxResults` (type: `integer`):

Maximum number of station records to return, capped according to source endpoint limits.

## `pageSize` (type: `integer`):

Configure page size for this run.

## `maxPages` (type: `integer`):

Configure max pages for this run.

## `offset` (type: `integer`):

Pagination offset for subsequent requests.

## `country` (type: `string`):

Return U.S. stations, Canadian stations, or both.

## Actor input object example

```json
{
  "query": "Denver, CO public EV charging stations",
  "latitude": 39.7392,
  "longitude": -104.9903,
  "radius": 25,
  "access": "public",
  "status": "E",
  "maxResults": 10,
  "pageSize": 100,
  "offset": 0,
  "country": "all"
}
```

# Actor output Schema

## `results` (type: `string`):

No description

## `runMeta` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "query": "Denver, CO public EV charging stations",
    "latitude": 39.7392,
    "longitude": -104.9903,
    "radius": 25,
    "access": "public",
    "status": "E",
    "maxResults": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("primeselectai/ev-charging-station-availability-api").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "query": "Denver, CO public EV charging stations",
    "latitude": 39.7392,
    "longitude": -104.9903,
    "radius": 25,
    "access": "public",
    "status": "E",
    "maxResults": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("primeselectai/ev-charging-station-availability-api").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "query": "Denver, CO public EV charging stations",
  "latitude": 39.7392,
  "longitude": -104.9903,
  "radius": 25,
  "access": "public",
  "status": "E",
  "maxResults": 10
}' |
apify call primeselectai/ev-charging-station-availability-api --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,primeselectai/ev-charging-station-availability-api"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/uUyrFLjwnnnzDeCJv/builds/vRDo4Mt8sdDPPK3Qv/openapi.json
