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, 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
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, flight_tracking, 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
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 get PDF
Values: Y, N
zplDefault: NY = get ZPL label if 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, shipment_id, processing_status. From 2026 label fields such as shipmentID, barcode, labeltype, encodeType, content, carrierId and carrierOptionId are only returned inside the labels array.
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_detailsls (optional)lsDefault: 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
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, possible 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 to be set and unique per parcel within a package
"name": "John Doe", //recipient name (required)
"address": "Test Street", //recipient street address (required)
"address2": "", //recipient additional address info (optional)
"zipcode": "Test Zipcode", //recipient postal code (required)
"city": "Test City", //recipient city (required)
"country": "ISO 2 Country", //recipient country in ISO 2 format (required)
"phone": "0612345678", //recipient phone number (required)
"email": "john.doe@mail.com", //recipient email address (required)
"sellerName": "seller", //sender name (required)
"sellerAddress": "seller address", //sender street address (required)
"sellerZipcode": "seller zipcode", //sender postal code (required)
"sellerCity": "seller city", //sender city (required)
"sellerCountry": "seller ISO 2 country", //sender country in ISO 2 format (required)
"sku": "sku", //item SKU or identifier (required)
"content": "Some content", //item description (required)
"hsCode": "123456", //item HS code for customs (required for transportType AWB and CMR outside EU)
"quantity": "2", //item quantity (required)
"itemPrice": "10.00", //item price (required)
"itemWeight": "0.20", //item weight in kg (required)
"parcelWeight": "0.40", //parcel weight in kg (required)
"parcelPrice": "20.00", //total parcel price (required)
"currency": "USD", //currency code in ISO 3 format (required)
"taxType": "IOSS", //tax type, e.g. IOSS, OSS, NON_EU (required for transportType AWB and CMR outside EU)
"taxIdent": "taxIdent", //tax identification number (required for transportType AWB and CMR outside EU)
"grossWeight": "100" //gross weight in kilograms (required)
},
{
"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, code, error, estimatedTimeOfArrival, airWaybillNumber, submittedGrossWeight, boxes, totalParcels, totalManifestWeight, iossManifestLocked, carrier. Pre alerts are required for airwaybills from 2026 onwards.
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 detailsSecure your API
# 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.