{"openapi":"3.0.3","info":{"title":"VerifyUK Property Check API","version":"0.6.2","description":"Evidence-backed screening of English planning constraints. Missing records are never represented as confirmed absence."},"components":{"securitySchemes":{"apiKey":{"type":"apiKey","in":"header","name":"X-API-Key","description":"VerifyUK API key. Authorization: Bearer is also accepted."}},"schemas":{}},"paths":{"/health":{"get":{"summary":"Service liveness","responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"status":{"type":"string"},"version":{"type":"string"},"mcp":{"type":"boolean"}},"required":["status","version","mcp"]}}}}}}},"/ready":{"get":{"summary":"Service readiness","responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"status":{"type":"string"},"storage":{"type":"boolean"},"commercial_storage":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"format_review_storage":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"accepting_requests":{"type":"boolean"}},"required":["status","storage","accepting_requests"]}}}},"503":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"status":{"type":"string"},"storage":{"type":"boolean"},"commercial_storage":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"format_review_storage":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"accepting_requests":{"type":"boolean"}},"required":["status","storage","accepting_requests"]}}}}}}},"/v1/property/constraints":{"post":{"operationId":"checkPropertyConstraints","summary":"Use an existing VerifyUK API key for a property screen","description":"Accepts coordinates or an address containing a UK postcode. A supplied UPRN must be accompanied by caller-verified coordinates until an approved UPRN resolver is enabled. Postcode-only matching is approximate and clearly marked.","requestBody":{"required":true,"content":{"application/json":{"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"]}]}}}},"parameters":[{"schema":{"type":"string","minLength":8,"maxLength":200},"in":"header","name":"idempotency-key","required":false,"description":"Required after free preview for paid calls; retry an identical request with the same value."},{"schema":{"type":"string","minLength":16,"maxLength":20000},"in":"header","name":"payment-signature","required":false,"description":"x402 v2 payment payload supplied when retrying a structured HTTP 402 requirement."}],"security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"oneOf":[{"type":"object","additionalProperties":false,"properties":{"report_id":{"type":"string","format":"uuid"},"response_mode":{"enum":["compact"]},"generated_at":{"type":"string","format":"date-time"},"screening_status":{"type":"string","enum":["CLEAR","FLAGGED","PARTIAL","UNKNOWN"]},"screening_status_explanation":{"type":"string"},"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"}]},"matching_method":{"type":"string","enum":["uprn","provided_coordinates","postcode_centroid","property_identity","licensed_address"]},"match_confidence":{"type":"number","minimum":0,"maximum":1},"coordinate_source":{"type":"string","enum":["uprn","caller","postcodes_io","planning_data_listed_building_identity","ideal_postcodes"]},"location_precision":{"type":"string","enum":["authoritative_identifier","property_level","exact_coordinates","street_level","postcode_centroid","unknown"]},"property_level":{"type":"boolean"},"resolution_candidate_count":{"type":"integer","minimum":0,"maximum":100},"candidate_ambiguity":{"type":"string","enum":["not_applicable","unique","multiple","unresolved"]},"manual_review_required":{"type":"boolean"},"manual_review_reason":{"anyOf":[{"type":"string"},{"type":"null"}]},"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","latitude","longitude","matching_method","match_confidence","coordinate_source","location_precision","property_level","resolution_candidate_count","candidate_ambiguity","manual_review_required","manual_review_reason","submitted_address","normalised_address","corrections_applied","match_quality","selection_reason"]},"property_resolution":{"type":"object","additionalProperties":false,"properties":{"method":{"type":"string","enum":["uprn","provided_coordinates","postcode_centroid","property_identity","licensed_address"]},"precision":{"type":"string","enum":["authoritative_identifier","property_level","exact_coordinates","street_level","postcode_centroid","unknown"]},"confidence":{"type":"number","minimum":0,"maximum":1},"candidate_count":{"type":"integer","minimum":0,"maximum":100},"candidate_ambiguity":{"type":"string","enum":["not_applicable","unique","multiple","unresolved"]},"manual_review_required":{"type":"boolean"},"manual_review_reason":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["method","precision","confidence","candidate_count","candidate_ambiguity","manual_review_required","manual_review_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"]},"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"}},"report_hash":{"type":"string","pattern":"^[a-f0-9]{64}$"}},"required":["report_id","response_mode","generated_at","screening_status","screening_status_explanation","matched_address","property_resolution","planning_constraints","risk_summary","report_confidence","coverage","sources","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"},"screening_status":{"type":"string","enum":["CLEAR","FLAGGED","PARTIAL","UNKNOWN"]},"screening_status_explanation":{"type":"string"},"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","licensed_address"]},"coordinate_source":{"type":"string","enum":["uprn","caller","postcodes_io","planning_data_listed_building_identity","ideal_postcodes"]},"location_precision":{"type":"string","enum":["authoritative_identifier","property_level","exact_coordinates","street_level","postcode_centroid","unknown"]},"property_level":{"type":"boolean"},"resolution_candidate_count":{"type":"integer","minimum":0,"maximum":100},"candidate_ambiguity":{"type":"string","enum":["not_applicable","unique","multiple","unresolved"]},"manual_review_required":{"type":"boolean"},"manual_review_reason":{"anyOf":[{"type":"string"},{"type":"null"}]},"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","resolution_candidate_count","candidate_ambiguity","manual_review_required","manual_review_reason","address","candidate_properties_considered","selected_candidate","selection_reason","source_url","warning"]},"property_resolution":{"type":"object","additionalProperties":false,"properties":{"method":{"type":"string","enum":["uprn","provided_coordinates","postcode_centroid","property_identity","licensed_address"]},"precision":{"type":"string","enum":["authoritative_identifier","property_level","exact_coordinates","street_level","postcode_centroid","unknown"]},"confidence":{"type":"number","minimum":0,"maximum":1},"candidate_count":{"type":"integer","minimum":0,"maximum":100},"candidate_ambiguity":{"type":"string","enum":["not_applicable","unique","multiple","unresolved"]},"manual_review_required":{"type":"boolean"},"manual_review_reason":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["method","precision","confidence","candidate_count","candidate_ambiguity","manual_review_required","manual_review_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"]},"applies":{"anyOf":[{"enum":[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":[{"enum":[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":[{"enum":[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":[{"enum":[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":[{"enum":[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","screening_status","screening_status_explanation","matched_address","property_resolution","planning_constraints","risk_summary","report_confidence","coverage","sources","warnings","diagnostics","report_hash"]}]}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"error":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"details":{"type":"object","additionalProperties":true}},"required":["error","message","request_id"]}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"error":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"details":{"type":"object","additionalProperties":true}},"required":["error","message","request_id"]}}}},"402":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"error":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"details":{"type":"object","additionalProperties":true}},"required":["error","message","request_id"]}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"error":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"details":{"type":"object","additionalProperties":true}},"required":["error","message","request_id"]}}}},"502":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"error":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"details":{"type":"object","additionalProperties":true}},"required":["error","message","request_id"]}}}},"504":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"error":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"details":{"type":"object","additionalProperties":true}},"required":["error","message","request_id"]}}}}}}},"/v1/data-sources":{"get":{"operationId":"listPropertyDataSources","summary":"List dataset-level property-data sources","description":"Shows source authority, operational status, England coverage, freshness, licensing and limitations without claiming unavailable data.","responses":{"200":{"description":"Default Response"}}}},"/v1/property/intelligence":{"post":{"operationId":"getPropertyIntelligence","summary":"Build a broad, source-transparent English property intelligence profile","description":"Combines the core constraint report with administrative geography, anonymised area crime and additional planning context. Optional source failures produce a partial profile rather than failing the core report.","requestBody":{"required":true,"content":{"application/json":{"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":["standard","diagnostic"],"default":"diagnostic"}},"anyOf":[{"required":["address"]},{"required":["uprn"]},{"required":["latitude","longitude"]}]}}}},"parameters":[{"schema":{"type":"string","minLength":8,"maxLength":200},"in":"header","name":"idempotency-key","required":false,"description":"Required after free preview for paid calls; retry an identical request with the same value."},{"schema":{"type":"string","minLength":16,"maxLength":20000},"in":"header","name":"payment-signature","required":false,"description":"x402 v2 payment payload supplied when retrying a structured HTTP 402 requirement."}],"security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["profile_id","report_id","report_hash","generated_at","profile_version","report","administrative_geography","crime_context","extended_planning_context","development_activity","flood_monitoring","coverage","source_catalogue","unavailable_capabilities","warnings"],"properties":{"profile_id":{"type":"string","format":"uuid"},"report_id":{"type":"string","format":"uuid"},"report_hash":{"type":"string","pattern":"^[a-f0-9]{64}$"},"generated_at":{"type":"string","format":"date-time"},"profile_version":{"enum":["1.1"]},"report":{"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"},"screening_status":{"type":"string","enum":["CLEAR","FLAGGED","PARTIAL","UNKNOWN"]},"screening_status_explanation":{"type":"string"},"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","licensed_address"]},"coordinate_source":{"type":"string","enum":["uprn","caller","postcodes_io","planning_data_listed_building_identity","ideal_postcodes"]},"location_precision":{"type":"string","enum":["authoritative_identifier","property_level","exact_coordinates","street_level","postcode_centroid","unknown"]},"property_level":{"type":"boolean"},"resolution_candidate_count":{"type":"integer","minimum":0,"maximum":100},"candidate_ambiguity":{"type":"string","enum":["not_applicable","unique","multiple","unresolved"]},"manual_review_required":{"type":"boolean"},"manual_review_reason":{"anyOf":[{"type":"string"},{"type":"null"}]},"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","resolution_candidate_count","candidate_ambiguity","manual_review_required","manual_review_reason","address","candidate_properties_considered","selected_candidate","selection_reason","source_url","warning"]},"property_resolution":{"type":"object","additionalProperties":false,"properties":{"method":{"type":"string","enum":["uprn","provided_coordinates","postcode_centroid","property_identity","licensed_address"]},"precision":{"type":"string","enum":["authoritative_identifier","property_level","exact_coordinates","street_level","postcode_centroid","unknown"]},"confidence":{"type":"number","minimum":0,"maximum":1},"candidate_count":{"type":"integer","minimum":0,"maximum":100},"candidate_ambiguity":{"type":"string","enum":["not_applicable","unique","multiple","unresolved"]},"manual_review_required":{"type":"boolean"},"manual_review_reason":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["method","precision","confidence","candidate_count","candidate_ambiguity","manual_review_required","manual_review_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"]},"applies":{"anyOf":[{"enum":[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":[{"enum":[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":[{"enum":[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":[{"enum":[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":[{"enum":[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","screening_status","screening_status_explanation","matched_address","property_resolution","planning_constraints","risk_summary","report_confidence","coverage","sources","warnings","diagnostics","report_hash"]},"administrative_geography":{"type":"object","additionalProperties":true},"crime_context":{"type":"object","additionalProperties":true},"extended_planning_context":{"type":"object","additionalProperties":true},"development_activity":{"type":"object","additionalProperties":true},"flood_monitoring":{"type":"object","additionalProperties":true},"coverage":{"type":"string","enum":["complete_for_live_profile_sources","partial"]},"source_catalogue":{"type":"array","items":{"type":"object","additionalProperties":true}},"unavailable_capabilities":{"type":"array","items":{"type":"string"}},"warnings":{"type":"array","items":{"type":"string"}}}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"error":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"details":{"type":"object","additionalProperties":true}},"required":["error","message","request_id"]}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"error":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"details":{"type":"object","additionalProperties":true}},"required":["error","message","request_id"]}}}},"402":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"error":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"details":{"type":"object","additionalProperties":true}},"required":["error","message","request_id"]}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"error":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"details":{"type":"object","additionalProperties":true}},"required":["error","message","request_id"]}}}},"502":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"error":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"details":{"type":"object","additionalProperties":true}},"required":["error","message","request_id"]}}}},"504":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"error":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"details":{"type":"object","additionalProperties":true}},"required":["error","message","request_id"]}}}}}}},"/v1/credits/balance":{"get":{"operationId":"getCreditBalance","summary":"Get the authenticated agent credit balance","security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response"}}}},"/v1/credits/purchases/gbp":{"post":{"operationId":"requestGbpCreditInvoice","summary":"Request a GBP business invoice for prepaid credits","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["credits","business_name","billing_email","billing_address"],"properties":{"credits":{"type":"integer","minimum":1,"maximum":10000000},"business_name":{"type":"string","minLength":2,"maxLength":200},"billing_email":{"type":"string","format":"email","maxLength":254},"billing_address":{"type":"object","additionalProperties":false,"required":["line1","city","postcode","country"],"properties":{"line1":{"type":"string","minLength":2,"maxLength":200},"line2":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"city":{"type":"string","minLength":2,"maxLength":120},"postcode":{"type":"string","minLength":2,"maxLength":20},"country":{"type":"string","minLength":2,"maxLength":120}}},"purchase_order":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}]}}}}}},"parameters":[{"schema":{"type":"string","minLength":8,"maxLength":200},"in":"header","name":"idempotency-key","required":true}],"security":[{"apiKey":[]}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"error":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"details":{"type":"object","additionalProperties":true}},"required":["error","message","request_id"]}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"error":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"details":{"type":"object","additionalProperties":true}},"required":["error","message","request_id"]}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"error":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"details":{"type":"object","additionalProperties":true}},"required":["error","message","request_id"]}}}},"503":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"error":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"details":{"type":"object","additionalProperties":true}},"required":["error","message","request_id"]}}}}}}},"/v1/credits/purchases/gbp/{purchase_id}":{"get":{"operationId":"getGbpCreditPurchase","summary":"Get an authenticated GBP invoice purchase and issued documents","security":[{"apiKey":[]}],"parameters":[{"schema":{"type":"string"},"in":"path","name":"purchase_id","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/credits/estimate":{"post":{"operationId":"estimatePropertyScreeningCost","summary":"Estimate credit cost before a property screen or batch","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"response_mode":{"type":"string","enum":["compact","standard","diagnostic"],"default":"standard"},"property_count":{"type":"integer","minimum":1,"maximum":5000,"default":1},"batch":{"type":"boolean","default":false}}}}}},"security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response"}}}},"/v1/property/batches":{"post":{"operationId":"createPropertyScreeningBatch","summary":"Create an asynchronous English property-screening batch","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["properties"],"properties":{"response_mode":{"type":"string","enum":["compact","standard"],"default":"compact"},"callback_url":{"type":"string","format":"uri","maxLength":2000},"properties":{"type":"array","minItems":1,"maxItems":5000,"items":{"type":"object","additionalProperties":false,"properties":{"external_id":{"type":"string","minLength":1,"maxLength":200},"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}}}}}}}}},"parameters":[{"schema":{"type":"string","minLength":8,"maxLength":200},"in":"header","name":"idempotency-key","required":false,"description":"Required after free preview for paid calls; retry an identical request with the same value."},{"schema":{"type":"string","minLength":16,"maxLength":20000},"in":"header","name":"payment-signature","required":false,"description":"x402 v2 payment payload supplied when retrying a structured HTTP 402 requirement."}],"security":[{"apiKey":[]}],"responses":{"202":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"error":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"details":{"type":"object","additionalProperties":true}},"required":["error","message","request_id"]}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"error":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"details":{"type":"object","additionalProperties":true}},"required":["error","message","request_id"]}}}},"402":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"error":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"details":{"type":"object","additionalProperties":true}},"required":["error","message","request_id"]}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"error":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"details":{"type":"object","additionalProperties":true}},"required":["error","message","request_id"]}}}},"503":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"error":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"details":{"type":"object","additionalProperties":true}},"required":["error","message","request_id"]}}}}}}},"/v1/webhooks/config":{"post":{"operationId":"configureWebhookSigningSecret","summary":"Configure the authenticated account webhook signing secret","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["signing_secret"],"properties":{"signing_secret":{"type":"string","minLength":32,"maxLength":200}}}}}},"security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response"}}}},"/v1/property/batches/{job_id}":{"get":{"operationId":"getPropertyScreeningBatch","summary":"Get batch state and credit accounting","security":[{"apiKey":[]}],"parameters":[{"schema":{"type":"string"},"in":"path","name":"job_id","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/property/batches/{job_id}/results":{"get":{"operationId":"getPropertyScreeningResults","summary":"Get a paginated batch result page","parameters":[{"schema":{"type":"integer","minimum":0,"default":0},"in":"query","name":"offset","required":false},{"schema":{"type":"integer","minimum":1,"maximum":500,"default":100},"in":"query","name":"limit","required":false},{"schema":{"type":"string"},"in":"path","name":"job_id","required":true}],"security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response"}}}},"/v1/feedback":{"post":{"operationId":"submitPropertyCheckFeedback","summary":"Submit minimal private-beta feedback for a VerifyUK report","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"report_id":{"type":"string","format":"uuid"},"endpoint_or_tool":{"type":"string","minLength":1,"maxLength":200},"result":{"type":"string","enum":["correct_result","incorrect_result","unclear_result","missing_information","broken_evidence_link","address_resolution_problem"]},"notes":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]}},"required":["report_id","endpoint_or_tool","result"]}}}},"security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"feedback_id":{"type":"string","format":"uuid"},"status":{"type":"string"}},"required":["feedback_id","status"]}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"error":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"details":{"type":"object","additionalProperties":true}},"required":["error","message","request_id"]}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"error":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"details":{"type":"object","additionalProperties":true}},"required":["error","message","request_id"]}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"error":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"details":{"type":"object","additionalProperties":true}},"required":["error","message","request_id"]}}}}}}}},"servers":[{"url":"https://verifyuk-property-check-production.up.railway.app"}],"externalDocs":{"description":"VerifyUK agent integration","url":"https://verifyuk-property-check-production.up.railway.app/agents"}}