FlatHunt

Search furnished Berlin housing, compare listings, and manage favorites and saved-search alerts.

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
100%
Integridad del esquema
84%
Calidad de los nombres
98%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~9,607Tokens (definiciones de herramientas)
~9.6 KBTamaño de respuesta típico
Impacto significativo en la atención (7.51% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "mcp": {
      "url": "https://mcp.flat-hunt.com/mcp"
    }
  }
}

Puntos de conexión remotos

https://mcp.flat-hunt.com/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (11)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢search_listings(housingType, roomType, priceMin, priceMax, rooms, ...)

Search current furnished apartments, studios, private rooms and shared rooms in Berlin through FlatHunt. Supports price, size, rooms, bedrooms, canonical area ids or nearby coordinates, availability dates, capacity, deposit, providers, amenity tags, rental-policy flags, sorting and pagination up to 20 results. Returns normalized listing summaries and pagination metadata. Availability, prices and provider terms may change.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "housingType": {
      "description": "Type of housing. Studios map to apartment; room includes both private and shared rooms unless roomType narrows it.",
      "type": "string",
      "enum": [
        "room",
        "apartment"
      ]
    },
    "roomType": {
      "description": "Room occupancy: private = one private bedroom in shared housing; shared = a bed in a shared bedroom. Omit to include both. housingType=room remains the broad backwards-compatible filter.",
      "type": "string",
      "enum": [
        "private",
        "shared"
      ]
    },
    "priceMin": {
      "description": "Minimum monthly price in EUR.",
      "type": "number",
      "minimum": 0
    },
    "priceMax": {
      "description": "Maximum monthly price in EUR.",
      "type": "number",
      "minimum": 0
    },
    "rooms": {
      "description": "Exact room counts (OR). Allowed values only: \"studio\", \"1\", \"2\", …, \"10\" (strings, not numbers). Prefer over roomsMin/roomsMax for \"1–2 rooms\": [\"1\",\"2\"] or [\"studio\",\"1\"].",
      "maxItems": 10,
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "1",
          "2",
          "3",
          "4",
          "5",
          "6",
          "7",
          "8",
          "9",
          "10",
          "studio"
        ]
      }
    },
    "roomsMin": {
      "description": "Minimum rooms (studio = 0). Prefer rooms[] for exact OR lists.",
      "type": "number",
      "minimum": 0
    },
    "roomsMax": {
      "description": "Maximum rooms. Prefer rooms[] for exact OR lists.",
      "type": "number",
      "minimum": 0
    },
    "providers": {
      "description": "Restrict to specific housing providers (ids from the providers catalog).",
      "maxItems": 10,
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "areas": {
      "description": "Canonical Berlin area IDs from list_areas (e.g. berlin:ortsteil:prenzlauer-berg). Up to 20 IDs; multiple IDs are combined with OR. District / Ortsteil mode — do not mix with lat/lng/radiusKm. When the user names an area, call list_areas first. Pass only canonical IDs returned by list_areas. Never construct, translate, normalize, or guess IDs.",
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "postCode": {
      "description": "Exact Berlin post code (PLZ), e.g. 10115.",
      "type": "string"
    },
    "lat": {
      "description": "Latitude for nearby search; must be provided with lng (+ radiusKm). Do not mix with areas.",
      "type": "number"
    },
    "lng": {
      "description": "Longitude for nearby search; must be provided with lat (+ radiusKm). Do not mix with areas.",
      "type": "number"
    },
    "radiusKm": {
      "description": "Search radius in km around lat/lng (min 0.1, max 25). Nearby mode — do not mix with areas.",
      "type": "number",
      "minimum": 0.1,
      "maximum": 25
    },
    "bedroomsMin": {
      "description": "Minimum number of bedrooms (from provider extra data when available).",
      "type": "number",
      "minimum": 0
    },
    "squareMetersMin": {
      "description": "Minimum living area in m². \"from 40 m²\" → 40. Filter on the backend — do not paginate to drop small listings.",
      "type": "number",
      "minimum": 0
    },
    "squareMetersMax": {
      "description": "Maximum living area in m².",
      "type": "number",
      "minimum": 0
    },
    "availableFrom": {
      "description": "Available from / not earlier than (YYYY-MM-DD), e.g. \"2026-08-01\".",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "availableTo": {
      "description": "Available until / not later than (YYYY-MM-DD).",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "personsMaxMin": {
      "description": "Minimum capacity (personsMax). Use 2 for couples, 1 for solo — filters listings that can accommodate at least this many people.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "depositMax": {
      "description": "Maximum deposit (Kaution) in EUR.",
      "type": "number",
      "minimum": 0
    },
    "amenityTags": {
      "description": "Canonical amenity tags (AND). Backend filters listings that have ALL of these tags. Catalog (snake_case only): wifi, parking, bike_parking, wheelchair, dishwasher, washing_machine, dryer, elevator, balcony, desk, tv, oven, heating, furnished, fridge, microwave, cooktop, coffee_machine, iron, hair_dryer, closet, wardrobe, bed, bathtub, shower, garden, basement, air_conditioning, parking_street, workspace, fitness, concierge, laundry, pets_friendly. Do not invent aliases (wiFi, hasWifi, Waschmaschine).",
      "maxItems": 10,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1
      }
    },
    "petsAllowed": {
      "description": "true = pets explicitly allowed.",
      "type": "boolean"
    },
    "smokingAllowed": {
      "description": "false = non-smokers only / smoking not allowed.",
      "type": "boolean"
    },
    "registrationPossible": {
      "description": "true = Anmeldung / registration explicitly possible (strict).",
      "type": "boolean"
    },
    "anmeldungLikely": {
      "description": "true = Anmeldung likely (broader). Prefer for \"with Anmeldung\" unless the user needs a hard guarantee.",
      "type": "boolean"
    },
    "schufaRequired": {
      "description": "true = Schufa required.",
      "type": "boolean"
    },
    "noSchufaRequired": {
      "description": "true = Schufa explicitly not required (strict).",
      "type": "boolean"
    },
    "noSchufaLikely": {
      "description": "true = Schufa likely not required (broader). Prefer for \"without Schufa\".",
      "type": "boolean"
    },
    "studentsFriendly": {
      "description": "true = student-oriented housing (broader).",
      "type": "boolean"
    },
    "onlyStudentsAllowed": {
      "description": "true = students-only listings.",
      "type": "boolean"
    },
    "sortBy": {
      "description": "Sort field (default rank). sortOrder is ignored when sortBy=rank. Cheaper first → price+asc; larger area → squareMeters+desc.",
      "type": "string",
      "enum": [
        "rank",
        "price",
        "squareMeters",
        "createdAt",
        "availableFrom"
      ]
    },
    "sortOrder": {
      "description": "Sort direction (default desc). Ignored when sortBy=rank.",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "page": {
      "description": "Page number (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "limit": {
      "description": "Results per page (default 10, max 20).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 20
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "listings": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "title": {
            "type": "string"
          },
          "price": {
            "type": "number"
          },
          "priceFormatted": {
            "type": "string"
          },
          "rooms": {
            "type": [
              "number",
              "string"
            ]
          },
          "housingType": {
            "type": "string"
          },
          "roomType": {
            "type": "string",
            "enum": [
              "private",
              "shared"
            ]
          },
          "location": {
            "type": "string"
          },
          "area": {
            "type": "string"
          },
          "areaSquareMeters": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "provider": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "logoUrl": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "name"
            ],
            "additionalProperties": false
          },
          "availableFrom": {
            "type": "string"
          },
          "availableTo": {
            "type": "string"
          },
          "detailsUrl": {
            "type": "string"
          },
          "trackingUrl": {
            "type": "string"
          },
          "deposit": {
            "type": "number"
          },
          "depositFormatted": {
            "type": "string"
          },
          "noDeposit": {
            "type": "boolean"
          },
          "images": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "url": {
                  "type": "string"
                },
                "thumbnailUrl": {
                  "type": "string"
                },
                "width": {
                  "type": "number"
                },
                "height": {
                  "type": "number"
                },
                "alt": {
                  "type": "string"
                }
              },
              "required": [
                "url"
              ],
              "additionalProperties": false
            }
          },
          "amenityTags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "amenitiesUnknown": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "buildingAmenityTags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "buildingAmenitiesUnknown": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "labels": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "petsAllowed": {
            "type": "boolean"
          },
          "smokingAllowed": {
            "type": "boolean"
          },
          "registrationPossible": {
            "type": "boolean"
          },
          "anmeldungLikely": {
            "type": "boolean"
          },
          "schufaRequired": {
            "type": "boolean"
          },
          "noSchufaRequired": {
            "type": "boolean"
          },
          "noSchufaLikely": {
            "type": "boolean"
          },
          "studentsFriendly": {
            "type": "boolean"
          },
          "onlyStudentsAllowed": {
            "type": "boolean"
          },
          "couplesAllowed": {
            "type": "boolean"
          },
          "childrenAllowed": {
            "type": "boolean"
          },
          "partyAllowed": {
            "type": "boolean"
          },
          "guarantorRequired": {
            "type": "boolean"
          },
          "bedrooms": {
            "type": "number"
          },
          "bathrooms": {
            "type": "number"
          },
          "personsMax": {
            "type": "number"
          },
          "minStayMonths": {
            "type": "number"
          },
          "maxStayMonths": {
            "type": "number"
          },
          "furnished": {
            "type": "string"
          },
          "postCode": {
            "type": "string"
          },
          "propertySubtype": {
            "type": "string"
          },
          "floor": {
            "type": "string"
          },
          "minAge": {
            "type": "number"
          },
          "maxAge": {
            "type": "number"
          },
          "preferredGender": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "title"
        ],
        "additionalProperties": false
      }
    },
    "pagination": {
      "type": "object",
      "properties": {
        "page": {
          "type": "number"
        },
        "limit": {
          "type": "number"
        },
        "total": {
          "type": "number"
        },
        "totalPages": {
          "type": "number"
        }
      },
      "required": [
        "page",
        "limit",
        "total",
        "totalPages"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "listings",
    "pagination"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢get_listing(listingId)

Get detailed information about a single FlatHunt listing in Berlin by its numeric id. Returns its description, amenities, rental-policy flags, capacity, stay terms, utilities, nearby distances, media, provider and tracking URLs. Availability and provider terms may change.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "listingId": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Numeric FlatHunt listing id."
    }
  },
  "required": [
    "listingId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "listing": {
      "type": "object",
      "properties": {
        "id": {
          "type": "number"
        },
        "title": {
          "type": "string"
        },
        "price": {
          "type": "number"
        },
        "priceFormatted": {
          "type": "string"
        },
        "rooms": {
          "type": [
            "number",
            "string"
          ]
        },
        "housingType": {
          "type": "string"
        },
        "roomType": {
          "type": "string",
          "enum": [
            "private",
            "shared"
          ]
        },
        "location": {
          "type": "string"
        },
        "area": {
          "type": "string"
        },
        "areaSquareMeters": {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        "provider": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string"
            },
            "name": {
              "type": "string"
            },
            "logoUrl": {
              "type": "string"
            }
          },
          "required": [
            "id",
            "name"
          ],
          "additionalProperties": false
        },
        "availableFrom": {
          "type": "string"
        },
        "availableTo": {
          "type": "string"
        },
        "detailsUrl": {
          "type": "string"
        },
        "trackingUrl": {
          "type": "string"
        },
        "deposit": {
          "type": "number"
        },
        "depositFormatted": {
          "type": "string"
        },
        "noDeposit": {
          "type": "boolean"
        },
        "images": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "url": {
                "type": "string"
              },
              "thumbnailUrl": {
                "type": "string"
              },
              "width": {
                "type": "number"
              },
              "height": {
                "type": "number"
              },
              "alt": {
                "type": "string"
              }
            },
            "required": [
              "url"
            ],
            "additionalProperties": false
          }
        },
        "amenityTags": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "amenitiesUnknown": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "buildingAmenityTags": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "buildingAmenitiesUnknown": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "labels": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "petsAllowed": {
          "type": "boolean"
        },
        "smokingAllowed": {
          "type": "boolean"
        },
        "registrationPossible": {
          "type": "boolean"
        },
        "anmeldungLikely": {
          "type": "boolean"
        },
        "schufaRequired": {
          "type": "boolean"
        },
        "noSchufaRequired": {
          "type": "boolean"
        },
        "noSchufaLikely": {
          "type": "boolean"
        },
        "studentsFriendly": {
          "type": "boolean"
        },
        "onlyStudentsAllowed": {
          "type": "boolean"
        },
        "couplesAllowed": {
          "type": "boolean"
        },
        "childrenAllowed": {
          "type": "boolean"
        },
        "partyAllowed": {
          "type": "boolean"
        },
        "guarantorRequired": {
          "type": "boolean"
        },
        "bedrooms": {
          "type": "number"
        },
        "bathrooms": {
          "type": "number"
        },
        "personsMax": {
          "type": "number"
        },
        "minStayMonths": {
          "type": "number"
        },
        "maxStayMonths": {
          "type": "number"
        },
        "furnished": {
          "type": "string"
        },
        "postCode": {
          "type": "string"
        },
        "propertySubtype": {
          "type": "string"
        },
        "floor": {
          "type": "string"
        },
        "minAge": {
          "type": "number"
        },
        "maxAge": {
          "type": "number"
        },
        "preferredGender": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "address": {
          "type": "string"
        },
        "lat": {
          "type": "number"
        },
        "lng": {
          "type": "number"
        },
        "utilitiesIncluded": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "utilitiesCost": {
          "type": "number"
        },
        "nearbyDistances": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "place": {
                "type": "string"
              },
              "distance": {
                "type": "string"
              }
            },
            "required": [
              "place",
              "distance"
            ],
            "additionalProperties": false
          }
        },
        "virtualTourUrl": {
          "type": "string"
        },
        "saved": {
          "type": "boolean"
        }
      },
      "required": [
        "id",
        "title"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "listing"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢compare_listings(listingIds)

Return normalized detail fields for 2–10 FlatHunt listings by numeric id in one read-only response. Includes prices, location, amenities, rental-policy flags, capacity, description, utilities, nearby distances, provider and tracking URLs for side-by-side comparison.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "listingIds": {
      "minItems": 2,
      "maxItems": 10,
      "type": "array",
      "items": {
        "type": "integer",
        "exclusiveMinimum": 0,
        "maximum": 9007199254740991
      },
      "description": "Between 2 and 10 unique listing ids."
    }
  },
  "required": [
    "listingIds"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "listings": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "title": {
            "type": "string"
          },
          "price": {
            "type": "number"
          },
          "priceFormatted": {
            "type": "string"
          },
          "rooms": {
            "type": [
              "number",
              "string"
            ]
          },
          "housingType": {
            "type": "string"
          },
          "roomType": {
            "type": "string",
            "enum": [
              "private",
              "shared"
            ]
          },
          "location": {
            "type": "string"
          },
          "area": {
            "type": "string"
          },
          "areaSquareMeters": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "provider": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "logoUrl": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "name"
            ],
            "additionalProperties": false
          },
          "availableFrom": {
            "type": "string"
          },
          "availableTo": {
            "type": "string"
          },
          "detailsUrl": {
            "type": "string"
          },
          "trackingUrl": {
            "type": "string"
          },
          "deposit": {
            "type": "number"
          },
          "depositFormatted": {
            "type": "string"
          },
          "noDeposit": {
            "type": "boolean"
          },
          "images": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "url": {
                  "type": "string"
                },
                "thumbnailUrl": {
                  "type": "string"
                },
                "width": {
                  "type": "number"
                },
                "height": {
                  "type": "number"
                },
                "alt": {
                  "type": "string"
                }
              },
              "required": [
                "url"
              ],
              "additionalProperties": false
            }
          },
          "amenityTags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "amenitiesUnknown": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "buildingAmenityTags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "buildingAmenitiesUnknown": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "labels": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "petsAllowed": {
            "type": "boolean"
          },
          "smokingAllowed": {
            "type": "boolean"
          },
          "registrationPossible": {
            "type": "boolean"
          },
          "anmeldungLikely": {
            "type": "boolean"
          },
          "schufaRequired": {
            "type": "boolean"
          },
          "noSchufaRequired": {
            "type": "boolean"
          },
          "noSchufaLikely": {
            "type": "boolean"
          },
          "studentsFriendly": {
            "type": "boolean"
          },
          "onlyStudentsAllowed": {
            "type": "boolean"
          },
          "couplesAllowed": {
            "type": "boolean"
          },
          "childrenAllowed": {
            "type": "boolean"
          },
          "partyAllowed": {
            "type": "boolean"
          },
          "guarantorRequired": {
            "type": "boolean"
          },
          "bedrooms": {
            "type": "number"
          },
          "bathrooms": {
            "type": "number"
          },
          "personsMax": {
            "type": "number"
          },
          "minStayMonths": {
            "type": "number"
          },
          "maxStayMonths": {
            "type": "number"
          },
          "furnished": {
            "type": "string"
          },
          "postCode": {
            "type": "string"
          },
          "propertySubtype": {
            "type": "string"
          },
          "floor": {
            "type": "string"
          },
          "minAge": {
            "type": "number"
          },
          "maxAge": {
            "type": "number"
          },
          "preferredGender": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "address": {
            "type": "string"
          },
          "lat": {
            "type": "number"
          },
          "lng": {
            "type": "number"
          },
          "utilitiesIncluded": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "utilitiesCost": {
            "type": "number"
          },
          "nearbyDistances": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "place": {
                  "type": "string"
                },
                "distance": {
                  "type": "string"
                }
              },
              "required": [
                "place",
                "distance"
              ],
              "additionalProperties": false
            }
          },
          "virtualTourUrl": {
            "type": "string"
          },
          "saved": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "title"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "listings"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢list_areas(query, type)

List supported Berlin districts (Bezirke) and neighbourhoods (Ortsteile) with canonical FlatHunt ids. Returns id, name, slug, type and parent area information, with optional name and type filtering. Mitte exists both as a whole Bezirk (berlin:bezirk:mitte) and as a smaller Ortsteil (berlin:ortsteil:mitte). Charlottenburg is an Ortsteil; the parent Bezirk is Charlottenburg-Wilmersdorf.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "query": {
      "description": "Optional case-insensitive substring filter on area name or slug. Omit to return the full catalog (109 areas).",
      "type": "string"
    },
    "type": {
      "description": "Optional filter by area type.",
      "type": "string",
      "enum": [
        "bezirk",
        "ortsteil"
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "areas": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "bezirk",
              "ortsteil"
            ]
          },
          "parentAreaId": {
            "type": [
              "string",
              "null"
            ]
          },
          "parentName": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "slug",
          "type"
        ],
        "additionalProperties": false
      }
    },
    "total": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "catalogVersion": {
      "type": "string"
    }
  },
  "required": [
    "areas",
    "total",
    "catalogVersion"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢render_listings_widget(listingIds, alertCriteria)

Return UI-ready cards and an interactive MCP Apps gallery for 1–10 FlatHunt listing ids. The tool refreshes current listing data and displays images, provider, price, availability and listing actions. Optional alertCriteria adds a saved-search control for the represented filters.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "listingIds": {
      "minItems": 1,
      "maxItems": 10,
      "type": "array",
      "items": {
        "type": "integer",
        "exclusiveMinimum": 0,
        "maximum": 9007199254740991
      },
      "description": "Between 1 and 10 unique FlatHunt listing ids."
    },
    "alertCriteria": {
      "description": "Optional saved-search criteria represented by this result set. Every nested field is optional. Pagination and sort fields are not accepted.",
      "type": "object",
      "properties": {
        "name": {
          "description": "Optional. Short saved-search label in the user's language so Save search uses a meaningful name (not a generic default).",
          "type": "string",
          "minLength": 1,
          "maxLength": 120
        },
        "housingType": {
          "description": "Optional. Same housingType as the preceding search_listings call.",
          "type": "string",
          "enum": [
            "room",
            "apartment"
          ]
        },
        "roomType": {
          "description": "Optional. Same roomType as the preceding search_listings call.",
          "type": "string",
          "enum": [
            "private",
            "shared"
          ]
        },
        "priceMin": {
          "description": "Optional. Minimum monthly price in EUR from the search.",
          "type": "number",
          "minimum": 0
        },
        "priceMax": {
          "description": "Optional. Maximum monthly price in EUR from the search.",
          "type": "number",
          "minimum": 0
        },
        "rooms": {
          "description": "Optional. Exact room counts from the search. Allowed: \"studio\", \"1\"…\"10\" (strings only).",
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "1",
              "2",
              "3",
              "4",
              "5",
              "6",
              "7",
              "8",
              "9",
              "10",
              "studio"
            ]
          }
        },
        "roomsMin": {
          "description": "Optional. Minimum rooms from the search (studio = 0).",
          "type": "number",
          "minimum": 0
        },
        "roomsMax": {
          "description": "Optional. Maximum rooms from the search.",
          "type": "number",
          "minimum": 0
        },
        "providers": {
          "description": "Optional. Provider ids from the search.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "areas": {
          "description": "Optional. Canonical area ids from list_areas used in the search.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "postCode": {
          "description": "Optional. Exact Berlin PLZ from the search.",
          "type": "string"
        },
        "lat": {
          "description": "Optional. Nearby-search latitude (with lng).",
          "type": "number"
        },
        "lng": {
          "description": "Optional. Nearby-search longitude (with lat).",
          "type": "number"
        },
        "radiusKm": {
          "description": "Optional. Nearby-search radius in km.",
          "type": "number",
          "exclusiveMinimum": 0
        },
        "bedroomsMin": {
          "description": "Optional. Minimum bedrooms from the search.",
          "type": "number",
          "minimum": 0
        },
        "squareMetersMin": {
          "description": "Optional. Minimum living area m² from the search.",
          "type": "number",
          "minimum": 0
        },
        "squareMetersMax": {
          "description": "Optional. Maximum living area m² from the search.",
          "type": "number",
          "minimum": 0
        },
        "availableFrom": {
          "description": "Optional. Available-from date (YYYY-MM-DD) from the search.",
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
        },
        "availableTo": {
          "description": "Optional. Available-to date (YYYY-MM-DD) from the search.",
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
        },
        "personsMaxMin": {
          "description": "Optional. Minimum capacity from the search.",
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        "depositMax": {
          "description": "Optional. Maximum deposit EUR from the search.",
          "type": "number",
          "minimum": 0
        },
        "amenityTags": {
          "description": "Optional. Canonical amenity tags (AND) from the search, e.g. wifi, parking, washing_machine.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "petsAllowed": {
          "description": "Optional. Pets filter from the search.",
          "type": "boolean"
        },
        "smokingAllowed": {
          "description": "Optional. Smoking filter from the search.",
          "type": "boolean"
        },
        "registrationPossible": {
          "description": "Optional. Anmeldung/registration filter from the search.",
          "type": "boolean"
        },
        "anmeldungLikely": {
          "description": "Optional. Anmeldung-likely filter from the search.",
          "type": "boolean"
        },
        "schufaRequired": {
          "description": "Optional. Schufa-required filter from the search.",
          "type": "boolean"
        },
        "noSchufaRequired": {
          "description": "Optional. No-Schufa-required filter from the search.",
          "type": "boolean"
        },
        "noSchufaLikely": {
          "description": "Optional. No-Schufa-likely filter from the search.",
          "type": "boolean"
        },
        "studentsFriendly": {
          "description": "Optional. Students-friendly filter from the search.",
          "type": "boolean"
        },
        "onlyStudentsAllowed": {
          "description": "Optional. Students-only filter from the search.",
          "type": "boolean"
        }
      }
    }
  },
  "required": [
    "listingIds"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "listings": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "available": {
            "type": "boolean"
          },
          "title": {
            "type": "string"
          },
          "price": {
            "type": "number"
          },
          "priceFormatted": {
            "type": "string"
          },
          "housingType": {
            "type": "string"
          },
          "roomType": {
            "type": "string",
            "enum": [
              "private",
              "shared"
            ]
          },
          "rooms": {
            "type": [
              "number",
              "string"
            ]
          },
          "bedrooms": {
            "type": "number"
          },
          "bathrooms": {
            "type": "number"
          },
          "personsMax": {
            "type": "number"
          },
          "address": {
            "type": "string"
          },
          "area": {
            "type": "string"
          },
          "areaSquareMeters": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "availableFrom": {
            "type": "string"
          },
          "availableFromFormatted": {
            "type": "string"
          },
          "availableTo": {
            "type": "string"
          },
          "deposit": {
            "type": "number"
          },
          "depositFormatted": {
            "type": "string"
          },
          "noDeposit": {
            "type": "boolean"
          },
          "provider": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "logoUrl": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "name"
            ],
            "additionalProperties": false
          },
          "images": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "url": {
                  "type": "string"
                },
                "thumbnailUrl": {
                  "type": "string"
                },
                "width": {
                  "type": "number"
                },
                "height": {
                  "type": "number"
                },
                "alt": {
                  "type": "string"
                }
              },
              "required": [
                "url"
              ],
              "additionalProperties": false
            }
          },
          "amenities": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "label": {
                  "type": "string"
                },
                "icon": {
                  "type": "string"
                },
                "tone": {
                  "type": "string",
                  "enum": [
                    "neutral",
                    "positive"
                  ]
                }
              },
              "required": [
                "id",
                "label",
                "tone"
              ],
              "additionalProperties": false
            }
          },
          "amenitiesMoreCount": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "labels": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "petsAllowed": {
            "type": "boolean"
          },
          "registrationPossible": {
            "type": "boolean"
          },
          "detailsUrl": {
            "type": "string"
          },
          "trackingUrl": {
            "type": "string"
          },
          "saved": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "available",
          "images",
          "amenities",
          "amenitiesMoreCount"
        ],
        "additionalProperties": false
      }
    },
    "alertCriteria": {
      "type": "object",
      "properties": {
        "name": {
          "description": "Optional. Short saved-search label in the user's language so Save search uses a meaningful name (not a generic default).",
          "type": "string",
          "minLength": 1,
          "maxLength": 120
        },
        "housingType": {
          "description": "Optional. Same housingType as the preceding search_listings call.",
          "type": "string",
          "enum": [
            "room",
            "apartment"
          ]
        },
        "roomType": {
          "description": "Optional. Same roomType as the preceding search_listings call.",
          "type": "string",
          "enum": [
            "private",
            "shared"
          ]
        },
        "priceMin": {
          "description": "Optional. Minimum monthly price in EUR from the search.",
          "type": "number",
          "minimum": 0
        },
        "priceMax": {
          "description": "Optional. Maximum monthly price in EUR from the search.",
          "type": "number",
          "minimum": 0
        },
        "rooms": {
          "description": "Optional. Exact room counts from the search. Allowed: \"studio\", \"1\"…\"10\" (strings only).",
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "1",
              "2",
              "3",
              "4",
              "5",
              "6",
              "7",
              "8",
              "9",
              "10",
              "studio"
            ]
          }
        },
        "roomsMin": {
          "description": "Optional. Minimum rooms from the search (studio = 0).",
          "type": "number",
          "minimum": 0
        },
        "roomsMax": {
          "description": "Optional. Maximum rooms from the search.",
          "type": "number",
          "minimum": 0
        },
        "providers": {
          "description": "Optional. Provider ids from the search.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "areas": {
          "description": "Optional. Canonical area ids from list_areas used in the search.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "postCode": {
          "description": "Optional. Exact Berlin PLZ from the search.",
          "type": "string"
        },
        "lat": {
          "description": "Optional. Nearby-search latitude (with lng).",
          "type": "number"
        },
        "lng": {
          "description": "Optional. Nearby-search longitude (with lat).",
          "type": "number"
        },
        "radiusKm": {
          "description": "Optional. Nearby-search radius in km.",
          "type": "number",
          "exclusiveMinimum": 0
        },
        "bedroomsMin": {
          "description": "Optional. Minimum bedrooms from the search.",
          "type": "number",
          "minimum": 0
        },
        "squareMetersMin": {
          "description": "Optional. Minimum living area m² from the search.",
          "type": "number",
          "minimum": 0
        },
        "squareMetersMax": {
          "description": "Optional. Maximum living area m² from the search.",
          "type": "number",
          "minimum": 0
        },
        "availableFrom": {
          "description": "Optional. Available-from date (YYYY-MM-DD) from the search.",
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
        },
        "availableTo": {
          "description": "Optional. Available-to date (YYYY-MM-DD) from the search.",
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
        },
        "personsMaxMin": {
          "description": "Optional. Minimum capacity from the search.",
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        "depositMax": {
          "description": "Optional. Maximum deposit EUR from the search.",
          "type": "number",
          "minimum": 0
        },
        "amenityTags": {
          "description": "Optional. Canonical amenity tags (AND) from the search, e.g. wifi, parking, washing_machine.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "petsAllowed": {
          "description": "Optional. Pets filter from the search.",
          "type": "boolean"
        },
        "smokingAllowed": {
          "description": "Optional. Smoking filter from the search.",
          "type": "boolean"
        },
        "registrationPossible": {
          "description": "Optional. Anmeldung/registration filter from the search.",
          "type": "boolean"
        },
        "anmeldungLikely": {
          "description": "Optional. Anmeldung-likely filter from the search.",
          "type": "boolean"
        },
        "schufaRequired": {
          "description": "Optional. Schufa-required filter from the search.",
          "type": "boolean"
        },
        "noSchufaRequired": {
          "description": "Optional. No-Schufa-required filter from the search.",
          "type": "boolean"
        },
        "noSchufaLikely": {
          "description": "Optional. No-Schufa-likely filter from the search.",
          "type": "boolean"
        },
        "studentsFriendly": {
          "description": "Optional. Students-friendly filter from the search.",
          "type": "boolean"
        },
        "onlyStudentsAllowed": {
          "description": "Optional. Students-only filter from the search.",
          "type": "boolean"
        }
      },
      "additionalProperties": false,
      "description": "Optional object. If present, include only the filter keys used in the preceding search_listings call — every nested field is optional; omit unused keys. Never require all fields. Do not include page, limit, sortBy, or sortOrder."
    }
  },
  "required": [
    "listings"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢list_alerts

List the current user's saved search alerts on FlatHunt, including each alert's numeric id, name and creation time when available. Requires alerts.read.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "alerts": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "createdAt": {
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "alerts"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟡create_alert(name, housingType, roomType, priceMin, priceMax, ...)

Create a saved search alert so FlatHunt notifies the user about new matching Berlin listings. Accepts housing, price, size, rooms, availability, canonical area ids, amenity and rental-policy filters. Email notifications are enabled by default; Telegram too when the user has linked Telegram on FlatHunt. Requires the alerts.write scope.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "name": {
      "description": "Optional short label for the saved search (max 120 characters). If omitted, FlatHunt derives a concise label from housing type, budget and location filters.",
      "type": "string",
      "minLength": 1,
      "maxLength": 120
    },
    "housingType": {
      "description": "Type of housing. Studios map to apartment; room includes both private and shared rooms unless roomType narrows it.",
      "type": "string",
      "enum": [
        "room",
        "apartment"
      ]
    },
    "roomType": {
      "description": "Room occupancy: private = one private bedroom in shared housing; shared = a bed in a shared bedroom. Omit to include both. housingType=room remains the broad backwards-compatible filter.",
      "type": "string",
      "enum": [
        "private",
        "shared"
      ]
    },
    "priceMin": {
      "description": "Minimum monthly price in EUR.",
      "type": "number",
      "minimum": 0
    },
    "priceMax": {
      "description": "Maximum monthly price in EUR.",
      "type": "number",
      "minimum": 0
    },
    "rooms": {
      "description": "Exact room counts (OR). Allowed values only: \"studio\", \"1\", \"2\", …, \"10\" (strings, not numbers). Prefer over roomsMin/roomsMax for \"1–2 rooms\": [\"1\",\"2\"] or [\"studio\",\"1\"].",
      "maxItems": 10,
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "1",
          "2",
          "3",
          "4",
          "5",
          "6",
          "7",
          "8",
          "9",
          "10",
          "studio"
        ]
      }
    },
    "roomsMin": {
      "description": "Minimum rooms (studio = 0). Prefer rooms[] for exact OR lists.",
      "type": "number",
      "minimum": 0
    },
    "roomsMax": {
      "description": "Maximum rooms. Prefer rooms[] for exact OR lists.",
      "type": "number",
      "minimum": 0
    },
    "providers": {
      "description": "Restrict to specific housing providers (ids from the providers catalog).",
      "maxItems": 10,
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "areas": {
      "description": "Canonical Berlin area IDs from list_areas (e.g. berlin:ortsteil:prenzlauer-berg). Up to 20 IDs; multiple IDs are combined with OR. District / Ortsteil mode — do not mix with lat/lng/radiusKm. When the user names an area, call list_areas first. Pass only canonical IDs returned by list_areas. Never construct, translate, normalize, or guess IDs.",
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "postCode": {
      "description": "Exact Berlin post code (PLZ), e.g. 10115.",
      "type": "string"
    },
    "lat": {
      "description": "Latitude for nearby search; must be provided with lng (+ radiusKm). Do not mix with areas.",
      "type": "number"
    },
    "lng": {
      "description": "Longitude for nearby search; must be provided with lat (+ radiusKm). Do not mix with areas.",
      "type": "number"
    },
    "radiusKm": {
      "description": "Search radius in km around lat/lng (min 0.1, max 25). Nearby mode — do not mix with areas.",
      "type": "number",
      "minimum": 0.1,
      "maximum": 25
    },
    "bedroomsMin": {
      "description": "Minimum number of bedrooms (from provider extra data when available).",
      "type": "number",
      "minimum": 0
    },
    "squareMetersMin": {
      "description": "Minimum living area in m². \"from 40 m²\" → 40. Filter on the backend — do not paginate to drop small listings.",
      "type": "number",
      "minimum": 0
    },
    "squareMetersMax": {
      "description": "Maximum living area in m².",
      "type": "number",
      "minimum": 0
    },
    "availableFrom": {
      "description": "Available from / not earlier than (YYYY-MM-DD), e.g. \"2026-08-01\".",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "availableTo": {
      "description": "Available until / not later than (YYYY-MM-DD).",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "personsMaxMin": {
      "description": "Minimum capacity (personsMax). Use 2 for couples, 1 for solo — filters listings that can accommodate at least this many people.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "depositMax": {
      "description": "Maximum deposit (Kaution) in EUR.",
      "type": "number",
      "minimum": 0
    },
    "amenityTags": {
      "description": "Canonical amenity tags (AND). Backend filters listings that have ALL of these tags. Catalog (snake_case only): wifi, parking, bike_parking, wheelchair, dishwasher, washing_machine, dryer, elevator, balcony, desk, tv, oven, heating, furnished, fridge, microwave, cooktop, coffee_machine, iron, hair_dryer, closet, wardrobe, bed, bathtub, shower, garden, basement, air_conditioning, parking_street, workspace, fitness, concierge, laundry, pets_friendly. Do not invent aliases (wiFi, hasWifi, Waschmaschine).",
      "maxItems": 10,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1
      }
    },
    "petsAllowed": {
      "description": "true = pets explicitly allowed.",
      "type": "boolean"
    },
    "smokingAllowed": {
      "description": "false = non-smokers only / smoking not allowed.",
      "type": "boolean"
    },
    "registrationPossible": {
      "description": "true = Anmeldung / registration explicitly possible (strict).",
      "type": "boolean"
    },
    "anmeldungLikely": {
      "description": "true = Anmeldung likely (broader). Prefer for \"with Anmeldung\" unless the user needs a hard guarantee.",
      "type": "boolean"
    },
    "schufaRequired": {
      "description": "true = Schufa required.",
      "type": "boolean"
    },
    "noSchufaRequired": {
      "description": "true = Schufa explicitly not required (strict).",
      "type": "boolean"
    },
    "noSchufaLikely": {
      "description": "true = Schufa likely not required (broader). Prefer for \"without Schufa\".",
      "type": "boolean"
    },
    "studentsFriendly": {
      "description": "true = student-oriented housing (broader).",
      "type": "boolean"
    },
    "onlyStudentsAllowed": {
      "description": "true = students-only listings.",
      "type": "boolean"
    },
    "sortBy": {
      "description": "Sort field (default rank). sortOrder is ignored when sortBy=rank. Cheaper first → price+asc; larger area → squareMeters+desc.",
      "type": "string",
      "enum": [
        "rank",
        "price",
        "squareMeters",
        "createdAt",
        "availableFrom"
      ]
    },
    "sortOrder": {
      "description": "Sort direction (default desc). Ignored when sortBy=rank.",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "alert": {
      "type": "object",
      "properties": {
        "id": {
          "type": "number"
        },
        "name": {
          "type": "string"
        },
        "createdAt": {
          "type": "string"
        }
      },
      "required": [
        "id"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "alert"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🔴delete_alert(alertIds, alertId)

Delete one or more of the current user's saved search alerts by numeric id. This is destructive and cannot be undone. Accepts 1–10 ids per call and requires alerts.write.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "alertIds": {
      "description": "Between 1 and 10 alert ids to delete. Preferred for one or many.",
      "minItems": 1,
      "maxItems": 10,
      "type": "array",
      "items": {
        "type": "integer",
        "exclusiveMinimum": 0,
        "maximum": 9007199254740991
      }
    },
    "alertId": {
      "description": "Deprecated single-id form; use alertIds: [id] instead.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "deleted": {
      "type": "boolean"
    },
    "alertIds": {
      "type": "array",
      "items": {
        "type": "number"
      }
    }
  },
  "required": [
    "deleted",
    "alertIds"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢list_saved_listings

List the current user's saved (favorited) FlatHunt listings. Requires the favorites.read scope.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "savedListings": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "listingId": {
            "type": "number"
          },
          "savedAt": {
            "type": "string"
          },
          "listing": {
            "type": "object",
            "properties": {
              "id": {
                "type": "number"
              },
              "title": {
                "type": "string"
              },
              "price": {
                "type": "number"
              },
              "priceFormatted": {
                "type": "string"
              },
              "rooms": {
                "type": [
                  "number",
                  "string"
                ]
              },
              "housingType": {
                "type": "string"
              },
              "roomType": {
                "type": "string",
                "enum": [
                  "private",
                  "shared"
                ]
              },
              "location": {
                "type": "string"
              },
              "area": {
                "type": "string"
              },
              "areaSquareMeters": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991
              },
              "provider": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "logoUrl": {
                    "type": "string"
                  }
                },
                "required": [
                  "id",
                  "name"
                ],
                "additionalProperties": false
              },
              "availableFrom": {
                "type": "string"
              },
              "availableTo": {
                "type": "string"
              },
              "detailsUrl": {
                "type": "string"
              },
              "trackingUrl": {
                "type": "string"
              },
              "deposit": {
                "type": "number"
              },
              "depositFormatted": {
                "type": "string"
              },
              "noDeposit": {
                "type": "boolean"
              },
              "images": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "url": {
                      "type": "string"
                    },
                    "thumbnailUrl": {
                      "type": "string"
                    },
                    "width": {
                      "type": "number"
                    },
                    "height": {
                      "type": "number"
                    },
                    "alt": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "url"
                  ],
                  "additionalProperties": false
                }
              },
              "amenityTags": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "amenitiesUnknown": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "buildingAmenityTags": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "buildingAmenitiesUnknown": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "labels": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "petsAllowed": {
                "type": "boolean"
              },
              "smokingAllowed": {
                "type": "boolean"
              },
              "registrationPossible": {
                "type": "boolean"
              },
              "anmeldungLikely": {
                "type": "boolean"
              },
              "schufaRequired": {
                "type": "boolean"
              },
              "noSchufaRequired": {
                "type": "boolean"
              },
              "noSchufaLikely": {
                "type": "boolean"
              },
              "studentsFriendly": {
                "type": "boolean"
              },
              "onlyStudentsAllowed": {
                "type": "boolean"
              },
              "couplesAllowed": {
                "type": "boolean"
              },
              "childrenAllowed": {
                "type": "boolean"
              },
              "partyAllowed": {
                "type": "boolean"
              },
              "guarantorRequired": {
                "type": "boolean"
              },
              "bedrooms": {
                "type": "number"
              },
              "bathrooms": {
                "type": "number"
              },
              "personsMax": {
                "type": "number"
              },
              "minStayMonths": {
                "type": "number"
              },
              "maxStayMonths": {
                "type": "number"
              },
              "furnished": {
                "type": "string"
              },
              "postCode": {
                "type": "string"
              },
              "propertySubtype": {
                "type": "string"
              },
              "floor": {
                "type": "string"
              },
              "minAge": {
                "type": "number"
              },
              "maxAge": {
                "type": "number"
              },
              "preferredGender": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "title"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "listingId"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "savedListings"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟡save_listing(listingId)

Save (favorite) a FlatHunt listing for the current user by its numeric id. Requires the favorites.write scope. Ownership and duplicate handling are enforced by FlatHunt.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "listingId": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Numeric id of the listing to save."
    }
  },
  "required": [
    "listingId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "saved": {
      "type": "boolean"
    },
    "listingId": {
      "type": "number"
    }
  },
  "required": [
    "saved",
    "listingId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🔴remove_saved_listing(listingId)

Remove a listing from the current user's saved (favorited) listings by its numeric id. Requires the favorites.write scope.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "listingId": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Numeric id of the listing to remove."
    }
  },
  "required": [
    "listingId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "removed": {
      "type": "boolean"
    },
    "listingId": {
      "type": "number"
    }
  },
  "required": [
    "removed",
    "listingId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada11 herramientas