Changelog

What changed

Changes to the ParcelHub API and the AI assistant connector, newest first.

31 October 2026

Rates from one carrier only

POST /v1/rates and POST /v1/rates/quick take an optional carriers list, e.g. "carriers": ["canada_post"]. Only those carriers are quoted and returned, so the call is faster too. The AI assistant's get_rates tool takes the same option. Labels guide

GLS carrier guide

GLS Canada's ground service now has its own carrier guide.

A complete public API reference and guides

The API reference now covers 145 endpoints in 17 groups, with request and response fields, and is the source for upcoming SDKs. New guides: labels & tracking, cross-border, pickups, wallet & billing, stores and errors & retries.

API paths no longer start with /v1/my Action needed

Every customer endpoint is now https://api.parcelhub.ca/v1/<resource>. Drop /my from your paths; request and response bodies are unchanged.

BeforeNow
/v1/my/rates/v1/rates
/v1/my/shipments/v1/shipments
/v1/my/shipments/{id}/label/v1/shipments/{id}/label
/v1/my/pickups/v1/pickups
/v1/my/wallet/v1/wallet
/v1/my/rates/quick/v1/rates/quick (with your token)

Calls to an old path return 404 with error.code = "endpoint_moved", the new path in error.moved_to and an x-ph-moved-to header, so a script or AI agent can correct itself. Shared paths are unchanged: /v1/api-clients/token, /v1/auth/…, /v1/public/….

AI assistants can now do everything the dashboard does

The connector at https://mcp.parcelhub.ca/mcp grew from 13 to 98 tools: drafts and batches, return labels, pickup booking, address book and saved boxes, wallet top-ups from a saved card, card management, invoices and receipts, store orders, ReturnHub, support tickets, notifications, the print shop and more. Connect your assistant.

Saved cards over the API

Full-access keys can now set the default card, remove a card and request a wallet refund (refunds only ever go back to the card that paid). Adding a card is still done on Stripe's form in the dashboard — card numbers never go through the API or an AI chat.

Complete spec for your key

GET /v1/openapi.json (with your token) now lists every customer endpoint, with x-caller-allowed on each operation.