{
  "openapi": "3.0.1",
  "info": {
    "title": "Real Estate MCP API - IMOJOY Real Estate",
    "version": "1.1",
    "description": "MCP fastighetskontext för att söka fastigheter och skicka kontaktförfrågningar. - IMOJOY Real Estate",
    "termsOfService": "https://www.imojoy.pt/termos-e-condicoes",
    "contact": {
      "name": "IMOJOY Real Estate",
      "url": "https://www.imojoy.pt/",
      "email": "geral@imojoy.pt"
    },
    "x-company-info": {
      "name": "IMOJOY Real Estate",
      "ami": "12689",
      "address": "Rua dos Sobreiros, 25 C, Costa da Guia, Cascais, 2750-611 Cascais"
    }
  },
  "servers": [
    {
      "url": "https://www.imojoy.pt/",
      "description": "MCP-serveridentifierare"
    }
  ],
  "components": {
    "schemas": {
      "searchToMatchRequest": {
        "type": "object",
        "properties": {
          "businessType": {
            "type": "string",
            "description": "Definierar eller returnerar identifieraren för fastighetens affärstyp"
          },
          "countryName": {
            "type": "string",
            "description": "Namn på landet som används som filtreringskriterium. Detta fält måste vara tomt när landet inte identifieras."
          },
          "stateName": {
            "type": "string",
            "description": "Regionens namn (distrikt) för fastigheten (obligatoriskt vid sökning om kommun inte anges)."
          },
          "townName": {
            "type": "string",
            "description": "Kommunens namn för fastigheten (obligatoriskt vid sökning om distrikt inte anges)."
          },
          "neighborhoodName": {
            "type": "string",
            "description": "Namn eller ID på stadsdelen där fastigheten ligger."
          },
          "zoneName": {
            "type": "string",
            "description": "Geografisk zonidentifierare som används för filtrering i sökningar."
          },
          "masterCategoryIds": {
            "type": "array",
            "description": "ID:n för en eller flera huvudgrupper av fastighetskategorier (t.ex. lägenheter, hus, lager, mark, hotell). Minst en krävs om ingen specifik fastighetstyp anges."
          },
          "categoryIds": {
            "type": "array",
            "description": "ID:n för en eller flera specifika fastighetskategorier (t.ex. lägenhet, hus, lager, mark, hotell)."
          },
          "condition": {
            "type": "string",
            "description": "Skickstatus."
          },
          "minPrice": {
            "type": "integer",
            "description": "Minimipris i euro. Fyll i när användaren anger en minimal budget eller nedre prisgräns.",
            "format": "int32"
          },
          "maxPrice": {
            "type": "integer",
            "description": "Maximipris i euro. Fyll i när användaren anger en maximal budget eller övre prisgräns.",
            "format": "int32"
          },
          "minBedrooms": {
            "type": "integer",
            "description": "Minsta antal sovrum att filtrera efter",
            "format": "int32"
          },
          "maxBedrooms": {
            "type": "integer",
            "description": "Högsta antal sovrum att filtrera efter",
            "format": "int32"
          },
          "bathrooms": {
            "type": "integer",
            "description": "Minsta antal badrum.",
            "format": "int32"
          },
          "listingReference": {
            "type": "string",
            "description": "Intern referens för fastigheten som används för identifiering."
          },
          "developmentName": {
            "type": "string",
            "description": "Utvecklingsnamn."
          },
          "developmentFractions": {
            "type": "boolean",
            "description": "Anger om sökningen ska ta hänsyn till enheter i ett projekt (t.ex. lägenheter eller butikslokaler) i stället för projektet som helhet. När den är aktiverad innehåller resultaten endast enheter som är kopplade till ett projekt."
          },
          "developmentTags": {
            "type": "array",
            "description": "Projektetiketter som används för att filtrera sökningen."
          },
          "withVideos": {
            "type": "boolean",
            "description": "Söker endast efter fastigheter med tillgängliga videor. Används när användaren nämner uttryck som 'med video', 'med videor', 'har video', 'har videor', 'se fastighetsvideo', 'se video online', etc."
          },
          "withBluePrints": {
            "type": "boolean",
            "description": "Söker endast efter fastigheter med tillgängliga ritningar (blueprints). Använd när användaren nämner 'med ritning', 'har ritning', 'husplan', 'fastighetskarta', 'ritning våning', 'se ritning', etc."
          },
          "withVirtualVisits": {
            "type": "boolean",
            "description": "Söker endast fastigheter med virtuella visningar. Använd när användaren nämner 'virtuell visning', 'virtuell tur', '3D tur', 'interaktiv tur', 'virtuell upplevelse', 'virtuell visning online'."
          },
          "with360Photos": {
            "type": "boolean",
            "description": "Söker endast efter fastigheter med tillgängliga 360º-foton. Använd när användaren nämner 'med 360º foton', 'har 360º foton', 'med panoramabilder', 'har panoramabilder', 'se 360º foton online', etc."
          },
          "featuresNames": {
            "type": "array",
            "description": "Fastighetsegenskaper, inklusive bekvämligheter, tjänster och närliggande intressanta platser samt typer av utsikter för en komplett och detaljerad beskrivning"
          },
          "page": {
            "type": "integer",
            "description": "Sidnummer att returnera i sökresultaten.",
            "format": "int32"
          }
        },
        "description": "Schema som beskriver indata parametrar för fastighetssökning."
      },
      "searchResponse": {
        "type": "object",
        "properties": {
          "results": {
            "type": "array",
            "description": "Lista över resultat på den aktuella sidan, baserat på antal poster per sida.",
            "items": {
              "$ref": "#/components/schemas/DetailResponse"
            }
          },
          "count": {
            "type": "integer",
            "description": "Totalt antal resultat som matchar sökkriterierna.",
            "format": "int32"
          },
          "page": {
            "type": "integer",
            "description": "Nummer på aktuell sida baserat på sökkriterierna.",
            "format": "int32"
          },
          "totalpages": {
            "type": "integer",
            "description": "Totalt antal sidor som matchar sökkriterierna.",
            "format": "int32"
          },
          "statetownnameequals": {
            "type": "boolean",
            "description": "Anger om distriktsnamnet är detsamma som kommunnamnet."
          },
          "developmentname": {
            "type": "string",
            "description": "Projektnamn; detta fält fylls endast i om resultaten är kopplade till ett specifikt projekt med detta namn."
          }
        },
        "description": "Schema som beskriver utdata parametrar för fastighetssökning."
      },
      "detailRequest": {
        "type": "object",
        "properties": {
          "listingId": {
            "type": "integer",
            "description": "Fastighets-ID för kontakt.",
            "format": "int32"
          },
          "listingReference": {
            "type": "string",
            "description": "Intern referens för fastigheten som används för identifiering."
          },
          "developmentFractions": {
            "type": "boolean",
            "description": "Anger om sökningen ska ta hänsyn till enheter i ett projekt (t.ex. lägenheter eller butikslokaler) i stället för projektet som helhet. När den är aktiverad innehåller resultaten endast enheter som är kopplade till ett projekt."
          }
        },
        "description": "Schema som beskriver indata parametrar för fastighetsdetaljer."
      },
      "detailResponse": {
        "type": "object",
        "properties": {
          "listingId": {
            "type": "integer",
            "description": "Unikt ID för fastighetsannonsen.",
            "format": "int32"
          },
          "propertyType": {
            "type": "string",
            "description": "Typ av fastighet."
          },
          "condition": {
            "type": "string",
            "description": "Fastighetens skick."
          },
          "listingReference": {
            "type": "string",
            "description": "Referens till fastigheten som visas i sökresultaten."
          },
          "firstPhoto": {
            "type": "string",
            "description": "URL till miniatyrbild av fastighetens första foto."
          },
          "description": {
            "type": "string",
            "description": "Detaljerad beskrivning av fastigheten."
          },
          "title": {
            "type": "string",
            "description": "Annonsens titel."
          },
          "price": {
            "type": "string",
            "description": "Pris i euro."
          },
          "imiValue": {
            "type": "string",
            "description": "IMI-belopp som ska betalas för fastigheten, beräknat utifrån VPT och tillämpliga skatteregler."
          },
          "business": {
            "type": "string",
            "description": "Typ av fastighetsaffär."
          },
          "location": {
            "type": "string",
            "description": "Namn på platsen."
          },
          "bedrooms": {
            "type": "integer",
            "description": "Antal sovrum i fastigheten.",
            "format": "int32"
          },
          "bathrooms": {
            "type": "integer",
            "description": "Antal badrum i fastigheten.",
            "format": "int32"
          },
          "url": {
            "type": "string",
            "description": "Offentlig URL för annonsen."
          },
          "hasVideos": {
            "type": "boolean",
            "description": "Anger om fastigheten har tillgängliga videor."
          },
          "hasBluePrints": {
            "type": "boolean",
            "description": "Anger om fastigheten har tillgängliga ritningar eller blueprints."
          },
          "has360Photos": {
            "type": "boolean",
            "description": "Anger om fastigheten har tillgängliga 360°-foton."
          },
          "hasVirtualVisits": {
            "type": "boolean",
            "description": "Anger om fastigheten har tillgängliga virtuella visningar eller turer."
          },
          "features": {
            "description": "Dessa nycklar representerar beskrivningen av specifika egenskaper hos en fastighet, inklusive fysiska attribut och relevanta platser som pool, havsutsikt, närhet till sjukhus, skolor och andra viktiga faciliteter. Denna information hjälper till att detaljera och kvalificera fastigheten för att förbättra sökfiltrering och resultatpresentation enligt användarens preferenser.",
            "$ref": "#/components/schemas/Dictionary`2"
          }
        },
        "description": "Schema som beskriver utdata parametrar för fastighetsdetaljer."
      },
      "leadRequest": {
        "type": "object",
        "properties": {
          "listingId": {
            "type": "integer",
            "description": "Fastighets-ID för kontakt.",
            "format": "int32"
          },
          "listingReference": {
            "type": "string",
            "description": "Intern referens för fastigheten som används för identifiering."
          },
          "name": {
            "type": "string",
            "description": "Användarens namn."
          },
          "email": {
            "type": "string",
            "description": "Användarens e-postadress (obligatorisk om inget telefonnummer anges)."
          },
          "phone": {
            "type": "string",
            "description": "Användarens telefonnummer (valfritt om e-postadress anges)."
          },
          "phoneCountryCode": {
            "type": "string",
            "description": "Telefonlandskod inklusive plustecken, t.ex. \"+46\" för Sverige, \"+351\" för Portugal."
          },
          "message": {
            "type": "string",
            "description": "Användarens anpassade meddelande."
          }
        },
        "description": "Schema som beskriver indata parametrar för att skicka fastighetsleads."
      },
      "leadResponse": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "description": "Status för inskickande av kontaktformulär (t.ex.: lyckad, fel)."
          },
          "message": {
            "type": "string",
            "description": "Meddelande som beskriver resultatet av kontaktformulärets inskickande."
          },
          "confirmedLead": {
            "type": "boolean",
            "description": ""
          }
        },
        "description": "Schema som beskriver utdata parametrar för att skicka fastighetsleads."
      },
      "companyInfoRequest": {
        "type": "object",
        "properties": {
          "companyId": {
            "type": "integer",
            "description": "Identifier för företaget/byrån att fråga (valfritt, standard är företagets interna).",
            "format": "int32"
          }
        },
        "description": "Inmatningsschema för företagsinformationsförfrågan"
      },
      "companyInfoWithAgenciesResponse": {
        "type": "object",
        "properties": {
          "headquarters": {
            "description": "Information om företagets kontaktuppgifter som avser huvudkontoret.",
            "$ref": "#/components/schemas/CompanyInfoResponse"
          },
          "agencies": {
            "type": "array",
            "description": "Information om kontaktuppgifter för företagets kontor.",
            "items": {
              "$ref": "#/components/schemas/CompanyInfoResponse"
            }
          }
        },
        "description": "Utmatningsschema med företagsinformation"
      },
      "companyInfoResponse": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Företagsnamn"
          },
          "phone": {
            "type": "string",
            "description": "Företagets telefonnummer"
          },
          "mobile": {
            "type": "string",
            "description": "Företagets mobilnummer"
          },
          "email": {
            "type": "string",
            "description": "Företagets e-postadress"
          },
          "address": {
            "type": "string",
            "description": "Företagets adress (utan postnummer)"
          },
          "district": {
            "type": "string",
            "description": "Distrikt där företaget är beläget"
          },
          "municipality": {
            "type": "string",
            "description": "Kommun där företaget är beläget"
          },
          "parish": {
            "type": "string",
            "description": "Församling där företaget är beläget"
          },
          "zipCode": {
            "type": "string",
            "description": "Postnummer för företagsadressen"
          },
          "businessHours": {
            "type": "string",
            "description": "Företagets öppettider"
          },
          "googleMapsUrl": {
            "type": "string",
            "description": "Direktlänk till företagets plats på Google Maps"
          }
        },
        "description": "Utmatningsschema med företagsinformation"
      },
      "rasorInfoRequest": {
        "type": "object",
        "properties": {
          "rasorName": {
            "type": "string",
            "description": "Namnet på den fastighetskonsult som du vill få detaljerad information om."
          },
          "stateName": {
            "type": "string",
            "description": "Möjliggör sökning efter konsulter per distrikt."
          },
          "townName": {
            "type": "string",
            "description": "Möjliggör sökning efter konsulter per kommun."
          }
        },
        "description": "Inmatningsschema för förfrågan om detaljerad information om fastighetskonsulten"
      },
      "rasorInfoResponse": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Fullständigt namn på fastighetskonsulten."
          },
          "phone": {
            "type": "string",
            "description": "Fast telefonnummer till fastighetskonsulten."
          },
          "mobile": {
            "type": "string",
            "description": "Mobiltelefonnummer till fastighetskonsulten."
          },
          "observations": {
            "type": "string",
            "description": "Ytterligare kommentarer relaterade till fastighetskonsulten."
          },
          "email": {
            "type": "string",
            "description": "E-postadress till fastighetskonsulten."
          },
          "address": {
            "type": "string",
            "description": "Fullständig adress till fastighetskonsulten eller kontoret."
          },
          "city": {
            "type": "string",
            "description": "Kommun där konsulten verkar."
          },
          "parish": {
            "type": "string",
            "description": "Socken där konsulten verkar."
          },
          "spokenLanguages": {
            "type": "array",
            "description": "Lista över språk som konsulten talar."
          },
          "socialProfiles": {
            "type": "array",
            "description": "Lista över länkar till konsultens sociala profiler.",
            "items": {
              "$ref": "#/components/schemas/SocialProfile"
            }
          },
          "avatar": {
            "type": "string",
            "description": "Bild på avataren kopplad till konsulten."
          },
          "listingUrl": {
            "type": "string",
            "description": "URL till sidan som visar alla fastigheter som är tilldelade eller relaterade till konsulten och ger direkt åtkomst till den kompletta listan över respektive fastigheter."
          },
          "detailUrl": {
            "type": "string",
            "description": "Sida som visar agentens fullständiga information, inklusive kontaktuppgifter, professionell profil och tillhörande fastigheter."
          }
        },
        "description": "Utmatningsschema med detaljerad information om fastighetskonsulten"
      },
      "imiRequest": {
        "type": "object",
        "properties": {
          "townName": {
            "type": "string",
            "description": "Namn på kommunen där fastigheten är belägen. Detta fält krävs för geografisk identifiering och bestämning av IMI-satsen. Exempel: \"Lissabon\", \"Porto\", \"Sintra\", \"Albufeira\"."
          },
          "taxableValue": {
            "type": "number",
            "description": "Beskattningsbar taxeringsvärde för fastigheten (VPT), enligt registreringen hos den portugisiska skattemyndigheten. Detta är det officiella skattemässiga värdet som används som grund för IMI. Måste vara ett positivt decimaltal uttryckt i euro. Exempel: \"185000.00\".",
            "format": "decimal"
          },
          "dependentsNumber": {
            "type": "integer",
            "description": "Antal försörjda personer i skattebetalarens hushåll för det aktuella skatteåret. Detta inkluderar barn, äldre föräldrar eller andra lagligt erkända personer som kan ge rätt till IMI-reducering eller undantag. Giltiga värden: heltal ≥ 0. Exempel: \"2\".",
            "format": "int32"
          },
          "isUrban": {
            "type": "boolean",
            "description": "Anger om fastigheten klassificeras som urban eller lantlig. Urbana fastigheter omfattas av IMI, medan lantliga fastigheter kan omfattas av andra beskattningsregler. Exempel: true/false."
          }
        },
        "description": "Inmatningsschema som används för att begära beräkning av kommunal fastighetsskatt (IMI) för en fastighet."
      },
      "imiResponse": {
        "type": "object",
        "properties": {
          "townName": {
            "type": "string",
            "description": "Namn på kommunen som beaktas för IMI-beräkningen"
          },
          "taxableValue": {
            "type": "string",
            "description": "Skattbar förmögenhetsvärde (VPT) som beaktas för IMI-beräkningen, uttryckt i euro"
          },
          "dependentsNumber": {
            "type": "string",
            "description": "Antal försörjda som beaktas för förmåner som tillämpas vid IMI-beräkningen"
          },
          "isUrban": {
            "type": "string",
            "description": "Indikation om fastigheten är urban eller landsbygd, beaktad vid IMI-beräkningen"
          },
          "imiValue": {
            "type": "string",
            "description": "Slutligt IMI-värde (kommunal fastighetsskatt) beräknat baserat på tillhandahållen data."
          },
          "imiTaxValue": {
            "type": "string",
            "description": "Satsen som användes för beräkning av IMI."
          },
          "dependentDiscount": {
            "type": "string",
            "description": "Rabattvärde baserat på antalet anhöriga."
          },
          "dataYear": {
            "type": "integer",
            "description": "Referensår för de skattesatser som används vid IMI-beräkningen.",
            "format": "int32"
          }
        },
        "description": "Utgångsschema som tillhandahåller resultatet av IMI-beräkningen, inklusive detaljerad information om beloppet som ska betalas."
      },
      "servicesInfoRequest": {
        "type": "object",
        "properties": {
          "companyId": {
            "type": "integer",
            "description": "Identifier för företaget/byrån att fråga (valfritt, standard är företagets interna).",
            "format": "int32"
          }
        },
        "description": "Sammanfattning av tillgängliga tjänster, inklusive deras syfte och tillämpning för kunder."
      },
      "servicesInfoResponse": {
        "type": "object",
        "properties": {
          "companyId": {
            "type": "integer",
            "description": "Unik identifierare för företaget som är kopplat till tjänstekatalogen.",
            "format": "int32"
          },
          "companyName": {
            "type": "string",
            "description": "Namn på företaget som tillhandahåller tjänstekatalogen."
          },
          "categories": {
            "type": "array",
            "description": "Lista över tillgängliga tjänstekategorier, organiserade efter kundprofil.",
            "items": {
              "$ref": "#/components/schemas/ServiceCategory"
            }
          }
        },
        "description": "Sammanfattning av de tjänster som tillhandahålls kunden, inklusive detaljer, omfattning och tillämpning."
      }
    }
  },
  "paths": {
    "/mcp/search": {
      "get": {
        "summary": "Sök fastighetsannonser med filter som plats, pris, typ och skick.",
        "description": "Sök fastighetsannonser med filter som plats, pris, typ och skick.",
        "operationId": "mcpSearch",
        "parameters": [
          {
            "name": "BusinessType",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Definierar eller returnerar identifieraren för fastighetens affärstyp (Hyra, Säljes, Ägar överföring). Om det inte anges i sökningen används Försäljning som standard"
          },
          {
            "name": "CountryName",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Namn på landet som används som filtreringskriterium. Detta fält måste vara tomt när landet inte identifieras., (is required)"
          },
          {
            "name": "StateName",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Regionens namn (distrikt) för fastigheten (obligatoriskt vid sökning om kommun inte anges)., (is required)"
          },
          {
            "name": "TownName",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Kommunens namn för fastigheten (obligatoriskt vid sökning om distrikt inte anges)."
          },
          {
            "name": "NeighborhoodName",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Namn eller ID på stadsdelen där fastigheten ligger."
          },
          {
            "name": "ZoneName",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Geografisk zonidentifierare som används för filtrering i sökningar."
          },
          {
            "name": "MasterCategoryIds",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "ID:n för en eller flera huvudgrupper av fastighetskategorier (t.ex. lägenheter, hus, lager, mark, hotell). Minst en krävs om ingen specifik fastighetstyp anges."
          },
          {
            "name": "CategoryIds",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "ID:n för en eller flera specifika fastighetskategorier (t.ex. lägenhet, hus, lager, mark, hotell)."
          },
          {
            "name": "Condition",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Skickstatus. (Begagnat, För demolering eller renovering, Icke applicerbart, Med renovations Stöd, Nyproduktion, Projekterad, Remodelled, Renoverad, Renoverings objekt, Reserverad, Till salu, Under byggnad)"
          },
          {
            "name": "MinPrice",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Minimipris i euro. Fyll i när användaren anger en minimal budget eller nedre prisgräns."
          },
          {
            "name": "MaxPrice",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Maximipris i euro. Fyll i när användaren anger en maximal budget eller övre prisgräns."
          },
          {
            "name": "MinBedrooms",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Minsta antal sovrum att filtrera efter"
          },
          {
            "name": "MaxBedrooms",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Högsta antal sovrum att filtrera efter"
          },
          {
            "name": "Bathrooms",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Minsta antal badrum."
          },
          {
            "name": "ListingReference",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Intern referens för fastigheten som används för identifiering."
          },
          {
            "name": "DevelopmentName",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Utvecklingsnamn."
          },
          {
            "name": "DevelopmentFractions",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "description": "Anger om sökningen ska ta hänsyn till enheter i ett projekt (t.ex. lägenheter eller butikslokaler) i stället för projektet som helhet. När den är aktiverad innehåller resultaten endast enheter som är kopplade till ett projekt."
          },
          {
            "name": "DevelopmentTags",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "Projektetiketter som används för att filtrera sökningen. (Apartamentos, Cidade, Comissão 2%, Comissão 2,5%, Comissão 3%, Comissão 3,5%, Comissão 4%, Comissão 4.5%, Comissão 5%, EMPADF034, EMPADF036, EMPADF037, EMPADF038, EMPCAP003, EMPCAP005, EMPHS004, EMPPO001, Empreendimento, Exclusivo, Falta Fotos, Falta planta, Falta vídeo, Falta VV, Imóvel empreendimento, Moradias, Publicação menos Casa Sapo, Publicação menos Casa Yes, publicação menos idealista, Publicação site Imojoy, Publicação sites internacionais, Publicação todos os sites, Redes Sociais, Vídeo CC, Visita virtual)"
          },
          {
            "name": "WithVideos",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "description": "Söker endast efter fastigheter med tillgängliga videor. Används när användaren nämner uttryck som 'med video', 'med videor', 'har video', 'har videor', 'se fastighetsvideo', 'se video online', etc."
          },
          {
            "name": "WithBluePrints",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "description": "Söker endast efter fastigheter med tillgängliga ritningar (blueprints). Använd när användaren nämner 'med ritning', 'har ritning', 'husplan', 'fastighetskarta', 'ritning våning', 'se ritning', etc."
          },
          {
            "name": "WithVirtualVisits",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "description": "Söker endast fastigheter med virtuella visningar. Använd när användaren nämner 'virtuell visning', 'virtuell tur', '3D tur', 'interaktiv tur', 'virtuell upplevelse', 'virtuell visning online'."
          },
          {
            "name": "With360Photos",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "description": "Söker endast efter fastigheter med tillgängliga 360º-foton. Använd när användaren nämner 'med 360º foton', 'har 360º foton', 'med panoramabilder', 'har panoramabilder', 'se 360º foton online', etc."
          },
          {
            "name": "FeaturesNames",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "Fastighetsegenskaper, inklusive bekvämligheter, tjänster och närliggande intressanta platser samt typer av utsikter för en komplett och detaljerad beskrivning (24 hours security, Access to land, Acustic isolation, Admin area, Airport, Alarm, Allmänna transporter, Annexes, Apotek, Attic, Bank, Bar, Barbecue, Berg, Bibliotek, Blast door, Boiler, Bottled gas, Bus station, Canteen, CCTV, Central damsugare, Central värme, Closet, Common study room, Conference room, Corner, Co-working, Dam, Dark glass, Dinning room, Dishwasher, Display, Domotics, Double glass, Dressing room, Dryer, Ejendommen har kontor, Electric blinds, Electric gate, Electric hob, Electric hot water, Electric stove, Electricity, Equiped kitchen, Esplanade, Excellent access, Fence, Fire detection, Fire station, Fireplace, Flod, Flood detection, Fruit trees, Garage, Gas, Gas detectors, Gas hob, Gas hot water, Golf, Golf course, Green spaces, Guest room, Gym, Hav, Heat recovery unit, Heated towel racks, High Security Door, Highway, Hiss, Historic area, Induction hob, Internet, Internet Pre-Installation, Intruder detector, Jacuzzi, Kemtvätt, Kitchen, Kitchen hood, Kitchenette, Källare, Land, Landskap, Library, Living room, Loading docks, Luftkonditionering, Manouver area, Manual gate, Market, Meeting room, Microwave, Modular cabinets, Möblerad, Natural gas, Natural light, Near the sea, Open space, Oven, Parking, Party room, Petrol station, Phone, Piped gas, Playground, Playroom, Plot, Polis, Porch, Pre-installation air conditioning, Pre-installation alarm, Pre-installation of cable TV, Pre-installation of solar panels, Private bathroom, Public parking, Public sewage, Radiant floors, Ramp, Reception, Refrigerator, Safe box, Sauna, Sealed complex, Security Service, Service bathroom, Shared bathroom, Shared pool, Shed, Shielded door, Shower, Sjukhus, Skafferi, Skola, Smoke Detector, Smoke extraction, Snabbköp, Solar orientation, Solar panels, Solarium, Sports Complex, Stad, Stadskärna, Staff changing room, Storage house, Stove, Strand, Subway, Swimming Pool, Swimming pools, Svit, Taxi rank, Tennis bana, Termic isolation, Terrain Type (Slope), Terrass, Trade Zone, Tradgard, Truck parking, Trädgård, Tub, Turkish bath, Wall, Varuhus, Washer machine, Water, Whirlpool tub, Wide range of services, Video entry, Video surveillance, WI-fi, Wine cellar, Vineyard, Winter garden)"
          },
          {
            "name": "Page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Sidnummer att returnera i sökresultaten."
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResponse"
                }
              }
            }
          }
        }
      }
    },
    "/mcp/detail": {
      "get": {
        "summary": "Hämtar detaljerad information om en fastighet.",
        "description": "Hämtar detaljerad information om en fastighet.",
        "operationId": "mcpDetail",
        "parameters": [
          {
            "name": "ListingId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Fastighets-ID för kontakt."
          },
          {
            "name": "ListingReference",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Intern referens för fastigheten som används för identifiering."
          },
          {
            "name": "DevelopmentFractions",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "description": "Anger om sökningen ska ta hänsyn till enheter i ett projekt (t.ex. lägenheter eller butikslokaler) i stället för projektet som helhet. När den är aktiverad innehåller resultaten endast enheter som är kopplade till ett projekt."
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailResponse"
                }
              }
            }
          }
        }
      }
    },
    "/mcp/lead": {
      "get": {
        "summary": "Skicka ett kontaktformulär för en specifik annons.",
        "description": "Skicka ett kontaktformulär för en specifik annons.",
        "operationId": "mcpLead",
        "parameters": [
          {
            "name": "ListingId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Fastighets-ID för kontakt."
          },
          {
            "name": "ListingReference",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Intern referens för fastigheten som används för identifiering."
          },
          {
            "name": "Name",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Användarens namn., (is required)"
          },
          {
            "name": "Email",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Användarens e-postadress (obligatorisk om inget telefonnummer anges)., (is required)"
          },
          {
            "name": "Phone",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Användarens telefonnummer (valfritt om e-postadress anges)."
          },
          {
            "name": "PhoneCountryCode",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Telefonlandskod inklusive plustecken, t.ex. \"+46\" för Sverige, \"+351\" för Portugal."
          },
          {
            "name": "Message",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Användarens anpassade meddelande."
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LeadResponse"
                }
              }
            }
          }
        }
      }
    },
    "/mcp/companyinfo": {
      "get": {
        "summary": "Gör det möjligt att hämta företagets kontaktuppgifter, inklusive byrånamn, adress, telefonnummer och e-post. Perfekt för att visa institutionell information eller för att möjliggöra för användaren att kontakta byrån.",
        "description": "Gör det möjligt att hämta företagets kontaktuppgifter, inklusive byrånamn, adress, telefonnummer och e-post. Perfekt för att visa institutionell information eller för att möjliggöra för användaren att kontakta byrån.",
        "operationId": "mcpCompanyInfo",
        "parameters": [
          {
            "name": "CompanyId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Identifier för företaget/byrån att fråga (valfritt, standard är företagets interna)."
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyInfoWithAgenciesResponse"
                }
              }
            }
          }
        }
      }
    },
    "/mcp/rasorinfo": {
      "get": {
        "summary": "Gör det möjligt att hämta fastighetskonsultens kontaktuppgifter, inklusive namn, telefon, e-post och adress. Perfekt för att visa kontaktinformation för konsulten eller för att möjliggöra för användaren att kontakta denne.",
        "description": "Gör det möjligt att hämta fastighetskonsultens kontaktuppgifter, inklusive namn, telefon, e-post och adress. Perfekt för att visa kontaktinformation för konsulten eller för att möjliggöra för användaren att kontakta denne.",
        "operationId": "mcpRasorInfo",
        "parameters": [
          {
            "name": "RasorName",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Namnet på den fastighetskonsult som du vill få detaljerad information om."
          },
          {
            "name": "StateName",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Möjliggör sökning efter konsulter per distrikt."
          },
          {
            "name": "TownName",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Möjliggör sökning efter konsulter per kommun."
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RasorInfoResponse"
                }
              }
            }
          }
        }
      }
    },
    "/mcp/imicalculator": {
      "get": {
        "summary": "Möjliggör att bestämma värdet av den kommunala fastighetsskatten (IMI) baserat på de uppgifter som tillhandahålls av användaren. Tjänsten validerar den angivna kommunen, identifierar tillämplig koefficient, bearbetar den skattepliktiga fastighetsvärdet (VPT), antal beroende och fastighetens natur (urban eller landsbygd) och returnerar det slutliga IMI-beloppet som ska betalas enligt gällande skatteregler i Portugal.",
        "description": "Möjliggör att bestämma värdet av den kommunala fastighetsskatten (IMI) baserat på de uppgifter som tillhandahålls av användaren. Tjänsten validerar den angivna kommunen, identifierar tillämplig koefficient, bearbetar den skattepliktiga fastighetsvärdet (VPT), antal beroende och fastighetens natur (urban eller landsbygd) och returnerar det slutliga IMI-beloppet som ska betalas enligt gällande skatteregler i Portugal.",
        "operationId": "mcpImiCalculator",
        "parameters": [
          {
            "name": "TownName",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Namn på kommunen där fastigheten är belägen. Detta fält krävs för geografisk identifiering och bestämning av IMI-satsen. Exempel: \"Lissabon\", \"Porto\", \"Sintra\", \"Albufeira\"."
          },
          {
            "name": "TaxableValue",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number",
              "format": "decimal"
            },
            "description": "Beskattningsbar taxeringsvärde för fastigheten (VPT), enligt registreringen hos den portugisiska skattemyndigheten. Detta är det officiella skattemässiga värdet som används som grund för IMI. Måste vara ett positivt decimaltal uttryckt i euro. Exempel: \"185000.00\"."
          },
          {
            "name": "DependentsNumber",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Antal försörjda personer i skattebetalarens hushåll för det aktuella skatteåret. Detta inkluderar barn, äldre föräldrar eller andra lagligt erkända personer som kan ge rätt till IMI-reducering eller undantag. Giltiga värden: heltal ≥ 0. Exempel: \"2\"."
          },
          {
            "name": "IsUrban",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "description": "Anger om fastigheten klassificeras som urban eller lantlig. Urbana fastigheter omfattas av IMI, medan lantliga fastigheter kan omfattas av andra beskattningsregler. Exempel: true/false."
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IMIResponse"
                }
              }
            }
          }
        }
      }
    },
    "/mcp/servicesinfo": {
      "get": {
        "summary": "Beskrivning av endpoint som tillhandahåller fullständig information om de tjänster som finns tillgängliga för en kundprofil.",
        "description": "Beskrivning av endpoint som tillhandahåller fullständig information om de tjänster som finns tillgängliga för en kundprofil.",
        "operationId": "mcpServicesInfo",
        "parameters": [
          {
            "name": "CompanyId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Identifier för företaget/byrån att fråga (valfritt, standard är företagets interna)."
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServicesInfoResponse"
                }
              }
            }
          }
        }
      }
    }
  }
}