{"openapi":"3.1.0","info":{"title":"Location IQ","description":"Spatial API with curated named landmarks, complete attributed NBS survey points, official boundaries, population and historical statistics. WGS84 coordinates, geodesic landmark distances and configurable filtered queries. Sign up in the dashboard and issue a scoped API key.","version":"1.0.0"},"paths":{"/auth/register":{"post":{"tags":["Account"],"summary":"Register","operationId":"register_auth_register_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Registration"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/login":{"post":{"tags":["Account"],"summary":"Login","operationId":"login_auth_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Credentials"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/logout":{"post":{"tags":["Account"],"summary":"Logout","operationId":"logout_auth_logout_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/auth/me":{"get":{"tags":["Account"],"summary":"Me","operationId":"me_auth_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/account/keys/{key_id}/server-ip":{"put":{"tags":["API keys"],"summary":"Request Ip","operationId":"request_ip_account_keys__key_id__server_ip_put","parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"integer","title":"Key Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerIP"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/api/server-ips":{"get":{"tags":["Administration"],"summary":"Queue","operationId":"queue_admin_api_server_ips_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"enum":["all","pending","approved","rejected","disabled"],"type":"string","default":"pending","title":"Status"}},{"name":"after_id","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"After Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/api/server-ips/{key_id}/review":{"post":{"tags":["Administration"],"summary":"Review","operationId":"review_admin_api_server_ips__key_id__review_post","parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"integer","title":"Key Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/server_ip__Review"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/account/keys":{"get":{"tags":["API keys"],"summary":"Keys","operationId":"keys_account_keys_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["API keys"],"summary":"Create Key","operationId":"create_key_account_keys_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KeyRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/account/keys/{key_id}":{"delete":{"tags":["API keys"],"summary":"Revoke","operationId":"revoke_account_keys__key_id__delete","parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"integer","title":"Key Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/account/usage":{"get":{"tags":["Account"],"summary":"Usage","operationId":"usage_account_usage_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/health":{"get":{"tags":["System"],"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/demographics/summary":{"get":{"tags":["Demographic insights"],"summary":"Summary","operationId":"summary_v1_demographics_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/demographics":{"get":{"tags":["Demographic insights"],"summary":"Population","operationId":"population_v1_demographics_get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"level","in":"query","required":false,"schema":{"anyOf":[{"enum":["country","territory","region","district","council","ward","shehia","village"],"type":"string"},{"type":"null"}],"title":"Level"}},{"name":"region","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Region"}},{"name":"area_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Area Id"}},{"name":"parent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":24},{"type":"null"}],"title":"Parent Id"}},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Q"}},{"name":"spatial_only","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Spatial Only"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","maximum":100000,"minimum":0,"default":0,"title":"Offset"}},{"name":"format","in":"query","required":false,"schema":{"enum":["json","geojson"],"type":"string","default":"json","title":"Format"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/statistics/indicators":{"get":{"tags":["Statistics"],"summary":"Indicators","operationId":"indicators_v1_statistics_indicators_get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Category"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/statistics":{"get":{"tags":["Statistics"],"summary":"Statistics","operationId":"statistics_v1_statistics_get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"indicator","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}],"title":"Indicator"}},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Category"}},{"name":"region","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Region"}},{"name":"unit_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":24},{"type":"null"}],"title":"Unit Id"}},{"name":"period","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Period"}},{"name":"format","in":"query","required":false,"schema":{"enum":["json","geojson"],"type":"string","default":"json","title":"Format"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","maximum":100000,"minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/statistics/validation":{"get":{"tags":["Statistics"],"summary":"Statistical Checks","operationId":"statistical_checks_v1_statistics_validation_get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"enum":["pass","fail"],"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","maximum":100000,"minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/statistics/reverse":{"get":{"tags":["Statistics"],"summary":"Statistics Reverse","operationId":"statistics_reverse_v1_statistics_reverse_get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"longitude","in":"query","required":true,"schema":{"type":"number","maximum":180,"minimum":-180,"title":"Longitude"}},{"name":"latitude","in":"query","required":true,"schema":{"type":"number","maximum":90,"minimum":-90,"title":"Latitude"}},{"name":"level","in":"query","required":false,"schema":{"enum":["region","territory","country"],"type":"string","default":"region","title":"Level"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/statistics/summary":{"get":{"tags":["Statistics"],"summary":"Statistics Summary","operationId":"statistics_summary_v1_statistics_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/demographics/reverse":{"get":{"tags":["Demographic insights"],"summary":"Census Reverse","operationId":"census_reverse_v1_demographics_reverse_get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"longitude","in":"query","required":true,"schema":{"type":"number","maximum":180,"minimum":-180,"title":"Longitude"}},{"name":"latitude","in":"query","required":true,"schema":{"type":"number","maximum":90,"minimum":-90,"title":"Latitude"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/demographics/name-links":{"get":{"tags":["Demographic insights"],"summary":"Name Links","operationId":"name_links_v1_demographics_name_links_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}]}},"/v1/demographics/validation":{"get":{"tags":["Demographic insights"],"summary":"Validation","operationId":"validation_v1_demographics_validation_get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"enum":["pass","fail"],"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","maximum":100000,"minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/demographics/reports":{"get":{"tags":["Demographic reports"],"summary":"Reports","operationId":"reports_v1_demographics_reports_get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Q"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","maximum":100000,"minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/demographics/reports/{report_id}/geography":{"get":{"tags":["Demographic reports"],"summary":"Report Geography","operationId":"report_geography_v1_demographics_reports__report_id__geography_get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"report_id","in":"path","required":true,"schema":{"type":"string","title":"Report Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/demographics/candidate-rows":{"get":{"tags":["Demographic reports"],"summary":"Candidate Rows","operationId":"candidate_rows_v1_demographics_candidate_rows_get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"unit_id","in":"query","required":true,"schema":{"type":"string","maxLength":24,"title":"Unit Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","maximum":100000,"minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/demographics/reports/{report_id}/pages/{page}":{"get":{"tags":["Demographic reports"],"summary":"Report Page","operationId":"report_page_v1_demographics_reports__report_id__pages__page__get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"report_id","in":"path","required":true,"schema":{"type":"string","title":"Report Id"}},{"name":"page","in":"path","required":true,"schema":{"type":"integer","title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/demographics/reports/{report_id}/tables":{"get":{"tags":["Demographic reports"],"summary":"Report Tables","operationId":"report_tables_v1_demographics_reports__report_id__tables_get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"report_id","in":"path","required":true,"schema":{"type":"string","title":"Report Id"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Page"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":20,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","maximum":100000,"minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/computed/summary":{"get":{"tags":["Computed village estimates"],"summary":"Metadata","operationId":"metadata_v1_computed_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/computed/indicators":{"get":{"tags":["Computed village estimates"],"summary":"Indicators","operationId":"indicators_v1_computed_indicators_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/computed/validation":{"get":{"tags":["Computed village estimates"],"summary":"Validation","operationId":"validation_v1_computed_validation_get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"enum":["pass","fail"],"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"after_id","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"After Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/computed/villages":{"get":{"tags":["Computed village estimates"],"summary":"Villages","operationId":"villages_v1_computed_villages_get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"indicator","in":"query","required":false,"schema":{"type":"string","maxLength":80,"default":"household_monthly_consumption","title":"Indicator"}},{"name":"village_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Village Id"}},{"name":"region","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Region"}},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Q"}},{"name":"after_id","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"After Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":25,"title":"Limit"}},{"name":"format","in":"query","required":false,"schema":{"enum":["json","geojson"],"type":"string","default":"json","title":"Format"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/computed/reverse":{"get":{"tags":["Computed village estimates"],"summary":"Reverse","operationId":"reverse_v1_computed_reverse_get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"longitude","in":"query","required":true,"schema":{"type":"number","maximum":180,"minimum":-180,"title":"Longitude"}},{"name":"latitude","in":"query","required":true,"schema":{"type":"number","maximum":90,"minimum":-90,"title":"Latitude"}},{"name":"indicator","in":"query","required":false,"schema":{"type":"string","maxLength":80,"default":"household_monthly_consumption","title":"Indicator"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/catalog":{"get":{"tags":["Discover"],"summary":"Catalog","operationId":"catalog_v1_catalog_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/nearest":{"get":{"tags":["Spatial"],"summary":"Nearest named landmarks by WGS84 distance","operationId":"nearest_v1_nearest_get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"longitude","in":"query","required":true,"schema":{"type":"number","maximum":180,"minimum":-180,"title":"Longitude"}},{"name":"latitude","in":"query","required":true,"schema":{"type":"number","maximum":90,"minimum":-90,"title":"Latitude"}},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":5,"title":"Limit"}},{"name":"radius_m","in":"query","required":false,"schema":{"type":"number","maximum":100000,"exclusiveMinimum":0,"default":25000,"title":"Radius M"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/reverse":{"get":{"tags":["Spatial"],"summary":"Coordinate to village, ward, district, region and nearby landmarks","operationId":"reverse_v1_reverse_get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"longitude","in":"query","required":true,"schema":{"type":"number","maximum":180,"minimum":-180,"title":"Longitude"}},{"name":"latitude","in":"query","required":true,"schema":{"type":"number","maximum":90,"minimum":-90,"title":"Latitude"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":20,"minimum":1,"default":5,"title":"Limit"}},{"name":"radius_m","in":"query","required":false,"schema":{"type":"number","maximum":100000,"exclusiveMinimum":0,"default":25000,"title":"Radius M"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/query":{"post":{"tags":["Custom queries"],"summary":"Choose dataset, fields, filters, search, area, bounding box and output format","operationId":"query_v1_query_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpatialQuery"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}]}},"/v1/search":{"get":{"tags":["Discover"],"summary":"Search","operationId":"search_v1_search_get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":100,"title":"Q"}},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","maximum":100000,"minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/resolve":{"get":{"tags":["Spatial"],"summary":"Resolve a recorded place name to coordinate candidates","operationId":"resolve_v1_resolve_get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":2,"maxLength":100,"title":"Q"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":20,"minimum":1,"default":10,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/landmarks/{landmark_id}":{"get":{"tags":["Relationships"],"summary":"Landmark","operationId":"landmark_v1_landmarks__landmark_id__get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"landmark_id","in":"path","required":true,"schema":{"type":"integer","title":"Landmark Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/areas/{area_id}/children":{"get":{"tags":["Relationships"],"summary":"Children","operationId":"children_v1_areas__area_id__children_get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"area_id","in":"path","required":true,"schema":{"type":"integer","title":"Area Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/areas/{area_id}":{"get":{"tags":["Relationships"],"summary":"Area","operationId":"area_v1_areas__area_id__get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"area_id","in":"path","required":true,"schema":{"type":"integer","title":"Area Id"}},{"name":"include_geometry","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Geometry"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/account/presets":{"get":{"tags":["Saved queries"],"summary":"Presets","operationId":"presets_account_presets_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["Saved queries"],"summary":"Save Preset","operationId":"save_preset_account_presets_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PresetRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/account/presets/{preset_id}":{"delete":{"tags":["Saved queries"],"summary":"Delete Preset","operationId":"delete_preset_account_presets__preset_id__delete","parameters":[{"name":"preset_id","in":"path","required":true,"schema":{"type":"integer","title":"Preset Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/presets/{preset_id}/run":{"post":{"tags":["Saved queries"],"summary":"Run Preset","operationId":"run_preset_v1_presets__preset_id__run_post","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"preset_id","in":"path","required":true,"schema":{"type":"integer","title":"Preset Id"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","maximum":100000,"minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/services":{"get":{"tags":["Purpose services"],"summary":"Discover purpose-based API services","operationId":"services_v1_services_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/services/{service_id}/nearby":{"get":{"tags":["Purpose services"],"summary":"Nearest named facilities for a use case","operationId":"nearby_v1_services__service_id__nearby_get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"service_id","in":"path","required":true,"schema":{"type":"string","title":"Service Id"}},{"name":"longitude","in":"query","required":true,"schema":{"type":"number","maximum":180,"minimum":-180,"title":"Longitude"}},{"name":"latitude","in":"query","required":true,"schema":{"type":"number","maximum":90,"minimum":-90,"title":"Latitude"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":5,"title":"Limit"}},{"name":"radius_m","in":"query","required":false,"schema":{"type":"number","maximum":100000,"exclusiveMinimum":0,"default":25000,"title":"Radius M"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/boundaries/reverse":{"get":{"tags":["Official boundaries"],"summary":"Official 2022 administrative and electoral hierarchy at a coordinate","operationId":"reverse_v1_boundaries_reverse_get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"longitude","in":"query","required":true,"schema":{"type":"number","maximum":180,"minimum":-180,"title":"Longitude"}},{"name":"latitude","in":"query","required":true,"schema":{"type":"number","maximum":90,"minimum":-90,"title":"Latitude"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/boundaries":{"get":{"tags":["Official boundaries"],"summary":"Filter official boundaries and export GeoJSON","operationId":"boundaries_v1_boundaries_get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"level","in":"query","required":false,"schema":{"anyOf":[{"enum":["country","territory","region","district","council","constituency","division","ward","shehia"],"type":"string"},{"type":"null"}],"title":"Level"}},{"name":"region","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Region"}},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1,"maxLength":100},{"type":"null"}],"title":"Q"}},{"name":"parent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Parent Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":25,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","maximum":100000,"minimum":0,"default":0,"title":"Offset"}},{"name":"format","in":"query","required":false,"schema":{"enum":["json","geojson"],"type":"string","default":"json","title":"Format"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/boundaries/{boundary_id}":{"get":{"tags":["Official boundaries"],"summary":"Boundary geometry, population and parent relationship","operationId":"boundary_v1_boundaries__boundary_id__get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"boundary_id","in":"path","required":true,"schema":{"type":"integer","title":"Boundary Id"}},{"name":"include_geometry","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Include Geometry"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/survey-facilities":{"get":{"tags":["Survey facilities"],"summary":"Browse all attributed geodatabase facility points","operationId":"survey_points_v1_survey_facilities_get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"source_layer","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Source Layer"}},{"name":"name_status","in":"query","required":false,"schema":{"anyOf":[{"enum":["reported_name","not_recorded","generic_type_only"],"type":"string"},{"type":"null"}],"title":"Name Status"}},{"name":"region","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Region"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":25,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","maximum":100000,"minimum":0,"default":0,"title":"Offset"}},{"name":"after_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"After Id"}},{"name":"format","in":"query","required":false,"schema":{"enum":["json","geojson"],"type":"string","default":"json","title":"Format"}},{"name":"has_name_candidate","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Name Candidate"}},{"name":"classification_status","in":"query","required":false,"schema":{"anyOf":[{"enum":["source_reported","source_layer_type_conflict","source_name_type_conflict"],"type":"string"},{"type":"null"}],"title":"Classification Status"}},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1,"maxLength":100},{"type":"null"}],"title":"Q"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/survey-facilities/{point_id}":{"get":{"tags":["Survey facilities"],"summary":"Complete survey point with official geographic context","operationId":"survey_point_v1_survey_facilities__point_id__get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"point_id","in":"path","required":true,"schema":{"type":"integer","title":"Point Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/estimates/building-population/summary":{"get":{"tags":["Computed village estimates"],"summary":"Metadata","operationId":"metadata_v1_estimates_building_population_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/estimates/villages/{village_id}":{"get":{"tags":["Computed village estimates"],"summary":"Detail","operationId":"detail_v1_estimates_villages__village_id__get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"village_id","in":"path","required":true,"schema":{"type":"integer","title":"Village Id"}},{"name":"include_indicators","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Include Indicators"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/estimates/wards":{"get":{"tags":["Computed village estimates"],"summary":"Wards","operationId":"wards_v1_estimates_wards_get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":100,"default":"","title":"Q"}},{"name":"after_id","in":"query","required":false,"schema":{"type":"string","maxLength":100,"default":"","title":"After Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":25,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/catchment/summary":{"get":{"tags":["Catchment planning"],"summary":"Discovery","operationId":"discovery_v1_catchment_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/catchment":{"get":{"tags":["Catchment planning"],"summary":"Population, buildings and facilities within a radius or reachable-road corridor","operationId":"catchment_v1_catchment_get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"longitude","in":"query","required":true,"schema":{"type":"number","maximum":180,"minimum":-180,"title":"Longitude"}},{"name":"latitude","in":"query","required":true,"schema":{"type":"number","maximum":90,"minimum":-90,"title":"Latitude"}},{"name":"mode","in":"query","required":false,"schema":{"enum":["radius","driving"],"type":"string","default":"radius","title":"Mode"}},{"name":"radius_m","in":"query","required":false,"schema":{"type":"number","maximum":10000,"minimum":100,"default":5000,"title":"Radius M"}},{"name":"travel_minutes","in":"query","required":false,"schema":{"type":"number","maximum":30,"minimum":1,"default":20,"title":"Travel Minutes"}},{"name":"access_buffer_m","in":"query","required":false,"schema":{"type":"number","maximum":500,"minimum":50,"default":200,"title":"Access Buffer M"}},{"name":"minimum_confidence","in":"query","required":false,"schema":{"type":"number","maximum":1,"minimum":0.65,"default":0.75,"title":"Minimum Confidence"}},{"name":"include_geometry","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Include Geometry"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/routes":{"get":{"tags":["Routing"],"summary":"Conservative modelled motor-car route","operationId":"route_v1_routes_get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"start_longitude","in":"query","required":true,"schema":{"type":"number","maximum":180,"minimum":-180,"title":"Start Longitude"}},{"name":"start_latitude","in":"query","required":true,"schema":{"type":"number","maximum":90,"minimum":-90,"title":"Start Latitude"}},{"name":"end_longitude","in":"query","required":true,"schema":{"type":"number","maximum":180,"minimum":-180,"title":"End Longitude"}},{"name":"end_latitude","in":"query","required":true,"schema":{"type":"number","maximum":90,"minimum":-90,"title":"End Latitude"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/buildings":{"get":{"tags":["Buildings"],"summary":"Browse Buildings","operationId":"browse_buildings_v1_buildings_get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"west","in":"query","required":true,"schema":{"type":"number","maximum":180,"minimum":-180,"title":"West"}},{"name":"south","in":"query","required":true,"schema":{"type":"number","maximum":90,"minimum":-90,"title":"South"}},{"name":"east","in":"query","required":true,"schema":{"type":"number","maximum":180,"minimum":-180,"title":"East"}},{"name":"north","in":"query","required":true,"schema":{"type":"number","maximum":90,"minimum":-90,"title":"North"}},{"name":"minimum_confidence","in":"query","required":false,"schema":{"type":"number","maximum":1,"minimum":0.65,"default":0.75,"title":"Minimum Confidence"}},{"name":"after_id","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"After Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":25,"title":"Limit"}},{"name":"village_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Village Id"}},{"name":"format","in":"query","required":false,"schema":{"enum":["json","geojson"],"type":"string","default":"json","title":"Format"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/health-registry":{"get":{"tags":["Health registry"],"summary":"Registry","operationId":"registry_v1_health_registry_get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Q"}},{"name":"region","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Region"}},{"name":"operating_only","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Operating Only"}},{"name":"located_only","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Located Only"}},{"name":"match_status","in":"query","required":false,"schema":{"anyOf":[{"enum":["unique_exact_name_region_council","ambiguous_registry_identity","ambiguous_name_region_council","no_exact_spatial_match"],"type":"string"},{"type":"null"}],"title":"Match Status"}},{"name":"after_id","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"After Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":25,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/health-registry/{registry_id}":{"get":{"tags":["Health registry"],"summary":"Inspect a registry record and its explicitly unverified location candidates","operationId":"registry_detail_v1_health_registry__registry_id__get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"registry_id","in":"path","required":true,"schema":{"type":"integer","title":"Registry Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/catchment/areas/{area_id}/population":{"get":{"tags":["Catchment planning"],"summary":"Area Population","operationId":"area_population_v1_catchment_areas__area_id__population_get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"area_id","in":"path","required":true,"schema":{"type":"integer","title":"Area Id"}},{"name":"geography","in":"query","required":false,"schema":{"enum":["legacy","official"],"type":"string","default":"legacy","title":"Geography"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/account/consent":{"post":{"tags":["Account"],"summary":"Consent","operationId":"consent_account_consent_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Consent"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/admin-setup":{"post":{"tags":["Account"],"summary":"Setup","operationId":"setup_auth_admin_setup_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Setup"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/account/metrics":{"get":{"tags":["Account"],"summary":"Own Metrics","operationId":"own_metrics_account_metrics_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":90,"minimum":1,"default":30,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/api/overview":{"get":{"tags":["Administration"],"summary":"Overview","operationId":"overview_admin_api_overview_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/admin/api/users":{"get":{"tags":["Administration"],"summary":"Users","operationId":"users_admin_api_users_get","parameters":[{"name":"after_id","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"After Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}},{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":100,"default":"","title":"Q"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/api/users/{uid}":{"patch":{"tags":["Administration"],"summary":"Status","operationId":"status_admin_api_users__uid__patch","parameters":[{"name":"uid","in":"path","required":true,"schema":{"type":"integer","title":"Uid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Status"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/api/requests":{"get":{"tags":["Administration"],"summary":"Requests","operationId":"requests_admin_api_requests_get","parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"User Id"}},{"name":"after_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"After Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/api/pricing":{"put":{"tags":["Administration"],"summary":"Price","operationId":"price_admin_api_pricing_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Price"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/catchment/jobs":{"post":{"tags":["Catchment planning"],"summary":"Queue a durable catchment calculation","operationId":"submit_v1_catchment_jobs_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Definition"}}},"required":true},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}]}},"/v1/catchment/jobs/{jobid}":{"get":{"tags":["Catchment planning"],"summary":"Status","operationId":"status_v1_catchment_jobs__jobid__get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"jobid","in":"path","required":true,"schema":{"type":"string","title":"Jobid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/plans":{"get":{"tags":["Subscriptions"],"summary":"Plans","operationId":"plans_plans_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/account/billing":{"get":{"tags":["Subscriptions"],"summary":"Billing","operationId":"billing_account_billing_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/account/payments":{"post":{"tags":["Subscriptions"],"summary":"Order","operationId":"order_account_payments_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Order"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/account/payments/{pid}/receipt":{"put":{"tags":["Subscriptions"],"summary":"Upload","operationId":"upload_account_payments__pid__receipt_put","parameters":[{"name":"pid","in":"path","required":true,"schema":{"type":"string","title":"Pid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Subscriptions"],"summary":"Download","operationId":"download_account_payments__pid__receipt_get","parameters":[{"name":"pid","in":"path","required":true,"schema":{"type":"string","title":"Pid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/account/payments/{pid}":{"delete":{"tags":["Subscriptions"],"summary":"Cancel","operationId":"cancel_account_payments__pid__delete","parameters":[{"name":"pid","in":"path","required":true,"schema":{"type":"string","title":"Pid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/api/billing":{"get":{"tags":["Administration"],"summary":"Admin Billing","operationId":"admin_billing_admin_api_billing_get","parameters":[{"name":"state","in":"query","required":false,"schema":{"enum":["all","pending","approved","rejected","awaiting_receipt"],"type":"string","default":"pending","title":"State"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/api/payment-methods/{mid}":{"put":{"tags":["Administration"],"summary":"Method","operationId":"method_admin_api_payment_methods__mid__put","parameters":[{"name":"mid","in":"path","required":true,"schema":{"type":"string","title":"Mid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Method"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/api/billing-settings":{"put":{"tags":["Administration"],"summary":"Enable","operationId":"enable_admin_api_billing_settings_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Enabled"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/api/plans/{pid}":{"put":{"tags":["Administration"],"summary":"Plan","operationId":"plan_admin_api_plans__pid__put","parameters":[{"name":"pid","in":"path","required":true,"schema":{"type":"string","title":"Pid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Plan"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/api/payments/{pid}/review":{"post":{"tags":["Administration"],"summary":"Review","operationId":"review_admin_api_payments__pid__review_post","parameters":[{"name":"pid","in":"path","required":true,"schema":{"type":"string","title":"Pid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/subscriptions__install___locals___Review"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/geocoding/encode":{"get":{"tags":["Geocoding"],"summary":"Assign a Location IQ address","operationId":"encode_v1_geocoding_encode_get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"latitude","in":"query","required":true,"schema":{"type":"number","maximum":90,"minimum":-90,"title":"Latitude"}},{"name":"longitude","in":"query","required":true,"schema":{"type":"number","maximum":180,"minimum":-180,"title":"Longitude"}},{"name":"address_format","in":"query","required":false,"schema":{"enum":["short","legacy"],"type":"string","default":"short","title":"Address Format"}},{"name":"include_context","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Context"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/geocoding/decode":{"get":{"tags":["Geocoding"],"summary":"Interpret a Location IQ address","operationId":"decode_v1_geocoding_decode_get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"address","in":"query","required":true,"schema":{"type":"string","minLength":7,"maxLength":17,"title":"Address"}},{"name":"address_format","in":"query","required":false,"schema":{"enum":["short","legacy"],"type":"string","default":"short","title":"Address Format"}},{"name":"include_context","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Context"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/public/location":{"post":{"tags":["Public preview"],"summary":"One location preview; ten daily lookups per public network","operationId":"location_public_location_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Location"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/public/allowance":{"post":{"tags":["Public preview"],"summary":"Check remaining public lookups without consuming one","operationId":"allowance_public_allowance_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Body"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/account/sandbox":{"get":{"tags":["Developer sandbox"],"summary":"Status","operationId":"status_account_sandbox_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/account/sandbox/keys":{"post":{"tags":["Developer sandbox"],"summary":"Create","operationId":"create_account_sandbox_keys_post","responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"delete":{"tags":["Developer sandbox"],"summary":"Revoke","operationId":"revoke_account_sandbox_keys_delete","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/sandbox/v1/reverse":{"get":{"tags":["Developer sandbox"],"summary":"Bounded Tanzania coordinate context with a sandbox credential","operationId":"lookup_sandbox_v1_reverse_get","parameters":[{"name":"longitude","in":"query","required":true,"schema":{"type":"number","maximum":180,"minimum":-180,"title":"Longitude"}},{"name":"latitude","in":"query","required":true,"schema":{"type":"number","maximum":90,"minimum":-90,"title":"Latitude"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/public/journey/consent":{"post":{"tags":["Account"],"summary":"Consent","operationId":"consent_public_journey_consent_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Start"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/public/journey/event":{"post":{"tags":["Account"],"summary":"Track","operationId":"track_public_journey_event_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Track"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/api/growth":{"get":{"tags":["Administration"],"summary":"Metrics","operationId":"metrics_admin_api_growth_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":90,"minimum":1,"default":30,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"Consent":{"properties":{"accept_ip":{"type":"boolean","title":"Accept Ip"}},"additionalProperties":false,"type":"object","required":["accept_ip"],"title":"Consent"},"Credentials":{"properties":{"email":{"type":"string","maxLength":254,"minLength":5,"title":"Email"},"password":{"type":"string","maxLength":128,"minLength":12,"title":"Password"},"accept_ip":{"type":"boolean","title":"Accept Ip","default":false}},"additionalProperties":false,"type":"object","required":["email","password"],"title":"Credentials"},"Definition":{"properties":{"longitude":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Longitude"},"latitude":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Latitude"},"mode":{"type":"string","enum":["radius","driving"],"title":"Mode","default":"driving"},"radius_m":{"type":"number","maximum":10000.0,"minimum":100.0,"title":"Radius M","default":5000},"travel_minutes":{"type":"number","maximum":30.0,"minimum":1.0,"title":"Travel Minutes","default":20},"access_buffer_m":{"type":"number","maximum":500.0,"minimum":50.0,"title":"Access Buffer M","default":200},"minimum_confidence":{"type":"number","maximum":1.0,"minimum":0.65,"title":"Minimum Confidence","default":0.75},"include_geometry":{"type":"boolean","title":"Include Geometry","default":true}},"additionalProperties":false,"type":"object","required":["longitude","latitude"],"title":"Definition"},"Enabled":{"properties":{"accepting_payments":{"type":"boolean","title":"Accepting Payments"}},"additionalProperties":false,"type":"object","required":["accepting_payments"],"title":"Enabled"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"KeyRequest":{"properties":{"name":{"type":"string","maxLength":80,"minLength":2,"title":"Name"},"scopes":{"items":{"type":"string","enum":["reverse","landmarks","areas","roads","traffic","geocoding"]},"type":"array","maxItems":6,"minItems":1,"title":"Scopes"},"expires_days":{"type":"integer","maximum":365.0,"minimum":1.0,"title":"Expires Days","default":30},"server_ip":{"anyOf":[{"type":"string","maxLength":45},{"type":"null"}],"title":"Server Ip"}},"additionalProperties":false,"type":"object","required":["name"],"title":"KeyRequest"},"Location":{"properties":{"longitude":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Longitude"},"latitude":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Latitude"},"accept_ip":{"type":"boolean","title":"Accept Ip","default":false}},"additionalProperties":false,"type":"object","required":["longitude","latitude"],"title":"Location"},"Method":{"properties":{"name":{"type":"string","maxLength":100,"minLength":2,"title":"Name"},"instructions":{"type":"string","maxLength":2000,"minLength":5,"title":"Instructions"},"active":{"type":"boolean","title":"Active","default":true}},"additionalProperties":false,"type":"object","required":["name","instructions"],"title":"Method"},"Order":{"properties":{"plan_id":{"type":"string","maxLength":40,"title":"Plan Id"},"period":{"type":"string","enum":["monthly","annual"],"title":"Period"},"method_id":{"type":"string","maxLength":40,"title":"Method Id"},"reference":{"type":"string","maxLength":100,"minLength":4,"pattern":"^[A-Za-z0-9 ._/-]+$","title":"Reference"}},"additionalProperties":false,"type":"object","required":["plan_id","period","method_id","reference"],"title":"Order"},"Plan":{"properties":{"name":{"type":"string","maxLength":60,"minLength":2,"title":"Name"},"monthly_tzs":{"type":"integer","maximum":100000000.0,"minimum":1.0,"title":"Monthly Tzs"},"annual_tzs":{"type":"integer","maximum":1000000000.0,"minimum":1.0,"title":"Annual Tzs"},"requests_per_month":{"type":"integer","maximum":10000000.0,"minimum":1.0,"title":"Requests Per Month"},"catchments_per_month":{"type":"integer","maximum":100000.0,"minimum":0.0,"title":"Catchments Per Month"},"description":{"type":"string","maxLength":250,"title":"Description"}},"additionalProperties":false,"type":"object","required":["name","monthly_tzs","annual_tzs","requests_per_month","catchments_per_month","description"],"title":"Plan"},"PresetRequest":{"properties":{"name":{"type":"string","maxLength":80,"minLength":2,"title":"Name"},"query":{"$ref":"#/components/schemas/SpatialQuery"}},"additionalProperties":false,"type":"object","required":["name","query"],"title":"PresetRequest"},"Price":{"properties":{"price_per_1000":{"anyOf":[{"type":"number","maximum":1000000000.0,"minimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,10}|(?=[\\d.]{1,17}0*$)\\d{0,10}\\.\\d{0,6}0*$)"},{"type":"null"}],"title":"Price Per 1000"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","title":"Currency","default":"TZS"}},"additionalProperties":false,"type":"object","title":"Price"},"Registration":{"properties":{"email":{"type":"string","maxLength":254,"minLength":5,"title":"Email"},"password":{"type":"string","maxLength":128,"minLength":12,"title":"Password"},"accept_ip":{"type":"boolean","title":"Accept Ip","default":false},"name":{"type":"string","maxLength":80,"minLength":2,"title":"Name"}},"additionalProperties":false,"type":"object","required":["email","password","name"],"title":"Registration"},"ServerIP":{"properties":{"ip_address":{"type":"string","maxLength":45,"minLength":3,"title":"Ip Address"}},"additionalProperties":false,"type":"object","required":["ip_address"],"title":"ServerIP"},"Setup":{"properties":{"token":{"type":"string","maxLength":128,"minLength":32,"title":"Token"},"password":{"type":"string","maxLength":128,"minLength":12,"title":"Password"},"accept_ip":{"type":"boolean","title":"Accept Ip"}},"additionalProperties":false,"type":"object","required":["token","password","accept_ip"],"title":"Setup"},"SpatialQuery":{"properties":{"dataset":{"type":"string","enum":["landmarks","areas","roads","traffic","abattoirs","boreholes","cattle_dips","cemeteries","markets","public_buildings","health_facilities","education_facilities","religious_buildings","milling_machines","dams","survey_facilities","buildings","network_roads"],"title":"Dataset","default":"landmarks"},"filters":{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"object","maxProperties":10,"title":"Filters"},"fields":{"anyOf":[{"items":{"type":"string"},"type":"array","maxItems":30,"minItems":1},{"type":"null"}],"title":"Fields"},"search":{"anyOf":[{"type":"string","maxLength":100,"minLength":1},{"type":"null"}],"title":"Search"},"bbox":{"anyOf":[{"prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"}],"type":"array","maxItems":4,"minItems":4},{"type":"null"}],"title":"Bbox"},"area_id":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Area Id"},"census_boundary_id":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Census Boundary Id","description":"Official 2022 boundary ID; applies to landmark datasets only."},"limit":{"type":"integer","maximum":200.0,"minimum":1.0,"title":"Limit","default":25},"offset":{"type":"integer","maximum":100000.0,"minimum":0.0,"title":"Offset","default":0},"after_id":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"After Id","description":"Indexed cursor: continue after this record ID to page through an entire dataset."},"format":{"type":"string","enum":["json","geojson"],"title":"Format","default":"json"},"include_geometry":{"type":"boolean","title":"Include Geometry","default":false}},"additionalProperties":false,"type":"object","title":"SpatialQuery"},"Start":{"properties":{"consent":{"type":"boolean","title":"Consent"},"source":{"type":"string","enum":["direct","search","social","referral","campaign","unknown"],"title":"Source","default":"unknown"},"page":{"type":"string","enum":["landing","guide","pricing","sandbox","dashboard"],"title":"Page","default":"landing"}},"additionalProperties":false,"type":"object","required":["consent"],"title":"Start"},"Status":{"properties":{"active":{"type":"boolean","title":"Active"}},"additionalProperties":false,"type":"object","required":["active"],"title":"Status"},"Track":{"properties":{"event":{"type":"string","enum":["landing_view","guide_view","pricing_view","sandbox_view","dashboard_view","signup_click","demo_success","sandbox_click"],"title":"Event"}},"additionalProperties":false,"type":"object","required":["event"],"title":"Track"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"server_ip__Review":{"properties":{"decision":{"type":"string","enum":["approve","reject","disable"],"title":"Decision"},"revision":{"type":"integer","minimum":1.0,"title":"Revision"},"note":{"type":"string","maxLength":500,"minLength":5,"title":"Note"}},"additionalProperties":false,"type":"object","required":["decision","revision","note"],"title":"Review"},"subscriptions__install___locals___Review":{"properties":{"decision":{"type":"string","enum":["approve","reject"],"title":"Decision"},"verified_amount_tzs":{"type":"integer","maximum":1000000000.0,"minimum":0.0,"title":"Verified Amount Tzs","default":0},"verified_reference":{"type":"string","maxLength":100,"pattern":"^[A-Za-z0-9 ._/-]*$","title":"Verified Reference","default":""},"note":{"type":"string","maxLength":1000,"minLength":5,"title":"Note"}},"additionalProperties":false,"type":"object","required":["decision","note"],"title":"Review"}},"securitySchemes":{"APIKeyHeader":{"type":"apiKey","in":"header","name":"X-API-Key"},"HTTPBearer":{"type":"http","scheme":"bearer"}}}}