Every German property portal, one search.

Fredy keeps searching ImmoScout24, Immowelt, Kleinanzeigen and 14 more portals for new apartments, houses and flats in Germany, and delivers every hit to Slack, Telegram, Discord, email or ntfy, so you can focus on the more important things in life.

Fredy map view of Dusseldorf with listing pins, the public transport network drawn on top and a live departure board for a nearby stop.
  Docker pulls
  GitHub stars
  Active reporting instances
17 Portals covered
Apache‑2.0 Free, and staying free

What Fredy actually does

It is a small server you run yourself. It searches, it stores, it works things out, and then it gets out of your way.

One dashboard for every search

Search interval, last and next run, how many listings came in over the last seven days, and which portal they came from.

17 portals, one feed

ImmoScout24 through its mobile API, plus Kleinanzeigen, Immowelt, WG‑Gesucht, Sparkasse, OhneMakler and eleven more. You paste the search URL, Fredy takes it from there.

The same flat, once

A listing posted on three portals reaches you a single time. Everything already seen is stored, so nothing arrives twice.

15 ways to be told

Set a channel up once under Settings, reuse it across jobs. Rotating a token means editing one channel, not every search that used it.

Ask it in plain language

A built‑in MCP server exposes your jobs and listings to Claude, ChatGPT or a local model, including the affordability maths.

Listings that stay put

Everything Fredy finds is kept, searchable and filterable, with a watchlist for the ones worth a second look and a note when a price moves.

What it would actually cost you

Tell Fredy your household once, income, living costs, anything you are already paying off, and every listing is measured against it. For renting and for buying, each with its own tab.

35 %

The ceiling Fredy measures against: housing costs plus existing debt, as a share of net income. Every listing gets a verdict chip against that rule.

46.000 €

Roughly the Kaufnebenkosten on a 400.000 € house in NRW. Grunderwerbsteuer, Notar, Grundbuch and Maklerprovision, all of it financed or paid from your own pocket.

The buying tab models an Annuitätendarlehen

  • Monthly rate, and how it splits into interest and repayment over the years
  • Restschuld left when the Zinsbindung runs out
  • The age at which you and your partner are debt free
  • The highest purchase price that stays inside the rule
  • Several loan scenarios compared side by side

The renting tab asks for less

Portals quote the Kaltmiete, a household pays warm. Set the Nebenkosten surcharge once and Fredy reports the highest cold rent you can take on, what that comes to warm, and what is left over each month.

Someone who only ever rents is never asked a question about Grunderwerbsteuer.

An estimate, not financial advice. Grunderwerbsteuer rates ship as editable defaults, and Bundesländer change them. Get a binding offer from your bank.

Not kilometres. Minutes.

Two flats the same kilometre from your office can be eight minutes and fifty minutes away from it. Fredy measures the journey from your own front door instead.

  • Reachable within

    Pick a mode and a ceiling, public transport within 30 minutes say, and the list filters or the map hides the pins that fail it. Car, bike and walking too.

  • The network, drawn

    Rail, S‑Bahn, U‑Bahn and tram on the map, every stop with its own departure board, and the three nearest stops on every listing.

  • Nothing invented

    Fredy always says whether a number is estimated or exact, and a mode it could not route is left out rather than shown as zero.

Timetables and journey planning come from Transitous, a community‑run MOTIS instance. Map data from OpenStreetMap contributors. No API key needed.

17 portals in, 15 channels out

A job combines the portals you want searched with the channels you want told. Add as many of each as you like.

Notification channels

  • Telegram
  • Slack
  • Discord
  • Mattermost
  • ntfy
  • Pushover
  • Apprise
  • Browser push
  • SMTP
  • SendGrid
  • Mailjet
  • Resend
  • HTTP webhook
  • SQLite
  • Console

Channels are global and shareable. An admin can share one with other users so they can send through it, without ever showing them the credentials.

Running in one command

No configuration file to write. Fredy creates one on first run, and everything else is set in the web UI.

Web UI
http://localhost:9998
Default login
admin / admin
Manual install
Node.js 22 or higher
Languages
English, Deutsch, Türkçe
docker run -d --name fredy \
  -v fredy_conf:/conf \
  -v fredy_db:/db \
  -p 9998:9998 \
  ghcr.io/orangecoding/fredy:master

Follow along with docker logs fredy -f.

On a VPS, portal anti‑bot systems tend to block datacenter IPs on reputation alone. Set a German residential proxy under Administration › Execution and the browser‑based portals go through it.

Fredy in the wild

Instances that opted into analytics report which portals and channels they use, nothing else. Here is what they add up to right now.

Portals in use

Channels in use

Point it at your search and forget about it.