# Mark Zoopla listings under offer, sold or let agreed

> Offer accepted or let agreed? An agent finds the Zoopla listing, checks it is a manual upload, sets the new status and flags stale sold listings.

Source: https://cotlet.dev/integrations/zoopla-api-mcp-server/mark-listing-under-offer

An offer is accepted on Friday afternoon, the CRM is updated, and the Zoopla listing still says For sale on Monday, with viewing requests coming in for a house that is no longer available.

Cotlet does it in your own Zoopla account with list\_listings, get\_listing and set\_listing\_status, called by your AI agent, an n8n workflow or a script.

[Request access](https://cotlet.dev/app/signup?app=zoopla) [All Zoopla tools](https://cotlet.dev/integrations/zoopla-api-mcp-server)

Hosted · nothing to install or maintain

Official options

## Can Zoopla do this on its own?

Zoopla has no API for listing status (checked 12 Oct 2026). Status reaches Zoopla through a property software feed such as Alto, Jupix or Expert Agent, or by hand in ZooplaPro for manual uploaders. Feed users already get the change from their CRM; this job matters to branches that upload manually, where no Zoopla feature copies a sale agreed into the listing.

By hand

## How you do it in Zoopla today

1. Log in to ZooplaPro, open the Manage listings tab and click Residential sales listings, or Residential letting listings for a rental.
2. Scroll to the property and click it to edit; in the Status section keep the Site status at Public.
3. Choose the Listing status: For sale, Sale under offer or Sold for sales, To rent, Let agreed or Let for lettings, then click Save.
4. Repeat for each property, then check Zoopla within the hour, because that is how long a manual change can take to show.
5. Nobody goes back to tidy up, so a listing left on Sold or Under offer for more than 180 days, or on Let or Let agreed for more than 60 days, ends up marked Rejected in ZooplaPro.

With an agent

## How to mark Zoopla listings under offer, sold or let agreed

Prompt

```
Offers were accepted on 14 Elm Road and 7 Station Road, and the flat at 2 Quay Street is let agreed. Update Zoopla and tell me which listings you could not change.
```

1. 01  
### Match each address to one listing  
The agent searches list\_listings in the right department, sales or lettings, by street and house number. Two listings at one address (a flat and the whole building, say) stop it, and it asks which one you mean.
2. 02  
### Check it can change the listing at all  
A listing with upload method feed is reported back with a note to change it in your property software, because Zoopla only takes feed listings from the feed. The agent does not try to override it.
3. 03  
### Pick the status that fits the department  
Accepted offers become sale\_under\_offer, completions become sold, agreed tenancies become let\_agreed and moved-in tenants become let. A sales listing is never given a lettings status. If a listing already shows the requested status, it is skipped and counted as done.
4. 04  
### Change it after your OK  
set\_listing\_status keeps the Site status at Public, so the listing stays on Zoopla with its new label. The agent shows you the list of changes in one batch before the first call.
5. 05  
### Flag stale listings before Zoopla rejects them  
At the end the agent lists sold and let listings still public on Zoopla and asks which have completed or moved in, so they can be set to private instead of drifting into the Rejected status.

### What you get back

Example data

```
14 Elm Road, Bristol BS7 8AB: For sale to Sale under offer, after your OK. Live on Zoopla within the hour.
2 Quay Street, Bristol BS1 4DB: To rent to Let agreed, after your OK.
7 Station Road, Bath BA2 3DQ: not changed. It comes from your Jupix feed, so update it in Jupix.
Still public with Sold or Let status: 9 Orchard Close (Sold), 18 Canal Walk (Let). Should I set them to private?
```

### Other ways to ask

- Here is this week’s sales progression sheet. Set every Zoopla listing marked "SSTC" to Sale under offer.
- The sale of 14 Elm Road completed today. Mark it Sold on Zoopla.
- List all my Zoopla lettings that have been Let agreed, so I can tell you which tenants have moved in.
- The buyer on 14 Elm Road pulled out. Put it back to For sale.

Before you automate it

## What Zoopla allows, and what to know first

- ZooplaPro rejects a sales listing left as Sold, SSTC or Under offer for more than 180 days, and a rental left as Let or Let agreed for more than 60 days.
- ZooplaPro shows the rejection reason when you hover over the word Rejected in the Status column of Manage listings.
- Zoopla says a manual change is normally live within the hour, while a standard BLM feed can take up to 24 hours to show the same change.
- Zoopla's Site status Deleted removes the listing from ZooplaPro as well as from the live site, and a deleted listing cannot be reinstated, so a sale agreed should only change the Listing status.

set\_listing\_status asks for your OK by default. To run it on a schedule without you, switch confirmation off for that tool in your dashboard.

Sources: [ZooplaPro help: Choosing the Status of your listings](https://support.zoopla.co.uk/hc/en-gb/articles/360004583197-Choosing-the-Status-of-your-listings) · [ZooplaPro help: Why has my property listing been rejected?](https://support.zoopla.co.uk/hc/en-gb/articles/360004573477-Why-has-my-property-listing-been-rejected) · [ZooplaPro help: Manual and feed uploaders](https://support.zoopla.co.uk/hc/en-gb/articles/360004572077-What-s-the-difference-between-a-manual-and-feed-uploader)

REST

## Call set\_listing\_status from a script

curl

```
curl https://cotlet.dev/api/v1/zoopla/set_listing_status \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"listing_id":"67251984","listing_status":"sale_under_offer"}'
```

Example response

```
{
"listing_id": "67251984",
"department": "residential_sales",
"address": "14 Elm Road, Bristol BS7 8AB",
"site_status": "public",
"listing_status": "sale_under_offer",
"live_on_zoopla": "within 1 hour",
"url": "https://www.zoopla.co.uk/for-sale/details/67251984/"
}
```

MCP: add https://cotlet.dev/mcp/v1 with the same key; the tool is zoopla\_set\_listing\_status. Example data.

[Schedule it in n8n, Make, Zapier or cron](https://cotlet.dev/integrations/zoopla-api-mcp-server#automations)

Tools

## Zoopla tools this automation uses

__Cotlet Zoopla tools used to mark Zoopla listings under offer, sold or let agreed__
| Tool | Parameters |
| -------------------- | ------------------------------------------ |
| list\_listings | department, site\_status, limit, cursor |
| get\_listing | listing\_id |
| set\_listing\_status | listing\_id, site\_status, listing\_status |

[All 12 Zoopla tools with descriptions](https://cotlet.dev/integrations/zoopla-api-mcp-server#tools)

## Frequently asked questions

### What if my listings come from Alto or Jupix?

Then they are feed listings, and Zoopla lets you change them only in that software. list\_listings shows the upload method of each listing, so your agent tells you which ones to change there.

### Can it bring back a listing that Zoopla rejected?

No. Zoopla sends help with rejected listings to Member Services and asks for the full address with postcode, the property type, the branch name and postcode, and the rejection reason. The agent's part comes earlier: it flags Sold and Let listings before the 180 and 60 day limits.

## More Zoopla automations

- [Get a weekly Zoopla leads report with missed calls and valuations](https://cotlet.dev/integrations/zoopla-api-mcp-server/weekly-leads-report)
- [Send vendors their Zoopla listing performance report](https://cotlet.dev/integrations/zoopla-api-mcp-server/vendor-listing-performance-reports)
- [Use Zoopla Premium Listing credits before they reset](https://cotlet.dev/integrations/zoopla-api-mcp-server/upgrade-listings-to-premium)
- [Zoopla API and MCP server: every tool](https://cotlet.dev/integrations/zoopla-api-mcp-server)
- [All use cases](https://cotlet.dev/use-cases)

## Give your agent access to Zoopla.

Free 7-day trial with 5,000 credits, no card needed. Cotlet is independent and not affiliated with Zoopla.

[Request access](https://cotlet.dev/app/signup?app=zoopla)
