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_keyThe 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"
}
]
}| Field | Required | What it does |
|---|---|---|
| model_number | required | The manufacturer model number. We match it against the ApplianceIQ catalog — dashes and spacing don't matter. |
| price | required | Regular price in CAD (numbers only, no currency symbol). Must be positive. |
| sale_price | optional | Current sale price, if the model is on sale. Shown as the live price when present. |
| availability | optional | One of in_stock, out_of_stock, preorder, backorder. Anything else is stored as unknown. |
| url | optional | The product page on your site. Shoppers land here — it must start with http(s). |
| currency | optional | Three-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.