# SmartRate Guide

The SmartRate API provides shippers with highly accurate, shipment-level transit time predictions. Users can leverage this data to make informed decisions about shipping strategies to save money, improve on-time delivery, and get reliable estimated delivery dates.

### Subscription

The SmartRate API offers users 500 free SmartRate API calls for immediate use. Once the 500 call limit is exceeded, users are charged $0.03 per call or can sign up for a subscription.

> Note: The SmartRate API is currently available exclusively for US domestic shipments.

## Prerequisites

1. Sign up for an EasyPost account or
   log in
   to an existing account.
1. Utilize one of EasyPost's official client libraries.
1. Review the Getting Started Guide to become familiar with the basic functionalities of EasyPost.
1. Create a Shipment.

---

## Functionality

The SmartRate API accepts a Shipment ID and returns a time_in_transit object that includes transit days across various percentiles for every Rate associated with a given Shipment. Transit days are calculated as the number of business days from when the carrier first acknowledges possession of the shipment to the initial out-for-delivery attempt.

Related:

- [Rate Object](https://docs.easypost.com/docs/shipments)

---

## API Endpoints

### SmartRate

The `/smartrate` endpoint accepts a Shipment ID and returns a time_in_transit object that includes transit business days across various percentiles for every Rate associated with a given Shipment. Transit business days are calculated as the number of business days (Monday-Friday) from when the carrier first acknowledges possession of the shipment to the initial out-for-delivery attempt.

For detailed information on using this endpoint, please visit the SmartRate section of the API Docs.

### Delivery Date

The `/delivery_date` endpoint provides estimated delivery dates for shipments, helping users identify cost-effective service levels and enhance delivery timeliness.

This data helps identify cheaper service levels that meet time-in-transit Service Level Agreements (SLAs), enhance on-time delivery for time-sensitive shipments, and improve customer experience with accurate delivery date estimates.

Unlike the `/smartrate` endpoint, the `days_in_transit` uses complex AI to consider the day of the week planned for shipping and account for shipments that extend over weekends and holidays.

For detailed information on using this endpoint, please visit the SmartRate section of the API Docs.

### Precision Shipping

The `/precision_shipping` endpoint of the SmartRate API enhances shipping accuracy by allowing shippers to specify a desired delivery date. The API then suggests the best ship date for each carrier and service level to meet this delivery date. In addition to the suggested `ship_on_date`, a `delivery_date_confidence` score is provided, indicating the likelihood of delivery on the desired date.

Unlike the `/smartrate` endpoint, the `days_in_transit` uses complex AI to consider the day of the week planned for shipping and account for shipments that extend over weekends and holidays.

For detailed information on using this endpoint, please visit the SmartRate section of the API Docs.

### Deliver By

The `/smartrate/deliver_by` endpoint offers advanced predictions of delivery dates based on the entry point into the mailstream and intended delivery timelines.

This time-in-transit data can be used in offline processes to identify cheaper service levels that meet time-in-transit Service Level Agreements (SLAs), enhance on-time delivery for time-sensitive shipments, and improve customer experience with accurate delivery date estimates.

For detailed information on using this endpoint, please visit the SmartRate section of the API Docs.

## Deliver On

The `/smartrate/deliver_on` endpoint of the SmartRate API enhances shipping accuracy by allowing shippers to specify a desired delivery date. The API then suggests the best ship date for each carrier and service level to meet this delivery date. In addition to the suggested `ship_on_date`, a `delivery_date_confidence` score is provided, indicating the likelihood of delivery on the desired date.

For detailed information on using this endpoint, please visit the SmartRate section of the API Docs.

[Content omitted: related links and resources. Review the rendered documentation for navigation links.]

---

## How to Use the SmartRate API

### Step 1: Create a Shipment

To utilize SmartRate, first create a shipment for the parcel. Once the shipment is created, copy the `shipment_id` from the bottom of the response for the next step.

Refer to the Getting Started Guide for detailed instructions on creating a shipment.

### Step 2: Select a SmartRate Endpoint and Call the SmartRate API

Using the `shipment_id`, choose the appropriate SmartRate endpoint based on the shipping schedule or delivery requirements.

**NOTE:** The **Deliver By** and **Deliver On** endpoints do not require a Shipment ID.

### Step 3: Select a Rate

Use the response to select the most appropriate rate for the shipment.

---

## SmartRate Use Cases

### Save Money

Identify cost-effective service levels that meet your transit time requirements. SmartRate provides granular, accurate transit time estimates, enabling cost savings on both shipping and packaging.

### Enhance Customer Experience

Improve on-time delivery rates and checkout experiences by providing reliable delivery date estimates directly to customers. This is especially beneficial during peak seasons when carrier performance may vary.

## Additional Resources

- SmartRate - API Docs
- [Create Label Tool: SmartRate-powered label suggestions](https://support.easypost.com/hc/en-us/articles/20360596132109-Create-Label-Tool-SmartRate-powered-label-suggestions)
- Shipping Optimization API: SmartRate
- [SmartRate API FAQs](https://support.easypost.com/hc/en-us/articles/15433074900365-SmartRate-API-FAQs)
- [How to Create Shipping Labels in EasyPost](https://support.easypost.com/hc/en-us/articles/17382407999373-How-to-Create-Shipping-Labels-in-EasyPost)