Jitty Scraper icon

Jitty Scraper

Scrape residential property listings from Jitty.com across the UK. Search with 20+ property filters, including AI vision search, and extract clean…

Start using this actor on Apify ↗Need a custom scraper?Contact us ↗

Jitty Scraper at a glance

Jitty Scraper is a ready-to-run Apify actor from abotapi for collecting real estate data. Its documented output includes id, title, address, price and price_numeric, which you can export as JSON, CSV or Excel or read through the Apify API. It costs $1.50 per 1,000 results on the Apify Free plan and from $1.00 on paid plans, with smaller per-run or optional feature charges listed on Apify.

Runs on
Apify cloud: console, API, schedules and integrations
Data type
Real Estate, AI, Automation
Region
Europe
Pricing
$1.50 per 1,000 results (Free plan), from $1.00 on paid plans
Output
Documented below · JSON, CSV, Excel
Inputs
36 options

Scrape residential property listings from Jitty.com across the UK. Search with 20+ property filters, including AI vision search, and extract clean structured data for homes, prices, locations, features and more.

What Jitty Scraper can do

  • Two ways to search, plus AI vision search. Build a search from more than 15 filters (location, price, bedrooms, tenure, condition, exterior style, floor area, interior features, green tech, date added), or paste jitty.com search-result URLs directly. Add an AI vision search term like "sea views" or "cottage" on top of any other filter.
  • Full-detail enrichment, on demand. Turn on Include full details to add coordinates, floor area, tenure, EPC ratings, council tax band, estate agent, the complete feature list and nearby transport stations from each property's own detail page, or turn it off for card-level fields only.
  • Resume one interrupted crawl. Paste a previous run or dataset ID and the next run skips everything already collected, so a large crawl can continue without paying twice.
  • Recurring monitoring built in. Turn on Incremental mode to get only NEW, UPDATED and REAPPEARED properties on every scheduled run, with unchanged properties suppressed and not billed.
  • A cap that matches what you pay for. Max properties counts rows actually returned, not scanned, so a page of mostly-unchanged listings still backfills from later pages toward your cap.
  • Built for schedules. A run that could not read a single result page fails loudly instead of returning an empty dataset, so "no properties found" is never confused with "the site refused every request".

Choose what to collect

These inputs let you configure Jitty Scraper - UK Property Listings & AI Search. Open the actor on Apify to enter your values and review the current options.

Supported input fields
InputWhat it controls
modestring · requiredScraping mode: 'search' builds URL from filters, 'url' uses provided URLs directly

Choices: search, url

locationstringLocation to search (e.g. 'london', 'bath', 'greenwich', 'manchester'). Leave empty for all UK.
radius_milesintegerExpand the search to include nearby areas within this many miles of the location.
area_typestringRestrict to rural properties in the location. Only rural narrows results on the site.

Choices: rural

commute_stationstringFind homes within a travel time of this station or place (for example paddington-station). Used together with Travel Minutes; replaces Location and Search Radius.
travel_modestringHow you travel to the commute destination. Default public-transport.

Choices: public-transport, walking, cycling

travel_minutesintegerMaximum travel time in minutes to the commute destination: 15, 30, 45 or 60. Required when Commute Destination is set; any other value stops the run with an error instead of searching the default location.
Show 29 more inputs
More input fields
InputWhat it controls
look_forstringSearch by visual features (e.g. 'cottage', 'sea_views', 'warehouse_conversion', 'barn_conversion', 'character_property'). Can be combined with location and other filters.
property_typestringFilter by property type

Choices: flat, detached, semi-detached, terraced, bungalow, maisonette, land, boat, mobile-home, parking

bedroomsintegerMinimum number of bedrooms (0=Studio+)
max_bedroomsintegerMaximum number of bedrooms
min_bathroomsintegerMinimum number of bathrooms
min_priceintegerMinimum price in British Pounds (use with max_price for range)
max_priceintegerMaximum price in British Pounds
ownershipstringFilter by ownership type

Choices: freehold, leasehold, shared-ownership, share-of-freehold

conditionstringFilter by property condition

Choices: good, renovation-potential, renovation-needed, derelict

exterior_stylestringFilter by exterior style

Choices: period, contemporary, early-modern, late-modern

date_addedstringFilter by when listing was added

Choices: 24h, 3d, 1w, 1m

min_area_sqftintegerMinimum floor area in square feet
max_area_sqftintegerMaximum floor area in square feet
outside_spacestringFilter by outdoor area type

Choices: garden, large-garden, balcony, roof-terrace, communal-garden, patio

interior_featuresarrayFilter by interior features. Multiple features are combined.
green_techstringFilter by green technology

Choices: solar-panels, ev-charger, heat-pump, underfloor-heating

urlsarrayjitty.com URLs to scrape (url mode only). Accepted shapes: all-UK listing, a location, location with filters (property type, bedrooms, price, area type)?page=N and ?sort=, commute search with look-for, map views (read as the list page) and single property pages. http://, www. and trailing slashes are normalised. Leave the field untouched to scrape the built-in example of each shape.
include_detailsbooleanAdd coordinates, floor area, tenure, EPC, council tax, estate agent, features, and full address to each property. Turn off for a faster, lighter run with card-level fields only.
max_propertiesintegerMaximum number of properties to scrape (0=unlimited)
max_pagesintegerMaximum search result pages to fetch. Leave empty (or 0) to go as deep as needed, bounded by Max Properties.
resumeFromRunIdstringContinue ONE interrupted crawl: paste a previous run or dataset ID and this run will skip properties it already collected. For recurring monitoring of the same search instead, use Incremental mode below (the two are mutually exclusive when Incremental mode has no saved state yet).
incrementalModebooleanRemembers the previous run of this SAME search itself (no need to paste a run ID) and classifies every property as NEW / UPDATED / UNCHANGED / REAPPEARED / EXPIRED. Intended for scheduled/recurring runs against an unchanged search. See 'Resume from run/dataset ID' above for continuing one interrupted crawl instead.
stateKeystringManual label for the Incremental mode baseline. Leave empty to auto-derive one from the mode, location/URLs and every filter (so two different searches never share state). Set this to deliberately share one baseline across otherwise-different filter setups.
emitUnchangedbooleanIncremental mode only. When off (default), a property with no detected change since the last run is not returned or billed. Turn on to also return (and bill for) UNCHANGED rows.
emitExpiredbooleanIncremental mode only. When on, a property tracked in a previous run that no longer appears after a complete scan of this search is returned once with changeType EXPIRED (and billed like any other row). Skipped whenever this run did not reach a genuine end of results (a page cap, a blocked page, or Resume from run/dataset ID).
ignoreFieldsForChangesarrayIncremental mode only. Extra output field names to exclude from change detection, on top of the built-in exclusion of the rotating AI tag pills (tags). A field you list is still returned in every row but never makes a property UPDATED or appears in changedFields. A dotted name such as nearby_stations.distance ignores that key inside every list entry while the rest stays compared. Changing this list does not reset your baseline.
mcpConnectorsarrayOptionally send the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize a connector once under Apify → Settings → Integrations, then select it here. The connector receives a condensed, human-readable summary per item (title + key fields), not the full JSON, the complete record stays in the dataset. Leave empty to skip. Supported: Notion (https://mcp.notion.com/mcp), Linear (https://mcp.linear.app/sse), Airtable (https://mcp.airtable.com/mcp), Apify (https://mcp.apify.com).
notionParentPageUrlstringURL (or id) of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors.
maxNotifyListingsintegerCap on items written to each connector per run. Does not affect the dataset.

Fields in the output

The documented dataset includes the fields below. Availability can depend on the source page and selected mode.

idid
titleTitle
addressAddress
pricePrice
price_numericprice_numeric
bedroomsBeds
bathroomsBaths
property_typeType
area_sqftsqft
ownershipTenure
price_per_sqftPSF
urlurl
Show 10 more fields
latitudeLat
longitudeLng
council_tax_bandCouncil Tax
epc_current_ratingEPC
estate_agentAgent
featuresfeatures
changeTypeChange
changedFieldsChanged fields
firstSeenAtFirst seen
lastSeenAtLast seen

Example output

An example from this actor’s documentation. Values are illustrative; this is not a fresh live result.

{
  "id": "SampleSlugID1234567",
  "title": "Mill Lane, Sampleford",
  "address": "12 Mill Lane, Sampleford, Greater London",
  "price": "£450,000",
  "price_numeric": 450000,
  "currency": "GBP",
  "bedrooms": 3,
  "bathrooms": 2,
  "property_type": "Terraced",
  "property_type_detail": "End of Terrace",
  "price_per_sqft": "£512 /sqft",
  "area_sqft": 880,
  "ownership": "Freehold",
  "living_spaces": 2,
  "council_tax_band": "D",
  "epc_current_score": 72,
  "epc_current_rating": "C",
  "epc_potential_score": 88,
  "epc_potential_rating": "B",
  "estate_agent": "Sample Estates",
  "latitude": 51.501,
  "longitude": -0.1246,
  "location_source": "detail_page",
  "tags": [
    "Fireplace",
    "Garden"
  ],
  "features": [
    "Fireplace",
    "Garden",
    "Patio",
    "High Ceilings"
  ],
  "nearby_stations": [
    {
      "name": "Sampleford Park",
      "distance_miles": 0.4
    }
  ],
  "images": [
    "https://jitty-cdn.com/blobs/sample-image-01"
  ],
  "image_count": 14,
  "url": "https://jitty.com/properties/SampleSlugID1234567"
}

Ways to use this data

  • Property investors and analysts: compare price per square foot, tenure and EPC ratings across a location to find undervalued or high-yield properties.
  • Home buyers and renovators: filter by condition, exterior style and interior features such as fireplaces or high ceilings to shortlist period and character properties.
  • Portfolio and market monitors: schedule Incremental mode against a saved search to receive only new listings and price changes, without re-downloading everything each time.
  • Real estate and comparison sites: build a listings feed with photos, agent details and nearby transport links for a location page.
  • Market researchers and data teams: build a historical dataset of prices, features and availability for a city or region.

Before you run

Start with a small input and check the resulting records against your expected fields. Source content and actor options can change; the current Apify listing is the reference for availability and pricing.

Questions about this actor

What data does Jitty Scraper return?

The documented output for Jitty Scraper includes id, title, address, price, price_numeric, beds, baths and type. Availability of each field depends on the source page and the selected mode.

How much does Jitty Scraper cost?

It costs $1.50 per 1,000 results on the Apify Free plan and from $1.00 on paid plans, with smaller per-run or optional feature charges listed on Apify. The Apify listing shows the current rate for every plan.

What is the Changes view?

With Incremental mode on, the dataset has a Changes (incremental) view that shows each property's changeType, changedFields, firstSeenAt and lastSeenAt. Use ignoreFieldsForChanges to keep noisy fields from triggering UPDATED.

Can I get only new or changed properties on a schedule?

Yes. Schedule the actor from the Schedules tab with the same search input and turn on Incremental mode. Each run then returns only NEW, UPDATED and REAPPEARED properties, and unchanged ones are not billed unless Emit unchanged properties is on. Set Max properties to 0 so every scheduled run checks the whole search (see "How Max properties and Max pages shape a run" above).

What is the difference between Resume and Incremental mode?

Resume (resumeFromRunId) continues ONE specific interrupted crawl: paste a previous run or dataset ID and this run skips everything it already collected. Incremental mode is for a recurring schedule over the SAME search: the actor remembers the previous run itself, so no ID needs pasting. The two combine only to bootstrap a first Incremental mode run from an earlier plain crawl; once Incremental mode has saved state for a search, adding Resume on top of it is rejected, so the two mechanisms never double-count the same properties.

Why did my run fail instead of returning an empty dataset?

If the site refused every request for every result page, the run stops with a clear message so "no properties found" is never confused with "nothing could be read". Run it again in a few minutes. If the run's time limit was reached before any page could be read, the message says so instead. A run that read at least one page returns whatever it found, even if a later page could not be read.

Ready to collect with Jitty Scraper?

Run it on Apify with your own input and export the results as JSON, CSV or Excel.