{
  "openapi": "3.0.1",
  "info": {
    "title": "PlugShare Scraper",
    "description": "[💰 $4 / 1K] Extract EV charging stations from PlugShare — network, plug types, power in kW, pricing, access rules, and GPS. Search by keyword, map area, or station URLs. Filter by plug type, fast chargers (50kW+), access type. Check-ins available as opt-in.",
    "version": "1.0",
    "x-build-id": "sqF7rgRfb7m3cuIVn"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/solidcode~plugshare-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-solidcode-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/solidcode~plugshare-scraper/runs": {
      "post": {
        "operationId": "runs-sync-solidcode-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/solidcode~plugshare-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-solidcode-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": {
          "searchQueries": {
            "title": "Search Queries",
            "type": "array",
            "description": "What to search for on PlugShare — a station name, a charging network, or a place. For example 'Tesla Supercharger San Francisco' or 'ChargePoint Austin'. Each query is searched separately. Note that this is a name match rather than a map search: results are ordered by distance from your map center (if you set one) but can include far-away stations with similar names. A single very broad query has a search-depth limit (the run log tells you if one was reached) — to collect everything in a specific area, use 'Search by Map Area' below instead.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Station URLs",
            "type": "array",
            "description": "Paste PlugShare station page links (like https://www.plugshare.com/location/545097) to pull those exact stations. Handy when you already know which stations you want. Pasted links are fetched directly, so the filters below don't apply to them.",
            "items": {
              "type": "string"
            }
          },
          "latitude": {
            "title": "Center Latitude",
            "minimum": -90,
            "maximum": 90,
            "type": "number",
            "description": "Latitude of the point to search around, for example 37.7749 for San Francisco. Leave empty unless you want to search a specific map area. Both latitude and longitude must be set for this to work."
          },
          "longitude": {
            "title": "Center Longitude",
            "minimum": -180,
            "maximum": 180,
            "type": "number",
            "description": "Longitude of the point to search around, for example -122.4194 for San Francisco."
          },
          "radiusKm": {
            "title": "Search Radius (km)",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "How far around the center point to look, in kilometers. Only used when a center latitude and longitude are set. PlugShare returns at most 250 stations per map area, so this scraper automatically splits a large area into smaller tiles to get past that limit. In an extremely dense city a very large radius can still miss some stations — for exhaustive coverage, use a smaller radius over the area you care about (the run log tells you if this happened)."
          },
          "connectorTypes": {
            "title": "Plug Types",
            "uniqueItems": true,
            "type": "array",
            "description": "Only return stations that offer at least one of these plug types. Leave empty to include every plug type. Note that a matching station will often list other plug types too — most sites with a CCS1 plug also have a J-1772 one.",
            "items": {
              "type": "string",
              "enum": [
                "NACS",
                "CCS1",
                "CCS2",
                "CHADEMO",
                "J1772",
                "TYPE2",
                "TESLA_ROADSTER",
                "TYPE3",
                "TYPE3A",
                "THREE_PHASE",
                "NEMA_14_50",
                "NEMA_TT_30",
                "WALL_OUTLET",
                "WALL_OUTLET_EURO",
                "WALL_OUTLET_BS1363",
                "WALL_OUTLET_3112",
                "BLUE_COMMANDO",
                "CARAVAN_MAINS",
                "GBT",
                "GBT_FAST",
                "TYPE6",
                "LECCS"
              ],
              "enumTitles": [
                "NACS (Tesla) — Tesla Supercharger plug",
                "CCS1 — fast charging, North America",
                "CCS2 — fast charging, Europe",
                "Quick Charge (CHAdeMO) — fast charging",
                "J-1772 — standard AC, North America",
                "Mennekes (Type 2) — standard AC, Europe",
                "Tesla (Roadster) — legacy Tesla plug",
                "EV Plug (Type 3)",
                "Type 3A",
                "Three Phase",
                "NEMA 14-50",
                "NEMA TT-30",
                "Wall Outlet",
                "Wall Outlet (Euro)",
                "Wall Outlet (BS1363)",
                "Wall Outlet (3112)",
                "Blue Commando",
                "Caravan Mains Socket",
                "GB/T",
                "GB/T (Fast)",
                "Type 6",
                "LECCS"
              ]
            }
          },
          "fastChargersOnly": {
            "title": "Fast Chargers Only",
            "type": "boolean",
            "description": "Only return charging stations rated 50 kW and above — the ones that charge a car in minutes rather than hours. A matching station may still list some slower plugs alongside its fast ones."
          },
          "accessType": {
            "title": "Who Can Use It",
            "enum": [
              "any",
              "public",
              "restricted",
              "private"
            ],
            "type": "string",
            "description": "Limit results by who is allowed to charge there. 'Public' means anyone can use it; 'restricted' covers customer-only, employee-only and similar limited access; 'private' covers home and other private chargers that PlugShare members have shared."
          },
          "includeCheckIns": {
            "title": "Include Check-ins & Reviews",
            "type": "boolean",
            "description": "Also collect what drivers said about each station — comment, rating, vehicle, charge speed, and date. This adds a separate row for every check-in, so your result count (and cost) will be much higher. Leave this off if you only want station facts."
          },
          "maxCheckInsPerStation": {
            "title": "Max Check-ins per Station",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "The most check-ins to collect from any single station, newest first. Stations with more check-ins than this are cut off at this number, and stations with fewer simply return what they have. Only used when 'Include Check-ins & Reviews' is turned on."
          },
          "maxResults": {
            "title": "Maximum Stations",
            "minimum": 1,
            "type": "integer",
            "description": "The most stations to collect in total across everything you searched for. Check-ins do not count toward this number. Set this to 0 to collect as many as can be found, up to a 50,000 safety limit per run."
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}