Integration

Easyship integration

Easyship is a multi-courier shipping platform for ecommerce. Get live rates across its courier services, create shipments and buy labels, schedule pickups, build manifests, track parcels, quote and buy shipping insurance, calculate taxes and duties, validate addresses, manage addresses, boxes, products and tags, read shipping rules, and read analytics, billing documents and transaction records. Adding account credit, refunds, payment cards and auto-recharge settings, connecting or editing a courier account with its own credentials, dashboard redirect and app-access tokens, creating or editing shipping rules and their conditions and actions, account settings updates, the deprecated US-only address validation, the eFulfillment warehouse callback, the sandbox-only tracking update, binary PDF downloads (shipment documents, billing documents) and the multipart asset upload are not exposed. Authentication is an API access token created in the Easyship dashboard (APIs & Webhooks), sent as a Bearer token; use the production token (prefix prod_), since sandbox tokens (sand_) only work on Easyship's separate sandbox host. Each tool needs the API scope it names, chosen when the API connection is created.

Ask it in chat

Say what should happen.
The workflow builds itself.

When this happens, do that in Easyship.Built from the 98 Easyship tools below, on the connection you add once.

What you can do with Easyship

Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.

Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.

Shipment, 8 operations

  • create_shipmentCreate shipmentPOSTCreates a shipment from addresses and parcels and returns it with its rates. Billed only when shipping_settings.buy_label is true (label bought at once); otherwise buy it later with create_label. Contains contact names, phones and emails.
  • create_shipment_batchCreate shipment batchPOSTCreates many shipments in one batch, processed in the background; follow progress with get_batch and list_batch_items. Billed only for shipments whose shipping_settings.buy_label is true.
  • delete_shipmentDelete shipmentDELETEDeletes a shipment whose label has not been requested (label_state not_created). Once a label is requested, use cancel_shipment.
  • get_shipmentGet shipmentGETReturns one shipment with addresses, parcels, courier, rates, label state and shipping document links in the requested formats. Contains contact names, phones, emails and addresses.
  • get_shipment_analyticsGet shipment analyticsGETRetrieve analytics shipments data. Required authorization scope: `public.analytics:read`
  • list_pickup_shipmentsList pickup shipmentsGETLists the shipments of one pickup, with the same filters and fields as list_shipments. Contains contact names, phones, emails and addresses.
  • list_shipmentsList shipmentsGETLists shipments, newest first, filterable by dates, states, countries and order number; each carries addresses, parcels, rates, label and tracking details. Contains contact names, phones, emails and addresses.
  • update_shipmentUpdate shipmentPATCHUpdates a shipment whose label is not bought yet; send only the fields to change. Billed only when shipping_settings.buy_label is true (the label is bought in the same call).

Tracking, 5 operations

  • create_trackingCreate trackingPOSTStarts tracking a parcel shipped outside Easyship, by tracking number and courier. Needs the advanced scope public.track_3p:write, and each call counts towards the account's API usage allowance.
  • delete_trackingDelete trackingDELETEDeletes a tracking created with create_tracking. Needs the advanced scope public.track_3p:write; each call counts towards API usage.
  • get_trackingGet trackingGETReturns one tracking created with create_tracking, with its state. Needs the advanced scope public.track_3p:read. Contains contact names, phones, emails and addresses; each call counts towards API usage.
  • list_shipment_trackingsList shipment trackingsGETReturns tracking status (and checkpoints with include_checkpoints) for Easyship shipments, by shipment id or order number.
  • list_trackingsList trackingsGETLists parcels tracked with create_tracking, with tracking state and checkpoints. Needs the advanced scope public.track_3p:read; each call counts towards API usage. Contains contact names, phones, emails and addresses.

Address, 4 operations

  • create_addressCreate addressPOSTSaves an address (sender, pickup, billing or return) to the account. Returns the stored address with its id.
  • create_address_batchCreate address batchPOSTCreates many saved addresses in one batch, processed in the background; follow it with get_batch and list_batch_items. Address validation (validate true) is billed at the address validation rate.
  • list_addressesList addressesGETLists the account's saved addresses (active ones by default). Contains contact names, phones, emails and addresses.
  • update_addressUpdate addressPATCHUpdates a saved address; send only the fields to change.

Box, 4 operations

  • create_boxCreate boxPOSTSaves a custom box (outer dimensions in cm and empty weight in kg, unless the dashboard uses imperial units) for use in parcels.
  • delete_boxDelete boxDELETEDelete a box from your account. Required authorization scope: `public.box:write`
  • list_boxesList boxesGETRetrieve a list of available courier boxes and your custom boxes.
  • update_boxUpdate boxPATCHTurns a saved box on or off (is_active) and sets whether Easyship may pick it automatically (auto_selected); leave a field out to keep it.

Product, 4 operations

  • create_productCreate productPOSTSaves a product (SKU, dimensions, weight, prices, HS code or category) to the account catalog, so shipments can reference it by id or sku.
  • delete_productDelete productDELETEDelete a single product from your account. Required authorization scope: `public.product:write`
  • list_productsList productsGETRetrieve a list of products available with your account. Required authorization scope: `public.product:read`
  • update_productUpdate productPATCHUpdates a saved product; send only the fields to change.

Activate, 3 operations

  • activate_addressActivate addressPOSTReactivates a deactivated saved address.
  • activate_assetActivate assetPOSTMakes an uploaded asset the active one of its type; the other assets of that type become inactive.
  • activate_shipping_ruleActivate shipping rulePOSTActivates a shipping rule so it applies to new shipments.

Asset, 3 operations

  • delete_assetDelete assetDELETEDeletes an uploaded account asset.
  • list_assetsList assetsGETRetrieve a list of assets. Required authorization scope: `public.asset:read`
  • update_assetUpdate assetPATCHRenames an uploaded account asset (a logo or image used on labels and tracking pages).

Cancel, 3 operations

  • cancel_insurance_policyCancel insurance policyPOSTCancels an insurance policy in awaiting state that was created with create_insurance_policy_from_quote; policies bought with an Easyship label cannot be cancelled here.
  • cancel_pickupCancel pickupPOSTCancels a scheduled pickup.
  • cancel_shipmentCancel shipmentPOSTCancels a shipment whose label was requested but that is not yet in transit (label older than 6 months excluded); a shipment with no label is removed with delete_shipment instead.

Courier, 3 operations

  • delete_courierDelete courierDELETEDeletes one of your own linked courier accounts (LYOC) from Easyship. Shipments can no longer use it.
  • get_courierGet courierGETRetrieve details of a couriers. Required authorization scope: `public.courier:read`
  • list_couriersList couriersGETRetrieve a list of active couriers. Required authorization scope: `public.courier:read`

Deactivate, 3 operations

  • deactivate_addressDeactivate addressPOSTDeactivates a saved address; if it was the default, the first active address becomes the default.
  • deactivate_assetDeactivate assetPOSTDeactivates an uploaded asset.
  • deactivate_shipping_ruleDeactivate shipping rulePOSTDeactivates a shipping rule.

Manifest, 3 operations

  • create_manifestCreate manifestPOSTCreates a manifest (end-of-day handover document) for a courier that supports manifests, covering the given shipments or all eligible ones.
  • get_manifestGet manifestGETRetrieve details of a specific manifest. Required authorization scope: `public.manifest:read`
  • list_manifestsList manifestsGETRetrieve a list of [manifests](https://support.easyship.com/hc/en-us/articles/4414489808525-What-Is-a-Manifest-in-Shipping). Required authorization scope: `public.manifest:read`

Pickup, 3 operations

  • create_pickupCreate pickupPOSTSchedules a courier pickup for shipments of one courier whose labels are pending or generated; get time slots from list_pickup_slots. Some couriers charge for pickups.
  • get_pickupGet pickupGETRetrieve details of a specific pickup. Required authorization scope: `public.pickup:write`
  • list_pickupsList pickupsGETRetrieve a list of pickups. Required authorization scope: `public.pickup:read`

Shipping rule, 3 operations

  • delete_shipping_ruleDelete shipping ruleDELETEDelete a shipping rule. Required authorization scope: `public.shipping_rule:write`
  • get_shipping_ruleGet shipping ruleGETRetrieve a shipping rule. Required authorization scope: `public.shipping_rule:read`
  • list_shipping_rulesList shipping rulesGETRetrieve a list of shipping rules. Required authorization scope: `public.shipping_rule:read`

Transaction record, 3 operations

  • list_billing_document_transaction_recordsList billing document transaction recordsGETRetrieve a list of all billing document's transactions. Pagination of this endpoint is not indexed. `count` on the response body will always be `null`.
  • list_shipment_transaction_recordsList shipment transaction recordsGETList transaction records for a shipment. Required authorization scope: `public.transaction_record:read`
  • list_transaction_recordsList transaction recordsGETRetrieve a list of all transactions within range. Pagination of this endpoint is not indexed. `count` on the response body will always be `null`.

Action, 2 operations

  • delete_shipping_rule_actionDelete shipping rule actionDELETEDelete shipping rule action. Required authorization scope: `public.shipping_rule:write`
  • list_shipping_rule_actionsList shipping rule actionsGETList actions for a shipping rule. Required authorization scope: `public.shipping_rule:read`

Batch, 2 operations

  • get_batchGet batchGETRetrieve a batch by its ID. Required authorization scope: `public.batch:read`
  • list_batchesList batchesGETRetrieve a list of all batches ordered by date of creation. Required authorization scope: `public.batch:read`

Condition, 2 operations

  • delete_shipping_rule_conditionDelete shipping rule conditionDELETEDelete shipping rule condition. Required authorization scope: `public.shipping_rule:write`
  • list_shipping_rule_conditionsList shipping rule conditionsGETList conditions of a shipping rule. Required authorization scope: `public.shipping_rule:read`

Courier service, 2 operations

  • list_courier_servicesList courier servicesGETRetrieve a list of active courier services available with your account. Required authorization scope: `public.courier_service:read`
  • list_courier_services_of_courierList courier services of courierGETRetrieve a list of courier services for selected courier. Required authorization scope: `public.courier_service:read`

Label, 2 operations

  • create_labelCreate labelPOSTBILLED: buys the label of an existing shipment, booking it with the courier and charging the account balance, and returns the shipment with its label. Without courier_service_id the shipment's courier, or the best value one, is used.
  • create_label_batchCreate label batchPOSTBILLED: buys labels for several existing shipments, charging the account balance. Labels are generated asynchronously: the answer is the batch; follow it with get_batch or list_batch_items, where label_state becomes generated or failed.

Tag, 2 operations

  • create_tagCreate tagPOSTCreates a tag that can be put on shipments. Returns the tag.
  • list_tagsList tagsGETLists the account's shipment tags, optionally filtered by keyword.

Account, 1 operation

  • get_accountGet accountGETReturns the account (company, billing address, credit balance and payment sources), each part only when the token has its scope (public.address:read, public.credit:read, public.payment_source:read). Contains billing contact data.

Billing document, 1 operation

  • list_billing_documentsList billing documentsGETRetrieve a list of all billing documents within range. Pagination of this endpoint is not indexed. `count` on the response body will always be `null`.

Canada post, 1 operation

  • list_canada_post_locationsList canada post locationsGETRetrieve Canada Post locations. This endpoint routes requests to the Canada Post `Get Nearest Post Office` API.

Country, 1 operation

  • list_countriesList countriesGETRetrieve a list of countries. Required authorization scope: `public.reference:read` Available filtering parameters: by Alpha-2 country code or continent.

Credit, 1 operation

  • get_credit_balanceGet credit balanceGETReturns the account's prepaid credit balance and currency.

Estimated delivery date, 1 operation

  • list_estimated_delivery_datesList estimated delivery datesGETRetrieve a list of estimated delivery dates for a specific courier service.

External courier service, 1 operation

  • list_trackable_courier_servicesList trackable courier servicesGETLists courier services that Easyship can track but not label, for create_tracking. Needs scope public.track_3p:read; each call counts towards the account's API usage allowance.

Fedex, 1 operation

  • list_fedex_locationsList fedex locationsGETRetrieve FedEx locations. This endpoint routes requests to the FedEx Location API.

Hs code, 1 operation

  • list_hs_codesList hs codesGETRetrieve a list of HS codes.

Insure, 1 operation

  • insure_shipmentInsure shipmentPOSTBILLED: buys Easyship insurance for a shipment whose label was generated within the last 24 hours. Available on request from Easyship.

Item, 1 operation

  • list_batch_itemsList batch itemsGETLists the items of one batch, one per record it processes, with each item's state, record_id and processing_errors; use it after create_shipment_batch, create_address_batch or create_label_batch.

Item category, 1 operation

  • list_item_categoriesList item categoriesGETRetrieve a list of item categories. Required authorization scope: `public.reference:read`

Lyoc, 1 operation

  • list_lyoc_couriersList lyoc couriersGETLYOC (Link Your Own Courier) allows merchants to connect their existing courier accounts, such as DHL, UPS, FedEx, or Royal Mail, to Easyship.

Pickup slot, 1 operation

  • list_pickup_slotsList pickup slotsGETRetrieve a list of pickup slots in local time for the coming seven days. Required authorization scope: `public.pickup:read`

Platform, 1 operation

  • list_shipping_rule_platformsList shipping rule platformsGETRetrieve a list of available platform names for shipping rules. Required authorization scope: `public.shipping_rule:write`

Policies from quote, 1 operation

  • create_insurance_policy_from_quoteCreate insurance policy from quotePOSTBILLED: buys an insurance policy from an active quote for a shipment with a non-Easyship label. Needs an updated Easyship contract. Setting the policy field send_email to true emails the holder a confirmation.

Policy, 1 operation

  • list_insurance_policiesList insurance policiesGETLists insurance policies, bought with Easyship labels or from quotes, filterable by type, state, shipment and recipient. Contains policy holder names and emails.

Quote, 1 operation

  • create_insurance_quoteCreate insurance quotePOSTCreates an insurance quote (valid 48 hours) for goods shipped with a non-Easyship label, with a fee per product and a total. Nothing is bought; turn it into a policy with create_insurance_policy_from_quote.

Rate, 1 operation

  • get_ratesGet ratesPOSTReturns live shipping quotes from the couriers available to the account for a prospective shipment, with costs, transit times, and taxes and duties estimates. Nothing is booked or billed; pass a rate's courier_service_id to create_shipment.

Return, 1 operation

  • create_return_shipmentCreate return shipmentPOSTCreates a return shipment from an existing shipment, by default to the original shipment's return address and with all its items. Not billed until its label is bought with create_label.

Sale channel, 1 operation

  • get_sales_channel_analyticsGet sales channel analyticsGETRetrieve sales analytics. Required authorization scope: `public.analytics:read`

Settings, 1 operation

  • list_account_settingsList account settingsGETRetrieve account settings. Required authorization scope: `public.setting:read`

Shipment status, 1 operation

  • get_shipment_status_analyticsGet shipment status analyticsGETRetrieve shipment status.

Shipments shipped, 1 operation

  • get_shipped_shipment_analyticsGet shipped shipment analyticsGETRetrieve data on whether the company has made any shipments within specified period. Required authorization scope: `public.analytics:read`

State, 1 operation

  • list_statesList statesGETRetrieve a list of states. Required authorization scope: `public.reference:read` This endpoint in only used for the United States, Canada, Australia and Mexico.

Store, 1 operation

  • list_storesList storesGETRetrieve a list of stores available with your account. Required authorization scope: `public.store:read`

Supported courier, 1 operation

  • list_tracking_supported_couriersList tracking supported couriersGETLists couriers supported for tracking with create_tracking, filterable by origin country and umbrella name. Needs scope public.track_3p:read; each call counts towards API usage.

Taxes and duty, 1 operation

  • calculate_taxes_and_dutiesCalculate taxes and dutiesPOSTEstimates import taxes and duties for a shipment from HS codes and values. Needs the advanced scope public.tax_and_duty:read, and each call counts towards the account's API usage allowance.

Top courier, 1 operation

  • get_top_courier_analyticsGet top courier analyticsGETRetrieve analytics top couriers data. Required authorization scope: `public.analytics:read`

Top shipments destination, 1 operation

  • get_top_destination_analyticsGet top destination analyticsGETRetrieve a company top shipments destinations country. Required authorization scope: `public.analytics:read`

Unavailable courier, 1 operation

  • list_unavailable_couriersList unavailable couriersGETList unavailable couriers for a shipment. Required authorization scopes: `public.shipment:read`, `public.rate:read`

Up, 1 operation

  • list_ups_locationsList ups locationsGETRetrieve UPS locations. This endpoint routes requests to the UPS locator API.

Usp, 1 operation

  • list_usps_locationsList usps locationsGETRetrieve USPS locations. This endpoint routes requests to the USPS Locations API.

Validation, 1 operation

  • validate_addressValidate addressPOSTBILLED: validates one address and returns the corrected address; US addresses are billed at the US validation rate, others at the standard rate, and calls count towards API usage. Needs an updated Easyship contract.

Use Easyship from Claude Code, Cursor or Codex

Connect Easyship in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its Easyship operations become tools the client can call, next to every other integration you connected.

Claude Code
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"
Codex (~/.codex/config.toml)
[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"

[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"
Cursor, Claude Desktop and other JSON configs
{
  "mcpServers": {
    "livecontext": {
      "type": "http",
      "url": "https://livecontext.ai/mcp",
      "headers": {
        "X-API-Key": "YOUR_API_KEY"
      }
    }
  }
}

Set up the MCP server step by step

How to connect Easyship

  1. Create your workspace

    Sign up free. Nothing to install.

  2. Connect Easyship once

    Add your Easyship connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.

  3. Describe the job in chat

    The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.

Easyship integration FAQ

What can you do with the Easyship integration?

LiveContext exposes 98 operations on Easyship, covering shipment, tracking, address and box.

Popular integrations

Browse the whole catalog