Create a price list via POST /v3/pricelists with a name; note the returned id
Bulk-create price list records via PUT /v3/pricelists/{id}/records with an array of objects each containing variant_id, price (or sale_price), currency, and bulk_pricing_tiers if needed
Assign the price list to a customer group via PATCH /v3/customer-groups/{id} setting the pricing field to reference the price_list_id, or assign it to individual customers via the customer API
Verify pricing by querying the Storefront GraphQL API or placing a test order as a customer in that group to confirm the price list overrides the base catalog price
Update individual records with PUT /v3/pricelists/{id}/records (same endpoint, idempotent upsert by variant_id + currency) — this replaces the full record for that variant
Known gotchas
Price list records are upserted by the combination of variant_id and currency — sending the same variant_id with a different currency creates a second record rather than updating the first
The bulk PUT endpoint has a per-request record limit; split large catalogs into batches and handle 429 rate limit responses with exponential backoff
A customer group can only be assigned one price list at a time; assigning a new price list to a group silently replaces the previous assignment without warning
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp