Upload a spreadsheet
For many deliveries at once, with a free business account.
- Open a business account, then go to My account, Upload.
- Download the template. Fill one row per drop-off: the address, the recipient, the size, and how many boxes
(
quantity, or packages such as "3 small, 1 large").
- Upload it. We check every row and show the price before anything is booked.
- Rows with the same pickup, speed and day become one order, so every stop gets the per-stop discount: 2–4 stops 10%, 5–9 stops 15%, 10 or more 20%.
Template columns: pickup_address, pickup_unit, pickup_city, pickup_postal, pickup_contact, pickup_phone, pickup_company, pickup_instructions, dropoff_address, dropoff_unit, dropoff_city, dropoff_postal, recipient, recipient_phone, recipient_email, recipient_company, dropoff_instructions, size, quantity, packages, speed, date, window_hours, distance_km, declared_value, reference, notes.
Sizes for the size and packages columns: envelope (documents or a mini parcel, up to 1 lb), small (a shoebox or backpack, up to 10 lb), medium (a moving box, up to 35 lb), large (a TV, a chair or big boxes, up to 50 lb), xl (furniture or an appliance, up to 100 lb). A box heavier than its size allows goes in the next size up. doc and mini parcel also mean envelope.
The API
For your own software, or a developer working for you.
- Ask for API access in your business account, accept the API terms, and create a test key. Test orders are never dispatched or charged.
- Get a price:
curl -X POST https://toppingcourier.ca/api/v1/orders/quote \
-H "Authorization: Bearer tc_test_..." -H "Content-Type: application/json" \
-d '{"speed": "same_day",
"pickup": {"contact_name": "Front desk", "phone": "647 555 0100", "line1": "100 Queen St W", "city": "Toronto", "postal_code": "M5H 2N2"},
"drops": [{"contact_name": "Sam Lee", "phone": "647 555 0133", "line1": "1 Dundas St W", "city": "Toronto", "postal_code": "M5G 1Z3", "size": "small", "quantity": 2}]}'
- Book it with the same body sent to
POST /api/v1/orders, then move the test order along with /simulate to try your webhooks.
- When it works, create a live key and switch.
Files: the OpenAPI 3.1 file (import it into any API tool) and the
Postman collection. The API page lists every call.