{"openapi":"3.1.0","info":{"title":"Portal API","version":"1.0.0"},"servers":[{"url":"https://api.seaindo.com"}],"security":[{},{"apiKey":[]}],"paths":{"/v1/tools/ping":{"post":{"operationId":"ping","summary":"Check that the service is reachable. Optionally echoes a short message back.","x-access":"public","x-rate-bucket":"read","x-confirm":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","maxLength":100}}},"examples":{"example1":{"value":{}},"example2":{"value":{"message":"hello"}}}}}},"responses":{"200":{"description":"The tool result (Markdown with `Accept: text/markdown` or `?format=md`)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"service":{"type":"string","const":"southeastasiarealty"},"echo":{"type":["string","null"]}},"required":["ok","service","echo"],"additionalProperties":false}},"text/markdown":{"schema":{"type":"string"}}}},"400":{"description":"The input is not valid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"401":{"description":"Sign in required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"403":{"description":"Not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}}}}},"/v1/tools/search_listings":{"post":{"operationId":"search_listings","summary":"Search live property listings in Indonesia by free text (Bahasa or English), place, door, type, price in rupiah, rooms, area, title, features, rental terms, facing, access, villa style, lifestyle, trust, map area or a point and radius. Returns at most 10 listings with links and why each matched.","x-access":"public","x-rate-bucket":"search","x-confirm":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"q":{"description":"Free text, e.g. \"rumah 3KT SHM dekat KRL Depok max 1,5M\" or \"quiet villa with a rice-field view\"","type":"string","minLength":2,"maxLength":200},"location":{"description":"Place name as the person wrote it, e.g. \"Canggu\" or \"Jakarta Selatan\"","type":"string","minLength":2,"maxLength":100},"area_code":{"description":"BPS area code; wins over location","type":"string","pattern":"^[0-9]{2,10}$"},"door":{"description":"Investor door; stands for its listing type, property type and rent period","type":"string","enum":["monthly_rental","leasehold","land","villa","land_and_build"]},"listing_type":{"type":"string","enum":["sale","rent","leasehold","land_and_build","new_project"]},"property_type":{"type":"string","enum":["house","villa","land","apartment","townhouse","shophouse","office","warehouse","commercial_space","guesthouse","hotel"]},"price_min_idr":{"type":"integer","exclusiveMinimum":0,"maximum":1000000000000000},"price_max_idr":{"type":"integer","exclusiveMinimum":0,"maximum":1000000000000000},"bedrooms_min":{"type":"integer","minimum":0,"maximum":50},"bathrooms_min":{"type":"integer","minimum":0,"maximum":50},"land_area_min_m2":{"type":"number","exclusiveMinimum":0,"maximum":10000000},"land_area_max_m2":{"type":"number","exclusiveMinimum":0,"maximum":10000000},"building_area_min_m2":{"type":"number","exclusiveMinimum":0,"maximum":10000000},"building_area_max_m2":{"type":"number","exclusiveMinimum":0,"maximum":10000000},"certificate_type":{"type":"string","enum":["freehold_title","building_rights_title","strata_title","right_of_use_title","lease_right","customary_claim"]},"rent_period":{"description":"Matches the main period or any other period the rent is priced in","type":"string","enum":["daily","weekly","monthly","yearly"]},"features":{"description":"All of these features","minItems":1,"maxItems":20,"type":"array","items":{"type":"string","enum":["air_conditioning","built_in_wardrobe","home_office","internet","maid_room","storage_room","family_room","dining_room","laundry_room","prayer_room","ceiling_fan","high_ceilings","walk_in_wardrobe","mezzanine","attic","basement","home_theatre","wooden_floors","marble_floors","soundproofing","skylight","kitchen_set","water_heater","ensuite_bathroom","dirty_kitchen","bathtub","outdoor_shower","pantry","outdoor_kitchen","kitchen_island","oven","stove","range_hood","refrigerator","dishwasher","washing_machine","rain_shower","guest_bathroom","swimming_pool","garden","carport","garage","balcony","rooftop","terrace","gazebo","courtyard","bbq_area","outdoor_dining","sun_deck","fish_pond","fruit_trees","vegetable_garden","driveway","guest_house","staff_quarters","beachfront","riverside","private_pool","shared_pool","infinity_pool","plunge_pool","childrens_pool","jacuzzi","sauna","steam_room","home_gym","yoga_deck","tennis_court","badminton_court","basketball_court","game_room","billiard_table","karaoke_room","generator","water_tank","water_pump","deep_well","water_filter","fibre_internet","three_phase_power","piped_gas","smart_home","smart_lock","automatic_gate","intercom","cable_tv","satellite_tv","septic_tank","waste_collection","one_gate_system","cctv","security_guard","gated_community","alarm_system","perimeter_wall","video_doorbell","security_doors","window_bars","home_safe","fire_alarm","fire_sprinklers","fire_extinguisher","solar_panels","rainwater_tank","water_recycling","ev_charger","solar_water_heater","biopore_holes","compost_area","green_roof","natural_ventilation","led_lighting","double_glazing","wheelchair_access","step_free_entry","elevator","ground_floor_bedroom","ramp","grab_rails","wide_doorways","accessible_bathroom","accessible_parking","clubhouse","playground","shared_gym","jogging_track","coworking_space","estate_mosque","minimarket","restaurant_on_site","visitor_parking","concierge","housekeeping","laundry_service","lobby","function_room","rooftop_lounge","pet_park","shuttle_service"]}},"furnishing":{"description":"Any of these furnishing states","minItems":1,"maxItems":20,"type":"array","items":{"type":"string","enum":["unfurnished","semi_furnished","fully_furnished"]}},"keyword":{"description":"Full-text words in the title or description","type":"string","minLength":2,"maxLength":200},"pets_allowed":{"type":"boolean"},"available_by":{"description":"Available on or before this date (YYYY-MM-DD)","type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"min_stay_max_months":{"description":"Longest acceptable minimum stay","type":"integer","minimum":1,"maximum":120},"facing":{"description":"Hadap: any of these directions","minItems":1,"maxItems":20,"type":"array","items":{"type":"string","enum":["north","north_east","east","south_east","south","south_west","west","north_west"]}},"corner":{"description":"Hook: corner plot","type":"boolean"},"avoid_tusuk_sate":{"description":"Leave out plots known to face a T-junction","type":"boolean"},"car_access":{"description":"true: cars reach the door; false: motorbike-only gang","type":"boolean"},"road_width_min_m":{"type":"number","minimum":0.5,"maximum":100},"two_car_pass":{"type":"boolean"},"villa_styles":{"description":"Any of these villa styles","minItems":1,"maxItems":20,"type":"array","items":{"type":"string","enum":["modern_tropical","traditional_balinese","javanese_joglo","minimalist","mediterranean","industrial","bamboo_eco"]}},"lifestyle":{"description":"All of these lifestyle tags","minItems":1,"maxItems":20,"type":"array","items":{"type":"string","enum":["walk_to_beach","near_surf","ocean_view","rice_field_view","jungle_or_river_view","quiet_retreat","near_cafes_and_coworking","family_friendly","wellness_and_yoga"]}},"zoning":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"string","enum":["residential","commercial","tourism","agricultural","industrial","mixed_use","green_zone"]}},"lease_years_min":{"type":"integer","minimum":1,"maximum":99},"min_trust":{"description":"Minimum trust score; unscored listings never pass","type":"integer","minimum":0,"maximum":100},"seller_type":{"description":"owner (direct from owner), agent or developer","type":"string","enum":["owner","agent","developer"]},"verified_only":{"description":"Only listings with an approved owner, seen-in-person or title verification","type":"boolean"},"foreign_holdable":{"description":"Only titles a foreigner can hold: personally, through a PT PMA or by lease","type":"boolean"},"power_min_va":{"description":"Minimum electricity capacity (daya listrik) in VA, e.g. 2200","type":"integer","minimum":450,"maximum":1000000},"water_source":{"description":"PDAM (municipal_water), well, spring …","type":"string","enum":["municipal_water","well","spring","mixed","other"]},"max_days_on_market":{"description":"Only listings first listed at most this many days ago (a relist keeps the clock)","type":"integer","minimum":1,"maximum":3650},"near_worship":{"description":"A place of worship of this type (mosque, church, hindu_temple, buddhist_temple, chinese_temple) within max_distance_m metres (100 to 5,000, default 1,000); pin-verified listings only","type":"object","properties":{"type":{"type":"string","enum":["mosque","church","hindu_temple","buddhist_temple","chinese_temple"]},"max_distance_m":{"default":1000,"type":"integer","minimum":100,"maximum":5000}},"required":["type"]},"bbox":{"description":"[west, south, east, north]; pin-verified listings only","type":"array","prefixItems":[{"type":"number","minimum":-180,"maximum":180},{"type":"number","minimum":-90,"maximum":90},{"type":"number","minimum":-180,"maximum":180},{"type":"number","minimum":-90,"maximum":90}],"items":false,"minItems":4,"maxItems":4},"polygon":{"description":"Closed ring of [lng, lat]; pin-verified listings only","minItems":4,"maxItems":201,"type":"array","items":{"type":"array","prefixItems":[{"type":"number","minimum":-180,"maximum":180},{"type":"number","minimum":-90,"maximum":90}],"items":false,"minItems":2,"maxItems":2}},"near":{"description":"A point (rounded to about 110 m) and radius; the default radius depends on the property type","type":"object","properties":{"lat":{"type":"number","minimum":-90,"maximum":90},"lng":{"type":"number","minimum":-180,"maximum":180},"radius_m":{"type":"integer","minimum":100,"maximum":50000}},"required":["lat","lng"]},"sort":{"default":"newest","type":"string","enum":["relevance","newest","price_asc","price_desc","price_per_m2_asc","land_area_desc","trust","nearest"]},"page":{"default":0,"type":"integer","minimum":0,"maximum":9},"locale":{"default":"id","type":"string","enum":["id","en"]}}},"examples":{"example1":{"value":{"location":"Canggu","property_type":"villa","price_max_idr":8000000000}},"example2":{"value":{"door":"monthly_rental","locale":"en"}},"example3":{"value":{"q":"villa gaya bali pemandangan sawah ubud","sort":"relevance"}},"example4":{"value":{"near":{"lat":-6.2,"lng":106.82,"radius_m":2000},"property_type":"apartment","sort":"nearest"}}}}}},"responses":{"200":{"description":"The tool result (Markdown with `Accept: text/markdown` or `?format=md`)","content":{"application/json":{"schema":{"type":"object","properties":{"results":{"maxItems":10,"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":["string","null"]},"url":{"type":"string","format":"uri"},"title":{"type":"object","properties":{"id":{"type":["string","null"]},"en":{"type":["string","null"]}},"required":["id","en"],"additionalProperties":false},"listing_type":{"type":"string"},"rent_period":{"type":["string","null"]},"door":{"type":["string","null"]},"property_type":{"type":"string"},"price_idr":{"type":["number","null"]},"price_negotiable":{"type":"boolean"},"price_type":{"type":"string","enum":["fixed","negotiable","on_request"]},"area_code":{"type":["string","null"]},"land_area_m2":{"type":["number","null"]},"building_area_m2":{"type":["number","null"]},"bedrooms":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"bathrooms":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"certificate_type":{"type":["string","null"]},"lease_term_years":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"furnishing":{"type":["string","null"]},"trust_score":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"pin_verified":{"type":"boolean"},"latitude":{"type":["number","null"]},"longitude":{"type":["number","null"]},"cover_image":{"type":["string","null"]},"project_id":{"type":["string","null"]},"published_at":{"type":["string","null"]},"features":{"type":"array","items":{"type":"string"}},"villa_styles":{"type":"array","items":{"type":"string"}},"lifestyle_tags":{"type":"array","items":{"type":"string"}},"minimum_stay_months":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"pets_allowed":{"type":["boolean","null"]},"available_from":{"type":["string","null"]},"rent_prices":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number"}},{"type":"null"}]},"facing":{"type":["string","null"]},"corner_plot":{"type":["boolean","null"]},"tusuk_sate":{"type":["boolean","null"]},"car_access":{"type":["boolean","null"]},"road_width_m":{"type":["number","null"]},"two_car_pass":{"type":["boolean","null"]},"zoning":{"type":["string","null"]},"price_per_m2_idr":{"type":["number","null"]},"seller_type":{"type":["string","null"]},"build_packages":{"anyOf":[{"type":"object","properties":{"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total_from_idr":{"type":["number","null"]},"styles":{"type":"array","items":{"type":"string"}}},"required":["count","total_from_idr","styles"],"additionalProperties":false},{"type":"null"}]},"why":{"type":"string"}},"required":["id","slug","url","title","listing_type","rent_period","door","property_type","price_idr","price_negotiable","price_type","area_code","land_area_m2","building_area_m2","bedrooms","bathrooms","certificate_type","lease_term_years","furnishing","trust_score","pin_verified","latitude","longitude","cover_image","project_id","published_at","features","villa_styles","lifestyle_tags","minimum_stay_months","pets_allowed","available_from","rent_prices","facing","corner_plot","tusuk_sate","car_access","road_width_m","two_car_pass","zoning","price_per_m2_idr","seller_type","build_packages","why"],"additionalProperties":false}},"page":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"resolved_location":{"anyOf":[{"type":"object","properties":{"name":{"type":"string"},"area_code":{"type":"string"},"context":{"type":"array","items":{"type":"string"}}},"required":["name","area_code","context"],"additionalProperties":false},{"type":"null"}]},"unresolved_location":{"type":["string","null"]},"interpreted":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"sort":{"type":"string","enum":["relevance","newest","price_asc","price_desc","price_per_m2_asc","land_area_desc","trust","nearest"]},"search_url":{"type":"string","format":"uri"}},"required":["results","page","resolved_location","unresolved_location","interpreted","sort","search_url"],"additionalProperties":false}},"text/markdown":{"schema":{"type":"string"}}}},"400":{"description":"The input is not valid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"401":{"description":"Sign in required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"403":{"description":"Not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}}}}},"/v1/tools/get_listing":{"post":{"operationId":"get_listing","summary":"Get one live listing by id or slug: price, size, title type, lease terms, photos, price history, the lister description and its link.","x-access":"public","x-rate-bucket":"read","x-confirm":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"listing":{"type":"string","minLength":1,"maxLength":120},"locale":{"default":"id","type":"string","enum":["id","en"]}},"required":["listing"]},"examples":{"example1":{"value":{"listing":"11111111-1111-4111-8111-111111111111"}},"example2":{"value":{"listing":"villa-canggu-tiga-kamar","locale":"en"}}}}}},"responses":{"200":{"description":"The tool result (Markdown with `Accept: text/markdown` or `?format=md`)","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":["string","null"]},"url":{"type":"string","format":"uri"},"title":{"type":"object","properties":{"id":{"type":["string","null"]},"en":{"type":["string","null"]}},"required":["id","en"],"additionalProperties":false},"listing_type":{"type":"string"},"rent_period":{"type":["string","null"]},"door":{"type":["string","null"]},"property_type":{"type":"string"},"price_idr":{"type":["number","null"]},"price_negotiable":{"type":"boolean"},"price_type":{"type":"string","enum":["fixed","negotiable","on_request"]},"area_code":{"type":["string","null"]},"land_area_m2":{"type":["number","null"]},"building_area_m2":{"type":["number","null"]},"bedrooms":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"bathrooms":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"certificate_type":{"type":["string","null"]},"lease_term_years":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"furnishing":{"type":["string","null"]},"trust_score":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"pin_verified":{"type":"boolean"},"latitude":{"type":["number","null"]},"longitude":{"type":["number","null"]},"cover_image":{"type":["string","null"]},"project_id":{"type":["string","null"]},"published_at":{"type":["string","null"]},"features":{"type":"array","items":{"type":"string"}},"villa_styles":{"type":"array","items":{"type":"string"}},"lifestyle_tags":{"type":"array","items":{"type":"string"}},"minimum_stay_months":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"pets_allowed":{"type":["boolean","null"]},"available_from":{"type":["string","null"]},"rent_prices":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number"}},{"type":"null"}]},"facing":{"type":["string","null"]},"corner_plot":{"type":["boolean","null"]},"tusuk_sate":{"type":["boolean","null"]},"car_access":{"type":["boolean","null"]},"road_width_m":{"type":["number","null"]},"two_car_pass":{"type":["boolean","null"]},"zoning":{"type":["string","null"]},"price_per_m2_idr":{"type":["number","null"]},"seller_type":{"type":["string","null"]},"build_packages":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"package_id":{"type":"string"},"builder_name":{"type":"string"},"design_name":{"type":"string"},"villa_style":{"type":["string","null"]},"bedrooms":{"type":["number","null"]},"building_area_m2":{"type":["number","null"]},"build_price_idr":{"type":"number"},"build_months":{"type":["number","null"]},"inclusions":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"land_price_idr":{"type":["number","null"]},"total_price_idr":{"type":["number","null"]}},"required":["package_id","builder_name","design_name","villa_style","bedrooms","building_area_m2","build_price_idr","build_months","inclusions","land_price_idr","total_price_idr"],"additionalProperties":false}},{"type":"null"}]},"description":{"type":"object","properties":{"id":{"type":["string","null"]},"en":{"type":["string","null"]}},"required":["id","en"],"additionalProperties":false},"photos":{"maxItems":6,"type":"array","items":{"type":"string"}},"price_history":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"price_idr":{"type":"number"},"changed_at":{"type":"string"}},"required":["price_idr","changed_at"],"additionalProperties":false}},"lease_extension_available":{"type":["boolean","null"]},"lease_extension_price_idr":{"type":["number","null"]},"bills_included":{"type":["boolean","null"]},"rental_licence_status":{"type":["string","null"]},"payment_terms":{"type":"array","items":{"type":"string"}},"confirmed_at":{"type":["string","null"]},"holdable_by":{"maxItems":5,"type":"array","items":{"type":"string"}},"foreign_holdable":{"type":"boolean"},"electricity_va":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"water_source":{"type":["string","null"]},"monthly_equivalent":{"anyOf":[{"type":"object","properties":{"price_idr":{"type":"number"},"derived":{"type":"boolean"},"from_period":{"type":"string"}},"required":["price_idr","derived","from_period"],"additionalProperties":false},{"type":"null"}]},"first_listed_at":{"type":["string","null"]},"days_on_market":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"stale":{"type":"boolean"},"nearby":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"name":{"type":"string"},"distance_m":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"walk_minutes":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"drive_minutes":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["category","name","distance_m","walk_minutes","drive_minutes"],"additionalProperties":false}},"halal_food_within_1km":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"agent_credentials":{"anyOf":[{"type":"object","properties":{"licensed":{"type":"boolean"},"licensed_until":{"type":["string","null"]},"licence_checked_at":{"type":["string","null"]},"arebi_member":{"type":"boolean"},"arebi_valid_until":{"type":["string","null"]},"arebi_checked_at":{"type":["string","null"]},"agency_verified":{"type":"boolean"},"agency":{"anyOf":[{"type":"object","properties":{"organization_id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"verified":{"type":"boolean"},"checks":{"maxItems":10,"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"checked_at":{"type":["string","null"]},"valid_until":{"type":["string","null"]}},"required":["type","checked_at","valid_until"],"additionalProperties":false}}},"required":["organization_id","slug","name","verified","checks"],"additionalProperties":false},{"type":"null"}]}},"required":["licensed","licensed_until","licence_checked_at","arebi_member","arebi_valid_until","arebi_checked_at","agency_verified","agency"],"additionalProperties":false},{"type":"null"}]}},"required":["id","slug","url","title","listing_type","rent_period","door","property_type","price_idr","price_negotiable","price_type","area_code","land_area_m2","building_area_m2","bedrooms","bathrooms","certificate_type","lease_term_years","furnishing","trust_score","pin_verified","latitude","longitude","cover_image","project_id","published_at","features","villa_styles","lifestyle_tags","minimum_stay_months","pets_allowed","available_from","rent_prices","facing","corner_plot","tusuk_sate","car_access","road_width_m","two_car_pass","zoning","price_per_m2_idr","seller_type","build_packages","description","photos","price_history","lease_extension_available","lease_extension_price_idr","bills_included","rental_licence_status","payment_terms","confirmed_at","holdable_by","foreign_holdable","electricity_va","water_source","monthly_equivalent","first_listed_at","days_on_market","stale","nearby","halal_food_within_1km","agent_credentials"],"additionalProperties":false}},"text/markdown":{"schema":{"type":"string"}}}},"400":{"description":"The input is not valid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"401":{"description":"Sign in required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"403":{"description":"Not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}}}}},"/v1/tools/compare_listings":{"post":{"operationId":"compare_listings","summary":"Compare two to four live listings side by side: price, price per m² of land and building, price per lease year, against the area median price per m², land and building size, title, rooms, power, flood risk and trust score, with the best value of each row marked.","x-access":"public","x-rate-bucket":"read","x-confirm":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"listings":{"minItems":2,"maxItems":4,"type":"array","items":{"type":"string","minLength":1,"maxLength":120}},"locale":{"default":"id","type":"string","enum":["id","en"]}},"required":["listings"]},"examples":{"example1":{"value":{"listings":["11111111-1111-4111-8111-111111111111","22222222-2222-4222-8222-222222222222"]}}}}}},"responses":{"200":{"description":"The tool result (Markdown with `Accept: text/markdown` or `?format=md`)","content":{"application/json":{"schema":{"type":"object","properties":{"listings":{"maxItems":4,"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":["string","null"]},"url":{"type":"string","format":"uri"},"title":{"type":"object","properties":{"id":{"type":["string","null"]},"en":{"type":["string","null"]}},"required":["id","en"],"additionalProperties":false},"listing_type":{"type":"string"},"rent_period":{"type":["string","null"]},"door":{"type":["string","null"]},"property_type":{"type":"string"},"price_idr":{"type":["number","null"]},"price_negotiable":{"type":"boolean"},"price_type":{"type":"string","enum":["fixed","negotiable","on_request"]},"area_code":{"type":["string","null"]},"land_area_m2":{"type":["number","null"]},"building_area_m2":{"type":["number","null"]},"bedrooms":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"bathrooms":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"certificate_type":{"type":["string","null"]},"lease_term_years":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"furnishing":{"type":["string","null"]},"trust_score":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"pin_verified":{"type":"boolean"},"latitude":{"type":["number","null"]},"longitude":{"type":["number","null"]},"cover_image":{"type":["string","null"]},"project_id":{"type":["string","null"]},"published_at":{"type":["string","null"]},"features":{"type":"array","items":{"type":"string"}},"villa_styles":{"type":"array","items":{"type":"string"}},"lifestyle_tags":{"type":"array","items":{"type":"string"}},"minimum_stay_months":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"pets_allowed":{"type":["boolean","null"]},"available_from":{"type":["string","null"]},"rent_prices":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number"}},{"type":"null"}]},"facing":{"type":["string","null"]},"corner_plot":{"type":["boolean","null"]},"tusuk_sate":{"type":["boolean","null"]},"car_access":{"type":["boolean","null"]},"road_width_m":{"type":["number","null"]},"two_car_pass":{"type":["boolean","null"]},"zoning":{"type":["string","null"]},"price_per_m2_idr":{"type":["number","null"]},"seller_type":{"type":["string","null"]},"build_packages":{"anyOf":[{"type":"object","properties":{"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total_from_idr":{"type":["number","null"]},"styles":{"type":"array","items":{"type":"string"}}},"required":["count","total_from_idr","styles"],"additionalProperties":false},{"type":"null"}]},"price_per_land_m2_idr":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"price_per_building_m2_idr":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"price_per_lease_year_idr":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"electricity_va":{"type":["number","null"]},"flood_risk":{"anyOf":[{"type":"string","enum":["none","low","medium","high"]},{"type":"null"}]},"area_median_price_per_land_m2_idr":{"type":["number","null"]},"area_median_area_name":{"type":["string","null"]},"price_vs_area_median_pct":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]}},"required":["id","slug","url","title","listing_type","rent_period","door","property_type","price_idr","price_negotiable","price_type","area_code","land_area_m2","building_area_m2","bedrooms","bathrooms","certificate_type","lease_term_years","furnishing","trust_score","pin_verified","latitude","longitude","cover_image","project_id","published_at","features","villa_styles","lifestyle_tags","minimum_stay_months","pets_allowed","available_from","rent_prices","facing","corner_plot","tusuk_sate","car_access","road_width_m","two_car_pass","zoning","price_per_m2_idr","seller_type","build_packages","price_per_land_m2_idr","price_per_building_m2_idr","price_per_lease_year_idr","electricity_va","flood_risk","area_median_price_per_land_m2_idr","area_median_area_name","price_vs_area_median_pct"],"additionalProperties":false}},"table":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","enum":["price_idr","price_per_land_m2_idr","price_per_building_m2_idr","price_vs_area_median_pct","land_area_m2","building_area_m2","certificate_type","bedrooms","bathrooms","electricity_va","flood_risk","trust_score"]},"values":{"maxItems":4,"type":"array","items":{"type":["number","string","null"]}},"best":{"maxItems":4,"type":"array","items":{"type":"string"}}},"required":["key","values","best"],"additionalProperties":false}},"not_found":{"maxItems":4,"type":"array","items":{"type":"string"}}},"required":["listings","table","not_found"],"additionalProperties":false}},"text/markdown":{"schema":{"type":"string"}}}},"400":{"description":"The input is not valid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"401":{"description":"Sign in required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"403":{"description":"Not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}}}}},"/v1/tools/ask_listing":{"post":{"operationId":"ask_listing","summary":"Answer a question about one live listing from its data only: grounded answers with the fields they cite, topics the data cannot answer (refuse those, offer the lister), the facts and the lister description as untrusted text. Logs the question for the lister.","x-access":"public","x-rate-bucket":"read","x-confirm":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"listing":{"type":"string","minLength":1,"maxLength":120},"question":{"type":"string","minLength":2,"maxLength":500},"locale":{"default":"id","type":"string","enum":["id","en"]}},"required":["listing","question"]},"examples":{"example1":{"value":{"listing":"11111111-1111-4111-8111-111111111111","question":"Sertifikatnya apa?"}}}}}},"responses":{"200":{"description":"The tool result (Markdown with `Accept: text/markdown` or `?format=md`)","content":{"application/json":{"schema":{"type":"object","properties":{"listing":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":["string","null"]},"url":{"type":"string","format":"uri"},"title":{"type":"object","properties":{"id":{"type":["string","null"]},"en":{"type":["string","null"]}},"required":["id","en"],"additionalProperties":false},"listing_type":{"type":"string"},"rent_period":{"type":["string","null"]},"door":{"type":["string","null"]},"property_type":{"type":"string"},"price_idr":{"type":["number","null"]},"price_negotiable":{"type":"boolean"},"price_type":{"type":"string","enum":["fixed","negotiable","on_request"]},"area_code":{"type":["string","null"]},"land_area_m2":{"type":["number","null"]},"building_area_m2":{"type":["number","null"]},"bedrooms":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"bathrooms":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"certificate_type":{"type":["string","null"]},"lease_term_years":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"furnishing":{"type":["string","null"]},"trust_score":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"pin_verified":{"type":"boolean"},"latitude":{"type":["number","null"]},"longitude":{"type":["number","null"]},"cover_image":{"type":["string","null"]},"project_id":{"type":["string","null"]},"published_at":{"type":["string","null"]},"features":{"type":"array","items":{"type":"string"}},"villa_styles":{"type":"array","items":{"type":"string"}},"lifestyle_tags":{"type":"array","items":{"type":"string"}},"minimum_stay_months":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"pets_allowed":{"type":["boolean","null"]},"available_from":{"type":["string","null"]},"rent_prices":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number"}},{"type":"null"}]},"facing":{"type":["string","null"]},"corner_plot":{"type":["boolean","null"]},"tusuk_sate":{"type":["boolean","null"]},"car_access":{"type":["boolean","null"]},"road_width_m":{"type":["number","null"]},"two_car_pass":{"type":["boolean","null"]},"zoning":{"type":["string","null"]},"price_per_m2_idr":{"type":["number","null"]},"seller_type":{"type":["string","null"]},"build_packages":{"anyOf":[{"type":"object","properties":{"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total_from_idr":{"type":["number","null"]},"styles":{"type":"array","items":{"type":"string"}}},"required":["count","total_from_idr","styles"],"additionalProperties":false},{"type":"null"}]},"description":{"type":"object","properties":{"id":{"type":["string","null"]},"en":{"type":["string","null"]}},"required":["id","en"],"additionalProperties":false},"photos":{"maxItems":6,"type":"array","items":{"type":"string"}},"price_history":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"price_idr":{"type":"number"},"changed_at":{"type":"string"}},"required":["price_idr","changed_at"],"additionalProperties":false}},"lease_extension_available":{"type":["boolean","null"]},"lease_extension_price_idr":{"type":["number","null"]},"bills_included":{"type":["boolean","null"]},"rental_licence_status":{"type":["string","null"]},"payment_terms":{"type":"array","items":{"type":"string"}},"confirmed_at":{"type":["string","null"]},"holdable_by":{"maxItems":5,"type":"array","items":{"type":"string"}},"foreign_holdable":{"type":"boolean"},"electricity_va":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"water_source":{"type":["string","null"]},"monthly_equivalent":{"anyOf":[{"type":"object","properties":{"price_idr":{"type":"number"},"derived":{"type":"boolean"},"from_period":{"type":"string"}},"required":["price_idr","derived","from_period"],"additionalProperties":false},{"type":"null"}]},"first_listed_at":{"type":["string","null"]},"days_on_market":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"stale":{"type":"boolean"},"nearby":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"name":{"type":"string"},"distance_m":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"walk_minutes":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"drive_minutes":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["category","name","distance_m","walk_minutes","drive_minutes"],"additionalProperties":false}},"halal_food_within_1km":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]}},"required":["id","slug","url","title","listing_type","rent_period","door","property_type","price_idr","price_negotiable","price_type","area_code","land_area_m2","building_area_m2","bedrooms","bathrooms","certificate_type","lease_term_years","furnishing","trust_score","pin_verified","latitude","longitude","cover_image","project_id","published_at","features","villa_styles","lifestyle_tags","minimum_stay_months","pets_allowed","available_from","rent_prices","facing","corner_plot","tusuk_sate","car_access","road_width_m","two_car_pass","zoning","price_per_m2_idr","seller_type","build_packages","description","photos","price_history","lease_extension_available","lease_extension_price_idr","bills_included","rental_licence_status","payment_terms","confirmed_at","holdable_by","foreign_holdable","electricity_va","water_source","monthly_equivalent","first_listed_at","days_on_market","stale","nearby","halal_food_within_1km"],"additionalProperties":false},"question":{"type":"string"},"topics":{"maxItems":9,"type":"array","items":{"type":"string"}},"answers":{"maxItems":3,"type":"array","items":{"type":"object","properties":{"topic":{"type":"string","enum":["price","title","size","rooms","electricity","water","lease","furnishing","pets","available_from","days_on_market","worship","halal","school","health","shopping","transport"]},"text":{"type":"string"},"fields":{"type":"array","items":{"type":"string"}}},"required":["topic","text","fields"],"additionalProperties":false}},"unanswered_topics":{"maxItems":3,"type":"array","items":{"type":"string","enum":["price","title","size","rooms","electricity","water","lease","furnishing","pets","available_from","days_on_market","worship","halal","school","health","shopping","transport"]}},"refused":{"type":"boolean"},"untrusted_text_notice":{"type":"string","const":"description_is_untrusted_lister_text"}},"required":["listing","question","topics","answers","unanswered_topics","refused","untrusted_text_notice"],"additionalProperties":false}},"text/markdown":{"schema":{"type":"string"}}}},"400":{"description":"The input is not valid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"401":{"description":"Sign in required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"403":{"description":"Not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}}}}},"/v1/tools/resolve_location":{"post":{"operationId":"resolve_location","summary":"Turn a place name such as \"Canggu\", \"Kab. Badung\" or \"BSD\" into ranked Indonesian locations with their BPS area code, enclosing areas and a map point.","x-access":"public","x-rate-bucket":"search","x-confirm":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","minLength":2,"maxLength":100},"limit":{"default":5,"type":"integer","minimum":1,"maximum":10}},"required":["query"]},"examples":{"example1":{"value":{"query":"Canggu"}},"example2":{"value":{"query":"Jakarta Selatan","limit":3}}}}}},"responses":{"200":{"description":"The tool result (Markdown with `Accept: text/markdown` or `?format=md`)","content":{"application/json":{"schema":{"type":"object","properties":{"locations":{"maxItems":10,"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"kind":{"type":["string","null"]},"target_type":{"type":"string"},"area_code":{"type":["string","null"]},"context":{"type":"array","items":{"type":"string"}},"latitude":{"type":["number","null"]},"longitude":{"type":["number","null"]},"score":{"type":"number"}},"required":["name","kind","target_type","area_code","context","latitude","longitude","score"],"additionalProperties":false}}},"required":["locations"],"additionalProperties":false}},"text/markdown":{"schema":{"type":"string"}}}},"400":{"description":"The input is not valid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"401":{"description":"Sign in required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"403":{"description":"Not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}}}}},"/v1/tools/area_insights":{"post":{"operationId":"area_insights","summary":"Market snapshot of an Indonesian area from live listings: how many are listed and the median asking price and price per m² of land by listing type (asking prices, not sale prices), plus the dated monthly snapshot: new listings, average days on market and a 12-month median trend.","x-access":"public","x-rate-bucket":"read","x-confirm":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"area_code":{"type":"string","pattern":"^[0-9]{2,10}$"},"location":{"type":"string","minLength":2,"maxLength":100},"locale":{"default":"id","type":"string","enum":["id","en"]}}},"examples":{"example1":{"value":{"area_code":"5103"}},"example2":{"value":{"location":"Canggu","locale":"en"}}}}}},"responses":{"200":{"description":"The tool result (Markdown with `Accept: text/markdown` or `?format=md`)","content":{"application/json":{"schema":{"type":"object","properties":{"area_code":{"type":"string"},"area_name":{"type":["string","null"]},"area_level":{"type":["string","null"]},"live_listings":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"average_trust_score":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"by_listing_type":{"maxItems":10,"type":"array","items":{"type":"object","properties":{"listing_type":{"type":"string"},"rent_period":{"type":["string","null"]},"listings":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"median_price_idr":{"type":["number","null"]},"median_price_per_land_m2_idr":{"type":["number","null"]}},"required":["listing_type","rent_period","listings","median_price_idr","median_price_per_land_m2_idr"],"additionalProperties":false}},"prices_are":{"type":"string","const":"asking_prices"},"snapshot":{"anyOf":[{"type":"object","properties":{"month":{"type":"string"},"as_of":{"type":"string"},"segments":{"maxItems":10,"type":"array","items":{"type":"object","properties":{"segment":{"type":"string"},"live_listings":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"new_listings":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"median_price_idr":{"type":["number","null"]},"median_price_per_land_m2_idr":{"type":["number","null"]},"average_days_on_market":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]}},"required":["segment","live_listings","new_listings","median_price_idr","median_price_per_land_m2_idr","average_days_on_market"],"additionalProperties":false}},"trend":{"maxItems":120,"type":"array","items":{"type":"object","properties":{"month":{"type":"string"},"segment":{"type":"string"},"median_price_idr":{"type":["number","null"]}},"required":["month","segment","median_price_idr"],"additionalProperties":false}}},"required":["month","as_of","segments","trend"],"additionalProperties":false},{"type":"null"}]},"url":{"type":"string","format":"uri"}},"required":["area_code","area_name","area_level","live_listings","average_trust_score","by_listing_type","prices_are","snapshot","url"],"additionalProperties":false}},"text/markdown":{"schema":{"type":"string"}}}},"400":{"description":"The input is not valid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"401":{"description":"Sign in required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"403":{"description":"Not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}}}}},"/v1/tools/get_project":{"post":{"operationId":"get_project","summary":"Get one live new-build project by id or slug: developer, construction stage, completion year, building permit status, number of units, how many are still available, booked or sold, whether it is ready to move in (completed with an issued SLF), and the price range of its live listings.","x-access":"public","x-rate-bucket":"read","x-confirm":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"project":{"type":"string","minLength":1,"maxLength":80},"locale":{"default":"id","type":"string","enum":["id","en"]}},"required":["project"]},"examples":{"example1":{"value":{"project":"canggu-green-residences"}}}}}},"responses":{"200":{"description":"The tool result (Markdown with `Accept: text/markdown` or `?format=md`)","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"developer_name":{"type":["string","null"]},"stage":{"type":"string"},"area_code":{"type":["string","null"]},"land_area_m2":{"type":["number","null"]},"total_units":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"completion_year":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"building_permit_status":{"type":"string"},"latitude":{"type":["number","null"]},"longitude":{"type":["number","null"]},"live_listings":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"price_min_idr":{"type":["number","null"]},"price_max_idr":{"type":["number","null"]},"units_available":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"units_reserved":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"units_sold":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"ready_to_move_in":{"type":"boolean"},"url":{"type":"string","format":"uri"}},"required":["id","slug","name","developer_name","stage","area_code","land_area_m2","total_units","completion_year","building_permit_status","latitude","longitude","live_listings","price_min_idr","price_max_idr","units_available","units_reserved","units_sold","ready_to_move_in","url"],"additionalProperties":false}},"text/markdown":{"schema":{"type":"string"}}}},"400":{"description":"The input is not valid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"401":{"description":"Sign in required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"403":{"description":"Not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}}}}},"/v1/tools/list_agents":{"post":{"operationId":"list_agents","summary":"Find active property agents by Indonesian area, language and specialty (rent, villa, land...), with licences, reviews, live listings, verified sales, median response time and profile links; no contact details. Sorted by activity in the area by default.","x-access":"public","x-rate-bucket":"search","x-confirm":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"area_code":{"type":"string","pattern":"^[0-9]{2,10}$"},"location":{"type":"string","minLength":2,"maxLength":100},"language":{"type":"string","pattern":"^[a-z]{2}$"},"specialty":{"type":"string","enum":["sale","rent","leasehold","land_and_build","new_project","house","villa","land","apartment","townhouse","shophouse","office","warehouse","commercial_space","guesthouse","hotel"]},"sort":{"default":"activity","type":"string","enum":["activity","reviews","sold","response"]},"locale":{"default":"id","type":"string","enum":["id","en"]}}},"examples":{"example1":{"value":{"area_code":"5103","language":"en"}},"example2":{"value":{"location":"Canggu","specialty":"villa"}},"example3":{"value":{"area_code":"3174","specialty":"rent","sort":"response"}}}}}},"responses":{"200":{"description":"The tool result (Markdown with `Accept: text/markdown` or `?format=md`)","content":{"application/json":{"schema":{"type":"object","properties":{"agents":{"maxItems":10,"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"public_slug":{"type":"string"},"display_name":{"type":"string"},"bio":{"type":["string","null"]},"languages":{"type":"array","items":{"type":"string"}},"service_area_codes":{"type":"array","items":{"type":"string"}},"licences":{"type":"array","items":{"type":"object","properties":{"licence_type":{"type":"string"},"valid_until":{"type":["string","null"]},"has_verification":{"type":"boolean"},"checked_at":{"type":["string","null"]}},"required":["licence_type","valid_until","has_verification","checked_at"],"additionalProperties":false}},"review_count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"average_rating":{"type":["number","null"]},"active_listings":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sold_count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"median_response_minutes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"specialties":{"type":"array","items":{"type":"string"}},"area_activity":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"credentials":{"type":"object","properties":{"licensed":{"type":"boolean"},"licensed_until":{"type":["string","null"]},"licence_checked_at":{"type":["string","null"]},"arebi_member":{"type":"boolean"},"arebi_valid_until":{"type":["string","null"]},"arebi_checked_at":{"type":["string","null"]},"agency_verified":{"type":"boolean"},"agency":{"anyOf":[{"type":"object","properties":{"organization_id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"verified":{"type":"boolean"},"checks":{"maxItems":10,"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"checked_at":{"type":["string","null"]},"valid_until":{"type":["string","null"]}},"required":["type","checked_at","valid_until"],"additionalProperties":false}}},"required":["organization_id","slug","name","verified","checks"],"additionalProperties":false},{"type":"null"}]}},"required":["licensed","licensed_until","licence_checked_at","arebi_member","arebi_valid_until","arebi_checked_at","agency_verified","agency"],"additionalProperties":false},"url":{"type":"string","format":"uri"}},"required":["id","public_slug","display_name","bio","languages","service_area_codes","licences","review_count","average_rating","active_listings","sold_count","median_response_minutes","specialties","area_activity","credentials","url"],"additionalProperties":false}}},"required":["agents"],"additionalProperties":false}},"text/markdown":{"schema":{"type":"string"}}}},"400":{"description":"The input is not valid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"401":{"description":"Sign in required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"403":{"description":"Not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}}}}},"/v1/tools/check_listing_trust":{"post":{"operationId":"check_listing_trust","summary":"Check how far a live listing can be trusted: trust score 0 to 100, the reasons behind it, whether the map pin is verified, when the lister last confirmed it is available, and current signals.","x-access":"public","x-rate-bucket":"read","x-confirm":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"listing_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"locale":{"default":"id","type":"string","enum":["id","en"]}},"required":["listing_id"]},"examples":{"example1":{"value":{"listing_id":"11111111-1111-4111-8111-111111111111"}}}}}},"responses":{"200":{"description":"The tool result (Markdown with `Accept: text/markdown` or `?format=md`)","content":{"application/json":{"schema":{"type":"object","properties":{"listing":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":["string","null"]},"url":{"type":"string","format":"uri"},"title":{"type":"object","properties":{"id":{"type":["string","null"]},"en":{"type":["string","null"]}},"required":["id","en"],"additionalProperties":false},"listing_type":{"type":"string"},"rent_period":{"type":["string","null"]},"door":{"type":["string","null"]},"property_type":{"type":"string"},"price_idr":{"type":["number","null"]},"price_negotiable":{"type":"boolean"},"price_type":{"type":"string","enum":["fixed","negotiable","on_request"]},"area_code":{"type":["string","null"]},"land_area_m2":{"type":["number","null"]},"building_area_m2":{"type":["number","null"]},"bedrooms":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"bathrooms":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"certificate_type":{"type":["string","null"]},"lease_term_years":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"furnishing":{"type":["string","null"]},"trust_score":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"pin_verified":{"type":"boolean"},"latitude":{"type":["number","null"]},"longitude":{"type":["number","null"]},"cover_image":{"type":["string","null"]},"project_id":{"type":["string","null"]},"published_at":{"type":["string","null"]},"features":{"type":"array","items":{"type":"string"}},"villa_styles":{"type":"array","items":{"type":"string"}},"lifestyle_tags":{"type":"array","items":{"type":"string"}},"minimum_stay_months":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"pets_allowed":{"type":["boolean","null"]},"available_from":{"type":["string","null"]},"rent_prices":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number"}},{"type":"null"}]},"facing":{"type":["string","null"]},"corner_plot":{"type":["boolean","null"]},"tusuk_sate":{"type":["boolean","null"]},"car_access":{"type":["boolean","null"]},"road_width_m":{"type":["number","null"]},"two_car_pass":{"type":["boolean","null"]},"zoning":{"type":["string","null"]},"price_per_m2_idr":{"type":["number","null"]},"seller_type":{"type":["string","null"]},"build_packages":{"anyOf":[{"type":"object","properties":{"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total_from_idr":{"type":["number","null"]},"styles":{"type":"array","items":{"type":"string"}}},"required":["count","total_from_idr","styles"],"additionalProperties":false},{"type":"null"}]}},"required":["id","slug","url","title","listing_type","rent_period","door","property_type","price_idr","price_negotiable","price_type","area_code","land_area_m2","building_area_m2","bedrooms","bathrooms","certificate_type","lease_term_years","furnishing","trust_score","pin_verified","latitude","longitude","cover_image","project_id","published_at","features","villa_styles","lifestyle_tags","minimum_stay_months","pets_allowed","available_from","rent_prices","facing","corner_plot","tusuk_sate","car_access","road_width_m","two_car_pass","zoning","price_per_m2_idr","seller_type","build_packages"],"additionalProperties":false},"score":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"reasons":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"effect":{"type":"number"}},"required":["code","effect"],"additionalProperties":false}},"computed_at":{"type":["string","null"]},"pin_verified":{"type":["boolean","null"]},"confirmed_at":{"type":["string","null"]},"signals":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"signal":{"type":"string"},"polarity":{"type":"string","enum":["positive","negative"]},"observed_at":{"type":"string"}},"required":["signal","polarity","observed_at"],"additionalProperties":false}},"safety_guide_hint":{"type":"string","const":"never_pay_before_viewing_and_title_check"}},"required":["listing","score","reasons","computed_at","pin_verified","confirmed_at","signals","safety_guide_hint"],"additionalProperties":false}},"text/markdown":{"schema":{"type":"string"}}}},"400":{"description":"The input is not valid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"401":{"description":"Sign in required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"403":{"description":"Not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}}}}},"/v1/tools/report_listing":{"post":{"operationId":"report_listing","summary":"Report a live listing as a scam, fake, wrong price, already sold, wrong location, duplicate, offensive, impersonation or an agent posing as the owner; moderators review every report.","x-access":"public","x-rate-bucket":"report","x-confirm":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"listing_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"reason":{"type":"string","enum":["scam","fake_listing","wrong_price","already_sold","wrong_location","duplicate","offensive","impersonation","agent_posing_as_owner","other"]},"details":{"type":"string","minLength":1,"maxLength":2000}},"required":["listing_id","reason"]},"examples":{"example1":{"value":{"listing_id":"11111111-1111-4111-8111-111111111111","reason":"wrong_price"}}}}}},"responses":{"200":{"description":"The tool result (Markdown with `Accept: text/markdown` or `?format=md`)","content":{"application/json":{"schema":{"type":"object","properties":{"reported":{"type":"boolean","const":true},"listing_id":{"type":"string"}},"required":["reported","listing_id"],"additionalProperties":false}},"text/markdown":{"schema":{"type":"string"}}}},"400":{"description":"The input is not valid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"401":{"description":"Sign in required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"403":{"description":"Not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}}}}},"/v1/tools/get_document_checklist":{"post":{"operationId":"get_document_checklist","summary":"List the documents to prepare for buying, selling, renting or leasing property in Indonesia, for a citizen, a foreigner or a company; general information for the notary or PPAT.","x-access":"public","x-rate-bucket":"compute","x-confirm":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"transaction":{"type":"string","enum":["buy","sell","rent","lease"]},"party":{"default":"indonesian_citizen","type":"string","enum":["indonesian_citizen","foreigner","company"]}},"required":["transaction"]},"examples":{"example1":{"value":{"transaction":"buy","party":"foreigner"}},"example2":{"value":{"transaction":"lease"}}}}}},"responses":{"200":{"description":"The tool result (Markdown with `Accept: text/markdown` or `?format=md`)","content":{"application/json":{"schema":{"type":"object","properties":{"transaction":{"type":"string"},"party":{"type":"string"},"items":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"label":{"type":"object","properties":{"id":{"type":"string"},"en":{"type":"string"}},"required":["id","en"],"additionalProperties":false},"provided_by":{"type":"string","enum":["buyer","seller","lessee","lessor","notary"]},"required":{"type":"boolean"}},"required":["code","label","provided_by","required"],"additionalProperties":false}},"general_information":{"type":"object","properties":{"kind":{"type":"string","const":"general_information_not_legal_advice"},"rules_version":{"type":"string"},"reviewed_at":{"type":["string","null"]},"status":{"type":"string","enum":["pending_lawyer_review","lawyer_reviewed"]}},"required":["kind","rules_version","reviewed_at","status"],"additionalProperties":false}},"required":["transaction","party","items","general_information"],"additionalProperties":false}},"text/markdown":{"schema":{"type":"string"}}}},"400":{"description":"The input is not valid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"401":{"description":"Sign in required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"403":{"description":"Not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}}}}},"/v1/tools/calc_leasehold":{"post":{"operationId":"calc_leasehold","summary":"Work out what a leasehold (Hak Sewa) costs per remaining year and month, with an optional extension, the straight-line residual value, and a comparison with an HGB purchase.","x-access":"public","x-rate-bucket":"compute","x-confirm":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"price_idr":{"type":"integer","exclusiveMinimum":0,"maximum":1000000000000000},"years_remaining":{"type":"integer","minimum":1,"maximum":99},"extension_years":{"type":"integer","minimum":1,"maximum":99},"extension_price_idr":{"type":"integer","minimum":0,"maximum":1000000000000000},"hgb_price_idr":{"type":"integer","exclusiveMinimum":0,"maximum":1000000000000000},"annual_net_income_idr":{"type":"integer","exclusiveMinimum":0,"maximum":1000000000000000}},"required":["price_idr","years_remaining"]},"examples":{"example1":{"value":{"price_idr":3500000000,"years_remaining":25}},"example2":{"value":{"price_idr":2000000000,"years_remaining":20,"extension_years":10,"hgb_price_idr":6000000000}}}}}},"responses":{"200":{"description":"The tool result (Markdown with `Accept: text/markdown` or `?format=md`)","content":{"application/json":{"schema":{"type":"object","properties":{"price_per_year_idr":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"price_per_month_idr":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"extension":{"anyOf":[{"type":"object","properties":{"years":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"price_idr":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total_years":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total_price_idr":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"price_per_year_idr":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["years","price_idr","total_years","total_price_idr","price_per_year_idr"],"additionalProperties":false},{"type":"null"}]},"residual_value":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"year":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"value_idr":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["year","value_idr"],"additionalProperties":false}},"hgb_comparison":{"anyOf":[{"type":"object","properties":{"price_idr":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"term_years":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"price_per_year_idr":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"lease_costs_more_per_year":{"type":"boolean"}},"required":["price_idr","term_years","price_per_year_idr","lease_costs_more_per_year"],"additionalProperties":false},{"type":"null"}]},"payback_years":{"type":["number","null"]},"assumptions":{"maxItems":10,"type":"array","items":{"type":"string"}},"general_information":{"type":"object","properties":{"kind":{"type":"string","const":"general_information_not_legal_advice"},"rules_version":{"type":"string"},"reviewed_at":{"type":["string","null"]},"status":{"type":"string","enum":["pending_lawyer_review","lawyer_reviewed"]}},"required":["kind","rules_version","reviewed_at","status"],"additionalProperties":false}},"required":["price_per_year_idr","price_per_month_idr","extension","residual_value","hgb_comparison","payback_years","assumptions","general_information"],"additionalProperties":false}},"text/markdown":{"schema":{"type":"string"}}}},"400":{"description":"The input is not valid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"401":{"description":"Sign in required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"403":{"description":"Not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}}}}},"/v1/tools/check_eligibility":{"post":{"operationId":"check_eligibility","summary":"Check which ownership routes (freehold SHM, Hak Pakai, PT PMA with HGB, lease) are open to a buyer in Indonesia by nationality, stay permit, purpose, property type, province and price. Each route cites its legal source and review status; general information, not legal advice.","x-access":"public","x-rate-bucket":"compute","x-confirm":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"buyer":{"type":"string","enum":["indonesian_citizen","foreigner","foreign_company"]},"nationality":{"type":"string","pattern":"^[A-Za-z]{2}$"},"residence":{"type":"string","enum":["kitas","kitap","second_home_visa","visa","none"]},"purpose":{"type":"string","enum":["home","rental_business","land_bank"]},"property_type":{"type":"string","enum":["landed_house","apartment","land","villa"]},"province_code":{"type":"string","pattern":"^[0-9]{2,10}$"},"price_idr":{"type":"integer","exclusiveMinimum":0,"maximum":1000000000000000}},"required":["buyer","purpose","property_type"]},"examples":{"example1":{"value":{"buyer":"foreigner","nationality":"AU","residence":"kitas","purpose":"home","property_type":"villa","province_code":"51","price_idr":6000000000}},"example2":{"value":{"buyer":"foreigner","purpose":"rental_business","property_type":"land"}}}}}},"responses":{"200":{"description":"The tool result (Markdown with `Accept: text/markdown` or `?format=md`)","content":{"application/json":{"schema":{"type":"object","properties":{"routes":{"maxItems":4,"type":"array","items":{"type":"object","properties":{"route":{"type":"string","enum":["freehold_shm","hak_pakai","pt_pma_hgb","leasehold"]},"eligible":{"type":"boolean"},"reasons":{"maxItems":5,"type":"array","items":{"type":"string"}},"minimum_price_idr":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"legal_source":{"type":"object","properties":{"code":{"type":"string"},"title":{"type":"string"},"year":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["code","title","year"],"additionalProperties":false},"needs_legal_review":{"type":"boolean"}},"required":["route","eligible","reasons","minimum_price_idr","legal_source","needs_legal_review"],"additionalProperties":false}},"nationality":{"type":["string","null"]},"recommended_route":{"anyOf":[{"type":"string","enum":["freehold_shm","hak_pakai","pt_pma_hgb","leasehold"]},{"type":"null"}]},"concierge_service":{"anyOf":[{"type":"string","enum":["pt_pma_setup"]},{"type":"null"}]},"general_information":{"type":"object","properties":{"kind":{"type":"string","const":"general_information_not_legal_advice"},"rules_version":{"type":"string"},"reviewed_at":{"type":["string","null"]},"status":{"type":"string","enum":["pending_lawyer_review","lawyer_reviewed"]}},"required":["kind","rules_version","reviewed_at","status"],"additionalProperties":false}},"required":["routes","nationality","recommended_route","concierge_service","general_information"],"additionalProperties":false}},"text/markdown":{"schema":{"type":"string"}}}},"400":{"description":"The input is not valid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"401":{"description":"Sign in required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"403":{"description":"Not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}}}}},"/v1/tools/list_guides":{"post":{"operationId":"list_guides","summary":"List published guides on buying, selling, legal topics and the market in Indonesia, newest first, with an optional category or tag; general information, not legal advice.","x-access":"public","x-rate-bucket":"read","x-confirm":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"locale":{"default":"en","type":"string","enum":["id","en"]},"category":{"type":"string","enum":["buying","selling","legal","market_news"]},"tag":{"type":"string","enum":["pricing","documents","taxes","agents","preparation","mortgage","bali"]},"limit":{"default":20,"type":"integer","minimum":1,"maximum":50}}},"examples":{"example1":{"value":{}},"example2":{"value":{"locale":"id","category":"buying","limit":5}}}}}},"responses":{"200":{"description":"The tool result (Markdown with `Accept: text/markdown` or `?format=md`)","content":{"application/json":{"schema":{"type":"object","properties":{"guides":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"title":{"type":["string","null"]},"description":{"type":["string","null"]},"category":{"type":["string","null"]},"tags":{"type":"array","items":{"type":"string"}},"author":{"type":["string","null"]},"published_at":{"type":["string","null"]},"updated_at":{"type":["string","null"]},"reading_minutes":{"type":"number"},"url":{"type":"string"}},"required":["id","slug","title","description","category","tags","author","published_at","updated_at","reading_minutes","url"],"additionalProperties":false}}},"required":["guides"],"additionalProperties":false}},"text/markdown":{"schema":{"type":"string"}}}},"400":{"description":"The input is not valid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"401":{"description":"Sign in required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"403":{"description":"Not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}}}}},"/v1/tools/get_guide":{"post":{"operationId":"get_guide","summary":"Read one published guide by its slug: title, description, sections and the page address. If the guide moved, the answer gives the new slug in `moved_to`.","x-access":"public","x-rate-bucket":"read","x-confirm":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"locale":{"default":"en","type":"string","enum":["id","en"]},"slug":{"type":"string","minLength":1,"maxLength":100}},"required":["slug"]},"examples":{"example1":{"value":{"slug":"pricing-your-property"}}}}}},"responses":{"200":{"description":"The tool result (Markdown with `Accept: text/markdown` or `?format=md`)","content":{"application/json":{"schema":{"type":"object","properties":{"found":{"type":"boolean"},"moved_to":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"sections":{"type":"array","items":{"type":"string"}},"text":{"type":"string"},"url":{"type":"string"},"updated_at":{"type":"string"}},"required":["found"],"additionalProperties":false}},"text/markdown":{"schema":{"type":"string"}}}},"400":{"description":"The input is not valid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"401":{"description":"Sign in required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"403":{"description":"Not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}}}}},"/v1/tools/convert_price":{"post":{"operationId":"convert_price","summary":"Convert a rupiah price, or a live listing’s price, into a display currency (USD, EUR, GBP, AUD, SGD, JPY, CNY, HKD, KRW, MYR, THB, PHP, INR, CHF, CAD, NZD, AED, SAR or RUB). Returns the IDR price of record, the approximate amount and the rate date; never use converted amounts as search filters.","x-access":"public","x-rate-bucket":"read","x-confirm":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"currency":{"type":"string","enum":["USD","EUR","GBP","AUD","SGD","JPY","CNY","HKD","KRW","MYR","THB","PHP","INR","CHF","CAD","NZD","AED","SAR","RUB"]},"price_idr":{"type":"integer","minimum":0,"maximum":1000000000000000},"listing":{"description":"Listing id or slug","type":"string","minLength":1,"maxLength":120}},"required":["currency"]},"examples":{"example1":{"value":{"currency":"USD","price_idr":6500000000}},"example2":{"value":{"currency":"AUD","listing":"villa-canggu-tiga-kamar"}}}}}},"responses":{"200":{"description":"The tool result (Markdown with `Accept: text/markdown` or `?format=md`)","content":{"application/json":{"schema":{"type":"object","properties":{"price_idr":{"type":"number"},"currency":{"type":"string","enum":["USD","EUR","GBP","AUD","SGD","JPY","CNY","HKD","KRW","MYR","THB","PHP","INR","CHF","CAD","NZD","AED","SAR","RUB"]},"amount":{"type":"number"},"display_amount":{"type":"number"},"rate_date":{"type":"string"},"idr_per_unit":{"type":"number"},"source":{"type":"string"},"approximate":{"type":"boolean","const":true}},"required":["price_idr","currency","amount","display_amount","rate_date","idr_per_unit","source","approximate"],"additionalProperties":false}},"text/markdown":{"schema":{"type":"string"}}}},"400":{"description":"The input is not valid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"401":{"description":"Sign in required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"403":{"description":"Not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}}}}},"/v1/tools/explain_title":{"post":{"operationId":"explain_title","summary":"Explain an Indonesian land title (SHM, HGB, strata, Hak Pakai, Hak Sewa leasehold, girik) in plain words: who may hold it, and which route a foreign buyer uses (personally, through a PT PMA, or by lease). General information, not legal advice.","x-access":"public","x-rate-bucket":"compute","x-confirm":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"certificate":{"type":"string","enum":["freehold_title","building_rights_title","strata_title","right_of_use_title","lease_right","customary_claim"]},"listing_type":{"default":"sale","description":"What is offered: a lease or rental is open to anyone whatever the title","type":"string","enum":["sale","rent","leasehold","land_and_build","new_project"]},"locale":{"default":"id","type":"string","enum":["id","en"]}},"required":["certificate"]},"examples":{"example1":{"value":{"certificate":"building_rights_title","locale":"en"}},"example2":{"value":{"certificate":"freehold_title","listing_type":"leasehold"}}}}}},"responses":{"200":{"description":"The tool result (Markdown with `Accept: text/markdown` or `?format=md`)","content":{"application/json":{"schema":{"type":"object","properties":{"certificate":{"type":"string"},"label":{"type":"string"},"explanation":{"type":"string"},"holdable_by":{"maxItems":5,"type":"array","items":{"type":"string"}},"holdable_by_labels":{"maxItems":5,"type":"array","items":{"type":"string"}},"foreign_holdable":{"type":"boolean"},"foreigner_routes":{"maxItems":4,"type":"array","items":{"type":"object","properties":{"route":{"type":"string"},"label":{"type":"string"}},"required":["route","label"],"additionalProperties":false}},"general_information":{"type":"object","properties":{"kind":{"type":"string","const":"general_information_not_legal_advice"},"status":{"type":"string","const":"pending_lawyer_review"},"disclaimer":{"type":"string"}},"required":["kind","status","disclaimer"],"additionalProperties":false}},"required":["certificate","label","explanation","holdable_by","holdable_by_labels","foreign_holdable","foreigner_routes","general_information"],"additionalProperties":false}},"text/markdown":{"schema":{"type":"string"}}}},"400":{"description":"The input is not valid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"401":{"description":"Sign in required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"403":{"description":"Not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}}}}},"/v1/tools/get_property_documents":{"post":{"operationId":"get_property_documents","summary":"The documents to check for a property (land or strata title, PBG permit, SLF, PBB receipt, BPHTB proof, lease, developer permits) and, for a listing, which ones our moderators verified. Without a listing it returns the checklist for a property and offer type.","x-access":"public","x-rate-bucket":"read","x-confirm":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"listing":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"property_type":{"type":"string","minLength":1,"maxLength":40},"listing_type":{"type":"string","enum":["sale","rent","leasehold","land_and_build","new_project"]},"locale":{"default":"id","type":"string","enum":["id","en"]}}},"examples":{"example1":{"value":{"property_type":"house","listing_type":"sale"}}}}}},"responses":{"200":{"description":"The tool result (Markdown with `Accept: text/markdown` or `?format=md`)","content":{"application/json":{"schema":{"type":"object","properties":{"listing_id":{"type":["string","null"]},"property_type":{"type":"string"},"listing_type":{"type":"string"},"items":{"maxItems":12,"type":"array","items":{"type":"object","properties":{"doc_type":{"type":"string"},"label":{"type":"string"},"required":{"type":"boolean"},"status":{"type":["string","null"]},"verified_at":{"type":["string","null"]}},"required":["doc_type","label","required","status","verified_at"],"additionalProperties":false}}},"required":["listing_id","property_type","listing_type","items"],"additionalProperties":false}},"text/markdown":{"schema":{"type":"string"}}}},"400":{"description":"The input is not valid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"401":{"description":"Sign in required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"403":{"description":"Not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}}}}},"/v1/tools/get_viewing_checklist":{"post":{"operationId":"get_viewing_checklist","summary":"The checklist for viewing a property in person (water pressure, damp or rembes, cracks, electricity, mobile signal, flood marks and checks for the property type), grouped by section, with a link to the printable page where signed-in users can save notes and photos. Send it before a viewing.","x-access":"public","x-rate-bucket":"compute","x-confirm":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"property_type":{"default":"house","type":"string","minLength":1,"maxLength":40},"locale":{"default":"id","type":"string","enum":["id","en"]}}},"examples":{"example1":{"value":{"property_type":"apartment","locale":"en"}}}}}},"responses":{"200":{"description":"The tool result (Markdown with `Accept: text/markdown` or `?format=md`)","content":{"application/json":{"schema":{"type":"object","properties":{"property_type":{"type":"string"},"sections":{"maxItems":6,"type":"array","items":{"type":"object","properties":{"section":{"type":"string"},"label":{"type":"string"},"items":{"maxItems":8,"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"text":{"type":"string"}},"required":["code","text"],"additionalProperties":false}}},"required":["section","label","items"],"additionalProperties":false}},"url":{"type":"string"}},"required":["property_type","sections","url"],"additionalProperties":false}},"text/markdown":{"schema":{"type":"string"}}}},"400":{"description":"The input is not valid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"401":{"description":"Sign in required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"403":{"description":"Not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}}}}},"/v1/tools/get_legal_summary":{"post":{"operationId":"get_legal_summary","summary":"Plain-language summary of an Indonesian property law topic for foreign buyers (SHM, HGB, Hak Pakai, Hak Sewa, PT PMA, PPJB, AJB, PBG, nominee deals) with its legal basis, review dates and guide link. General information pending lawyer review. No topic lists all.","x-access":"public","x-rate-bucket":"compute","x-confirm":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"topic":{"type":"string","enum":["freehold","shm","hgb","hak_pakai","leasehold","pt_pma","ppjb","ajb","pbg","nominee"]},"locale":{"default":"en","type":"string","enum":["id","en"]}}},"examples":{"example1":{"value":{"topic":"nominee","locale":"en"}}}}}},"responses":{"200":{"description":"The tool result (Markdown with `Accept: text/markdown` or `?format=md`)","content":{"application/json":{"schema":{"type":"object","properties":{"summaries":{"maxItems":10,"type":"array","items":{"type":"object","properties":{"topic":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string"},"basis":{"type":"string"},"checked_on":{"type":"string"},"next_review_by":{"type":"string"},"url":{"type":"string"}},"required":["topic","title","summary","basis","checked_on","next_review_by","url"],"additionalProperties":false}},"general_information":{"type":"object","properties":{"kind":{"type":"string","const":"general_information_not_legal_advice"},"status":{"type":"string","const":"pending_lawyer_review"},"disclaimer":{"type":"string"}},"required":["kind","status","disclaimer"],"additionalProperties":false}},"required":["summaries","general_information"],"additionalProperties":false}},"text/markdown":{"schema":{"type":"string"}}}},"400":{"description":"The input is not valid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"401":{"description":"Sign in required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"403":{"description":"Not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}}}}},"/v1/tools/whoami":{"post":{"operationId":"whoami","summary":"Say how this connection is signed in and what it may do: no key (public tools only), a key, and the key’s scopes. Reveals no personal details.","x-access":"public","x-rate-bucket":"read","x-confirm":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{}},"examples":{"example1":{"value":{}}}}}},"responses":{"200":{"description":"The tool result (Markdown with `Accept: text/markdown` or `?format=md`)","content":{"application/json":{"schema":{"type":"object","properties":{"signed_in":{"type":"boolean"},"role":{"type":"string"},"has_key":{"type":"boolean"},"scopes":{"type":"array","items":{"type":"string"}}},"required":["signed_in","role","has_key","scopes"],"additionalProperties":false}},"text/markdown":{"schema":{"type":"string"}}}},"400":{"description":"The input is not valid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"401":{"description":"Sign in required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"403":{"description":"Not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolError"}}}}}}}},"components":{"schemas":{"ToolError":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"enum":["unauthenticated","forbidden","confirmation_required","rate_limited","invalid_input","not_found","internal"]},"message":{"type":"string"},"issues":{"type":"array","items":{"type":"object","required":["path","message"],"properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}},"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","description":"Optional free key from your account page, sent as Authorization: Bearer <key>"}}}}