- Brand
- Photo9
- Category
- Commerce
- Primary Subcategory
- Custom Print & Personalized Keepsakes
Integration details
Description
Explore our range of photo books to preserve your most precious memories or design one directly in the chat.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- Custom Print & Personalized Keepsakes
- Secondary Subcategories
- None listed
- Brand
- Photo9
- Access
- Account optional
- First tracked
- 2026-07-03
- Tool count
- 35
- Market
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
Your score is coming
ChatGPT now suggests Plugins on its own when they match a user's request.Your Plugin Discovery Score measures how often yours appears, and it will show here as soon as it’s ready.
What discovery looks like

Get alerts for Photo9
Get updates when Photo9’s Discoverability Score or category rank changes.
Competing in ChatGPT Custom Print & Personalized Keepsakes
View Category35 tools agents can invoke
Adds a map of a named place (a city, region, country or landmark) to a created book, with one pin on that place. It goes on a new page at the front or the end, or on the page named in `page` when that page is empty; a page that already has photos or text gets the map on a new page right after it. A map page counts as a page: pages come in pairs, so a blank page comes with it, and the price follows the page count. More pins go on with add_photobook_map_pins. Pages are numbered as the preview labels them.
add_photobook_place_map
Adds a map page to a created book with a pin for each place its photos were taken, from the photos' own locations (up to 10 pins; photos close together share one), each pin named after its place. Photos without a location are left off; when none has one, nothing is added. A map page counts as a page: pages come in pairs, so a blank page comes with it, and the price follows the page count.
add_photobook_photo_map
Adds blank pages to a created book. Pages come in pairs, so each spread is two blank pages, in the background the inside pages share (white when they differ). They go after the page named in `after`, before page 1 with `after: 0`, or at the end when `after` is left out. The product's maximum page count holds and the price follows the page count. Pages are numbered as the preview labels them: 1 is the first page inside the book, with no offset for the cover.
add_photobook_pages
Folds photos ingested in this session into a book that already exists, keeping its pages, name and link.
add_photos_to_photobook
Adds pins for named places to a map already in a created book, and reframes the map so every pin is in view. A pin far from all of the book's photos is still added, and the result says it is not from the photos. Adds no page and does not change the price.
add_photobook_map_pins
Lists the photo book formats available in a country and their prices: sizes, shapes and cover types, each with its price. For questions about which formats exist or what they cost, such as 'what sizes do you have' or 'how much is an A4 hardcover'. It does not make a book from the user's photos; that is open_photobook_composer.
photobooks_search
Centres a map in a created book on one of its pins, zooming in to at least place level and never zooming out. The pin is named by its label, or part of it. The pins themselves do not change.
center_photobook_map
Changes the design of a created book: the background colour of one page, one spread or every page inside the book (the covers only when asked for); a palette of 3-4 colours spread across the pages; the text printed on the spine (hardcover and layflat books; softcovers have no spine); and the book's name. Any combination in one call. Colours are hex values. Pages are numbered as the preview labels them: 1 is the first page inside the book. Photos are not moved. Each change that could not be made is reported in `results`.
edit_photobook_design
Re-lays a created book out in a different style (clean, colourful or elegant) or with a different number of photos per page, such as 'more elegant', 'busier pages' or 'one photo per page', and saves it. The card shows the new layout. Every page's layout is replaced.
restyle_photobook
Changes photos in a created book: a look (black and white, sepia, vivid, muted, faded, warm, cool), brightness, contrast, saturation, warmth and fade, mirroring, turning, or back to the original. Each edit applies to the whole book, one page, or one photo; several edits in one call. A photo is named by its number on the page (counted in reading order: rows top to bottom, each row left to right) or its position (top-left, largest, ...); a page with one photo needs neither. When the photo cannot be told apart, the result lists the page's photos. Page- and book-wide edits change photos, not maps or stickers. Mirroring and turning are one photo at a time; a photo spread across two pages cannot be mirrored or turned. Pages are numbered as the preview labels them. What could not be done is reported in `results`.
edit_photobook_photos
Changes text across a created book. `rewrites` gives new words to texts already in the book: each names its page and the text's current words (part of them is enough when only one text on the page contains them), as get_photobook_pages with detail "texts" lists them; the text keeps its place and style. Translating or rewriting many texts is one rewrite per text. `replace` swaps a word or phrase in every text that holds it (whole words, any case). Both reach every page, the cover title included; the cover title and the book's name are separate (the name is edit_photobook_design). `style` applies the same font, colour, size, weight, italics, alignment or background to every text in the book, or only to the pages inside it, or only to the covers. `dateLabels` adds a small label with the date each photo was taken (on every photo, or on the first photo of each new day), or removes the labels. Any combination in one call. Fonts must be one of the book's fonts; colours are hex values. Adding a caption to a page, or removing a text, is set_photobook_captions / remove_photobook_texts. Pages are numbered as the preview labels them. What could not be done is reported in `results`.
edit_photobook_texts
Reports where the reader's photo book is: no photos yet, photos still uploading, photos ready to design, the book made (with its style and page count), or claimed into the reader's browser. With the composer's composerId it describes the photos the reader picked in the panel.
get_photobook_status
Hands a created book over to the user's browser, where they keep editing it and order it: refreshes its link and brings the photo book panel's Keep editing & order button forward. The reader taps it to open the book in their browser, where the page shows a 6-digit code that they type into the panel's Confirm box; the book then moves to their browser's editor, for checkout and for any edit the photo book tools cannot make. Nothing is ordered or paid by this tool.
continue_photobook_in_browser
Shows the photo book composer: an interactive card, inside the conversation, where the user picks photos from their device to make a photo book. This call only displays the card and saves nothing. Uploading and laying out the book happen later in the card, only when the user picks photos and presses its Create button. Photos attached to the chat itself cannot be passed to this tool. The composer does the whole job on its own, so photobook_start_upload, photobook_ingest_photos and create_photobook are only needed where there is no interface to show, such as an agent reading files from a filesystem. It is not the catalogue: sizes, covers and prices are photobooks_search.
open_photobook_composer
Duplicates pages of a created book: each copy goes right after its page, and a blank page is added near the end to keep the page count even. The covers and half of a panorama cannot be duplicated, the product's maximum page count holds and the price follows the page count. Pages are numbered as the preview labels them: 1 is the first page inside the book, with no offset for the cover. Every page number in one call refers to the book as it was before the call; after an earlier change, use the page numbers that change reported. What happened to each page is reported in `results`.
duplicate_photobook_pages
Called by the composer widget when it is shown again, to find the book it made. Takes the card's own id from open_photobook_composer. get_photobook_status reports the same book's progress in words.
get_composer_book
Makes the photo book from the photos the reader picked in the composer panel. With the composer's composerId it starts the panel's upload and design, exactly as the panel's Create button does, and reports that it has started (status "started"); the book appears in the panel when it is done, and get_photobook_status reports progress. If no photos have been picked yet, open_photobook_composer shows the panel. Calling it again returns the book already made rather than a second one. The uploader script and the panel itself call it with a session id once the photos are uploaded, and get the finished book and its link back; the link's page shows a 6-digit code that the reader confirms in the photo book panel.
create_photobook
The composer panel's own call once its photos are uploaded — the same action as create_photobook. The panel calls it; a model calls create_photobook.
photobook_create
Reports how a created book is laid out. By default returns a summary: page count, spread count, photo count and shape. `detail: "texts"` lists the words on each page, which is how a caption or title is found before moving or removing it.
get_photobook_pages
Returns the commands to download and run the photobook uploader, which makes a photo book from photos on disk, at any number of photos, including a single one. It needs a shell; hosts without one use open_photobook_composer. The script gets the presigned URLs, verifies them, uploads with retries, processes the photos and creates the book, then prints a short summary and the link. It is version-controlled and tested, and it replaces calling the individual photobook tools one by one.
get_photobook_uploader
Draws an illustrated cover for a created book and puts it on the book straight away — the only way an illustration reaches the book and its print — replacing the cover in use (the photo cover can be brought back with choose_photobook_cover). Give EITHER `place` — a destination such as 'Japan' or 'Lake Garda', for 'illustrate the cover with our trip to Japan' — OR `subject` — a few words describing one thing to draw, such as 'a black dog' or 'a pine forest'. One illustration per call, at most 6 per book; every result says how many are left. Calling again with the same place or subject draws a new take on it. Illustrations are always drawn in one of the illustration styles (flat (modern flat vector travel illustration), doodle (hand-drawn felt-tip travel journal doodle), sketch (pencil-and-ink notebook sketch)), never as photos, and stay family-friendly: no real people, weapons, sexual content, or characters and brands that belong to someone else. Takes about half a minute.
illustrate_photobook_cover
Lists the photo book sizes and cover types sold in a country, with their ids.
get_photobook_products
Returns the price of one photo book, identified by product id or by its size, shape and cover type. The full browsable catalogue is photobooks_search; making a book from photos is open_photobook_composer.
fetch_book_price
Moves pages of a created book to another place in it, next to the page named in `to`. Nothing is added or removed. The covers stay where they are, and a photo spread across two pages moves as a pair. Pages are numbered as the preview labels them: 1 is the first page inside the book, with no offset for the cover. Every page number in one call refers to the book as it was before the call; after an earlier change, use the page numbers that change reported. What happened to each move is reported in `results`.
move_photobook_pages
Reads the uploaded originals, generates thumbnails, extracts EXIF and stores everything. Runs after the PUTs from photobook_start_upload have finished. Takes at most 10 keys per call, so larger uploads take several calls.
photobook_ingest_photos
Removes pages from a created book, with everything on them. Pages are printed in pairs (1 and 2, 3 and 4, ...), so removing a page also removes the page printed with it; name one page of each pair. The covers cannot be removed, the product's minimum page count holds, the price follows the page count, and a page carrying half of a panorama whose other half would stay is not removed. Pages are numbered as the preview labels them: 1 is the first page inside the book, with no offset for the cover. Every page number in one call refers to the book as it was before the call; after an earlier change, use the page numbers that change reported. What happened to each page is reported in `results`.
remove_photobook_pages
Removes pins from a map in a created book and reframes the map on the pins that are left. A pin is named by its label, or part of it; every pin whose label contains those words is removed. Names that match no pin are reported in `results` with the pins the map has. The map itself stays.
remove_photobook_map_pins
Removes text from specific pages of a created book (a caption, a title or an opening line) and re-lays each page so the photos take the space back. Moving a text is this plus set_photobook_captions on the right page. Each text is named by its words in `text`; part of them is enough when only one text on the page contains them, and leaving `text` out clears the whole page. get_photobook_pages with detail "texts" lists what each page says. Takes any number of pages at once. Pages are numbered as the preview labels them: 1 is the first page inside the book, with no offset for the cover. The inside covers are named instead ("inside front cover", "inside back cover"); the printed front and back covers come from the cover design and cannot be changed here. Texts that do not match, and pages left blank, are reported in `results`.
remove_photobook_texts
Opens the full-screen preview of a created book, so the reader can look through every spread. Use it when the reader asks to see the book, its pages, spreads or inside. It changes nothing.
show_photobook_preview
Low-level primitive; most callers want get_photobook_uploader instead. The uploader script (photos on disk) and the composer widget (hosts with a UI) call it, and both handle verification, retries and batching that a direct call does not. Each call returns about 1KB of presigned URL per photo. Reserves upload slots for photos and returns one presigned PUT URL per photo. Upload each file's RAW BYTES to its uploadUrl with an HTTP PUT and the given Content-Type (for example: curl -X PUT --upload-file <path> -H "Content-Type: image/jpeg" "<uploadUrl>"), then call photobook_ingest_photos with the returned keys. Thumbnails and metadata are produced server-side — never resize anything yourself. At most 25 photos per call: to send more, call this again with the same sessionId. A book holds up to 500 photos.
photobook_start_upload
Switches a created book's cover to the photo cover it had before any illustration (option 0) or to an illustration made earlier for it (option 1 for the first, 2 for the second, and so on, as listed in `coverIllustrations.options`). Draws nothing new and does not count towards the illustration limit.
choose_photobook_cover
Changes the layout of one page of a created book to one of its alternative layouts, and saves it. Name the page as the reader counts it in `page` ("page 4" is 4) and, optionally, which alternative in `option` (1 is the first, the default; asking again with 2, 3 … walks through the others). The photos on the page stay the same; only their arrangement changes.
apply_photobook_page_layout
Builds an augmented-reality model (Apple AR Quick Look) of a created book, so the reader can see it as a physical book on a table. The photo book panel then shows a View in AR button. It opens on an iPhone or iPad; Android and desktop are not supported.
get_photobook_ar_preview
Writes a short caption onto specific pages of a created book, such as captions under the photos or a title on a page, and re-lays each page so the photos make room for the words. Takes any number of pages at once; they are written together. A caption already on a page is replaced, and the old words are not kept. An empty string removes a page's caption. Pages are numbered as the preview labels them: 1 is the first page inside the book, with no offset for the cover. The front and back covers are not numbered and cannot be captioned; their words come from the cover design. Pages the book does not have are reported in `results`.
set_photobook_captions
Reframes a map in a created book so all of its pins are in view, undoing a centring on one pin. The pins themselves do not change.
fit_photobook_map_to_pins
Photo9 ChatGPT Plugin FAQ
How the directory, categories and Discoverability Score work.
Read the methodologyHow do I improve Photo9's ChatGPT Plugin discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
What are Photo9 alternatives on ChatGPT?
As of 2026-11-02, Photo9 competes with AdvenBook, AutoPrint, Bonfire, CipherForces Print, Create Prints, decoradesign, Fourthwall, GiftsToPrint and 23 more in ChatGPT Custom Print & Personalized Keepsakes, ranked by public Discoverability Score.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.