Skip to main content
Glama

Poland EV Charging Stations API – Official EIPA

polish-ev-charging-stations-eipa
Read-onlyIdempotent

Retrieves EV, CNG/LNG and hydrogen stations in Poland from the official EIPA/UDT register, including addresses, GPS, power and connectors. Filters by city, operator, province, power or connector type.

Instructions

Returns EV, CNG/LNG and hydrogen stations in Poland from the official EIPA register run by UDT: operator, address, GPS, power in kW and connectors, with includeLiveData adding live point status and ad-hoc prices; stations of possibly private operators are anonymised or skipped. Without eipaToken it uses a shared EIPA demo account limited to 10 static downloads an hour, so it may be refused when busy; pass your own free EIPA reader token for regular use. Use it for charging infrastructure; for vehicle fleet statistics use polish-vehicle-registrations-cepik. Read-only: it only queries the public source and never writes to the registry; onlyNew merely keeps a stateKey memory in your own Apify account. Each call needs the APIFY_TOKEN env var and starts one paid run of the Apify Actor enterprising_hamster/polish-ev-charging-stations-eipa on your Apify account, billed pay-per-event per delivered item plus any Apify platform usage; the server waits up to 300 s for the run and returns JSON {items, truncated} with at most maxItems (max 100) items and 256 KiB.

Input Schema

NameRequiredDescriptionDefault
citiesNoOnly stations in these places (miejscowość), e.g. Warszawa, Kraków. Case and Polish letters do not matter.
onlyNewNoSkip stations delivered by an earlier run with the same state key whose data (including live status and prices, when included) has not changed.
maxItemsNoStop after this many stations (newest registrations first). The whole register has about 7,500.
stateKeyNoName of the memory used by 'Only new or changed'. Use a different key per schedule.
eipaTokenNoOptional: 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.
operatorsNoOnly 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.
provincesNoOnly stations in these voivodeships. Empty = whole country.
minPowerKwNoOnly stations with at least one point of this power or more, e.g. 50 for fast DC, 150 for high-power charging. 0 = any.
communitiesNoOnly stations in these communes (gmina), as EIPA names them, e.g. Warszawa, Siemianowice Śląskie.
stationTypesNoELECTRIC = EV chargers, GAS = CNG/LNG, HYDROGEN = hydrogen. Empty = all.
connectorTypesNoOnly stations with at least one of these connectors. Empty = any.
includeLiveDataNoDownload EIPA's live file: point status (free, occupied, out of service) and ad-hoc prices. One extra download (limit 240 an hour).
onlyAvailableNowNoOnly stations where EIPA reports at least one point operational and free at download time. Needs live data.
onlyFreeChargingNoOnly stations that list free charging (bezpłatne ładowanie) as a payment method.
privateOperatorsNoStations 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.ANONYMIZE
staticCacheHoursNoReuse 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.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Far beyond the annotations: it discloses anonymisation/skipping of possibly-private operators, the shared demo-account rate limit and refusal behavior, the 300 s wait, the 100-item / 256 KiB truncation cap, and that each call starts a paid Apify run billed per delivered item. It also reconciles the read-only claim with the fact that onlyNew keeps a stateKey memory in the user's own account, which is exactly the nuance an agent needs. Minor gap: it does not spell out cache/live-download limits beyond the inline mention.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, and each subsequent clause carries real information (auth fallback, anonymisation, billing, truncation). However, it is a single dense block that mixes purpose, credentials, billing, and return shape, so a reader must parse the whole paragraph to find the cost and token rules.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 16-parameter tool with no output schema, the description still states the return shape ({items, truncated}), the item cap (maxItems ≤100, 256 KiB), the total register size (~7,500), and the auth/billing model. Combined with 100% schema coverage, an agent has everything needed to call it correctly and interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed per-parameter descriptions, so the baseline is 3, but the description adds cross-parameter semantics the schema treats locally: includeLiveData unlocks live point status and ad-hoc prices, onlyNew depends on stateKey memory, and privateOperators controls whether records arrive anonymised. It does not re-explain filters like cities or minPowerKw, which the schema already covers well.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence names a specific resource (EV, CNG/LNG and hydrogen stations in Poland), the authoritative source (official EIPA register run by UDT), and the returned fields (operator, address, GPS, power, connectors). It also explicitly routes fleet statistics queries to polish-vehicle-registrations-cepik, so an agent can distinguish it from siblings without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use it ('for charging infrastructure'), names the alternative for a different need ('for vehicle fleet statistics use polish-vehicle-registrations-cepik'), and gives operating guidance on credentials (without eipaToken it falls back to a shared demo account capped at 10 static downloads/hour, so pass your own free reader token for regular use). Cost and run-time prerequisites are also surfaced.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.