Accessing Mugshot and Booking Records in Larimer County
Uncovering The Mugshot Index A Key To Unlocking Crime Data In Larimer County
Larimer County publishes booking data through the Sheriff's Office website, but it's not as clean as you'd expect. The booking search portal lets you look up recent arrests by name, and the results typically show the arrest date, charges, and sometimes a photo. That's the surface layer. The real data sits across several disconnected systems, and piecing them together takes a bit of effort. I spent months building a workflow for pulling these records consistently. Here's what actually works. The Larimer County Sheriff's booking search is at laramiercounty.org/sheriff. You can search by last name, first name, or booking number. Results appear within minutes of intake processing. But here's the catch: photos don't always load on mobile devices, and the site occasionally times out during peak hours when multiple people are running searches at once. I found that doing your searches during off-peak times — early morning or late evening — gives you a much smoother experience. Beyond the initial booking, you need the arrest report details. Those live in a separate system and aren't directly linked from the booking page. I used the Colorado Freedom of Information Act request process to get bulk arrest reports from the Sheriff's Office. It took about three weeks for a batch request covering six months of data. They charge a per-page fee for paper records, but digital copies run substantially less. I've found that requesting specific date ranges and charge types rather than broad queries gets responses faster and cheaper.
One problem I ran into repeatedly is duplicate or mismatched records. The booking system doesn't always handle name variations cleanly. "Robert" and "Bobby" show up as separate entries even when they're the same person. I solved this by building a simple deduplication script that cross-references date of birth, physical descriptors, and arrest location. Without that, you end up double-counting the same incidents. The script itself is straightforward Python using fuzzy string matching against the exported CSV data. The court records side is where most people hit a wall. Arrests and bookings are one thing, but convictions, dismissals, and case dispositions live in the Colorado Courts electronic filing system and county clerk records. Larimer County uses the Colorado Judicial Branch website for case lookups, but the interface is fragmented. You can search by case number or party name, but the results page loads slowly and pagination is clunky. I ended up automating case lookups through the public access portal with scheduled requests rather than manual browsing. Here's something beginners usually miss: the mugshot index you see online is incomplete by design. Certain categories of records are withheld or redacted. Juvenile records are sealed. Cases under investigation may not appear until charges are filed. Mental health holds and certain domestic violence proceedings get expunged from public view even after the booking itself is public. If you're building a comprehensive dataset, you need to account for gaps that aren't visible — they just don't show up at all.
There's also the issue of record retention. Larimer County retains booking photos and basic arrest data for a set period, but older records beyond their retention window move to archived storage and aren't accessible through the standard search interface. I once spent two days chasing a record from 2019 before realizing it had already been purged from the active system. You can request archived records through a formal FOIA process, but turnaround time jumps to six to eight weeks, and there's no guarantee the material still exists. For law enforcement-adjacent work, the Colorado Bureau of Investigations offers background checks, but that's a different pipeline entirely and requires proper authorization. I wouldn't recommend trying to route public records through CBI — it's the wrong channel and will slow everything down. If you're doing this at scale, my recommendation is to combine the Sheriff's booking export with periodic court docket scraping and maintain a local deduplicated database. Start with the raw booking data, fill in disposition information from court records where available, and flag cases where the two systems disagree. The mismatches are where the interesting problems surface — a person might show a booking in Larimer County but the case was transferred to another jurisdiction, which explains a gap in the court record.
Get the Full Details

The data quality in any single system is mediocre at best. The value comes from cross-referencing and understanding what's missing. That's the part nobody mentions when they talk about mugshot indexes, but it's the part that actually determines whether your dataset is usable or just noisy.