Create Manifests

What are Manifests, End of Day, or Scan Forms?

Many manifests are sent electronically to the carrier when you create a label, and often physical manifests are not necessary. Carriers receive the package details, shipping date, and other information that help them plan your package's delivery when you create a label.

However, some providers, like USPS require manifests when shipping large numbers of packages. Think about how long it would take for a delivery driver to arrive, pick up 100 packages, and individually scan each of them.

A manifest exists so the carrier can scan the manifest and check in all the packages being shipped.

Info

When Do You Make a Manifest?

Manifests exist to increase the efficiency of a postal worker and warehouse staff. Creating a manifest allows the warehouse to "close out" what they're going to send with the postal worker and move to a new grouping.

Warning

Manifest size restrictions

The manifest size is currently limited to 500 labels per manifest. This limit will be increased in the near future.

Model Basics

When creating your request, use the carrier_id, warehouse_id, ship_date, and excluded_label_ids together. When using the label_ids property it replaces all of the previous properties. Please reference the examples here

Property Description
carrier_id string, required
The Carrier ID you wish to create a manifest for.
excluded_label_ids string array
Use this to exclude any labels created with this ship_date that will not be shipped today.
warehouse_id string, required
The Warehouse ID this manifest is being created for.
ship_date date string, (ISO 8601 Standard), required
2019-07-25T15:24:46.657Z

OR

Property Description
label_ids string array, required
Use this to group labels that you want shipped.

Warning

Use warehouse_id instead of ship_from when creating a manifest

Each ShipEngine manifest is created for a specific warehouse, so you'll need to provide the warehouse_id rather than the ship_from address. You can create a warehouse for each location that you want to create manifests for.

Example

POST /v1/manifests

curl -iX POST https://api.shipengine.com/v1/manifests \
-H 'Content-Type: application/json' \
-H 'API-Key: __YOUR_API_KEY_HERE__' \
-d '
{
  "carrier_id": "se-123890",
  "excluded_label_ids": [],
  "warehouse_id": "se-11921",
  "ship_date": "2019-07-25T05:00:00.000Z"
}'
{
  "manifests": [
    {
      "manifest_id": "se-17618625",
      "form_id": "se-28529731",
      "created_at": "2019-07-12T13:37:39.050Z",
      "ship_date": "2019-07-25T05:00:00.000Z",
      "shipments": 100,
      "warehouse_id": "se-28529731",
      "submission_id": "9475711899564878915476",
      "carrier_id": "se-123890",
      "manifest_download": {
        "href": "http://api.shipengine.com/v1/labels/se-28529731"
      }
    }
  ]
}

Filter Manifest Labels

If you have multiple outgoing shipments per day you might not want to ship all of your available labels in one manifest file. To split up your labels you can take advantage of either the label_ids or excluded_label_ids properties.

Info You can only use label_ids or excluded_label_ids when generating a manifest file.

Include Example

Will only include the labels that are specified in the label_ids property. You no longer have to include the carrier_id, warehouse_id, or ship_date when using the label_ids property.

Warning When using the label_ids property, all the listed labels need to share the same carrier_id, warehouse_id, and ship_date.

  curl -iX POST https://api.shipengine.com/v1/manifests \
-H 'Content-Type: application/json' \
-H 'API-Key: __YOUR_API_KEY_HERE__' \
-d '
{
  "label_ids": ["se-29602037", "se-29544722", "se-29475869"]
}'
  • curl

Include Response

{
  "manifests": [
    {
      "manifest_id": "se-17618625",
      "form_id": "se-28529731",
      "created_at": "2019-07-12T13:37:39.050Z",
      "ship_date": "2019-07-25T05:00:00.000Z",
      "shipments": 100,
      "warehouse_id": "se-28529731",
      "submission_id": "9475711899564878915476",
      "carrier_id": "se-123890",
      "manifest_download": {
        "href": "http://api.shipengine.com/v1/labels/se-28529731"
      }
    }
  ]
}

Exclude Example

Will included all labels except the ones that are specified in the excluded_label_ids property.

  curl -iX POST https://api.shipengine.com/v1/manifests \
-H 'Content-Type: application/json' \
-H 'API-Key: __YOUR_API_KEY_HERE__' \
-d '
{
  "carrier_id": "se-123890",
  "excluded_label_ids": ["se-29602037", "se-29544722", "se-29475869"],
  "warehouse_id": "se-11921",
  "ship_date": "2019-07-25T05:00:00.000Z"
}'
  • curl

Exclude Response

{
  "manifests": [
    {
      "manifest_id": "se-17618625",
      "form_id": "se-28529731",
      "created_at": "2019-07-12T13:37:39.050Z",
      "ship_date": "2019-07-25T05:00:00.000Z",
      "shipments": 100,
      "warehouse_id": "se-28529731",
      "submission_id": "9475711899564878915476",
      "carrier_id": "se-123890",
      "manifest_download": {
        "href": "http://api.shipengine.com/v1/labels/se-28529731"
      }
    }
  ]
}