Monteurzimmer APImonteurzimmer.de ↗
Access accommodation listings, pricing, amenities, landlord contacts, and city indexes from monteurzimmer.de via 3 structured API endpoints.
What is the Monteurzimmer API?
The monteurzimmer.de API exposes 3 endpoints for querying worker accommodation listings across Germany. Use search_accommodations to filter by location, room type, amenities, price, and sort order, then retrieve full listing details — including phone numbers, addresses, and amenity lists — with get_accommodation_details. A third endpoint, list_cities, provides a browsable city index filtered by letter.
curl -X GET 'https://api.parse.bot/scraper/f090f95c-7150-421f-9e3b-22a190a91603/search_accommodations?page=1&location=Berlin' \ -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 monteurzimmer-de-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.
"""Monteurzimmer: find worker accommodations in German cities."""
from parse_apis.monteurzimmer_scraper_api import (
Monteurzimmer, AccommodationType, Sort, AccommodationNotFound
)
client = Monteurzimmer()
# Search for pension-type accommodations in Berlin, sorted by price
for listing in client.accommodations.search(
location="Berlin", t=AccommodationType.PENSION, sort=Sort.PRICE, limit=3
):
print(listing.name, listing.position, listing.url_slug)
# Drill into the first result for full details
summary = client.accommodations.search(location="Hamburg", limit=1).first()
if summary:
detail = summary.details()
print(detail.name, detail.address_text, detail.phone)
print("Amenities:", detail.amenities[:5])
# Direct lookup by known URL path
try:
acc = client.accommodations.get(url_path="/zimmer/10783-berlin-5ac27e75df")
print(acc.name, acc.address_text)
except AccommodationNotFound as exc:
print(f"Not found: {exc.url_path}")
# Browse available cities starting with 'm'
for city in client.cities.list(letter="m", limit=5):
print(city.name, city.path)
print("exercised: accommodations.search / summary.details / accommodations.get / cities.list")
Search for accommodations by location with optional filters and pagination. Resolves a city name or address to the site's internal location URL, then returns paginated listing results. Each result is a summary with name, position, and URL slug usable for detail lookup. Paginates via integer page parameter; total_results and is_last_page indicate result extent.
| Param | Type | Description |
|---|---|---|
| t | string | Accommodation type filter |
| rt | string | Room/unit type filter |
| page | integer | Page number for pagination |
| sort | string | Sort order for results |
| distance | integer | Search radius in km. Accepted values: 0, 10, 20, 30, 40, 50 |
| locationrequired | string | City name, address, or region to search in |
| equipment | string | Comma-separated list of amenities to filter by (e.g. wifi,tv,kitchen) |
| max_price | integer | Maximum price per night |
| min_price | integer | Minimum price per night |
| price_group | string | Price type. Accepted values: person, accommodation |
{
"type": "object",
"fields": {
"items": "array of accommodation summary objects with name, url, url_slug, and position",
"current_page": "integer current page number",
"is_last_page": "boolean indicating if this is the last page of results",
"resolved_url": "string resolved search URL for the location",
"total_results": "integer total number of matching accommodations"
}
}About the Monteurzimmer API
Search and Filter Listings
The search_accommodations endpoint accepts a required location string (city, address, or region) and resolves it to a canonical search URL returned in the resolved_url field. Optional filters include t for accommodation type (ROOM, HOUSE, FLAT, PENSION, HOSTEL, HOTEL, OTHER), rt for unit type (SINGLE, DOUBLE, SHARED, APARTMENT), max_price for a nightly price ceiling, distance for search radius up to 50 km, and a comma-separated equipment list for amenities such as wifi, tv, or kitchen. Results are paginated; each page returns an items array of listing objects with name, url, url_slug, and position, plus current_page, is_last_page, and total_results.
Listing Details and Contact Data
get_accommodation_details takes a url_path from any search result item and returns the full listing record: name, description, address_text, phone, pricing_raw, landlord_name, and an amenities array. The phone and description fields may be null if the landlord did not provide them. pricing_raw is unstructured text as published on the listing, so callers should expect to parse it if numeric comparison is needed.
City Index
list_cities returns a directory of locations where monteurzimmer.de has listings. Pass a single lowercase letter parameter (a–z) to filter by first character; omitting it returns the full set. Each city object includes name, url, and path, making it useful for building location pickers or pre-seeding batch searches without guessing city name strings.
The Monteurzimmer API is a managed, monitored endpoint for monteurzimmer.de — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when monteurzimmer.de 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 monteurzimmer.de 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?+
- Aggregate worker housing options in a target region filtered by room type and max nightly price
- Build a landlord contact database using phone and landlord_name fields from get_accommodation_details
- Monitor total_results for a location over time to track accommodation supply changes
- Pre-populate city autocomplete dropdowns using the list_cities endpoint filtered by letter
- Compare amenity coverage across listings by collecting amenities arrays for a search result set
- Feed accommodation data into a relocation tool for tradespeople and seasonal workers in Germany
| 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 monteurzimmer.de offer an official developer API?+
What does get_accommodation_details return beyond what search results include?+
Does the search endpoint return photos or availability calendars?+
How does pagination work in search_accommodations?+
page parameter to move through result pages. The response includes current_page and is_last_page so callers know when to stop iterating. total_results reflects the full count across all pages.Are listings outside Germany covered?+
list_cities endpoint reflects the actual city index on the site, so querying it gives an accurate picture of geographic coverage before running searches.