es.propertylist/propertylist
name:es.propertylist/propertylist
First-party Spanish and Portuguese property listings with notary-verified prices.
- transport:
- remote
- credential class:
- open
Owner verification
Not yet verified. Verifying proves you control this server and is free, permanently — it never changes a published score.
Start verification →Tools
- area_market_summaryshallow
Return aggregate market context for a Spanish area: number of active listings, median price, mean price, median €/m², and the count broken down by bedroom band. Filterable by property type and search type (for-sale / for-rent / holiday-rentals). Use this before recommending a price or commenting on whether a listing is good value. If the place name is not one we hold, the response says so (error: location_not_found, location_match.matched: false) and returns no figures. Figures are NEVER nationwide fallbacks. Price figures follow the search type and are labelled with price_unit: sale prices are totals, for-rent is per MONTH and holiday-rentals is per WEEK. median_price_per_sqm is reported for sales only.
- assign_listingshallow
Stage assigning one of YOUR agency's listings to a colleague. Returns a preview and an action_id; NOTHING changes until you call confirm_action with that id, after the agent has said yes. Only an agency admin (or someone allowed to edit every listing), or the agent the listing is assigned to now, may move it; an unassigned listing can be taken by anyone who may edit listings. Name the colleague as they appear in the CRM; if several match, the answer lists them. Requires a linked PropertyList account: the change is made in the agent's own name, with their CRM permissions, so an agency API key alone cannot make it.
- autocomplete_locationshallow
Look up Spanish property areas (city, suburb, urbanisation) by free-text name. Returns up to 10 matches with id, name, and the parent province/city. Use this to resolve place names before calling search_properties, especially for common spellings like 'Nueva Andalucia' (vs 'Nueva Andalucía') or 'Marbella old town'.
- cancel_actionshallow
Drop a change you staged and the agent does not want. Nothing in the CRM changes; the action_id can no longer be confirmed. An unconfirmed preview also lapses by itself after 30 minutes. Requires a linked PropertyList account: the change is made in the agent's own name, with their CRM permissions, so an agency API key alone cannot make it.
- confirm_actionshallow
Make a change you staged with move_pipeline_stage, qualify_lead, assign_listing, set_listing_status, send_listings_to_contact or schedule_viewing. Call it ONLY after showing the agent the preview and hearing them say yes. It can charge credits and send email, exactly as the preview said. Everything is checked again first; if the client, listing or stage has changed so the action no longer applies, nothing happens and the answer says why. A preview is valid for 30 minutes, and each one can be confirmed once. Requires a linked PropertyList account: the change is made in the agent's own name, with their CRM permissions, so an agency API key alone cannot make it.
- create_contactshallow
Add a new contact to YOUR agency's CRM. Use when the agent wants to save a person (buyer, owner, enquirer). If a contact with the same email already exists it is returned rather than duplicated. The contact is created unassigned and flagged as needing attention so it surfaces in the CRM. Requires an agency API key.
- create_listingshallow
Start a new property listing in YOUR agency's CRM from a description. Use when the agent is describing a property they have taken on and wants it in the system. Creates a DRAFT. It is never published and never appears on the portal from here: the agent adds photographs and the energy rating in the CRM and publishes it themselves. The response includes a direct link to the draft. Location is resolved against the real area tree, so a town, suburb or urbanisation name is enough. Requires an agency API key.
- find_contactsshallow
Search YOUR agency's CRM contacts by name, company, email or phone. Use to look a person up before logging a note or to check if they're already in the CRM. Requires an agency API key; only ever searches the calling agency's own contacts.
- find_price_reductionsshallow
Live listings whose asking price has been reduced recently, biggest reduction first. Each listing carries the price before the cut, the price now, the reduction in euros and percent, and when it was cut. Use for "what has dropped in price in Estepona this month?" or to spot motivated sellers. Filters work as in search_properties (location, type, bedrooms, price). A location we do not hold returns zero results with error: location_not_found. Listings shown as price on application are never included.
- find_properties_by_descriptionshallow
Match Spanish properties from a free-form description of what the user wants. Best for vague, conditional, or lifestyle-heavy briefs ("3-bed near a good international school, flexible on budget if there's a sea view"). Uses Gemini to translate the brief into one to three parallel structured searches across PropertyList's full MLS, then merges and ranks the results. Returns up to 9 listings with match scores and an explanation of how the brief was interpreted (and what couldn't be resolved).
- find_similar_propertiesshallow
Listings similar to one property: same market (sale or rent), same town, same kind of home, a similar number of bedrooms and a price within about 25%. Closest in price first. Use it for "show me alternatives to PL12345" or "anything like this but cheaper?". Every property carries `oracle_verified` and `oracle_attestation_url`, as in search_properties.
- get_contactshallow
The full picture of one client in YOUR agency's CRM: contact details, where they sit on the pipeline boards, the agents they belong to, their saved searches, their enquiries, recent notes and history, viewings with outcomes, listings already sent to them, when they were last in touch and what is booked next. Get the contact_id from find_contacts or my_pipeline first. Use this before advising an agent on a client, and before match_buyer_to_inventory, so you know what has already been sent. Requires a linked PropertyList account (or an agency API key); only ever reads the calling agency's own contacts, and only those the caller may see in the CRM.
- get_guideshallow
Read one PropertyList guide. Answer from its text and link its url. If last_reviewed is set, say the page was checked on that date; if it is null, say the page shows no review date. If truncated is true, call again with offset set to next_offset. It is general information, not legal or tax advice.
- get_propertyshallow
Fetch the full record for one PropertyList listing by its reference code (the human-readable id like 'PLE-12345'). Use this once the user has settled on a listing from search_properties or find_properties_by_description and wants details, photos, or agency contact info. `location.city` is whatever tier the listing was filed under and may be a municipality OR a locality inside one. To place a listing administratively use `location.municipality` (with its INE municipality_code); it is null, never guessed, when we cannot resolve it.
- list_agenciesshallow
Find PropertyList agencies (estate agents) in a given Spanish area, ranked by how many active listings they carry there. Returns up to 10 agencies with name, location, listing count, and a public URL the user can visit. Use this after a buyer has narrowed in on an area and wants to know which agencies dominate it.
- listing_healthshallow
Checks YOUR agency's own listings for what is holding them back, and lists the ones with problems, most problems first: - stale: online for 90 days or more, no enquiry in the last 60 days and no price change in the last 90 - too_few_photos: fewer than the 5 photos a listing needs to publish - no_energy_rating - missing_description: no Spanish or no English description - no_price: no asking price and not marked price on application Defaults to online listings; status 'draft' checks what is not published yet (what stops it publishing), 'all' checks both. Requires a linked PropertyList account (or an agency API key); only the calling agency's own listings.
- log_noteshallow
Log a note against a contact or a listing in YOUR agency's CRM (e.g. record a call outcome or a viewing). Provide the note text plus a contact_id (from find_contacts) and/or a property reference. The note appears on the contact/property timeline. Requires an agency API key.
- match_buyer_to_inventoryshallow
The listings that fit one client's search in YOUR agency's CRM: your own listings first, then shared MLS listings your agency can sell, newest first. Each listing says whether it is your own. Uses the client's saved search (or, if none is saved, the search their latest debrief described), the same search the CRM runs for that client. A client with no search returns an explanation rather than a guess; set one up in the CRM or ask the agent for the brief and use search_properties instead. Get the contact_id from find_contacts. Call get_contact first if you need to know what has already been sent to them. Requires a linked PropertyList account (or an agency API key); only the calling agency's clients that the caller may see in the CRM.
- match_inventory_to_buyersshallow
The clients in YOUR agency's CRM whose saved search fits one listing: who to call about it. Works for your own listings and for shared MLS listings your agency can sell. Only online listings can be matched (a saved search only ever shows online stock); a draft returns an explanation. Clients are listed with their assigned agent, pipeline stage and the search they matched on. Use get_contact on any of them for the full picture. Requires a linked PropertyList account (or an agency API key); only the calling agency's clients that the caller may see in the CRM.
- move_pipeline_stageshallow
Stage a move of a client's card to another step on a pipeline board they are already on (buyer, seller, lead or tenant), as dragging the card on the CRM board does. Returns a preview and an action_id; NOTHING changes until you call confirm_action with that id, after the agent has said yes. Use the stage name as it reads on the board (my_pipeline lists them). Putting a client on a board they are not on yet, or qualifying a lead, is qualify_lead. Won and Lost need details the CRM asks for, so they are done in the CRM. For an offer stage, pass offer_amount (and property_reference if the card has no listing yet). Requires a linked PropertyList account: the change is made in the agent's own name, with their CRM permissions, so an agency API key alone cannot make it.
- my_leadsshallow
List recent enquiries (leads) for YOUR agency's CRM - newest first. Use when the agent asks what has just come in (e.g. "what came in today?"). This is the enquiry inbox: an enquiry that arrived from the portal, a website or a microsite. Once an agent starts working a person they live on a pipeline board instead - for those, use my_pipeline. An agency that works everything off the boards can have a busy CRM and an empty inbox here, which is not the same as having no leads. Requires an agency API key; only ever returns the calling agency's own leads.
- my_listingsshallow
List YOUR agency's own property listings (newest first), optionally filtered by status or a specific reference. Use for "show my listings" / "is reference X still online?". Requires an agency API key; only ever returns the calling agency's own properties.
- my_pipelineshallow
List the cards on YOUR agency's CRM pipeline boards (Kanban), with each board's own stage names and card counts. Boards: lead, buyer, seller, tenant, nurture (each card is a contact) and property (each card is a listing). Stage names are whatever the agency renamed them to, so read them from the reply rather than assuming. Call with no pipeline for a summary of every board - use this to answer "what's in my pipeline?" or "how many buyers do I have?". Call with a pipeline for that board's cards, newest activity first. This is the board view. For enquiries that have just arrived and have not been worked yet, use my_leads instead. Returns the WHOLE agency's boards, not one agent's cards - an API key belongs to the agency, not to a person. Requires an agency API key; only ever returns the calling agency's own data.
- qualify_leadshallow
Stage qualifying a client, as the CRM's Qualified popup does: tags them as a buyer, seller or tenant, puts them on that pipeline board and takes them off the Lead board. Returns a preview, including what it will COST (a place on the Buyer board uses a free place or one credit), and an action_id; NOTHING changes or is charged until you call confirm_action with that id, after the agent has said yes. Without `board`, the type comes from what the CRM already knows (the client's saved search, or a Vendor/Landlord tag); with neither, it asks for their details instead of guessing. With `board`, the client goes onto that board at its first step. `search` saves what a buyer or tenant is looking for with the qualification, homes or commercial premises (offices, retail, a bar, a warehouse, a traspaso...), never both in one search. Requires a linked PropertyList account: the change is made in the agent's own name, with their CRM permissions, so an agency API key alone cannot make it.
- schedule_viewingshallow
Stage a viewing in the agent's own CRM diary, with the client and the listing on it. Returns a preview and an action_id; NOTHING is saved until you call confirm_action with that id, after the agent has said yes. The listing can be the agency's own or a shared MLS listing. This only books the agent's diary: for an MLS listing, the listing agency is not contacted, so the agent arranges access with them. Times are read in Spanish time (Europe/Madrid) unless they carry an offset. Requires a linked PropertyList account: the change is made in the agent's own name, with their CRM permissions, so an agency API key alone cannot make it.
- search_guidesshallow
Search PropertyList's guides on buying, selling and renting in Spain: taxes such as ITP, IBI and non-resident income tax, the NIE, the buying process, laws and area guides. Use it for how-to, cost and legal questions, then call get_guide for the page. Spanish words need their accents (for example tributación, tasación).
- search_propertiesshallow
Search PropertyList's full Spanish property MLS by structured filters. Use for queries that translate cleanly to fields: bedrooms, bathrooms, price ceiling, property type, area name. For free-form briefs use find_properties_by_description instead. Returns a paginated list with summary text plus structured JSON. Every property carries `oracle_verified` and `oracle_attestation_url` — true when PropertyList Oracle holds a verified attestation for the listing's municipality and segment. A `location` we do not hold returns zero results with error: location_not_found and location_match.matched: false. It never substitutes listings from other areas. `location.city` is whatever tier the listing was filed under and may be a municipality OR a locality inside one. To place a listing administratively use `location.municipality` (with its INE municipality_code); it is null, never guessed, when we cannot resolve it.
- send_listings_to_contactshallow
Stage an email from the agent to one of their clients with listings attached, as the CRM sends listings (it appears on the client's timeline). You write the subject and message, in the client's language. Returns a preview with the address, subject, message and listings, and an action_id; NOTHING is sent until you call confirm_action with that id, after the agent has read it and said yes. Listings can be the agency's own or shared MLS listings it can sell (match_buyer_to_inventory finds them). Up to 10 per email. Requires a linked PropertyList account: the change is made in the agent's own name, with their CRM permissions, so an agency API key alone cannot make it.
- set_listing_statusshallow
Stage putting one of YOUR agency's listings online (it goes into approval, as the CRM's Publish button does), taking it offline, or marking it sold. Returns a preview, including any credit cost (a private, unshared listing costs credits to publish), and an action_id; NOTHING changes until you call confirm_action with that id, after the agent has said yes. Publishing checks what the CRM checks (photos, required details, your agency's listing limit) and the preview says what is missing. Sold is for a sale listing that is online or offline; sale_price is recorded for market statistics unless hide_sale_price is true. Requires a linked PropertyList account: the change is made in the agent's own name, with their CRM permissions, so an agency API key alone cannot make it.
- submit_enquiryshallow
Submit an enquiry (lead) about a specific listing on behalf of a prospective buyer or tenant. Use this once the user has chosen a property and wants the agency to contact them. The listing agency receives the enquiry in their CRM and follows up directly. Requires an API key. Provide the property `reference` (from search results) plus the enquirer's contact details. Only submit with the person's clear intent and consent - this sends their details to a real estate agency.
- verified_valuationshallow
Get a valuation for a property or area from recorded market data, not asking prices. Returns the €/m² for the municipality and segment, an indicative valuation when you give a size (build_sqm) or a listing reference, and a content-hashed attestation URL the figure can be cited from. Check `verified` before citing. It is true ONLY for Spanish figures drawn from the notarial register (Consejo General del Notariado) with at least 10 recorded transactions behind them. Elsewhere - Portugal and Cyprus especially - the figure comes from a national house-price index and is an estimate: `transaction_backed` is false, `source_label` names the real source, and it must not be described as notary-verified. `indicative_band_pct` widens as the evidence thins. Only two segment attestations exist per municipality, so a request for penthouse or townhouse resolves to the nearest attested segment. `property_type` is the segment actually used and `requested_property_type` is what you asked for; when they differ the text says so. Also returns our proprietary network achieved-sale figure where available. If no attestation covers the area yet, it says so plainly (use area_market_summary for asking-price stats instead).
Embed this server’s score
Tool count and median score across every tool in this server’s corpus — honest in a way a single cherry-picked tool’s badge wouldn’t be.
[](https://vouch.tools/servers/f6d17279-3464-4546-a352-2e22af9cbb5e)