# Fun Finds: Agent Usage Guide Discovery index: https://funfinds.co/llms.txt This guide explains how to use selected Fun Finds capabilities. It starts with location search. For individual place facts and published browse content, follow the links in the discovery index and search results. ## Search endpoint GET https://funfinds.co/search Search returns up to ten actual ranked places, canonical place links and the exact matching total in initial HTML. No JavaScript or authentication is needed. A native GET form on the page also accepts a town or postcode. ## Working examples Find places near Orpington: https://funfinds.co/search?postcode=Orpington Find places near Orpington for children aged 2 and 4: https://funfinds.co/search?postcode=Orpington&ages=2&ages=4 Use the equivalent location alias: https://funfinds.co/search?location=Orpington&ages=2&ages=4 Find free indoor options for those ages: https://funfinds.co/search?postcode=Orpington&ages=2&ages=4&budget=free&tag=setting%3Aindoor Search an explicit point, with Orpington as its display label: https://funfinds.co/search?postcode=Orpington&lat=51.37566679327894&lng=0.0992425938536068&ages=2&ages=4 Search a bounding box: https://funfinds.co/search?sw_lat=51.2&sw_lng=-0.1&ne_lat=51.6&ne_lng=0.3&ages=4 ## Planning common outings - Free outings: start with your destination and budget=free. Check the linked listing and official source for extra charges such as parking, exhibitions or special events. - Toddler outings: supply each child's age, then check the listings for toilets, baby-change facilities, sheltered space, food options and suitable activities. Unknown age bounds remain eligible, so inclusion alone does not confirm suitability. - Rainy-day outings: add tag=setting%3Aindoor near your destination, then check opening and booking requirements. The indoor setting is a recorded attribute; search does not evaluate live weather. Use the published area, category and collection links in https://funfinds.co/llms.txt for broader discovery. Follow individual place links for recorded facts and official sources for current opening times, prices, access and availability. Static examples cannot establish which places currently fit a request. ## Location parameters and resolution - postcode: a complete UK postcode, outcode or town/area name, not just a postcode. Maximum 200 characters. - location: an alias for postcode. URLs normalize to postcode. Values are trimmed; a blank value does not override a non-blank value. If both are non-blank, they must be equal after trimming or the search returns 400. The first occurrence of each scalar parameter is used. - lat, lng: paired latitude and longitude. Latitude must be between -90 and 90, longitude between -180 and 180; finite values only. - sw_lat, sw_lng, ne_lat, ne_lng: supply all four bounding-box coordinates. The south-west corner must be south and west of the north-east corner. Complete bounds take precedence over coordinates. Otherwise, paired coordinates search a rectangle of +/-0.2 degrees, not a fixed-mile radius. Otherwise, a town/postcode query resolves and redirects to a coordinate-bearing URL. Follow the redirect on the same public origin. A postcode accompanying explicit coordinates or bounds is a display label rather than a second geographic filter. Lookup resolves the complete query without dropping words. Ambiguous names use the existing UK area candidate selection; coordinates disambiguate. Lookup has a five-second deadline. Without a location, search shows labelled examples from London and south east England, not examples from the user's own area. ## Filters - ages: repeated integer child ages from 0 to 18, for example ages=2&ages=4. Known age bounds must include all children. Unknown bounds remain eligible; check each listing. - max_minutes: a non-negative integer maximum typical visit duration, not journey time. Listings with unknown maximum duration remain eligible. - budget: free, cheap, mid or premium. Includes recorded price bands at or below the selected budget; unknown price bands do not match a budget filter. - energy: low, medium or high. Includes recorded levels at or below the selected energy; unknown levels do not match an energy filter. - has_cafe=true: selects listings with recorded cafe provision. - booking_required=true: selects listings recorded as requiring booking. Omission imposes no booking constraint; false does not mean "no booking required". - tag: repeat kind:value values, for example tag=setting%3Aindoor. Supported kinds are interest, parent_perk, accessibility, setting and seasonality. Values within one kind are alternatives; different kinds must all match. Tags describe recorded attributes, not live conditions. Enabled boolean filters normalize to true. Accepted true values are 1, true, t, on, yes and y; false values are 0, false, f, off, no and n, case-insensitively. Ages and tags are repeated parameters; other scalars use the first occurrence. Unrecognized parameters, including tracking parameters, are ignored and do not affect the canonical URL. Do not assume an unsupported parameter such as radius or date changes the results. ## Interpreting results Ranking uses the existing geographic distance from the search rectangle's centre, followed by verification/creation freshness and a place-ID tie-breaker. Displayed miles are straight-line distances, not route distance or travel time. The response contains at most ten ranked places; the total may be larger. There is no supported pagination parameter. Map pins are a separate, larger inventory; do not use their count as the search result count. Browser map movement changes the search scope. Search HTML includes recorded age bounds, distance, price band, typical duration, setting and booking status when available. Some facts are unknown. An eligible result is not proof of suitability or availability. Follow the /places/ links for details, then check official sources when necessary. Do not infer missing prices, opening facts or suitability from search inclusion. Search does not evaluate Saturday opening, event dates, current booking availability, or live weather. Indoor tags are recorded settings rather than a forecast or a guarantee of rainy-day suitability. Seasonal/event listings may be returned outside their operating dates. ## Response policy and failures - 200: rendered results, including a valid empty search with zero matches. - 302: area-only lookup succeeded; follow the coordinate-bearing URL. - 307: trailing-slash normalization; follow the relative URL with the query preserved. - 400: invalid supported parameters or conflicting location labels. - 404: the complete area could not be resolved. - 503: geocoding, database or frontend shell is temporarily unavailable. Errors are readable and do not substitute unrelated default results. Error documents do not boot the JavaScript map. Search responses and redirects use private, no-store. Filtered search pages are crawlable but noindex,follow and excluded from the sitemap; they retain normalized self-canonical URLs. The unfiltered search page is indexable. A successful ordinary HTTP request or an agent user-agent request does not prove every answer engine can retrieve or cite the URL. Report retrieval-tool restrictions separately from site HTTP failures.