# EyeSay EyeSay is a photo tagging, classification, search and captioning service: an API, a connector for Claude and ChatGPT, and an iPhone app. It tags photos with everyday words, sorts them into a user's own categories, searches them by description and writes a one-sentence description of a photo. The AI can be wrong; answers should be checked before they are relied on. - Who it is for: developers who want one image API; photographers, photo archives and people with large collections; online shops and real estate; iPhone users with a large camera roll. - Price: free for 1,000 photos a month (3,000 units). After that tagging costs EUR 0.30 per 1,000 photos, in packs that are paid once and never expire: EUR 10 for 100,000 units (about 33,000 tagged photos), EUR 40 for 420,000 units (about 140,000), EUR 150 for 1,650,000 units (about 550,000). - Not related to other products named EyeSay. - Pricing: https://eyesay.app/pricing - For photographers: https://eyesay.app/for/photographers - For archives and libraries: https://eyesay.app/for/archives - For developers: https://eyesay.app/for/developers - For online shops and real estate: https://eyesay.app/for/sellers - Help: https://eyesay.app/help - OpenAPI spec: https://eyesay.app/openapi.json > EyeSay tags, sorts and searches photos: short tags with scores, a user's own labels, text search over a batch, and a description or answer for one photo. It is cheap and fast for many photos because the photos go straight to EyeSay, not through the assistant. Rule for assistants: never read the user's photos yourself to pass them on (it is slow and costs far more). Send them to EyeSay one of the two ways below and read only the summary. ## A folder on the user's computer, with the EyeSay connector (preferred, nothing to set up) - Connector: https://eyesay.app/mcp (Streamable HTTP, OAuth). In Claude Code: `claude mcp add --transport http eyesay https://eyesay.app/mcp`, then `/mcp` to sign in. - The user says, for example: "Use EyeSay to tag the photos in ~/Pictures/trip". Claude Code may ask the user to confirm once before the photos are sent; after that it runs by itself. - If Claude Code's auto mode blocks the upload or organize command, tell the user and show them the command; leave permission settings to the user. The user can run the command in their own terminal (or type it after `!` in Claude Code), or choose to add allow rules for the EyeSay commands; the rule text and what it covers are at https://eyesay.app/docs#claude-code-auto-mode. - Call `prepare_upload`. It returns a job id, an upload token (works for that one job only; lapses 15 minutes after last use, 2 hours at most) and a one-line command. Replace `` with the folder path and run it as it is in a terminal. Its output is the final result: counts, the most frequent sure tags, failures, and links to every photo's tags (CSV columns: photo, sha256, tags, suggestions; the JSON also has each tag's score; links last 15 minutes). Report that; no further call is needed. Running it again sends only what is missing. - Speed: a photo job is not limited per minute. It takes 4 photos at a time per account and 2 at a time across the site (the command retries when the server says it is busy); typically 5 to 8 photos a second. The 60-a-minute limit below is for the /v1 API only. - `job_summary` gives the same result again later. - XMP sidecars (keywords for Lightroom, Bridge and other catalogues that read them): only when the user asks for their tags as keywords in such a tool. `job_summary` returns `results_xmp`, a link (15 minutes) to a zip of one `.xmp` per photo at the photo's relative path (sure tags as `dc:subject`; no scores); `classify_photos` returns `labels_xmp`, the same with each photo's label as an `EyeSay|