{ "components": { "schemas": { "ActivityOut": { "properties": { "activity_score": { "title": "Activity Score", "type": "integer" }, "average_weight_g": { "title": "Average Weight G", "type": "integer" }, "best_bait": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Best Bait" }, "catches": { "title": "Catches", "type": "integer" }, "confidence_score": { "title": "Confidence Score", "type": "integer" }, "coordinate_precision": { "title": "Coordinate Precision", "type": "string" }, "coordinate_sources": { "items": { "type": "string" }, "title": "Coordinate Sources", "type": "array" }, "explanation": { "title": "Explanation", "type": "string" }, "fish": { "title": "Fish", "type": "string" }, "fish_slug": { "title": "Fish Slug", "type": "string" }, "last_confirmed_at": { "format": "date-time", "title": "Last Confirmed At", "type": "string" }, "max_weight_g": { "title": "Max Weight G", "type": "integer" }, "sources": { "items": { "type": "string" }, "title": "Sources", "type": "array" }, "spot_id": { "format": "uuid", "title": "Spot Id", "type": "string" }, "unique_players": { "title": "Unique Players", "type": "integer" }, "waterbody": { "title": "Waterbody", "type": "string" }, "waterbody_slug": { "title": "Waterbody Slug", "type": "string" }, "x": { "title": "X", "type": "integer" }, "y": { "title": "Y", "type": "integer" } }, "required": [ "spot_id", "waterbody_slug", "waterbody", "fish_slug", "fish", "x", "y", "best_bait", "catches", "unique_players", "average_weight_g", "max_weight_g", "last_confirmed_at", "activity_score", "confidence_score", "explanation", "sources", "coordinate_precision", "coordinate_sources" ], "title": "ActivityOut", "type": "object" }, "AdminCatchReportOut": { "properties": { "bait": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Bait" }, "comment": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Comment" }, "coordinates": { "title": "Coordinates", "type": "string" }, "fish": { "title": "Fish", "type": "string" }, "id": { "format": "uuid", "title": "Id", "type": "string" }, "moderation_status": { "title": "Moderation Status", "type": "string" }, "moderation_version": { "title": "Moderation Version", "type": "integer" }, "player_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Player Name" }, "reported_at": { "format": "date-time", "title": "Reported At", "type": "string" }, "screenshot_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Screenshot Url" }, "waterbody": { "title": "Waterbody", "type": "string" }, "weight_g": { "title": "Weight G", "type": "integer" } }, "required": [ "id", "fish", "waterbody", "coordinates", "weight_g", "bait", "player_name", "reported_at", "moderation_status", "comment", "screenshot_url", "moderation_version" ], "title": "AdminCatchReportOut", "type": "object" }, "AdminMediaDecision": { "properties": { "note": { "maxLength": 1000, "minLength": 1, "title": "Note", "type": "string" } }, "required": [ "note" ], "title": "AdminMediaDecision", "type": "object" }, "AdminMediaDerivativeOut": { "properties": { "format": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Format" }, "height": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Height" }, "role": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Role" }, "width": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Width" } }, "required": [ "role", "format", "width", "height" ], "title": "AdminMediaDerivativeOut", "type": "object" }, "AdminMediaReviewOut": { "properties": { "asset_url": { "title": "Asset Url", "type": "string" }, "content_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Content Type" }, "derivatives": { "items": { "$ref": "#/components/schemas/AdminMediaDerivativeOut" }, "title": "Derivatives", "type": "array" }, "duplicate_of": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Duplicate Of" }, "entity_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Entity Key" }, "entity_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Entity Type" }, "height": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Height" }, "id": { "title": "Id", "type": "string" }, "image_url": { "title": "Image Url", "type": "string" }, "label": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Label" }, "source_system": { "title": "Source System", "type": "string" }, "source_url": { "title": "Source Url", "type": "string" }, "status": { "title": "Status", "type": "string" }, "supersedes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Supersedes" }, "width": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Width" } }, "required": [ "id", "status", "entity_type", "entity_key", "label", "width", "height", "content_type", "image_url", "asset_url", "source_system", "source_url", "duplicate_of", "supersedes", "derivatives" ], "title": "AdminMediaReviewOut", "type": "object" }, "AdminMediaRollback": { "properties": { "asset_url": { "maxLength": 2000, "minLength": 1, "title": "Asset Url", "type": "string" }, "note": { "maxLength": 1000, "minLength": 1, "title": "Note", "type": "string" } }, "required": [ "note", "asset_url" ], "title": "AdminMediaRollback", "type": "object" }, "AdminModerationHistoryOut": { "properties": { "action": { "title": "Action", "type": "string" }, "decided_at": { "format": "date-time", "title": "Decided At", "type": "string" }, "entity_id": { "format": "uuid", "title": "Entity Id", "type": "string" }, "entity_type": { "title": "Entity Type", "type": "string" }, "moderator": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Moderator" }, "reason": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Reason" }, "requires_confirmation": { "default": true, "title": "Requires Confirmation", "type": "boolean" } }, "required": [ "entity_type", "entity_id", "decided_at", "action", "moderator", "reason" ], "title": "AdminModerationHistoryOut", "type": "object" }, "AdminSourceStatusOut": { "properties": { "backoff_recommended": { "title": "Backoff Recommended", "type": "boolean" }, "cooldown_seconds": { "title": "Cooldown Seconds", "type": "integer" }, "last_started_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "title": "Last Started At" }, "last_success_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "title": "Last Success At" }, "name": { "title": "Name", "type": "string" }, "next_allowed_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "title": "Next Allowed At" }, "recent_failures_24h": { "title": "Recent Failures 24H", "type": "integer" }, "source_system": { "title": "Source System", "type": "string" }, "status": { "title": "Status", "type": "string" } }, "required": [ "source_system", "name", "status", "last_started_at", "last_success_at", "next_allowed_at", "cooldown_seconds", "recent_failures_24h", "backoff_recommended" ], "title": "AdminSourceStatusOut", "type": "object" }, "BaitOut": { "properties": { "id": { "format": "uuid", "title": "Id", "type": "string" }, "kind": { "title": "Kind", "type": "string" }, "name": { "title": "Name", "type": "string" }, "normalized_name": { "title": "Normalized Name", "type": "string" } }, "required": [ "id", "name", "normalized_name", "kind" ], "title": "BaitOut", "type": "object" }, "Body_add_screenshot_api_v1_catch_reports__report_id__screenshot_post": { "properties": { "screenshot": { "format": "binary", "title": "Screenshot", "type": "string" } }, "required": [ "screenshot" ], "title": "Body_add_screenshot_api_v1_catch_reports__report_id__screenshot_post", "type": "object" }, "CatchOut": { "properties": { "bait": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Bait" }, "caught_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "title": "Caught At" }, "fish": { "title": "Fish", "type": "string" }, "id": { "format": "uuid", "title": "Id", "type": "string" }, "player_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Player Name" }, "reported_at": { "format": "date-time", "title": "Reported At", "type": "string" }, "retrieve_method": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Retrieve Method" }, "retrieve_speed": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Retrieve Speed" }, "source_system": { "title": "Source System", "type": "string" }, "source_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source Url" }, "weight_g": { "title": "Weight G", "type": "integer" } }, "required": [ "id", "fish", "weight_g", "bait", "player_name", "caught_at", "reported_at", "retrieve_method", "retrieve_speed", "source_system", "source_url" ], "title": "CatchOut", "type": "object" }, "CatchReportAccepted": { "properties": { "id": { "format": "uuid", "title": "Id", "type": "string" }, "idempotent": { "default": false, "title": "Idempotent", "type": "boolean" }, "moderation_status": { "title": "Moderation Status", "type": "string" }, "screenshot_upload_token": { "title": "Screenshot Upload Token", "type": "string" } }, "required": [ "id", "moderation_status", "screenshot_upload_token" ], "title": "CatchReportAccepted", "type": "object" }, "CatchReportCreate": { "properties": { "bait_name": { "anyOf": [ { "maxLength": 200, "type": "string" }, { "type": "null" } ], "title": "Bait Name" }, "caught_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "title": "Caught At" }, "comment": { "anyOf": [ { "maxLength": 1000, "type": "string" }, { "type": "null" } ], "title": "Comment" }, "fish_slug": { "title": "Fish Slug", "type": "string" }, "fishing_method": { "anyOf": [ { "maxLength": 50, "type": "string" }, { "type": "null" } ], "title": "Fishing Method" }, "player_name": { "anyOf": [ { "maxLength": 100, "type": "string" }, { "type": "null" } ], "title": "Player Name" }, "retrieve_method": { "anyOf": [ { "maxLength": 100, "type": "string" }, { "type": "null" } ], "title": "Retrieve Method" }, "retrieve_speed": { "anyOf": [ { "maximum": 100.0, "minimum": 0.0, "type": "integer" }, { "type": "null" } ], "title": "Retrieve Speed" }, "rig_type": { "anyOf": [ { "maxLength": 100, "type": "string" }, { "type": "null" } ], "title": "Rig Type" }, "source_url": { "anyOf": [ { "maxLength": 1000, "type": "string" }, { "type": "null" } ], "title": "Source Url" }, "waterbody_slug": { "title": "Waterbody Slug", "type": "string" }, "website": { "default": "", "maxLength": 200, "title": "Website", "type": "string" }, "weight_g": { "exclusiveMinimum": 0.0, "maximum": 3000000.0, "title": "Weight G", "type": "integer" }, "x": { "maximum": 10000.0, "minimum": -10000.0, "title": "X", "type": "integer" }, "y": { "maximum": 10000.0, "minimum": -10000.0, "title": "Y", "type": "integer" } }, "required": [ "fish_slug", "waterbody_slug", "x", "y", "weight_g" ], "title": "CatchReportCreate", "type": "object" }, "CatchReportCreated": { "properties": { "id": { "format": "uuid", "title": "Id", "type": "string" }, "moderation_status": { "title": "Moderation Status", "type": "string" } }, "required": [ "id", "moderation_status" ], "title": "CatchReportCreated", "type": "object" }, "ExternalAliasSuggestionOut": { "properties": { "fish_slug": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Fish Slug" }, "waterbody_slug": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Waterbody Slug" } }, "required": [ "fish_slug", "waterbody_slug" ], "title": "ExternalAliasSuggestionOut", "type": "object" }, "ExternalObservationAction": { "properties": { "expected_version": { "minimum": 0.0, "title": "Expected Version", "type": "integer" } }, "required": [ "expected_version" ], "title": "ExternalObservationAction", "type": "object" }, "ExternalObservationDecision": { "properties": { "expected_version": { "minimum": 0.0, "title": "Expected Version", "type": "integer" }, "reason": { "maxLength": 1000, "minLength": 1, "title": "Reason", "type": "string" } }, "required": [ "reason", "expected_version" ], "title": "ExternalObservationDecision", "type": "object" }, "ExternalObservationMapping": { "properties": { "expected_version": { "minimum": 0.0, "title": "Expected Version", "type": "integer" }, "fish_slug": { "title": "Fish Slug", "type": "string" }, "note": { "anyOf": [ { "maxLength": 1000, "type": "string" }, { "type": "null" } ], "title": "Note" }, "waterbody_slug": { "title": "Waterbody Slug", "type": "string" } }, "required": [ "fish_slug", "waterbody_slug", "expected_version" ], "title": "ExternalObservationMapping", "type": "object" }, "ExternalObservationOut": { "properties": { "catch_report_id": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "title": "Catch Report Id" }, "first_seen_at": { "format": "date-time", "title": "First Seen At", "type": "string" }, "fish_external_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Fish External Id" }, "fish_name": { "title": "Fish Name", "type": "string" }, "fish_slug": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Fish Slug" }, "id": { "format": "uuid", "title": "Id", "type": "string" }, "last_seen_at": { "format": "date-time", "title": "Last Seen At", "type": "string" }, "missing_fields": { "items": { "type": "string" }, "title": "Missing Fields", "type": "array" }, "moderation_version": { "title": "Moderation Version", "type": "integer" }, "published_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "title": "Published At" }, "review_note": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Review Note" }, "reviewed_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "title": "Reviewed At" }, "source_check_status": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source Check Status" }, "source_checked_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "title": "Source Checked At" }, "source_external_id": { "title": "Source External Id", "type": "string" }, "source_payload": { "additionalProperties": { "anyOf": [ { "type": "string" }, { "type": "integer" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" } ] }, "title": "Source Payload", "type": "object" }, "source_system": { "title": "Source System", "type": "string" }, "source_url": { "title": "Source Url", "type": "string" }, "status": { "title": "Status", "type": "string" }, "waterbody_external_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Waterbody External Id" }, "waterbody_name": { "title": "Waterbody Name", "type": "string" }, "waterbody_slug": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Waterbody Slug" }, "weight_g": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Weight G" }, "x": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "X" }, "y": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Y" } }, "required": [ "id", "source_system", "source_external_id", "source_url", "fish_name", "fish_external_id", "waterbody_name", "waterbody_external_id", "x", "y", "weight_g", "published_at", "first_seen_at", "last_seen_at", "reviewed_at", "status", "fish_slug", "waterbody_slug", "catch_report_id", "review_note", "missing_fields", "source_payload", "moderation_version", "source_check_status", "source_checked_at" ], "title": "ExternalObservationOut", "type": "object" }, "ExternalObservationPublished": { "properties": { "catch_report_id": { "format": "uuid", "title": "Catch Report Id", "type": "string" }, "observation_id": { "format": "uuid", "title": "Observation Id", "type": "string" }, "status": { "title": "Status", "type": "string" } }, "required": [ "observation_id", "catch_report_id", "status" ], "title": "ExternalObservationPublished", "type": "object" }, "FishOut": { "properties": { "id": { "format": "uuid", "title": "Id", "type": "string" }, "name_ru": { "title": "Name Ru", "type": "string" }, "slug": { "title": "Slug", "type": "string" }, "trophy_weight_g": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Trophy Weight G" } }, "required": [ "id", "slug", "name_ru", "trophy_weight_g" ], "title": "FishOut", "type": "object" }, "HTTPValidationError": { "properties": { "detail": { "items": { "$ref": "#/components/schemas/ValidationError" }, "title": "Detail", "type": "array" } }, "title": "HTTPValidationError", "type": "object" }, "ImportRunOut": { "properties": { "error_summary": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Error Summary" }, "finished_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "title": "Finished At" }, "id": { "format": "uuid", "title": "Id", "type": "string" }, "not_modified": { "title": "Not Modified", "type": "boolean" }, "response_bytes": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Response Bytes" }, "response_content_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Response Content Type" }, "response_etag": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Response Etag" }, "response_last_modified": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Response Last Modified" }, "response_status": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Response Status" }, "rows_created": { "title": "Rows Created", "type": "integer" }, "rows_seen": { "title": "Rows Seen", "type": "integer" }, "rows_updated": { "title": "Rows Updated", "type": "integer" }, "source_url": { "title": "Source Url", "type": "string" }, "started_at": { "format": "date-time", "title": "Started At", "type": "string" }, "status": { "title": "Status", "type": "string" } }, "required": [ "id", "started_at", "finished_at", "status", "source_url", "rows_seen", "rows_created", "rows_updated", "error_summary", "response_status", "response_etag", "response_last_modified", "response_content_type", "response_bytes", "not_modified" ], "title": "ImportRunOut", "type": "object" }, "ImportRunPublicOut": { "properties": { "finished_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "title": "Finished At" }, "id": { "format": "uuid", "title": "Id", "type": "string" }, "not_modified": { "title": "Not Modified", "type": "boolean" }, "rows_created": { "title": "Rows Created", "type": "integer" }, "rows_seen": { "title": "Rows Seen", "type": "integer" }, "rows_updated": { "title": "Rows Updated", "type": "integer" }, "started_at": { "format": "date-time", "title": "Started At", "type": "string" }, "status": { "title": "Status", "type": "string" } }, "required": [ "id", "started_at", "finished_at", "status", "rows_seen", "rows_created", "rows_updated", "not_modified" ], "title": "ImportRunPublicOut", "type": "object" }, "ModerationStatus": { "enum": [ "pending", "approved", "rejected" ], "title": "ModerationStatus", "type": "string" }, "ModerationUpdate": { "properties": { "expected_version": { "minimum": 0.0, "title": "Expected Version", "type": "integer" }, "reason": { "anyOf": [ { "maxLength": 1000, "type": "string" }, { "type": "null" } ], "title": "Reason" }, "status": { "title": "Status", "type": "string" } }, "required": [ "status", "expected_version" ], "title": "ModerationUpdate", "type": "object" }, "OfficialRecordOut": { "properties": { "bait": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Bait" }, "category": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Category" }, "fish": { "title": "Fish", "type": "string" }, "id": { "format": "uuid", "title": "Id", "type": "string" }, "player_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Player Name" }, "record_date": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "title": "Record Date" }, "region": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Region" }, "source_system": { "default": "rf4-official", "title": "Source System", "type": "string" }, "source_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source Url" }, "waterbody": { "title": "Waterbody", "type": "string" }, "weight_g": { "title": "Weight G", "type": "integer" } }, "required": [ "id", "fish", "weight_g", "waterbody", "bait", "player_name", "record_date", "category", "region", "source_url" ], "title": "OfficialRecordOut", "type": "object" }, "PaginatedActivityOut": { "properties": { "items": { "items": { "$ref": "#/components/schemas/ActivityOut" }, "title": "Items", "type": "array" }, "limit": { "title": "Limit", "type": "integer" }, "offset": { "title": "Offset", "type": "integer" }, "total": { "title": "Total", "type": "integer" } }, "required": [ "items", "total", "limit", "offset" ], "title": "PaginatedActivityOut", "type": "object" }, "PaginatedOfficialRecordOut": { "properties": { "items": { "items": { "$ref": "#/components/schemas/OfficialRecordOut" }, "title": "Items", "type": "array" }, "limit": { "title": "Limit", "type": "integer" }, "offset": { "title": "Offset", "type": "integer" }, "total": { "title": "Total", "type": "integer" } }, "required": [ "items", "total", "limit", "offset" ], "title": "PaginatedOfficialRecordOut", "type": "object" }, "PublicObservationOut": { "properties": { "fish_name": { "title": "Fish Name", "type": "string" }, "id": { "format": "uuid", "title": "Id", "type": "string" }, "last_seen_at": { "format": "date-time", "title": "Last Seen At", "type": "string" }, "missing_fields": { "items": { "type": "string" }, "title": "Missing Fields", "type": "array" }, "quality": { "title": "Quality", "type": "string" }, "source_name": { "title": "Source Name", "type": "string" }, "source_system": { "title": "Source System", "type": "string" }, "source_url": { "title": "Source Url", "type": "string" }, "waterbody_name": { "title": "Waterbody Name", "type": "string" }, "weight_g": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Weight G" }, "x": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "X" }, "y": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Y" } }, "required": [ "id", "source_system", "source_name", "source_url", "fish_name", "waterbody_name", "x", "y", "weight_g", "last_seen_at", "missing_fields", "quality" ], "title": "PublicObservationOut", "type": "object" }, "SourceStatusOut": { "properties": { "last_started_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "title": "Last Started At" }, "last_success_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "title": "Last Success At" }, "name": { "title": "Name", "type": "string" }, "observations": { "title": "Observations", "type": "integer" }, "source_system": { "title": "Source System", "type": "string" }, "status": { "title": "Status", "type": "string" } }, "required": [ "source_system", "name", "status", "last_started_at", "last_success_at", "observations" ], "title": "SourceStatusOut", "type": "object" }, "SpotOut": { "properties": { "catches_24h": { "title": "Catches 24H", "type": "integer" }, "catches_3d": { "title": "Catches 3D", "type": "integer" }, "catches_7d": { "title": "Catches 7D", "type": "integer" }, "coordinate_precision": { "title": "Coordinate Precision", "type": "string" }, "coordinate_sources": { "items": { "type": "string" }, "title": "Coordinate Sources", "type": "array" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "id": { "format": "uuid", "title": "Id", "type": "string" }, "top_baits": { "items": { "type": "string" }, "title": "Top Baits", "type": "array" }, "waterbody": { "title": "Waterbody", "type": "string" }, "waterbody_slug": { "title": "Waterbody Slug", "type": "string" }, "x": { "title": "X", "type": "integer" }, "y": { "title": "Y", "type": "integer" } }, "required": [ "id", "waterbody_slug", "waterbody", "x", "y", "description", "catches_24h", "catches_3d", "catches_7d", "top_baits", "coordinate_precision", "coordinate_sources" ], "title": "SpotOut", "type": "object" }, "ValidationError": { "properties": { "loc": { "items": { "anyOf": [ { "type": "string" }, { "type": "integer" } ] }, "title": "Location", "type": "array" }, "msg": { "title": "Message", "type": "string" }, "type": { "title": "Error Type", "type": "string" } }, "required": [ "loc", "msg", "type" ], "title": "ValidationError", "type": "object" }, "WaterbodyOut": { "properties": { "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "fish_species_count": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Fish Species Count" }, "id": { "format": "uuid", "title": "Id", "type": "string" }, "name_ru": { "title": "Name Ru", "type": "string" }, "slug": { "title": "Slug", "type": "string" }, "source_aliases": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Source Aliases" }, "source_checked_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "title": "Source Checked At" }, "source_external_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source External Id" }, "source_fish_species": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Source Fish Species" }, "source_image_urls": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Source Image Urls" }, "source_point_urls": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Source Point Urls" }, "source_system": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source System" }, "source_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source Url" }, "unlock_level": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Unlock Level" } }, "required": [ "id", "slug", "name_ru", "unlock_level", "fish_species_count", "source_system", "source_external_id", "source_url", "description", "source_aliases", "source_fish_species", "source_image_urls", "source_point_urls", "source_checked_at" ], "title": "WaterbodyOut", "type": "object" } } }, "info": { "title": "RF4 Spotter API", "version": "0.1.0" }, "openapi": "3.1.0", "paths": { "/api/v1/activity": { "get": { "operationId": "activity_api_v1_activity_get", "parameters": [ { "in": "query", "name": "hours", "required": false, "schema": { "default": 24, "title": "Hours", "type": "integer" } }, { "in": "query", "name": "waterbody", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Waterbody" } }, { "in": "query", "name": "fish", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Fish" } }, { "in": "query", "name": "method", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Method" } }, { "in": "query", "name": "sort", "required": false, "schema": { "default": "activity", "enum": [ "activity", "confidence", "freshness" ], "title": "Sort", "type": "string" } }, { "in": "query", "name": "limit", "required": false, "schema": { "default": 20, "maximum": 100, "minimum": 1, "title": "Limit", "type": "integer" } }, { "in": "query", "name": "offset", "required": false, "schema": { "default": 0, "minimum": 0, "title": "Offset", "type": "integer" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PaginatedActivityOut" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Activity" } }, "/api/v1/admin/catch-reports": { "get": { "operationId": "admin_reports_api_v1_admin_catch_reports_get", "parameters": [ { "in": "query", "name": "status", "required": false, "schema": { "$ref": "#/components/schemas/ModerationStatus", "default": "pending" } }, { "in": "query", "name": "limit", "required": false, "schema": { "default": 50, "maximum": 100, "minimum": 1, "title": "Limit", "type": "integer" } }, { "in": "query", "name": "offset", "required": false, "schema": { "default": 0, "minimum": 0, "title": "Offset", "type": "integer" } }, { "in": "header", "name": "authorization", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Authorization" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/AdminCatchReportOut" }, "title": "Response Admin Reports Api V1 Admin Catch Reports Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Admin Reports" } }, "/api/v1/admin/catch-reports/{report_id}": { "delete": { "operationId": "delete_report_api_v1_admin_catch_reports__report_id__delete", "parameters": [ { "in": "path", "name": "report_id", "required": true, "schema": { "format": "uuid", "title": "Report Id", "type": "string" } }, { "in": "query", "name": "expected_version", "required": true, "schema": { "minimum": 0, "title": "Expected Version", "type": "integer" } }, { "in": "header", "name": "authorization", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Authorization" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Delete Report" }, "patch": { "operationId": "moderate_report_api_v1_admin_catch_reports__report_id__patch", "parameters": [ { "in": "path", "name": "report_id", "required": true, "schema": { "format": "uuid", "title": "Report Id", "type": "string" } }, { "in": "header", "name": "authorization", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Authorization" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ModerationUpdate" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CatchReportCreated" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Moderate Report" } }, "/api/v1/admin/diagnostics": { "get": { "operationId": "admin_diagnostics_api_v1_admin_diagnostics_get", "parameters": [ { "in": "header", "name": "authorization", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Authorization" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Admin Diagnostics" } }, "/api/v1/admin/external-observations": { "get": { "operationId": "admin_external_observations_api_v1_admin_external_observations_get", "parameters": [ { "in": "query", "name": "status", "required": false, "schema": { "anyOf": [ { "enum": [ "staged", "mapped", "ready", "published", "rejected", "withdrawn", "review" ], "type": "string" }, { "type": "null" } ], "title": "Status" } }, { "in": "query", "name": "source_system", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source System" } }, { "in": "query", "name": "completeness", "required": false, "schema": { "default": "all", "enum": [ "all", "complete", "incomplete" ], "title": "Completeness", "type": "string" } }, { "in": "query", "name": "order", "required": false, "schema": { "default": "newest", "enum": [ "newest", "oldest", "risk" ], "title": "Order", "type": "string" } }, { "in": "query", "name": "q", "required": false, "schema": { "anyOf": [ { "maxLength": 100, "type": "string" }, { "type": "null" } ], "title": "Q" } }, { "in": "query", "name": "limit", "required": false, "schema": { "default": 50, "maximum": 200, "minimum": 1, "title": "Limit", "type": "integer" } }, { "in": "query", "name": "offset", "required": false, "schema": { "default": 0, "minimum": 0, "title": "Offset", "type": "integer" } }, { "in": "header", "name": "authorization", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Authorization" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/ExternalObservationOut" }, "title": "Response Admin External Observations Api V1 Admin External Observations Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Admin External Observations" } }, "/api/v1/admin/external-observations/{observation_id}/alias-suggestions": { "get": { "operationId": "admin_external_alias_suggestions_api_v1_admin_external_observations__observation_id__alias_suggestions_get", "parameters": [ { "in": "path", "name": "observation_id", "required": true, "schema": { "format": "uuid", "title": "Observation Id", "type": "string" } }, { "in": "header", "name": "authorization", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Authorization" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExternalAliasSuggestionOut" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Admin External Alias Suggestions" } }, "/api/v1/admin/external-observations/{observation_id}/mapping": { "patch": { "operationId": "admin_map_external_observation_api_v1_admin_external_observations__observation_id__mapping_patch", "parameters": [ { "in": "path", "name": "observation_id", "required": true, "schema": { "format": "uuid", "title": "Observation Id", "type": "string" } }, { "in": "header", "name": "authorization", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Authorization" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExternalObservationMapping" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExternalObservationOut" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Admin Map External Observation" } }, "/api/v1/admin/external-observations/{observation_id}/publish": { "post": { "operationId": "admin_publish_external_observation_api_v1_admin_external_observations__observation_id__publish_post", "parameters": [ { "in": "path", "name": "observation_id", "required": true, "schema": { "format": "uuid", "title": "Observation Id", "type": "string" } }, { "in": "header", "name": "authorization", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Authorization" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExternalObservationAction" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExternalObservationPublished" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Admin Publish External Observation" } }, "/api/v1/admin/external-observations/{observation_id}/reject": { "patch": { "operationId": "admin_reject_external_observation_api_v1_admin_external_observations__observation_id__reject_patch", "parameters": [ { "in": "path", "name": "observation_id", "required": true, "schema": { "format": "uuid", "title": "Observation Id", "type": "string" } }, { "in": "header", "name": "authorization", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Authorization" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExternalObservationDecision" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExternalObservationOut" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Admin Reject External Observation" } }, "/api/v1/admin/imports": { "get": { "operationId": "admin_imports_api_v1_admin_imports_get", "parameters": [ { "in": "query", "name": "limit", "required": false, "schema": { "default": 20, "maximum": 100, "minimum": 1, "title": "Limit", "type": "integer" } }, { "in": "query", "name": "offset", "required": false, "schema": { "default": 0, "minimum": 0, "title": "Offset", "type": "integer" } }, { "in": "header", "name": "authorization", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Authorization" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/ImportRunOut" }, "title": "Response Admin Imports Api V1 Admin Imports Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Admin Imports" } }, "/api/v1/admin/imports/official-records": { "post": { "operationId": "admin_start_official_import_api_v1_admin_imports_official_records_post", "parameters": [ { "in": "header", "name": "authorization", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Authorization" } } ], "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ImportRunOut" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Admin Start Official Import" } }, "/api/v1/admin/media/assets/{digest}": { "get": { "operationId": "admin_media_asset_api_v1_admin_media_assets__digest__get", "parameters": [ { "in": "path", "name": "digest", "required": true, "schema": { "title": "Digest", "type": "string" } }, { "in": "header", "name": "authorization", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Authorization" } } ], "responses": { "200": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Admin Media Asset" } }, "/api/v1/admin/media/catalog": { "get": { "operationId": "admin_media_catalog_api_v1_admin_media_catalog_get", "parameters": [ { "in": "query", "name": "entity_type", "required": false, "schema": { "anyOf": [ { "pattern": "^(fish|waterbody|tackle|reference)$", "type": "string" }, { "type": "null" } ], "title": "Entity Type" } }, { "in": "query", "name": "status", "required": false, "schema": { "anyOf": [ { "pattern": "^(approved|upgrade_queued|upgrade_stored)$", "type": "string" }, { "type": "null" } ], "title": "Status" } }, { "in": "query", "name": "limit", "required": false, "schema": { "default": 50, "maximum": 100, "minimum": 1, "title": "Limit", "type": "integer" } }, { "in": "query", "name": "offset", "required": false, "schema": { "default": 0, "minimum": 0, "title": "Offset", "type": "integer" } }, { "in": "header", "name": "authorization", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Authorization" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/AdminMediaReviewOut" }, "title": "Response Admin Media Catalog Api V1 Admin Media Catalog Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Admin Media Catalog" } }, "/api/v1/admin/media/upgrades/publish": { "post": { "description": "Atomically publish all stored quality upgrades after an explicit decision.", "operationId": "admin_publish_media_upgrades_api_v1_admin_media_upgrades_publish_post", "parameters": [ { "in": "header", "name": "authorization", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Authorization" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminMediaDecision" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "additionalProperties": { "type": "integer" }, "title": "Response Admin Publish Media Upgrades Api V1 Admin Media Upgrades Publish Post", "type": "object" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Admin Publish Media Upgrades" } }, "/api/v1/admin/media/upgrades/rollback": { "post": { "description": "Restore one superseded fallback while retaining the reviewed candidate.", "operationId": "admin_rollback_media_upgrade_api_v1_admin_media_upgrades_rollback_post", "parameters": [ { "in": "header", "name": "authorization", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Authorization" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminMediaRollback" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "additionalProperties": { "type": "string" }, "title": "Response Admin Rollback Media Upgrade Api V1 Admin Media Upgrades Rollback Post", "type": "object" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Admin Rollback Media Upgrade" } }, "/api/v1/admin/moderation-history": { "get": { "operationId": "admin_moderation_history_api_v1_admin_moderation_history_get", "parameters": [ { "in": "query", "name": "limit", "required": false, "schema": { "default": 50, "maximum": 200, "minimum": 1, "title": "Limit", "type": "integer" } }, { "in": "query", "name": "offset", "required": false, "schema": { "default": 0, "minimum": 0, "title": "Offset", "type": "integer" } }, { "in": "header", "name": "authorization", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Authorization" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/AdminModerationHistoryOut" }, "title": "Response Admin Moderation History Api V1 Admin Moderation History Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Admin Moderation History" } }, "/api/v1/admin/moderation-history-export": { "get": { "description": "Return an anonymized, analysis-safe decision export.", "operationId": "admin_moderation_history_export_api_v1_admin_moderation_history_export_get", "parameters": [ { "in": "query", "name": "limit", "required": false, "schema": { "default": 1000, "maximum": 5000, "minimum": 1, "title": "Limit", "type": "integer" } }, { "in": "header", "name": "authorization", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Authorization" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Admin Moderation History Export" } }, "/api/v1/admin/source-status": { "get": { "description": "Return safe operational details needed by the owner dashboard.", "operationId": "admin_source_status_api_v1_admin_source_status_get", "parameters": [ { "in": "header", "name": "authorization", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Authorization" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/AdminSourceStatusOut" }, "title": "Response Admin Source Status Api V1 Admin Source Status Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Admin Source Status" } }, "/api/v1/baits": { "get": { "operationId": "baits_api_v1_baits_get", "parameters": [ { "in": "query", "name": "limit", "required": false, "schema": { "default": 200, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer" } }, { "in": "query", "name": "offset", "required": false, "schema": { "default": 0, "minimum": 0, "title": "Offset", "type": "integer" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/BaitOut" }, "title": "Response Baits Api V1 Baits Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Baits" } }, "/api/v1/catch-reports": { "post": { "operationId": "create_catch_report_api_v1_catch_reports_post", "parameters": [ { "in": "header", "name": "idempotency-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Idempotency-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CatchReportCreate" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CatchReportAccepted" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Create Catch Report" } }, "/api/v1/catch-reports/{report_id}/screenshot": { "post": { "operationId": "add_screenshot_api_v1_catch_reports__report_id__screenshot_post", "parameters": [ { "in": "path", "name": "report_id", "required": true, "schema": { "format": "uuid", "title": "Report Id", "type": "string" } }, { "in": "header", "name": "X-Upload-Token", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Upload-Token" } } ], "requestBody": { "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/Body_add_screenshot_api_v1_catch_reports__report_id__screenshot_post" } } }, "required": true }, "responses": { "204": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Add Screenshot" } }, "/api/v1/community-observations": { "get": { "operationId": "community_observations_api_v1_community_observations_get", "parameters": [ { "in": "query", "name": "limit", "required": false, "schema": { "default": 12, "maximum": 50, "minimum": 1, "title": "Limit", "type": "integer" } }, { "in": "query", "name": "offset", "required": false, "schema": { "default": 0, "minimum": 0, "title": "Offset", "type": "integer" } }, { "in": "query", "name": "waterbody", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Waterbody" } }, { "in": "query", "name": "fish", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Fish" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/PublicObservationOut" }, "title": "Response Community Observations Api V1 Community Observations Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Community Observations" } }, "/api/v1/fishes": { "get": { "operationId": "fishes_api_v1_fishes_get", "parameters": [ { "in": "query", "name": "limit", "required": false, "schema": { "default": 200, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer" } }, { "in": "query", "name": "offset", "required": false, "schema": { "default": 0, "minimum": 0, "title": "Offset", "type": "integer" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/FishOut" }, "title": "Response Fishes Api V1 Fishes Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Fishes" } }, "/api/v1/imports": { "get": { "operationId": "imports_api_v1_imports_get", "parameters": [ { "in": "query", "name": "limit", "required": false, "schema": { "default": 20, "maximum": 100, "minimum": 1, "title": "Limit", "type": "integer" } }, { "in": "query", "name": "offset", "required": false, "schema": { "default": 0, "minimum": 0, "title": "Offset", "type": "integer" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/ImportRunPublicOut" }, "title": "Response Imports Api V1 Imports Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Imports" } }, "/api/v1/media/assets/{digest}": { "get": { "operationId": "media_asset_api_v1_media_assets__digest__get", "parameters": [ { "in": "path", "name": "digest", "required": true, "schema": { "title": "Digest", "type": "string" } } ], "responses": { "200": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Media Asset" } }, "/api/v1/media/catalog": { "get": { "operationId": "media_catalog_api_v1_media_catalog_get", "parameters": [ { "in": "query", "name": "entity_type", "required": false, "schema": { "anyOf": [ { "pattern": "^(fish|waterbody|tackle|reference)$", "type": "string" }, { "type": "null" } ], "title": "Entity Type" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "additionalProperties": true, "type": "object" }, "title": "Response Media Catalog Api V1 Media Catalog Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Media Catalog" } }, "/api/v1/public-spot-pages": { "get": { "operationId": "public_spot_pages_api_v1_public_spot_pages_get", "parameters": [ { "in": "query", "name": "limit", "required": false, "schema": { "default": 500, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer" } }, { "in": "query", "name": "offset", "required": false, "schema": { "default": 0, "minimum": 0, "title": "Offset", "type": "integer" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "type": "string" }, "title": "Response Public Spot Pages Api V1 Public Spot Pages Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Public Spot Pages" } }, "/api/v1/records": { "get": { "operationId": "records_api_v1_records_get", "parameters": [ { "in": "query", "name": "fish", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Fish" } }, { "in": "query", "name": "waterbody", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Waterbody" } }, { "in": "query", "name": "category", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Category" } }, { "in": "query", "name": "limit", "required": false, "schema": { "default": 50, "maximum": 100, "minimum": 1, "title": "Limit", "type": "integer" } }, { "in": "query", "name": "offset", "required": false, "schema": { "default": 0, "minimum": 0, "title": "Offset", "type": "integer" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PaginatedOfficialRecordOut" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Records" } }, "/api/v1/source-status": { "get": { "operationId": "source_status_api_v1_source_status_get", "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/SourceStatusOut" }, "title": "Response Source Status Api V1 Source Status Get", "type": "array" } } }, "description": "Successful Response" } }, "summary": "Source Status" } }, "/api/v1/spots/resolve": { "get": { "operationId": "resolve_spot_api_v1_spots_resolve_get", "parameters": [ { "in": "query", "name": "waterbody", "required": true, "schema": { "title": "Waterbody", "type": "string" } }, { "in": "query", "name": "x", "required": true, "schema": { "maximum": 10000, "minimum": -10000, "title": "X", "type": "integer" } }, { "in": "query", "name": "y", "required": true, "schema": { "maximum": 10000, "minimum": -10000, "title": "Y", "type": "integer" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SpotOut" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Resolve Spot" } }, "/api/v1/spots/{spot_id}": { "get": { "operationId": "spot_detail_api_v1_spots__spot_id__get", "parameters": [ { "in": "path", "name": "spot_id", "required": true, "schema": { "format": "uuid", "title": "Spot Id", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SpotOut" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Spot Detail" } }, "/api/v1/spots/{spot_id}/catches": { "get": { "operationId": "spot_catches_api_v1_spots__spot_id__catches_get", "parameters": [ { "in": "path", "name": "spot_id", "required": true, "schema": { "format": "uuid", "title": "Spot Id", "type": "string" } }, { "in": "query", "name": "limit", "required": false, "schema": { "default": 50, "maximum": 100, "minimum": 1, "title": "Limit", "type": "integer" } }, { "in": "query", "name": "offset", "required": false, "schema": { "default": 0, "minimum": 0, "title": "Offset", "type": "integer" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/CatchOut" }, "title": "Response Spot Catches Api V1 Spots Spot Id Catches Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Spot Catches" } }, "/api/v1/spots/{spot_id}/timeline": { "get": { "operationId": "spot_timeline_api_v1_spots__spot_id__timeline_get", "parameters": [ { "in": "path", "name": "spot_id", "required": true, "schema": { "format": "uuid", "title": "Spot Id", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "additionalProperties": true, "type": "object" }, "title": "Response Spot Timeline Api V1 Spots Spot Id Timeline Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Spot Timeline" } }, "/api/v1/waterbodies": { "get": { "operationId": "waterbodies_api_v1_waterbodies_get", "parameters": [ { "in": "query", "name": "limit", "required": false, "schema": { "default": 200, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer" } }, { "in": "query", "name": "offset", "required": false, "schema": { "default": 0, "minimum": 0, "title": "Offset", "type": "integer" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/WaterbodyOut" }, "title": "Response Waterbodies Api V1 Waterbodies Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Waterbodies" } }, "/health": { "get": { "operationId": "health_health_get", "responses": { "200": { "content": { "application/json": { "schema": { "additionalProperties": { "type": "string" }, "title": "Response Health Health Get", "type": "object" } } }, "description": "Successful Response" } }, "summary": "Health" } }, "/ready": { "get": { "operationId": "ready_ready_get", "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" } }, "summary": "Ready" } } } }