# ParcelHub Docs > ParcelHub is a Canadian multi-carrier shipping platform: live rates from Canada Post, UPS, FedEx, Purolator, Canpar, UniUni, GLS and others, labels paid from a prepaid wallet, tracking, pickups, returns and store integrations. Customers can use it from the dashboard (https://my.parcelhub.ca), from an AI assistant through MCP, or from code through the REST API. Important for agents: - REST base path is https://api.parcelhub.ca/v1/ (e.g. /v1/rates, /v1/shipments). The old /v1/my/... prefix was REMOVED on 2026-10-31; old paths return 404 "endpoint_moved" with the new path in error.moved_to. Drop "/my" and retry. - Auth: create a key at https://my.parcelhub.ca/account/profile/api-keys, POST {client_id, client_secret} to https://api.parcelhub.ca/v1/api-clients/token, send "Authorization: Bearer " (about 15 minutes; get a new one on 401). - Responses: {"ok": true, "data": ...}; errors {"ok": false, "error": {"code", "message"}}. Money is integer cents. - Buying a label (POST /v1/shipments), booking a pickup, topping up the wallet or paying an invoice spends the customer's money: get their explicit confirmation first. Send an Idempotency-Key on POST /v1/shipments. - Never ask a customer for a card number. New cards are added by the customer on Stripe's form at https://my.parcelhub.ca/wallet/add-card. - MCP server: https://mcp.parcelhub.ca/mcp (Streamable HTTP, OAuth 2.1 + PKCE with dynamic client registration, or "Authorization: Bearer :"). ## Guides - [AI assistants (MCP)](https://docs.parcelhub.ca/ai-assistants): connect Claude, ChatGPT, Claude Code, Cursor; every tool; safety rules; troubleshooting - [REST API](https://docs.parcelhub.ca/api): keys, tokens, request format, rates, buying labels, labels/tracking/voiding, customs, pickups, main resources - [Labels & tracking](https://docs.parcelhub.ca/api/shipping): rates, checkout total, buying with Idempotency-Key, labels, statuses, voiding, return labels, drafts, batches - [Cross-border](https://docs.parcelhub.ca/api/international): HS codes, customs declarations, prepaid duties (DDP), commercial invoices - [Pickups & drop-off](https://docs.parcelhub.ca/api/pickups): carriers, cutoffs, quotes, booking, changes, drop-off locations - [Wallet & billing](https://docs.parcelhub.ca/api/wallet): balance, top-ups from saved cards (two calls), invoices for carrier adjustments, receipts, refunds - [Stores](https://docs.parcelhub.ca/api/stores): connect Shopify/WooCommerce/Wix, sync, import orders as drafts; tracking goes back to the store - [Errors & retries](https://docs.parcelhub.ca/api/errors): error codes, safe retries, paging, moved endpoints - [API reference](https://docs.parcelhub.ca/api/reference): every public endpoint, one page per group (e.g. https://docs.parcelhub.ca/api/reference/rates, /shipments, /pickups, /wallet), with request/response fields and cURL, Node.js and Python examples. OpenAPI 3.1 at https://docs.parcelhub.ca/openapi.json (also GET https://api.parcelhub.ca/v1/openapi.json with your token) - [Carrier guides](https://docs.parcelhub.ca/carriers): services and transit times for Canada Post, UPS, FedEx, Purolator, Canpar Express, UniUni and GLS; filter rates to one carrier with "carriers": ["canada_post"] - [Status](https://docs.parcelhub.ca/status): live status of the API and the MCP server - [Changelog](https://docs.parcelhub.ca/changelog): 2026-10-31 /v1/my prefix removed; MCP covers the whole dashboard; saved cards over the API ## Optional - [ParcelHub website](https://parcelhub.ca) - [Customer dashboard](https://my.parcelhub.ca)