Bazos APIbazos.cz ↗
Access Bazos.cz listings via API. Search across all sections, retrieve full listing details, and browse categories with keyword, location, and price filters.
What is the Bazos API?
The Bazos.cz API provides 3 endpoints for accessing the Czech classifieds marketplace, covering listings across sections like auto, reality, prace, sluzby, and more. Use search_listings to query across any subdomain with keyword, location, price range, and pagination controls. Each listing result returns fields including title, price, location, date_posted, and view count, while get_listing_detail delivers the full description, contact name, images, and phone numbers found in the listing text.
curl -X GET 'https://api.parse.bot/scraper/7648a460-48bb-464a-a075-dcc31f713941/search_listings?query=mobil&offset=0&radius=25§ion=www&location=Praha' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace bazos-cz-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Bazos.cz SDK — search Czech classifieds, browse categories, view details."""
from parse_apis.bazos_cz_scraper_api import Bazos, Section, ListingNotFound
client = Bazos()
# Search car listings across all sections
for listing in client.listings.search(query="Škoda", section=Section.AUTO, limit=3):
print(listing.title, listing.price, listing.location)
# Browse job categories
for cat in client.categories.list(section=Section.PRACE, limit=5):
print(cat.name, cat.url)
# Get full detail for a listing found via search
first = client.listings.search(query="byt", section=Section.REALITY, limit=1).first()
if first:
detail = client.listingdetails.get(url=first.link)
print(detail.title, detail.price, detail.contact_name)
print(detail.location, len(detail.images), "images")
# Typed error handling for a removed listing
try:
client.listingdetails.get(url="https://auto.bazos.cz/inzerat/999999999/removed.php")
except ListingNotFound as exc:
print(f"Listing gone: {exc}")
print("exercised: listings.search / categories.list / listingdetails.get / ListingNotFound")
Search for listings across different sections (www, prace, sluzby, auto, reality, etc.) of bazos.cz. Returns up to 20 listings per page. Pagination uses offset (items, not pages) — pass offset=0, 20, 40, etc. to advance. When query is omitted, returns the latest listings in the section. The www section searches across all sections; specific subdomains scope to that category.
| Param | Type | Description |
|---|---|---|
| query | string | Search query text (e.g. 'mobil', 'řidič', 'byt') |
| offset | integer | Pagination offset (items, not pages). Advance by 20 per page: 0, 20, 40, etc. |
| radius | string | Search radius in km from location (e.g. '25', '50') |
| section | string | Site section/subdomain to search within. |
| location | string | Location filter (e.g. 'Praha', 'Brno', 'Praha 4') |
| max_price | string | Maximum price filter in CZK (e.g. '50000') |
| min_price | string | Minimum price filter in CZK (e.g. '1000') |
{
"type": "object",
"fields": {
"count": "integer, number of listings returned in this page",
"offset": "integer, current pagination offset",
"section": "string, the section searched",
"listings": "array of listing objects with id, title, link, price, description_snippet, location, date_posted, views"
},
"sample": {
"data": {
"count": 20,
"offset": 0,
"section": "www",
"listings": [
{
"id": "219981464",
"link": "https://auto.bazos.cz/inzerat/219981464/renault-arkana-16-etech-hybrid.php",
"price": "385 000 Kč",
"title": "Renault Arkana 1,6 E_TECH, HYBRID",
"views": "288 x",
"location": "Brno venkov 664 52",
"date_posted": "11.6. 2026",
"description_snippet": "Renault Arkana, 1,6 E_TECH, HYBRID..."
}
]
},
"status": "success"
}
}About the Bazos API
Search Listings
The search_listings endpoint queries listings across Bazos.cz's section subdomains: www, prace (jobs), sluzby (services), auto (vehicles), reality (real estate), deti, dum, zvirata, stroje, and moto. You can supply a query string alongside optional filters for location (e.g. Praha, Praha 4), radius in km, min_price, max_price, and a pagination offset. Results include a count of returned listings and an array of listing objects, each carrying id, title, link, price, description_snippet, location, date_posted, and views.
Listing Detail
get_listing_detail accepts the full URL of any individual listing and returns the complete record: title, description (full text), price, location with postal code, views, contact_name, an images array of URL strings, and a phones_in_description array of phone numbers parsed from the listing body. Prices may appear as a numeric string or the Czech convention Dohodou (negotiable).
Categories
get_categories accepts a section subdomain and returns a list of category objects, each with a name and url. Passing www returns top-level site links rather than a meaningful category tree; use specific subdomains like auto, prace, or reality to retrieve actionable category listings. This is useful for building navigation or scoping subsequent search_listings calls to a particular category URL.
The Bazos API is a managed, monitored endpoint for bazos.cz — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when bazos.cz changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official bazos.cz API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Monitor Czech used-car listings across the
autosection with price and location filters - Aggregate rental and property listings from the
realitysection filtered by city - Track job postings under the
pracesection with keyword search for specific roles - Extract seller contact names and phone numbers from individual listing detail pages
- Build a price-comparison tool by querying the same keyword across multiple sections
- Index available service categories in
sluzbyfor directory or recommendation apps - Watch listing view counts over time to gauge demand for specific goods in Czech classifieds
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Bazos.cz offer an official developer API?+
What does get_listing_detail return beyond what search_listings provides?+
search_listings returns a description_snippet per listing, whereas get_listing_detail returns the full description text, the complete images array, the contact_name, and any phones_in_description extracted from the body. It also resolves the location field to include a postal code, and returns the listing's views count.Are there any quirks with the `get_categories` endpoint and the `www` section?+
section=www returns top-level site navigation links rather than a structured category list. To get a useful category tree, use a specific subdomain value such as auto, prace, sluzby, reality, or dum. The endpoint documentation explicitly calls this out as the recommended approach.Does the API expose seller profile pages or historical listing data for a given user?+
Can I retrieve listings from a specific category URL rather than a free-text query?+
search_listings endpoint does not currently accept a category URL as an input parameter. It filters by section, query, location, radius, and price range. You can use get_categories to retrieve category URLs for a section, then fork the API on Parse and revise search_listings to accept a category path as an additional filter.