canonical: https://jentic.com/apis/flickr.com/flickr

# Flickr API Schema

The Flickr API exposes a Swagger-described subset of Flickr's photo-sharing platform, covering photo and photoset metadata, search, EXIF and license data, group pools, galleries, favorites, and user profiles. It also includes the OAuth request and access token endpoints plus the photo upload endpoint, so an integration can authenticate a user, search the public photo corpus, and read context such as comments, sizes, and discussion threads.

## For AI agents

Search Flickr photos, read photo metadata and EXIF, browse groups, galleries, and favorites, and upload images on behalf of an authenticated user.

## Scope

Does not handle image editing, video hosting, or payment processing - use for Flickr photo search, metadata retrieval, and authenticated photo upload only.

## Capabilities

- Search the public Flickr photo corpus by tags, text, license, or user with flickr.photos.search
- Read photo metadata, sizes, EXIF data, and license details for any accessible photo
- Browse photoset, gallery, and group-pool contexts for a given photo
- List the photos a person has uploaded or favorited and read their public profile
- Read group discussion topics and replies for community engagement workflows
- Upload new photos through the OAuth-signed upload endpoint

## Use cases

### License-aware image discovery

Editorial teams and AI agents searching for reusable imagery filter Flickr by license through flickr.photos.search and flickr.photos.licenses.getInfo. Combined with flickr.photos.getSizes, this returns a vetted list of Creative Commons photos at the resolution the publication needs, with attribution data already attached.

Example prompt: Search for Creative Commons photos tagged 'mountains', then return the photo IDs, sizes, and license names for the top 10 results

### Photo metadata enrichment

Photo-management tools enrich an image record with EXIF camera and lens data, GPS context, and license metadata pulled from Flickr. The flickr.photos.getInfo, flickr.photos.getExif, and flickr.photos.getSizes calls together expose enough detail to populate a digital-asset-management record from a single photo URL.

Example prompt: Given a Flickr photo ID, fetch its EXIF, sizes, and license, and write a JSON record with camera model, focal length, dimensions, and licence name

### Community photo curation

Group administrators and curators read pool members, group info, and discussion topics through flickr.groups.getInfo, flickr.groups.pools.getPhotos, and the flickr.groups.discuss endpoints. This drives moderation tooling and lets curators feature member photos in galleries with citation context.

Example prompt: List the most recent 50 photos in a Flickr group pool and the latest 5 discussion topics in that group

### AI agent image research

An AI research agent uses Flickr through Jentic to find Creative Commons reference photos for a writing or design task, retrieve their full sizes and licence names, and cite them correctly. Jentic returns the right Flickr operation for each step of the workflow without the agent browsing all 25 endpoints by hand.

Example prompt: Find five Creative Commons photos of red pandas, return the original-size URL and required attribution string for each

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/rest?method=flickr.photos.search` | Search the public photo corpus |
| GET | `/rest?method=flickr.photos.getInfo` | Get full metadata for a photo |
| GET | `/rest?method=flickr.photos.getExif` | Read EXIF data for a photo |
| GET | `/rest?method=flickr.photos.getSizes` | List the available sizes and download URLs for a photo |
| GET | `/rest?method=flickr.photos.licenses.getInfo` | Look up Creative Commons and other license names |
| GET | `/rest?method=flickr.people.getPhotos` | List photos uploaded by a specific user |
| POST | `/upload` | Upload a new photo on behalf of an authenticated user |

## Key resources

- **Photos** — Search, read metadata, sizes, EXIF, license info, and contextual data for Flickr photos
- **Photosets** — Read photoset listings and the photos contained in each set
- **Groups** — Read group info, group pool photos, and discussion topics and replies
- **Galleries** — Read curated galleries and the photos they contain
- **People** — Look up Flickr user profiles and the photos they have uploaded
- **OAuth** — OAuth 1.0a request and access token endpoints used to sign user-authorized calls

## Why Jentic

- **Setup:** Wiring the Flickr API by hand means signing every request with OAuth 1.0a using consumer keys, secrets, and per-user tokens, and learning its REST-over-query method conventions with your own retries. Through Jentic you install once, import Flickr from the API Directory, store the credentials once, and your agent calls it.
- **Permission scoping:** Flickr selects its target through the method query parameter rather than an owned resource in the URL path, so limit the agent to the operations it needs, such as photo search and metadata retrieval, and leave authenticated upload out of the allowed set unless required. You choose which operations it may call.
- **Credential handling:** Your Flickr OAuth 1.0a keys, secrets, and per-user tokens are stored once, encrypted, by your own Jentic One instance and used to sign requests at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'find Creative Commons photos of mountains', and Jentic returns the matching flickr.photos.search call with its input schema so the agent calls the right method without learning Flickr's REST-over-query conventions.

## Related APIs

- **Instagram API** — Instagram is a competing photo-sharing platform with its own publishing and discovery API
- **Cloudinary Upload API** — Cloudinary transforms and serves the images that an agent discovers on Flickr
- **Shutterstock API** — Shutterstock licenses commercial stock photography rather than browsing user-uploaded Creative Commons content

## FAQ

### What authentication does the Flickr API use?

The Flickr API uses OAuth 1.0a request and access tokens at `/oauth/request_token` and `/oauth/access_token.` Through Jentic the OAuth secrets are stored in the encrypted vault and request signing happens at execution time, so an agent never holds the raw consumer secret.

### Can I filter Flickr photos by license with the API?

Yes. flickr.photos.search accepts a license parameter, and flickr.photos.licenses.getInfo returns the name and URL for each license code so the integration can render correct attribution.

### How do I read EXIF data for a Flickr photo?

Call flickr.photos.getExif with the photo ID. The response returns camera model, lens, focal length, ISO, aperture, and other tags exposed by the photographer.

### What are the rate limits for the Flickr API?

Flickr publishes a default cap of 3,600 calls per hour per API key, with bursts subject to throttling. Treat 429 and 503 responses as the source of truth and back off accordingly.

### How do I search Flickr photos through Jentic?

Search Jentic for 'search Flickr photos', load the schema for flickr.photos.search, and execute the call with your tags or text query. Install with pip install jentic and run it through Jentic One, the self-hosted execution layer.

### Can I upload a photo to Flickr through this API?

Yes. POST a multipart upload to /upload with an OAuth-signed Authorization header. The user must have authorized your application with write scope first.

### Can I limit what my agent is allowed to do with the Flickr API?

Yes. Because the Flickr API picks its target through the method query parameter rather than a resource in the URL path, your self-hosted Jentic One instance lets you decide which methods the agent may call. You can allow read operations such as flickr.photos.search, flickr.photos.getInfo, and flickr.photos.getExif while leaving the authenticated /upload endpoint out of the permitted set. Your own rules govern which operations and which OAuth credentials the agent uses, so it can only run the Flickr calls you have approved.
