Summary
Amazon Shipping API v2 (SP-API) for businesses that ship with Amazon as the carrier: compare rates, track parcels, fetch labels and documents again, find lockers and pickup counters, and read collection forms. Buying, one-click purchase and cancellation are included but switched off. Private SP-API app with the Amazon Logistics role.
Guided setup
Connect Amazon Shipping to Claude, ChatGPT or Copilot in 2 minutes
Start a free trial on AnythingMCP Cloud, connect Amazon Shipping in the guided setup, then add your MCP URL to your AI assistant. No code and no server to run.
No credit card · 7-day trial · Self-host alternative available
Try asking
Example prompts for Amazon Shipping
Click any prompt to copy it. Paste into Claude, ChatGPT, Cursor, Gemini, Copilot or OpenClaw to run it against this connector.
Claude is AI and can make mistakes. Please double-check responses.
💡 No install? Use cloud.anythingmcp.com directly. Sign in, click Connectors → Amazon Shipping, paste your credentials, mint an MCP API key and you're done. No Docker, no
git clone, no local server.
Amazon Shipping
Amazon Shipping API v2 (SP-API) for businesses that ship with Amazon as the carrier: compare rates, track parcels, fetch labels and documents again, find lockers and pickup counters, and read collection forms. Buying, one-click purchase and cancellation are included but switched off. Private SP-API app with the Amazon Logistics role.
Setup
Setting up takes about 20 minutes. You need the plus Amazon reviews.
- You need an Amazon Shipping account. Sellers on Amazon use their Seller Central account; other shippers create an account at https://solutionproviderportal.amazon.com (no seller account needed) and complete the developer identity verification.
- Complete the Developer Profile: for Data Access choose Private Developer: I build application(s) that integrate my own company with Amazon Services APIs, for Roles choose Amazon Logistics. Amazon answers within about 5 business days.
- Create an SP-API app client named
AmazonShipping_YourCompany, with the Shipping business entity and the Amazon Logistics role, and answer No to delegating restricted (PII) data access. - Under LWA credentials choose View and copy the client identifier (
amzn1.application-oa2-client.…) intoSPAPI_CLIENT_IDand the client secret intoSPAPI_CLIENT_SECRET. - Authorize the app for your own account (Authorize app) and copy the refresh token (
Atzr|…) intoSPAPI_REFRESH_TOKEN. - Pick the region in
SPAPI_ENDPOINTand your Amazon Shipping country inAMAZON_SHIPPING_BUSINESS_ID. United States: North America. United Kingdom, France, Italy, Spain, India, United Arab Emirates, Saudi Arabia, Egypt: Europe. Japan: Far East.
The connector exchanges the refresh token at https://api.amazon.com/auth/o2/token for one-hour access tokens and sends them in the x-amz-access-token header; the x-amzn-shipping-business-id header carries the country. The variables have the same names as in the Amazon Seller Central connector, but the app must have the Amazon Logistics role: the credentials of a selling app without it answer 403.
Before the first real label: Amazon asks every new integration to produce a test label and have it signed off (Amazon Shipping Test Label Guide) and then confirms the first shipping date. Keep the purchase tools switched off until that is done.
Where to start: amazon_shipping_get_rates with the ship-from address, the destination and one package returns the services and prices; amazon_shipping_get_tracking follows a parcel by tracking id and carrier id.
Rates: amazon_shipping_get_rates needs for each package a packageClientReferenceId of your own, dimensions, weight, the insured value and at least one item. channel_details.channelType is EXTERNAL for orders from your own shop and AMAZON (with the Amazon order id) for Amazon orders. The answer carries a requestToken and one rateId per service; both are needed to buy and expire after 10 minutes. When a rate says requiresAdditionalInputs, read the schema with amazon_shipping_get_additional_inputs.
Tracking and documents: amazon_shipping_get_tracking returns the summary status and the event history; amazon_shipping_get_shipment_documents returns the label of a bought package again (base64) and needs the shipment id and your packageClientReferenceId. amazon_shipping_get_access_points finds lockers and counters near a postal code.
Collection forms: amazon_shipping_get_unmanifested_shipments shows what still waits for a manifest, amazon_shipping_get_collection_form_history and amazon_shipping_get_collection_form read earlier forms, and amazon_shipping_get_carrier_accounts lists linked carrier accounts. amazon_shipping_generate_collection_form closes out the open shipments of a carrier and is installed switched off.
Buying (switched off): amazon_shipping_purchase_shipment buys a rate, amazon_shipping_one_click_shipment buys by service id without a rate request, amazon_shipping_direct_purchase_shipment buys for an Amazon order with the service Amazon picks, and amazon_shipping_cancel_shipment cancels a bought shipment before handover. Each purchase is charged to the Amazon Shipping account. Pass an idempotency key and reuse it when retrying, so a timeout does not buy twice.
Formats: amounts are objects with value and unit (the currency); weights use GRAM, KILOGRAM, OUNCE or POUND and dimensions INCH or CENTIMETER; times are ISO 8601. Answers are wrapped in payload; failures come as errors, a list of code, message and details.
Limits: 80 calls per second with a burst of 100 on most operations; the response header x-amzn-RateLimit-Limit shows the limit applied. A 429 means wait and retry.
Prerequisites: SPAPI_CLIENT_ID, SPAPI_CLIENT_SECRET, SPAPI_REFRESH_TOKEN, SPAPI_ENDPOINT, AMAZON_SHIPPING_BUSINESS_ID
Install the connector locally
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
Open http://localhost:3000/connectors/store, pick Amazon Shipping and paste in the env vars listed under Prerequisites.
Available tools
| Tool | What it does |
|---|---|
amazon_shipping_get_rates | Get the Amazon Shipping service offerings and prices for a shipment. Returns payload.requestToken (needed to purchase, valid for 10… |
amazon_shipping_get_additional_inputs | Read the JSON schema of the extra information a rate needs before it can be bought. Call it when a rate of amazon_shipping_get_rates has… |
amazon_shipping_get_tracking | Track a parcel shipped with Amazon Shipping. Returns payload.summary.status (PreTransit, InTransit, OutForDelivery, Delivered… |
amazon_shipping_get_shipment_documents | Fetch the label and other documents of a package of a bought shipment again. Returns payload.shipmentId and… |
amazon_shipping_get_access_points | Find Amazon lockers and pickup counters near a postal code, to offer them as a delivery address. Returns payload.accessPointsMap, a map… |
amazon_shipping_get_unmanifested_shipments | List the carriers and pickup locations that still have bought shipments without a collection form (manifest). Returns… |
amazon_shipping_get_collection_form_history | List the collection forms (manifests) generated earlier. Returns collectionFormsHistoryRecordList with per form the collectionFormId… |
amazon_shipping_get_collection_form | Fetch a collection form (manifest) that was generated earlier, to print it again. Returns collectionsFormDocument with the file as… |
amazon_shipping_get_carrier_accounts | List the carrier accounts linked to your Amazon Shipping account. Returns activeAccounts with accountId and carrierId per account.… |
amazon_shipping_purchase_shipment | Buy a shipment from a rate of amazon_shipping_get_rates. Amazon charges the shipment to your account, so the tool is installed switched… |
amazon_shipping_direct_purchase_shipment | Buy a shipment for an Amazon order in one call, letting Amazon pick the best fitting service (no rate request first). Amazon charges the… |
amazon_shipping_one_click_shipment | Buy a shipment in one call by naming the service ids to choose from, without a rate request first. Amazon charges the shipment to your… |
amazon_shipping_cancel_shipment | Cancel a shipment that was bought but not yet handed to the carrier. It cannot be undone: the label becomes invalid. Returns an empty… |
amazon_shipping_generate_collection_form | Generate the collection form (manifest) for all bought shipments of a carrier at a ship-from address that have none yet. The shipments are… |
Example prompts
- "Compare Amazon Shipping rates for a 2 kg parcel from Manchester M1 1AE to London SW1A 1AA."
- "Track Amazon Shipping parcel QA0123456789 and tell me the last scan."
- "Find Amazon lockers near postcode EC1A 1BB."
- "Fetch the label of the shipment I bought this morning again."
- "Which shipments are not on a collection form yet?"
Next steps
Was this guide helpful?