Complete reference for integrating with our multi-carrier shipping platform
Get up and running
Include your AUTH_USER and AUTH_PW to authenticate.
Verify your credentials
Start processing shipments
// First, authenticate your credentials
curl --location 'https://api.mmcore.tech/auth' \
--header 'AUTH_USER=YOUR_AUTH_USER' \
--header 'AUTH_PW=YOUR_AUTH_PW'
Complete reference
/authAUTH_USERAUTH_PWauthentication_status, api_key, permissions, rate_limits
curl --location 'https://api.mmcore.tech/auth' \
--header 'AUTH_USER=YOUR_AUTH_USER' \
--header 'AUTH_PW=YOUR_AUTH_PW'/get_tracking_information/APIKEY/tracking_codeAPIKEYtracking_codeflight_tracking_settinglangtypetracking_detailslangDefault: enSets the language for the API response, currently supported are: NL and EN.
Values: en, nl
flight_tracking_settingDefault: excludeDefines how flight/waybill tracking should be handled.
Values: only, include, exclude
typeDefault: barcodeSpecifies the type of tracking being used.
Values: barcode, waybill, box
tracking_detailsDefault: fullDefines the level of detail in the tracking response.
Values: minimal, lastStatus, full
tracking_events, current_status, estimated_delivery, carrier_info, flightTracking, notFound
# Single tracking
curl --location 'https://api.mmcore.tech/get_tracking_information/APIKEY/tracking_code?flight_tracking_setting=include&lang=en&type=barcode&tracking_details=full' \
--data ''
# Bulk tracking (up to 1000 barcodes)
curl --location --request GET 'https://api.mmcore.tech/get_tracking_information/APIKEY/tracking_code?flight_tracking_setting=include&lang=en&type=barcode&tracking_details=full' \
--data '[
"123456789",
"987654321",
"123498765",
"567894321"
]'/action/APIKEY/101/created_bycarriercarrier_optionweightdimensionsrecipient_infosender_infoplDefault: NY = Show PDF label, N = get JSON result.
Values: Y, N
dhlzplDefault: NY = get DHL JSON label, N = get URL to the PDF.
Values: Y, N
zplDefault: NY = get ZPL label (if the carrier supports it).
Values: Y, N
oDefault: Output will be in JSON format.
Values: JSON
doDefault: NY = the label will be called within this call.
Values: Y, N
status, labels[], tracking_number, shipmentID, notFound, plus carrier-specific label information. From 2026 the label fields will only be present inside labels[].
curl --location 'https://api.mmcore.tech/action/APIKEY/101/?pl=Y&zpl=N&o=JSON' \
--header 'Content-Type: application/json' \
--data '{
"created_by": "API_USER",
"standard_email_to_sender": "sender@example.com",
"standard_email_to_receiver": "receiver@example.com",
"print_phone_number": "+31612345678",
"carrier": 9999,
"carrier_option": 0,
"signature_required": false,
"number_of_packages": 1,
"weight": 0.12,
"value": 22.99,
"length": 1.0,
"width": 2.0,
"height": 3.0,
"is_company": false,
"company_name": "",
"department": "",
"first_name": "John",
"last_name": "Doe",
"email": "john.doe@email.com",
"content": "Electronics",
"content_on_label": "",
"street": "Test Street",
"street2": "",
"house_number": "123",
"postal_code": "1012AB",
"city": "Amsterdam",
"country": "Netherlands",
"phone_number": "+31612345678",
"reference": "ORDER-001",
"reference2": "",
"vat_number": "",
"return_label": false
}'/post_manifest_data/APIKEYtransportTypetransportNumberpackageIdparcelIdrecipient_infosender_infoitem_detailslsDefault: NY = Lock manifest data (if there are no errors), N = Don't lock manifest data. Only applicable for airwaybills.
Values: Y, N
upload_status, validation_errors, manifest_id or error details.
curl --location 'https://api.mmcore.tech/post_manifest_data/APIKEY?ls=Y' \
--header 'Content-Type: application/json' \
--data '[
{
"transportType": "CMR", // Optional, defaults to "AWB" if not provided, values: "AWB", "CMR" or "B/L"
"transportNumber": "999-12345678", // required to be set and unique per shipment
"packageId": "1", // optional if CMR, required if AWB
"parcelId": "123456", // required and unique per parcel within a package
"name": "John Doe",
"address": "Test Street",
"address2": "",
"zipcode": "Test Zipcode",
"city": "Test City",
"country": "ISO 2 Country",
"phone": "0612345678",
"email": "john.doe@mail.com",
"sellerName": "seller",
"sellerAddress": "seller address",
"sellerZipcode": "seller zipcode",
"sellerCity": "seller city",
"sellerCountry": "seller ISO 2 country",
"sku": "sku",
"content": "Some content",
"hsCode": "123456",
"quantity": "2",
"itemPrice": "10.00",
"itemWeight": "0.20",
"parcelWeight": "0.40",
"parcelPrice": "20.00",
"currency": "USD",
"taxType": "IOSS",
"taxIdent": "taxIdent",
"grossWeight": "100"
},
{
"transportType": "CMR",
"transportNumber": "999-12345678",
"packageId": "2",
"parcelId": "654321",
"name": "John Doe",
"address": "Test Street",
"address2": "",
"zipcode": "Test Zipcode",
"city": "Test City",
"country": "ISO 2 Country",
"phone": "0612345678",
"email": "john.doe@mail.com",
"sellerName": "seller",
"sellerAddress": "seller address",
"sellerZipcode": "seller zipcode",
"sellerCity": "seller city",
"sellerCountry": "seller ISO 2 country",
"sku": "sku2",
"content": "Some content",
"hsCode": "123456",
"quantity": "1",
"itemPrice": "10.00",
"itemWeight": "0.20",
"parcelWeight": "0.22",
"parcelPrice": "10.20",
"currency": "USD",
"taxType": "IOSS",
"taxIdent": "taxIdent",
"grossWeight": "100"
}
]'/post_pre_alert/APIKEYairWaybillPdfBase64estimatedTimeOfArrivalairWaybillNumbergrossWeightAPIKEYok, message, estimatedTimeOfArrival, airWaybillNumber, submittedGrossWeight, boxes, totalParcels, totalManifestWeight, iossManifestLocked, carrier plus error codes such as api_key_missing, invalid_api_key, manifest_missing.
curl --location 'https://api.mmcore.tech/post_pre_alert/APIKEY' \
--header 'Content-Type: application/json' \
--data '{
"airWaybillPdfBase64": "JVBERi0xLjQKJcTl8uXrp...<truncated>...==",
"estimatedTimeOfArrival": "2025-03-28",
"airWaybillNumber": "074-12345613",
"grossWeight": 152.75
}'/lock_shipment/APIKEYwaybillAPIKEYlock_status, confirmation_message
curl --location 'https://api.mmcore.tech/lock_shipment/APIKEY' \
--header 'Content-Type: application/json' \
--data '{"waybill":"999-12345678"}'Complete reference
97Manifested for customs98Label data has been pre-registered99Label has been created200Dispatch declaration201Dispatch arrival202Dispatch documentation203Dispatch amendment204Dispatch cancellation205Customs clearance started207Customs Issue208Confiscated209Held by customs210Needs documents211Accepted213Parcel cleared214Cleared manually215Cancelled216Arrived in facility217Ready for last mile218Released to last mile219Job dispatched2000The cargo is being tracked2001Information has been sent, waiting for the logistics provider to pick up the cargo2002The logistics provider gets the cargo2003In transit2004The cargo arrived at their destination2005Notify the consignee to pick up the cargo2006The cargo is delivered to the consignee2007Packages were lost, damaged, returned, unclaimed, etc2008Shipping time too long3000Parcel has reached a depot3001Outbound scan3004Parcel details updated3005Parcel has arrived at the last-mile carrier3050Parcel has left the depot5000Parcel is out for delivery5001Parcel is out for delivery to recipient5002A text message notification has been sent to the recipient5003Parcel is out for delivery to parcel locker5004Parcel is out for delivery to parcel shop7000Recipient was not at home, second try:7001Recipient was not at home, package will be stored on the depot for 5 days7002Recipient was not at home7003Recipient was not at home, package can be picked up at a collection point7004Stored until requested8000Return to sender8001Shipment canceled8500Extra information9000Delivered9001Package is delivered to the neighbors9002Package is delivered to the parcelshop9003Package is delivered to the parcelbox9004Package is delivered to a secure place9005Package is collected9006Return delivered9500Refused9501Package was not picked up9502Package was not delivered9503Package is rerouted to a new address9600Incorrect address details# Authentication endpoint
curl --location 'https://api.mmcore.tech/auth' \
--header 'AUTH_USER=YOUR_AUTH_USER' \
--header 'AUTH_PW=YOUR_AUTH_PW'
# Other endpoints use API key in URL path
curl --location 'https://api.mmcore.tech/post_manifest_data/YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '[{"transportNumber": "999-12345678", ...}]'Security Note: Keep your credentials secure. Never expose them. Use environment variables.