Track your packages in Home Assistant. This is a suite of custom integrations for 50 parcel carriers across Europe, North America, South America, Asia and Oceania — PostNL, DHL, DPD, GLS, PostNord, UPS, 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 and others), that’s 57 carrier brands in total. 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 — parcels shipped from China | |
| Ampère | Netherlands | bol.com’s own last-mile brand — tracking link from the shipping e-mail | |
| An Post | Ireland | Account — with a watchlist for parcels not yet linked to your account | |
| Aramex | Australia & New Zealand | Tracking code | |
| Balikovna | Czech Republic | Tracking number — Česká Pošta’s own pickup-point/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 | |
| Bring | Norway, Sweden & Denmark | Account — Posten’s sister brand, see below | |
| BRT | Italy | myDPD account — DPD’s brand name in Italy, see below | |
| Budbee | Nordics & Benelux — home delivery and Budbee Box lockers | Tracking or order number, no e-mail address needed — incoming & outgoing | |
| Cainiao | Cross-border | Tracking number — AliExpress, Temu, Shein and similar | |
| Canpar | Canada | Tracking number | |
| Česká Pošta | Czech Republic | Tracking number — same repo also covers the Balikovna brand above | |
| Chronopost | France | Tracking number — La Poste’s express brand, see below | |
| Colissimo | France | Tracking number — La Poste’s parcel brand, see below | |
| Correos | Spain | Tracking number | |
| CTT | Portugal | Tracking number | |
| DAO | Denmark | Account — parcels already linked in the DAO app show up automatically | |
| Delhivery | India | AWB (waybill) number | |
| DHL | Germany & Poland | Account — incoming & outgoing (DE), incoming (PL) | |
| DHL eCommerce | Netherlands | Account — incoming & outgoing | |
| DPD | Netherlands and 17 more countries — Germany on its own separate backend, the rest sharing DPD’s myDPD network | myDPD account — incoming & outgoing; also sold as BRT in Italy, see above | |
| Dragonfly Shipping | Netherlands & Australia | Track & Trace code only; also sold as Intelcom in Canada, see below | |
| Dynalogic | Netherlands & Belgium — also sold as MediaMarkt, Samsung, Nespresso, Menken | Order number + postal code | |
| Econt | Bulgaria | Shipment number | |
| FAN Courier | Romania | Tracking code | |
| GLS | Netherlands, Germany and 17 more countries — 14 on GLS’s shared pan-EU tracker, plus Canada, the US and Poland on their own national backends | Tracking number + postal code (US and Poland need only the tracking number) | |
| Helthjem | Norway | Tracking number | |
| Hermes | Germany | Tracking number | |
| InPost | Poland, plus keyless barcode tracking in Italy, Portugal & the UK | Account (PL) — a parcel ready for pickup shows the locker’s name | |
| Intelcom | Canada | Track & Trace code — Dragonfly Shipping’s Canadian brand, see above | |
| La Poste | France | Tracking number — covers Colissimo and Chronopost parcels, see above | |
| Nova Post (Nova Poshta) | Ukraine, Europe and the US | Tracking number | |
| NZ Post | New Zealand | Tracking code | |
| OnTrac | United States | Tracking code — West & Midwest | |
| ORLEN Paczka | Poland | Tracking number | |
| Österreichische Post | Austria | Tracking number | |
| Packeta | Central Europe, Germany & Slovenia — pickup points & lockers | “Z” tracking number; also sold as Zásilkovna in Czechia, see below | |
| Planzer | Switzerland & Liechtenstein — the carrier behind IKEA home delivery | Shipment number or IKEA order number | |
| Poste Italiane | Italy | Tracking code | |
| Posten | Norway, Sweden & Denmark | Account — incoming & outgoing; also sold as Bring, see above | |
| PostNL | Netherlands & Belgium | Account — parcels and announced MyMail letters, incoming & outgoing | |
| PostNord | Nordics | Tracking number | |
| PPL | Czechia | Passwordless e-mail + PIN login — incoming & outgoing | |
| Quickpac | Switzerland | Shipment number — delivery arm for Galaxus/Digitec | |
| Sameday | South-East Europe — easybox lockers | AWB number | |
| Shopee Xpress | Brazil, Indonesia, Malaysia, the Philippines, Thailand & Vietnam | Tracking code | |
| Slovenská Pošta | Slovakia | Tracking code | |
| SpeedX | United States | Tracking code | |
| SunYou | Cross-border | Tracking number — SYPost, ahead of the local carrier that delivers it | |
| Swiss Post | Switzerland | Tracking number | |
| Trunkrs | Netherlands | Trunkrs number + postal code | |
| UniUni | Canada & United States | Tracking code | |
| UPS | Worldwide | Tracking number — no UPS account needed, though updates arrive slowly | |
| Vinted Go (formerly Homerr) | Netherlands, Belgium, France, Spain & Portugal | Passwordless e-mail login — incoming & outgoing | |
| Zásilkovna | Czech Republic | “Z” tracking number — 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 early release (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/_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.




