| name | shippo |
| description | Shippo API integration with managed OAuth for shipping label and fulfillment automation. Create shipments, purchase labels, track packages, manage addresses, parcels, orders, customs declarations, carrier accounts, batches, and merchant operations. Use this skill when users want to generate shipping labels, compare carrier rates, track shipments, manage orders, or automate e-commerce fulfillment workflows. |
Shippo

Shippo is a shipping and fulfillment platform for generating labels, comparing carrier rates, tracking packages, and managing multi-carrier shipping operations. This integration uses managed OAuth through ClawLink to automate your entire shipping workflow without managing API keys.
Setup in 3 Steps
| Step 1: Install | Step 2: Pair Account | Step 3: Connect Shippo |
|---|
 |  | App-specific connection GIF coming soon |
| Run the install command in OpenClaw | Sign in and approve the device | Open the dashboard and connect Shippo |
How It Works
┌─────────────────┐ ┌──────────────┐ ┌──────────────────┐
│ OpenClaw │────▶│ ClawLink │────▶│ Shippo API │
│ (User Chat) │ │ (OAuth) │ │ │
└─────────────────┘ └──────────────┘ └──────────────────┘
Install
openclaw plugins install clawhub:clawlink-plugin
openclaw config set tools.alsoAllow '["clawlink-plugin"]' --strict-json
openclaw gateway restart
Quick Start
Get live shipping rates for a package:
clawlink_execute_tool --integration shippo --tool shippo_create_live_rate --args '{"address_from": "addr-123", "address_to": "addr-456", "parcels": [{"length": "10", "width": "8", "height": "6", "distance_unit": "in", "weight": "2", "mass_unit": "lb"}]}'
Create a shipment and get rates:
clawlink_execute_tool --integration shippo --tool shippo_create_shipment --args '{"address_from": "addr-123", "address_to": "addr-456", "parcels": ["parcel-789"]}'
Track a package:
clawlink_execute_tool --integration shippo --tool shippo_get_track --args '{"carrier": "usps", "tracking_number": "9400111899223100001234"}'
Authentication
Shippo uses OAuth 2.0 managed by ClawLink. No API keys are needed. Authorize access through the ClawLink dashboard. Your Shippo connection is stored securely and refreshed automatically.
Connect at: https://claw-link.dev/dashboard?add=shippo
Connection Management
List connections:
clawlink_list_integrations
Verify connection:
clawlink_execute_tool --integration shippo --tool shippo_list_carrier_accounts
Reconnect: If a connection expires, visit the dashboard URL above and reconnect Shippo.
Security & Permissions
- Read operations (retrieving addresses, shipments, rates, tracking, orders, transactions) are safe and require no confirmation.
- Write operations (creating addresses, shipments, orders, transactions, labels, batches, webhooks, parcels) modify data and require confirmation.
- Destructive operations (deleting webhooks, parcel templates, removing shipments from batches) are high-impact and require explicit confirmation.
Tool Reference
Address Operations
| Tool | Description | Mode |
|---|
shippo_list_addresses | List all stored addresses with pagination | Read |
shippo_get_address | Retrieve a specific address by object ID | Read |
shippo_create_address | Create a new sender or recipient address | Write |
shippo_validate_address | Validate a shipping address against carrier databases | Read |
Shipment Operations
| Tool | Description | Mode |
|---|
shippo_list_shipments | List all shipments with pagination | Read |
shippo_get_shipment | Retrieve a specific shipment by ID | Read |
shippo_create_shipment | Create a new shipment to generate shipping rates | Write |
Rate & Live Rate Operations
| Tool | Description | Mode |
|---|
shippo_get_rate | Retrieve a specific shipping rate by ID | Read |
shippo_list_shipment_rates | List available rates for a specific shipment | Read |
shippo_list_shipment_rates_by_currency | List rates filtered by currency code | Read |
shippo_create_live_rate | Generate live shipping rates from multiple carriers | Read |
Transaction (Label) Operations
| Tool | Description | Mode |
|---|
shippo_get_transaction | Retrieve a shipping label transaction by ID | Read |
shippo_create_transaction | Purchase a shipping label from a rate or shipment details | Write |
Order Operations
| Tool | Description | Mode |
|---|
shippo_list_orders | List all orders with pagination | Read |
shippo_get_order | Retrieve a specific order by ID | Read |
shippo_create_order | Create a new order for shipment processing | Write |
Parcel Operations
| Tool | Description | Mode |
|---|
shippo_get_parcel | Retrieve a parcel by ID | Read |
shippo_create_parcel | Create a new parcel with dimensions and weight | Write |
Tracking Operations
| Tool | Description | Mode |
|---|
shippo_get_track | Retrieve tracking status by carrier and tracking number | Read |
shippo_create_track | Register a tracking webhook for a shipment | Write |
Batch Operations
| Tool | Description | Mode |
|---|
shippo_create_batch | Create a batch of shipments for bulk label purchasing | Write |
shippo_remove_shipments_from_batch | Remove shipments from a batch | Write (Destructive) |
Carrier Account Operations
| Tool | Description | Mode |
|---|
shippo_list_carrier_accounts | List all configured carrier accounts | Read |
shippo_get_carrier_account | Retrieve a carrier account by ID | Read |
shippo_create_carrier_account | Register a new carrier account with credentials | Write |
shippo_update_carrier_account | Update carrier account settings | Write |
shippo_get_carrier_registration_status | Check carrier registration status | Read |
Customs Operations
| Tool | Description | Mode |
|---|
shippo_list_customs_declarations | List all customs declarations | Read |
shippo_get_customs_declaration | Retrieve a specific customs declaration | Read |
shippo_create_customs_item | Create a customs item for international shipments | Write |
shippo_list_customs_items | List all customs items | Read |
shippo_get_customs_item | Retrieve a specific customs item | Read |
Manifest Operations
| Tool | Description | Mode |
|---|
shippo_list_manifests | List all shipping manifests | Read |
shippo_create_manifest | Create a new manifest for carrier pickup | Write |
Refund Operations
| Tool | Description | Mode |
|---|
shippo_list_refunds | List all refunds | Read |
shippo_get_refund | Retrieve a specific refund by ID | Read |
shippo_create_refund | Create a refund for a transaction | Write |
Parcel Template Operations
| Tool | Description | Mode |
|---|
shippo_list_carrier_parcel_templates | List standardized carrier parcel templates | Read |
shippo_get_carrier_parcel_template | Retrieve a specific carrier parcel template | Read |
shippo_list_user_parcel_templates | List user-created custom parcel templates | Read |
shippo_get_user_parcel_template | Retrieve a specific user parcel template | Read |
shippo_get_default_parcel_template | Retrieve the default parcel template | Read |
shippo_create_user_parcel_template | Create a reusable custom parcel template | Write |
shippo_update_user_parcel_template | Update a custom parcel template | Write |
shippo_update_default_parcel_template | Set a template as the default for live rates | Write |
shippo_delete_default_parcel_template | Clear the default parcel template | Write (Destructive) |
shippo_delete_user_parcel_template | Delete a custom parcel template | Write (Destructive) |
Service Group Operations
| Tool | Description | Mode |
|---|
shippo_list_service_groups | List all configured service groups | Read |
shippo_create_service_group | Create a custom shipping rate group | Write |
shippo_update_service_group | Update an existing service group | Write |
Webhook Operations
| Tool | Description | Mode |
|---|
shippo_get_webhook | Retrieve a specific webhook subscription | Read |
shippo_create_webhook | Create a new webhook subscription | Write |
shippo_update_webhook | Update an existing webhook | Write |
shippo_delete_webhook | Delete a webhook subscription | Write (Destructive) |
Account Operations
| Tool | Description | Mode |
|---|
shippo_get_shippo_account | Retrieve a Shippo account by ID | Read |
shippo_list_shippo_accounts | List all managed Shippo accounts | Read |
Merchant Operations (Platform API)
| Tool | Description | Mode |
|---|
shippo_list_merchants | List all merchants with pagination | Read |
shippo_get_merchant | Retrieve a specific merchant by ID | Read |
shippo_update_merchant | Update merchant details | Write |
shippo_create_merchant_address | Create an address for a merchant | Write |
shippo_list_merchant_addresses | List addresses for a merchant | Read |
shippo_get_merchant_address | Retrieve a specific merchant address | Read |
shippo_validate_merchant_address | Validate a merchant address | Read |
shippo_create_merchant_shipment | Create a shipment for a merchant | Write |
shippo_list_merchant_shipments | List shipments for a merchant | Read |
shippo_get_merchant_shipment | Retrieve a specific merchant shipment | Read |
shippo_create_merchant_transaction | Purchase a label for a merchant | Write |
shippo_list_merchant_transactions | List transactions for a merchant | Read |
shippo_get_merchant_transaction | Retrieve a specific merchant transaction | Read |
shippo_create_merchant_order | Create an order for a merchant | Write |
shippo_list_merchant_orders | (via get_merchant_order) Retrieve merchant orders | Read |
shippo_get_merchant_order | Retrieve a specific merchant order | Read |
shippo_create_merchant_batch | Create a batch for a merchant | Write |
shippo_get_merchant_batch |
Code Examples
Create a shipment and get rates:
{
"tool": "shippo_create_shipment",
"args": {
"address_from": "addr-uuid-from",
"address_to": "addr-uuid-to",
"parcels": ["parcel-uuid"],
"async": false
}
}
Purchase a shipping label:
{
"tool": "shippo_create_transaction",
"args": {
"rate": "rate-uuid",
"label_file_type": "PDF",
"async": false
}
}
Track a package:
{
"tool": "shippo_get_track",
"args": {
"carrier": "usps",
"tracking_number": "9400111899223100001234"
}
}
Create an address:
{
"tool": "shippo_create_address",
"args": {
"name": "Jane Smith",
"street1": "123 Main St",
"city": "San Francisco",
"state": "CA",
"zip": "94105",
"country": "US",
"validate": true
}
}
List carrier accounts:
{
"tool": "shippo_list_carrier_accounts",
"args": {}
}
Discovery Workflow
- Call
clawlink_list_integrations to confirm shippo is connected.
- Call
clawlink_list_tools --integration shippo to see the live catalog.
- Start with
shippo_list_carrier_accounts to see available carriers.
- Use
shippo_list_addresses to browse stored addresses.
- Use
shippo_list_shipments to view existing shipments.
Execution Workflow
Read Flow:
list_addresses → create_shipment → list_shipment_rates → get_rate
Label Flow:
create_shipment → list_shipment_rates → create_transaction (confirm) → get_track
Track Flow:
get_track → (carrier + tracking_number) → tracking status + history
Order Flow:
create_order → create_shipment → create_transaction (confirm)
Notes
- Shippo supports both direct API operations and Platform API (merchant) operations for multi-tenant scenarios.
- Batch operations require a valid carrier account ID. Batches must be in VALID status before purchasing.
- UPS carrier account creation requires agreeing to UPS terms and conditions.
- Customs declarations and items are required for international shipments.
- The
create_live_rate tool provides real-time pricing from multiple carriers in a single call.
Error Handling
| Status / Error | Meaning |
|---|
| 401 Unauthorized | OAuth token expired; reconnect Shippo from the dashboard |
| 403 Forbidden | Access denied; check account permissions |
| 404 Not Found | Invalid address, shipment, rate, or transaction ID |
| 429 Too Many Requests | Rate limit exceeded; retry after a short delay |
| 400 Bad Request | Invalid parameters (e.g., missing required fields) |
Troubleshooting
Tools Not Visible
Run clawlink_list_tools --integration shippo to verify the integration is active. If empty, reconnect at https://claw-link.dev/dashboard?add=shippo.
Rate Not Found
Ensure you have created a shipment first and have the shipment ID. Rates are generated per shipment.
Label Purchase Fails
Verify the rate ID is valid and has not expired. Rates are typically valid for a limited time after generation.
Address Validation Fails
Check that all required fields (street, city, state, zip, country) are provided and correctly formatted.
Resources
Powered by ClawLink -- an integration hub for OpenClaw
