{"openapi":"3.1.0","info":{"title":"WakeAtlas public research API","version":"1.0.0"},"paths":{"/api/catalogue/location/{mmsi}":{"get":{"summary":"Location","operationId":"location_api_catalogue_location__mmsi__get","parameters":[{"name":"mmsi","in":"path","required":true,"schema":{"type":"string","pattern":"^\\d{9}$","title":"Mmsi"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/catalogue":{"get":{"summary":"Catalogue","operationId":"catalogue_api_catalogue_get","parameters":[{"name":"search","in":"query","required":false,"schema":{"type":"string","maxLength":100,"default":"","title":"Search"}},{"name":"vessel_type","in":"query","required":false,"schema":{"type":"string","maxLength":150,"default":"","title":"Vessel Type"}},{"name":"photos_only","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Photos Only"}},{"name":"min_fields","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":0,"default":0,"title":"Min Fields"}},{"name":"sort","in":"query","required":false,"schema":{"enum":["completeness","name"],"type":"string","default":"completeness","title":"Sort"}},{"name":"specification","in":"query","required":false,"schema":{"type":"string","maxLength":40,"default":"","title":"Specification"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","maximum":1000000,"minimum":0,"default":0,"title":"Offset"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":60,"minimum":1,"default":24,"title":"Limit"}},{"name":"shared_identity","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Shared Identity"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/viewport":{"get":{"summary":"Viewport","operationId":"viewport_api_viewport_get","parameters":[{"name":"west","in":"query","required":false,"schema":{"type":"number","maximum":180,"minimum":-180,"default":-180,"title":"West"}},{"name":"south","in":"query","required":false,"schema":{"type":"number","maximum":90,"minimum":-90,"default":-90,"title":"South"}},{"name":"east","in":"query","required":false,"schema":{"type":"number","maximum":180,"minimum":-180,"default":180,"title":"East"}},{"name":"north","in":"query","required":false,"schema":{"type":"number","maximum":90,"minimum":-90,"default":90,"title":"North"}},{"name":"detail","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Detail"}},{"name":"individual","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Individual"}},{"name":"at","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"At"}},{"name":"search","in":"query","required":false,"schema":{"type":"string","maxLength":100,"default":"","title":"Search"}},{"name":"provider","in":"query","required":false,"schema":{"type":"string","maxLength":100,"default":"","title":"Provider"}},{"name":"ship_type","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":99,"minimum":0},{"type":"null"}],"title":"Ship Type"}},{"name":"ship_category","in":"query","required":false,"schema":{"enum":["","fishing","tug","sailing","pleasure","passenger","cargo","tanker","high_speed"],"type":"string","default":"","title":"Ship Category"}},{"name":"max_age_hours","in":"query","required":false,"schema":{"anyOf":[{"type":"number","maximum":87600,"exclusiveMinimum":0},{"type":"null"}],"title":"Max Age Hours"}},{"name":"center_lon","in":"query","required":false,"schema":{"anyOf":[{"type":"number","maximum":180,"minimum":-180},{"type":"null"}],"title":"Center Lon"}},{"name":"center_lat","in":"query","required":false,"schema":{"anyOf":[{"type":"number","maximum":90,"minimum":-90},{"type":"null"}],"title":"Center Lat"}},{"name":"radius_km","in":"query","required":false,"schema":{"anyOf":[{"type":"number","maximum":50,"exclusiveMinimum":0},{"type":"null"}],"title":"Radius Km"}},{"name":"min_speed","in":"query","required":false,"schema":{"anyOf":[{"type":"number","maximum":102,"minimum":0},{"type":"null"}],"title":"Min Speed"}},{"name":"max_speed","in":"query","required":false,"schema":{"anyOf":[{"type":"number","maximum":102,"minimum":0},{"type":"null"}],"title":"Max Speed"}},{"name":"cluster_columns","in":"query","required":false,"schema":{"type":"integer","maximum":48,"minimum":4,"default":24,"title":"Cluster Columns"}},{"name":"cluster_rows","in":"query","required":false,"schema":{"type":"integer","maximum":32,"minimum":4,"default":16,"title":"Cluster Rows"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/vessels/{mmsi}/profile":{"get":{"summary":"Profile","operationId":"profile_api_vessels__mmsi__profile_get","parameters":[{"name":"mmsi","in":"path","required":true,"schema":{"type":"string","pattern":"^\\d{9}$","title":"Mmsi"}},{"name":"at","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"At"}},{"name":"record_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}],"title":"Record Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/ports":{"get":{"summary":"Ports","operationId":"ports_api_ports_get","parameters":[{"name":"search","in":"query","required":false,"schema":{"type":"string","maxLength":100,"default":"","title":"Search"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":30,"title":"Limit"}},{"name":"country","in":"query","required":false,"schema":{"type":"string","maxLength":100,"default":"","title":"Country"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/ports/{port_id}":{"get":{"summary":"Port Detail","operationId":"port_detail_api_ports__port_id__get","parameters":[{"name":"port_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":100,"title":"Port Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/health":{"get":{"summary":"Health","operationId":"health_api_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/wreck-research/{wreck_id}/saved":{"get":{"summary":"Saved Research","operationId":"saved_research_api_wreck_research__wreck_id__saved_get","parameters":[{"name":"wreck_id","in":"path","required":true,"schema":{"type":"string","title":"Wreck Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"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"}}},"servers":[{"url":"https://wakeatlas.uk"}]}