---
title: "Schedule a pickup"
method: POST
path: "/v1/pickups"
tags: ["ship"]
---

# Schedule a pickup

`POST /v1/pickups`

## Request

- Base URL: `https://api.noerrands.com/c/ship`
- URL: `https://api.noerrands.com/c/ship/v1/pickups`
- Auth: HTTP bearer

Book the carrier pickup for one pickup_id and service, with confirm true; CONSEQUENTIAL -- a driver is sent to the address -- and charged only if that option's price_cents is above zero (USPS pickups are free). Sensitive write: it requires the human's approval of the window, address and price. Returns the carrier's confirmation number.

## Request body

- object
  - `pickup_id` string, required
  - `service` string, required: One service from get_pickup_options.
  - `confirm` true, required: Must be true. Set it only after the human approved this exact action and price.
  - `idempotency_key` string: Use one key per human request. Replays within 24 hours return the original result instead of buying twice.

## Response `200`

Success.

- object
  - `pickup_id` string, required
  - `shipment_id` string, required
  - `status` 'quoted' | 'scheduled' | 'cancelled', required
  - `carrier` string
  - `service` string
  - `confirmation` string: The carrier's confirmation number. Give it to the human.
  - `earliest` string, required
  - `latest` string, required
  - `credits_charged_cents` integer, required
  - `balance_cents` integer, required: General credit left.

## Other responses

- `400`: invalid_request
- `401`: unauthorized. Carries WWW-Authenticate: Bearer resource_metadata="..."
- `402`: insufficient_credits, with required_cents, balance_cents, topup_url and packs.
- `403`: forbidden_scope: a write tool called with a read-only key.
- `404`: not_found
- `409`: idempotency_conflict
- `429`: rate_limited
- `502`: provider_error

---

[API](https://skmtc.dev/noerrands/apis/no-errands-ship-api.md) · [All operations](https://skmtc.dev/noerrands/apis/no-errands-ship-api/llms.txt) · [OpenAPI document](https://skmtc.dev/noerrands/apis/no-errands-ship-api/revisions/f0615c6bd5d8?raw)
