{"schemaVersion":"1.0","generatedAt":"2026-08-28T23:24:02\u002B02:00","type":"agentWorkflow","description":"Definierter Flow f\u00FCr KI-Agenten: Suche \u2192 Filtern \u2192 Auswahl \u2192 Vergleich \u2192 Kontakt. Kein Chat-Server. Der Agent f\u00FChrt die Schritte an den statischen Dateien selbst aus.","serverSideFilter":false,"humanFormForbidden":true,"contactEndpoint":"https://service.immonika.de/kontakt.php","steps":[{"step":1,"id":"search","name":"Suche","action":"GET","url":"https://immonika.de/api/search","expect":"searchIndex","next":"filter","hint":"Alias /api/search.json. Kappe 25.000 j\u00FCngste Inserate."},{"step":2,"id":"filter","name":"Filtern","action":"filter","on":"items[]","next":"select","hint":"city/citySlug, numberOfRooms, offers.price, vermarktungsart. Query-String \u00E4ndert die Datei nicht."},{"step":3,"id":"select","name":"Auswahl","action":"GET","from":"items[].listingApi","expect":"RealEstateListing","next":"compare","hint":"Ein Treffer: listing.json laden. Mehrere Treffer: zwei oder drei Details vergleichen."},{"step":4,"id":"compare","name":"Vergleichen","action":"compare","next":"contact","hint":"Felder: offers.price, numberOfRooms, city, vermarktungsart, objektart, district."},{"step":5,"id":"contact","name":"Kontakt","action":"follow","from":"contactIntent.agentWorkflow","hint":"GET items[].listingApi \u2192 contactIntent \u2192 GET contactRequestApi \u2192 POST endpoint (JSON). Erstkontakt: DOI und Einwilligung. Nicht das HTML-Formular scrapen."}],"alternateStarts":[{"id":"cities","when":"Ort unbekannt oder Suchindex truncated","url":"https://immonika.de/api/cities.json","then":"/{ortSlug}/api/listings.json"},{"id":"agents","when":"Suche nach Firma oder Makler","url":"https://immonika.de/api/anbieter","then":"items[].agentApi oder items[].listingsApi"}],"example":{"question":"3-Zimmer in Celle unter 300000 Euro, dann Kontakt","step1":"https://immonika.de/api/search","step2":"items mit city=Celle, numberOfRooms=3, offers.price\u003C=300000","step3":"GET items[].listingApi","step4":"optional zwei listing.json vergleichen","step5":"contactIntent.agentWorkflow (GET contact-request.json, POST endpoint)"},"searchJson":"https://immonika.de/api/search.json","anbieterJson":"https://immonika.de/api/anbieter.json","citiesJson":"https://immonika.de/api/cities.json","hint":"Kontakt nur \u00FCber listing.json contactIntent. HTML-Formular ist f\u00FCr Menschen. Nachfragen = dieselben Filterfelder, kein Extra-Chat.","nextActions":[{"id":"filter","action":"filter","on":"items[]","hint":"city, citySlug, numberOfRooms, offers.price, vermarktungsart \u2014 Query-String \u00E4ndert die Datei nicht."},{"id":"openListing","action":"GET","from":"items[].listingApi","expect":"RealEstateListing"},{"id":"compare","action":"compare","hint":"Zwei oder drei listing.json: offers.price, numberOfRooms, city, objektart."},{"id":"workflow","action":"GET","url":"/api/workflow","expect":"agentWorkflow"}]}