---
title: "Price a basket and get a checkout URL"
method: POST
path: "/api/agent/v1/quote"
---

# Price a basket and get a checkout URL

`POST /api/agent/v1/quote`

## Request

- Base URL: `https://essentras.com`
- URL: `https://essentras.com/api/agent/v1/quote`
- Auth: one of:
  - none
  - HTTP bearer

Public. With an API key (catalog:read) the quote is at the caller's own prices and its total is exactly what POST /orders would take from the wallet; the response then carries an order block instead of a checkout URL.

## Request body

- object
  - `items` object[], required
    - `id` string, required: Outlet id. Each outlet can be bought once per order, so there is no quantity.

## Response `200`

A priced basket

- object
  - `line_items` object[]
  - `unavailable` string[]: Requested ids that are not buyable; excluded from the total.
  - `truncated` string[]: Ids dropped because the basket exceeded 30 outlets.
  - `warnings` string[]
  - `subtotal` number
  - `discount` object: Public volume tier applied: 3+ placements 10% off, 5+ 15% off. Reseller quotes get no volume discount unless the account allows it (volume_tiers_apply on GET /me).
  - `total` number: Final amount the buyer is charged, discounts included.
  - `currency` string
  - `billing_trigger` string
  - `checkout_url` string, nullable: Give this to the buyer to approve and pay.

---

[API](https://skmtc.dev/essentras/apis/essentras-agent-api.md) · [All operations](https://skmtc.dev/essentras/apis/essentras-agent-api/llms.txt) · [OpenAPI document](https://skmtc.dev/essentras/apis/essentras-agent-api/revisions/17a4d739e1b1?raw)
