Developers › Docs › API reference › Delete a product
Delete a product
Deletes the product. Different action from DELETE /items (plural), which only takes listings down off channels and keeps the product.
curl -X DELETE "https://fluf.io/wp-json/fc/api/v1/items/fluf_326428506_0" \
-H "Authorization: Bearer fluf_pat_your_token"const res = await fetch("https://fluf.io/wp-json/fc/api/v1/items/fluf_326428506_0", {
method: "DELETE",
headers: {
"Authorization": "Bearer fluf_pat_your_token",
},
});
const data = await res.json();import requests
res = requests.delete(
"https://fluf.io/wp-json/fc/api/v1/items/fluf_326428506_0",
headers={
"Authorization": "Bearer fluf_pat_your_token",
},
)
data = res.json()<?php
// composer require guzzlehttp/guzzle
$client = new GuzzleHttp\Client();
$res = $client->request('DELETE', 'https://fluf.io/wp-json/fc/api/v1/items/fluf_326428506_0', [
'headers' => [
'Authorization' => 'Bearer fluf_pat_your_token',
],
]);
$data = json_decode((string) $res->getBody(), true);{
"vid": "fluf_326428506_0",
"fluf_id": 326428506,
"deleted": true,
"delisted": [
{ "channel": "ebay", "account": "ebay:800", "listing_id": "1976…", "outcome": "ok" }
],
"still_live": []
}Delist first, then delete
FLUF takes the product down everywhere first and only deletes once every channel is confirmed down. If anything is still up — including a delist that is still queued — you get 409 with code: "still_listed" and a still_live array naming what is up, and nothing is deleted. Poll GET /items/{vid} until those clear, then repeat.
That ordering matters: deleting a product while a listing is still live leaves the listing orphaned, and it can come back as a new product.
Forcing it
Add ?force=true to delete regardless; the response then reports what was left live. Deletion is permanent.
Something missing? Email [email protected] — we prioritise by what people actually ask for.
