{
  "name": "Juniper",
  "slug": "juniper",
  "page": "https://onlyfins.stream/trout/pool/juniper",
  "photo": "https://onlyfins.stream/trout/pool/shot/3716.jpg",
  "sides_on_file": 1,
  "gallery": [
    {
      "id": 3716,
      "url": "https://onlyfins.stream/trout/pool/shot/3716.jpg",
      "when": "Today 12:28 PM",
      "w": 910,
      "h": 180,
      "side": null
    },
    {
      "id": 3641,
      "url": "https://onlyfins.stream/trout/pool/shot/3641.jpg",
      "when": "Yesterday 4:04 PM",
      "w": 1000,
      "h": 408,
      "side": null
    },
    {
      "id": 3021,
      "url": "https://onlyfins.stream/trout/pool/shot/3021.jpg",
      "when": "Nov 9 2:15 PM",
      "w": 810,
      "h": 270,
      "side": null
    },
    {
      "id": 3657,
      "url": "https://onlyfins.stream/trout/pool/shot/3657.jpg",
      "when": "Today 8:41 AM",
      "w": 880,
      "h": 200,
      "side": null
    },
    {
      "id": 3656,
      "url": "https://onlyfins.stream/trout/pool/shot/3656.jpg",
      "when": "Today 8:37 AM",
      "w": 800,
      "h": 220,
      "side": null
    },
    {
      "id": 3586,
      "url": "https://onlyfins.stream/trout/pool/shot/3586.jpg",
      "when": "Yesterday 3:50 PM",
      "w": 1000,
      "h": 267,
      "side": null
    },
    {
      "id": 3585,
      "url": "https://onlyfins.stream/trout/pool/shot/3585.jpg",
      "when": "Yesterday 3:49 PM",
      "w": 790,
      "h": 420,
      "side": null
    },
    {
      "id": 3278,
      "url": "https://onlyfins.stream/trout/pool/shot/3278.jpg",
      "when": "Nov 10 1:30 PM",
      "w": 740,
      "h": 350,
      "side": null
    },
    {
      "id": 3460,
      "url": "https://onlyfins.stream/trout/pool/shot/3460.jpg",
      "when": "Nov 11 8:35 AM",
      "w": 670,
      "h": 220,
      "side": null
    },
    {
      "id": 3590,
      "url": "https://onlyfins.stream/trout/pool/shot/3590.jpg",
      "when": "Yesterday 4:03 PM",
      "w": 870,
      "h": 510,
      "side": null
    },
    {
      "id": 3190,
      "url": "https://onlyfins.stream/trout/pool/shot/3190.jpg",
      "when": "Nov 9 9:46 AM",
      "w": 680,
      "h": 270,
      "side": null
    },
    {
      "id": 3446,
      "url": "https://onlyfins.stream/trout/pool/shot/3446.jpg",
      "when": "Nov 11 7:54 AM",
      "w": 570,
      "h": 360,
      "side": null
    },
    {
      "id": 3538,
      "url": "https://onlyfins.stream/trout/pool/shot/3538.jpg",
      "when": "Yesterday 1:20 PM",
      "w": 610,
      "h": 350,
      "side": null
    },
    {
      "id": 3493,
      "url": "https://onlyfins.stream/trout/pool/shot/3493.jpg",
      "when": "Yesterday 9:10 AM",
      "w": 670,
      "h": 250,
      "side": null
    },
    {
      "id": 3376,
      "url": "https://onlyfins.stream/trout/pool/shot/3376.jpg",
      "when": "Nov 11 12:26 PM",
      "w": 430,
      "h": 310,
      "side": null
    }
  ],
  "how_we_know": [
    {
      "url": "https://onlyfins.stream/trout/pool/spots/attempt/22434.jpg",
      "when": "Yesterday 4:03 PM",
      "spots": 298,
      "learned": true
    },
    {
      "url": "https://onlyfins.stream/trout/pool/spots/attempt/22433.jpg",
      "when": "Yesterday 4:04 PM",
      "spots": 272,
      "learned": true
    },
    {
      "url": "https://onlyfins.stream/trout/pool/spots/attempt/20309.jpg",
      "when": "Nov 11 8:35 AM",
      "spots": 217,
      "learned": true
    },
    {
      "url": "https://onlyfins.stream/trout/pool/spots/attempt/20285.jpg",
      "when": "Nov 11 7:54 AM",
      "spots": 216,
      "learned": true
    }
  ],
  "species_guess": "Not sure yet: rainbow or cutthroat (needs a look at the throat)",
  "size_on_camera": "unknown",
  "traits": [
    "any"
  ],
  "description": "First seen Nov 9. Recognized by its spots 17 times so far. Habits still a mystery. ",
  "about": "First seen Nov 9. Recognized by its spots 17 times so far. Habits still a mystery. ",
  "old_gravel_says": "Quiet type. I don't trust it.",
  "first_seen": "2:15 PM, 2026-11-09",
  "last_seen": "12:28 PM, 2026-11-13",
  "last_seen_ago": "6 hours ago",
  "sightings": 17,
  "minutes_on_camera": 0,
  "behavior_counts": {
    "hold": 0,
    "dart": 0,
    "grub": 0,
    "company": 0
  },
  "favorite_time": null,
  "named_by": "Old Gravel (automatically)",
  "recent_sightings": [],
  "in_pool_now": false,
  "how_ids_work": "Fish are told apart by the pattern of black spots on their sides, like fingerprints. A face (one side of one fish) only earns a name after it has been matched on 3 separate visits at least 10 minutes apart, with 40 or more spots lining up. Each side of a fish is its own face, so one fish can have two. A fish close to the lens looks bigger than it is.",
  "source": {
    "cite_as": "OnlyFins underwater trout cam, https://onlyfins.stream",
    "license": "CC BY 4.0 (credit OnlyFins with a link)"
  },
  "try_next": [
    {
      "try": "Start this week's riddle: \"Every trout alive owes its winter to one strange number.\"",
      "http": "https://onlyfins.stream/trout/riddle",
      "mcp": "trout_riddle"
    },
    {
      "try": "Ask Old Gravel if a storm is coming",
      "http": "https://onlyfins.stream/trout/talk?message=is%20rain%20coming%20this%20week%3F&name=YourName",
      "mcp": "talk_to_trout {\"message\": \"is rain coming this week?\"}"
    },
    {
      "try": "Learn to tell a rainbow trout from a Bonneville cutthroat",
      "http": "https://onlyfins.stream/trout/facts?topic=identify",
      "mcp": "trout_facts {\"topic\": \"identify\"}"
    }
  ]
}