FeWo-direkt APIfewo-direkt.de ↗
Search FeWo-direkt vacation rentals by destination and date. Get nightly prices, strikeout prices, property names, and IDs for up to 50 listings per call.
What is the FeWo-direkt API?
The FeWo-direkt API exposes one endpoint, search_prices, that returns up to 50 vacation rental listings per call with nightly pricing, total price, strikeout price, and property identifiers for any destination and date range on FeWo-direkt — the German-market Vrbo platform. Each response includes 9 top-level fields covering echoed search parameters and a structured array of property objects, making it straightforward to compare rental costs across German and European destinations.
curl -X GET 'https://api.parse.bot/scraper/85998f47-bd0f-4eb3-a85f-184c087be180/search_prices?adults=2&check_in=2026-10-04¤cy=EUR&check_out=2026-10-11&destination=Berlin%2C+Deutschland' \ -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 fewo-direkt-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.
"""Walkthrough: FeWo-direkt SDK — search vacation rentals with pricing."""
from parse_apis.fewo_direkt_de_api import FewoDirekt, InputFormatInvalid
client = FewoDirekt()
# Search Berlin properties for a week in August, cap at 5 results.
try:
for prop in client.properties.search(
check_in="2026-08-20",
check_out="2026-08-27",
destination="Berlin, Deutschland",
adults=2,
limit=5,
):
print(f"{prop.name} — {prop.price_formatted} (was {prop.strikeout_price_formatted})")
print(f" ID: {prop.property_id} URL: {prop.url}")
except InputFormatInvalid as e:
print(f"Invalid input: {e.message}")
# Use .first() to grab just one property for quick inspection.
top_pick = client.properties.search(
check_in="2026-12-01",
check_out="2026-12-08",
destination="München, Deutschland",
currency="EUR",
limit=1,
).first()
if top_pick is not None:
print(f"\nTop pick in München: {top_pick.name}")
print(f" Total price: {top_pick.price} {top_pick.currency}")
if top_pick.strikeout_price > top_pick.price:
print(f" You save: {top_pick.strikeout_price - top_pick.price:.2f} {top_pick.currency}")
print("\nexercised: properties.search / .first() / InputFormatInvalid")
Search vacation rental properties and return pricing for a given destination and date range. Returns up to ~50 properties per call with nightly/total price, strikeout price, currency, property name and ID. Results are sorted by recommended order.
| Param | Type | Description |
|---|---|---|
| adults | integer | Number of adult guests. |
| check_inrequired | string | Check-in date in ISO format YYYY-MM-DD. |
| currency | string | Currency code for prices (e.g. EUR, USD, GBP). |
| check_outrequired | string | Check-out date in ISO format YYYY-MM-DD. |
| destination | string | Destination name as shown on the site (e.g. 'Berlin, Deutschland', 'München, Deutschland', 'Mallorca, Spanien'). |
{
"type": "object",
"fields": {
"adults": "Number of adults searched",
"check_in": "Echoed check-in date",
"currency": "Currency code used for prices",
"check_out": "Echoed check-out date",
"properties": "Array of property objects with pricing",
"destination": "Echoed destination search term",
"total_results": "Number of properties returned"
},
"sample": {
"data": {
"adults": 2,
"check_in": "2026-08-20",
"currency": "EUR",
"check_out": "2026-08-27",
"properties": [
{
"url": "https://www.fewo-direkt.de/ferienwohnung-ferienhaus/p4120217vb",
"name": "Gemütliches Alternatives Zimmer",
"price": 463.14,
"currency": "EUR",
"property_id": "107269110",
"price_formatted": "463 €",
"strikeout_price": 501.64,
"strikeout_price_formatted": "502 €"
},
{
"url": "https://www.fewo-direkt.de/pdp/lo/18235468",
"name": "Ocak Aparthotel",
"price": 488.25,
"currency": "EUR",
"property_id": "18235468",
"price_formatted": "488 €",
"strikeout_price": 524.93,
"strikeout_price_formatted": "525 €"
}
],
"destination": "Berlin, Deutschland",
"total_results": 50
},
"status": "success"
}
}About the FeWo-direkt API
What the API Returns
The search_prices endpoint accepts a destination string, check-in and check-out dates (ISO YYYY-MM-DD format), an optional adult guest count, and an optional currency code. It returns a properties array of up to approximately 50 listings sorted in the site's recommended order. Each property object includes the property name, a property ID usable for reference, the nightly price, the total price for the stay, a strikeout price (the pre-discount displayed price when one exists), and the currency code the prices are denominated in.
Inputs and Destination Formatting
Destinations should match how they appear on the FeWo-direkt site — for example 'Berlin, Deutschland', 'München, Deutschland', or 'Mallorca, Spanien'. The currency parameter accepts standard codes such as EUR, USD, and GBP. The adults parameter is optional; omitting it returns results without guest-count filtering. The search and date parameters are echoed back in the response (check_in, check_out, destination, adults, currency) alongside a total_results count indicating how many properties were returned.
Strikeout Prices and Currency Behavior
When a property shows a promotional or discounted rate, the strikeout field contains the original higher price; otherwise it may be null or absent. The currency response field reflects whichever currency was requested, allowing you to request prices in non-EUR currencies for cross-border price comparison. All price figures are as displayed on the listing — no conversion math is applied on your side.
The FeWo-direkt API is a managed, monitored endpoint for fewo-direkt.de — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when fewo-direkt.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 fewo-direkt.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?+
- Build a price-tracking tool that monitors nightly rate changes for vacation rentals in a target German city over time
- Aggregate and compare total stay costs across multiple FeWo-direkt destinations for a fixed travel window
- Detect active promotions by checking when the strikeout price differs from the displayed nightly price
- Populate a travel planning app with live rental availability and pricing for user-selected German or European destinations
- Analyze recommended-sort rankings to study how listing placement correlates with price across destinations
- Feed a currency-aware price comparison tool by requesting the same search in EUR, USD, and GBP simultaneously
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.