> ## Documentation Index
> Fetch the complete documentation index at: https://help.openfishingcup.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Submit a Catch

> Complete guide to photographing, verifying, and submitting your catch in Open Fishing Cup

# Submit a Catch

Open Fishing Cup uses a **single-page scrollable workflow** to submit your catch. Sections appear progressively as you complete each one, with AI-powered checks ensuring fair play and accurate rankings.

<Info>
  **Mobile App Required** — Catch submissions are only available in the native mobile app (iOS & Android). The web version will prompt you to download the app if you try to submit from a browser.
</Info>

***

## Before You Start

Make sure you have:

* ✅ An Open Fishing Cup account (sign up for free)
* ✅ The mobile app installed ([App Store](#) / [Google Play](#))
* ✅ GPS/Location Services **enabled** on your phone
* ✅ A measuring scale or ruler ready for your catch

***

## 1. Take Your Photo

The first thing you do is capture a photo of your catch with the measuring scale visible.

<Frame>
  <img src="https://mintcdn.com/openfishingcup/hamTU2BkKr5vKZ5k/images/submit-catch/step-1-photo.png?fit=max&auto=format&n=hamTU2BkKr5vKZ5k&q=85&s=c057cf4bfe3c685c16acd9221868c465" alt="Photo capture screen showing camera button and upload area" width="324" height="720" data-path="images/submit-catch/step-1-photo.png" />
</Frame>

### How to Take the Photo

1. Tap the **camera area** to open your device camera
2. Place your fish on a **measuring scale** (ruler, bump board, or measuring mat)
3. Make sure the **entire fish and scale markings** are clearly visible
4. Take the photo — GPS coordinates and timestamp are automatically recorded

<Warning>
  The photo must be taken **directly with your phone camera** through the app. Screenshots, photos of screens, and photos downloaded from the internet will be rejected.
</Warning>

### Immediate Checks

As soon as you take your photo, the app runs these checks automatically:

| Check                     | What It Does                                                                         |
| ------------------------- | ------------------------------------------------------------------------------------ |
| **GPS & Date Extraction** | Reads location and timestamp from photo metadata (EXIF) — shown first as an info box |
| **Duplicate Check**       | Checks if this exact photo was already submitted                                     |

If GPS or date metadata is missing, the photo is **rejected immediately** and you'll need to take a new one.

### GPS Source

The app shows where your location data comes from with an indicator badge:

* **🖼️ Photo EXIF** — GPS coordinates embedded in the photo file by your camera (preferred)
* **📱 Device GPS** — Real-time location from your phone's GPS sensor (fallback when EXIF data is missing)

You can expand the **GPS Coordinates** section to see the exact latitude, longitude, altitude, and photo date.

### Common Rejection Reasons

| Rejection               | What It Means                                             | How to Fix                                                                      |
| ----------------------- | --------------------------------------------------------- | ------------------------------------------------------------------------------- |
| **No GPS data**         | Photo doesn't contain location metadata                   | Enable GPS on your phone and take a new photo through the app                   |
| **No date information** | Photo is missing EXIF timestamp                           | Use the original photo from your camera, don't use edited or transferred images |
| **Image too old**       | Photo was taken more than the allowed number of hours ago | Take a fresh photo of your current catch                                        |
| **Duplicate image**     | This exact photo was already submitted                    | Each photo can only be used once                                                |

<Tip>
  If your photo is rejected, tap **"Try Another Photo"** to retake. You can also tap **"Cancel"** to go back to the home screen.
</Tip>

***

## 2. Select Species & Enter Length

Once your photo passes the initial checks, the **species and length** section appears below.

<Frame>
  <img src="https://mintcdn.com/openfishingcup/2U7lqmlb_5X6jxr0/images/submit-catch/step-2-length.png?fit=max&auto=format&n=2U7lqmlb_5X6jxr0&q=85&s=5f5496c6f3dafb8592fbc5f965452f5a" alt="Species selection and length entry with verify button" width="324" height="720" data-path="images/submit-catch/step-2-length.png" />
</Frame>

### Species Selection

* Select your fish species from the **dropdown menu**
* Each species is shown with its icon for easy identification
* The species you select will be verified by AI in the next step

### Entering the Length

1. Enter the fish length in **centimeters** (whole numbers only, 1–500 cm)
2. Both species and length are required before you can proceed to verification

### Country-Specific Minimum Lengths

Some countries enforce **minimum legal catch sizes**. If your entered length is below the minimum for the selected species in your country, you will see a rejection dialog and **cannot proceed** until you correct the length.

***

## 3. Verify Your Catch

After selecting the species and entering the length, tap the **"Verify Catch"** button (marked with a ShieldCheck icon). This triggers all AI-powered checks **in parallel**:

| Check                   | What It Does                                                             | Result                                 |
| ----------------------- | ------------------------------------------------------------------------ | -------------------------------------- |
| **Species Detection**   | Identifies the fish species using AI and compares it to your selection   | Species match + confidence level       |
| **Scale Detection**     | Verifies a measuring scale is visible in the photo                       | Scale visible / not visible            |
| **Authenticity Check**  | Detects AI-generated or manipulated images                               | Authentic / Suspicious                 |
| **Recapture Detection** | Detects if the photo is a photo-of-a-photo or screen capture             | Original / Recapture detected          |
| **Length Verification** | Compares your entered length against what the AI measures from the photo | Confidence level (High / Medium / Low) |

### Verification Results

After the checks complete, you'll see status cards with color-coded results:

* 🟢 **Green (High confidence)** — Check passed. Your catch stays approved.
* 🟡 **Gold/Yellow (Medium confidence)** — Some uncertainty. Your catch will be set to **pending** for manual review.
* 🔴 **Red (Low confidence)** — Check failed or significant mismatch. Your catch will be set to **pending** for manual review.

<Frame>
  <img src="https://mintcdn.com/openfishingcup/IyjtqJ9tCRVRUmov/images/submit-catch/step-1-checks.png?fit=max&auto=format&n=IyjtqJ9tCRVRUmov&q=85&s=7a3fe00e4449ae8db7bbb1593d900455" alt="AI check results showing species detection and authenticity verification" width="487" height="1105" data-path="images/submit-catch/step-1-checks.png" />
</Frame>

### What Triggers "Pending" Status

Your catch is set to **pending** (requiring manual admin review) when:

* The AI-detected species **differs** from your selection or has low confidence
* The AI-detected length is **significantly smaller** than what you entered (larger AI lengths are fine)
* Image authenticity or recapture checks return low confidence

<Note>
  Even if some checks return low confidence, you can still proceed. Your catch will be submitted as **pending** and reviewed by an admin.
</Note>

Once verification completes successfully, the button turns **green** and is **disabled** — you're ready to fill in the remaining details.

### Rejection During Verification

Some results will block you from proceeding:

| Rejection               | What It Means                                              | How to Fix                                          |
| ----------------------- | ---------------------------------------------------------- | --------------------------------------------------- |
| **No species detected** | AI couldn't identify a fish in the photo                   | Make sure the fish is clearly visible and well-lit  |
| **No scale visible**    | AI couldn't detect a measuring device                      | Place your fish on a visible ruler or measuring mat |
| **Unsupported species** | The detected species is not in the competition             | Only supported species can be submitted             |
| **Suspicious image**    | The image appears AI-generated or heavily manipulated      | Use an original, unedited photo                     |
| **Recapture detected**  | The photo appears to be a photo of another photo or screen | Take a direct photo of the actual fish              |

***

## 4. Fill in Details

After verification, the remaining fields appear for you to complete.

<Frame>
  <img src="https://mintcdn.com/openfishingcup/IyjtqJ9tCRVRUmov/images/submit-catch/step-3-details.png?fit=max&auto=format&n=IyjtqJ9tCRVRUmov&q=85&s=d09192f64e6e8277f5e79e8be4762a01" alt="Catch details form with date, location, water body, and country fields" width="485" height="1263" data-path="images/submit-catch/step-3-details.png" />
</Frame>

### Auto-Filled Fields

The following fields are **automatically filled** from your photo's GPS data:

* **📅 Date & Time** — Extracted from the photo EXIF data or device capture time
* **📍 Location** — Nearest town/village from reverse geocoding
* **🌍 Country** — Detected from GPS coordinates (EU countries supported)

<Warning>
  If you manually edit any auto-filled field, your catch status will be changed to **pending** for admin review. This is a fairness measure to prevent location spoofing.
</Warning>

### Water Body Selection

The water body field uses a smart selector with three sources:

1. **Nearby Waters** — Automatically detected water bodies near your GPS location (rivers, lakes, canals) using OpenStreetMap data
2. **Previously Used** — Water names from your previous approved catches in the same country
3. **Custom Entry** — Type any water name if the auto-detection didn't find the right one

<Frame>
  <img src="https://mintcdn.com/openfishingcup/IyjtqJ9tCRVRUmov/images/submit-catch/step-3-water.png?fit=max&auto=format&n=IyjtqJ9tCRVRUmov&q=85&s=0b952f8954f10b39dfad709d06036af1" alt="Water body selector showing nearby waters and previously used options" width="487" height="578" data-path="images/submit-catch/step-3-water.png" />
</Frame>

If only one water body is found nearby, it's **automatically selected** for you.

### Additional Photos (Optional)

You can add up to **2 extra photos** of your catch. These are optional but recommended for verification.

* Tap the **dashed upload boxes** to add photos
* Extra photos must be taken on the **same day** as the main catch photo (validated via EXIF date)
* Photos with no EXIF date information will be rejected
* Photos are checked for inappropriate content

<Info>
  If you add at least one additional photo, the "Selfie With Your Catch" prompt is skipped.
</Info>

<Frame>
  <img src="https://mintcdn.com/openfishingcup/IyjtqJ9tCRVRUmov/images/submit-catch/step-3-extras.png?fit=max&auto=format&n=IyjtqJ9tCRVRUmov&q=85&s=3e18b4b6fd04a670cd2dd38f421e7206" alt="Extra photo upload area with two dashed upload boxes" width="485" height="749" data-path="images/submit-catch/step-3-extras.png" />
</Frame>

### Caption (Optional)

Add a short caption (up to 250 characters) to tell the story behind your catch. This will appear on your catch card in the feed.

* Captions are checked for **inappropriate content** and **links** (links are not allowed)
* If your caption is blocked by moderation, you'll see an error message

***

## 5. Submit

The **"Submit Catch"** button becomes active once:

* Your photo has passed the initial checks
* You've completed the **"Verify Catch"** step

If water body or country auto-detection fails, the button remains active — you'll see a **toast notification** prompting you to fill in the missing fields manually when you tap it.

1. Tap the **"Submit Catch"** button
2. If water or country is empty, you'll see a toast asking you to enter them
3. If you haven't added extra photos, a prompt will ask if you want to add some or continue without them
4. The app uploads your photos, runs final moderation checks, and saves your catch

***

## After Submission

### Success Screen

After a successful submission, you'll see a congratulations screen with two options:

* **"View Catch"** — Takes you to your catches list (My Catches)
* **"Submit Another"** — Resets the form so you can submit another catch immediately

<Frame>
  <img src="https://mintlify.s3.us-west-1.amazonaws.com/openfishingcup/images/submit-catch/success.png" alt="Success screen showing congratulations message with View Catch and Submit Another buttons" />
</Frame>

### Catch Status

Your catch will have one of two statuses:

| Status         | Meaning                                                                                                                                           |
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| ✅ **Approved** | All AI checks passed with high confidence. Your catch is immediately visible and counts toward rankings.                                          |
| ⏳ **Pending**  | One or more checks had low/medium confidence, or you edited auto-filled fields. Your catch will be reviewed manually by an admin before approval. |

When your catch is pending, the app displays a **status card** listing the specific reasons (e.g., species mismatch, low length confidence, manual edits) along with a notice that **manual admin review is required**. This transparency helps you understand what triggered the review.

Pending catches are still saved and visible to you, but they won't appear in public rankings until approved.

***

## Photo Requirements

### ✅ Do's

| Requirement                          | Why                                                           |
| ------------------------------------ | ------------------------------------------------------------- |
| Use the app's camera                 | Ensures GPS and timestamp metadata are captured correctly     |
| Place fish on a measuring scale      | Required for AI length verification                           |
| Make sure scale markings are visible | The AI reads the scale to verify your length entry            |
| Keep GPS enabled                     | Location is required for country detection and fair play      |
| Use good lighting                    | Better photos = more accurate AI species detection            |
| Take the photo immediately           | Photos older than the configured time window will be rejected |

### ❌ Don'ts

| Avoid                             | Why                                                |
| --------------------------------- | -------------------------------------------------- |
| Screenshots or screen photos      | Detected by recapture check and rejected           |
| Downloaded or transferred images  | May lose EXIF metadata or be flagged as suspicious |
| Heavily edited photos             | May be flagged as AI-generated or manipulated      |
| Photos without a measuring device | Scale detection will fail                          |
| Using someone else's photo        | Duplicate check will catch reused images           |
| Photos taken days ago             | Image age check will reject old photos             |

***

## Troubleshooting

### "My photo keeps getting rejected"

1. **Check GPS is enabled** — Go to your phone's Settings → Location and make sure it's turned on
2. **Take a fresh photo** — Use the app's camera button, don't import from your gallery
3. **Show the measuring scale clearly** — The AI needs to see ruler/scale markings
4. **Make sure the fish is visible** — Good lighting and clear framing help species detection
5. **Don't edit the photo** — Use the original, unmodified photo

### "My catch is pending instead of approved"

This happens when:

* AI species confidence was medium or low
* AI scale confidence was medium or low
* The AI-detected length was significantly smaller than your entered length
* You manually edited auto-filled fields (date, location, country)

The app shows you the **specific reasons** for the pending status in a yellow status card, along with a note that manual admin review is required. Pending catches are reviewed by admins and will be approved if everything looks correct.

### "I can't find my water body"

If the automatic water detection doesn't find your fishing spot:

1. Try the **search field** to look through previously used water names
2. **Type the name manually** — a "Use \[name]" option will appear
3. Water names are **title-cased** automatically (e.g., "lake michigan" → "Lake Michigan")

### "The app says I need the mobile app"

Catch submissions are restricted to the native mobile app for GPS verification and camera access. Download the app from the [App Store](#) or [Google Play](#) to submit catches.

### "Rate limit reached"

If you see a rate limit error, wait a few minutes before trying again. This protects our AI services from overload.
