Search Polish classifieds.
Searches Sprzedajemy.pl, the Polish classifieds site, like its results page: title, price in zloty, the price-is-negotiable flag, seller type (private or company), place, and the listing link. First results page only (about 30 listings). Returns an empty list when nothing matches.
- Site
- Sprzedajemy.pl, Poland
- Version
- v1
- Runs, last 7 days
- No reports yet
- sha256
- 7cdae94f7dea…
Run it with your agent
after installing WieldAsk in plain words. Your agent finds this recipe and calls it:
“Search Polish classifieds.”
Read-only: it changes nothing on the site. No login needed.
{ "tool": "run", "arguments": { "recipe_id": "sprzedajemy.pl/search-listings", "params": { "query": "rower" } } }
Requests
sent from your browser, in order- 1GET/szukaj?inp_text&sourceResults page /szukaj?inp_text=<query>, the same page the site's search opens. Read-only GET, server-rendered. Each offer is an article.element card: title and link in h2.title a, price in span.price, place in a.location.
Parameters
from your agentquerystringrequiredWhat to look for, e.g. 'rower', 'meble', 'telefon'
Returns
to your agentlistingsobject[]place, price_negotiable, price_pln, seller_type, title, url
querystring
Where it can send
- sprzedajemy.pl
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://sprzedajemy.pl/')]) == length(output.listings)
- length(output.listings[?title != `null`]) == length(output.listings)
Raw recipe
Served as canonical JSON from /api/v1/recipes/sprzedajemy.pl/search-listings, so its sha256 matches the ETag and the index.
Check it yourself
curl -s https://wield.run/api/v1/recipes/sprzedajemy.pl/search-listings | shasum -a 256 # 7cdae94f7deae24df1920ab5b823f935abf25391cdfb5b0ea13c8b8696894145
sprzedajemy.pl/search-listings.json, v1
{ "description": "Searches Sprzedajemy.pl, the Polish classifieds site, like its results page: title, price in zloty, the price-is-negotiable flag, seller type (private or company), place, and the listing link. First results page only (about 30 listings). Returns an empty list when nothing matches.", "effect": "read", "id": "sprzedajemy.pl/search-listings", "keywords": [ "sprzedajemy", "sprzedajemy.pl", "ogłoszenia", "ogłoszenia drobne", "sprzedaż", "kupno", "rower", "meble", "telefon", "używane", "classifieds", "second hand", "poland", "marketplace" ], "output": { "schema": { "properties": { "listings": { "items": { "properties": { "place": { "type": [ "string", "null" ] }, "price_negotiable": { "type": "boolean" }, "price_pln": { "type": [ "number", "null" ] }, "seller_type": { "description": "As the site labels it, e.g. 'OSOBA PRYWATNA' (private seller)", "type": [ "string", "null" ] }, "title": { "type": "string" }, "url": { "type": "string" } }, "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://sprzedajemy.pl', href]), price_pln: (price && to_number(replace(replace(replace(replace(price, ' ', ''), ' ', ''), 'zł', ''), ',', '.'))) || `null`, price_negotiable: negotiable != `null`, seller_type: seller || `null`, place: place || `null`}}" }, "params": { "additionalProperties": false, "properties": { "query": { "description": "What to look for, e.g. 'rower', 'meble', 'telefon'", "maxLength": 100, "minLength": 2, "type": "string" } }, "required": [ "query" ], "type": "object" }, "provenance": { "method": "har", "notes": "GET /szukaj?inp_text=<query>&source=opensearch (the site's own search page, server-rendered, first page of about 30 offers). Each offer is an article.element: title and href from h2.title a, price from span.price (text such as '2 000 zł'), seller label and place from the offer card. The site redirects www. to the bare host, so the bare host is the origin. Featured or highlighted offers are not filtered.", "recorded_at": "2026-11-08T12:10:00.000Z", "recorded_by": "wield-forge (claude-haiku agent)" }, "requires_login": false, "schema": "https://wield.run/schema/recipe/v1.json", "site": { "country": "PL", "id": "sprzedajemy.pl", "language": "pl", "name": "Sprzedajemy.pl", "origin": "https://sprzedajemy.pl", "origins": [ "https://sprzedajemy.pl" ] }, "steps": [ { "description": "Results page /szukaj?inp_text=<query>, the same page the site's search opens. Read-only GET, server-rendered. Each offer is an article.element card: title and link in h2.title a, price in span.price, place in a.location.", "expect": { "content_type": "html", "status": [ 200 ] }, "extract": { "html_items": { "listings": { "fields": { "href": { "attr": "href", "selector": "h2.title a" }, "negotiable": { "selector": "div.price-is-negotiable" }, "place": { "selector": "a.location" }, "price": { "selector": "span.price" }, "seller": { "selector": "span.seller-type-info__label" }, "title": { "selector": "h2.title a" } }, "max": 60, "selector": "article.element" } } }, "id": "search", "request": { "headers": { "Accept": "text/html" }, "method": "GET", "query": { "inp_text": "{{params.query}}", "source": "opensearch" }, "url": "/szukaj" } } ], "task": "Search Polish classifieds", "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://sprzedajemy.pl/')]) == length(output.listings)", "length(output.listings[?title != `null`]) == length(output.listings)" ], "example_params": { "query": "rower" }, "max_ms": 5000 }, "version": 1 }