{"schema_version":"1.1","service":{"name":"VerifyUK Property Check","provider":"VerifyUK","version":"0.2.0","description":"English property planning constraints API for repeat AI property screening, cited batch due diligence and MCP property verification.","public_base_url":"https://verifyuk-property-check-production.up.railway.app","supported_geography":["England"],"support_contact":"https://verifyuk-property-check-production.up.railway.app/feedback","terms_url":"https://verifyuk-property-check-production.up.railway.app/terms","privacy_url":"https://verifyuk-property-check-production.up.railway.app/privacy","limitations":["Planning Data coverage varies by dataset and authority.","Address-only requests start at a postcode centroid and remain approximate unless one strong deterministic official property-identity match refines the coordinate.","Nearby and ambiguous records are contextual evidence and never establish that a designation applies.","The service has not completed independent commercial validation."]},"authentication":{"required":true,"method":"api_key","accepted_headers":["Authorization: Bearer <key>","X-API-Key: <key>"],"key_management":"Administrator-controlled; full secrets are shown only once."},"capabilities":[{"id":"check_property_constraints","rest_operation_id":"checkPropertyConstraints","mcp_tool":"check_property_constraints","description":"Check listed-building, conservation-area, Article 4, green-belt and flood-risk-zone records for an English property location.","input_schema":{"type":"object","additionalProperties":false,"properties":{"address":{"type":"string","minLength":3,"maxLength":500},"uprn":{"type":"string","pattern":"^[0-9]{6,12}$"},"latitude":{"type":"number","minimum":-90,"maximum":90},"longitude":{"type":"number","minimum":-180,"maximum":180},"response_mode":{"type":"string","enum":["compact","standard","diagnostic"],"default":"standard"}},"anyOf":[{"required":["address"]},{"required":["uprn"]},{"required":["latitude","longitude"]}]},"output_schema":{"oneOf":[{"type":"object","additionalProperties":false,"properties":{"report_id":{"type":"string","format":"uuid"},"response_mode":{"const":"compact"},"matched_address":{"type":"object","additionalProperties":false,"properties":{"formatted_address":{"anyOf":[{"type":"string"},{"type":"null"}]},"postcode":{"anyOf":[{"type":"string"},{"type":"null"}]},"uprn":{"anyOf":[{"type":"string"},{"type":"null"}]},"matching_method":{"type":"string","enum":["uprn","provided_coordinates","postcode_centroid","property_identity"]},"match_confidence":{"type":"number","minimum":0,"maximum":1},"coordinate_source":{"type":"string","enum":["uprn","caller","postcodes_io","planning_data_listed_building_identity"]},"location_precision":{"type":"string","enum":["authoritative_identifier","property_level","exact_coordinates","street_level","postcode_centroid","unknown"]},"property_level":{"type":"boolean"},"submitted_address":{"anyOf":[{"type":"string"},{"type":"null"}]},"normalised_address":{"anyOf":[{"type":"string"},{"type":"null"}]},"corrections_applied":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string","enum":["whitespace","postcode_spacing","postcode_character","street_abbreviation","punctuation","case"]},"from":{"type":"string"},"to":{"type":"string"}},"required":["type","from","to"]}},"match_quality":{"type":"string","enum":["as_submitted","normalised_formatting","minor_correction","ambiguous_correction","unresolved"]},"selection_reason":{"type":"string"}},"required":["formatted_address","postcode","uprn","matching_method","match_confidence","coordinate_source","location_precision","property_level","submitted_address","normalised_address","corrections_applied","match_quality","selection_reason"]},"planning_constraints":{"type":"object","additionalProperties":false,"properties":{"listed-building":{"type":"object","additionalProperties":false,"properties":{"status":{"type":"string","enum":["present","not_found_in_source","source_unavailable","insufficient_location_precision","candidate_nearby","ambiguous_match"]},"confidence":{"type":"number","minimum":0,"maximum":1},"basis":{"type":"string","enum":["authoritative_identifier","property_identity_match","exact_geometry_containment","boundary_tolerance_match","nearby_candidate","ambiguous_candidates","approximate_location_no_confirmation","no_signal","source_unavailable"]},"basis_explanation":{"type":"string"},"applies_to_subject_property":{"type":"string","enum":["confirmed","unconfirmed","unknown"]},"location_precision":{"type":"string","enum":["authoritative_identifier","property_level","exact_coordinates","street_level","postcode_centroid","unknown"]},"distance_metres":{"anyOf":[{"type":"number"},{"type":"null"}]},"manual_confirmation_recommended":{"type":"boolean"},"limitation":{"anyOf":[{"type":"string"},{"type":"null"}]},"evidence":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"reference":{"anyOf":[{"type":"string"},{"type":"null"}]},"evidence_url":{"type":"string","format":"uri"},"distance_metres":{"anyOf":[{"type":"number"},{"type":"null"}]},"spatial_summary":{"type":"object","additionalProperties":false,"properties":{"geometry_type":{"anyOf":[{"type":"string"},{"type":"null"}]},"contains_resolved_point":{"type":"boolean"},"distance_to_boundary_metres":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["geometry_type","contains_resolved_point","distance_to_boundary_metres"]}},"required":["name","reference","evidence_url","distance_metres","spatial_summary"]}}},"required":["status","confidence","basis","basis_explanation","applies_to_subject_property","location_precision","distance_metres","manual_confirmation_recommended","limitation","evidence"]},"conservation-area":{"type":"object","additionalProperties":false,"properties":{"status":{"type":"string","enum":["present","not_found_in_source","source_unavailable","insufficient_location_precision","candidate_nearby","ambiguous_match"]},"confidence":{"type":"number","minimum":0,"maximum":1},"basis":{"type":"string","enum":["authoritative_identifier","property_identity_match","exact_geometry_containment","boundary_tolerance_match","nearby_candidate","ambiguous_candidates","approximate_location_no_confirmation","no_signal","source_unavailable"]},"basis_explanation":{"type":"string"},"applies_to_subject_property":{"type":"string","enum":["confirmed","unconfirmed","unknown"]},"location_precision":{"type":"string","enum":["authoritative_identifier","property_level","exact_coordinates","street_level","postcode_centroid","unknown"]},"distance_metres":{"anyOf":[{"type":"number"},{"type":"null"}]},"manual_confirmation_recommended":{"type":"boolean"},"limitation":{"anyOf":[{"type":"string"},{"type":"null"}]},"evidence":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"reference":{"anyOf":[{"type":"string"},{"type":"null"}]},"evidence_url":{"type":"string","format":"uri"},"distance_metres":{"anyOf":[{"type":"number"},{"type":"null"}]},"spatial_summary":{"type":"object","additionalProperties":false,"properties":{"geometry_type":{"anyOf":[{"type":"string"},{"type":"null"}]},"contains_resolved_point":{"type":"boolean"},"distance_to_boundary_metres":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["geometry_type","contains_resolved_point","distance_to_boundary_metres"]}},"required":["name","reference","evidence_url","distance_metres","spatial_summary"]}}},"required":["status","confidence","basis","basis_explanation","applies_to_subject_property","location_precision","distance_metres","manual_confirmation_recommended","limitation","evidence"]},"article-4-direction-area":{"type":"object","additionalProperties":false,"properties":{"status":{"type":"string","enum":["present","not_found_in_source","source_unavailable","insufficient_location_precision","candidate_nearby","ambiguous_match"]},"confidence":{"type":"number","minimum":0,"maximum":1},"basis":{"type":"string","enum":["authoritative_identifier","property_identity_match","exact_geometry_containment","boundary_tolerance_match","nearby_candidate","ambiguous_candidates","approximate_location_no_confirmation","no_signal","source_unavailable"]},"basis_explanation":{"type":"string"},"applies_to_subject_property":{"type":"string","enum":["confirmed","unconfirmed","unknown"]},"location_precision":{"type":"string","enum":["authoritative_identifier","property_level","exact_coordinates","street_level","postcode_centroid","unknown"]},"distance_metres":{"anyOf":[{"type":"number"},{"type":"null"}]},"manual_confirmation_recommended":{"type":"boolean"},"limitation":{"anyOf":[{"type":"string"},{"type":"null"}]},"evidence":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"reference":{"anyOf":[{"type":"string"},{"type":"null"}]},"evidence_url":{"type":"string","format":"uri"},"distance_metres":{"anyOf":[{"type":"number"},{"type":"null"}]},"spatial_summary":{"type":"object","additionalProperties":false,"properties":{"geometry_type":{"anyOf":[{"type":"string"},{"type":"null"}]},"contains_resolved_point":{"type":"boolean"},"distance_to_boundary_metres":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["geometry_type","contains_resolved_point","distance_to_boundary_metres"]}},"required":["name","reference","evidence_url","distance_metres","spatial_summary"]}}},"required":["status","confidence","basis","basis_explanation","applies_to_subject_property","location_precision","distance_metres","manual_confirmation_recommended","limitation","evidence"]},"green-belt":{"type":"object","additionalProperties":false,"properties":{"status":{"type":"string","enum":["present","not_found_in_source","source_unavailable","insufficient_location_precision","candidate_nearby","ambiguous_match"]},"confidence":{"type":"number","minimum":0,"maximum":1},"basis":{"type":"string","enum":["authoritative_identifier","property_identity_match","exact_geometry_containment","boundary_tolerance_match","nearby_candidate","ambiguous_candidates","approximate_location_no_confirmation","no_signal","source_unavailable"]},"basis_explanation":{"type":"string"},"applies_to_subject_property":{"type":"string","enum":["confirmed","unconfirmed","unknown"]},"location_precision":{"type":"string","enum":["authoritative_identifier","property_level","exact_coordinates","street_level","postcode_centroid","unknown"]},"distance_metres":{"anyOf":[{"type":"number"},{"type":"null"}]},"manual_confirmation_recommended":{"type":"boolean"},"limitation":{"anyOf":[{"type":"string"},{"type":"null"}]},"evidence":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"reference":{"anyOf":[{"type":"string"},{"type":"null"}]},"evidence_url":{"type":"string","format":"uri"},"distance_metres":{"anyOf":[{"type":"number"},{"type":"null"}]},"spatial_summary":{"type":"object","additionalProperties":false,"properties":{"geometry_type":{"anyOf":[{"type":"string"},{"type":"null"}]},"contains_resolved_point":{"type":"boolean"},"distance_to_boundary_metres":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["geometry_type","contains_resolved_point","distance_to_boundary_metres"]}},"required":["name","reference","evidence_url","distance_metres","spatial_summary"]}}},"required":["status","confidence","basis","basis_explanation","applies_to_subject_property","location_precision","distance_metres","manual_confirmation_recommended","limitation","evidence"]},"flood-risk-zone":{"type":"object","additionalProperties":false,"properties":{"status":{"type":"string","enum":["present","not_found_in_source","source_unavailable","insufficient_location_precision","candidate_nearby","ambiguous_match"]},"confidence":{"type":"number","minimum":0,"maximum":1},"basis":{"type":"string","enum":["authoritative_identifier","property_identity_match","exact_geometry_containment","boundary_tolerance_match","nearby_candidate","ambiguous_candidates","approximate_location_no_confirmation","no_signal","source_unavailable"]},"basis_explanation":{"type":"string"},"applies_to_subject_property":{"type":"string","enum":["confirmed","unconfirmed","unknown"]},"location_precision":{"type":"string","enum":["authoritative_identifier","property_level","exact_coordinates","street_level","postcode_centroid","unknown"]},"distance_metres":{"anyOf":[{"type":"number"},{"type":"null"}]},"manual_confirmation_recommended":{"type":"boolean"},"limitation":{"anyOf":[{"type":"string"},{"type":"null"}]},"evidence":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"reference":{"anyOf":[{"type":"string"},{"type":"null"}]},"evidence_url":{"type":"string","format":"uri"},"distance_metres":{"anyOf":[{"type":"number"},{"type":"null"}]},"spatial_summary":{"type":"object","additionalProperties":false,"properties":{"geometry_type":{"anyOf":[{"type":"string"},{"type":"null"}]},"contains_resolved_point":{"type":"boolean"},"distance_to_boundary_metres":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["geometry_type","contains_resolved_point","distance_to_boundary_metres"]}},"required":["name","reference","evidence_url","distance_metres","spatial_summary"]}}},"required":["status","confidence","basis","basis_explanation","applies_to_subject_property","location_precision","distance_metres","manual_confirmation_recommended","limitation","evidence"]}},"required":["listed-building","conservation-area","article-4-direction-area","green-belt","flood-risk-zone"]},"risk_summary":{"type":"object","additionalProperties":false,"properties":{"confirmed_risk_score":{"type":"integer","minimum":0,"maximum":100},"screening_attention_score":{"type":"integer","minimum":0,"maximum":25},"overall_level":{"type":"string","enum":["confirmed_constraints_found","further_review_recommended","no_confirmed_constraint_signal"]},"confirmed_reasons":{"type":"array","items":{"type":"string"}},"attention_reasons":{"type":"array","items":{"type":"string"}}},"required":["confirmed_risk_score","screening_attention_score","overall_level","confirmed_reasons","attention_reasons"]},"warnings":{"type":"array","items":{"type":"string"}},"report_hash":{"type":"string","pattern":"^[a-f0-9]{64}$"}},"required":["report_id","response_mode","matched_address","planning_constraints","risk_summary","warnings","report_hash"]},{"type":"object","additionalProperties":false,"properties":{"report_id":{"type":"string","format":"uuid"},"response_mode":{"type":"string","enum":["standard","diagnostic"]},"generated_at":{"type":"string","format":"date-time"},"matched_address":{"type":"object","additionalProperties":false,"properties":{"formatted_address":{"anyOf":[{"type":"string"},{"type":"null"}]},"postcode":{"anyOf":[{"type":"string"},{"type":"null"}]},"uprn":{"anyOf":[{"type":"string"},{"type":"null"}]},"latitude":{"anyOf":[{"type":"number"},{"type":"null"}]},"longitude":{"anyOf":[{"type":"number"},{"type":"null"}]},"match_confidence":{"type":"number","minimum":0,"maximum":1},"matching_method":{"type":"string","enum":["uprn","provided_coordinates","postcode_centroid","property_identity"]},"coordinate_source":{"type":"string","enum":["uprn","caller","postcodes_io","planning_data_listed_building_identity"]},"location_precision":{"type":"string","enum":["authoritative_identifier","property_level","exact_coordinates","street_level","postcode_centroid","unknown"]},"property_level":{"type":"boolean"},"address":{"type":"object","additionalProperties":false,"properties":{"submitted_address":{"anyOf":[{"type":"string"},{"type":"null"}]},"normalised_address":{"anyOf":[{"type":"string"},{"type":"null"}]},"building_name":{"anyOf":[{"type":"string"},{"type":"null"}]},"number_or_unit":{"anyOf":[{"type":"string"},{"type":"null"}]},"street":{"anyOf":[{"type":"string"},{"type":"null"}]},"postcode":{"anyOf":[{"type":"string"},{"type":"null"}]},"corrections_applied":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string","enum":["whitespace","postcode_spacing","postcode_character","street_abbreviation","punctuation","case"]},"from":{"type":"string"},"to":{"type":"string"}},"required":["type","from","to"]}},"match_quality":{"type":"string","enum":["as_submitted","normalised_formatting","minor_correction","ambiguous_correction","unresolved"]}},"required":["submitted_address","normalised_address","building_name","number_or_unit","street","postcode","corrections_applied","match_quality"]},"candidate_properties_considered":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"entity":{"type":"integer"},"reference":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"distance_metres":{"anyOf":[{"type":"number"},{"type":"null"}]},"identity_match":{"type":"string","enum":["authoritative_identifier","strong","none"]},"coordinate_source":{"type":"string"},"evidence_url":{"type":"string","format":"uri"}},"required":["entity","reference","name","distance_metres","identity_match","coordinate_source","evidence_url"]}},"selected_candidate":{"anyOf":[{"type":"object","additionalProperties":false,"properties":{"entity":{"type":"integer"},"reference":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"distance_metres":{"anyOf":[{"type":"number"},{"type":"null"}]},"identity_match":{"type":"string","enum":["authoritative_identifier","strong","none"]},"coordinate_source":{"type":"string"},"evidence_url":{"type":"string","format":"uri"}},"required":["entity","reference","name","distance_metres","identity_match","coordinate_source","evidence_url"]},{"type":"null"}]},"selection_reason":{"type":"string"},"source_url":{"anyOf":[{"type":"string"},{"type":"null"}]},"warning":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["formatted_address","postcode","uprn","latitude","longitude","match_confidence","matching_method","coordinate_source","location_precision","property_level","address","candidate_properties_considered","selected_candidate","selection_reason","source_url","warning"]},"planning_constraints":{"type":"object","additionalProperties":false,"properties":{"listed-building":{"type":"object","additionalProperties":false,"properties":{"status":{"type":"string","enum":["present","not_found_in_source","source_unavailable","insufficient_location_precision","candidate_nearby","ambiguous_match"]},"applies":{"anyOf":[{"const":true},{"type":"null"}]},"confidence":{"type":"number","minimum":0,"maximum":1},"basis":{"type":"string","enum":["authoritative_identifier","property_identity_match","exact_geometry_containment","boundary_tolerance_match","nearby_candidate","ambiguous_candidates","approximate_location_no_confirmation","no_signal","source_unavailable"]},"basis_explanation":{"type":"string"},"applies_to_subject_property":{"type":"string","enum":["confirmed","unconfirmed","unknown"]},"location_precision":{"type":"string","enum":["authoritative_identifier","property_level","exact_coordinates","street_level","postcode_centroid","unknown"]},"distance_metres":{"anyOf":[{"type":"number"},{"type":"null"}]},"manual_confirmation_recommended":{"type":"boolean"},"confidence_components":{"type":"object","additionalProperties":false,"properties":{"property_resolution":{"type":"number","minimum":0,"maximum":1},"source_coverage":{"type":"number","minimum":0,"maximum":1},"finding":{"type":"number","minimum":0,"maximum":1},"constraint_applies":{"type":"number","minimum":0,"maximum":1}},"required":["property_resolution","source_coverage","finding","constraint_applies"]},"entities":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"entity":{"type":"integer"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"reference":{"anyOf":[{"type":"string"},{"type":"null"}]},"quality":{"anyOf":[{"type":"string"},{"type":"null"}]},"details":{"type":"object","additionalProperties":true},"evidence_url":{"type":"string","format":"uri"},"distance_metres":{"anyOf":[{"type":"number"},{"type":"null"}]},"boundary_distance_metres":{"anyOf":[{"type":"number"},{"type":"null"}]},"distance_is_upper_bound":{"type":"boolean"},"contains_resolved_point":{"type":"boolean"},"identity_match":{"type":"string","enum":["authoritative_identifier","strong","none"]},"geometry_type":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["entity","name","reference","quality","details","evidence_url","distance_metres","boundary_distance_metres","distance_is_upper_bound","contains_resolved_point","identity_match","geometry_type"]}},"limitation":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["status","applies","confidence","basis","basis_explanation","applies_to_subject_property","location_precision","distance_metres","manual_confirmation_recommended","confidence_components","entities","limitation"]},"conservation-area":{"type":"object","additionalProperties":false,"properties":{"status":{"type":"string","enum":["present","not_found_in_source","source_unavailable","insufficient_location_precision","candidate_nearby","ambiguous_match"]},"applies":{"anyOf":[{"const":true},{"type":"null"}]},"confidence":{"type":"number","minimum":0,"maximum":1},"basis":{"type":"string","enum":["authoritative_identifier","property_identity_match","exact_geometry_containment","boundary_tolerance_match","nearby_candidate","ambiguous_candidates","approximate_location_no_confirmation","no_signal","source_unavailable"]},"basis_explanation":{"type":"string"},"applies_to_subject_property":{"type":"string","enum":["confirmed","unconfirmed","unknown"]},"location_precision":{"type":"string","enum":["authoritative_identifier","property_level","exact_coordinates","street_level","postcode_centroid","unknown"]},"distance_metres":{"anyOf":[{"type":"number"},{"type":"null"}]},"manual_confirmation_recommended":{"type":"boolean"},"confidence_components":{"type":"object","additionalProperties":false,"properties":{"property_resolution":{"type":"number","minimum":0,"maximum":1},"source_coverage":{"type":"number","minimum":0,"maximum":1},"finding":{"type":"number","minimum":0,"maximum":1},"constraint_applies":{"type":"number","minimum":0,"maximum":1}},"required":["property_resolution","source_coverage","finding","constraint_applies"]},"entities":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"entity":{"type":"integer"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"reference":{"anyOf":[{"type":"string"},{"type":"null"}]},"quality":{"anyOf":[{"type":"string"},{"type":"null"}]},"details":{"type":"object","additionalProperties":true},"evidence_url":{"type":"string","format":"uri"},"distance_metres":{"anyOf":[{"type":"number"},{"type":"null"}]},"boundary_distance_metres":{"anyOf":[{"type":"number"},{"type":"null"}]},"distance_is_upper_bound":{"type":"boolean"},"contains_resolved_point":{"type":"boolean"},"identity_match":{"type":"string","enum":["authoritative_identifier","strong","none"]},"geometry_type":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["entity","name","reference","quality","details","evidence_url","distance_metres","boundary_distance_metres","distance_is_upper_bound","contains_resolved_point","identity_match","geometry_type"]}},"limitation":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["status","applies","confidence","basis","basis_explanation","applies_to_subject_property","location_precision","distance_metres","manual_confirmation_recommended","confidence_components","entities","limitation"]},"article-4-direction-area":{"type":"object","additionalProperties":false,"properties":{"status":{"type":"string","enum":["present","not_found_in_source","source_unavailable","insufficient_location_precision","candidate_nearby","ambiguous_match"]},"applies":{"anyOf":[{"const":true},{"type":"null"}]},"confidence":{"type":"number","minimum":0,"maximum":1},"basis":{"type":"string","enum":["authoritative_identifier","property_identity_match","exact_geometry_containment","boundary_tolerance_match","nearby_candidate","ambiguous_candidates","approximate_location_no_confirmation","no_signal","source_unavailable"]},"basis_explanation":{"type":"string"},"applies_to_subject_property":{"type":"string","enum":["confirmed","unconfirmed","unknown"]},"location_precision":{"type":"string","enum":["authoritative_identifier","property_level","exact_coordinates","street_level","postcode_centroid","unknown"]},"distance_metres":{"anyOf":[{"type":"number"},{"type":"null"}]},"manual_confirmation_recommended":{"type":"boolean"},"confidence_components":{"type":"object","additionalProperties":false,"properties":{"property_resolution":{"type":"number","minimum":0,"maximum":1},"source_coverage":{"type":"number","minimum":0,"maximum":1},"finding":{"type":"number","minimum":0,"maximum":1},"constraint_applies":{"type":"number","minimum":0,"maximum":1}},"required":["property_resolution","source_coverage","finding","constraint_applies"]},"entities":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"entity":{"type":"integer"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"reference":{"anyOf":[{"type":"string"},{"type":"null"}]},"quality":{"anyOf":[{"type":"string"},{"type":"null"}]},"details":{"type":"object","additionalProperties":true},"evidence_url":{"type":"string","format":"uri"},"distance_metres":{"anyOf":[{"type":"number"},{"type":"null"}]},"boundary_distance_metres":{"anyOf":[{"type":"number"},{"type":"null"}]},"distance_is_upper_bound":{"type":"boolean"},"contains_resolved_point":{"type":"boolean"},"identity_match":{"type":"string","enum":["authoritative_identifier","strong","none"]},"geometry_type":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["entity","name","reference","quality","details","evidence_url","distance_metres","boundary_distance_metres","distance_is_upper_bound","contains_resolved_point","identity_match","geometry_type"]}},"limitation":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["status","applies","confidence","basis","basis_explanation","applies_to_subject_property","location_precision","distance_metres","manual_confirmation_recommended","confidence_components","entities","limitation"]},"green-belt":{"type":"object","additionalProperties":false,"properties":{"status":{"type":"string","enum":["present","not_found_in_source","source_unavailable","insufficient_location_precision","candidate_nearby","ambiguous_match"]},"applies":{"anyOf":[{"const":true},{"type":"null"}]},"confidence":{"type":"number","minimum":0,"maximum":1},"basis":{"type":"string","enum":["authoritative_identifier","property_identity_match","exact_geometry_containment","boundary_tolerance_match","nearby_candidate","ambiguous_candidates","approximate_location_no_confirmation","no_signal","source_unavailable"]},"basis_explanation":{"type":"string"},"applies_to_subject_property":{"type":"string","enum":["confirmed","unconfirmed","unknown"]},"location_precision":{"type":"string","enum":["authoritative_identifier","property_level","exact_coordinates","street_level","postcode_centroid","unknown"]},"distance_metres":{"anyOf":[{"type":"number"},{"type":"null"}]},"manual_confirmation_recommended":{"type":"boolean"},"confidence_components":{"type":"object","additionalProperties":false,"properties":{"property_resolution":{"type":"number","minimum":0,"maximum":1},"source_coverage":{"type":"number","minimum":0,"maximum":1},"finding":{"type":"number","minimum":0,"maximum":1},"constraint_applies":{"type":"number","minimum":0,"maximum":1}},"required":["property_resolution","source_coverage","finding","constraint_applies"]},"entities":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"entity":{"type":"integer"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"reference":{"anyOf":[{"type":"string"},{"type":"null"}]},"quality":{"anyOf":[{"type":"string"},{"type":"null"}]},"details":{"type":"object","additionalProperties":true},"evidence_url":{"type":"string","format":"uri"},"distance_metres":{"anyOf":[{"type":"number"},{"type":"null"}]},"boundary_distance_metres":{"anyOf":[{"type":"number"},{"type":"null"}]},"distance_is_upper_bound":{"type":"boolean"},"contains_resolved_point":{"type":"boolean"},"identity_match":{"type":"string","enum":["authoritative_identifier","strong","none"]},"geometry_type":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["entity","name","reference","quality","details","evidence_url","distance_metres","boundary_distance_metres","distance_is_upper_bound","contains_resolved_point","identity_match","geometry_type"]}},"limitation":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["status","applies","confidence","basis","basis_explanation","applies_to_subject_property","location_precision","distance_metres","manual_confirmation_recommended","confidence_components","entities","limitation"]},"flood-risk-zone":{"type":"object","additionalProperties":false,"properties":{"status":{"type":"string","enum":["present","not_found_in_source","source_unavailable","insufficient_location_precision","candidate_nearby","ambiguous_match"]},"applies":{"anyOf":[{"const":true},{"type":"null"}]},"confidence":{"type":"number","minimum":0,"maximum":1},"basis":{"type":"string","enum":["authoritative_identifier","property_identity_match","exact_geometry_containment","boundary_tolerance_match","nearby_candidate","ambiguous_candidates","approximate_location_no_confirmation","no_signal","source_unavailable"]},"basis_explanation":{"type":"string"},"applies_to_subject_property":{"type":"string","enum":["confirmed","unconfirmed","unknown"]},"location_precision":{"type":"string","enum":["authoritative_identifier","property_level","exact_coordinates","street_level","postcode_centroid","unknown"]},"distance_metres":{"anyOf":[{"type":"number"},{"type":"null"}]},"manual_confirmation_recommended":{"type":"boolean"},"confidence_components":{"type":"object","additionalProperties":false,"properties":{"property_resolution":{"type":"number","minimum":0,"maximum":1},"source_coverage":{"type":"number","minimum":0,"maximum":1},"finding":{"type":"number","minimum":0,"maximum":1},"constraint_applies":{"type":"number","minimum":0,"maximum":1}},"required":["property_resolution","source_coverage","finding","constraint_applies"]},"entities":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"entity":{"type":"integer"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"reference":{"anyOf":[{"type":"string"},{"type":"null"}]},"quality":{"anyOf":[{"type":"string"},{"type":"null"}]},"details":{"type":"object","additionalProperties":true},"evidence_url":{"type":"string","format":"uri"},"distance_metres":{"anyOf":[{"type":"number"},{"type":"null"}]},"boundary_distance_metres":{"anyOf":[{"type":"number"},{"type":"null"}]},"distance_is_upper_bound":{"type":"boolean"},"contains_resolved_point":{"type":"boolean"},"identity_match":{"type":"string","enum":["authoritative_identifier","strong","none"]},"geometry_type":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["entity","name","reference","quality","details","evidence_url","distance_metres","boundary_distance_metres","distance_is_upper_bound","contains_resolved_point","identity_match","geometry_type"]}},"limitation":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["status","applies","confidence","basis","basis_explanation","applies_to_subject_property","location_precision","distance_metres","manual_confirmation_recommended","confidence_components","entities","limitation"]}},"required":["listed-building","conservation-area","article-4-direction-area","green-belt","flood-risk-zone"]},"risk_summary":{"type":"object","additionalProperties":false,"properties":{"score":{"type":"integer","minimum":0,"maximum":100},"level":{"type":"string","enum":["low","moderate","high"]},"reasons":{"type":"array","items":{"type":"string"}},"confirmed_risk_score":{"type":"integer","minimum":0,"maximum":100},"screening_attention_score":{"type":"integer","minimum":0,"maximum":25},"overall_level":{"type":"string","enum":["confirmed_constraints_found","further_review_recommended","no_confirmed_constraint_signal"]},"confirmed_reasons":{"type":"array","items":{"type":"string"}},"attention_reasons":{"type":"array","items":{"type":"string"}},"methodology":{"type":"string"}},"required":["score","level","reasons","confirmed_risk_score","screening_attention_score","overall_level","confirmed_reasons","attention_reasons","methodology"]},"report_confidence":{"type":"number","minimum":0,"maximum":1},"coverage":{"type":"string","enum":["complete_for_requested_sources","partial"]},"sources":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"authority":{"type":"string"},"url":{"type":"string","format":"uri"},"retrieved_at":{"type":"string","format":"date-time"},"status":{"type":"string","enum":["ok","error"]}},"required":["authority","url","retrieved_at","status"]}},"warnings":{"type":"array","items":{"type":"string"}},"diagnostics":{"type":"object","additionalProperties":false,"properties":{"matching":{"type":"object","additionalProperties":false,"properties":{"matching_rule_used":{"type":"string"},"address_normalisation_result":{"anyOf":[{"type":"string"},{"type":"null"}]},"distance_from_submitted_coordinates_metres":{"anyOf":[{"type":"number"},{"type":"null"}]},"confidence_reason":{"type":"string"},"cache_hit":{"type":"boolean"},"request_duration_ms":{"type":"integer","minimum":0},"source_response_status":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["matching_rule_used","address_normalisation_result","distance_from_submitted_coordinates_metres","confidence_reason","cache_hit","request_duration_ms","source_response_status"]},"planning_source":{"type":"object","additionalProperties":false,"properties":{"endpoint":{"type":"string","format":"uri"},"query_parameters":{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"source_response_status":{"type":"integer"},"request_duration_ms":{"type":"integer","minimum":0},"cache_hit":{"type":"boolean"},"source_records_considered":{"type":"integer","minimum":0},"final_status_reason":{"type":"string"},"source_warning":{"type":"string"},"strategies":{"type":"object","additionalProperties":false,"properties":{"listed-building":{"type":"object","additionalProperties":false,"properties":{"strategy":{"type":"string"},"search_radius_metres":{"type":"number","minimum":0},"candidate_count":{"type":"integer","minimum":0},"candidate_distances_metres":{"type":"array","items":{"type":"number","minimum":0}},"containment_matches":{"type":"integer","minimum":0},"identity_matches":{"type":"integer","minimum":0},"boundary_tolerance_metres":{"type":"number","minimum":0},"status_selection_reason":{"type":"string"},"confidence_calculation":{"type":"object","additionalProperties":false,"properties":{"property_resolution":{"type":"number","minimum":0,"maximum":1},"source_coverage":{"type":"number","minimum":0,"maximum":1},"finding":{"type":"number","minimum":0,"maximum":1},"constraint_applies":{"type":"number","minimum":0,"maximum":1}},"required":["property_resolution","source_coverage","finding","constraint_applies"]}},"required":["strategy","search_radius_metres","candidate_count","candidate_distances_metres","containment_matches","identity_matches","boundary_tolerance_metres","status_selection_reason","confidence_calculation"]},"conservation-area":{"type":"object","additionalProperties":false,"properties":{"strategy":{"type":"string"},"search_radius_metres":{"type":"number","minimum":0},"candidate_count":{"type":"integer","minimum":0},"candidate_distances_metres":{"type":"array","items":{"type":"number","minimum":0}},"containment_matches":{"type":"integer","minimum":0},"identity_matches":{"type":"integer","minimum":0},"boundary_tolerance_metres":{"type":"number","minimum":0},"status_selection_reason":{"type":"string"},"confidence_calculation":{"type":"object","additionalProperties":false,"properties":{"property_resolution":{"type":"number","minimum":0,"maximum":1},"source_coverage":{"type":"number","minimum":0,"maximum":1},"finding":{"type":"number","minimum":0,"maximum":1},"constraint_applies":{"type":"number","minimum":0,"maximum":1}},"required":["property_resolution","source_coverage","finding","constraint_applies"]}},"required":["strategy","search_radius_metres","candidate_count","candidate_distances_metres","containment_matches","identity_matches","boundary_tolerance_metres","status_selection_reason","confidence_calculation"]},"article-4-direction-area":{"type":"object","additionalProperties":false,"properties":{"strategy":{"type":"string"},"search_radius_metres":{"type":"number","minimum":0},"candidate_count":{"type":"integer","minimum":0},"candidate_distances_metres":{"type":"array","items":{"type":"number","minimum":0}},"containment_matches":{"type":"integer","minimum":0},"identity_matches":{"type":"integer","minimum":0},"boundary_tolerance_metres":{"type":"number","minimum":0},"status_selection_reason":{"type":"string"},"confidence_calculation":{"type":"object","additionalProperties":false,"properties":{"property_resolution":{"type":"number","minimum":0,"maximum":1},"source_coverage":{"type":"number","minimum":0,"maximum":1},"finding":{"type":"number","minimum":0,"maximum":1},"constraint_applies":{"type":"number","minimum":0,"maximum":1}},"required":["property_resolution","source_coverage","finding","constraint_applies"]}},"required":["strategy","search_radius_metres","candidate_count","candidate_distances_metres","containment_matches","identity_matches","boundary_tolerance_metres","status_selection_reason","confidence_calculation"]},"green-belt":{"type":"object","additionalProperties":false,"properties":{"strategy":{"type":"string"},"search_radius_metres":{"type":"number","minimum":0},"candidate_count":{"type":"integer","minimum":0},"candidate_distances_metres":{"type":"array","items":{"type":"number","minimum":0}},"containment_matches":{"type":"integer","minimum":0},"identity_matches":{"type":"integer","minimum":0},"boundary_tolerance_metres":{"type":"number","minimum":0},"status_selection_reason":{"type":"string"},"confidence_calculation":{"type":"object","additionalProperties":false,"properties":{"property_resolution":{"type":"number","minimum":0,"maximum":1},"source_coverage":{"type":"number","minimum":0,"maximum":1},"finding":{"type":"number","minimum":0,"maximum":1},"constraint_applies":{"type":"number","minimum":0,"maximum":1}},"required":["property_resolution","source_coverage","finding","constraint_applies"]}},"required":["strategy","search_radius_metres","candidate_count","candidate_distances_metres","containment_matches","identity_matches","boundary_tolerance_metres","status_selection_reason","confidence_calculation"]},"flood-risk-zone":{"type":"object","additionalProperties":false,"properties":{"strategy":{"type":"string"},"search_radius_metres":{"type":"number","minimum":0},"candidate_count":{"type":"integer","minimum":0},"candidate_distances_metres":{"type":"array","items":{"type":"number","minimum":0}},"containment_matches":{"type":"integer","minimum":0},"identity_matches":{"type":"integer","minimum":0},"boundary_tolerance_metres":{"type":"number","minimum":0},"status_selection_reason":{"type":"string"},"confidence_calculation":{"type":"object","additionalProperties":false,"properties":{"property_resolution":{"type":"number","minimum":0,"maximum":1},"source_coverage":{"type":"number","minimum":0,"maximum":1},"finding":{"type":"number","minimum":0,"maximum":1},"constraint_applies":{"type":"number","minimum":0,"maximum":1}},"required":["property_resolution","source_coverage","finding","constraint_applies"]}},"required":["strategy","search_radius_metres","candidate_count","candidate_distances_metres","containment_matches","identity_matches","boundary_tolerance_metres","status_selection_reason","confidence_calculation"]}},"required":["listed-building","conservation-area","article-4-direction-area","green-belt","flood-risk-zone"]}},"required":["endpoint","query_parameters","source_response_status","request_duration_ms","cache_hit","source_records_considered","final_status_reason","source_warning","strategies"]}},"required":["matching","planning_source"]},"report_hash":{"type":"string","pattern":"^[a-f0-9]{64}$"}},"required":["report_id","response_mode","generated_at","matched_address","planning_constraints","risk_summary","report_confidence","coverage","sources","warnings","diagnostics","report_hash"]}]}},{"id":"check_specific_constraint","mcp_tool":"check_specific_constraint","description":"Return one focused planning-constraint finding with matching, evidence, provenance, uncertainty and warnings.","input_schema":{"type":"object","additionalProperties":false,"properties":{"address":{"type":"string","minLength":3,"maxLength":500},"uprn":{"type":"string","pattern":"^[0-9]{6,12}$"},"latitude":{"type":"number","minimum":-90,"maximum":90},"longitude":{"type":"number","minimum":-180,"maximum":180},"response_mode":{"type":"string","enum":["compact","standard","diagnostic"],"default":"standard"},"constraint":{"type":"string","enum":["listed-building","conservation-area","article-4-direction-area","green-belt","flood-risk-zone"]}},"anyOf":[{"required":["address"]},{"required":["uprn"]},{"required":["latitude","longitude"]}],"required":["constraint"]},"output_schema":{"type":"object","description":"Focused subset of the full property report."}}],"interfaces":{"rest":{"endpoint":"https://verifyuk-property-check-production.up.railway.app/v1/property/constraints","batch_endpoint":"https://verifyuk-property-check-production.up.railway.app/v1/property/batches","credit_balance":"https://verifyuk-property-check-production.up.railway.app/v1/credits/balance","credit_estimate":"https://verifyuk-property-check-production.up.railway.app/v1/credits/estimate","usage_endpoint":"https://verifyuk-property-check-production.up.railway.app/v1/usage","feedback_endpoint":"https://verifyuk-property-check-production.up.railway.app/v1/feedback","openapi":"https://verifyuk-property-check-production.up.railway.app/openapi.json"},"mcp":{"endpoint":"https://verifyuk-property-check-production.up.railway.app/mcp","transport":"streamable-http","protocol":"Model Context Protocol","tools":["check_property_constraints","check_specific_constraint","get_credit_balance","estimate_property_screening_cost","estimate_property_batch_cost","create_property_screening_batch","get_property_screening_batch","get_property_screening_results"]},"local_stdio":{"command":"pnpm mcp:stdio","authentication":"not applicable to the local child process"}},"pricing":{"schema_version":"1.0","pricing_version":"2026-07-19.1","effective_date":"2026-07-19","credit_definition":"One credit purchases one compact English property screen.","operation_costs":[{"operation":"property_screen_compact","credits":1,"fiat_reference_price":0.05,"machine_payment_price":0.05,"fiat_currency":"GBP","machine_payment_currency":"USDC","pricing_version":"2026-07-19.1","effective_date":"2026-07-19"},{"operation":"property_screen_standard","credits":2,"fiat_reference_price":0.1,"machine_payment_price":0.1,"fiat_currency":"GBP","machine_payment_currency":"USDC","pricing_version":"2026-07-19.1","effective_date":"2026-07-19"},{"operation":"property_screen_diagnostic","credits":3,"fiat_reference_price":0.15,"machine_payment_price":0.15,"fiat_currency":"GBP","machine_payment_currency":"USDC","pricing_version":"2026-07-19.1","effective_date":"2026-07-19"},{"operation":"property_batch_compact_item","credits":1,"fiat_reference_price":0.05,"machine_payment_price":0.05,"fiat_currency":"GBP","machine_payment_currency":"USDC","pricing_version":"2026-07-19.1","effective_date":"2026-07-19"},{"operation":"property_batch_standard_item","credits":2,"fiat_reference_price":0.1,"machine_payment_price":0.1,"fiat_currency":"GBP","machine_payment_currency":"USDC","pricing_version":"2026-07-19.1","effective_date":"2026-07-19"}],"payment_methods":{"promotional_or_operator_grant":{"supported":true},"prepaid_credits":{"supported":true,"availability":"operator_managed"},"x402_usdc":{"supported":true,"enabled":true,"token":"USDC","network":"eip155:8453","settlement":"Credits are issued only after facilitator verification and confirmed settlement."}},"free_preview":{"default_allowance":25,"scope":"single-property authenticated calls only","batch_jobs":"require credits"},"refund_rules":"Captured credits are refunded only for a confirmed charging error. Reservations are released automatically for non-chargeable failures.","failed_call_charging":{"invalid_or_rejected":0,"authentication_failure":0,"internal_failure":0,"source_outage_preventing_useful_report":0,"successful_uncertain_or_no_signal_report":"normal operation cost"},"cached_call_pricing":{"policy":"Normal operation cost","stale_data":"Never served beyond the configured TTL.","forced_refresh":"Normal operation cost; a future pricing version may add a refresh surcharge."},"batch_pricing":"The maximum item cost is reserved at submission. Completed chargeable items are captured and all unused reservations are released.","status":"usage_based_credits","currency":"GBP","default_free_call_allowance":25,"paid_access_active":true,"payment_required_after_free_allowance":true,"exhaustion_error":"payment_required","note":"Compact, standard and diagnostic screens cost 1, 2 and 3 credits. x402 USDC is an optional payment rail; there is no VerifyUK token."},"trust":{"no_absence_inference":true,"professional_advice":false,"independent_commercial_validation":false,"validation_status":"manual validation evidence is incomplete"},"links":{"self":"https://verifyuk-property-check-production.up.railway.app/agents.json","human":"https://verifyuk-property-check-production.up.railway.app/agents","llms":"https://verifyuk-property-check-production.up.railway.app/llms.txt","openapi":"https://verifyuk-property-check-production.up.railway.app/openapi.json","documentation":"https://verifyuk-property-check-production.up.railway.app/docs","mcp":"https://verifyuk-property-check-production.up.railway.app/mcp","mcp_registry_metadata":"https://verifyuk-property-check-production.up.railway.app/server.json","pricing":"https://verifyuk-property-check-production.up.railway.app/pricing","health":"https://verifyuk-property-check-production.up.railway.app/health","readiness":"https://verifyuk-property-check-production.up.railway.app/ready","terms":"https://verifyuk-property-check-production.up.railway.app/terms","privacy":"https://verifyuk-property-check-production.up.railway.app/privacy","feedback":"https://verifyuk-property-check-production.up.railway.app/feedback","usage":"https://verifyuk-property-check-production.up.railway.app/v1/usage","pricing_json":"https://verifyuk-property-check-production.up.railway.app/pricing.json","credit_balance":"https://verifyuk-property-check-production.up.railway.app/v1/credits/balance","credit_estimate":"https://verifyuk-property-check-production.up.railway.app/v1/credits/estimate","batches":"https://verifyuk-property-check-production.up.railway.app/v1/property/batches"}}