Sign inTry it

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.

No reports yetRead-only, no login
Site
Bytbil, Sweden
Version
v1
Runs, last 7 days
No reports yet
sha256
3cb30d05723b…

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": "bytbil.com/search-used-cars",
    "params": {
      "query": "volvo xc60"
    }
  }
}

Requests

sent from your browser, in order
  1. 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 agent
querystringrequiredMake, model or equipment, e.g. 'volvo xc60', 'volkswagen golf', 'tesla model y'

Returns

to your agent
carsobject[]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
}