canonical: https://jentic.com/apis/postmates.com/postmates

# Postmates Delivery API

Jentic publishes the only available OpenAPI specification for Postmates Delivery API, keeping it validated and agent-ready. The Postmates API enables on-demand delivery between any two locations, providing delivery quotes with fee estimates and ETAs, delivery creation with pickup and dropoff details, real-time status tracking, and delivery cancellation or return. It uses HTTP Basic authentication and supports courier location tracking during active deliveries. Note: Postmates was acquired by Uber in 2020 and this API has been deprecated in favor of Uber Direct.

## For AI agents

Request on-demand delivery quotes, create deliveries between addresses, track courier status in real-time, and cancel or return active deliveries.

## Scope

Does not handle parcel shipping labels, carrier rate comparison, or warehouse management - use for on-demand same-day courier delivery only.

## Capabilities

- Request delivery fee quotes with estimated duration and dropoff ETA before committing
- Create deliveries specifying pickup and dropoff addresses, contacts, and item descriptions
- Track delivery status through pending, pickup, dropoff, delivered, canceled, and returned states
- Cancel deliveries before courier pickup without penalty
- Initiate returns to send picked-up items back to the origin location
- Access real-time courier location and vehicle information during active deliveries

## Use cases

### On-Demand Package Delivery

Create immediate deliveries between any two locations by providing pickup and dropoff addresses, contact names, and phone numbers. The API dispatches a courier, provides real-time ETAs, and tracks status through each delivery phase. Fees are calculated dynamically based on distance and demand, with optional quote-locking to guarantee pricing before dispatch.

Example prompt: Create a delivery quote from '20 McAllister St, San Francisco, CA' to '101 Market St, San Francisco, CA', then create the delivery using the returned quote_id

### Delivery Fee Estimation

Retrieve delivery cost estimates before committing to a dispatch. The quote endpoint returns fee in cents, estimated duration in minutes, and a dropoff ETA timestamp. Quotes expire after a short period but can be referenced when creating a delivery to lock in the quoted price. This enables cost comparison and customer-facing price displays in checkout flows.

Example prompt: Create a delivery quote for pickup at '500 Terry Francois St, SF' and dropoff at '1 Ferry Building, SF' and return the estimated fee and duration

### Delivery Status Monitoring

Track deliveries through their lifecycle from pending through pickup, in-transit, and delivered states. The API provides status, courier details (name, phone, vehicle), and real-time location coordinates. Agents can poll delivery status or list all ongoing deliveries to monitor fleet activity and detect issues like stalled or canceled deliveries requiring intervention.

Example prompt: Retrieve the status of delivery 'del_abc123' and check if the courier has completed pickup by inspecting the status field

### AI Agent Delivery Orchestration

Enable AI agents to orchestrate deliveries through Jentic by discovering quote and delivery operations via intent search. Agents can quote, create, track, and cancel deliveries without manual API documentation review. Jentic provides operation schemas with required fields and handles Basic auth credential injection, enabling delivery logic in agent workflows within minutes.

Example prompt: Search Jentic for 'create an on-demand delivery', load the Postmates create delivery schema, and execute with pickup and dropoff addresses to dispatch a courier

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/customers/{customer_id}/delivery_quotes` | Create a delivery quote with fee and ETA |
| POST | `/customers/{customer_id}/deliveries` | Create a new on-demand delivery |
| GET | `/customers/{customer_id}/deliveries` | List all deliveries for a customer |
| GET | `/customers/{customer_id}/deliveries/{delivery_id}` | Get delivery details and courier status |
| POST | `/customers/{customer_id}/deliveries/{delivery_id}/cancel` | Cancel a delivery before pickup |
| POST | `/customers/{customer_id}/deliveries/{delivery_id}/return` | Return a delivery to pickup location |

## Key resources

- **Delivery Quotes** — Get fee estimates and ETAs for deliveries between two locations
- **Deliveries** — Create, list, retrieve, cancel, and return on-demand deliveries with courier tracking

## Why Jentic

- **Setup:** Wiring the Postmates Delivery API by hand means encoding your API key into HTTP Basic auth against api.postmates.com/v1, then tracking quote and delivery ids across calls yourself. Through Jentic you install once, import the Postmates Delivery API from the API Directory, store the API key once, and your agent calls it.
- **Permission scoping:** Postmates puts the customer id in the URL path (`/customers/{customer_id}/...`), so a rule can pin your agent to one customer account: it can quote and create deliveries for that customer and nothing else. You choose the operations it may call, so cancelling or returning a delivery is not included unless you add it.
- **Credential handling:** Your Postmates API key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'create an on-demand delivery' or 'get a delivery quote', and Jentic returns the matching Postmates operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **ShipEngine API** — Multi-carrier shipping API with label generation, rate comparison, and package tracking
- **AfterShip API** — Multi-carrier shipment tracking with delivery status notifications
- **DHL Shipment Tracking API** — Global parcel and freight tracking across DHL divisions

## FAQ

### Why is there no official OpenAPI spec for Postmates Delivery API?

Postmates does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Postmates Delivery API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Postmates Delivery API use?

The Postmates API uses HTTP Basic authentication with your API key as the username and an empty string as the password. Through Jentic, these credentials are stored encrypted in the vault and agents receive scoped access without handling raw keys.

### Is the Postmates API still active or has it been deprecated?

Postmates was acquired by Uber in December 2020 and the original API has been deprecated. The successor is Uber Direct. However, the Jentic spec documents the original v1 interface which may still function for existing integrations or serve as reference for migration to Uber Direct.

### What are the rate limits for the Postmates Delivery API?

The API enforces per-account rate limits. Delivery quotes expire after a short period (typically 5 minutes), so quote creation should happen close to delivery creation time. Specific rate thresholds depend on your account agreement with Postmates.

### How do I create a delivery through the Postmates API using Jentic?

Install the SDK with pip install jentic, then search for 'create an on-demand delivery'. Jentic returns the POST `/customers/{customer_id}/deliveries` operation with its required fields including manifest, pickup_name, pickup_address, pickup_phone_number, dropoff_name, dropoff_address, and dropoff_phone_number. Execute to dispatch a courier.

### Can I cancel a delivery after it has been picked up?

No. The POST `/customers/{customer_id}/deliveries/{delivery_id}/cancel` endpoint only works before the courier picks up the items (status is pending or pickup). After pickup, you can use the return endpoint to send items back to the origin location instead.

### Can I limit what my agent is allowed to do with the Postmates Delivery API?

Yes. Because you run Jentic One yourself, your own rules decide which Postmates operations and credentials your agent may use. Since Postmates carries the customer id in the URL path, you can pin the agent to a single customer account and grant only the operations you want, such as getting delivery quotes and creating deliveries while leaving cancel and return out. The agent can only call the endpoints you have explicitly allowed, and your API key is injected at execution time rather than exposed to it.
