Partner push API

Push your offers to ApplianceIQ

One endpoint, one JSON body, up to 500 offers per request. Your prices go live within about 15 minutes and always link to your own product pages.

Authentication

Every request needs your API key — it starts with aiq_ and comes from your partner dashboard — sent as a bearer token:

Authorization: Bearer aiq_your_api_key

The key is shown exactly once when you generate it. Keep it server-side; if it leaks, regenerate it from the dashboard and the old key stops working immediately.

Request

POST a JSON body with an offers array — at least one offer, at most 500 per request. Bigger catalogue? Send several requests.

POST https://jdxslqmgjsuzoisuhvlc.supabase.co/functions/v1/retailer-api
Authorization: Bearer aiq_your_api_key
Content-Type: application/json

{
  "offers": [
    {
      "model_number": "WRF535SWHZ",
      "price": 1899.99,
      "sale_price": 1699.99,
      "availability": "in_stock",
      "url": "https://your-store.ca/products/wrf535swhz"
    },
    {
      "model_number": "NE63A6511SS",
      "price": 1149.00,
      "availability": "backorder"
    }
  ]
}
FieldRequiredWhat it does
model_numberrequiredThe manufacturer model number. We match it against the ApplianceIQ catalog — dashes and spacing don't matter.
pricerequiredRegular price in CAD (numbers only, no currency symbol). Must be positive.
sale_priceoptionalCurrent sale price, if the model is on sale. Shown as the live price when present.
availabilityoptionalOne of in_stock, out_of_stock, preorder, backorder. Anything else is stored as unknown.
urloptionalThe product page on your site. Shoppers land here — it must start with http(s).
currencyoptionalThree-letter code, defaults to CAD.

Response

You get a per-offer result: accepted offers go live, unmatched model numbers aren't in our catalog yet (we pick them up on the next discovery pass — no action needed), and invalid rows are missing a model number or a positive price.

{
  "store": "Your Store",
  "received": 2,
  "accepted": 1,
  "unmatched": 1,
  "invalid": 0,
  "results": [
    { "model_number": "WRF535SWHZ", "status": "accepted" },
    {
      "model_number": "NE63A6511SS",
      "status": "unmatched",
      "reason": "Model not in ApplianceIQ catalog yet — it will be added on our next discovery pass"
    }
  ],
  "errors": [],
  "note": "Accepted offers appear on ApplianceIQ within ~15 minutes and remain live for 72 hours; push at least daily to stay listed."
}

The freshness rule: push at least daily

Shoppers only see prices we can vouch for, so an offer stays live for 72 hours after your last push. Push your current prices at least once a day — a simple nightly job is plenty — and your listings never lapse.

Prefer a feed instead?

If you already maintain a Google Shopping feed, skip the API entirely: paste the feed URL into your partner dashboard and we sync it on a schedule. Same listings, zero code. See the feed requirements for the accepted formats.