List item presets

GET /v1/item-presets

Saved products for customs declarations: description, value, HS code and country of origin.

Response in data

  • items • Required array of objects
    Each item · 12
    • created_at • Required timestamp

      When it was created (ISO 8601, UTC).

    • currency • Required string

      Three-letter currency code, e.g. CAD.

    • description • Required string
    • id • Required uuid
    • name • Required string
    • quantity • Required integer

      How many.

    • unit_value • Required number
    • updated_at • Required timestamp

      When it last changed (ISO 8601, UTC).

    • usage_count • Required integer
    • hs_code string

      Harmonized System code.

    • origin_country string

      Two-letter code of the country where the item was made.

    • sku string

      Your product code.

GET /v1/item-presets
curl "https://api.parcelhub.ca/v1/item-presets" \
  -H "Authorization: Bearer $TOKEN"
Response
{
  "ok": true,
  "data": {
    "items": [
      {
        "created_at": "2026-10-31T15:04:05Z",
        "currency": "CAD",
        "description": "string",
        "hs_code": "6109.10",
        "id": "3f2b8c1e-5d6a-4b7c-9e0f-1a2b3c4d5e6f",
        "name": "Alex Martin",
        "origin_country": "string",
        "quantity": 1,
        "sku": "string",
        "unit_value": 1.5,
        "updated_at": "2026-10-31T15:04:05Z",
        "usage_count": 1
      }
    ]
  },
  "request_id": "01JBX7Q2…"
}

Save an item preset

POST /v1/item-presets

Saves a product for reuse in customs declarations.

Request body

  • name • Required string
  • currency string

    Three-letter currency code, e.g. CAD.

  • description string
  • hs_code string

    Harmonized System code.

  • origin_country string

    Two-letter code of the country where the item was made.

  • quantity integer

    How many.

  • sku string

    Your product code.

  • unit_value number

    Value of one unit, in currency (e.g. 15.00).

Response in data

  • created_at • Required timestamp

    When it was created (ISO 8601, UTC).

  • currency • Required string

    Three-letter currency code, e.g. CAD.

  • description • Required string
  • id • Required uuid
  • name • Required string
  • quantity • Required integer

    How many.

  • unit_value • Required number
  • updated_at • Required timestamp

    When it last changed (ISO 8601, UTC).

  • usage_count • Required integer
  • hs_code string

    Harmonized System code.

  • origin_country string

    Two-letter code of the country where the item was made.

  • sku string

    Your product code.

POST /v1/item-presets
curl -X POST "https://api.parcelhub.ca/v1/item-presets" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "currency": "CAD",
  "description": "string",
  "hs_code": "6109.10",
  "name": "Alex Martin",
  "origin_country": "string",
  "quantity": 1,
  "sku": "string",
  "unit_value": 1.5
}'
Response
{
  "ok": true,
  "data": {
    "created_at": "2026-10-31T15:04:05Z",
    "currency": "CAD",
    "description": "string",
    "hs_code": "6109.10",
    "id": "3f2b8c1e-5d6a-4b7c-9e0f-1a2b3c4d5e6f",
    "name": "Alex Martin",
    "origin_country": "string",
    "quantity": 1,
    "sku": "string",
    "unit_value": 1.5,
    "updated_at": "2026-10-31T15:04:05Z",
    "usage_count": 1
  },
  "request_id": "01JBX7Q2…"
}

Update an item preset

PATCH /v1/item-presets/{id}

Changes a saved product.

Path parameters

  • id • Required string

Request body

  • name • Required string
  • currency string

    Three-letter currency code, e.g. CAD.

  • description string
  • hs_code string

    Harmonized System code.

  • origin_country string

    Two-letter code of the country where the item was made.

  • quantity integer

    How many.

  • sku string

    Your product code.

  • unit_value number

    Value of one unit, in currency (e.g. 15.00).

Response in data

  • created_at • Required timestamp

    When it was created (ISO 8601, UTC).

  • currency • Required string

    Three-letter currency code, e.g. CAD.

  • description • Required string
  • id • Required uuid
  • name • Required string
  • quantity • Required integer

    How many.

  • unit_value • Required number
  • updated_at • Required timestamp

    When it last changed (ISO 8601, UTC).

  • usage_count • Required integer
  • hs_code string

    Harmonized System code.

  • origin_country string

    Two-letter code of the country where the item was made.

  • sku string

    Your product code.

PATCH /v1/item-presets/{id}
curl -X PATCH "https://api.parcelhub.ca/v1/item-presets/3f2b8c1e-5d6a-4b7c-9e0f-1a2b3c4d5e6f" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "currency": "CAD",
  "description": "string",
  "hs_code": "6109.10",
  "name": "Alex Martin",
  "origin_country": "string",
  "quantity": 1,
  "sku": "string",
  "unit_value": 1.5
}'
Response
{
  "ok": true,
  "data": {
    "created_at": "2026-10-31T15:04:05Z",
    "currency": "CAD",
    "description": "string",
    "hs_code": "6109.10",
    "id": "3f2b8c1e-5d6a-4b7c-9e0f-1a2b3c4d5e6f",
    "name": "Alex Martin",
    "origin_country": "string",
    "quantity": 1,
    "sku": "string",
    "unit_value": 1.5,
    "updated_at": "2026-10-31T15:04:05Z",
    "usage_count": 1
  },
  "request_id": "01JBX7Q2…"
}

Delete an item preset

DELETE /v1/item-presets/{id}

Deletes a saved product.

Path parameters

  • id • Required string

Response in data

  • deleted • Required boolean
DELETE /v1/item-presets/{id}
curl -X DELETE "https://api.parcelhub.ca/v1/item-presets/3f2b8c1e-5d6a-4b7c-9e0f-1a2b3c4d5e6f" \
  -H "Authorization: Bearer $TOKEN"
Response
{
  "ok": true,
  "data": {
    "deleted": true
  },
  "request_id": "01JBX7Q2…"
}

Record item use

POST /v1/item-presets/{id}/use

Records that a saved product was used, so the most used are listed first.

Path parameters

  • id • Required string

Response in data

  • created_at • Required timestamp

    When it was created (ISO 8601, UTC).

  • currency • Required string

    Three-letter currency code, e.g. CAD.

  • description • Required string
  • id • Required uuid
  • name • Required string
  • quantity • Required integer

    How many.

  • unit_value • Required number
  • updated_at • Required timestamp

    When it last changed (ISO 8601, UTC).

  • usage_count • Required integer
  • hs_code string

    Harmonized System code.

  • origin_country string

    Two-letter code of the country where the item was made.

  • sku string

    Your product code.

POST /v1/item-presets/{id}/use
curl -X POST "https://api.parcelhub.ca/v1/item-presets/3f2b8c1e-5d6a-4b7c-9e0f-1a2b3c4d5e6f/use" \
  -H "Authorization: Bearer $TOKEN"
Response
{
  "ok": true,
  "data": {
    "created_at": "2026-10-31T15:04:05Z",
    "currency": "CAD",
    "description": "string",
    "hs_code": "6109.10",
    "id": "3f2b8c1e-5d6a-4b7c-9e0f-1a2b3c4d5e6f",
    "name": "Alex Martin",
    "origin_country": "string",
    "quantity": 1,
    "sku": "string",
    "unit_value": 1.5,
    "updated_at": "2026-10-31T15:04:05Z",
    "usage_count": 1
  },
  "request_id": "01JBX7Q2…"
}

Standard boxes

GET /v1/package-boxes

ParcelHub's catalog of standard box sizes.

Response in data

  • items • Required array of objects
    Each item · 10
    • code • Required string
    • dimension_unit • Required string

      in or cm.

    • height • Required number

      Height, in dimension_unit.

    • id • Required uuid
    • length • Required number

      Length, in dimension_unit.

    • name • Required string
    • weight_unit • Required string

      lb or kg.

    • width • Required number

      Width, in dimension_unit.

    • carrier_scope string
    • max_weight number
GET /v1/package-boxes
curl "https://api.parcelhub.ca/v1/package-boxes" \
  -H "Authorization: Bearer $TOKEN"
Response
{
  "ok": true,
  "data": {
    "items": [
      {
        "carrier_scope": "string",
        "code": "string",
        "dimension_unit": "cm",
        "height": 10,
        "id": "3f2b8c1e-5d6a-4b7c-9e0f-1a2b3c4d5e6f",
        "length": 30,
        "max_weight": 1.5,
        "name": "Alex Martin",
        "weight_unit": "kg",
        "width": 20
      }
    ]
  },
  "request_id": "01JBX7Q2…"
}

List box presets

GET /v1/package-presets

The account's saved box sizes, with an optional default weight.

Response in data

  • items • Required array of objects
    Each item · 11
    • created_at • Required timestamp

      When it was created (ISO 8601, UTC).

    • dimension_unit • Required string

      in or cm.

    • height • Required number

      Height, in dimension_unit.

    • id • Required uuid
    • length • Required number

      Length, in dimension_unit.

    • name • Required string
    • updated_at • Required timestamp

      When it last changed (ISO 8601, UTC).

    • usage_count • Required integer
    • weight_unit • Required string

      lb or kg.

    • width • Required number

      Width, in dimension_unit.

    • default_weight number

      Usual weight, in weight_unit (optional).

GET /v1/package-presets
curl "https://api.parcelhub.ca/v1/package-presets" \
  -H "Authorization: Bearer $TOKEN"
Response
{
  "ok": true,
  "data": {
    "items": [
      {
        "created_at": "2026-10-31T15:04:05Z",
        "default_weight": 1.5,
        "dimension_unit": "cm",
        "height": 10,
        "id": "3f2b8c1e-5d6a-4b7c-9e0f-1a2b3c4d5e6f",
        "length": 30,
        "name": "Alex Martin",
        "updated_at": "2026-10-31T15:04:05Z",
        "usage_count": 1,
        "weight_unit": "kg",
        "width": 20
      }
    ]
  },
  "request_id": "01JBX7Q2…"
}

Save a box preset

POST /v1/package-presets

Saves a box size for reuse.

Request body

  • dimension_unit • Required string

    in or cm.

  • height • Required number

    Height, in dimension_unit.

  • length • Required number

    Length, in dimension_unit.

  • name • Required string
  • weight_unit • Required string

    lb or kg.

  • width • Required number

    Width, in dimension_unit.

  • default_weight number

    Usual weight, in weight_unit (optional).

Response in data

  • created_at • Required timestamp

    When it was created (ISO 8601, UTC).

  • dimension_unit • Required string

    in or cm.

  • height • Required number

    Height, in dimension_unit.

  • id • Required uuid
  • length • Required number

    Length, in dimension_unit.

  • name • Required string
  • updated_at • Required timestamp

    When it last changed (ISO 8601, UTC).

  • usage_count • Required integer
  • weight_unit • Required string

    lb or kg.

  • width • Required number

    Width, in dimension_unit.

  • default_weight number

    Usual weight, in weight_unit (optional).

POST /v1/package-presets
curl -X POST "https://api.parcelhub.ca/v1/package-presets" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "default_weight": 1.5,
  "dimension_unit": "cm",
  "height": 10,
  "length": 30,
  "name": "Alex Martin",
  "weight_unit": "kg",
  "width": 20
}'
Response
{
  "ok": true,
  "data": {
    "created_at": "2026-10-31T15:04:05Z",
    "default_weight": 1.5,
    "dimension_unit": "cm",
    "height": 10,
    "id": "3f2b8c1e-5d6a-4b7c-9e0f-1a2b3c4d5e6f",
    "length": 30,
    "name": "Alex Martin",
    "updated_at": "2026-10-31T15:04:05Z",
    "usage_count": 1,
    "weight_unit": "kg",
    "width": 20
  },
  "request_id": "01JBX7Q2…"
}

Update a box preset

PATCH /v1/package-presets/{id}

Changes a saved box.

Path parameters

  • id • Required string

Request body

  • dimension_unit • Required string

    in or cm.

  • height • Required number

    Height, in dimension_unit.

  • length • Required number

    Length, in dimension_unit.

  • name • Required string
  • weight_unit • Required string

    lb or kg.

  • width • Required number

    Width, in dimension_unit.

  • default_weight number

    Usual weight, in weight_unit (optional).

Response in data

  • created_at • Required timestamp

    When it was created (ISO 8601, UTC).

  • dimension_unit • Required string

    in or cm.

  • height • Required number

    Height, in dimension_unit.

  • id • Required uuid
  • length • Required number

    Length, in dimension_unit.

  • name • Required string
  • updated_at • Required timestamp

    When it last changed (ISO 8601, UTC).

  • usage_count • Required integer
  • weight_unit • Required string

    lb or kg.

  • width • Required number

    Width, in dimension_unit.

  • default_weight number

    Usual weight, in weight_unit (optional).

PATCH /v1/package-presets/{id}
curl -X PATCH "https://api.parcelhub.ca/v1/package-presets/3f2b8c1e-5d6a-4b7c-9e0f-1a2b3c4d5e6f" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "default_weight": 1.5,
  "dimension_unit": "cm",
  "height": 10,
  "length": 30,
  "name": "Alex Martin",
  "weight_unit": "kg",
  "width": 20
}'
Response
{
  "ok": true,
  "data": {
    "created_at": "2026-10-31T15:04:05Z",
    "default_weight": 1.5,
    "dimension_unit": "cm",
    "height": 10,
    "id": "3f2b8c1e-5d6a-4b7c-9e0f-1a2b3c4d5e6f",
    "length": 30,
    "name": "Alex Martin",
    "updated_at": "2026-10-31T15:04:05Z",
    "usage_count": 1,
    "weight_unit": "kg",
    "width": 20
  },
  "request_id": "01JBX7Q2…"
}

Delete a box preset

DELETE /v1/package-presets/{id}

Deletes a saved box.

Path parameters

  • id • Required string

Response in data

  • deleted • Required boolean
DELETE /v1/package-presets/{id}
curl -X DELETE "https://api.parcelhub.ca/v1/package-presets/3f2b8c1e-5d6a-4b7c-9e0f-1a2b3c4d5e6f" \
  -H "Authorization: Bearer $TOKEN"
Response
{
  "ok": true,
  "data": {
    "deleted": true
  },
  "request_id": "01JBX7Q2…"
}

Record box use

POST /v1/package-presets/{id}/use

Records that a saved box was used, so the most used boxes are listed first.

Path parameters

  • id • Required string

Response in data

  • created_at • Required timestamp

    When it was created (ISO 8601, UTC).

  • dimension_unit • Required string

    in or cm.

  • height • Required number

    Height, in dimension_unit.

  • id • Required uuid
  • length • Required number

    Length, in dimension_unit.

  • name • Required string
  • updated_at • Required timestamp

    When it last changed (ISO 8601, UTC).

  • usage_count • Required integer
  • weight_unit • Required string

    lb or kg.

  • width • Required number

    Width, in dimension_unit.

  • default_weight number

    Usual weight, in weight_unit (optional).

POST /v1/package-presets/{id}/use
curl -X POST "https://api.parcelhub.ca/v1/package-presets/3f2b8c1e-5d6a-4b7c-9e0f-1a2b3c4d5e6f/use" \
  -H "Authorization: Bearer $TOKEN"
Response
{
  "ok": true,
  "data": {
    "created_at": "2026-10-31T15:04:05Z",
    "default_weight": 1.5,
    "dimension_unit": "cm",
    "height": 10,
    "id": "3f2b8c1e-5d6a-4b7c-9e0f-1a2b3c4d5e6f",
    "length": 30,
    "name": "Alex Martin",
    "updated_at": "2026-10-31T15:04:05Z",
    "usage_count": 1,
    "weight_unit": "kg",
    "width": 20
  },
  "request_id": "01JBX7Q2…"
}

Shipping defaults

GET /v1/preferences/shipping

Defaults applied to new shipments: label size, signature option, reference, delivery instructions and whether recipients get tracking emails.

Response in data

  • email_notifications_default • Required boolean

    Email tracking updates to recipients by default.

  • label_size • Required string

    thermal (4×6 in) or standard (8.5×11 in). Defaults to the account's shipping preference.

  • updated_at • Required timestamp

    When it last changed (ISO 8601, UTC).

  • delivery_instructions_default string

    Delivery instructions put on new shipments.

  • reference_number_default string

    Reference put on new shipments.

  • signature_option string

    Signature on delivery: none, required or adult. Carriers charge extra for a signature.

GET /v1/preferences/shipping
curl "https://api.parcelhub.ca/v1/preferences/shipping" \
  -H "Authorization: Bearer $TOKEN"
Response
{
  "ok": true,
  "data": {
    "delivery_instructions_default": "string",
    "email_notifications_default": true,
    "label_size": "thermal",
    "reference_number_default": "string",
    "signature_option": "none",
    "updated_at": "2026-10-31T15:04:05Z"
  },
  "request_id": "01JBX7Q2…"
}

Update shipping defaults

PUT /v1/preferences/shipping

Replaces the account's shipping defaults.

Request body

  • label_size • Required string

    thermal (4×6 in) or standard (8.5×11 in). Defaults to the account's shipping preference.

  • delivery_instructions_default string

    Delivery instructions put on new shipments.

  • email_notifications_default boolean

    Email tracking updates to recipients by default.

  • reference_number_default string

    Reference put on new shipments.

  • signature_option string

    Signature on delivery: none, required or adult. Carriers charge extra for a signature.

Response in data

  • email_notifications_default • Required boolean

    Email tracking updates to recipients by default.

  • label_size • Required string

    thermal (4×6 in) or standard (8.5×11 in). Defaults to the account's shipping preference.

  • updated_at • Required timestamp

    When it last changed (ISO 8601, UTC).

  • delivery_instructions_default string

    Delivery instructions put on new shipments.

  • reference_number_default string

    Reference put on new shipments.

  • signature_option string

    Signature on delivery: none, required or adult. Carriers charge extra for a signature.

PUT /v1/preferences/shipping
curl -X PUT "https://api.parcelhub.ca/v1/preferences/shipping" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "delivery_instructions_default": "string",
  "email_notifications_default": true,
  "label_size": "thermal",
  "reference_number_default": "string",
  "signature_option": "none"
}'
Response
{
  "ok": true,
  "data": {
    "delivery_instructions_default": "string",
    "email_notifications_default": true,
    "label_size": "thermal",
    "reference_number_default": "string",
    "signature_option": "none",
    "updated_at": "2026-10-31T15:04:05Z"
  },
  "request_id": "01JBX7Q2…"
}