Offers + Checkout

One checkoutfor every store.

Paste any product link, get a live price. Create a checkout and Harbor builds the real cart at the store, applies the user's limits to the real total, and tells your agent exactly what to do next.

Get API keys Read the guide
chk_6r1i4d22 · Allbirds

Offers first.A live price and stock, from any product link.

POST /v1/offers
curl https://www.useharbor.io/v1/offers \
  -H "Authorization: Bearer $HARBOR_KEY" \
  -H "content-type: application/json" \
  -d '{"url":"https://allbirds.com/products/womens-dasher-nz-blizzard-deep-navy"}'
201 · 396 ms
{
  "merchant_id": "allbirds",
  "title": "Women's Dasher NZ - Blizzard/Deep Navy",
  "price": { "amount": 14000, "currency": "USD" },
  "availability": "in_stock",
  "item_ref": "gid://shopify/ProductVariant/41271218896976",
  "expires_at": "…15 minutes from now"
}

A real response from a real store. Try it yourself on the home page, no key needed.

Your code doesn't change when the store does.One schema, every route.

platform stores

Straight from the store

Shopify, BigCommerce and Wix stores answer through their own agent checkout, with their real shipping and tax.

major retailers

In the user's browser

Target, Best Buy and The Home Depot run through Harbor for Chrome, in the user's own account.

everyone else

An AI browser

WooCommerce, Magento and custom stores, coming soon. Same endpoints, same statuses.

typed next actions

Your agent always knows what to do next.

When a checkout can't finish on its own, it says why and who has to act, in a field your code can switch on.

  • confirm: over the user's limit or the price moved. Show them the link.
  • user_input: the store needs an address, or sent a code.
  • redirect_to_merchant: one tap on the store's own checkout page.
  • on_device: the user's browser is preparing the order.
checkout.requires_user_action
{
  "status": "requires_user_action",
  "requires_user_confirmation": true,
  "next_action": {
    "type": "confirm",
    "url": "https://www.useharbor.io/confirm/chk_…",
    "description": "The price changed since the offer; the user must confirm the new total."
  }
}

Guarantees, not guidelines.Enforced by Harbor on every checkout.

01

Real totals

Rules are checked against the store's final number, with shipping and tax.

02

No surprise prices

If the price moved since the offer, the user confirms the new one.

03

The user's limits

Nothing is placed over what they allowed, per order or per day.

04

The final tap

At major retailers, Place order is always the user's.

Test every outcomein the sandbox.