{
  "openapi": "3.0.1",
  "info": {
    "title": "PlugShare Scraper: EV Charging Station Data, Pricing & Alerts",
    "description": "PlugShare scraper for EV charging station data: search by map area or paste station links, and get connectors, power in kW, network, PlugScore, live availability, hours, cost and reviews. Filter by connector, power and network, and monitor new or changed stations on a schedule.",
    "version": "1.1",
    "x-build-id": "9DeDkeIaYrdJI9BDv"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/getascraper~plugshare-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-getascraper-plugshare-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/getascraper~plugshare-scraper/runs": {
      "post": {
        "operationId": "runs-sync-getascraper-plugshare-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/getascraper~plugshare-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-getascraper-plugshare-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "startUrls": {
            "title": "Station links",
            "type": "array",
            "description": "PlugShare station links to fetch directly, for example https://www.plugshare.com/location/545097 (the plain number works too). Search filters do not apply to these. Leave empty to search by area instead.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "searchAreas": {
            "title": "Search areas",
            "type": "array",
            "description": "One or more center points to search around. Each area is a { latitude, longitude, radiusKm, label } object. Add several small areas to cover a large region instead of one giant radius (PlugShare returns the nearest stations per request, not a full-region dump)."
          },
          "maxItemsPerArea": {
            "title": "Max stations per area",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Maximum number of stations to return per search area (use more, smaller areas to cover dense regions fully).",
            "default": 25
          },
          "maxResults": {
            "title": "Max stations in total",
            "minimum": 0,
            "maximum": 1000000,
            "type": "integer",
            "description": "Overall cap across all areas and station links. 0 means no overall cap (each area still follows its own limit).",
            "default": 0
          },
          "connectorTypes": {
            "title": "Connector types",
            "type": "array",
            "description": "Only keep stations offering at least one of these connector types (for example CCS, CHAdeMO, J-1772, NACS). Case-insensitive match against PlugShare's connector list. Leave empty to keep all.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "fastChargersOnly": {
            "title": "Fast (DC) chargers only",
            "type": "boolean",
            "description": "Only keep locations PlugShare flags as DC fast chargers.",
            "default": false
          },
          "minKilowatts": {
            "title": "Minimum power (kW)",
            "minimum": 0,
            "maximum": 1000,
            "type": "number",
            "description": "Only keep stations whose strongest outlet delivers at least this many kW. Needs full station details to be on. 0 keeps everything.",
            "default": 0
          },
          "minPlugScore": {
            "title": "Minimum PlugScore",
            "minimum": 0,
            "maximum": 10,
            "type": "number",
            "description": "Only keep stations with a PlugScore of at least this value (0 to 10). 0 keeps everything.",
            "default": 0
          },
          "availableNowOnly": {
            "title": "Available right now only",
            "type": "boolean",
            "description": "Only keep stations that currently report at least one free charging unit.",
            "default": false
          },
          "excludeUnderRepair": {
            "title": "Skip stations under repair",
            "type": "boolean",
            "description": "Drop stations PlugShare marks as under repair.",
            "default": false
          },
          "excludeComingSoon": {
            "title": "Skip coming-soon stations",
            "type": "boolean",
            "description": "Drop stations PlugShare marks as not yet open.",
            "default": false
          },
          "networkIncludes": {
            "title": "Include networks (allowlist)",
            "type": "array",
            "description": "Only keep stations whose network name contains one of these strings (for example Tesla, EVgo, ChargePoint). Case-insensitive. Needs full station details to be on.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "networkExcludes": {
            "title": "Exclude networks (blocklist)",
            "type": "array",
            "description": "Drop stations whose network name contains one of these strings. Case-insensitive. Needs full station details to be on.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "includeDetails": {
            "title": "Fetch full station details",
            "type": "boolean",
            "description": "Fetch each station's full record: hours, cost, phone, description and the outlet-level connector, power and status breakdown. Turn off for a fast overview using only the search fields.",
            "default": true
          },
          "includeReviews": {
            "title": "Include reviews",
            "type": "boolean",
            "description": "Include user reviews (rating, comment, connector used, reviewer display name). Off by default because reviewer names are user-generated personal data. Needs full station details to be on.",
            "default": false
          },
          "onlyNewOrChanged": {
            "title": "Only new or changed stations",
            "type": "boolean",
            "description": "Remember what earlier runs returned and output only stations that are new or changed since then; each row gets a changeType of new or changed. Use it on a schedule with the same search areas.",
            "default": false
          },
          "monitorScope": {
            "title": "Monitor name",
            "type": "string",
            "description": "Optional name for the saved memory used by monitoring. Use the same name on every scheduled run of one watch list; use different names to keep several lists apart. Letters, numbers and hyphens. Empty means it is derived from your search areas."
          },
          "sinceDate": {
            "title": "Only stations updated since",
            "type": "string",
            "description": "ISO date, for example 2026-08-01. Skip stations whose PlugShare update time is older. Needs full station details to be on."
          },
          "requestDelayMs": {
            "title": "Delay between requests (ms)",
            "minimum": 0,
            "maximum": 30000,
            "type": "integer",
            "description": "Pause after each detail request, per parallel lane. Keep a reasonable delay to stay polite to PlugShare.",
            "default": 300
          },
          "maxConcurrency": {
            "title": "Parallel detail requests",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "How many station detail requests run side by side (1 to 5). Lower is gentler.",
            "default": 3
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Residential proxies are needed: the datacenter pool is blocked by PlugShare's protection and residential passes most requests, with every failed request retried on a fresh address.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}