Australia Post data API: consignments, addresses, PO Boxes
Australia Post (AusPost) is the official Android app of Australia Post Digital, the consumer product arm of Australia's national postal operator. After a MyPost account signs in, the home and Track tabs list consignments on a watchlist, open a scan-by-scan article timeline with estimated delivery windows, and let the recipient set Authority to Leave, Safe Drop, a parcel-locker height preference or a redirect to another address. Find Locations maps nearby post offices, Parcel Lockers and Parcel Collect points with opening hours; the address book stores delivery addresses against the MyPost APCN; Pay a Bill looks up a billerCode on Post Billpay; and PO Box holders renew a lease and pay the invoice in-app. A MyPost Business organisation card, collection-delegation forms for someone else to pick up an article, and Digital iD document checks sit on the More menu. The app serves Australian households tracking marketplace orders and small senders who already hold a MyPost or MyPost Business account, sitting next to StarTrack for domestic freight and next to UPS, FedEx and Sendle for parcels that leave the Australia Post network.
Watchlist consignments expose consignmentId, milestoneStatus and an estimatedDeliveryDateRange with fromDate/toDate, while the modern track payload adds per-article barcode, timeWindowFrom and a trackingEvents scan list. MyPost consumer records are keyed by apcn and carry legalFirstName, verified mobiles and address-book rows with a dpid; Authority to Leave returns location code, Safe Drop returns a signed image url, and service points publish workCentreId, lat/lon and opening-hours attributes.
Retailer trackers, locker-routing tools and Australian checkout forms consume those fields — joining estimated windows to order numbers, sending a recipient to the Parcel Collect counter that holds accessCode, or writing a matched DPID back onto a delivery address. PO Box invoiceId rows with leaseEndDate and pay-on-time amount, plus Post Billpay billerCode/billAmount, feed facilities and accounts-payable ledgers. openData Studio turns that surface into callable open data.
Screenshots
API surface
The endpoints and request/response examples below are reconstructed from the app's interface — illustrative, not a live capture.
List watchlist consignments
GET
/v1/tracking/watchlistopendataReturns the signed-in MyPost watchlist used by the Track tab: consignment id, nickname, milestone, ATL flags and the estimated-delivery window.
Auth: OAuth Bearer access token from MyPost sign-in (Authorization: Bearer), plus an API-KEY header.
- id
- apcn
- nickname
- trackStatus
- milestoneStatus
- atlEligible
- atlStatus
- estimatedDeliveryDateRange
- fromDate
- toDate
- deliveredByDateISO
- articleDetails
- articleId
- barcode
GET /v1/tracking/watchlist HTTP/1.1 Authorization: Bearer <accessToken> API-KEY: <apiKey> Accept: application/json[ { "id": "33ABC1234567", "apcn": "1234567890", "nickname": "Office monitors", "trackStatus": "In transit", "milestoneStatus": "InTransit", "atlEligible": true, "atlStatus": "NOT_SET", "estimatedDeliveryDateRange": { "fromDate": "2026-10-10", "toDate": "2026-10-12" }, "deliveredByDateISO": "2026-10-12", "articleDetails": [{ "articleId": "33ABC1234567A001", "barcode": "01993126509999999999" }] } ]Get watchlist consignment detail
GET
/v1/tracking/watchlist/{consignmentId}opendataHydrates a single watchlist consignment, including parcel-locker accessCode and the work centre holding an item awaiting collection.
Auth: OAuth Bearer access token from MyPost sign-in (Authorization: Bearer), plus an API-KEY header.
- id
- apcn
- nickname
- trackStatus
- milestoneStatus
- accessCode
- awaitingCollectionWorkCentreId
- awaitingCollectionDeliveryPointId
- collectByDateISO
- carbonNeutral
- latestEvent
GET /v1/tracking/watchlist/33ABC1234567 HTTP/1.1 Authorization: Bearer <accessToken> API-KEY: <apiKey> Accept: application/json{ "id": "33ABC1234567", "apcn": "1234567890", "nickname": "Office monitors", "trackStatus": "Awaiting collection", "milestoneStatus": "AwaitingCollection", "accessCode": "847291", "awaitingCollectionWorkCentreId": "WC2042", "awaitingCollectionDeliveryPointId": "DPID-998877", "collectByDateISO": "2026-10-18", "carbonNeutral": true, "latestEvent": { "location": "Sydney Parcel Facility", "dateTime": "2026-10-09T06:14:00Z" } }Get modern track shipment
GET
/v1/tracking/consignments/{trackingId}opendataReturns the modern track payload: sender/receiver parties, per-article barcode, estimated-delivery window and the trackingEvents timeline.
Auth: OAuth Bearer access token from MyPost sign-in (Authorization: Bearer), plus an API-KEY header. Guest track-by-number still hydrates public milestone fields.
- id
- nickname
- milestone
- service
- carrier
- sender
- receiver
- legalName
- brand
- articles
- articleId
- barcode
- estimatedDelivery
- onDate
- timeWindowFrom
- timeWindowTo
- deliveryLocation
- suburb
- postCode
- trackingEvents
GET /v1/tracking/consignments/33ABC1234567 HTTP/1.1 Authorization: Bearer <accessToken> API-KEY: <apiKey> Accept: application/json{ "id": "33ABC1234567", "nickname": "Office monitors", "milestone": "InTransit", "service": {"type": "PARCEL_POST", "carrier": "AUSPOST"}, "sender": {"legalName": "Kmart Australia", "brand": "Kmart", "businessName": "Kmart"}, "receiver": {"legalName": "Alex Rivera", "email": "[email protected]", "mobile": "+61400111222"}, "articles": [{ "articleId": "33ABC1234567A001", "barcode": "01993126509999999999", "milestone": "InTransit", "estimatedDelivery": { "type": "WINDOW", "onDate": "2026-10-11T00:00:00Z", "timeWindowFrom": "2026-10-11T08:00:00Z", "timeWindowTo": "2026-10-11T16:00:00Z" }, "deliveryLocation": { "type": "RESIDENTIAL", "suburb": "Surry Hills", "state": "NSW", "postCode": "2010" }, "trackingEvents": [{ "milestone": "Accepted", "tags": ["SCAN"] }] }] }Get inline estimated delivery
GET
/v1/tracking/consignments/{consignmentId}/delivery-estimateopendataReturns the inline estimated-delivery card for a consignment given destination postcode/suburb/state — onDate plus an expectedBetween window.
Auth: OAuth Bearer access token from MyPost sign-in (Authorization: Bearer), plus an API-KEY header.
- articles
- id
- href
- estimatedDelivery
- onDate
- expectedBetween
- fromDate
- toDate
GET /v1/tracking/consignments/33ABC1234567/delivery-estimate?postcode=2010&suburb=Surry%20Hills&state=NSW HTTP/1.1 Authorization: Bearer <accessToken> API-KEY: <apiKey> Accept: application/json{ "articles": [{ "id": "33ABC1234567A001", "href": "/v1/tracking/consignments/33ABC1234567", "estimatedDelivery": { "onDate": "2026-10-11", "expectedBetween": { "fromDate": "2026-10-11", "toDate": "2026-10-13" } } }] }List nearby service points
GET
/v1/locations/service-pointsopendataReturns nearby post offices, Parcel Lockers and Parcel Collect service points with hours-related attributes, geoLocation and delivery-point id.
Auth: API-KEY header only. Sign-in tokens are excluded on this address-match style call.
- points
- locationCode
- type
- attributes
- name
- phoneNumber
- workCentreId
- operationalCapabilities
- geoLocation
- lat
- lon
- distance
- addressLine1
- suburb
- state
- postcode
- deliveryPointId
GET /v1/locations/service-points?lat=-33.8688&lon=151.2093&types=POST_OFFICE,PARCEL_LOCKER HTTP/1.1 API-KEY: <apiKey> Accept: application/json{ "points": [{ "locationCode": "WC2042", "type": "POST_OFFICE", "attributes": { "name": "Sydney CBD Post Shop", "description": "Full counter and Parcel Collect", "phoneNumber": "+612131318", "workCentreId": "WC2042", "operationalCapabilities": [{"code": "PARCEL_COLLECT"}] }, "location": { "geoLocation": {"lat": -33.8688, "lon": 151.2093, "distance": 0.4}, "addresses": [{ "addressLine1": "219-241 Cleveland St", "suburb": "Strawberry Hills", "state": "NSW", "postcode": "2012", "countryCode": "AU", "deliveryPointId": "DPID-112233" }] } }] }Get MyPost consumer details
GET
/v1/account/customers/{apcn}osintReads the MyPost consumer record keyed by APCN: legal name, dateOfBirth, verified mobiles, emails and saved addresses.
Auth: OAuth Bearer access token from MyPost sign-in (Authorization: Bearer), plus an API-KEY header. Path {apcn} is the signed-in Australia Post customer number.
- apcn
- firstName
- legalFirstName
- middleName
- lastName
- dateOfBirth
- mobiles
- phone
- emails
- verified
- addresses
- line1
- suburb
- state
- postcode
- dpid
GET /v1/account/customers/1234567890?filter=mobiles,addresses,emails HTTP/1.1 Authorization: Bearer <accessToken> API-KEY: <apiKey> Accept: application/json{ "apcn": "1234567890", "firstName": "Alex", "legalFirstName": "Alexander", "middleName": "J", "lastName": "Rivera", "dateOfBirth": "1990-04-12", "mobiles": [{"phone": "+61400111222", "verified": true, "notification": true}], "emails": [{"email": "[email protected]", "verified": true, "login": true, "notification": true}], "addresses": [{ "id": "addr-1", "type": "RESIDENTIAL", "line1": "12 Crown St", "suburb": "Surry Hills", "state": "NSW", "postcode": "2010", "dpid": "DPID-445566" }] }List MyPost delivery addresses
GET
/v1/account/customers/{apcn}/addressesopendataReturns the MyPost address book (residential, Parcel Locker, Parcel Collect) including DPID and deliveryAddressee.
Auth: OAuth Bearer access token from MyPost sign-in (Authorization: Bearer), plus an API-KEY header. Path {apcn} is the signed-in Australia Post customer number.
- addresses
- id
- type
- description
- line1
- line2
- suburb
- state
- postcode
- countryCode
- dpid
- deliveryAddressee
GET /v1/account/customers/1234567890/addresses HTTP/1.1 Authorization: Bearer <accessToken> API-KEY: <apiKey> Accept: application/json{ "addresses": [{ "id": "addr-1", "type": "RESIDENTIAL", "description": "Home", "line1": "12 Crown St", "line2": "Unit 4", "suburb": "Surry Hills", "state": "NSW", "postcode": "2010", "countryCode": "AU", "dpid": "DPID-445566", "deliveryAddressee": "Alex Rivera" }] }Match Australian address
POST
/v1/addresses/matchopendataRuns Australia Post address matching against a typed line and returns scored DPID-backed candidates for the address-book and redirect flows.
Auth: API-KEY header only. Sign-in tokens are excluded on this address-match call.
- id
- predictive
- maxResults
- results
- singleLine
- score
- dpid
- confidence
- semiStructured
- addressLines
- locality
- state
- postcode
- countryCode
POST /v1/addresses/match HTTP/1.1 API-KEY: <apiKey> Content-Type: application/json { "id": "match-1", "predictive": true, "maxResults": 5, "addresses": [{ "singleLine": "12 Crown St Surry Hills NSW 2010" }] }{ "id": "match-1", "results": [{ "id": "match-1", "addresses": [{ "singleLine": "12 CROWN ST, SURRY HILLS NSW 2010", "score": 0.98, "dpid": "DPID-445566", "confidence": "HIGH", "semiStructured": { "addressLines": ["12 CROWN ST"], "locality": "SURRY HILLS", "state": "NSW", "postcode": "2010", "countryName": "AUSTRALIA", "countryCode": "AU" } }] }] }Get Authority to Leave status
GET
/v1/delivery-instructions/{trackingId}opendataReads Authority to Leave for a consignment: current status, selected location code (for example FRONT_DOOR) and whether a location change is still allowed.
Auth: OAuth Bearer access token from MyPost sign-in (Authorization: Bearer), plus an API-KEY header.
- consignmentId
- updatedAt
- href
- authorityToLeave
- status
- location
- code
- description
- locationChange
- allowed
GET /v1/delivery-instructions/33ABC1234567 HTTP/1.1 Authorization: Bearer <accessToken> API-KEY: <apiKey> Accept: application/json{ "consignmentId": "33ABC1234567", "updatedAt": "2026-10-09T07:01:00Z", "href": "/v1/delivery-instructions/33ABC1234567", "authorityToLeave": { "status": "SET", "location": {"code": "FRONT_DOOR", "description": "Leave at the front door"}, "locationChange": {"allowed": true, "reason": null} } }Get delivery preferences
GET
/v1/account/delivery-preferencesopendataReturns the MyPost Safe Drop option codes and Parcel Locker height preferences used on the delivery-preferences screen.
Auth: OAuth Bearer access token from MyPost sign-in (Authorization: Bearer), plus an API-KEY header.
- safeDropPreferences
- safeDropOptions
- code
- text
- preferred
- lockerPreferences
- heightAbove05
- heightBelow15
GET /v1/account/delivery-preferences HTTP/1.1 Authorization: Bearer <accessToken> API-KEY: <apiKey> Accept: application/json{ "safeDropPreferences": { "safeDropOptions": [{"code": "LETTERBOX", "text": "Letterbox", "preferred": true}, {"code": "BEHIND_GATE", "text": "Behind gate", "preferred": false}] }, "lockerPreferences": { "heightAbove05": true, "heightBelow15": true } }Get Safe Drop delivery image
GET
/v1/tracking/articles/{articleId}/proof-photoopendataReturns a signed URL for the Safe Drop / attempted-delivery photo attached to an article.
Auth: OAuth Bearer access token from MyPost sign-in (Authorization: Bearer), plus an API-KEY header.
- imageType
- url
- imageMetadata
- createdOffsetDateTime
GET /v1/tracking/articles/33ABC1234567A001/proof-photo HTTP/1.1 Authorization: Bearer <accessToken> API-KEY: <apiKey> Accept: application/json{ "imageType": "SAFE_DROP", "url": "/v1/tracking/articles/33ABC1234567A001/proof-photo.bin?sig=...", "imageMetadata": { "createdOffsetDateTime": "2026-10-09T14:22:00+11:00" } }Generate collection delegation form
POST
/v1/collection/authority-formsopendataCreates the collection-delegation slip so a named delegate can pick up the article; returns a signedImageUrl of the form.
Auth: OAuth Bearer access token from MyPost sign-in (Authorization: Bearer), plus an API-KEY header.
- consignmentId
- articleIds
- recipientName
- delegateName
- deliveryAddress
- signedImageUrl
POST /v1/collection/authority-forms HTTP/1.1 Authorization: Bearer <accessToken> API-KEY: <apiKey> Content-Type: application/json { "consignmentId": "33ABC1234567", "articleIds": ["33ABC1234567A001"], "recipientName": "Alex Rivera", "delegateName": "Sam Rivera", "deliveryAddress": { "line1": "Sydney CBD Post Shop", "suburb": "Sydney", "state": "NSW", "postcode": "2000" } }{ "signedImageUrl": "/v1/collection/authority-forms/dlg-9f3a.png?sig=..." }Redirect in-transit shipment
POST
/v1/tracking/consignments/{trackingId}/redirectopendataRedirects an in-transit consignment to another MyPost address (Parcel Locker, Parcel Collect or residential) from the Redirect screen.
Auth: OAuth Bearer access token from MyPost sign-in (Authorization: Bearer), plus an API-KEY header.
- id
- type
- description
- line1
- suburb
- state
- postcode
- dpid
- deliveryAddressee
- status
POST /v1/tracking/consignments/33ABC1234567/redirect HTTP/1.1 Authorization: Bearer <accessToken> API-KEY: <apiKey> Content-Type: application/json { "id": "addr-2", "type": "PARCEL_LOCKER", "description": "Surry Hills Locker", "line1": "Parcel Locker 1234", "suburb": "Surry Hills", "state": "NSW", "postcode": "2010", "dpid": "DPID-778899", "deliveryAddressee": "Alex Rivera" }{ "status": "ACCEPTED" }List geofence articles at a delivery point
GET
/v1/collection/arrivals/{dpid}opendataReturns consignments awaiting collection at a delivery-point id so the arrival-alert layer can surface the locker accessCode when the recipient is nearby.
Auth: OAuth Bearer access token from MyPost sign-in (Authorization: Bearer), plus an API-KEY header.
- id
- nickname
- accessCode
GET /v1/collection/arrivals/DPID-445566 HTTP/1.1 Authorization: Bearer <accessToken> API-KEY: <apiKey> Accept: application/json[ { "id": "33ABC1234567", "nickname": "Office monitors", "accessCode": "847291" } ]List PO Box renewal invoices
GET
/v1/postbox/customers/{apcn}/renewal-invoicesopenfinanceLists PO Box renewal invoices for the APCN, including pay-on-time and full-rate expiry dates.
Auth: OAuth Bearer access token from MyPost sign-in (Authorization: Bearer), plus an API-KEY header. Path {apcn} is the signed-in Australia Post customer number.
- invoiceId
- leaseId
- payOnTimeExpiryDate
- fullRateExpiryDate
GET /v1/postbox/customers/1234567890/renewal-invoices HTTP/1.1 Authorization: Bearer <accessToken> API-KEY: <apiKey> Accept: application/json[ { "invoiceId": "INV-77881", "leaseId": "LEASE-2042-12", "payOnTimeExpiryDate": "2026-11-15", "fullRateExpiryDate": "2026-12-01" } ]Get PO Box renewal invoice
GET
/v1/postbox/customers/{apcn}/renewal-invoices/{invoiceId}openfinanceReturns a PO Box renewal invoice: leaseEndDate, leaseTerm and pricing.discounts (pay-on-time amount in cents).
Auth: OAuth Bearer access token from MyPost sign-in (Authorization: Bearer), plus an API-KEY header. Path {apcn} is the signed-in Australia Post customer number.
- invoiceId
- leaseEndDate
- leaseTerm
- pricing
- discounts
- description
- amount
- isPayOnTimeDiscount
GET /v1/postbox/customers/1234567890/renewal-invoices/INV-77881 HTTP/1.1 Authorization: Bearer <accessToken> API-KEY: <apiKey> Accept: application/json{ "invoiceId": "INV-77881", "leaseEndDate": "2026-12-31", "leaseTerm": "12M", "pricing": { "discounts": [{ "description": "pay on time discount", "amount": 1500, "isPayOnTimeDiscount": true }] } }Get MyPost Business organisation
GET
/v1/business/organisationsopendataReturns MyPost Business organisations linked to the signed-in user: APBCN, accountType, sending services and billingAccounts.
Auth: OAuth Bearer access token from MyPost sign-in (Authorization: Bearer), plus an API-KEY header. Requires a MyPost Business organisation membership.
- data
- organisations
- id
- apbcn
- name
- accountType
- services
- aliases
- billingAccounts
- billing_account_id
- authorised
GET /v1/business/organisations HTTP/1.1 Authorization: Bearer <accessToken> API-KEY: <apiKey> Accept: application/json{ "data": { "organisations": [{ "id": "org-88", "apbcn": "APBCN-90012", "name": "Rivera Studio Pty Ltd", "accountType": "BUSINESS", "services": ["SENDING", "TRACK"], "aliases": ["Rivera Studio"], "billingAccounts": [{ "billing_account_id": 441, "name": "Rivera Studio Pty Ltd", "type": "CHARGE", "authorised": true, "created_date": "2024-03-12" }] }] } }Load Post Billpay bill
POST
/v1/billpay/bill-lookupopenfinanceLooks up a paper bill on Post Billpay by billerCode and referenceNumber and returns billerName, billAmount (cents) and stored-card scheme/suffix.
Auth: Session cookie or stored-card token on the bill-payment service. A MyPost login is not required to look up a billerCode.
- billerName
- billpayCode
- referenceNumber
- billAmount
- paymentOptions
- storedAccount
- storedScheme
- storedSuffix
- acceptDebitCardsOnly
- result
- textResult
POST /v1/billpay/bill-lookup HTTP/1.1 Content-Type: application/x-www-form-urlencoded billerCode=1318&referenceNumber=555012345678&billAmount=12950{ "billerName": "Sydney Water", "billpayCode": "1318", "referenceNumber": "555012345678", "billAmount": 12950, "paymentOptions": "VISA,MASTERCARD,AMEX", "storedAccount": 1, "storedScheme": "VISA", "storedSuffix": "4242", "acceptDebitCardsOnly": false, "result": 0, "textResult": "OK" }
Data categories
- consignment tracking
- estimated delivery windows
- post office and parcel locker locations
- MyPost consumer profile
- delivery addresses and DPIDs
- authority to leave and safe drop
- shipment redirects
- geofence collection alerts
- PO Box invoices
- Post Billpay bills
- MyPost Business organisations
Where teams use this data
Inbound-order track feed
A retailer or returns desk polls the watchlist and modern track shipment for each articleId, joining milestone, estimatedDelivery.onDate and trackingEvents so customer-service tools show the same window the AusPost Track tab shows.
Last-mile collection routing
A locker or post-office pickup integration reads awaitingCollectionWorkCentreId, accessCode and work-centre geoLocation/postcode so a courier or recipient is sent to the correct Parcel Collect counter, and the geofence list at a dpid surfaces the same accessCode when they arrive.
Address hygiene against DPID
A checkout or CRM posts typed Australian lines to the Address Matching Engine and stores the returned dpid, locality and postcode on the MyPost address book so redirects and Safe Drop land on a deliverable point.
PO Box and billpay ledger
A facilities or accounts payable bot lists PO Box renewal invoices (leaseEndDate, pay-on-time discount amount) and loads Post Billpay bills by billerCode so lease and utility payments match the in-app Pay a Bill and Renew PO Box screens.
Frequently asked questions
What identifies an Australia Post customer on these calls?
The MyPost Australia Post customer number (apcn) is the key on consumer-profile, address-book and PO Box invoice calls. Tracking still keys off consignmentId / trackingId / articleId, which can be looked up without an APCN on public track.
How does the app authenticate track and address calls?
MyPost sign-in issues an OAuth access token; subsequent calls send it as an Authorization: Bearer header plus an API-KEY header. Address-match and service-point lookups exclude the login token and send the API key only.
Which fields cover last-mile delivery choices?
Authority to Leave exposes consignmentId, status and location code; delivery preferences return safeDropOptions codes and Parcel Locker height flags (heightAbove05, heightBelow15); Safe Drop photos come back as imageType plus a signed url; redirects post a saved address payload (type, dpid) onto an in-transit tracking id.
Is postage quoting on this surface?
The in-app Calculate postage item opens an Australia Post web calculator rather than a JSON quote endpoint. Structured money fields here are PO Box renewal invoices (leaseEndDate, discount amount) and Post Billpay bills (billerCode, billAmount).
Apps similar to Australia Post
- StarTrack — StarTrack is an Australian transport and logistics company owned by Australia Post; it runs express road freight and StarTrack Courier (the former Messenger Post) for business consignments next to the consumer MyPost app.
- UPS — UPS is an American multinational shipping company whose Android app tracks packages, schedules pickups and locates drop-off points for parcels that leave the Australia Post network.
- FedEx — FedEx is an American package-delivery company whose FedEx Express unit provides overnight and time-definite international courier service, including the former TNT Express network that began in Adelaide.
- DHL — DHL is a Bonn-headquartered logistics company that provides courier, package delivery and express mail, including DHL Express intercontinental parcels as an alternative to Australia Post for outbound freight.
- CouriersPlease — CouriersPlease is an Australian last-mile courier (acquired by SingPost from New Zealand Post in 2014) whose site lets senders get a quote and receivers track a parcel, book a redelivery or find a collection point.
- Aramex Australia — Aramex Australia is a domestic and international courier (the former Fastway Couriers network) that offers a timetabled parcel service with real-time track and trace for businesses of all sizes.
- Toll Group — Toll Group is a Melbourne-based freight and logistics company, a subsidiary of Japan Post, operating a forwarding and contract-logistics network spanning 150 countries.
- AfterShip — AfterShip is a shipment-tracking service that consolidates tracking information from postal operators and private delivery companies into one view for e-commerce orders.
Topics
- Australia Post API
- AusPost tracking API
- MyPost APCN
- Australia Post consignment
- Parcel Locker workCentreId
- Australia Post DPID
- PO Box renewal invoice
- Post Billpay billerCode
- Authority to Leave API
- Australia Post Safe Drop image
Need this app's data API integrated?
We deliver scoped integrations for any named app — from USD 500 with source-code handoff, or hosted access billed per call. Tell us the data you need.
- NDA + SOW on every engagement
- Delivery in 3–7 days
- Payment only after acceptance
- Work scoped to authorized use