Developers › Docs › What's supported
What's supported
What the API can and can’t do, which plan includes it, browser-run marketplaces, testing, and building for other sellers.
What the API does today, what it doesn't, and the practical limits: plans, browser-run marketplaces, sandbox, and building for other sellers. Everything on this page is live. Anything not live is labelled Not available. We don't list roadmap items as features.
Capabilities
| You want to… | Status | How |
|---|---|---|
| List the marketplace accounts you can publish to | Supported | GET /accounts |
| Publish an existing product to one or more marketplaces | Supported | POST /items |
| Change a listing's price without reposting | Supported | POST /items with price on that target |
| Take listings down on chosen marketplaces | Supported | DELETE /items |
| Mark an item sold and take it down everywhere | Supported | POST /items/{vid}/mark-sold. Returns a success or failure per channel |
| Delete a product | Supported | DELETE /items/{vid} |
| Read listing state, URLs and sale info | Supported | GET /items, GET /items/{vid} |
| Get told when something sells, lists, fails or is delisted | Supported | Webhooks |
| Get told when a buyer sends a message | Supported on Depop and Vinted only | message.received webhook, carrying the text, buyer and item |
| Create a product from your own photos and details | Supported | POST /products. AI fills in anything you leave out |
| Create products in bulk from a CSV or Excel file | Supported | POST /products/import, then poll GET /products/import/{id} |
| Edit a product's title, description, photos, price or attributes | Supported | PATCH /items/{vid}. Live listings are updated too |
| Read a conversation thread or reply to a buyer | Not available | Replies are sent from the FLUF Inbox |
| Test in a sandbox | Not available | See Testing |
Where products come from
POST /items publishes a product that already exists, identified by its vid. A product can get into FLUF in three ways:
- Created through the API with
POST /products(one product) orPOST /products/import(a spreadsheet). These get afluf_…vid. - From a connected source store, such as Shopify. Pass that product's
vid(e.g.shopify_8123456789012_0) and FLUF imports it on the first publish. - Created in FLUF Connect, on the web or in the mobile app.
So the full flow for your own catalogue is: create with POST /products, then publish with POST /items.
Editing content
PATCH /items/{vid} changes the product itself: title, description, photos, price, attributes and stock. FLUF then applies the change to every listing that's up, on marketplaces that allow listings to be edited. Vestiaire Collective, for example, only accepts price reductions after listing. Per-listing results arrive as listing.updated or listing.error webhooks.
POST /items with a price is different: it sets a price for one marketplace account and leaves the product's own price alone.
Messages
Buyer messages reach you through the message.received webhook, on Depop and Vinted only. That is the same channel coverage as the FLUF Inbox. You can't list threads or send replies through the API. Messages on other marketplaces don't reach FLUF at all yet.
Marketplaces that run in the seller's browser
Some marketplaces block server-to-server traffic, so FLUF carries out the work in the seller's own signed-in browser session. GET /accounts flags these accounts with "runs_in_browser": true.
What that means for an integration:
- The API call itself works from anywhere, including from a phone. FLUF accepts the write straight away and returns
outcome: "queued". - The marketplace change only happens once a signed-in session picks it up. That means the FLUF Chrome extension on a desktop. For Vinted, Facebook Marketplace, Whatnot and Grailed, the FLUF mobile app can also do it. If neither is open and signed in to that marketplace, the work waits in the queue rather than failing.
- Confirm the result instead of assuming it. Poll
GET /items/{vid}until the listing leavespending, or wait forlisting.live,listing.rejectedorlisting.delisted.
Accounts with "runs_in_browser": false are handled entirely by FLUF's servers. No browser needs to be running.
Plans and fees
API access comes with the FLUF plan. There's no per-call fee and no separate developer tier. The plan decides what a token may do:
| Plan | API access |
|---|---|
| Starter | None |
| Seller | Read-only. The GET endpoints. Registering a webhook counts as a write |
| Pro, Super Seller | Read and write. Everything on this site, webhooks included |
A write that the plan doesn't include returns 403 with code: "api_read_only". A plan with no API access returns 403 with code: "api_not_in_plan". Both name the plan that lifts the limit. A lapsed subscription returns 403 with code: "no_active_subscription", not 401. The token is still valid, so there's no need to create a new one.
Each product you create with POST /products or POST /products/import counts towards your plan's monthly AI product creations, the same as creating one in the app. A create over the limit is refused with the reason.
Current prices are on the pricing page.
Testing
There's no sandbox. Every call acts on real marketplace accounts. To test safely:
- Create one inexpensive test product and publish it to a single account.
- Check it with
GET /items/{vid}. - Take it down with
DELETE /items, or remove it completely withDELETE /items/{vid}.
Reads (GET /accounts, GET /items) never change anything. The OpenAPI documents are public, so you can build and generate a client before you have a token.
Building for other sellers
A token belongs to one seller account and acts as that seller. There's no OAuth app flow for third parties. To serve several independent sellers, each seller:
- Holds their own FLUF plan and connects their own marketplace accounts in FLUF.
- Creates a token under More → Developers and gives it to your product.
Store each token server-side, against the seller it belongs to, and let the seller revoke it. Tokens carry the full access of that seller's plan.
If you are building a product for many sellers, email [email protected] before you start. We agree multi-seller arrangements case by case.
Something missing? Email [email protected] — we prioritise by what people actually ask for.
