{
  "openapi": "3.0.1",
  "info": {
    "title": "EIPA Charging Poland API – Official EV Stations",
    "description": "EIPA charging Poland: every public EV charger from the official UDT register — operator, address, GPS, power, CCS/Type 2/CHAdeMO, live free/occupied status and ad-hoc prices per kWh. Runs without a token; export CSV, JSON or Excel. No personal data.",
    "version": "0.1",
    "x-build-id": "rCk0x7BK8QI7kBgBK"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/enterprising_hamster~polish-ev-charging-stations-eipa/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-enterprising_hamster-polish-ev-charging-stations-eipa",
        "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/enterprising_hamster~polish-ev-charging-stations-eipa/runs": {
      "post": {
        "operationId": "runs-sync-enterprising_hamster-polish-ev-charging-stations-eipa",
        "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/enterprising_hamster~polish-ev-charging-stations-eipa/run-sync": {
      "post": {
        "operationId": "run-sync-enterprising_hamster-polish-ev-charging-stations-eipa",
        "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": {
          "eipaToken": {
            "title": "EIPA reader token",
            "type": "string",
            "description": "Optional: your own free EIPA reader token. Leave empty to try the Actor on its shared demo account, which all users share under EIPA's limit of 10 static downloads an hour, so it may be refused when busy. For regular or scheduled runs register an e-mail at https://eipa.udt.gov.pl/reader/register, confirm it, and paste the 32-character token (or any download link) from the e-mail EIPA sends. The Actor caches the static files in your account, so one account is enough for frequent runs."
          },
          "provinces": {
            "title": "Voivodeships",
            "type": "array",
            "description": "Only stations in these voivodeships. Empty = whole country.",
            "items": {
              "type": "string",
              "enum": [
                "dolnośląskie",
                "kujawsko-pomorskie",
                "lubelskie",
                "lubuskie",
                "łódzkie",
                "małopolskie",
                "mazowieckie",
                "opolskie",
                "podkarpackie",
                "podlaskie",
                "pomorskie",
                "śląskie",
                "świętokrzyskie",
                "warmińsko-mazurskie",
                "wielkopolskie",
                "zachodniopomorskie"
              ],
              "enumTitles": [
                "dolnośląskie",
                "kujawsko-pomorskie",
                "lubelskie",
                "lubuskie",
                "łódzkie",
                "małopolskie",
                "mazowieckie",
                "opolskie",
                "podkarpackie",
                "podlaskie",
                "pomorskie",
                "śląskie",
                "świętokrzyskie",
                "warmińsko-mazurskie",
                "wielkopolskie",
                "zachodniopomorskie"
              ]
            },
            "default": []
          },
          "cities": {
            "title": "Cities or villages",
            "type": "array",
            "description": "Only stations in these places (miejscowość), e.g. Warszawa, Kraków. Case and Polish letters do not matter.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "communities": {
            "title": "Communes (gmina)",
            "type": "array",
            "description": "Only stations in these communes (gmina), as EIPA names them, e.g. Warszawa, Siemianowice Śląskie.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "stationTypes": {
            "title": "Station types",
            "type": "array",
            "description": "ELECTRIC = EV chargers, GAS = CNG/LNG, HYDROGEN = hydrogen. Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "ELECTRIC",
                "GAS",
                "HYDROGEN"
              ],
              "enumTitles": [
                "EV charging",
                "CNG / LNG",
                "Hydrogen"
              ]
            },
            "default": []
          },
          "operators": {
            "title": "Operators",
            "type": "array",
            "description": "Only stations whose operator name, short name, EIPA code (e.g. PL-GRW) or site operator contains one of these, e.g. GreenWay, Orlen, Tesla. Private operators are never matched.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "connectorTypes": {
            "title": "Connector types",
            "type": "array",
            "description": "Only stations with at least one of these connectors. Empty = any.",
            "items": {
              "type": "string",
              "enum": [
                "IEC-62196-T2-COMBO",
                "CHADEMO",
                "IEC-62196-T2-F-NOCABLE",
                "IEC-62196-T2-F-CABLE",
                "IEC-62196-T1-COMBO",
                "IEC-62196-T1-M-CABLE",
                "IEC-62196-T1-F-NOCABLE",
                "IEC-TS-63379",
                "TESLA-SPECIFIC",
                "IEC-62196-T3C-F-NOCABLE",
                "IEC-62196-T3A-F",
                "IEC-309-2-1PH",
                "IEC-309-2-3PH",
                "IEC-309-2-DC",
                "DOMESTIC-A",
                "DOMESTIC-B",
                "DOMESTIC-C",
                "DOMESTIC-D",
                "DOMESTIC-E",
                "DOMESTIC-F",
                "DOMESTIC-E-F",
                "DOMESTIC-G",
                "DOMESTIC-H",
                "DOMESTIC-I",
                "DOMESTIC-J",
                "DOMESTIC-K",
                "NEMA-5-20",
                "AVCON",
                "LARGE-PADDLE",
                "SMALL-PADDLE",
                "CHINA-PART2",
                "CHINA-PART3",
                "BPLC-SPECIFIC",
                "MARECHAL"
              ],
              "enumTitles": [
                "CCS2 (Combo Type 2) (IEC-62196-T2-COMBO)",
                "CHAdeMO (CHADEMO)",
                "Type 2 socket (IEC-62196-T2-F-NOCABLE)",
                "Type 2 tethered cable (IEC-62196-T2-F-CABLE)",
                "CCS1 (Combo Type 1) (IEC-62196-T1-COMBO)",
                "Type 1 tethered cable (IEC-62196-T1-M-CABLE)",
                "Type 1 socket (IEC-62196-T1-F-NOCABLE)",
                "MCS (megawatt, trucks) (IEC-TS-63379)",
                "Tesla (TESLA-SPECIFIC)",
                "Type 3C (IEC-62196-T3C-F-NOCABLE)",
                "Type 3A (Scame) (IEC-62196-T3A-F)",
                "IEC 60309 single-phase (IEC-309-2-1PH)",
                "IEC 60309 three-phase (IEC-309-2-3PH)",
                "IEC 60309 DC (IEC-309-2-DC)",
                "Domestic type A (DOMESTIC-A)",
                "Domestic type B (DOMESTIC-B)",
                "Domestic type C (DOMESTIC-C)",
                "Domestic type D (DOMESTIC-D)",
                "Domestic type E (DOMESTIC-E)",
                "Domestic type F (Schuko) (DOMESTIC-F)",
                "Domestic type E/F (DOMESTIC-E-F)",
                "Domestic type G (DOMESTIC-G)",
                "Domestic type H (DOMESTIC-H)",
                "Domestic type I (DOMESTIC-I)",
                "Domestic type J (DOMESTIC-J)",
                "Domestic type K (DOMESTIC-K)",
                "NEMA 5-20 (NEMA-5-20)",
                "Avcon (AVCON)",
                "Large Paddle inductive (LARGE-PADDLE)",
                "Small Paddle inductive (SMALL-PADDLE)",
                "China GB part 2 (CHINA-PART2)",
                "China GB part 3 (CHINA-PART3)",
                "Better Place (BPLC-SPECIFIC)",
                "Marechal (MARECHAL)"
              ]
            },
            "default": []
          },
          "minPowerKw": {
            "title": "Minimum power (kW)",
            "minimum": 0,
            "maximum": 5000,
            "type": "integer",
            "description": "Only stations with at least one point of this power or more, e.g. 50 for fast DC, 150 for high-power charging. 0 = any.",
            "default": 0
          },
          "onlyAvailableNow": {
            "title": "Only with a free point now",
            "type": "boolean",
            "description": "Only stations where EIPA reports at least one point operational and free at download time. Needs live data.",
            "default": false
          },
          "onlyFreeCharging": {
            "title": "Only free charging",
            "type": "boolean",
            "description": "Only stations that list free charging (bezpłatne ładowanie) as a payment method.",
            "default": false
          },
          "includeLiveData": {
            "title": "Include live status and prices",
            "type": "boolean",
            "description": "Download EIPA's live file: point status (free, occupied, out of service) and ad-hoc prices. One extra download (limit 240 an hour).",
            "default": true
          },
          "privateOperators": {
            "title": "Stations of private operators",
            "enum": [
              "ANONYMIZE",
              "SKIP"
            ],
            "type": "string",
            "description": "Stations whose operator may be a natural person (sole traders, civil partnerships, names without a legal form). ANONYMIZE = deliver them at commune level with technical data, prices and status only (no operator, address, coordinates, codes or notes). SKIP = leave them out.",
            "default": "ANONYMIZE"
          },
          "staticCacheHours": {
            "title": "Reuse static data for (hours)",
            "minimum": 0,
            "maximum": 168,
            "type": "integer",
            "description": "Reuse the register (operators, sites, stations, points) downloaded by an earlier run with the same token for this many hours, saving 5 of your 10 static downloads an hour. Live data is always fresh. 0 = always download.",
            "default": 6
          },
          "maxItems": {
            "title": "Max stations",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Stop after this many stations (newest registrations first). The whole register has about 7,500.",
            "default": 100
          },
          "onlyNew": {
            "title": "Only new or changed",
            "type": "boolean",
            "description": "Skip stations delivered by an earlier run with the same state key whose data (including live status and prices, when included) has not changed.",
            "default": false
          },
          "stateKey": {
            "title": "State key",
            "type": "string",
            "description": "Name of the memory used by 'Only new or changed'. Use a different key per schedule."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}