Webhooks
A signed POST to your server the moment an item sells on any connected marketplace.
REST API
Read inventory and orders, and push listings to marketplaces over plain HTTPS.
MCP server
Let Claude, Cursor or any MCP client run your shop in plain language.
Why build on FLUF instead of each marketplace
Every resale marketplace has a different model of what a product is — its own categories, size systems, brand ids, condition values and photo rules. Some have no public API at all. FLUF normalises all of that behind one product shape, so you integrate once and reach every channel your account is connected to. You never handle marketplace credentials, and you don't re-do the work each time a channel changes.
Getting started
- Open Settings → Developer in FLUF Connect.
- Create an API token. It's shown once and starts with
fluf_pat_. - Send it as
Authorization: Bearer <token>.
The API is included with a FLUF plan — there's no separate developer tier.
Get notified when something sells
Register a webhook and FLUF will POST to your endpoint as sales happen:
curl -X POST "https://fluf.io/wp-json/fc/api/v1/webhooks" \
-H "Authorization: Bearer fluf_pat_your_token" \
-H "Content-Type: application/json" \
-d '{"url":"https://yourapp.example.com/hooks/fluf","events":["new_sale"]}'
Each new_sale delivery tells you what sold, where, and for how much:
{
"event": "new_sale",
"sku": "T-001",
"channel": "depop",
"price": 45.00,
"currency": "GBP",
"sold_at": "2026-07-28T14:03:11+00:00",
"title": "Vintage Levi's 501 jeans",
"order_id": "abc-123-def"
}
sku is your reference code, read from the product in FLUF —
so it matches whatever your own system already calls that item. Deliveries are
HMAC-signed, retried with backoff, and every attempt is logged so you can always
check whether one fired.
Full webhook documentation →
Events you can subscribe to
| Event | Fires when |
|---|---|
new_sale | An item sold on any connected marketplace |
new_listing | A product was created in FLUF |
listing_crosslisted | A product went live on a marketplace |
crosslisting_error | A listing attempt failed |
listing_sold_out | A product is no longer live anywhere |
oos_alert | Stock hit zero |
crosslisting_job_completed | A bulk listing run finished |
Run your shop from an AI agent
FLUF ships a Model Context Protocol server, so any MCP-compatible assistant can work your account directly. Add it to Claude Desktop, Claude Code, Cursor, Cline or anything else that speaks MCP:
{
"mcpServers": {
"fluf": {
"command": "npx",
"args": ["-y", "@fluf/mcp"],
"env": { "FLUF_API_TOKEN": "fluf_pat_your_token" }
}
}
}
Then just ask:
- “What's in stock that isn't on eBay yet? List the ten cheapest.”
- “Show me everything that sold last week and which channel it sold on.”
Source: github.com/FLUF-io/fluf-mcp