API reference
Account
Who the key acts as, the account's people, search and dashboard figures.
Current account
GET /v1/active-organization
The account calls are made for. Everything else (shipments, wallet, addresses…) belongs to this account.
Response in data
activeOrganizationId• Required uuid
curl "https://api.parcelhub.ca/v1/active-organization" \
-H "Authorization: Bearer $TOKEN"{
"ok": true,
"data": {
"activeOrganizationId": "3f2b8c1e-5d6a-4b7c-9e0f-1a2b3c4d5e6f"
},
"request_id": "01JBX7Q2…"
}Dashboard figures
GET /v1/dashboard/insights
Shipment counts, spend, savings and delivery performance over a period, with points for charts.
Query parameters
rangestring30d(default, daily points),90d(weekly) or12m(monthly).
Response in data
bucket• Required stringcities• Required array of objectsEach item · 4
city• Required stringCity.
country• Required stringTwo-letter country code, e.g.
CA,US.region• Required stringshipments• Required integer
current• Required objectFields · 18
avg_options• Required numberavg_transit_days• Required numbercompare_labels• Required integercompare_saved_cents• Required integerdelivered• Required integerdomestic• Required integerexceptions• Required integerinternational• Required integeron_time• Required integeron_time_measured• Required integerquoted_labels• Required integerretail_labels• Required integerretail_saved_cents• Required integersaved_cents• Required integershipments• Required integerspend_cents• Required integertransit_measured• Required integerusa• Required integer
from• Required dateShip-from address.
lifetime• Required objectFields · 18
avg_options• Required numberavg_transit_days• Required numbercompare_labels• Required integercompare_saved_cents• Required integerdelivered• Required integerdomestic• Required integerexceptions• Required integerinternational• Required integeron_time• Required integeron_time_measured• Required integerquoted_labels• Required integerretail_labels• Required integerretail_saved_cents• Required integersaved_cents• Required integershipments• Required integerspend_cents• Required integertransit_measured• Required integerusa• Required integer
month• Required objectFields · 4
days_elapsed• Required integerdays_in_month• Required integershipments• Required integerspend_cents• Required integer
previous• Required objectFields · 18
avg_options• Required numberavg_transit_days• Required numbercompare_labels• Required integercompare_saved_cents• Required integerdelivered• Required integerdomestic• Required integerexceptions• Required integerinternational• Required integeron_time• Required integeron_time_measured• Required integerquoted_labels• Required integerretail_labels• Required integerretail_saved_cents• Required integersaved_cents• Required integershipments• Required integerspend_cents• Required integertransit_measured• Required integerusa• Required integer
range• Required stringregions• Required array of objectsEach item · 4
country• Required stringTwo-letter country code, e.g.
CA,US.region• Required stringshipments• Required integerspend_cents• Required integer
series• Required array of objectsEach item · 4
date• Required datesaved_cents• Required integershipments• Required integerspend_cents• Required integer
services• Required array of objectsEach item · 9
carrier• Required stringCarrier code, as returned with each rate.
on_time• Required integeron_time_measured• Required integersaved_cents• Required integerservice• Required stringshipments• Required integerspend_cents• Required integertransit_days_sum• Required integertransit_measured• Required integer
to• Required dateShip-to address.
transit• Required array of objectsEach item · 2
count• Required integerkey• Required integer
weekdays• Required array of objectsEach item · 2
count• Required integerkey• Required integer
weight_bands_kg• Required array of numbersweights• Required array of objectsEach item · 2
count• Required integerkey• Required integer
best_savingobjectFields · 8
carrier• Required stringCarrier code, as returned with each rate.
kind• Required stringreference_cents• Required integersaved_cents• Required integerservice• Required stringshipment_id• Required uuidto_city• Required stringto_state• Required string
curl "https://api.parcelhub.ca/v1/dashboard/insights" \
-H "Authorization: Bearer $TOKEN"{
"ok": true,
"data": {
"best_saving": {
"carrier": "ups",
"kind": "string",
"reference_cents": 1299,
"saved_cents": 1299,
"service": "string",
"shipment_id": "3f2b8c1e-5d6a-4b7c-9e0f-1a2b3c4d5e6f",
"to_city": "string",
"to_state": "string"
},
"bucket": "string",
"cities": [
{
"city": "Toronto",
"country": "CA",
"region": "string",
"shipments": 1
}
],
"current": {
"avg_options": 1.5,
"avg_transit_days": 1.5,
"compare_labels": 1,
"compare_saved_cents": 1299,
"delivered": 1,
"domestic": 1,
"exceptions": 1,
"international": 1,
"on_time": 1,
"on_time_measured": 1,
"quoted_labels": 1,
"retail_labels": 1,
"retail_saved_cents": 1299,
"saved_cents": 1299,
"shipments": 1,
"spend_cents": 1299,
"transit_measured": 1,
"usa": 1
},
"from": "2026-11-03",
"lifetime": {
"avg_options": 1.5,
"avg_transit_days": 1.5,
"compare_labels": 1,
"compare_saved_cents": 1299,
"delivered": 1,
"domestic": 1,
"exceptions": 1,
"international": 1,
"on_time": 1,
"on_time_measured": 1,
"quoted_labels": 1,
"retail_labels": 1,
"retail_saved_cents": 1299,
"saved_cents": 1299,
"shipments": 1,
"spend_cents": 1299,
"transit_measured": 1,
"usa": 1
},
"month": {
"days_elapsed": 1,
"days_in_month": 1,
"shipments": 1,
"spend_cents": 1299
},
"previous": {
"avg_options": 1.5,
"avg_transit_days": 1.5,
"compare_labels": 1,
"compare_saved_cents": 1299,
"delivered": 1,
"domestic": 1,
"exceptions": 1,
"international": 1,
"on_time": 1,
"on_time_measured": 1,
"quoted_labels": 1,
"retail_labels": 1,
"retail_saved_cents": 1299,
"saved_cents": 1299,
"shipments": 1,
"spend_cents": 1299,
"transit_measured": 1,
"usa": 1
},
"range": "string",
"regions": [
{
"country": "CA",
"region": "string",
"shipments": 1,
"spend_cents": 1299
}
],
"series": [
{
"date": "2026-11-03",
"saved_cents": 1299,
"shipments": 1,
"spend_cents": 1299
}
],
"services": [
{
"carrier": "ups",
"on_time": 1,
"on_time_measured": 1,
"saved_cents": 1299,
"service": "string",
"shipments": 1,
"spend_cents": 1299,
"transit_days_sum": 1,
"transit_measured": 1
}
],
"to": "2026-11-03",
"transit": [
{
"count": 1,
"key": 1
}
],
"weekdays": [
{
"count": 1,
"key": 1
}
],
"weight_bands_kg": [
1.5
],
"weights": [
{
"count": 1,
"key": 1
}
]
},
"request_id": "01JBX7Q2…"
}List pending invites
GET /v1/organization/invites
Invitations to join the current account that have not been accepted yet.
Response in data
email• Required stringEmail address.
expiresAt• Required stringid• Required uuidinviteNumber• Required stringrole• Required stringstatus• Required string
curl "https://api.parcelhub.ca/v1/organization/invites" \
-H "Authorization: Bearer $TOKEN"{
"ok": true,
"data": [
{
"email": "[email protected]",
"expiresAt": "string",
"id": "3f2b8c1e-5d6a-4b7c-9e0f-1a2b3c4d5e6f",
"inviteNumber": "string",
"role": "string",
"status": "string"
}
],
"request_id": "01JBX7Q2…"
}List members
GET /v1/organization/members
People on the current account and their roles.
Response in data
joinedAt• Required stringname• Required stringrole• Required stringuserId• Required uuidemailstringEmail address.
curl "https://api.parcelhub.ca/v1/organization/members" \
-H "Authorization: Bearer $TOKEN"{
"ok": true,
"data": [
{
"email": "[email protected]",
"joinedAt": "string",
"name": "Alex Martin",
"role": "string",
"userId": "3f2b8c1e-5d6a-4b7c-9e0f-1a2b3c4d5e6f"
}
],
"request_id": "01JBX7Q2…"
}List accounts
GET /v1/organizations
Every ParcelHub account (personal and business) the person belongs to, with their role in each.
Response in data
externalId• Required stringid• Required uuidisPersonal• Required booleanname• Required stringrole• Required stringstatus• Required stringsystemPaid• Required booleanbusinessStatusstringdeletionScheduledForstring
curl "https://api.parcelhub.ca/v1/organizations" \
-H "Authorization: Bearer $TOKEN"{
"ok": true,
"data": [
{
"businessStatus": "string",
"deletionScheduledFor": "string",
"externalId": "string",
"id": "3f2b8c1e-5d6a-4b7c-9e0f-1a2b3c4d5e6f",
"isPersonal": true,
"name": "Alex Martin",
"role": "string",
"status": "string",
"systemPaid": true
}
],
"request_id": "01JBX7Q2…"
}Account overview
GET /v1/overview
The signed-in person, the account (organization) the key acts for, and headline counts.
Response in data
description• Required stringscope• Required string
curl "https://api.parcelhub.ca/v1/overview" \
-H "Authorization: Bearer $TOKEN"{
"ok": true,
"data": {
"description": "string",
"scope": "string"
},
"request_id": "01JBX7Q2…"
}Profile
GET /v1/profile
Name, contact details and email addresses of the person the key belongs to. Profile changes are made in the dashboard, not with an API key.
Response in data
emails• Required array of objectsEach item · 4
email• Required stringEmail address.
id• Required uuidisPrimary• Required booleanisVerified• Required boolean
id• Required uuidname• Required stringpickupMapViewEnabled• Required booleanreferralsEnabled• Required booleanshipmentMapViewEnabled• Required booleanavatarUrlstringclientNumberstringemailstringEmail address.
curl "https://api.parcelhub.ca/v1/profile" \
-H "Authorization: Bearer $TOKEN"{
"ok": true,
"data": {
"avatarUrl": "string",
"clientNumber": "string",
"email": "[email protected]",
"emails": [
{
"email": "[email protected]",
"id": "3f2b8c1e-5d6a-4b7c-9e0f-1a2b3c4d5e6f",
"isPrimary": true,
"isVerified": true
}
],
"id": "3f2b8c1e-5d6a-4b7c-9e0f-1a2b3c4d5e6f",
"name": "Alex Martin",
"pickupMapViewEnabled": true,
"referralsEnabled": true,
"shipmentMapViewEnabled": true
},
"request_id": "01JBX7Q2…"
}Search
GET /v1/search
One search across shipments, pickups, wallet transactions and invoices: order number, tracking number, name, amount and more. Results are grouped by kind.
Query parameters
qstringWhat to search for.
limitintegerMost results per kind (default 6, max 20).
Response in data
results• Required array of objectsEach item · 9
created_at• Required timestampWhen it was created (ISO 8601, UTC).
id• Required uuidkind• Required stringsubtitle• Required stringtitle• Required stringurl• Required stringamount_centsintegerAmount in cents.
currencystringThree-letter currency code, e.g.
CAD.statusstring
curl "https://api.parcelhub.ca/v1/search" \
-H "Authorization: Bearer $TOKEN"{
"ok": true,
"data": {
"results": [
{
"amount_cents": 1299,
"created_at": "2026-10-31T15:04:05Z",
"currency": "CAD",
"id": "3f2b8c1e-5d6a-4b7c-9e0f-1a2b3c4d5e6f",
"kind": "string",
"status": "string",
"subtitle": "string",
"title": "string",
"url": "https://…"
}
]
},
"request_id": "01JBX7Q2…"
}