Search used cars.
Searches Bytbil.com used cars like its search page for free text (make, model, equipment): title, price in SEK, year, mileage in Swedish mil, location and listing link, in the page's order. First page of results (about 24 cars, passenger cars only). Returns an empty list when nothing matches.
- Site
- Bytbil, Sweden
- Version
- v1
- Runs, last 7 days
- No reports yet
- sha256
- 3cb30d05723b…
Run it with your agent
after installing WieldAsk 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": "bytbil.com/search-used-cars", "params": { "query": "volvo xc60" } } }
Requests
sent from your browser, in order- 1GET/bil?FreeText&VehicleTypeServer-rendered car search /bil?FreeText=<query>&VehicleType=bil (the page's own search form); read-only GET. Each car is a div with data-model-id; its heading link has the title and href, the price is the nested span text.
Parameters
from your agentquerystringrequiredMake, model or equipment, e.g. 'volvo xc60', 'volkswagen golf', 'tesla model y'
Returns
to your agentcarsobject[]id, price_sek, title, url
querystring
Where it can send
- www.bytbil.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.cars) > `0`
- length(output.cars[?price_sek > `0`]) > `0`
- length(output.cars[?starts_with(url, 'https://www.bytbil.com/')]) == length(output.cars)
- length(output.cars[?title != `null`]) == length(output.cars)
Raw recipe
Served as canonical JSON from /api/v1/recipes/bytbil.com/search-used-cars, so its sha256 matches the ETag and the index.
Check it yourself
curl -s https://wield.run/api/v1/recipes/bytbil.com/search-used-cars | shasum -a 256 # 3cb30d05723be5886cfdabde19cd325c8584ec81541e8391ba1af97c71819580
bytbil.com/search-used-cars.json, v1
{ "description": "Searches Bytbil.com used cars like its search page for free text (make, model, equipment): title, price in SEK, year, mileage in Swedish mil, location and listing link, in the page's order. First page of results (about 24 cars, passenger cars only). Returns an empty list when nothing matches.", "effect": "read", "id": "bytbil.com/search-used-cars", "keywords": [ "bytbil", "bytbil.com", "begagnade bilar", "bil", "bilar", "personbil", "till salu", "volvo", "used cars", "cars", "sweden", "sverige", "car dealers" ], "output": { "schema": { "properties": { "cars": { "items": { "properties": { "id": { "type": [ "string", "null" ] }, "price_sek": { "type": [ "number", "null" ] }, "title": { "type": "string" }, "url": { "type": "string" } }, "required": [ "title", "url" ], "type": "object" }, "type": "array" }, "query": { "type": "string" } }, "required": [ "query", "cars" ], "type": "object" }, "value": "{query: params.query, cars: map(&{id: id || `null`, title: title, price_sek: (price && to_number(trim(replace(replace(replace(price, 'kr', ''), ' ', ''), ' ', '')))) || `null`, url: (href && join('', ['https://www.bytbil.com', href])) || `null`}, steps.search.cars[?href != `null` && title != `null`] || `[]`)}" }, "params": { "additionalProperties": false, "properties": { "query": { "description": "Make, model or equipment, e.g. 'volvo xc60', 'volkswagen golf', 'tesla model y'", "maxLength": 100, "minLength": 2, "type": "string" } }, "required": [ "query" ], "type": "object" }, "provenance": { "method": "har", "notes": "One GET to /bil?FreeText=<query>&VehicleType=bil, the site's own search form (FreeText is the free-text field). The page is server-rendered; each car is a div[data-model-id] with a heading link (title, href) and a price in a nested span ('374 800 kr', non-breaking spaces). The site's /sok path is not used. Hashed classes avoided.", "recorded_at": "2026-11-08T15:32:29.000Z", "recorded_by": "wield-forge (claude-haiku agent)" }, "requires_login": false, "schema": "https://wield.run/schema/recipe/v1.json", "site": { "country": "SE", "id": "bytbil.com", "language": "sv", "name": "Bytbil", "origin": "https://www.bytbil.com", "origins": [ "https://www.bytbil.com" ] }, "steps": [ { "description": "Server-rendered car search /bil?FreeText=<query>&VehicleType=bil (the page's own search form); read-only GET. Each car is a div with data-model-id; its heading link has the title and href, the price is the nested span text.", "expect": { "content_type": "html", "status": [ 200 ] }, "extract": { "html_items": { "cars": { "fields": { "href": { "attr": "href", "selector": "h3 a" }, "id": { "attr": "data-model-id", "selector": ":scope" }, "price": { "selector": "span > span > span" }, "title": { "selector": "h3 a" } }, "max": 60, "selector": "div[data-model-id]" } } }, "id": "search", "request": { "headers": { "Accept": "text/html" }, "method": "GET", "query": { "FreeText": "{{params.query}}", "VehicleType": "bil" }, "url": "/bil" } } ], "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.cars) > `0`", "length(output.cars[?price_sek > `0`]) > `0`", "length(output.cars[?starts_with(url, 'https://www.bytbil.com/')]) == length(output.cars)", "length(output.cars[?title != `null`]) == length(output.cars)" ], "example_params": { "query": "volvo xc60" }, "max_ms": 5000 }, "version": 1 }