Pickup
The Pickup object is used to schedule a pickup from a carrier at a residence or place of business.
Supported carriers include:
- Better Trucks
- Canada Post
- Canpar
- DHL Express
- FedEx
- Lasership
- Loomis Express
- LSO
- Maersk Parcel
- Ontrac
- UPS
- USPS
- Veho
Once a Pickup is successfully created, PickupRates will be automatically fetched for each
specified CarrierAccount that supports scheduled pickups. A PickupRate must then be selected
and purchased to successfully schedule the pickup.
id in some API endpointsPossible values:
- "scheduled"
- "canceled"
- "unknown"
min_datetimeCarrierAccount arrayPickupRate arrayPickup was createdPickup was last updated{
"id": "pickup_24f4406c58f24fde820759d84d9422fa",
"object": "Pickup",
"created_at": "2025-05-09T20:39:27Z",
"updated_at": "2025-05-09T20:39:27Z",
"mode": "test",
"status": "unknown",
"reference": "my-first-pickup",
"min_datetime": "2025-05-12T00:00:00Z",
"max_datetime": "2025-05-12T00:00:00Z",
"is_account_address": false,
"instructions": "Special pickup instructions",
"messages": [],
"confirmation": null,
"address": {
"id": "adr_b379f0df2d1511f0ad1cac1f6bc539ae",
"object": "Address",
"created_at": "2025-05-09T20:39:27+00:00",
"updated_at": "2025-05-09T20:39:27+00:00",
"name": "Dr. Steve Brule",
"company": null,
"street1": "179 N Harbor Dr",
"street2": null,
"city": "Redondo Beach",
"state": "CA",
"zip": "90277",
"country": "US",
"phone": "8573875756",
"email": "dr_steve_brule@gmail.com",
"mode": "test",
"carrier_facility": null,
"residential": null,
"federal_tax_id": null,
"state_tax_id": null,
"verifications": {}
},
"carrier_accounts": [],
"pickup_rates": [
{
"mode": "test",
"service": "NextDay",
"rate": "0.00",
"currency": "USD",
"created_at": "2025-05-09T20:39:29Z",
"updated_at": "2025-05-09T20:39:29Z",
"carrier": "USPS",
"pickup_id": "pickup_24f4406c58f24fde820759d84d9422fa",
"id": "pickuprate_df03ccc2da4e4825927464867c7f76b9",
"object": "PickupRate"
}
]
}PickupRate was createdPickupRate was last updated{
"mode": "test",
"service": "NextDay",
"rate": "0.00",
"currency": "USD",
"created_at": "2025-05-09T20:39:29Z",
"updated_at": "2025-05-09T20:39:29Z",
"carrier": "USPS",
"pickup_id": "pickup_24f4406c58f24fde820759d84d9422fa",
"id": "pickuprate_df03ccc2da4e4825927464867c7f76b9",
"object": "PickupRate"
}Creating a Pickup will automatically fetch rates for the given time frame and location.
Pickups work with an existing purchased Shipment or a fully-purchased Batch, and either a fully-specified Address object or its id.
The examples below assume that a Shipment and Address have both already been created.
A Pickup object is immutable once created. All information must be provided during creation; it cannot be modified later.
Request Parameters
AddressShipment (if no batch)Batch (if no shipment)CarrierAccount array1curl -X POST https://api.easypost.com/v2/pickups \
2 -u "EASYPOST_API_KEY": \
3 -H 'Content-Type: application/json' \
4 -d '{
5 "pickup": {
6 "reference": "my-first-pickup",
7 "min_datetime": "2022-10-01 10:30:00",
8 "max_datetime": "2022-10-02 10:30:00",
9 "shipment": "shp_...",
10 "address": "adr_...",
11 "is_account_address": "false",
12 "instructions": "Special pickup instructions"
13 }
14 }'1{
2 "id": "pickup_24f4406c58f24fde820759d84d9422fa",
3 "object": "Pickup",
4 "created_at": "2025-05-09T20:39:27Z",
5 "updated_at": "2025-05-09T20:39:27Z",
6 "mode": "test",
7 "status": "unknown",
8 "reference": "my-first-pickup",
9 "min_datetime": "2025-05-12T00:00:00Z",
10 "max_datetime": "2025-05-12T00:00:00Z",
11 "is_account_address": false,
12 "instructions": "Special pickup instructions",
13 "messages": [],
14 "confirmation": null,
15 "address": {
16 "id": "adr_b379f0df2d1511f0ad1cac1f6bc539ae",
17 "object": "Address",
18 "created_at": "2025-05-09T20:39:27+00:00",
19 "updated_at": "2025-05-09T20:39:27+00:00",
20 "name": "Dr. Steve Brule",
21 "company": null,
22 "street1": "179 N Harbor Dr",
23 "street2": null,
24 "city": "Redondo Beach",
25 "state": "CA",
26 "zip": "90277",
27 "country": "US",
28 "phone": "8573875756",
29 "email": "dr_steve_brule@gmail.com",
30 "mode": "test",
31 "carrier_facility": null,
32 "residential": null,
33 "federal_tax_id": null,
34 "state_tax_id": null,
35 "verifications": {}
36 },
37 "carrier_accounts": [],
38 "pickup_rates": [
39 {
40 "mode": "test",
41 "service": "NextDay",
42 "rate": "0.00",
43 "currency": "USD",
44 "created_at": "2025-05-09T20:39:29Z",
45 "updated_at": "2025-05-09T20:39:29Z",
46 "carrier": "USPS",
47 "pickup_id": "pickup_24f4406c58f24fde820759d84d9422fa",
48 "id": "pickuprate_df03ccc2da4e4825927464867c7f76b9",
49 "object": "PickupRate"
50 }
51 ]
52}To purchase a Pickup, a PickupRate must be specified by its carrier and service name, instead of its id.
Our client libraries will handle this automatically if a PickupRate is provided.
Request Parameters
1curl -X POST https://api.easypost.com/v2/pickups/pickup_.../buy \
2 -u "EASYPOST_API_KEY": \
3 -H 'Content-Type: application/json' \
4 -d '{
5 "carrier": "UPS",
6 "service": "Same-Day Pickup"
7 }'1{
2 "id": "pickup_4d1c6ab65e17415e8b6bfe53bb2a1231",
3 "object": "Pickup",
4 "created_at": "2025-05-09T20:39:34Z",
5 "updated_at": "2025-05-09T20:39:41Z",
6 "mode": "test",
7 "status": "scheduled",
8 "reference": "my-first-pickup",
9 "min_datetime": "2025-05-12T00:00:00Z",
10 "max_datetime": "2025-05-12T00:00:00Z",
11 "is_account_address": false,
12 "instructions": "Special pickup instructions",
13 "messages": [],
14 "confirmation": "WTC65095508",
15 "address": {
16 "id": "adr_b769cf9f2d1511f0af85ac1f6bc539ae",
17 "object": "Address",
18 "created_at": "2025-05-09T20:39:34+00:00",
19 "updated_at": "2025-05-09T20:39:34+00:00",
20 "name": "Dr. Steve Brule",
21 "company": null,
22 "street1": "179 N Harbor Dr",
23 "street2": null,
24 "city": "Redondo Beach",
25 "state": "CA",
26 "zip": "90277",
27 "country": "US",
28 "phone": "8573875756",
29 "email": "dr_steve_brule@gmail.com",
30 "mode": "test",
31 "carrier_facility": null,
32 "residential": null,
33 "federal_tax_id": null,
34 "state_tax_id": null,
35 "verifications": {}
36 },
37 "carrier_accounts": [],
38 "pickup_rates": [
39 {
40 "mode": "test",
41 "service": "NextDay",
42 "rate": "0.00",
43 "currency": "USD",
44 "created_at": "2025-05-09T20:39:35Z",
45 "updated_at": "2025-05-09T20:39:35Z",
46 "carrier": "USPS",
47 "pickup_id": "pickup_4d1c6ab65e17415e8b6bfe53bb2a1231",
48 "id": "pickuprate_9b08a0fd219644418b7b4172ecedcae8",
49 "object": "PickupRate"
50 }
51 ]
52}You may cancel a Pickup any time before it has been completed.
It requires no additional parameters other than the id or reference.
The status will change to "canceled" on success.
1curl -X POST https://api.easypost.com/v2/pickups/pickup_.../cancel \
2 -u "EASYPOST_API_KEY":1{
2 "id": "pickup_f6d5a5ca0dcf4a8fb37ee2dba53942ab",
3 "object": "Pickup",
4 "created_at": "2025-05-09T20:39:42Z",
5 "updated_at": "2025-05-09T20:39:56Z",
6 "mode": "test",
7 "status": "canceled",
8 "reference": "my-first-pickup",
9 "min_datetime": "2025-05-12T00:00:00Z",
10 "max_datetime": "2025-05-12T00:00:00Z",
11 "is_account_address": false,
12 "instructions": "Special pickup instructions",
13 "messages": [],
14 "confirmation": "WTC65095510",
15 "address": {
16 "id": "adr_bc79a2f12d1511f08b27ac1f6bc539aa",
17 "object": "Address",
18 "created_at": "2025-05-09T20:39:42+00:00",
19 "updated_at": "2025-05-09T20:39:42+00:00",
20 "name": "Dr. Steve Brule",
21 "company": null,
22 "street1": "179 N Harbor Dr",
23 "street2": null,
24 "city": "Redondo Beach",
25 "state": "CA",
26 "zip": "90277",
27 "country": "US",
28 "phone": "8573875756",
29 "email": "dr_steve_brule@gmail.com",
30 "mode": "test",
31 "carrier_facility": null,
32 "residential": null,
33 "federal_tax_id": null,
34 "state_tax_id": null,
35 "verifications": {}
36 },
37 "carrier_accounts": [],
38 "pickup_rates": [
39 {
40 "mode": "test",
41 "service": "NextDay",
42 "rate": "0.00",
43 "currency": "USD",
44 "created_at": "2025-05-09T20:39:44Z",
45 "updated_at": "2025-05-09T20:39:44Z",
46 "carrier": "USPS",
47 "pickup_id": "pickup_f6d5a5ca0dcf4a8fb37ee2dba53942ab",
48 "id": "pickuprate_848b937feb1a4e9aa4f9e9e05d40be3c",
49 "object": "PickupRate"
50 }
51 ]
52}A list of all Pickup objects associated with the given API Key can also be retrieved.
See the Pagination section of our docs for more details on retrieving all records when multiple pages are available.
Request Parameters
after_id.before_id.end_datetime.start_datetime.1curl -X GET "https://api.easypost.com/v2/pickups?page_size=5" \
2 -u "EASYPOST_API_KEY":1{
2 "pickups": [
3 {
4 "id": "pickup_f6d5a5ca0dcf4a8fb37ee2dba53942ab",
5 "object": "Pickup",
6 "created_at": "2025-05-09T20:39:42Z",
7 "updated_at": "2025-05-09T20:39:56Z",
8 "mode": "test",
9 "status": "canceled",
10 "reference": "my-first-pickup",
11 "min_datetime": "2025-05-12T00:00:00Z",
12 "max_datetime": "2025-05-12T00:00:00Z",
13 "is_account_address": false,
14 "instructions": "Special pickup instructions",
15 "messages": [],
16 "confirmation": "WTC65095510",
17 "address": {
18 "id": "adr_bc79a2f12d1511f08b27ac1f6bc539aa",
19 "object": "Address",
20 "created_at": "2025-05-09T20:39:42+00:00",
21 "updated_at": "2025-05-09T20:39:42+00:00",
22 "name": "Dr. Steve Brule",
23 "company": null,
24 "street1": "179 N Harbor Dr",
25 "street2": null,
26 "city": "Redondo Beach",
27 "state": "CA",
28 "zip": "90277",
29 "country": "US",
30 "phone": "8573875756",
31 "email": "dr_steve_brule@gmail.com",
32 "mode": "test",
33 "carrier_facility": null,
34 "residential": null,
35 "federal_tax_id": null,
36 "state_tax_id": null,
37 "verifications": {}
38 },
39 "carrier_accounts": [],
40 "pickup_rates": [
41 {
42 "mode": "test",
43 "service": "NextDay",
44 "rate": "0.00",
45 "currency": "USD",
46 "created_at": "2025-05-09T20:39:44Z",
47 "updated_at": "2025-05-09T20:39:44Z",
48 "carrier": "USPS",
49 "pickup_id": "pickup_f6d5a5ca0dcf4a8fb37ee2dba53942ab",
50 "id": "pickuprate_848b937feb1a4e9aa4f9e9e05d40be3c",
51 "object": "PickupRate"
52 }
53 ]
54 }
55 ],
56 "has_more": true
57}A Pickup object can be retrieved by either an id or reference.
However it is recommended to use EasyPost's provided identifiers because uniqueness on reference is not enforced.
1curl -X GET https://api.easypost.com/v2/pickups/pickup_... \
2 -u "EASYPOST_API_KEY":1{
2 "id": "pickup_67a2332e26d748cc8821bb48b70acef6",
3 "object": "Pickup",
4 "created_at": "2025-05-09T20:39:31Z",
5 "updated_at": "2025-05-09T20:39:31Z",
6 "mode": "test",
7 "status": "unknown",
8 "reference": "my-first-pickup",
9 "min_datetime": "2025-05-12T00:00:00Z",
10 "max_datetime": "2025-05-12T00:00:00Z",
11 "is_account_address": false,
12 "instructions": "Special pickup instructions",
13 "messages": [],
14 "confirmation": null,
15 "address": {
16 "id": "adr_b56b2c642d1511f0ae57ac1f6bc539ae",
17 "object": "Address",
18 "created_at": "2025-05-09T20:39:30+00:00",
19 "updated_at": "2025-05-09T20:39:30+00:00",
20 "name": "Dr. Steve Brule",
21 "company": null,
22 "street1": "179 N Harbor Dr",
23 "street2": null,
24 "city": "Redondo Beach",
25 "state": "CA",
26 "zip": "90277",
27 "country": "US",
28 "phone": "8573875756",
29 "email": "dr_steve_brule@gmail.com",
30 "mode": "test",
31 "carrier_facility": null,
32 "residential": null,
33 "federal_tax_id": null,
34 "state_tax_id": null,
35 "verifications": {}
36 },
37 "carrier_accounts": [],
38 "pickup_rates": [
39 {
40 "mode": "test",
41 "service": "NextDay",
42 "rate": "0.00",
43 "currency": "USD",
44 "created_at": "2025-05-09T20:39:32Z",
45 "updated_at": "2025-05-09T20:39:32Z",
46 "carrier": "USPS",
47 "pickup_id": "pickup_67a2332e26d748cc8821bb48b70acef6",
48 "id": "pickuprate_7affd49d765243519102322a2e9bcc1b",
49 "object": "PickupRate"
50 }
51 ]
52}