LiveRecoverVYG Developer Docs
CDP REST APIAPI Reference

Customer Orders

List a single customer's order history, resolved by profile id, email, phone, Shopify customer id, or contact id, in the standard order-list contract.

GET /cdp/customers/{identifier}/orders — list a single customer's orders, resolved from the same identifier as Get Customer. The response is the exact same contract as List Orders: a normalized order list plus offset pagination — just pre-filtered to one customer.

Requires the beta:cdp-commerce permission on your brand.

Request

GET /cdp/customers/{identifier}/orders
Authorization: Bearer vyg_…

Path parameters

ParamTypeDescription
identifierstringA profile id, email, phone, Shopify customer id, or contact id — classified by shape (see Get Customer). Pass the customer.contact_id from an order here to list that customer's full history.

Query parameters

ParamTypeDefaultDescription
limitinteger25Page size, clamped to a maximum of 100.
offsetinteger0Offset; offset + limit must stay within the 10,000-row window or the request is rejected 400.

Response 200

{
	"list": [
		{
			"id": "b2c1…",
			"external_id": "4501234567890",
			"number": "1001",
			"state": "complete",
			"billing_status": "complete",
			"total": "120.00",
			"currency_code": "USD",
			"customer": { "contact_id": "c9f0…" },
			"created_at": "2026-03-02T14:21:00.000Z",
			"recovered_at": null
		}
	],
	"totalSize": 1,
	"offset": 0,
	"pageSize": 25,
	"scope": "your-shop.myshopify.com",
	"nextCursor": null
}

The envelope and each order are identical to List Orders — see Get Order for the full per-order field reference and line-item detail. Orders here include all states (not just completed), unlike the commerce.total_spend summary on Get Customer, which counts completed orders only.

A customer that resolves a profile but no local order contact returns an empty page (list: [], totalSize: 0) — never another brand's orders.

Example

curl -s "https://cdp.vyg.app/cdp/customers/alice@example.com/orders?limit=25" \
  -H "Authorization: Bearer vyg_your_key_here"

Errors

StatusWhen
400Missing identifier, or a deep offset past the result window.
401Missing or invalid credential.
403Brand not enrolled in the commerce beta (beta_not_enabled), or no connected Shopify integration (integration_not_connected).
404The customer is absent from both the profile and commerce stores — an unknown identifier or one belonging to another brand, indistinguishable by design.
405Non-GET method.

See Tenant Isolation & Scope for why cross-brand identifiers return 404 and never leak another brand's orders.

On this page