Track your packages in Home Assistant. This is a suite of custom integrations for 73 parcel carriers across Europe, North America, South America, Asia and Oceania — PostNL, DHL, DPD, GLS, PostNord, UPS, FedEx, USPS, Canada Post, Amazon, Evri, Posti, Hermes, Swiss Post, Correos, Packeta, Österreichische Post and many more — plus an aggregator that merges them into one set of sensors. Counting sister brands sold under a different name (BRT, Bring, Zásilkovna, Colissimo and others), that’s 81 carrier brands over 47 countries. Every integration speaks the same parcel contract, so your automations and dashboards work the same no matter who delivers.
Full documentation: https://ha-parcel-integrations.github.io/
All repositories: Home Assistant Parcel / Package Integrations · GitHub
Most carriers need nothing but a tracking number — no account, no API key, no developer portal.
Supported carriers
Sorted alphabetically; a sister brand of another integration (same repo, same backend) is listed in its own place with a note pointing to the parent entry.
| Carrier | Country / region | What you need | |
|---|---|---|---|
| 4PX | Cross-border | Tracking code | |
| ACS Courier | Greece | Tracking code | |
| Airmee | Sweden | Tracking link, or log in with an SMS code | |
| Amazon | 17 Amazon storefronts | Account — every shipment of your recent orders, one sign-in per storefront; handed over to the delivering carrier’s own integration when you have it | |
| Ampère | Netherlands | Tracking link from the shipping e-mail | |
| An Post | Ireland | Account — with a watchlist for parcels not yet linked to your account | |
| Apple Express | Canada & United States | Order or reference number | |
| Aramex | Australia & New Zealand | Tracking code | |
| Balikovna | Czechia | Tracking code — Ceska Posta’s pickup-point and locker brand, see below | |
| Better Trucks | United States | Tracking code | |
| BoxNow | Bulgaria, Greece, Croatia & Cyprus | Tracking code — pick your country’s backend at setup | |
| bpost | Belgium | Barcode + postal code, or a My bpost account for incoming & outgoing | |
| Bring | Norway, Sweden & Denmark | Account — incoming & outgoing; Posten’s sister brand, see below | |
| BRT | Italy | myDPD account — DPD’s brand name in Italy, see below | |
| Budbee | Nordics & Benelux | Tracking or order number, no e-mail address needed — incoming & outgoing | |
| Cainiao | Cross-border | Tracking code | |
| Canada Post | Canada | Tracking code or delivery-notice card number, or an account | |
| Canpar | Canada | Tracking code | |
| Ceska Posta | Czechia | Tracking code — same repo also covers the Balikovna brand above | |
| Chronopost | France | Tracking code — La Poste’s express brand, see below | |
| Colis Privé | France, Belgium & Luxembourg | Tracking code + delivery postcode | |
| Colissimo | France | Tracking code — La Poste’s parcel brand, see below | |
| Correos (Express) | Spain | Tracking code | |
| CTT | Portugal & Spain | Tracking code — same repo also covers CTT Express, see below | |
| CTT Express | Spain | Tracking code — CTT’s Spanish parcel arm, see above | |
| DAO | Denmark | Account — parcels already linked in the DAO app show up automatically | |
| Delhivery | India | Tracking code | |
| DHL | Worldwide | Tracking code worldwide for DHL Parcel, DHL Express and DHL Freight Sweden — or an account in Germany & Poland, incoming & outgoing | |
| DHL NL | Netherlands | Account — incoming & outgoing | |
| DPD | Netherlands & 19 more countries | myDPD account — incoming & outgoing; Germany, Poland and Austria each on their own backend, the rest on myDPD; also sold as BRT in Italy, see above | |
| Dragonfly | Netherlands & Australia | Tracking code — also sold as Intelcom in Canada, see below | |
| Dynalogic | Netherlands & Belgium | Order number + postal code — also sold as MediaMarkt, Samsung, Nespresso, Menken | |
| Econt | Bulgaria | Tracking code | |
| ELTA Courier | Greece | Tracking code | |
| Evri | United Kingdom | Tracking code + postal code — incoming & outgoing | |
| FAN Courier | Romania | Tracking code | |
| FedEx | Worldwide | Your own FedEx API key + tracking code | |
| GLS | 20 countries | Tracking code + postal code (US and Poland need only the tracking code) — 15 countries on GLS’s pan-EU tracker, plus Canada, Germany, the Netherlands, Poland and the US on national backends | |
| GoBolt | Canada & United States | Tracking code | |
| GOFO Express | US, Canada, Italy, France, Spain & Netherlands | Tracking code | |
| Helthjem | Norway | Tracking code | |
| Hermes | Germany | Tracking code, or an account | |
| ICS Courier | Canada | Tracking code | |
| InPost | Poland, Italy, Portugal, UK & Spain | Account in Poland, or keyless tracking codes in Italy, Portugal, the UK & Spain | |
| Intelcom | Canada | Tracking code — Dragonfly’s Canadian brand, see above | |
| La Poste | France | Tracking code — covers Colissimo and Chronopost parcels, see above | |
| Matkahuolto | Finland | Tracking code | |
| Mondial Relay | France, Belgium, Netherlands, Spain & Portugal | Account — incoming & outgoing | |
| Nova Post | Ukraine, Europe & the US | Tracking code | |
| NZ Post | New Zealand | Tracking code | |
| OnTrac | United States | Tracking code | |
| ORLEN Paczka | Poland | Tracking code | |
| Österreichische Post | Austria | Tracking code | |
| Paack | Spain, Portugal, France & Italy | Tracking code + delivery postcode | |
| Packeta | Central Europe, Germany & Slovenia | “Z” tracking code — incoming & outgoing; also sold as Zásilkovna in Czechia, see below | |
| Planzer | Switzerland & Liechtenstein | Tracking code or IKEA order number — the carrier behind IKEA home delivery | |
| Poczta Polska | Poland | Tracking code | |
| Poste Italiane | Italy | Tracking code | |
| Posten | Norway, Sweden & Denmark | Account — incoming & outgoing; also sold as Bring, see above | |
| Posti | Finland | Tracking code, or an account | |
| PostNL | Netherlands & Belgium | Account — parcels and announced MyMail letters, incoming & outgoing | |
| PostNord | Nordics | Tracking code, or an account for incoming & outgoing | |
| PPL CZ | Czechia | Passwordless e-mail + PIN login, or just a tracking code — incoming & outgoing | |
| Purolator | Canada | Tracking number (PIN) — incoming & outgoing | |
| Quickpac | Switzerland | Tracking code — delivery arm for Galaxus/Digitec | |
| Sameday | South-East Europe | AWB number — easybox lockers | |
| SEUR | Spain | Account — incoming & outgoing | |
| Shopee Xpress | Brazil, Indonesia, Malaysia, the Philippines, Thailand & Vietnam | Tracking code | |
| Slovak Parcel Service | Slovakia | Tracking code + postal code | |
| Slovenská Pošta | Slovakia | Tracking code | |
| Spee-Dee Delivery | United States | Tracking code | |
| SpeedX | United States | Tracking code | |
| Straightship | Canada | Tracking code | |
| SunYou | Cross-border | Tracking code — SYPost, ahead of the local carrier that delivers it | |
| Swiss Post | Switzerland | Tracking code, or a SwissID account for incoming & outgoing | |
| Trunkrs | Netherlands & Belgium | Tracking code + postal code | |
| UniUni | Canada & United States | Tracking code | |
| UPS | Worldwide | Tracking code — no UPS account needed, though updates arrive slowly | |
| USPS | United States | Informed Delivery account, or your own USPS API key | |
| Vinted Go | Netherlands, Belgium, France, Spain & Portugal | Passwordless e-mail login — incoming & outgoing; formerly Homerr | |
| Zásilkovna | Czechia | “Z” tracking code — Packeta’s own brand name in Czechia, see above |
The carriers page has the same list with versions, what each one exposes, and which ones are still marked beta (they work, but their status vocabulary hasn’t been confirmed against enough real shipments yet).
Parcel Aggregator — all carriers, one set of sensors
Running more than one of the above? The optional Parcel Aggregator discovers them automatically and re-emits everything merged:
sensor.parcel_aggregator_incoming_parcels/_outgoing_parcels/_delivered_parcels/_outgoing_delivered_parcels/_en_route_to_pickup_point/_awaiting_pickupsensor.parcel_aggregator_next_delivery— the earliest expected delivery across every carriercalendar.parcel_aggregator_deliveries— every expected delivery in one agenda- one unified event stream
Nothing to configure, no credentials. A carrier you install next month is picked up without a reload.
One automation, every carrier
triggers:
- trigger: event
event_type: parcel_aggregator_parcel_status_changed
event_data:
new_status: out_for_delivery
actions:
- action: notify.mobile_app
data:
title: "📦 On its way"
message: >-
{{ trigger.event.data.carrier }} is delivering
{{ trigger.event.data.sender or 'your parcel' }} today.




