Live

Immobiliare.it logo

Immobiliare.it API and MCP server

immobiliare.it

Immobiliare.it has no public API for listings, messages or visit requests (checked 11 Oct 2026). Cotlet is a hosted MCP server and REST API for Immobiliare.it with 12 endpoints (5 read, 7 write): your AI agent signs in as you and does the work.

Category
Real estate
Endpoints
12 5 read, 7 write
Updated
How Cotlet connects your agent to Immobiliare.it
  1. Your agent

    Claude Code, Codex, Cursor or a script

  2. Cotlet

    MCP server and REST API · 12 endpoints

    cotlet.dev/mcp/v1

  3. Immobiliare.it logo

    Immobiliare.it

    Signed in as you on immobiliare.it

You sign in once. We never store your password.

Official API

Does Immobiliare.it have an official API?

Immobiliare.it has no public API for listings, messages or visit requests (checked 11 Oct 2026). Agencies get listings onto the portal only through agency management software such as Getrix Multinvio, and everyone else manages listings and Messages by hand in their personal area.

What Immobiliare.it's own tools do compared with Cotlet
Task Immobiliare.it official Cotlet
List your published listings with views No Yes
Publish a new listing Partly Agencies only, sent from their management software Yes
Edit price or description of a listing Partly Agencies only, through the same software feed Yes
Delete a listing No Yes
Read conversations and visit requests in Messages No Yes
Reply to someone who contacted you No Yes
Contact an advertiser or request a visit No Yes
Save a search or read saved listings No Yes

Sources: Immobiliare.it help: Managing contacts · Immobiliare.it help: Publish a listing for sale or rent · Immobiliare.it help: Request a visit · Immobiliare.it help: Edit a listing · Immobiliare.it help: Saving a listing · Immobiliare.it help: Save a search and receive alerts on new listings · Getrix Multinvio: sending listings to portals

Common use cases

What can an AI agent do in Immobiliare.it?

Cotlet is best for property owners, agents and house hunters who want their AI agent to handle Immobiliare.it messages, listing edits and visit requests without running or fixing a server.

  • Answer messages and visit requests about a listing Runs: Daily

    Answer every new Immobiliare.it message about the Bologna flat in Via Mascarella. I can show it Saturday at 10:00, 11:00 or 12:00, in person only. Do not reply to anyone who offers a deposit before seeing it; list those for me. Your agent calls list_conversations, get_conversation, get_listing and reply_to_conversation.

  • Find listings with views but no enquiries Runs: Weekly

    Every Monday, compare views and messages for each of my Immobiliare.it listings, tell me which ones get looked at but not contacted, and suggest whether to change the price, photos or text. Your agent calls list_listings, list_conversations and get_listing.

  • Change the price of a listing

    Drop the price of the Turin apartment to 239,000 EUR and update the description to say the kitchen is new. Your agent calls list_listings and update_listing.

  • Request visits for saved listings Runs: Weekly

    Go through the flats I saved on Immobiliare.it, skip removed ones and anything over 300,000 EUR, and request an in-person visit next Saturday or Sunday morning for the rest I have not contacted yet. Your agent calls list_saved_listings, get_listing, list_conversations and request_visit.

  • Publish a listing from your details

    Publish my Milan studio for rent at 950 EUR a month with the photos in ./studio. Your agent calls create_listing.

Endpoints

What is the Immobiliare.it API?

Cotlet's Immobiliare.it API exposes 12 endpoints for your own Immobiliare.it account: list listings, get listing, list conversations, get conversation, list saved listings, save search, create listing, update listing, delete listing, reply to conversation, contact advertiser and request visit. The list_listings endpoint returns your Published listings with contract, price, address, visibility and number of views. Each endpoint takes simple JSON inputs like listing_id, limit or cursor and works both as an MCP tool for agents and as a REST call for scripts.

All endpoints · 12 total

missing one? request an endpoint

  • POST

    list_listings

    read

    Returns the listings in your Published listings, with the number of views the portal shows for each. Filter by sale or rent. Pass next_cursor back as cursor for the next page. Use listing_id from each item in the other tools.

    POST /api/v1/immobiliare/list_listings

    Input

    Input: list_listings
    Parameter Type Description
    contract enum sale, rent or all. Default: all.
    limit integer 1 to 100. Default: 50.
    cursor string Next page cursor from the previous call.

    Example response

    {
      "listings": [
        {
          "listing_id": "118734552",
          "title": "Two-room flat, Bologna",
          "contract": "sale",
          "price": 239000,
          "address": "Via Example 5, Bologna",
          "visibility": "BASE",
          "views": 412,
          "url": "https://www.immobiliare.it/annunci/118734552/"
        },
        {
          "listing_id": "118790021",
          "title": "Studio, Milano",
          "contract": "rent",
          "price": 950,
          "address": "Via Example 10, Milano",
          "visibility": "BASE",
          "views": 96,
          "url": "https://www.immobiliare.it/annunci/118790021/"
        }
      ],
      "next_cursor": null
    }
  • POST

    get_listing

    read

    Returns one listing as the portal shows it. Works for your own listings and for any public listing, so your agent can read a flat before it asks for a visit.

    POST /api/v1/immobiliare/get_listing

    Input

    Input: get_listing
    Parameter Type Description
    listing_id required string Your listing ID from list_listings, or any public listing ID.

    Example response

    {
      "listing_id": "118734552",
      "category": "residential",
      "property_type": "apartment",
      "contract": "sale",
      "price": 239000,
      "address": "Via Example 5, Bologna",
      "characteristics": {
        "surface_m2": 68,
        "rooms": 2,
        "bathrooms": 1,
        "floor": 2
      },
      "description": "Bright two-room flat near the centre.",
      "photo_count": 12,
      "url": "https://www.immobiliare.it/annunci/118734552/"
    }
  • POST

    list_conversations

    read

    Lists conversations in Messages, most recent first. Filter by listing_id to see only the people who wrote about one listing. Each item flags whether it has a visit request. Pass next_cursor back as cursor for the next page.

    POST /api/v1/immobiliare/list_conversations

    Input

    Input: list_conversations
    Parameter Type Description
    listing_id string Only conversations about this listing.
    limit integer 1 to 100. Default: 50.
    cursor string Next page cursor from the previous call.

    Example response

    {
      "conversations": [
        {
          "conversation_id": "c_58210934",
          "listing_id": "118734552",
          "with": "Marco R.",
          "last_message": "Is the flat still available?",
          "last_message_at": "2026-10-10T15:10:00+02:00",
          "has_visit_request": true
        }
      ],
      "next_cursor": null
    }
  • POST

    get_conversation

    read

    Returns all messages of one conversation, oldest first, so your agent reads the thread in order. If the person asked for a visit, the request shows the mode, the days and the time slots they offered.

    POST /api/v1/immobiliare/get_conversation

    Input

    Input: get_conversation
    Parameter Type Description
    conversation_id required string Conversation ID from list_conversations.

    Example response

    {
      "conversation_id": "c_58210934",
      "listing_id": "118734552",
      "messages": [
        {
          "message_id": "m_903114100",
          "from": "them",
          "body": "Is the flat still available?",
          "sent_at": "2026-10-10T15:10:00+02:00"
        }
      ],
      "visit_request": {
        "mode": "in_person",
        "days": [
          "2026-10-17"
        ],
        "time_slots": [
          "10:00-12:00"
        ]
      }
    }
  • POST

    list_saved_listings

    read

    Returns your saved listings with the note you wrote on each and a removed flag for listings that left the portal. Use ad_id from each item with get_listing, contact_advertiser and request_visit.

    POST /api/v1/immobiliare/list_saved_listings

    Input

    Input: list_saved_listings
    Parameter Type Description
    limit integer 1 to 100. Default: 50.
    cursor string Next page cursor from the previous call.

    Example response

    {
      "saved": [
        {
          "ad_id": "117220481",
          "title": "Three-room flat, Torino",
          "price": 285000,
          "note": "Check the heating",
          "removed": false
        },
        {
          "ad_id": "116004417",
          "title": "Two-room flat, Torino",
          "price": 199000,
          "note": "",
          "removed": true
        }
      ],
      "next_cursor": null
    }
  • POST

    create_listing

    write

    Creates a listing from the details you give and returns its ID with status in_review. The portal reviews it before it goes live, which can take up to 48 hours. Photos and floor plans are uploaded from the URLs you pass. By default you confirm each call; you can switch that off for this tool.

    POST /api/v1/immobiliare/create_listing

    Input

    Input: create_listing
    Parameter Type Description
    category required string Property category, e.g. residential or commercial.
    property_type required string Type within the category, e.g. apartment, villa, office.
    contract required enum sale or rent.
    address required string Street address and town of the property.
    characteristics required object Surface, rooms, bathrooms, floor and other features.
    price required integer Price in EUR; monthly rent for rentals.
    description required string Listing text.
    photo_urls string[] Photos to upload, by URL.
    floor_plan_urls string[] Floor plans to upload, by URL.

    Example response

    {
      "listing_id": "118790021",
      "status": "in_review",
      "visibility": "BASE",
      "url": "https://www.immobiliare.it/annunci/118790021/"
    }
  • POST

    update_listing

    write

    Changes only the fields you pass and returns the updated values. The listing keeps its ID and URL. It reaches no one directly and the old value goes back with one more call, so it runs without asking.

    POST /api/v1/immobiliare/update_listing

    Input

    Input: update_listing
    Parameter Type Description
    listing_id required string Listing ID from list_listings.
    fields required object Any of price, description, characteristics, photo_urls, floor_plan_urls.

    Example response

    {
      "listing_id": "118734552",
      "updated": [
        "price",
        "description"
      ],
      "price": 239000,
      "status": "online"
    }
  • POST

    delete_listing

    write

    Deletes the listing from the portal. It cannot be undone with another call; you would publish it again. By default you confirm each call; you can switch that off for this tool.

    POST /api/v1/immobiliare/delete_listing

    Input

    Input: delete_listing
    Parameter Type Description
    listing_id required string Listing ID from list_listings.

    Example response

    {
      "listing_id": "118790021",
      "status": "deleted"
    }
  • POST

    reply_to_conversation

    write

    Sends a message in an existing conversation under your name and returns its ID and time. By default you confirm each call; you can switch that off for this tool.

    POST /api/v1/immobiliare/reply_to_conversation

    Input

    Input: reply_to_conversation
    Parameter Type Description
    conversation_id required string Conversation ID from list_conversations.
    body required string Reply text.

    Example response

    {
      "conversation_id": "c_58210934",
      "listing_id": "118734552",
      "message_id": "m_903114208",
      "sent_at": "2026-10-10T16:42:00+02:00",
      "status": "sent"
    }
  • POST

    contact_advertiser

    write

    Writes to the advertiser of one public listing, as the contact form does. The conversation then appears in list_conversations. By default you confirm each call; you can switch that off for this tool.

    POST /api/v1/immobiliare/contact_advertiser

    Input

    Input: contact_advertiser
    Parameter Type Description
    ad_id required string ID of any public listing on immobiliare.it, from its URL (/annunci/{id}/).
    body required string Message text.
    phone string Phone number to be contacted at. Optional.

    Example response

    {
      "conversation_id": "c_58301177",
      "ad_id": "117220481",
      "status": "sent",
      "sent_at": "2026-10-10T17:05:00+02:00"
    }
  • POST

    request_visit

    write

    Sends a visit request with the mode, the days and the time slots you are free. It is a request, not a booking: the advertiser contacts you to confirm. Time slots are those the form offers. By default you confirm each call; you can switch that off for this tool.

    POST /api/v1/immobiliare/request_visit

    Input

    Input: request_visit
    Parameter Type Description
    ad_id required string ID of any public listing on immobiliare.it, from its URL (/annunci/{id}/).
    mode required enum in_person or remote (video call with the agent).
    days required string[] Days you are available, as YYYY-MM-DD.
    time_slots required string[] Time slots you are available, as offered on the form.

    Example response

    {
      "ad_id": "118734552",
      "mode": "remote",
      "days": [
        "2026-10-19",
        "2026-10-20"
      ],
      "time_slots": [
        "18:00-19:00"
      ],
      "status": "requested"
    }

Setup

How do I connect Immobiliare.it to Claude Code, Codex or Cursor?

Connecting Immobiliare.it takes three steps: request access, sign in to Immobiliare.it once, then add one MCP server or call the REST API with the same key.

Connect Immobiliare.it over MCP

  1. 1

    Create an account

    Sign up and add Immobiliare.it in the console. Your API key is there too.

  2. 2

    Sign in to Immobiliare.it once

    Open the connect page from the console and sign in to Immobiliare.it the way you always do. We keep the session, never your password, and you can revoke it anytime.

  3. 3

    Add Cotlet to your agent

    Claude Code
    claude mcp add --transport http cotlet \
      https://cotlet.dev/mcp/v1 \
      --header "Authorization: Bearer $COTLET_API_KEY"
    Cursor
    {
      "mcpServers": {
        "cotlet": {
          "url": "https://cotlet.dev/mcp/v1",
          "headers": {
            "Authorization": "Bearer ${COTLET_API_KEY}"
          }
        }
      }
    }
    Codex
    # ~/.codex/config.toml
    [mcp_servers.cotlet]
    url = "https://cotlet.dev/mcp/v1"
    bearer_token_env_var = "COTLET_API_KEY"

    Paste the snippet for your client. The same server and key serve every app you connect, so you do this once.

  4. 4

    Ask your agent

    Prompt

    Answer every new Immobiliare.it message about the Bologna flat in Via Mascarella. I can show it Saturday at 10:00, 11:00 or 12:00, in person only. Do not reply to anyone who offers a deposit before seeing it; list those for me.

    Ask in plain words. Your agent finds the Immobiliare.it tools on the server and calls them for you; anything that reaches other people waits for your OK unless you switch that off for a tool.

Call Immobiliare.it over REST

  1. 1

    Export your API key

    Shell

    export COTLET_API_KEY="cotlet_..."

    Your scripts use the same API key as your agent. Keep it in an environment variable, never in your code.

  2. 2

    Call a tool

    curl

    curl https://cotlet.dev/api/v1/immobiliare/reply_to_conversation \
      -H "Authorization: Bearer $COTLET_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{"conversation_id":"c_58210934","body":"Hello, the flat is still available. I can show it on Saturday at 10:00 or 11:30. Which suits you?"}'

    Every tool is a POST endpoint at /api/v1/immobiliare/{tool}. Send its parameters as JSON, exactly as listed in the endpoints above.

  3. 3

    Read the result

    Example response · reply_to_conversation

    {
      "conversation_id": "c_58210934",
      "listing_id": "118734552",
      "message_id": "m_903114208",
      "sent_at": "2026-10-10T16:42:00+02:00",
      "status": "sent"
    }

    You get plain JSON back, ready for your script. A failed call costs nothing.

Why Cotlet

Why use Cotlet for Immobiliare.it? Hosted, safe and kept working.

  • Built for agents

    • One MCP server for every app you connect.
    • The same tools as a REST API for scripts and cron jobs.
    • Works with Claude Code, Codex and Cursor.
  • Your login stays yours

    • You sign in to Immobiliare.it yourself. We keep only the session, encrypted with AES-256.
    • The model never sees a login.
    • No stored passwords, no CAPTCHA solving, no MFA bypass.
  • You stay in control

    • Pick read only, or read and write.
    • Anything that reaches other people waits for your OK, unless you switch it off per tool.
    • Revoke access in one click.
  • Kept working for you

    • We test every integration daily.
    • When Immobiliare.it changes, the tool pauses until we fix it.
    • Failed calls cost nothing.

Alternatives

Is there a Immobiliare.it MCP server on GitHub?

Hosted scrapers read public Immobiliare.it search results, listings and agency pages. None of them signs in, so your own listings, Messages and saved listings are out of reach. For publishing, agencies use management software feeds.

Cotlet compared with a Hosted scraper
Hosted scraper Cotlet
Setup Account on the scraper service, paste search or listing URLs Request access, sign in to Immobiliare.it once in your browser
Your listings and Messages Not reachable: public pages only, no login Your listings, their views, conversations and visit requests
Write actions None Publish, edit, reply and request visits, each message confirmed by you by default
When Immobiliare.it changes Wait for the scraper author Our team tests it daily and fixes it for you; failed calls are free
Your session Not used: no sign-in Encrypted in an EU vault, never your password, revoked in one click
Where it runs The scraper service, results as a dataset Hosted: Claude Code, Codex, Cursor, n8n and scripts, also on a schedule
Price Pay per result, public data only Free 7-day trial with 5,000 credits, then credits per call

Which one fits you

Pick Cotlet if

  • you are not a developer, or you do not want to maintain a server
  • you need it to keep working when Immobiliare.it changes, without checking it yourself
  • your agent or a script should run it on a schedule, also while your computer is off

Pick an open-source server if

  • you are comfortable installing, updating and fixing it yourself
  • you want the session to stay on your own computer
  • you only need it now and then, from one MCP client

For AI agents

Cotlet for Immobiliare.it in plain text The facts on this page in one block: status, endpoints, access, pricing, contact.

Endpoint health

verified 2h ago

  • list_listings passing
  • get_listing passing
  • list_conversations passing
  • get_conversation passing
  • list_saved_listings passing

+ 7 more endpoints

12/12 passing latest check self-healing

immobiliare.txt

Immobiliare.it has no public API for listings, messages or visit requests (checked 11 Oct 2026). Agencies get listings onto the portal only through agency management software such as Getrix Multinvio, and everyone else manages listings and Messages by hand in their personal area.
Cotlet provides a hosted MCP server and REST API for Immobiliare.it: 12 tools (5 read, 7 write).
Access       Request access at https://cotlet.dev/app/signup?app=immobiliare; we email the API key.

MCP server   https://cotlet.dev/mcp/v1
REST base    https://cotlet.dev/api/v1/immobiliare
Auth         Authorization: Bearer <COTLET_API_KEY>. Listing endpoints and schemas needs no key; calling an endpoint needs one.
Tools        list_listings, get_listing, list_conversations, get_conversation, list_saved_listings, save_search, create_listing, update_listing, delete_listing, reply_to_conversation, contact_advertiser, request_visit
Confirm      create_listing, delete_listing, reply_to_conversation, contact_advertiser, request_visit (by default the user approves each call; the user can switch this off per tool, e.g. for scheduled automations)
Markdown     https://cotlet.dev/integrations/immobiliare-api-mcp-server.md

How access works:
1. The user requests access at https://cotlet.dev/app/signup?app=immobiliare (Immobiliare.it is pre-selected). Each request is reviewed and the API key is sent by email.
2. The user signs in to Immobiliare.it once in a browser. An agent cannot do this step.
3. The API key goes into the MCP client or the REST call as a bearer token.

Fits: people who want a hosted Immobiliare.it server that someone else maintains, including non-developers.

Policy: Cotlet never stores passwords, never solves CAPTCHAs, never bypasses MFA.
Company: legal details in the Terms of service at https://cotlet.dev/terms. Contact contact@cotlet.dev.
Session: the user signs in to Immobiliare.it in a browser; Cotlet keeps only the session, AES-256 encrypted, revocable in the dashboard at any time.
Terms: the user stays responsible for following Immobiliare.it's terms; Cotlet is not affiliated with Immobiliare.it.
Full page as Markdown

Automations

Can Immobiliare.it automations run on a schedule in n8n, Make or Zapier?

Yes. Cotlet does not replace your automation platform: it gives it a Immobiliare.it connection it does not have, with the same API key as your agent. Write actions ask for your OK by default; switch that off in your dashboard for the tools you choose, for example to answer messages and visit requests about a listing, and the schedule runs on its own. Cotlet runs in the cloud, so it keeps going while your computer is off.

Where to run Immobiliare.it automations through Cotlet, and how to schedule them
Where How to connect How to schedule
Your AI agent Add https://cotlet.dev/mcp/v1 with your API key. A scheduled agent run, for example a Claude Code routine.
n8n MCP Client node with https://cotlet.dev/mcp/v1, or an HTTP Request node to https://cotlet.dev/api/v1/immobiliare/{tool}. Schedule Trigger node.
Make HTTP module: POST https://cotlet.dev/api/v1/immobiliare/{tool} with an Authorization: Bearer header and a JSON body. Scenario schedule.
Zapier Webhooks by Zapier: POST https://cotlet.dev/api/v1/immobiliare/{tool} with the same header and body. Schedule by Zapier trigger.
Your own script POST https://cotlet.dev/api/v1/immobiliare/{tool} with your API key. cron or GitHub Actions.

Pricing & limits

How much does the Immobiliare.it API cost?

Free 7-day trial with 5,000 credits, no card needed. After that, the Immobiliare.it API comes with the Cotlet plan, from $29 a month for 3,000 credits, with no limit on apps. Each month's credits stay valid for 3 months, so unused credits add up.

Cotlet plan sizes: price, monthly credits and price per credit
Size Price Credits / month Per credit
Solo $29/mo 3,000 about $0.0097
Pro $99/mo 12,000 about $0.0083
Agency $299/mo 40,000 $0.0075

Each successful call uses credits for the work it takes; failed calls and timeouts cost nothing. A hard spend cap is on by default. Authenticate with the Authorization: Bearer header.

About Cotlet

How Cotlet holds your access

Cotlet hosts MCP servers and REST APIs for apps with no usable API. Your agent works in your own Immobiliare.it account.

Company details
The legal name, address and registration numbers of the company behind Cotlet are in the Terms of service. Terms
Your session
You sign in to Immobiliare.it yourself, in your browser. We keep only the session, never your password: encrypted with AES-256 in an EU vault, isolated to your account and used only when your agent calls a Immobiliare.it tool you allowed. When it expires, your agent gives you a link to sign in again. Security
Revoking access
Disconnect Immobiliare.it in your dashboard: the session is deleted and access ends at once. Actions that reach other people wait for your OK unless you switch that off per tool.
What we never do
Store passwords, solve CAPTCHAs or bypass MFA.
Immobiliare.it's terms
You use your own Immobiliare.it account and stay responsible for following Immobiliare.it's terms. Cotlet is independent and not affiliated with Immobiliare.it. Terms
Contact
Questions about the company, security or an app: contact@cotlet.dev
About Cotlet

Frequently asked questions

How do I get access?

Request access and pick Immobiliare.it. Cotlet reviews each request and emails you your API key.

Do I need to be technical?

No. You sign in to Immobiliare.it once in your browser and paste one command into your agent, or one URL into n8n. Your agent can walk you through it. There is no server to install, update or fix.

Is a hosted server safe? My Immobiliare.it session would leave my computer.

Cotlet keeps your Immobiliare.it session encrypted with AES-256 in an EU vault, isolated to your account and used only for the tools you allow: read only, or read and write. The AI model never sees it, and you revoke it in one click. A local server keeps the same session in a file on your computer, readable by any program you run, and needs a fresh sign-in whenever it expires.

Does it work with an agency account or only a private one?

The tools follow the personal area (Published listings, Messages, saved listings). Whether an agency account exposes the same screens is not stated in the Immobiliare.it help center (checked 11 Oct 2026), so we confirm it per account when you request access.

Can my agent post or send messages in Immobiliare.it without asking me?

No. Every call to create_listing, delete_listing, reply_to_conversation, contact_advertiser or request_visit waits for your OK by default. For scheduled automations you can switch confirmation off per tool in your dashboard, for example only for approvals. save_search, update_listing runs without asking, because it sends nothing to anyone and one call undoes it.

Can I use the Immobiliare.it API in n8n?

Yes. Add https://cotlet.dev/mcp/v1 with your API key in n8n's MCP Client node, or call https://cotlet.dev/api/v1/immobiliare/{tool} from the HTTP Request node.

Give your agent access to Immobiliare.it.

Request access and pick it. We review each request and email you your API key. Free 7-day trial with 5,000 credits, no card needed.