Get Checkout Addresses
Retrieve guest / the authenticated customer's checkout saved addresses so they can select one as their shipping or billing address during checkout. This endpoint returns previously saved addresses — it does not create new ones.
Endpoint
GET /api/shop/checkout-addressesRequest Headers
| Header | Required | Description |
|---|---|---|
Accept | Yes | application/json |
X-STOREFRONT-KEY | Yes | Your storefront API key |
Authorization | Yes | The cart's own token as a Bearer token, or a logged-in customer's token. |
Response Fields (200 OK)
A bare array of the addresses saved on this cart — typically two entries, the billing one and the shipping one, told apart by addressType. This is not the customer's address book; that is Get Customer Addresses.
| Field | Type | Description |
|---|---|---|
id | integer | Address record ID. |
addressType | string | cart_billing or cart_shipping. |
firstName / lastName / name | string | Recipient. name is the two joined. |
address | string | Street address. Note the read returns address, while the save call takes billingAddress / shippingAddress. |
city / state / country / postcode | string | Location. |
email / phone | string | Contact details. |
companyName / vatId / gender | string | Optional details, null when not supplied. |
defaultAddress / useForShipping | boolean | Flags carried on the row; both read false on a cart address regardless of the useForShipping sent when saving. |
parentAddressId | integer | The address-book entry this was copied from, null when typed in at checkout. |
orderId | integer | null until the cart becomes an order. |
additional | object | Extra stored data, usually null. |
createdAt / updatedAt | string | ISO 8601 timestamps. |
Before the address step runs, the response is [].
Use Cases
- Re-render the checkout review step — read both addresses back after a page reload without re-asking the shopper.
- Confirm "ship to billing" took effect — with
useForShippingsent astrue, two rows come back holding the same details.
Best Practices
- Split the array by
addressType— both rows live in one list, so a page rendering[0]as billing will be wrong whenever the order differs. - Do not read
useForShippingfrom this payload — it reflects the stored row, not the flag you sent, and isfalseon both rows. - Treat
[]as "step not done" — it is a normal state before the address is saved, not an error.
Related Resources
- Set Shipping Address — the same call with a separate delivery address
- Set Billing Address — save both checkout addresses in one call
- Get Shipping Methods — the rates available for the saved address
This endpoint returns only the addresses attached to the current checkout, one row per type. It is not the customer's address book — read that with Get Customer Addresses.

