The uShip Furniture API provides seamless integration for white glove furniture and household goods shipments.


Getting Started

Base URLs

Environment URL Description
Sandbox https://api.ushipsandbox.com Test environment for development
Production https://api.uship.com Live production environment

Note: Sandbox and production environments require separate API keys.


Authentication

All API requests require Bearer token authentication.

Obtaining Your API Key

  1. Navigate to API Key Generation Page
  2. Generate your API key (specify sandbox or production)
  3. Include in all requests:
Authorization: Bearer <your_api_key>

Integration Guides

Guide Description
Furniture and Home API Guide Overview and Shopify integration comparison
Direct Furniture Integrations Request body details and order of operations
Sandbox Testing Guide Comprehensive sandbox testing documentation

Support

For questions or assistance, contact: apisupport@uship.com

Server
https://api.uship.com

Production

https://api.ushipsandbox.com

Sandbox (Testing)

Server Variables
apiKey Bearer

Use "Bearer " to authenticate.

Fields
KeyIn
AuthorizationHeader
apiKey x-api-key

Self Service API Key for authentication.

Fields
KeyIn
x-api-keyHeader

Fixed Price

Get instant shipping quotes for furniture delivery. Use these endpoints to retrieve pricing before creating a listing.

Retrieve shipping cost

Provides fixed price information for the cost of a carrier shipping household goods in the US and Canada only.

Auth
Headers
Content-Typestring

application/x-www-form-urlencoded

Request Body

Container for items to be rated and shipped. Used to wrap multiple or single items for rating.

objectobject

Request body for the FixedPrice API

sourcestring

Required. The shipper's alpha numeric company name all lower case and together, no special characters

insurance1 fieldobject

Amount of protection declared for shipment

originPostalCodestring

Required. Origin zip code

destinationPostalCodestring

Required. Destination zip code

items5 fieldsarray[object]

Required. items

userIdstring

userId for pricing estimates

priceCorrelationIdstring

priceCorrelationId to correlate the estimated price with the listing

commoditystring

commodity of the shipment

originCountryCodestring

country code where the shipment is originating

destinationCountryCodestring

country code where the shipment is destined

POST /v2/fixedprice
Copy
Responses
200

OK

objectobject

Fixed Price Response Model

pricenumber

Total price including uShip service charges

nypAmountnumber

Name your price which is total price excluding uShip service charges

priceCorrelationIduuid

User generated UUID/GUID

insuranceQuote1 fieldobject
coverageAmountobject
amountnumber
currencyTypestring
400

Invalid or missing parameter.

401

Unauthorized

Response
Copy

Listings

Create and manage furniture shipment listings. Listings represent shipment requests that carriers can bid on or accept at a fixed price.

Retrieve listing contacts

This endpoint allows you to retrieve contact information associated with the shipper and service provider after listing has been booked

Auth
Path Params
listingIdinteger

Required. listingId

GET /v2/listings/{listingId}/contacts
Copy
Responses
200

200 OK

objectobject
Shipper10 fieldsobject

Shipper information

serviceProvider10 fieldsobject
locations5 fieldsobject
Response
Copy

Retrieve tracking info

This endpoint allows you to retrieve latitude/longitude values, transit status, and the most recent location or address. If a recent location is not provided, these will be absent from the response.

Auth
Path Params
listingIdinteger

Required. The listing ID to retrieve tracking information for

GET /v2/listings/{listingId}/track
Copy
Responses
200

200 OK

objectobject
listingGeneratedIdinteger

The ID for your listing

listingTitlestring

The title of your listing

commodityCodestring

Displays CarsLightTrucks

shipmentTrackingSummaryModel5 fieldsobject
carrierContactModel4 fieldsobject

The contact information for the carrier

shipmentTrackingStatuses3 fieldsarray[object]

The list of tracking statuses and when they were set

mostRecentLocation3 fieldsarray[object]

The last recorded location of your shipment.

mostRecentAddress4 fieldsarray[object]

The last recorded location reverse geo-coded to an address. Will not be returned if not available.

Response
Copy

Creating an IHD Listing

Auth
Headers
Content-Typestring

application/x-www-form-urlencoded

Request Body

Request body for v2 Listings POST request

objectobject

Request body for v2 Listings API Post request

titlestring

Required. A title for the listing

descriptionstring

A description for the listing

confidentialDescriptionstring

A confidential description only seen by the driver

pricing2 fieldsobject

Pricing information for a listing. Only one of these properties should be used

insurance1 fieldobject

Amount of protection declared for shipment

route1 fieldobject

Required. route

items10 fieldsarray[object]

Required. items

requestedRateTypesstring
referenceNumbers3 fieldsarray[object]

Reference numbers associated with the listing. When using Type='Other', you can provide a custom label via referenceNumberLabel which will be combined with the number value as '{referenceNumberLabel} - {number}' (max 60 chars total).

serviceTypesarray[string]

A list of requested service types for the shipment

Enum: BlanketWrap,LtlTransportOnly,LtlFreightPackaging

galleryarray[string]
POST /v2/listings
Copy
Responses
201

Created

objectobject

Created

401

Unauthorized

Response
Copy

Retrieves IHD listing by ID

Auth
Path Params
listingIdnumber

Required. ID provided when IHD listing is created

GET /v2/listings/{listingId}
Copy
Responses
200

Succesfully retrieved

objectobject

A collection of multiple items retrieved from a single API resource

totalCountint32

The total count of items that exist for the resource requested

items54 fieldsarray[object]

The paged collection of items as requested

401

Invalid credentials

Response
Copy

Edits IHD listing by ID

Auth
Path Params
idinteger

Required. ID of the listing to update

Request Body

Listing update model containing the fields to update

objectobject

Model for updating a listing

checksumstring

Checksum for concurrency control

titlestring

Listing title

descriptionstring

Listing description

route2 fieldsobject

Container for route destinations and other route information

isAuctionboolean

Whether this listing is an auction

isDutchAuctionboolean

Whether this listing is a Dutch auction

namedPrice4 fieldsobject

The details of a price and recommended formatting

offerPrice4 fieldsobject

The details of a price and recommended formatting

itemsarray[object]

Collection of listing items

serviceTypes3 fieldsarray[object]

Service types for the listing

referenceNumbers3 fieldsarray[object]

Reference numbers associated with the listing

attributesobject

Additional attributes for the listing

isItineraryMandatoryboolean

Whether itinerary is mandatory for this listing

importSourcestring

The URI of a listing-like resource from which a listing might be created or updated

PUT /v2/listings/{listingId}
Copy
Responses
204

Confirms the edit was successful

No response body
401

Credentials are invalid

Response
Copy

Delete IHD listing by ID

Auth
Path Params
listingIdinteger

Required. ID of the listing to delete

DELETE /v2/listings/{listingId}
Copy
Responses
204

No Content

No response body
401

Missing or invalid x-api-key.

403

Listing cannot be deleted because it has already been Booked.

404

Listing does not exist or isn't accessible with your key.

Response
Copy

Bill Of Lading

Retrieve Bill of Lading documents for booked shipments. The BOL serves as the official shipping contract between shipper and carrier.

Get the preSigned url for bill of lading

Auth
Headers
Authorizationstring

Required. Required Authorization header containing access token

Path Params
idstring

Required. The listing ID for which to retrieve the bill of lading

GET /v2/listings/{id}/billoflading
Copy
Responses
200

200 response

v2ListingBillofLadingGet200Responseobject
billOfLadingNumbernumber
documentobject

pre-signed url to access the bill of lading

hrefstring

pre-signed url

401

Unauthorized

403

Forbidden

404

Not Found

500

Internal server error

Response

transit status changed webhook

Request Body

Information about the booked transit status change

objectobject
specversionstring

The version of the CloudEvents specification which the event uses. See https://github.com/cloudevents/spec/blob/main/cloudevents/spec.md#specversion

Enum: 1.0

sourcestring

Identifies the context in which an event happened. See https://github.com/cloudevents/spec/blob/main/cloudevents/spec.md#source-1

iduuid

Identifies the event. See https://github.com/cloudevents/spec/blob/main/cloudevents/spec.md#id

timedate-time

Timestamp of when the occurrence happened in ISO-8601 format. See https://github.com/cloudevents/spec/blob/main/cloudevents/spec.md#time

typestring

Type of event related to the originating occurrence. See https://github.com/cloudevents/spec/blob/main/cloudevents/spec.md#type

Enum: Shipment.TransitStatusChanged/v1

data4 fieldsobject
POST ShipmentTransitStatusChanged
Responses
200

Return a 200 status to indicate that the data was received successfully

No response body
Response