Overview
9pic-client covers a participant-facing find-my-photos app: selfie search (9Pic FaceFind), bib search (9Pic BibTrack), a photo grid, and 9Pic Motion clips.
FaceFind, pagination, clips, and later downloads share one session. Persist the selfie request_id (and the bib string) in the URL. Guests see previews — thumbnail_url in the grid and watermarked img_url in a large view. Unlocking originals after a sale is Media Selling.
Also install API Skill for keys, identifiers, and the response envelope.
Install
Session Flow
Build the App
1
Load the event and flags
Call Event Details and hide selfie, bib, video, or timeline UI when the matching flag is off. A disabled feature returns
403; retrying will not enable it.2
Search once
For a selfie, follow Face Search: POST once, persist
request_id in the URL, and GET for pagination and refresh. For a bib, follow BIB Search and keep the bib in the URL. Do not start a new search on remount or page load.3
Render results from thumbnails
Use the search response, or All Photos, Image Details, and Photo Timeline for unfiltered browse. Grid cells should use thumbnail URLs from the Image model. Memories lists the browse, search, video, and download endpoints.
4
Optional clips
Start Video Clipping Search with the FaceFind
request_id instead of a second selfie. Poll GET using the backoff on that page, and handle every status it documents. Keep the photo grid usable while clips process.5
Keep guests on previews
Grid and lightbox use
thumbnail_url and img_url from the Image model. If you sell unwatermarked files after your own checkout, follow Media Selling and Download Originals.API Pages
Gallery UI
The 9Pic hosted gallery uses a branded header, infinite scroll, and a lightbox. Those patterns are optional. Use them, mix them, or keep your existing layout. Auth, feature flags,request_id, and preview URLs still apply whichever UI you choose.
Header. Event name and date can come from Event Details. An optional banner can use
cover_image from List Events, or a file you provide. The public API does not return logo or theme colour — supply those assets yourself, or skip the header.
Paging. Every extra page must reuse the same search / request_id. Never POST a new selfie to load more. hasNextPage is on the Pagination model.
Lightbox. Grid cells use thumbnail_url; the viewer uses watermarked img_url from the Image model. Paid unwatermarked files are Media Selling.
Branding & Theme and Photo Branding show how the hosted 9Pic gallery looks. They are a visual reference only — a custom app supplies its own logo and colour, or skips branding.
Integration Notes
- The browser never sends
X-API-Key. See API Skill. - A fresh FaceFind POST is a new search. Reuse
request_idfor pagination, clips, and downloads. - Read Event Details before calling FaceFind, BibTrack, Motion, or timeline.
- Import, process, and go-live are organiser pipeline endpoints — see Memories.
- Flow, Certify, and Buzz have no public
/ext/API.
Related
API Skill
Auth, envelope, identifiers, and errors.
Memories
How browse, search, video, and downloads group.
Face Search
POST once, GET many, persist
request_id.Media Selling
Your checkout, then originals.

