Skip to main content

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 previewsthumbnail_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

To install every 9Pic skill, see Agent Skills.

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

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_id for 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.

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.