> ## Documentation Index
> Fetch the complete documentation index at: https://docs.goshippo.com/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Shippo is a multi-carrier shipping API. For agent integrations that execute shipping operations (rates, labels, tracking, address validation, customs), connect the hosted Shippo MCP server at https://mcp.shippo.com (per-user OAuth; setup at /guides/mcp-server). To search and read this documentation from an agent, a docs search MCP is available at https://docs.goshippo.com/mcp. Shipping workflow knowledge (agent skills and a knowledge pack) is published at https://github.com/goshippo/ai. For REST integrations start at /guides/api-quickstart; test mode uses shippo_test_ API keys.

# Display a delivery date

## Display a delivery date on a product detail page, cart, and checkout

Show customers exactly when their order will arrive, before they buy.

Displaying an expected delivery date at every step of the shopping journey reduces uncertainty, builds purchase confidence, and cuts down on "Where's my order?" support tickets. Shippo Estimate returns an ML-powered `estimated_delivery_date_utc` for each service level, so you can surface a real calendar date, not a vague transit window, wherever your customer sees shipping options.

### How it works

The Estimate API is a standalone `POST /v2/estimates` endpoint. It returns ML-powered predicted delivery dates across carriers and service levels. It does **not** return pricing. For use cases that require both delivery dates and rates, call `POST /v2/estimates` and `POST /shipments` separately and join the results on `servicelevel.token`.

Call `POST /v2/estimates` with the origin ZIP, destination ZIP, parcel dimensions, and the planned ship date. The response includes a `predictions` array with one entry per service level, sorted fastest first. Each entry contains `estimated_delivery_date_utc`, which you convert to the destination's local timezone before displaying.

You can call this endpoint at multiple points in the shopping flow:

* **Product detail page** Use the customer's saved or estimated destination ZIP to show an expected delivery range next to each service option.
* **Cart** Re-call the endpoint when the customer confirms their shipping address to refresh the dates.
* **Checkout** Display the selected service level's predicted delivery date in the order summary before the customer confirms payment.

### Request

Create an Estimate with the origin zip and the customer's destination zip. The estimate object is returned.

```sh theme={null}
curl --request POST \
  --url https://api.goshippo.com/v2/estimates \
  --header 'Authorization: ShippoToken <API_TOKEN>' \
  --header 'Content-Type: application/json' \
  --data '{
    "origin": {
      "zip": "95122"
    },
    "destination": {
      "zip": "94103"
    },
    "parcel": {
      "length": 10,
      "width": 8,
      "height": 4,
      "distance_unit": "in",
      "weight": 2,
      "mass_unit": "lb"
    },
    "planned_ship_date": "2026-05-01T17:00:00Z"
  }'
```

### Response

The `predictions` array returns one entry per supported service level, sorted fastest first.

```json theme={null}
{
  "object_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "created_at": "2026-04-29T14:00:00Z",
  "origin": { "zip": "95122" },
  "destination": { "zip": "94103" },
  "parcel": {
    "length": 10,
    "width": 8,
    "height": 4,
    "distance_unit": "in",
    "weight": 2,
    "mass_unit": "lb"
  },
  "planned_ship_date": "2026-05-01T17:00:00Z",
  "confidence_level": "DEFAULT",
  "servicelevel_tokens": [],
  "latest_delivery_date": null,
  "test": false,
  "predictions": [
    {
      "provider": "FedEx",
      "servicelevel": {
        "name": "Priority Overnight",
        "token": "fedex_priority_overnight"
      },
      "estimated_delivery_date_utc": "2026-05-02T20:00:00Z",
      "estimated_transit_days": 1
    },
    {
      "provider": "USPS",
      "servicelevel": {
        "name": "Priority Mail",
        "token": "usps_priority"
      },
      "estimated_delivery_date_utc": "2026-05-03T20:00:00Z",
      "estimated_transit_days": 2
    },
    {
      "provider": "UPS",
      "servicelevel": {
        "name": "Ground",
        "token": "ups_ground"
      },
      "estimated_delivery_date_utc": "2026-05-05T20:00:00Z",
      "estimated_transit_days": 4
    }
  ]
}
```

### Display example

`estimated_delivery_date_utc` is in UTC. Always convert to the destination timezone before displaying.

```js theme={null}
const DESTINATION_TIMEZONE = "America/Los_Angeles";

const shippingOptions = estimatesResponse.predictions.map(prediction => {
  const localDate = new Date(prediction.estimated_delivery_date_utc)
    .toLocaleDateString("en-US", {
      timeZone: DESTINATION_TIMEZONE,
      weekday: "long",
      month: "long",
      day: "numeric"
    });

  return {
    service: `${prediction.provider} ${prediction.servicelevel.name}`,
    token: prediction.servicelevel.token,
    deliveryDate: localDate,
  };
});

// Example output:
// { service: "FedEx Priority Overnight", token: "fedex_priority_overnight", deliveryDate: "Saturday, May 2" }
// { service: "USPS Priority Mail",       token: "usps_priority",            deliveryDate: "Sunday, May 3"  }
// { service: "UPS Ground",               token: "ups_ground",               deliveryDate: "Tuesday, May 5" }
```

> [!WARNING]
>
> **Timezone caution:** A UTC value of `2026-05-03T03:00:00Z` is May 2nd in `America/Los_Angeles`. Do not read the date directly from the UTC string — always convert first.

> [!NOTE]
>
> The Estimate API does not return pricing. To display rates alongside delivery dates, call `POST /shipments`separately and join on `servicelevel.token`. See [Power rate shopping decisions](https://docs.goshippo.com/estimate/rate-shop-with-delivery-dates.md) for a combined flow example.


## Related topics

- [Filter by required delivery date](https://docs.goshippo.com/estimate/filter-by-delivery-date.md)
- [Rate shop with delivery dates](https://docs.goshippo.com/estimate/rate-shop-with-delivery-dates.md)
- [Estimate](https://docs.goshippo.com/estimate/estimate.md)
