# Shippo external API. API

> Shippo external API. API on Apizie: 64 endpoints (List all addresses, Create a new address, Retrieve an address, Validate an address, …) returned as clean JSON through one API key. Send your own provider key in the x-upstream-key header. Call it over REST at https://zieapi.vercel.app/v1/open-data:shippo/{endpoint} or from Claude, ChatGPT and Cursor through the Apizie MCP server. Free plan: 1,000 requests a month.

- Project key: `open-data:shippo`
- Category: Open Data
- Status: byok
- Source: https://goshippo.com
- Page: https://zieapi.vercel.app/api/open-data/shippo
- OpenAPI: https://zieapi.vercel.app/api/open-data/shippo/openapi.json

Use this API to integrate with the Shippo service

## Endpoints

### List all addresses
`GET https://zieapi.vercel.app/v1/open-data:shippo/addresses-list-all` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| page | integer | no | The page number you want to select |
| results | integer | no | The number of results to return per page (max 100, default 5) |
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |

### Create a new address
`POST https://zieapi.vercel.app/v1/open-data:shippo/addresses-create-new-address` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |
| body | object | no | JSON request body |

### Retrieve an address
`GET https://zieapi.vercel.app/v1/open-data:shippo/addresses-get-address-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| AddressId | string | yes | Object ID of the address |
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |

### Validate an address
`GET https://zieapi.vercel.app/v1/open-data:shippo/addresses-validate-address` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| AddressId | string | yes | Object ID of the address |
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |

### Create a batch
`POST https://zieapi.vercel.app/v1/open-data:shippo/batches-create-batch-shipments` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |
| body | object | no | JSON request body |

### Retrieve a batch
`GET https://zieapi.vercel.app/v1/open-data:shippo/batches-get-batch-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| BatchId | string | yes | Object ID of the batch |
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |

### Add shipments to a batch
`POST https://zieapi.vercel.app/v1/open-data:shippo/batches-add-shipments-to-batch` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| BatchId | string | yes | Object ID of the batch |
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |
| body | object | no | JSON request body |

### Purchase a batch
`POST https://zieapi.vercel.app/v1/open-data:shippo/batches-purchase-batch` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| BatchId | string | yes | Object ID of the batch |
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |

### Remove shipments from a batch
`POST https://zieapi.vercel.app/v1/open-data:shippo/batches-remove-shipments` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| BatchId | string | yes | Object ID of the batch |
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |
| body | object | no | JSON request body |

### List all carrier accounts
`GET https://zieapi.vercel.app/v1/open-data:shippo/carrier-accounts-list-all-accounts` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| service_levels | boolean | no | Appends the property `service_levels` to each returned carrier account |
| carrier | string | no | Filter the response by the specified carrier |
| account_id | string | no | Filter the response by the specified carrier account Id |
| page | integer | no | The page number you want to select |
| results | integer | no | The number of results to return per page (max 100, default 5) |
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |

### Create a new carrier account
`POST https://zieapi.vercel.app/v1/open-data:shippo/carrier-accounts-create-new-account` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |
| body | object | no | JSON request body |

### Retrieve a carrier account
`GET https://zieapi.vercel.app/v1/open-data:shippo/carrier-accounts-get-account-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| CarrierAccountId | string | yes | Object ID of the carrier account |
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |

### Update a carrier account
`POST https://zieapi.vercel.app/v1/open-data:shippo/carrier-accounts-update-account` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| CarrierAccountId | string | yes | Object ID of the carrier account |
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |
| body | object | no | JSON request body |

### Connect an existing carrier account using OAuth 2.0
`GET https://zieapi.vercel.app/v1/open-data:shippo/carrier-accounts-initiate-sign-in` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| CarrierAccountObjectId | string | yes | The carrier account ID to start a signin process |
| redirect_uri | string | yes | Callback URL. The URL that tells the authorization server where to send the user back to after they approve the request. |
| state | string | no | A random string generated by the consuming application and included in the request to prevent CSRF attacks. The consuming application… |
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |

### Add a Shippo carrier account
`POST https://zieapi.vercel.app/v1/open-data:shippo/carrier-accounts-add-shippo-account` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |
| body | object | no | JSON request body |

### Get Carrier Registration status
`GET https://zieapi.vercel.app/v1/open-data:shippo/carrier-accounts-get-reg-status` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| carrier | string | yes | filter by specific carrier |
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |

### List all customs declarations
`GET https://zieapi.vercel.app/v1/open-data:shippo/customs-declarations-list-all-declarations` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| page | integer | no | The page number you want to select |
| results | integer | no | The number of results to return per page (max 100, default 5) |
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |

### Create a new customs declaration
`POST https://zieapi.vercel.app/v1/open-data:shippo/customs-declarations-create-new-declaration` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |
| body | object | no | JSON request body |

### Retrieve a customs declaration
`GET https://zieapi.vercel.app/v1/open-data:shippo/customs-declarations-get-declaration-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| CustomsDeclarationId | string | yes | Object ID of the customs declaration |
| page | integer | no | The page number you want to select |
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |

### List all customs items
`GET https://zieapi.vercel.app/v1/open-data:shippo/customs-items-list-all-items` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| page | integer | no | The page number you want to select |
| results | integer | no | The number of results to return per page (max 100) |
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |

### Create a new customs item
`POST https://zieapi.vercel.app/v1/open-data:shippo/customs-items-create-new-customs-item` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |
| body | object | no | JSON request body |

### Retrieve a customs item
`GET https://zieapi.vercel.app/v1/open-data:shippo/customs-items-get-existing-item` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| CustomsItemId | string | yes | Object ID of the customs item |
| page | integer | no | The page number you want to select |
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |

### Generate a live rates request
`POST https://zieapi.vercel.app/v1/open-data:shippo/rates-at-checkout-initiate-live-rates-request` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |
| body | object | no | JSON request body |

### Show current default parcel template
`GET https://zieapi.vercel.app/v1/open-data:shippo/rates-at-checkout-show-default-parcel-template` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |

### Update default parcel template
`POST https://zieapi.vercel.app/v1/open-data:shippo/rates-at-checkout-update-default-parcel-template` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |
| body | object | no | JSON request body |

### Clear current default parcel template
`POST https://zieapi.vercel.app/v1/open-data:shippo/rates-at-checkout-clear-default-parcel-template` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |

### List all manifests
`GET https://zieapi.vercel.app/v1/open-data:shippo/manifests-list-all-manifests` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| page | integer | no | The page number you want to select |
| results | integer | no | The number of results to return per page (max 100, default 5) |
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |

### Create a new manifest
`POST https://zieapi.vercel.app/v1/open-data:shippo/manifests-create-new-manifest` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |
| body | object | no | JSON request body |

### Retrieve a manifest
`GET https://zieapi.vercel.app/v1/open-data:shippo/manifests-get-manifest-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| ManifestId | string | yes | Object ID of the manifest to update |
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |

### List all orders
`GET https://zieapi.vercel.app/v1/open-data:shippo/orders-list-all-orders` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| page | integer | no | The page number you want to select |
| results | integer | no | The number of results to return per page (max 100) |
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |

### Create a new order
`POST https://zieapi.vercel.app/v1/open-data:shippo/orders-create-new-order` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |
| body | object | no | JSON request body |

### Retrieve an order
`GET https://zieapi.vercel.app/v1/open-data:shippo/orders-get-order-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| OrderId | string | yes | Object ID of the order |
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |

### List all carrier parcel templates
`GET https://zieapi.vercel.app/v1/open-data:shippo/carrier-parcel-templates-list-all-carrier-parcel-templates` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| include | string | no | filter by user or enabled |
| carrier | string | no | filter by specific carrier |
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |

### Retrieve a carrier parcel templates
`GET https://zieapi.vercel.app/v1/open-data:shippo/carrier-parcel-templates-get-template-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| CarrierParcelTemplateToken | string | yes | The unique string representation of the carrier parcel template |
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |

### List all parcels
`GET https://zieapi.vercel.app/v1/open-data:shippo/parcels-list-all` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| page | integer | no | The page number you want to select |
| results | integer | no | The number of results to return per page (max 100) |
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |

### Create a new parcel
`POST https://zieapi.vercel.app/v1/open-data:shippo/parcels-create-new-parcel` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |
| body | object | no | JSON request body |

### Retrieve an existing parcel
`GET https://zieapi.vercel.app/v1/open-data:shippo/parcels-get-parcel-details` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| ParcelId | string | yes | Object ID of the parcel |
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |

### Create a pickup
`POST https://zieapi.vercel.app/v1/open-data:shippo/pickups-create-object` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |
| body | object | no | JSON request body |

### Retrieve a rate
`GET https://zieapi.vercel.app/v1/open-data:shippo/rates-get-rate-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| RateId | string | yes | Object ID of the rate |
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |

### List all refunds
`GET https://zieapi.vercel.app/v1/open-data:shippo/refunds-list-all` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |

### Retrieve a refund
`GET https://zieapi.vercel.app/v1/open-data:shippo/refunds-get-refund-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| RefundId | string | yes | Object ID of the refund to update |
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |

### List all service groups
`GET https://zieapi.vercel.app/v1/open-data:shippo/service-groups-list-all-service-groups` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |

### Create a new service group
`POST https://zieapi.vercel.app/v1/open-data:shippo/service-groups-create-new-group` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |
| body | object | no | JSON request body |

### Update an existing service group
`POST https://zieapi.vercel.app/v1/open-data:shippo/service-groups-update-existing-group` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |
| body | object | no | JSON request body |

### Delete a service group
`POST https://zieapi.vercel.app/v1/open-data:shippo/service-groups-delete-service-group` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| ServiceGroupId | string | yes | Object ID of the service group |
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |

### List all shipments
`GET https://zieapi.vercel.app/v1/open-data:shippo/shipments-list-all-shipments` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| page | integer | no | The page number you want to select |
| results | integer | no | The number of results to return per page (max 100) |
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |

### Create a new shipment
`POST https://zieapi.vercel.app/v1/open-data:shippo/shipments-create-new-shipment` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |
| body | object | no | JSON request body |

### Retrieve a shipment
`GET https://zieapi.vercel.app/v1/open-data:shippo/shipments-get-shipment-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| ShipmentId | string | yes | Object ID of the shipment to update |
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |

### Retrieve shipment rates
`GET https://zieapi.vercel.app/v1/open-data:shippo/rates-get-shipment-rates` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| ShipmentId | string | yes | Object ID of the shipment to update |
| page | integer | no | The page number you want to select |
| results | integer | no | The number of results to return per page (max 100) |
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |

### Retrieve shipment rates in currency
`GET https://zieapi.vercel.app/v1/open-data:shippo/rates-get-shipment-rates-in-currency` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| ShipmentId | string | yes | Object ID of the shipment to update |
| CurrencyCode | string | yes | ISO currency code for the rates |
| page | integer | no | The page number you want to select |
| results | integer | no | The number of results to return per page (max 100) |
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |

### Register a tracking webhook
`POST https://zieapi.vercel.app/v1/open-data:shippo/tracking-status-register-webhook` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |
| body | object | no | JSON request body |

### Get a tracking status
`GET https://zieapi.vercel.app/v1/open-data:shippo/tracking-status-get-status` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| TrackingNumber | string | yes | Tracking number |
| Carrier | string | yes | Name of the carrier |
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |

### List all shipping labels
`GET https://zieapi.vercel.app/v1/open-data:shippo/transactions-list-all-shipping-labels` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| rate | string | no | Filter by rate ID |
| object_status | string | no | Filter by object status |
| tracking_status | string | no | Filter by tracking status |
| page | integer | no | The page number you want to select |
| results | integer | no | The number of results to return per page (max 100) |
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |

### Create a shipping label
`POST https://zieapi.vercel.app/v1/open-data:shippo/transactions-create-shipping-label` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |
| body | object | no | JSON request body |

### Retrieve a shipping label
`GET https://zieapi.vercel.app/v1/open-data:shippo/transactions-get-shipping-label` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| TransactionId | string | yes | Object ID of the transaction to update |
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |

### List all user parcel templates
`GET https://zieapi.vercel.app/v1/open-data:shippo/user-parcel-templates-list-all` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |

### Create a new user parcel template
`POST https://zieapi.vercel.app/v1/open-data:shippo/user-parcel-templates-create-new-template` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |
| body | object | no | JSON request body |

### Retrieves a user parcel template
`GET https://zieapi.vercel.app/v1/open-data:shippo/user-parcel-templates-get-template-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| UserParcelTemplateObjectId | string | yes | Object ID of the user parcel template |
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |

### Update an existing user parcel template
`POST https://zieapi.vercel.app/v1/open-data:shippo/user-parcel-templates-update-template` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| UserParcelTemplateObjectId | string | yes | Object ID of the user parcel template |
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |
| body | object | no | JSON request body |

### Delete a user parcel template
`POST https://zieapi.vercel.app/v1/open-data:shippo/user-parcel-templates-delete-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| UserParcelTemplateObjectId | string | yes | Object ID of the user parcel template |
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |

### List all Shippo Accounts
`GET https://zieapi.vercel.app/v1/open-data:shippo/shippo-accounts-list-all` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| page | integer | no | The page number you want to select |
| results | integer | no | The number of results to return per page (max 100) |
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |

### Create a Shippo Account
`POST https://zieapi.vercel.app/v1/open-data:shippo/shippo-accounts-create-new-account` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |
| body | object | no | JSON request body |

### Retrieve a Shippo Account
`GET https://zieapi.vercel.app/v1/open-data:shippo/shippo-accounts-get-account-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| ShippoAccountId | string | yes | Object ID of the ShippoAccount |
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |

### Update a Shippo Account
`POST https://zieapi.vercel.app/v1/open-data:shippo/shippo-accounts-update-account-object` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| ShippoAccountId | string | yes | Object ID of the ShippoAccount |
| SHIPPO-API-VERSION | string | no | String used to pick a non-default API version to use |
| body | object | no | JSON request body |

## Example
```
curl "https://zieapi.vercel.app/v1/open-data:shippo/addresses-list-all" \
  -H "x-api-key: $APIZIE_KEY" \
  -H "x-upstream-key: $PROVIDER_KEY"
```

## FAQ

### How do I call the Shippo external API. API?
Create a free Apizie key, then send GET https://zieapi.vercel.app/v1/open-data:shippo/addresses-list-all with the header x-api-key. Every endpoint returns { project, data, timestamp }.

### Is the Shippo external API. API free on Apizie?
Yes. The Free plan includes 1,000 requests a month at 100 requests a minute, no credit card. Shippo external API. itself also needs your own key from api.goshippo.com.

### Can AI agents use the Shippo external API. API?
Yes. Add the Apizie MCP server (https://zieapi.vercel.app/mcp) to Claude, ChatGPT, Cursor or VS Code, then ask in plain language. The agent calls run_scraper with project key open-data:shippo.

### What is the status of the Shippo external API. API?
Needs your own provider key (bring your own key)
