Standvirtual API

Search Portugal's biggest car marketplace with its own filters, then read any offer in full

Standvirtual (standvirtual.com) is Portugal's largest car marketplace, with about 43,600 cars online on 2026-10-15.

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

3 active endpoints. Every call is 3 credits.

  • POST/standvirtual/v1/search
  • POST/standvirtual/v1/listing
  • POST/standvirtual/v1/makes

What Standvirtual endpoints does ReefAPI ship?

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

3 endpoints

search

3 cr

Search standvirtual.com car ads the way its visitors do.

required
—
optional
make, model, series, location, query, page, sort, seller_type, condition, fuel_type, gearbox, body_type, drive, origin, vat_deductible, price_from, price_to, year_from, year_to, mileage_from, mileage_to, engine_power_from, engine_power_to, engine_capacity_from, engine_capacity_to

listing

3 cr

The full standvirtual offer from a search row's listing_id or the offer URL.

required
listing_id
optional
—

makes

3 cr

standvirtual's own make and model register with live ad counts, read from the site's filter c…

required
—
optional
make, series

Every parameter, every allowed value →

Standvirtual API

5 of 3 endpoints, ready to run

View docs ↗

Volkswagen Golf ads across Portugal

3 credits0 required · 2 optional
POST/standvirtual/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 Standvirtual API works

Standvirtual 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 549 engines.

02
Call
POST /standvirtual/v1/…

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

03
Pay
3 credit 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.

From a model name to a dated price list with every car's details

Get the slugs, filter the way the site does, page through, then read the offers that matter.

01makes?make=bmw
GET/standvirtual/v1/makes?make=bmw

BMW's series and models with live ad counts; has_submodels marks a series such as serie-3.

02search?make=bmw&series=serie-3&location=lisboa&sort=newest
GET/standvirtual/v1/search?make=bmw&series=serie-3&location=lisboa&sort=newest

Rows with price, market indicator, year, mileage, fuel, power, seller type and dealer, plus the site's total.

03search?make=bmw&series=serie-3&location=lisboa&sort=newest&page=2
GET/standvirtual/v1/search?make=bmw&series=serie-3&location=lisboa&sort=newest&page=2

Page until has_more is false.

04listing?listing_id=<listing_id>
GET/standvirtual/v1/listing?listing_id=<listing_id>

Printed price, every specification, equipment, photos, description and the seller's published location.

A dated feed of Portuguese car ads with asking prices in EUR, the site's market price rating and the dealer or private seller behind each one.

request
curl -X POST https://api.reefapi.com/standvirtual/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"make":"vw","model":"golf"}'
response envelope
{
  "ok": true,
  "data": { … },
  "meta": {
    "api": "standvirtual",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": …,
    "record_count": …
  },
  "error": null
}

What a Standvirtual field actually contains

Fields that read differently from how they look. Every row was measured against live standvirtual.com responses on 2026-10-14 and 2026-10-15.

FieldWhat it holds
listing_idThe ID… code at the end of the offer's web address (for example ID8Q0I6X). Pass it unchanged to listing. Search to listing returned the same id, price, make, model, year, mileage and power on 20 of 20 offers checked. The numeric ad_id does not open an offer.
model, seriesStandvirtual has two model levels for BMW, Mercedes-Benz, Lexus and Porsche: series is the family (Série 3, Classe C) and model is the car (320, C 220). For other makes model is the model (Golf, Clio) and series is empty. The offer page itself prints the family under the heading Modelo; this API keeps the two in fixed fields on every surface.
price, price_raw, price_is_placeholderprice is the asking price in EUR. Some private ads are published at 0 EUR as a placeholder; those return price null with price_is_placeholder true and price_raw "0", never 0 as a price.
price_printed, price_mismatchprice_printed is the price exactly as the offer page prints it ("Preço: 39 800 EUR"). price_mismatch is true when the printed and structured prices disagree; it was false on all 20 offers checked.
price_evaluationStandvirtual's own market price indicator on each search row: BELOW, IN, ABOVE or NONE when the site does not rate the ad.
mileage_km, mileage_displaymileage_km is returned only when it equals the number in the site's own printed figure ("28 000 km"), which is returned beside it.
seller.kindprivate, dealer or crosslisted, as the site publishes it. On offer pages dealers with a physical stand are published as STAND (seller.type_raw) and returned as dealer.
is_promotedtrue when the ad is a paid promoted placement in the result list. Promoted ads stay in the position the site gives them.
page_beyond_lastA page past the last one returns no rows, page_beyond_last true and the real total, instead of repeating the last page.

An offer read from Portugal and from the United States on 2026-10-14 was identical field by field, and the same search read from Portugal and from outside Portugal returned 32 of 32 rows with the same values. A make, model, series or district the site does not recognise is refused with INVALID_PARAM; the site itself would answer with every car in Portugal.

Standvirtual coverage, measured

Every number below was read from live standvirtual.com responses on 2026-10-14 and 2026-10-15, in runs of 69 calls; each run answered every call as expected.

Market

Portugal, about 43,600 cars online (43,632 on 2026-10-15), 151 makes. Prices in EUR.

Filters that bite

43,632 cars → BMW 4,614, BMW Série 3 912, BMW 320 407, VW Golf 496, Lisboa 13,167, keyword golf 681, up to 10,000 EUR 7,119, from 2020 24,326, up to 20,000 km 5,083, diesel 17,280, electric 4,736, automatic 24,121, SUV 14,070, imported 7,140, VAT deductible 8,887, private sellers 7,380, new 519.

Field fill

Over 963 search rows: year, mileage, fuel, gearbox, power, model, town and seller type on every row; price on 956 (the rest are 0 EUR placeholders); engine size on 760; version on 750; series on 233 (only BMW, Mercedes-Benz, Lexus and Porsche use it).

Price accuracy

Search to listing: same id, price, make, model, series, year, mileage, power and fuel on 20 of 20 offers; the printed price on the offer page agreed with the structured price on all 20.

Limits

Cars only (no motorcycles or vans). Districts, not towns, as a location filter. Phone numbers are not returned (published encrypted). Equipment checkboxes and electric-vehicle filters are not offered as filters.

What people build with Standvirtual

The jobs this data is most often used for.

3

endpoints

3

credits per call

01

Track asking prices of used cars in Portugal by make, model, year and mileage.

02

Compare dealer and private-seller prices for the same model and district.

03

Collect new ads every day, newest first, and read each offer in full.

04

Find under-priced cars with the site's own below-market indicator.

What Standvirtual data costs

The cheapest call here is 3 credits, so $15/mo (Pro) buys 3,333 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 549 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/standvirtual/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"make":"vw","model":"golf"}'
python
import requests

r = requests.post(
    "https://api.reefapi.com/standvirtual/v1/search",
    headers={"x-api-key": REEF_KEY},
    json={
  "make": "vw",
  "model": "golf"
},
)
print(r.json()["data"])
FAQ

Have a question? We got answers.

The questions people actually ask before wiring up Standvirtual.

Get a free key →
Do I need a Standvirtual account?▾

No. Everything is read logged out, and you call reefapi.com from anywhere.

How do I find the right make or model name?▾

Call makes. Without parameters it returns all 151 makes with live ad counts (Volkswagen is vw); with make it returns that make's models, and with make and series the models inside a series such as BMW serie-3.

Can I separate private sellers from dealers?▾

Yes, with seller_type. On 2026-10-15 the 43,632 cars split into 7,380 from private sellers and 36,252 from dealers. Every row also carries seller.kind.

Can I search one district?▾

Yes, with location: lisboa, porto, braga, aveiro, setubal, faro and the other districts. On 2026-10-15 Lisboa had 13,167 cars and BMW Série 3 in Lisboa 220.

Is there a free-text search?▾

Yes, query is applied by the site's own keyword search; on 2026-10-15 golf matched 681 cars.

Do you return the seller's phone number?▾

No. The offer page publishes phone numbers only in encrypted form, so listing returns the seller's name, dealer page, website and published location instead.

Does the price include VAT?▾

The price is the asking price the ad publishes. vat_deductible=true finds ads where VAT is deductible (8,887 on 2026-10-15), and rows carry price_is_gross as the site publishes it.

How far can I page?▾

Through the whole result set at 32 ads per page; total_results and total_pages come with every page.

What is the Standvirtual API?▾

Standvirtual API is a ReefAPI endpoint group for portugal's biggest car marketplace: used and new cars with price in eur, market price indicator, year, mileage, fuel, power and whether a dealer or a private person is selling. It returns live JSON through POST requests under /standvirtual/v1.

Is the Standvirtual API free to try?▾

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

Do I need a Standvirtual login or account?▾

No login to Standvirtual 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 Standvirtual 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 Standvirtual API use?▾

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

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

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

112 Classifieds & Second-hand APIs on the same key

One key, one credit pool, one response envelope. If you are pulling Standvirtual, you are one call away from the rest of the category — no second contract, no second integration.

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 548 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-15.