Vinterior API

The UK's antiques and vintage market, as filterable data

Vinterior is the UK's curated marketplace for vintage, antique and design furniture, lighting, art and decor, and this API reads it as JSON with no account and no key.

no credit card1,000 free credits · instant API key · pay by card or crypto
Missing a Vinterior endpoint, or need a source we don't have yet?Contact us real people · same-day reply.
V
/vinterior/v1

7 active endpoints, on 1, 2 and 3 credit tiers.

  • POST/vinterior/v1/search
  • POST/vinterior/v1/detail
  • POST/vinterior/v1/delivery
  • POST/vinterior/v1/facets
  • POST/vinterior/v1/categories
  • POST/vinterior/v1/suggest
  • POST/vinterior/v1/seller

What Vinterior endpoints does ReefAPI ship?

7 live read endpoints. Read-only data API: no writes, no account actions, no dashboard access on the target site.

7 endpoints

search

2 cr

Search Vinterior's 438,968 live vintage, antique and design pieces.

required
—
optional
query, category, period, decade, style, material, color, designer, brand, condition, ships_from, feature, seller, min_price, max_price, on_sale, free_uk_delivery, professional_seller, min_width, max_width, min_height, max_height, min_depth, max_depth, sort, page, page_size

detail

3 cr

One live listing in full, from its own page.

required
id
optional
—

delivery

3 cr

The delivery price of one live listing to ONE destination.

required
id, destination
optional
—

facets

1 cr

Counts per value for any of the source's facets.

required
facet
optional
max_values, query, category, period, decade, style, material, color, designer, brand, condition, ships_from, feature, seller, min_price, max_price, on_sale, free_uk_delivery, professional_seller, min_width, max_width, min_height, max_height, min_depth, max_depth

categories

1 cr

The source's own category tree (9 roots, 266 paths) with the live number of listings in each,…

required
—
optional
root

suggest

1 cr

Search suggestions from the site's own suggestion index (14,869 phrases), with how popular ea…

required
query
optional
page_size

seller

2 cr

One seller's live inventory.

required
id
optional
sort, page, page_size

Every parameter, every allowed value →

Vinterior API

7 of 7 endpoints, ready to run

View docs ↗

Find vintage and antique pieces by period, maker, material, size and GBP price

2 credits0 required · 10 optional
POST/vinterior/v1/search
idle
// Press "Try it" and this pane shows exactly what the
// live site returned this second — including an empty
// result, if that is the truth. No key, no account.

How the Vinterior API works

Vinterior is a normal ReefAPI surface — the same four rules that hold for every other engine on the key.

01
Authenticate
x-api-key header

No OAuth app, no request signing, no per-site account. One key covers all 491 engines.

02
Call
POST /vinterior/v1/…

Every route is a POST with a JSON body. Parameters are validated against the published schema before anything is charged.

03
Pay
1 or 2 or 3 credits per call

Credits, not seats. Failed and blocked calls are never charged, and cache hits cost nothing.

04
Read
{ ok, data, meta, error }

One envelope everywhere. meta carries latency_ms, record_count and the endpoint that answered.

Price a vintage piece against the live UK market

Vinterior keeps only live listings, so there are no sold prices to read. What you can read is the live market around a piece, delivered to where the buyer is - in three calls.

01facets { facet: ["period", "material", "brand"], category: ["Furniture > Storage > Sideboards"] }
POSTfacets { facet: ["period", "material", "brand"], category: ["Furniture > Storage > Sideboards"] }

The minimum, maximum and average GBP price in that exact category, and which periods, materials and makers actually occur in it. Use the values exactly as returned; an unknown value is rejected with the closest ones.

02search { category: ["Furniture > Storage > Sideboards"], period: ["Mid 20th Century"], material: ["Teak"], max_price: 3000, sort: "price_asc", page_size: 24 }
POSTsearch { category: ["Furniture > Storage > Sideboards"], period: ["Mid 20th Century"], material: ["Teak"], max_price: 3000, sort: "price_asc", page_size: 24 }

The comparable pieces themselves, cheapest first, each with its centimetre dimensions, decade, maker, the country it ships from and its dealer. total is exact.

03delivery { id: "1043739", destination: "United Kingdom - Greater London" }
POSTdelivery { id: "1043739", destination: "United Kingdom - Greater London" }

What it costs to get one of them to the buyer's destination, and whether that is the destination's own quote, the fixed UK price or a quote on request. One call per destination.

A price band you can defend: what comparable pieces are asking today in GBP, how many there are, where they ship from and what delivery adds - with the exact total and no converted currency.

request
curl -X POST https://api.reefapi.com/vinterior/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"query":"sideboard","period":["Mid 20th Century"],"ships_from":["United Kingdom"],"max_price":3000,"page_size":24}'
response envelope
{
  "ok": true,
  "data": { … },
  "meta": {
    "api": "vinterior",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": …,
    "record_count": …
  },
  "error": null
}

What a Vinterior field actually contains

Fields that read differently from how they look, and the limits worth knowing before you build on them. Every row was measured against live Vinterior pages on 2026-10-14, including the ones that went against us.

FieldWhat it holds
price_gbp and currencyGBP is Vinterior's only native currency, on every market. The site's euro and dollar prices are a display conversion of the GBP figure at one site-wide rate: on 6 listings read in all three currencies in the same minute, every euro figure was GBP x 1.2077 and every dollar figure GBP x 1.3511, for the item and the delivery alike, and the French and Dutch storefronts print the same converted euro number. So this API returns GBP and never a converted price.
price_gbp vs price_shownTwo different numbers on discounted pieces, and both are returned. price_gbp is the price the source stores and the basket uses, to the penny: a 15% cut on a 935 GBP sideboard is 794.75. price_shown is what the page prints, rounded to the whole pound: 795. The page's own structured data also says 795. On 14 listings across seven categories, price_gbp matched the stored price 14 of 14 and price_shown matched the page 14 of 14.
list_price_gbp, sale_price_gbp, discount_pctlist_price_gbp is the asking price before any cut; sale_price_gbp and discount_pct are filled only when the piece is on sale (64,664 of 438,968 on 2026-10-14). The discount is the source's own figure.
dimensions_cmWidth, height and depth in centimetres as three separate numbers, the source's own units. A dimension the dealer left blank is null, never 0 - and a maximum-size filter never admits a blank one. Depth is the field most often missing: filled on 29 to 49 of 50 newest listings depending on the department.
period, decade, designer, brandAs the dealer catalogued them. The source stores 'Unknown' as a value for each - designer on 115,972 listings, brand on 120,538, decade on 73,293, period on 53,436 - and this API returns those as null rather than as a word. Designer and brand are naturally sparse: 0 to 8 of 50 newest listings per department name a designer.
condition and wear_conditioncondition is the source's group: Used 388,046, Refurbished 38,761, New 11,428. wear_condition is the finer grade on the piece's own page (Good, Excellent ...) and comes back from detail, together with the dealer's free-text condition report where they wrote one.
delivery destinationsThe 23 destinations the listing page itself offers: the 12 UK regions, Belgium, France, Germany, Hungary, the Republic of Ireland, Italy, the Netherlands, Spain, the United States, the rest of continental Europe and the rest of the world. One call prices one destination, and the answer says where its price came from: the destination's own quote, the piece's fixed UK delivery price (which the page applies to every mainland UK region without its own quote), or 'Request a quote', which is common outside the UK. Nothing depends on where the call is made from: the same piece requested from five different countries returned an identical price and an identical delivery quote.
price_includes_import_taxesTrue when the page states that the price includes import taxes, which it does for pieces shipping from EU-based dealers. Whether a buyer outside the UK pays a different amount is not published on the listing.
sellerThe dealer's trading name, slug, whether they are a professional dealer, and on detail their rating, review count with the five-to-one star breakdown, sales count and the year they joined. For the 9,881 listings from private sellers the name is the one Vinterior's own search data carries, while the listing page itself prints 'Private Seller' - detail returns that label separately in seller.kind_label.
total and pagingtotal is the source's exact count for the query, and every row of it is reachable: 438,968 rows at 48 per page end on page 9,146, and a page past the end comes back empty rather than repeating the last one. has_more says when to stop.

Measured 2026-10-14 on live Vinterior responses. Sold pieces are not available: the source keeps only live listings, and a sold or withdrawn piece answers not found.

Markets, currency, delivery and ids - measured

The questions a marketplace API has to answer, each checked against live Vinterior pages on 2026-10-14.

Which pieces

438,968 live listings: Furniture 134,340, Art 106,824, Home Decor 106,339, Lighting 64,412, Textiles 16,893, Home Fixtures 7,211, Garden Decor 1,938, Garden Furniture 937, Garden Lighting 75 - 266 category paths in all.

Where they ship from

37 countries: United Kingdom 196,790, France 43,223, Italy 42,986, Netherlands 24,758, Germany 23,457, Belgium 20,408, Denmark 11,851, Czechia 11,813, Poland 11,685, Spain 10,133 and 27 more. ships_from filters on where the piece is, not on a delivery destination.

Is the currency pinned

Yes - GBP. The site's euro and dollar prices are the GBP price at one site-wide rate (1.2077 and 1.3511 on 2026-10-14), and its French and Dutch storefronts show the same converted figure. This API never returns a converted number.

Does anything depend on where the call comes from

No, and it was measured. The same piece requested from five different countries returned the same price, the same currency, the same default destination and an identical delivery quote. Each delivery row is stamped with the destination it prices.

Are prices checked

On 14 listings across seven categories, the stored price, list price, printed price, the page's structured-data price, all three dimensions, the period, the dealer and the id matched the piece's own page on 196 of 196 checks.

Is the total exact

Yes, and every row is reachable by paging; a page past the end is empty, never a repeat.

Is there price history

No. The source keeps only live listings, so a sold or withdrawn piece answers not found.

What people build with Vinterior

The jobs this data is most often used for.

7

endpoints

1/2/3

credits per call

01

Source stock for an interior project with real constraints: a Mid Century Modern sideboard under 220 cm wide, in teak, under 3,000 GBP, shipping from the UK, with the delivery price to the client's region.

02

Price a piece before buying or listing it: facets for the minimum, maximum and average GBP price inside the same category, period and material, then search for the closest live comparables.

03

Track a maker or designer across the market - every live Ercol, G Plan or Hans J Wegner piece with its price, condition, decade and dealer.

04

Monitor dealers: a dealer's full live stock, its split by department and period, and its price range, refreshed as often as you need.

What Vinterior data costs

The cheapest call here is 1 credit, so $15/mo (Pro) buys 10,000 of them — $1.50 per 1,000 credits. Credits roll over and never expire, and failed or blocked calls are not charged.

Full pricing →
$0.67–$1.50 / 1,000 credits
  • 1,000 free credits on signup, no card
  • One key, all 491 APIs, one credit pool
  • Failed and blocked calls are never charged
  • Credits roll over and never expire

Call it in two lines

Sign up, get 1,000 credits and one key that works on every engine. Then this is the whole protocol.

curl
curl -X POST https://api.reefapi.com/vinterior/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"query":"sideboard","period":["Mid 20th Century"],"ships_from":["United Kingdom"],"max_price":3000,"page_size":24}'
python
import requests

r = requests.post(
    "https://api.reefapi.com/vinterior/v1/search",
    headers={"x-api-key": REEF_KEY},
    json={
  "query": "sideboard",
  "period": [
    "Mid 20th Century"
  ],
  "ships_from": [
    "United Kingdom"
  ],
  "max_price": 3000,
  "page_size": 24
},
)
print(r.json()["data"])
FAQ

Have a question? We got answers.

The questions people actually ask before wiring up Vinterior.

Get a free key →
Do I need a Vinterior account or key?▾

No. Everything this API returns is on Vinterior's public pages: listings, the category tree, filter values, dealer storefront stock, search suggestions and the delivery prices the listing page shows. Nothing behind a login is read.

Can I filter by period, decade, maker and material instead of by keyword?▾

Yes. search takes the source's own values for period (6), decade, style (34), material (106), colour (34), designer (3,742) and maker (454), plus condition, features, country shipped from, GBP price, sale, free UK delivery and width, height and depth in centimetres. An unknown value is rejected with the closest values the source does use, instead of silently returning nothing.

Which currency are prices in?▾

GBP, always. Vinterior's euro and dollar prices are the GBP price converted at one site-wide rate (measured 1.2077 and 1.3511 on 2026-10-14), so GBP is the only figure the source itself sets.

Why do price_gbp and price_shown differ by a few pence?▾

On discounted pieces the source stores the exact discounted price (794.75) and the page prints it rounded to the pound (795). Both are returned so you can use whichever you need; neither is presented as the other.

How do I get the delivery cost?▾

detail returns the piece's fixed UK delivery price and the Greater London quote. delivery returns the price to one destination per call - any of the 23 the page offers - and says whether it is the destination's own quote, the fixed UK price or 'Request a quote'. For several destinations, make one call each.

Can I get sold prices?▾

No. Vinterior keeps only live listings in its catalogue, so there are no sold comparables to read; a sold or withdrawn piece answers not found. For a live price band use facets, which returns the minimum, maximum and average GBP price for any scope search accepts.

How many results can I page through?▾

All of them. total is exact, every row is reachable, and a page past the end comes back empty with has_more false - it never repeats the last page.

Who are the sellers?▾

Mostly professional dealers: 429,087 of 438,968 listings on 2026-10-14. Rows carry the dealer's trading name and slug; seller returns a dealer's whole live stock with its split by department and period, and detail adds the rating, star breakdown, sales count and joining year.

What is the Vinterior API?▾

Vinterior API is a ReefAPI endpoint group for the uk's vintage, antique and design marketplace: 438,968 live pieces from dealers in 37 countries, with period, decade, style, maker, designer, material and centimetre dimensions as their own fields, prices in gbp and delivery per destination. It returns live JSON through POST requests under /vinterior/v1.

Is the Vinterior API free to try?▾

Yes. ReefAPI starts with 1,000 free credits, no card required. Vinterior calls use the same shared credit balance as every other ReefAPI engine.

Do I need a Vinterior login or account?▾

No login to Vinterior is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.

How fresh is the Vinterior data?▾

The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the Vinterior API use?▾

Vinterior actions currently cost 1-3 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.

Can I call Vinterior from an AI assistant or MCP client?▾

Yes. Connect ReefAPI once through MCP and your assistant can call vinterior actions with the same key, credit pool and JSON envelope used by normal REST requests.

Need something this API does not do?

Name the endpoint, the field, or a source we do not carry yet. We ship new APIs every week and you would be first to get the key. Real people read every message and reply the same day.

0/4000

No account needed · we reply from [email protected]

Try it on your own data before you pay anything

The call above is the real endpoint, not a recording. A free key gives you 1,000 credits, the other 490 APIs, and the same envelope everywhere.

Endpoints, parameters and credit costs on this page are read from the live catalog and cannot drift from what the API accepts. Field notes were captured on 2026-10-14.