Query structured spec data via REST or MCP. Get exactly what your agent needs.
https://api.goshippo.com
/carrier_accounts/{CarrierAccountId}
Updates an existing carrier account object. The account_id and carrier can’t be updated. This is because they form the unique identifier together.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| CarrierAccountId | path | required | string | Object ID of the carrier account |
| SHIPPO-API-VERSION | header | optional | string | String used to pick a non-default API version to use |
Examples.
application/json
CarrierAccountBase
| Property | Type | Required |
|---|---|---|
| active | boolean | optional |
| carrier | string | required |
| account_id | string | required |
| parameters | object | optional |
PUT /carrier_accounts/{CarrierAccountId}
/live-rates/settings/parcel-template
Update the currently configured default parcel template for live rates. The object_id in the request payload should identify the user parcel template to be the new default.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| SHIPPO-API-VERSION | header | optional | string | String used to pick a non-default API version to use |
application/json
DefaultParcelTemplateUpdateRequest
| Property | Type | Required |
|---|---|---|
| object_id | string | optional |
PUT /live-rates/settings/parcel-template
/service-groups
Updates an existing service group object.
The object_id cannot be updated as it is the unique identifier for the object.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| SHIPPO-API-VERSION | header | optional | string | String used to pick a non-default API version to use |
application/json
ServiceGroupUpdateRequest
| Property | Type | Required |
|---|---|---|
| name | string | required |
| type | string | required |
| flat_rate | string | optional |
| description | string | required |
| rate_adjustment | integer | optional |
| flat_rate_currency | string | optional |
| free_shipping_threshold_min | string | optional |
| free_shipping_threshold_currency | string | optional |
| is_active | boolean | required |
| object_id | string | required |
| service_levels | array | required |
| └ account_object_id | string | optional |
| └ service_level_token | string | optional |
PUT /service-groups
/shippo-accounts/{ShippoAccountId}
Updates a Shippo Account object
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| ShippoAccountId | path | optional | string | Object ID of the ShippoAccount |
| SHIPPO-API-VERSION | header | optional | string | String used to pick a non-default API version to use |
application/json
ShippoAccountUpdateRequest
| Property | Type | Required |
|---|---|---|
| string | required | |
| last_name | string | required |
| first_name | string | required |
| company_name | string | required |
PUT /shippo-accounts/{ShippoAccountId}
/user-parcel-templates/{UserParcelTemplateObjectId}
Updates an existing user parcel template.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| UserParcelTemplateObjectId | path | required | string | Object ID of the user parcel template |
| SHIPPO-API-VERSION | header | optional | string | String used to pick a non-default API version to use |
application/json
UserParcelTemplateUpdateRequest
| Property | Type | Required |
|---|---|---|
| name | string | required |
| width | string | required |
| height | string | required |
| length | string | required |
| weight | string | optional |
| weight_unit | string | optional |
| distance_unit | string | required |
PUT /user-parcel-templates/{UserParcelTemplateObjectId}
Address
{
"allOf": [
{
"$ref": "#/components/schemas/AddressBase"
},
{
"required": [
"country"
],
"properties": {
"test": {
"type": "boolean",
"example": false,
"description": "Indicates whether the object has been created in test mode."
},
"object_id": {
"type": "string",
"example": "d799c2679e644279b59fe661ac8fa488",
"description": "Unique identifier of the given Address object. \nThis ID is required to create a Shipment object."
},
"is_complete": {
"type": "boolean",
"example": true,
"description": "Complete addresses contain all required values.<br><br>Incomplete addresses have failed one or multiple \nvalidations.<br>Incomplete Addresses are eligible for requesting rates but lack at least one required \nvalue for purchasing labels."
},
"object_owner": {
"type": "string",
"example": "shippotle@shippo.com",
"description": "Username of the user who created the Address object."
},
"object_created": {
"type": "string",
"format": "date-time",
"example": "2014-07-09T02:19:13.174Z",
"description": "Date and time of Address creation."
},
"object_updated": {
"type": "string",
"format": "date-time",
"example": "2014-07-09T02:19:13.174Z",
"description": "Date and time of last Address update. Since you cannot update Addresses after they were created, this time \nstamp reflects the time when the Address was changed by Shippo's systems for the last time, e.g., during the \napproximation of one or more values."
},
"validation_results": {
"$ref": "#/components/schemas/AddressValidationResults"
}
}
}
]
}
AddressBase
{
"type": "object",
"properties": {
"zip": {
"type": "string",
"example": "94117",
"description": "**required for purchase**<br>\nPostal code of an Address. When creating a Quote Addresses, sending a ZIP is optional but will yield more \naccurate Rates."
},
"city": {
"type": "string",
"example": "San Francisco",
"description": "**required for purchase**<br>\nName of a city. When creating a Quote Address, sending a city is optional but will yield more accurate Rates. \nPlease bear in mind that city names may be ambiguous (there are 34 Springfields in the US). Pass in a state \nor a ZIP code (see below), if known, it will yield more accurate results."
},
"name": {
"type": "string",
"example": "Shwan Ippotle",
"description": "**required for purchase**<br>\nFirst and Last Name of the addressee"
},
"email": {
"type": "string",
"example": "shippotle@shippo.com",
"description": "E-mail address of the contact person, RFC3696/5321-compliant."
},
"phone": {
"type": "string",
"example": "+1 555 341 9393",
"description": "Addresses containing a phone number allow carriers to call the recipient when delivering the Parcel. This \nincreases the probability of delivery and helps to avoid accessorial charges after a Parcel has been shipped. "
},
"state": {
"type": "string",
"example": "CA",
"description": "**required for purchase for some countries**<br>\nState/Province values are required for shipments from/to the US, AU, and CA. UPS requires province for some \ncountries (i.e Ireland). To receive more accurate quotes, passing this field is recommended. Most carriers \nonly accept two or three character state abbreviations."
},
"company": {
"type": "string",
"example": "Shippo",
"description": "Company Name"
},
"country": {
"type": "string",
"example": "US",
"description": "Example: `US` or `DE`. All accepted values can be found on the \n<a href=\"http://www.iso.org/\" target=\"blank\">Official ISO Website</a>.\nSending a country is always required."
},
"street1": {
"type": "string",
"example": "215 Clayton St.",
"description": "**required for purchase**<br>\nFirst street line, 35 character limit. Usually street number and street name (except for DHL Germany, see street_no)."
},
"street2": {
"type": "string",
"description": "Second street line, 35 character limit."
},
"street3": {
"type": "string",
"example": "",
"description": "Third street line, 35 character limit. \nOnly accepted for USPS international shipments, UPS domestic and UPS international shipments."
},
"latitude": {
"type": "number",
"description": "Latitude of address"
},
"metadata": {
"type": "string",
"example": "Customer ID 123456",
"description": "A string of up to 100 characters that can be filled with any additional information you want \nto attach to the object."
},
"longitude": {
"type": "number",
"description": "Longitude of address"
},
"street_no": {
"type": "string",
"example": "",
"description": "Street number of the addressed building. \nThis field can be included in street1 for all carriers except for DHL Germany."
},
"is_residential": {
"type": "boolean",
"example": true
}
},
"description": "Address represents the address as retrieved from the database"
}
AddressCompleteCreateRequest
{
"allOf": [
{
"$ref": "#/components/schemas/AddressBase"
},
{
"required": [
"name",
"street1",
"city",
"state",
"zip",
"country"
],
"properties": {
"validate": {
"type": "boolean",
"example": true
}
}
}
]
}
AddressCreateRequest
{
"allOf": [
{
"$ref": "#/components/schemas/AddressBase"
},
{
"required": [
"country"
],
"properties": {
"validate": {
"type": "boolean",
"example": true,
"description": "Set to true to validate Address object."
}
}
}
]
}
AddressImporter
{
"type": "object",
"properties": {
"zip": {
"type": "string",
"example": "80331",
"description": "Postal code of an Address."
},
"city": {
"type": "string",
"example": "München",
"description": "Name of a city"
},
"name": {
"type": "string",
"example": "Shwan Ippotle",
"description": "First and Last Name of the addressee"
},
"email": {
"type": "string",
"example": "shippotle@shippo.com",
"description": "E-mail address of the contact person, RFC3696/5321-compliant."
},
"phone": {
"type": "string",
"example": "80331",
"description": "Addresses containing a phone number allow carriers to call the recipient when delivering the Parcel. This \nincreases the probability of delivery and helps to avoid accessorial charges after a Parcel has been shipped. "
},
"state": {
"type": "string",
"example": "CA",
"description": "**required for purchase for some countries**<br>\nState/Province values are required for shipments from/to the US, AU, and CA. UPS requires province for some \ncountries (i.e Ireland). To receive more accurate quotes, passing this field is recommended. Most carriers \nonly accept two or three character state abbreviations."
},
"company": {
"type": "string",
"example": "Shippo",
"description": "Company Name"
},
"country": {
"type": "string",
"example": "DE",
"description": "Example: `US` or `DE`. All accepted values can be found on the \n<a href=\"http://www.iso.org/\" target=\"blank\">Official ISO Website</a>.\nSending a country is always required."
},
"street1": {
"type": "string",
"example": "Blumenstraße",
"description": "First street line, 35 character limit. Usually street number and street name (except for DHL Germany, see street_no)."
},
"street2": {
"type": "string",
"description": "Second street line, 35 character limit."
},
"street3": {
"type": "string",
"example": "",
"description": "Third street line, 35 character limit. \nOnly accepted for USPS international shipments, UPS domestic and UPS international shipments."
},
"street_no": {
"type": "string",
"example": "22",
"description": "Street number of the addressed building. \nThis field can be included in street1 for all carriers except for DHL Germany."
},
"is_residential": {
"type": "boolean",
"example": true,
"description": "Indicates whether the address provided is a residential address or not."
}
},
"description": "Object that represents the address of the importer"
}
AddressImporterResponse
{
"properties": {
"object_id": {
"type": "string",
"example": "7506ccbb65a34a8a9ac2cc4a89e820d2",
"description": "ID of importer address object"
}
}
}
AddressPaginatedList
{
"allOf": [
{
"$ref": "#/components/schemas/PaginatedList"
},
{
"properties": {
"results": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Address"
}
}
}
}
]
}
AddressValidationResults
{
"type": "object",
"properties": {
"is_valid": {
"type": "boolean",
"example": false
},
"messages": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AddressValidationResultsMessage"
}
}
},
"description": "Object that contains information regarding if an address had been validated or not. Also contains any messages \ngenerated during validation. Children keys are <code>is_valid</code>(boolean) and <code>messages</code>(array)."
}
AddressValidationResultsMessage
{
"type": "object",
"properties": {
"code": {
"enum": [
"verification_error",
"unknown_street",
"component_mismatch_error",
"multiple_match",
"sub_premise_number_invalid",
"sub_premise_number_missing",
"premise_number_invalid",
"premise_number_missing",
"box_number_invalid",
"box_number_missing",
"pmb_number_missing",
"postal_code_change",
"administrative_area_change",
"locality_change",
"dependent_locality_change",
"street_name_change",
"street_type_change",
"street_directional_change",
"sub_premise_type_change",
"sub_premise_number_change",
"double_dependent_locality_change",
"subadministrative_area_change",
"subnational_area_change",
"po_box_change",
"premise_type_change",
"house_number_change",
"organization_change",
"extraneous_information",
"usps_door_inaccessible",
"administrative_area_partial",
"city_partial",
"street_partial",
"building_partial",
"subpremise_partial",
"administrative_area_full",
"city_full",
"thoroughfare_full",
"premises_full",
"subpremise_full",
"geocoded_street",
"geocoded_neighborhood",
"geocoded_community",
"geocoded_state",
"geocoded_rooftop",
"geocoded_interpolated_rooftop",
"invalid_postal_code",
"postal_code_not_found",
"empty_request",
"service_error",
"street_detail_missing",
"Invalid City/State/Zip",
"Default Match",
"Unknown Street",
"Address Not Found",
"Non-Deliverable ZIP4",
"Multiple Responses",
"Invalid Dual Address",
"Invalid State",
"Invalid City",
"Ambiguous Address"
],
"type": "string",
"example": "Unknown Street"
},
"text": {
"type": "string",
"example": "City, State and ZIP Code are valid, but street address is not a match."
},
"type": {
"type": "string",
"example": "address_warning"
},
"source": {
"enum": [
"Shippo Address Validator",
"UPS"
],
"type": "string",
"example": "Shippo Address Validator"
}
}
}
Alcohol
{
"type": "object",
"properties": {
"recipient_type": {
"enum": [
"licensee",
"consumer"
],
"type": "string",
"description": "Mandatory for Fedex only. License type of the recipient of the Alcohol Package."
},
"contains_alcohol": {
"type": "boolean",
"description": "Mandatory for Fedex and UPS. Specifies that the package contains Alcohol."
}
},
"description": "Indicates that a shipment contains Alcohol (Fedex and UPS only)."
}
AmountAndCurrencyCharged
{
"type": "object",
"properties": {
"amount": {
"type": "string",
"example": "5.52",
"description": "The money amount"
},
"currency": {
"type": "string",
"example": "USD",
"description": "The currency that 'amount' is in. The official ISO 4217 currency codes are used, e.g. \"USD\" or \"EUR\".\n<a href=\"http://www.xe.com/iso4217.php\" target=\"blank\">ISO 4217 Standard</a>."
}
},
"description": "The amount and currency that was charged after possible currency conversion occurred."
}
AmountAndCurrencyInvoiced
{
"type": "object",
"properties": {
"amount": {
"type": "string",
"example": "5.52",
"description": "The money amount"
},
"currency": {
"type": "string",
"example": "USD",
"description": "The currency that 'amount' is in. The official ISO 4217 currency codes are used, e.g. \"USD\" or \"EUR\".\n<a href=\"http://www.xe.com/iso4217.php\" target=\"blank\">ISO 4217 Standard</a>."
}
},
"description": "The amount and currency."
}
BadRequestWithDetail
{
"type": "object",
"properties": {
"detail": {
"type": "string",
"example": "Your registration unfortunately failed due to the following UPS error: Missing or invalid ControlID."
}
}
}
BadRequestWithError
{
"type": "object",
"properties": {
"error": {
"type": "string",
"example": "Only US shippers can create a new USPS account"
}
}
}
Batch
{
"allOf": [
{
"$ref": "#/components/schemas/BatchBase"
},
{
"required": [
"object_id",
"object_owner",
"status",
"object_created",
"object_updated",
"batch_shipments",
"object_results",
"label_url"
],
"properties": {
"test": {
"type": "boolean",
"example": false
},
"status": {
"enum": [
"VALIDATING",
"VALID",
"INVALID",
"PURCHASING",
"PURCHASED"
],
"type": "string",
"example": "VALID",
"description": "Batches that are `VALIDATING` are being created and validated<br>\n`VALID` batches can be purchased<br>\n`INVALID` batches cannot be purchased, `INVALID` BatchShipments must be removed<br>\nBatches that are in the `PURCHASING` state are being purchased<br>\n`PURCHASED` batches are finished purchasing."
},
"label_url": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of URLs each pointing to a merged file of 100 labels each"
},
"object_id": {
"type": "string",
"example": "5ef63c54f5bf45d3b1f8fb37dcb1c5f4",
"description": "Unique identifier of the given Batch object"
},
"object_owner": {
"type": "string",
"example": "shippo@shippo.com",
"description": "Username of the user who created the Address object."
},
"object_created": {
"type": "string",
"example": "2016-01-04T00:15:44.394Z",
"description": "Date and time of Batch creation"
},
"object_results": {
"type": "object",
"required": [
"purchase_failed",
"purchase_succeeded",
"creation_failed",
"creation_succeeded"
],
"properties": {
"creation_failed": {
"type": "integer",
"format": "int64",
"example": 3
},
"purchase_failed": {
"type": "integer",
"format": "int64",
"example": 0
},
"creation_succeeded": {
"type": "integer",
"format": "int64",
"example": 5
},
"purchase_succeeded": {
"type": "integer",
"format": "int64",
"example": 0
}
},
"description": "An object containing the following counts:<br>`creation_succeeded`<br>`creation_failed`<br>`purchase_succeeded`<br>`purchase_failed`"
},
"object_updated": {
"type": "string",
"example": "2016-01-04T00:48:13.841Z",
"description": "Date and time of last update to the Batch"
},
"batch_shipments": {
"$ref": "#/components/schemas/BatchShipmentPaginatedList"
}
}
}
]
}
BatchBase
{
"type": "object",
"required": [
"default_carrier_account",
"default_servicelevel_token"
],
"properties": {
"metadata": {
"type": "string",
"example": "BATCH #1",
"maxLength": 100,
"description": "A string of up to 100 characters that can be filled with any additional information you want to attach to the object."
},
"label_filetype": {
"$ref": "#/components/schemas/LabelFileTypeEnum"
},
"default_carrier_account": {
"type": "string",
"example": "078870331023437cb917f5187429b093",
"description": "ID of the Carrier Account object to use as the default for all shipments in this Batch. \nThe carrier account can be changed on a per-shipment basis by changing the carrier_account in the \ncorresponding BatchShipment object."
},
"default_servicelevel_token": {
"type": "string",
"example": "usps_priority",
"description": "Token of the service level to use as the default for all shipments in this Batch. \nThe servicelevel can be changed on a per-shipment basis by changing the servicelevel_token in the \ncorresponding BatchShipment object. <a href=\"#tag/Service-Levels\">Servicelevel tokens can be found here.</a>"
}
}
}
BatchCreateRequest
{
"allOf": [
{
"$ref": "#/components/schemas/BatchBase"
},
{
"required": [
"batch_shipments"
],
"properties": {
"batch_shipments": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BatchShipmentBase"
},
"description": "Array of BatchShipment objects. The response keeps the same order as in the request array."
}
}
}
]
}
BatchShipment
{
"allOf": [
{
"$ref": "#/components/schemas/BatchShipmentBase"
},
{
"required": [
"shipment",
"object_id",
"status"
],
"properties": {
"status": {
"enum": [
"INVALID",
"VALID",
"INCOMPLETE",
"TRANSACTION_FAILED"
],
"type": "string",
"example": "INVALID",
"description": "`INVALID` batch shipments cannot be purchased and will have to be removed, fixed, and added to the batch again.<br>\n`VALID` batch shipments can be purchased. <br>\nBatch shipments with the status `TRANSACTION_FAILED` were not able to be purchased and the error will be displayed on the message field<br> \n`INCOMPLETE` batch shipments have an issue with the Address and will need to be removed, fixed, and added to the batch again."
},
"messages": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ErrorMessage"
},
"description": "List of Shipment and Transaction error messages."
},
"object_id": {
"type": "string",
"example": "e11c95a6788d4ddcaa22f03175838740",
"description": "Object ID of this batch shipment. Can be used in the remove_shipments endpoint."
},
"transaction": {
"type": "string",
"example": "4c33736a67e2450da88b38c42deef6b7",
"description": "Object ID of the transaction object created for this batch shipment."
}
}
}
]
}
BatchShipmentBase
{
"type": "object",
"required": [
"shipment"
],
"properties": {
"metadata": {
"type": "string",
"example": "SHIPMENT #1",
"maxLength": 100,
"description": "A string of up to 100 characters that can be filled with any additional information you want \nto attach to the object."
},
"shipment": {
"$ref": "#/components/schemas/ShipmentCreateRequest"
},
"carrier_account": {
"type": "string",
"example": "a4391cd4ab974f478f55dc08b5c8e3b3",
"description": "Object ID of the carrier account to be used for this shipment (will override batch default)"
},
"servicelevel_token": {
"type": "string",
"example": "fedex_ground",
"description": "A token that sets the shipping method for the batch, overriding the batch default. \nServicelevel tokens can be found <a href=\"#tag/Service-Levels\">in this list</a> \nor <a href=\"#operation/ListCarrierAccounts\">at this endpoint</a>."
}
}
}
BatchShipmentPaginatedList
{
"allOf": [
{
"$ref": "#/components/schemas/PaginatedList"
},
{
"properties": {
"results": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BatchShipment"
}
}
},
"description": "Array of <a href=\"#section/Batch-Shipment\">BatchShipment</a> objects. \nThe response keeps the same order as in the request array."
}
]
}
BatchesAddShipmentsToBatchRequest
{
"type": "array",
"items": {
"$ref": "#/components/schemas/BatchShipmentBase"
}
}
BatchesRemoveShipmentsRequest
{
"type": "array",
"items": {
"type": "string"
}
}
Billing
{
"type": "object",
"properties": {
"zip": {
"type": "string",
"description": "ZIP code of account number to be billed (required for UPS if there is a zip on the billing account)."
},
"type": {
"enum": [
"SENDER",
"RECIPIENT",
"THIRD_PARTY",
"THIRD_PARTY_CONSIGNEE",
"COLLECT"
],
"type": "string",
"description": "Party to be billed. (Leave blank for DHL Germany.)"
},
"account": {
"type": "string",
"description": "Account number to be billed. (For DHL Germany, leave this field blank.)"
},
"country": {
"type": "string",
"format": "iso-3166",
"description": "Country iso2 code of account number to be billed (required for UPS third party billing only)."
},
"participation_code": {
"type": "string",
"description": "2 digit code used to override your default participation code associated with your DHL Germany account."
}
},
"description": "Specify billing details (UPS, FedEx, and DHL Germany only)."
}
COD
{
"type": "object",
"title": "COD Specify collection on delivery details (UPS only).",
"properties": {
"amount": {
"type": "string",
"example": "5.5",
"description": "Amount to be collected."
},
"currency": {
"type": "string",
"example": "USD",
"description": "Currency for the amount to be collected. Currently only USD is supported for UPS."
},
"payment_method": {
"enum": [
"SECURED_FUNDS",
"CASH",
"ANY"
],
"type": "string",
"example": "CASH",
"description": "Secured funds include money orders, certified cheques and others (see \n<a href=\"https://www.ups.com/content/us/en/shipping/time/service/value_added/cod.html\">UPS</a> for details). \nIf no payment_method inputted the value defaults to \"ANY\".)"
}
},
"description": "Specify collection on delivery details (UPS only)."
}
CarrierAccount
{
"allOf": [
{
"$ref": "#/components/schemas/CarrierAccountBase"
},
{
"properties": {
"test": {
"type": "boolean",
"example": false,
"description": "Indicates whether the object has been created in test mode."
},
"metadata": {
"type": "string"
},
"object_id": {
"type": "string",
"example": "6aa34d5f6865448fbb1ee93636e98999",
"description": "Unique identifier of the carrier account object."
},
"carrier_name": {
"example": "USPS",
"description": "Carrier name, see <a href=\"#tag/Carriers\">Carriers</a><br>"
},
"object_owner": {
"type": "string",
"example": "bob+22@gmail.com",
"description": "Username of the user who created the carrier account object."
},
"service_levels": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CarrierAccountServiceLevel"
}
},
"is_shippo_account": {
"type": "boolean",
"example": false
}
}
}
]
}
CarrierAccountBase
{
"type": "object",
"required": [
"carrier",
"account_id"
],
"properties": {
"active": {
"type": "boolean",
"description": "Determines whether the account is active. When creating a shipment, if no `carrier_accounts` are explicitly \npassed Shippo will query all carrier accounts that have this field set. By default, this is set to True."
},
"carrier": {
"type": "string",
"example": "usps",
"description": "Carrier token, see <a href=\"#tag/Carriers\">Carriers</a><br>\nPlease check the <a href=\"https://docs.goshippo.com/docs/carriers/carrieraccounts/\">carrier accounts tutorial</a> page for all supported carriers."
},
"account_id": {
"type": "string",
"example": "****",
"description": "Unique identifier of the account. Please check the <a href=\"https://docs.goshippo.com/docs/carriers/carrieraccounts/\">carrier accounts tutorial</a> \npage for the `account_id` per carrier.<br> \nTo protect account information, this field will be masked in any API response."
},
"parameters": {
"oneOf": [
{
"$ref": "#/components/schemas/ConnectExistingOwnAccountParameters"
},
{
"$ref": "#/components/schemas/UPSConnectExistingOwnAccountParameters"
}
]
}
}
}
CarrierAccountCanadaPostCreateParameters
{
"type": "object",
"required": [
"company",
"phone",
"full_name",
"email",
"canada_post_terms"
],
"properties": {
"email": {
"type": "string",
"example": "hippo@shippo.com"
},
"phone": {
"type": "string",
"example": "1112223333",
"description": "Needs to be a valid phone number and cannot be null"
},
"company": {
"type": "string",
"example": "Shippo"
},
"full_name": {
"type": "string",
"example": "Shippo Meister"
},
"canada_post_terms": {
"type": "boolean",
"description": "Whether or not the user agrees to Canada Post's terms. If passed in as false, request will fail with error 400"
}
}
}
CarrierAccountCanadaPostCreateRequest
{
"type": "object",
"title": "Shippo Canada Post account",
"required": [
"carrier",
"parameters"
],
"properties": {
"carrier": {
"type": "string",
"example": "canada_post"
},
"parameters": {
"$ref": "#/components/schemas/CarrierAccountCanadaPostCreateParameters"
}
}
}
CarrierAccountChronopostCreateRequest
{
"type": "object",
"title": "Shippo Chronopost account",
"required": [
"carrier",
"parameters"
],
"properties": {
"carrier": {
"type": "string",
"example": "chronopost"
},
"parameters": {
"type": "object"
}
}
}
CarrierAccountColissimoCreateRequest
{
"type": "object",
"title": "Shippo Colissimo account",
"required": [
"carrier",
"parameters"
],
"properties": {
"carrier": {
"type": "string",
"example": "colissimo"
},
"parameters": {
"type": "object"
}
}
}
CarrierAccountCorreosCreateRequest
{
"type": "object",
"title": "Shippo Correos account",
"required": [
"carrier",
"parameters"
],
"properties": {
"carrier": {
"type": "string",
"example": "correos"
},
"parameters": {
"type": "object"
}
}
}
CarrierAccountDHLExpressCreateRequest
{
"type": "object",
"title": "Shippo DHL Express account",
"required": [
"carrier",
"parameters"
],
"properties": {
"carrier": {
"type": "string",
"example": "dhl_express"
},
"parameters": {
"$ref": "#/components/schemas/CarrierAccountDHLExpressCreateRequestParameters"
}
}
}
CarrierAccountDHLExpressCreateRequestParameters
{
"type": "object",
"required": [
"user_accepted_terms_and_conditions"
],
"properties": {
"user_accepted_terms_and_conditions": {
"type": "boolean",
"description": "Whether or not the user agrees to the DHL Express Terms and Conditions. If passed in as false, request will fail with error 400"
}
}
}
CarrierAccountDPDUKCreateRequest
{
"type": "object",
"title": "Shippo DPD UK account",
"required": [
"carrier",
"parameters"
],
"properties": {
"carrier": {
"type": "string",
"example": "dpd_uk"
},
"parameters": {
"type": "object"
}
}
}
CarrierAccountDeutschePostCreateRequest
{
"type": "object",
"title": "Shippo Deutsche Post account",
"required": [
"carrier",
"parameters"
],
"properties": {
"carrier": {
"type": "string",
"example": "deustche_post"
},
"parameters": {
"type": "object"
}
}
}
CarrierAccountDpdDeCreateRequest
{
"type": "object",
"title": "Shippo DPD DE account",
"required": [
"carrier",
"parameters"
],
"properties": {
"carrier": {
"type": "string",
"example": "dpd_de"
},
"parameters": {
"type": "object"
}
}
}
CarrierAccountFedExCreateRequest
{
"type": "object",
"title": "Shippo FedEx account",
"required": [
"carrier",
"parameters"
],
"properties": {
"carrier": {
"type": "string",
"example": "fedex"
},
"parameters": {
"type": "object"
}
}
}
CarrierAccountHermesUKCreateRequest
{
"type": "object",
"title": "Shippo Evri UK account",
"required": [
"carrier",
"parameters"
],
"properties": {
"carrier": {
"type": "string",
"example": "hermes_uk"
},
"parameters": {
"type": "object"
}
}
}
CarrierAccountMondialRelayCreateRequest
{
"type": "object",
"title": "Shippo Mondial Relay account",
"required": [
"carrier",
"parameters"
],
"properties": {
"carrier": {
"type": "string",
"example": "mondialrelay"
},
"parameters": {
"type": "object"
}
}
}
CarrierAccountPaginatedList
{
"allOf": [
{
"$ref": "#/components/schemas/PaginatedList"
},
{
"properties": {
"results": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CarrierAccountWithExtraInfo"
}
}
}
}
]
}
CarrierAccountPosteItalianeCreateRequest
{
"type": "object",
"title": "Shippo Poste Italiane account",
"required": [
"carrier",
"parameters"
],
"properties": {
"carrier": {
"type": "string",
"example": "poste_italiane"
},
"parameters": {
"type": "object"
}
}
}
CarrierAccountRegistrationStatus
{
"type": "object",
"properties": {
"status": {
"type": "string",
"example": "PENDING_TERMS"
},
"object_owner": {
"type": "string",
"example": "tom@gmail.com"
},
"object_created": {
"type": "string",
"format": "date-time"
},
"object_updated": {
"type": "string",
"format": "date-time"
},
"carrier_account": {
"type": "string",
"example": "99dc410d295b4a168993cc38809cb123"
}
}
}
CarrierAccountServiceLevel
{
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "Priority Mail Express",
"description": "Service level name, e.g. `Priority Mail` or `FedEx Ground®`. \nA service level commonly defines the transit time of a Shipment (e.g., Express vs. Standard), along with other properties. \nThese names vary depending on the provider.<br>\nSee <a href=\"#tag/Service-Levels\">Service Levels</a>."
},
"token": {
"type": "string",
"example": "usps_priority_express",
"description": "Service level token, e.g. `usps_priority` or `fedex_ground`.<br>\nSee <a href=\"#tag/Service-Levels\">Service Levels</a>."
},
"supports_return_labels": {
"type": "boolean",
"example": true,
"description": "Whether or not the service level supports return labels."
}
},
"description": "Contains details regarding the service level for the carrier account."
}
CarrierAccountUPSCreateRequest
{
"type": "object",
"title": "Shippo UPS account",
"required": [
"carrier"
],
"properties": {
"carrier": {
"type": "string",
"example": "ups"
},
"parameters": {
"$ref": "#/components/schemas/CarrierAccountUPSCreateRequestParameters"
}
}
}
CarrierAccountUPSCreateRequestParameters
{
"type": "object",
"required": [
"ups_agreements",
"billing_address_street1",
"billing_address_city",
"billing_address_zip",
"billing_address_state",
"billing_address_country_iso2",
"pickup_address_street1",
"pickup_address_city",
"pickup_address_zip",
"pickup_address_state",
"pickup_address_country_iso2"
],
"properties": {
"email": {
"type": "string",
"example": "hippo@shippo.com"
},
"phone": {
"type": "string",
"example": "1112223333",
"description": "Needs to be a valid phone number and cannot be null"
},
"company": {
"type": "string",
"example": "Shippo",
"description": "Company name. Full name is acceptable in this field if the user has no company name"
},
"full_name": {
"type": "string",
"example": "Shippo Meister"
},
"ups_agreements": {
"type": "boolean",
"description": "Whether the user agrees to the UPS terms and conditions or not. Error 400 will be returned if passed in as false"
},
"pickup_address_zip": {
"type": "string",
"example": "94103",
"maxLength": 5,
"minLength": 5,
"description": "User's pickup address zip code."
},
"billing_address_zip": {
"type": "string",
"example": "94103",
"maxLength": 5,
"minLength": 5
},
"pickup_address_city": {
"type": "string",
"example": "San Francisco",
"description": "User's pickup address city."
},
"billing_address_city": {
"type": "string",
"example": "San Francisco"
},
"pickup_address_state": {
"type": "string",
"example": "CA",
"maxLength": 2,
"minLength": 2,
"description": "User's pickup address state."
},
"billing_address_state": {
"type": "string",
"example": "CA",
"maxLength": 2,
"minLength": 2
},
"pickup_address_street1": {
"type": "string",
"example": "731 Market St",
"description": "User's pickup address street 1."
},
"pickup_address_street2": {
"type": "string",
"example": "STE 200",
"description": "User's pickup street 2."
},
"billing_address_street1": {
"type": "string",
"example": "731 Market St"
},
"billing_address_street2": {
"type": "string",
"example": "STE 200",
"description": "Empty string acceptable for billing_address_street2"
},
"pickup_address_country_iso2": {
"type": "string",
"example": "US",
"maxLength": 2,
"minLength": 2,
"description": "User's pickup street 1."
},
"billing_address_country_iso2": {
"type": "string",
"example": "US",
"maxLength": 2,
"minLength": 2
},
"pickup_address_same_as_billing_address": {
"type": "boolean",
"example": false
}
}
}
CarrierAccountUSPSCreateRequest
{
"type": "object",
"title": "Shippo USPS account",
"required": [
"carrier",
"parameters"
],
"properties": {
"carrier": {
"type": "string",
"example": "usps"
},
"parameters": {
"type": "object"
}
}
}
CarrierAccountWithExtraInfo
{
"allOf": [
{
"$ref": "#/components/schemas/CarrierAccount"
},
{
"properties": {
"object_info": {
"type": "object",
"properties": {
"authentication": {
"type": "object",
"properties": {
"type": {
"enum": [
"default",
"oauth"
],
"type": "string",
"description": "Authentication method used by this account."
},
"status": {
"enum": [
"disconnected",
"connected",
"authorization_pending"
],
"type": "string",
"description": "Current authentication status. Possible values: 'disconnected' (authorization lost, reconnect needed), 'connected' (authorized and active), 'authorization_pending' (awaiting initial authorization flow)."
}
}
}
},
"description": "Holds internal state relevant to users."
}
}
}
]
}
CarrierAccountsAddShippoAccountRequest
{
"oneOf": [
{
"$ref": "#/components/schemas/CarrierAccountCanadaPostCreateRequest"
},
{
"$ref": "#/components/schemas/CarrierAccountChronopostCreateRequest"
},
{
"$ref": "#/components/schemas/CarrierAccountColissimoCreateRequest"
},
{
"$ref": "#/components/schemas/CarrierAccountCorreosCreateRequest"
},
{
"$ref": "#/components/schemas/CarrierAccountDeutschePostCreateRequest"
},
{
"$ref": "#/components/schemas/CarrierAccountDHLExpressCreateRequest"
},
{
"$ref": "#/components/schemas/CarrierAccountDpdDeCreateRequest"
},
{
"$ref": "#/components/schemas/CarrierAccountDPDUKCreateRequest"
},
{
"$ref": "#/components/schemas/CarrierAccountFedExCreateRequest"
},
{
"$ref": "#/components/schemas/CarrierAccountHermesUKCreateRequest"
},
{
"$ref": "#/components/schemas/CarrierAccountMondialRelayCreateRequest"
},
{
"$ref": "#/components/schemas/CarrierAccountPosteItalianeCreateRequest"
},
{
"$ref": "#/components/schemas/CarrierAccountUPSCreateRequest"
},
{
"$ref": "#/components/schemas/CarrierAccountUSPSCreateRequest"
}
]
}
CarrierAccountsInitiateSignIn401Response
{
"type": "object",
"example": {},
"properties": {}
}
CarrierAccountsInitiateSignIn422Response
{
"type": "object",
"example": {},
"properties": {}
}
| Version | Endpoints | Schemas | Ingested | Status |
|---|---|---|---|---|
| 2018-02-08 | 64 | 213 | 2026-05-11 | current |
| 2018-02-08 | 64 | 213 | 2026-04-16 |