Upload photos. Names handled automatically, included in all paid plans. Start your 14-day free trial.Get Started →

MatchID

Namestheplayers.Embedsthenames.

Face recognition for the faces you can see. Jersey OCR for the helmets you can't. Both run when you upload. Names go in the file on download.

Start Free See it work →

The workflow

Upload. Identified. Deliver.

Three steps. The tagline is the workflow.

01 · UPLOAD

Drag your gallery in.

Files go to R2 directly. Roster lives in your team library, ready to match.

02 · IDENTIFIED

MatchID names the players.

Trained for sports photography. Confidence scores surface for review, or set auto-approve.

03 · DELIVER

Names go in the file.

FTP, share link, ZIP. The file leaves the platform with names attached.

No credits. No per-image charge. MatchID runs as much as you need.

The math

Credits scale. We don't.

Per-image pricing starts cheap. The bill compounds through the season. Ours doesn't move.

A Game
~1,000 photos
$30
Per-credit cost
GalleryID $0
A Weekend
~3 games
$90
Per-credit cost
GalleryID $0
A Month
~12 games
$360
Per-credit cost
GalleryID $0
A Season
~60+ games across sports
$1,800+
Per-credit cost
GalleryID $0

Math assumes 3¢ per image, the high end of typical per-credit pricing. Photo counts vary by sport, coverage, and shooter. The point: credits put a tax on volume. Unlimited removes it.

Faces

Trained for the action.

Face recognition struggles with sports photography. Motion blur. Awkward angles. Hands in the frame. Eyes closed mid-stride. Most general-purpose face APIs trained on portrait photography. They don't translate.

We trained MatchID for the kind of photos you take. Sideline distance. Helmets pushed back. Fast pans. Threshold settings let you tune for your tolerance — relax it for helmet sports where you need recall, tighten it for face-visible sports where you need precision.

23
Helmets

Reads the number when the face isn't there.

Football. Lacrosse. Hockey. Catchers in the dirt. The face is hidden but the number is visible. Jersey OCR reads it.

A helmeted face alone scores lower than a clean one. Fewer features, more occlusion. Jersey OCR closes the gap — when face confidence dips, the number raises the match. Together they push helmet-sport accuracy well past what face recognition can do alone.

We trained OCR to read numbers off jerseys, helmet decals, chest plates, and shoulder patches. Numbers match to roster positions. Names attach.

Improves over time

Smarter every season. In your account.

Star a strong match and it becomes a reference photo. The library grows. Accuracy climbs.

01 · REVIEW

You confirm a match.

A confidence score surfaces. Approve the good ones, reject the misses. Takes a second per athlete.

02 · STAR

Make the best shots references.

Star a clean match and it joins that athlete's reference library in your account. Same face next gallery, easier and faster.

03 · COMPOUND

Accuracy climbs by season's end.

More references per athlete. Borderline matches resolve faster. Helmet sports get the biggest boost.

Per-client, by design. Your reference library lives in your account and only benefits you. No global headshot database. No model trained across customers. The library grows from the references you add. We don't train ours on your data.

Where the names go

Into the file. Not into a platform.

On download, names embed as XMP metadata. Standard XMP, not a proprietary format. Photo Mechanic reads them. Lightroom reads them. Capture One reads them. Photoshop reads them.

The names travel with the photo. Not stuck in our platform. Not behind a login. Not lost when you switch tools. If the photo gets emailed, archived, or republished, the metadata goes with it.

This is the only way we want to deliver identification.

JPEG · 4912×3264 · XMP
Persons: [
  "Marcus Reyes #23",
  "Tyler Park #11",
  "Coach Davis"
]
Sport: "Football"
EventDate: "2026-09-12"

Sports first

Built for sports. Works for everyone.

Sports is where we started. The product works wherever you need names attached to faces.

FootballBasketballBaseballSoftballSoccerLacrosseHockeyVolleyballWrestlingTrack & FieldSwimming & DivingTennisGolfCross CountryCheerRowing

Plus dance studios, school productions, music groups, conferences, corporate events, and wedding parties.

Per-client by design

Your photos. Your roster. Your data.

No global index. MatchID identifies players against your roster. There's no cross-client database of athletes. There's no shared face library. There's no model trained on your photos for someone else's benefit.

Each client account is its own MatchID context. Your data stays yours.

What we don't charge for

Three things we don't charge for.

Credits
$0
Per Identification
Others charge
1 to 3 cents per image
Seats
$0
Per User
Others charge
$25 to $50 per user / month
Sales
0%
Commission
Others take
8 to 15% per sale

MatchID at $10/mo. Same features at $800/mo.

See Pricing

Common questions

About MatchID.

How accurate is MatchID?

Depends on the photos. Face-visible sports like volleyball and basketball: high accuracy out of the box. Helmet sports: depends on how often jersey numbers are visible. We let you tune the confidence thresholds for your tolerance.

What happens with bad matches?

You catch them in review. The interface shows pending matches with confidence scores and the source crop. Reject the bad ones. Approve the good ones. The auto-approve threshold lives in your settings.

How fast does it run?

A typical Saturday college football gallery (a few hundred photos) processes in under 30 minutes. Larger galleries scale proportionally. Photos process in parallel on the VPS.

Does it learn over time?

Yes, from the references you add. Star a strong match and it joins that player's embedding library, so future galleries match better. The learning stays inside your client account.

What about sunglasses, masks, face coverings?

Face recognition still works on partial occlusions. Sunglasses and masks reduce accuracy but don't break it. Jersey OCR is your backup when the face isn't legible.