Sign inTry it

Search used cars.

Searches Standvirtual, the Portuguese used-car marketplace, by free text like its results page: title, url, price in euros, mileage in km, first registration year, fuel and gearbox. First results page only (about 36 listings). Returns an empty list when nothing matches.

No reports yetRead-only, no login
Site
Standvirtual, Portugal
Version
v1
Runs, last 7 days
No reports yet
sha256
f22a7dced1e1…

Run it with your agent

after installing Wield

Ask in plain words. Your agent finds this recipe and calls it:

“Search used cars.”

Read-only: it changes nothing on the site. No login needed.

{
  "tool": "run",
  "arguments": {
    "recipe_id": "standvirtual.com/search-used-cars",
    "params": {
      "query": "volkswagen golf"
    }
  }
}

Requests

sent from your browser, in order
  1. 1GET/carros/q-{{ params.query | urlencode }}Free-text results page /carros/q-<text>, the same page the site shows for a search. Read-only GET, server-rendered. Each listing is an article[data-id] card: title and link in h2 a, price in h3 span, specs in dd[data-parameter].

Parameters

from your agent
querystringrequiredMake, model or words, e.g. 'volkswagen golf', 'renault clio', 'bmw série 3'

Returns

to your agent
listingsobject[]fuel, gearbox, mileage_km, price_eur, title, url, year
querystring

Where it can send

  • www.standvirtual.com

Anything else is blocked by the extension.

Reads from your session

Nothing. Your browser attaches the site's cookies by itself.

Used only in requests to the addresses on the left. Never sent to wield.run or your agent.

Checks

a run passes when
  • length(output.listings) > `0`
  • length(output.listings[?starts_with(url, 'https://www.standvirtual.com/carros/anuncio/')]) == length(output.listings)
  • length(output.listings[?title != `null`]) == length(output.listings)

Raw recipe

Served as canonical JSON from /api/v1/recipes/standvirtual.com/search-used-cars, so its sha256 matches the ETag and the index.

Check it yourself
curl -s https://wield.run/api/v1/recipes/standvirtual.com/search-used-cars | shasum -a 256
# f22a7dced1e19c74253a1d9cf12d118ba7d088097f57bd39491f087337cda5e5
standvirtual.com/search-used-cars.json, v1
{
  "description": "Searches Standvirtual, the Portuguese used-car marketplace, by free text like its results page: title, url, price in euros, mileage in km, first registration year, fuel and gearbox. First results page only (about 36 listings). Returns an empty list when nothing matches.",
  "effect": "read",
  "id": "standvirtual.com/search-used-cars",
  "keywords": [
    "standvirtual",
    "carros",
    "carros usados",
    "automóveis",
    "usados",
    "venda",
    "portugal",
    "veículos",
    "used cars",
    "cars",
    "car marketplace",
    "volkswagen",
    "golf",
    "standvirtual.com"
  ],
  "output": {
    "schema": {
      "properties": {
        "listings": {
          "items": {
            "properties": {
              "fuel": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "gearbox": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "mileage_km": {
                "type": [
                  "integer",
                  "null"
                ]
              },
              "price_eur": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "title": {
                "type": "string"
              },
              "url": {
                "type": "string"
              },
              "year": {
                "type": [
                  "integer",
                  "null"
                ]
              }
            },
            "required": [
              "title",
              "url"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "query": {
          "type": "string"
        }
      },
      "required": [
        "query",
        "listings"
      ],
      "type": "object"
    },
    "value": "{query: params.query, listings: steps.search.listings[?title != `null` && href != `null`].{title: title, url: (starts_with(href, 'http') && href) || join('', ['https://www.standvirtual.com', href]), price_eur: (price && to_number(replace(replace(price, ' ', ''), ' ', ''))) || `null`, mileage_km: (mileage && to_number(replace(replace(replace(replace(mileage, ' ', ''), ' ', ''), 'km', ''), '.', ''))) || `null`, year: (year && to_number(year)) || `null`, fuel: fuel || `null`, gearbox: gearbox || `null`}}"
  },
  "params": {
    "additionalProperties": false,
    "properties": {
      "query": {
        "description": "Make, model or words, e.g. 'volkswagen golf', 'renault clio', 'bmw série 3'",
        "maxLength": 100,
        "minLength": 2,
        "type": "string"
      }
    },
    "required": [
      "query"
    ],
    "type": "object"
  },
  "provenance": {
    "method": "har",
    "notes": "GET /carros/q-<text> (free-text listing path, the search page the site shows for a query; /?s= returns the homepage). The HTML holds the first page of listing cards (article[data-id]). Title and href come from h2 a, price from h3 span, and mileage, year, fuel and gearbox from dd[data-parameter]. Promoted listings are not filtered. Other listings can appear in the results, such as related makes.",
    "recorded_at": "2026-11-08T12:00:00.000Z",
    "recorded_by": "wield-forge (claude-haiku agent)"
  },
  "requires_login": false,
  "schema": "https://wield.run/schema/recipe/v1.json",
  "site": {
    "country": "PT",
    "id": "standvirtual.com",
    "language": "pt",
    "name": "Standvirtual",
    "origin": "https://www.standvirtual.com",
    "origins": [
      "https://www.standvirtual.com"
    ]
  },
  "steps": [
    {
      "description": "Free-text results page /carros/q-<text>, the same page the site shows for a search. Read-only GET, server-rendered. Each listing is an article[data-id] card: title and link in h2 a, price in h3 span, specs in dd[data-parameter].",
      "expect": {
        "content_type": "html",
        "status": [
          200
        ]
      },
      "extract": {
        "html_items": {
          "listings": {
            "fields": {
              "fuel": {
                "selector": "dd[data-parameter='fuel_type']"
              },
              "gearbox": {
                "selector": "dd[data-parameter='gearbox']"
              },
              "href": {
                "attr": "href",
                "selector": "h2 a"
              },
              "mileage": {
                "selector": "dd[data-parameter='mileage']"
              },
              "price": {
                "selector": "h3 span"
              },
              "title": {
                "selector": "h2 a"
              },
              "year": {
                "selector": "dd[data-parameter='first_registration_year']"
              }
            },
            "max": 60,
            "selector": "article[data-id]"
          }
        }
      },
      "id": "search",
      "request": {
        "headers": {
          "Accept": "text/html"
        },
        "method": "GET",
        "url": "/carros/q-{{ params.query | urlencode }}"
      }
    }
  ],
  "task": "Search used cars",
  "tos": {
    "notes": "Not reviewed. One search page per call, the same page a visitor loads. The site's terms on automated access were not checked.",
    "reviewed": false
  },
  "verify": {
    "checks": [
      "length(output.listings) > `0`",
      "length(output.listings[?starts_with(url, 'https://www.standvirtual.com/carros/anuncio/')]) == length(output.listings)",
      "length(output.listings[?title != `null`]) == length(output.listings)"
    ],
    "example_params": {
      "query": "volkswagen golf"
    },
    "max_ms": 5000
  },
  "version": 1
}