Shortlist neighbourhoods in England (London in depth) for a household: budget, bedrooms, weighted priorities (crime, station access, price level, official deprivation decile, noise, disorder, energy rating, leasehold share) and optional stations or local authorities to live near (regions narrows to English regions, e.g. ['london']; with no regions, stations or boroughs all of England is searched). Returns areas in one order (orderedBy): tier (every must met, then unverified), budget band (within, stretch, over, unknown), then standing 0-100 (with property_type every within-budget area first); present them in that order, never by score (mapScore, the map's colour). meets ('4 of 5') and aheadBecause explain it; budgetLabel says the budget in words ('within budget' only for the type's own figure); factor values with a typed fact (quality measured, modelled, estimate or unknown; range; verifyUrl), typicalPrice (the median recent sale), estimatedPrice and budgetFit (with property_type the type's own figure, priceBasis says which; else a ballpark for the bedroom count), postcode districts and website links. A deal-breaker needs must true (a range or place without it only ranks); tier unverified (mustStatus unknown, verified false, tierReasons) marks a must on an estimate, National Rail beside the routed lines or modelled minutes inside the margin: open the factor's fact.verifyUrl or check that journey on the web before calling it met; a must on a coverage gap leaves the area out (gapLeftOut). A ranked criterion an area has no data for (no crime is published for Greater Manchester) counts as half a fit and is named in that area's notScored: say so. Pass rejected areas in exclude_area_ids when refining after the user's feedback (LSOA, MSOA or local authority ids). The first tool for 'where should we live?'; rank_areas_by_metric sorts by one metric only, match_areas scores a ready preference-profile.v2, search_areas only turns names into ids.
Parameterstop_ncustomintentmarketplacesrangesregionsbedroomsboroughsmax_budgetrequiredprioritiesbudget_must+11 more
open_shared_search
Open shared search
Open a search the user shared from the Close Knit site (a link with #profile=v1., v2. or v3.): their budget, priorities, places (gym, work, schools…), liked and ruled-out areas and private notes, re-ranked now with the same shortlist as find_areas. Use it when the user pastes such a link or says 'discuss my search'.
Parameterslinkrequiredtop_nintentrate_previous
find_similar_areas
Find similar areas
Neighbourhoods like one the user liked (crime, deprivation, income, price level and station access percentiles), optionally only cheaper ones (cheaper_by_percent lower £/m², crime no more than 10 points worse) and within max_budget for bedrooms: 'like this but cheaper / elsewhere'.
Parameterstop_nintentarea_idrequiredcheaperbedroomsmax_budgetproperty_typerate_previouscheaper_by_percent
get_area_overview
Get area overview
One neighbourhood in detail for a decision: local market (sales, turnover, leasehold share, £/m² medians, growth), the local authority's official UK HPI (hpi: average price by type, 1/5/10-year change vs its region: quote this for how prices moved), £/m² price trend, crime with its offence mix (topTypes, a busy-centre note), road/rail noise, nearby state schools with their standing Ofsted grade plus independent schools (schools.independent), planning rules (home: conservation, Article 4, listed buildings, broadband), when its homes were built (buildAge), householder planning (planning: home works, the share refused, approval by kind of works in London, the Renovation score), council tax bands and a typical bill (councilTax), the IMD decile (deprivation), typicalPrice (the median sale of the last 12 months, the figure every tool quotes; property_type gives that type's figure, as find_areas prices it), a flood line, a ballpark price for a bedroom count (buy only), the rent first with market='rent', and website links; detail='full' adds every month, school, HPI type and attribution. Comparisons are with the area's region (regionChange, regionPercentile: London's areas among London's); londonChange and londonPercentile are deprecated aliases holding the same values.
Parametersdetailintentmarketarea_idrequiredbedroomsproperty_typerate_previous
assess_listing
Assess listing
Check one listing the user found against local evidence: asking price vs the same home type's recorded £/m² (with floor area or a bedroom-based ballpark) or median price, the LSOA then its MSOA (all types only as indicative-only), typicalPrice, a flood line, turnover, growth, the local authority's official HPI, costs (stamp duty on the asking price, the council tax by band), crime with its offence mix, noise, schools (state and independent counts), planning rules (home: conservation, Article 4, listed buildings), listed buildings recorded at or near the postcode (listedNearby), the IMD decile, and the questions to ask the agent (lease, service charge, EWS1, listing). Not a valuation.
Parametersintentmarkettenurebedroomspostcoderequiredlisting_urlrent_periodasking_pricerequiredproperty_typerate_previousshare_percentfloor_area_sqm+1 more
List every area metric the active release serves by theme (id, label, unit), plus the My match factors (theme my-match-factors: disorder, epc-share, leasehold-share) that get_area_metric and rank_areas_by_metric also read. Call first to learn valid metric_id values; detail=[metric ids or themes] returns those in full (periods, defaultPeriod, legend, provenance, caveats); compact=true returns id, unit, direction and defaultPeriod for every metric. Sources carry licence and attribution.
Parametersdetailintentcompactrate_previous
Resolve free text (area name, ONS code, postcode, street) to geography ids (uk:lsoa|msoa|borough:…) and, where recorded sales exist, address ids (uk:addr:…). Use the returned ids with get_area_metric, rank_areas_by_metric, get_address_history. It only looks names up: to shortlist where to live use find_areas, to resolve a household's places (work, a station, a school) for find_areas or get_commute use search_places.
Parametersqrequiredlimitintentrate_previous
get_area_metric
Get area metric
Evidence-backed value of one metric for one area in one month: value, regional (regionPercentile: within the area's region, London for a London area; rankScope names it) and England percentiles, quality, sample size, category breakdown where available, plus up to 12 prior months as evidence rows. Units follow the metric (per 1,000 residents, GBP/m2). Confidence is high only for observed (not modelled) values. Some metrics are published for a wider area (income per MSOA; rent change and mobile coverage per borough): on a smaller area they return the enclosing area's value with quality 'fallback' and carrierGeographyId naming where it came from. Period defaults to the metric's latest. The find_areas factors disorder, epc-share and leasehold-share are read the same way for one neighbourhood (latest value, period ignored), to verify or explain a find_areas result.
Parametersintentperiodarea_idrequiredmetric_idrequiredrate_previous
rank_areas_by_metric
Rank areas by metric
Rank every served area (or one region's, region='North West') by one metric for one month and return the top N with rank, value, unit and quality. Tied values share a rank (competition ranking); each row carries tiedCount, the number of areas sharing its value. Use it to answer 'which areas have the lowest crime / highest GBP/m2' or 'the least deprived' (deprivation is the official IMD decile, 10 = least deprived: order desc), 'the highest household income' (income, GBP a year) or 'the most social renting' (social-renting, % of households; neutral, never call it better or worse). Areas with suppressed values are excluded. Census layers (census-*, student-share) describe residents and are refused: never rank areas by who lives there. The find_areas factors disorder, epc-share and leasehold-share rank too (latest value, period ignored). One metric only: to weigh several criteria, budget or commute for a household use find_areas.
Parametersordertop_nintentperiodrequiredregionmetric_idrequiredrate_previous
get_address_history
Get address history
Recorded achieved sale prices for one address id (HM Land Registry Price Paid, GBP, with the EPC floor area where matched; no per-sale GBP/m2). These are historic transactions, never valuations or asking prices. listingLinks open the postcode on Rightmove (past listings and their photos), Zoopla and OnTheMarket: links only, Close Knit does not fetch or host listings.
Parametersintentaddress_idrequiredrate_previous
get_home_prices
Get home prices
One home's recorded sales (date, price, HM Land Registry link) and prices in its area today: the middle half (25th-75th percentile) of same-type standard sales since three years back, each adjusted to the latest month by the local price index, with sample size and the area used (LSOA, else MSOA, else local authority), and the coarse band its last sale fell in that year (top 10%, top quarter, upper middle, lower middle, bottom quarter, bottom 10%) with today's prices of that band in the area. Accepts a UPRN, an address id (uk:addr:…) from search_places, or an address fragment. Area statistics only: never say what the home is worth; describe the area. When a fragment matches several homes the tool returns their candidates instead of picking one: ask which home, or pass its addressId. Homes without a linked UPRN are reached by address id or fragment and carry uprn null. `facts` holds the home's type and tenure (Land Registry) and, where shown, energy-certificate facts (rating, potential rating, certificate date, built form, age band, rooms, floor level); null fields are not shown for this home; `withheld` lists features held back. Below 5 sales of the type nothing is shown. Hidden homes are not found.
Parametersintentproperty_refrequiredrate_previous
Score every area against a household's ordered criteria (preference-profile.v2: budget, ranges on any map layer, places, where zones, own criteria; must = filter). Returns a match-pack.v2 with the best top_n (default 20, max 100) areas as a list with score, rank and percentile per area, its top 2 reasons and 2 weakest criteria, the bottom 10, and per-criterion components (value, fit, in/edge/out) as evidence for the listed areas only. Whole-coverage counts (scored, unscored, excluded, and excludedBy per unmet must) cover every area; mapUrl opens the full map for the search. Set analyticsConsent true only if the user agreed to store an anonymised profile summary; the tool works identically with false. Takes a ready profile (built by you or exported from the site); for a conversational home search use find_areas, which builds the profile from plain answers and adds ballpark prices.
Parameterstop_nintentprofilerequiredrate_previous
get_market_depth
Get market depth
Local market depth of one LSOA or MSOA from HM Land Registry Price Paid (standard category A sales only): sales in the last 12 months, turnover (% of EPC-linked homes that sold), the leasehold share OF SALES (not of homes), new-build and resale median GBP/m2 over 36 months with the new-build premium (each median needs 10 sales, the premium both), and the LSOA's GBP/m2 growth. Aggregates only: never a valuation, a listing or addresses.
Parametersintentarea_idrequiredrate_previous
get_nearby_sales_summary
Get nearby sales summary
Counts and median GBP/m2 of other homes' recorded sales in the same building (postcode, house number or name, street) and on the same street (other buildings) as one address id, last 10 years. The median is withheld under 5 standard sales with an EPC floor area. Summary only: no sale rows and no addresses; homes with a privacy objection are left out.
Parametersintentaddress_idrequiredrate_previous
get_area_evidence_pack
Get area evidence pack
One cited evidence pack for an area: market depth (as get_market_depth), the latest recorded crime rate, road and rail noise shares, state schools within 1.5 km with their standing Ofsted grade, when its homes were built (buildAge), householder planning (planning: home works, the share refused, approval by kind of works in London and the Renovation score) and, given an address_id inside the area, its building and street sale aggregates. Every block names its source release; not advice and not a valuation.
Parametersintentarea_idrequiredaddress_idrate_previous
search_places
Search places
Resolve a place the user mentions (station, borough, neighbourhood, postcode, street) to ids. Station lookup forgives spelling (Kings Cross, St James Park, Elephant and Castle) and knows London codes and nicknames (KX, TCR, LST, E&C, ally pally). Returns stations (osm:…, with TfL modes, lines and zone; twin stations such as Hammersmith are listed apart) for find_areas.near_stations, local authorities (uk:lad:…; London's boroughs) for find_areas.boroughs, areas (with ladId) and addresses for get_area_overview and assess_listing, and venues (a pool, gym or sports centre by name, with latitude/longitude to pin as a place). best is the likeliest meaning: a venue named exactly so, then a town, city or council named exactly so above a stop that only shares the name; 'Liverpool St' is the station. A street found only outside the town typed gives best null, reason town-mismatch and candidates with their towns: ask which. query is an alias of q.
Parametersqlimitqueryintentrate_previous
Door-to-door minutes from one neighbourhood to the user's places on a weekday morning, by public transport (R5 on TfL timetables), bike (at the speed Santander Cycles riders reach; checked against TfL), car (typical morning traffic, no parking) and walking, each with a range. Places within 1.5 km of a commute hub (King's Cross, Bank, Canary Wharf, Oxford Circus…) are routed through it; others in Greater London get a straight-line estimate (estimate: true); places outside Greater London, and every place from a neighbourhood outside London (the routing is London only), get straight-line estimates in every mode, long trips at a main-line speed (estimate: true, reason 'outside-routing'). A neighbourhood served by National Rail only also gets a rail estimate (modes.rail, estimate: true). Example routes start at the neighbourhood's MSOA centre (origin); one far from the headline minutes is representative: false and lists its lines only. Journeys over 120 minutes are not timed (minutes null, capped: true). A place takes latitude/longitude or center [longitude, latitude] from search_places; quote estimate minutes as estimates. Each mode's confidence: 'timetable' (TfL), 'routed' (London streets) or 'approximate' (straight-line estimates). googleMapsUrl opens Google Maps' own route for the user to check: its time, leaving now, not ours.
Parametersintentplacesrequiredarea_idrequiredrate_previous
get_flood_risk
Get flood risk
Flood bands for an area's land (rivers/sea, surface water) and, with a UPRN, that home's own bands: highestBand (covers ≥1% of the land), highestMappedBand (any land), atRiskShare. Bands show the likelihood for an area, not a specific property: send the user to checkUrl (GOV.UK) for one address.
Parametersuprnintentarea_idrequiredpostcoderate_previous
get_rent_levels
Get rent levels
Average monthly private rent of the local authority by bedroom count for areas (averageMonthlyRent, the figure the site shows; carrier lad: every LSOA of a local authority reads the same). Empty for a studio or before the rents are loaded.
Parametersintentarea_idsrequiredbedroomsrequiredrate_previous
get_listing_search_links
Get listing search links
Pre-filtered searches on Rightmove, Zoopla, OnTheMarket (and OpenRent for rentals) for the postcode districts of shortlisted areas, filtered by bedrooms, price and property_type (house, flat, bungalow). Links only: open them on the user's behalf to read listings; Close Knit itself never fetches or stores listings.
Parametersintentmarketarea_idsrequiredmax_pricerequiredmin_bedroomsproperty_typerate_previousoutcodes_per_area
list_custom_presets
List custom presets
Ready-made custom criteria built from places on OpenStreetMap, with neutral descriptive names: kebab shops vs cafés, specialty coffee vs kebab shops, sandwich chains vs bakery chains, independent vs chain cafés, the nearest gym or sports centre, bars, pubs and clubs (more or fewer, per 1,000 residents), cinemas, theatres, museums and galleries, universities, the nearest playground or nursery, variety of cuisines, bakeries vs betting shops, takeaways, coworking, bike parking, the nearest EV charging point, the nearest market, the nearest dog park, vet or pet shop. Each has an id for evaluate_custom_criterion and find_areas(custom=[…]), a mapUrl (the map coloured by it) and a one-line definition. Use the names as given: no brand names or value words ('good', 'cheap') in what you tell the user.
Parametersintentrate_previous
evaluate_custom_criterion
Evaluate custom criterion
Evaluate a criterion from places on the map for every neighbourhood in England (London in depth) ('where are more cafés than kebab shops', 'most gyms in the area'), counting the places inside each neighbourhood's boundary: a preset_id or the user's own criterion (sets of OSM tag matchers and a formula). Returns the best and worst areas with place counts and percentiles within each area's region, the legend and a map link that shows it as a layer. Places, never people: religion or who lives there is refused.
Parameterstop_nintentarea_idscriteriondirectionpreset_idrate_previous
build_watch_spec
Build watch spec
Turn a finished search into a watch: portal searches per postcode district, filters, a state file path for de-duplication and a ready prompt for a scheduled task in the user's Claude that reports only new listings. Stateless: nothing is stored on Close Knit.
Parametersnamerequiredintentmarketarea_idsrequiredfrequencymax_pricerequiredmust_havesmin_bedroomsproperty_typerate_previous
send_feedback
Send feedback
Send feedback about Close Knit to the team: a bug, missing or wrong data, an idea, or what worked. Call it only after the user agrees: show them the message first. Describe the product and what happened, never the person: no names, contact details, addresses, family, budget or other personal circumstances.
Parameterskindrequiredtoolsclientratingmessagerequired
Rank schools against the user's weighted criteria (1-8: any school measure from list_school_measures, weight 1-5, higher or lower is better, optional must range) within a pool (near a point, one council, one region, or England) and the map's Schools filter (phase, Ofsted, type, intake, faith). Returns each school's score (weighted mean of its percentiles in the pool), rank and per-criterion value with year and source; a missing value is listed, never a zero. With area_id (an LSOA from find_areas) each school also carries straight-line metres from that neighbourhood. Independent schools are a separate unranked list. Pupil-mix measures score nothing while CLOSE_KNIT_SCHOOL_PUPIL_MIX_RANKED is off. A ranking never promises a school place.
Parameterslatlngpoollimitphasefilterintentregionarea_idcouncilcriteriarequiredradius_km+2 more
list_school_measures
List school measures
The rankable school measures for rank_schools: id, label, unit, default direction, and whether it is a pupil-mix measure that cannot be ranked now.
Parametersintentrate_previous
Rate a Close Knit answer by its callId (none: the last answer): rating 1-5, what was good, what was bad or missing, the fix you would want. Use it for the last answer in a conversation; earlier ones go in the next call's rate_previous. It describes the answer, never the user.
Parametersbadfixgoodratingrequiredcall_id