Recipe · Real estate listings aggregator

Build a listings site that aggregates real estate agencies.

Paste the prompt into Claude, Cursor, Replit, Lovable or Bolt with UnblockingAPI connected. Your agent reads the build guide, then writes the app; UnblockingAPI fetches the pages it needs.

prompt
Create a real estate listing page that aggregates and lists properties from multiple real estate agencies using UnblockingAPI: idealista.com, hihomes.es and serneholtestate.com. Normalise them into one list with filters for price, bedrooms and area, refresh every 6 hours, and link back to each original listing. Read UnblockingAPI's build guide first (the get_build_guide tool, or https://github.com/unblockingapi/mcp/tree/main/guides) and call its REST API directly from the backend with plain fetch, my API key stored as a secret.

What your agent builds

  • One fetcher per agency, using a published template where one exists and parsing the page where not
  • A shared listing schema: price, location, bedrooms, size, image and the link back
  • A scheduled refresh that adds new listings, updates changed ones and hides the gone ones
  • A filterable, sortable page served from your own database

What it costs to run

1 credit per results page per refresh: 5 sources x 3 pages x 4 runs a day is about 1,800 credits a month.

Failed fetches are free. New accounts get 500 free credits; plans make credits cheaper at volume.

The API call at its heart

Plain fetch from the backend, no SDK. Your agent writes this for you - it's here so you know what your app does.

// One request per results page - 20-50 listings each.
const res = await fetch("https://api.unblockingapi.com/unblock", {
  method: "POST",
  headers: { "X-Api-Key": process.env.UNBLOCKINGAPI_KEY, "Content-Type": "application/json" },
  body: JSON.stringify({
    url: "https://www.idealista.com/venta-viviendas/estepona-malaga/",
    template: "kjellberg/idealista-search",
    location: "es",
  }),
});
const { response } = await res.json();
const listings = response.results.map(toListing); // your mapper per source

The full recipe your agent reads - data model, scheduling, retries, UI - is on GitHub, and served to connected agents by get_build_guide.

Where it runs

Lovable
A Supabase Edge Function does the fetching on a schedule, with the key in Supabase secrets.
Replit
The backend reads the key from Replit Secrets; a Scheduled Deployment runs the checks.
Bolt, Next.js, Vercel
A route handler or server action, the key in environment variables, Vercel Cron for the schedule.
Claude Code, Cursor
Any stack you choose; ask for a cron job or a worker for the scheduled part.

Build your real estate listings aggregator today.

500 free credits, no credit card. Connect in under a minute.