> **For coding agents and LLMs:** This is one Social Fetch marketing page (markdown export). For API orientation start with [`/llms.txt`](https://www.socialfetch.dev/llms.txt); for auth and crawl rules use [`/agents.txt`](https://www.socialfetch.dev/agents.txt); for every operation use [`/llms-endpoints.txt`](https://www.socialfetch.dev/llms-endpoints.txt).

## This page

- **On-site (HTML):** <https://www.socialfetch.dev/platforms/flickr>
- **Markdown (.mdx) URL:** <https://www.socialfetch.dev/platforms/flickr.mdx>

---

# Flickr API. Photos and the people behind them.

Photo records, photostreams, albums, galleries, groups and discussions, tags, Explore and search. Name a photo, person or group and get typed JSON back.

- 31 endpoints
- Photo sizes and counts
- 1 credit per request

Social Fetch exposes 31 routes under `/v1/flickr`. Photo routes return one photo with `owner`, `dates`, `counts`, `license`, `sizes`, `tags`, `geo`, `notes` and `video`; you can also read a photo's comments, EXIF, the people who favourited it, and the albums and groups that hold it. People routes return a profile with `counts.photos`, `counts.followers` and `counts.views`, plus a photostream, albums, galleries, favourites, following, groups, tags, photos the person is tagged in, and a search within one person's photos.

Discovery routes cover photo search by text, tags, dates, licence, media, person or place; a tag's photos; a day of Explore; trending tags; the latest public uploads; and people and group search. Group routes return the group with its counts and rules, the group pool, discussion topics and the replies in a topic. Commons institutions are listed as their own small dataset.

Every response is the `{ data, meta }` envelope with `data.lookupStatus`. A missing photo, person, album or group comes back as `not_found`; hidden EXIF comes back as `hidden`; a member-only group or pool comes back as `private`; an age-restricted group comes back as `restricted`. Paginated lists use `page.nextCursor` and return at most 100 rows a page. A page or cursor past the last page returns an empty list with `page.hasMore` false, not an error. Search and tag lists stop at 4,000 rows, group pools at 10,000 and a day of Explore at about 500.

## What you can get

- One photo with every size and URL, counts, dates, licence, tags, notes and the owner's public profile.
- Photostreams, albums, galleries, favourites, following, groups and tagged photos for one person.
- Photo search by text, tags, dates, licence, media, person or place, plus tag pages and Explore.
- Group details, pool photos, discussion topics and replies.
- Comments, EXIF with GPS, serial and owner tags removed, favourited-by lists and photo contexts.
- Trending tags, related tags, the latest uploads feed and the Commons institution list.

## Flickr endpoints

| Endpoint | Request | Credits | Docs |
| --- | --- | --- | --- |
| Photo | GET /v1/flickr/photos/{photoId} | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/flickr/photos/photoid/get) |
| Comments | GET /v1/flickr/photos/{photoId}/comments | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/flickr/photos/photoid/comments/list) |
| EXIF | GET /v1/flickr/photos/{photoId}/exif | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/flickr/photos/photoid/exif/get) |
| Favourited by | GET /v1/flickr/photos/{photoId}/favorites | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/flickr/photos/photoid/favorites/list) |
| Contexts | GET /v1/flickr/photos/{photoId}/contexts | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/flickr/photos/photoid/contexts/get) |
| User | GET /v1/flickr/users/{userId} | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/flickr/users/userid/get) |
| Photostream | GET /v1/flickr/users/{userId}/photos | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/flickr/users/userid/photos/list) |
| Albums | GET /v1/flickr/users/{userId}/albums | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/flickr/users/userid/albums/list) |
| Galleries | GET /v1/flickr/users/{userId}/galleries | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/flickr/users/userid/galleries/list) |
| Favourites | GET /v1/flickr/users/{userId}/favorites | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/flickr/users/userid/favorites/list) |
| User search | GET /v1/flickr/users/{userId}/photos/search | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/flickr/users/userid/photos/search/list) |
| People search | GET /v1/flickr/users/search | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/flickr/users/search/list) |
| Following | GET /v1/flickr/users/{userId}/following | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/flickr/users/userid/following/list) |
| User groups | GET /v1/flickr/users/{userId}/groups | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/flickr/users/userid/groups/list) |
| User tags | GET /v1/flickr/users/{userId}/tags | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/flickr/users/userid/tags/list) |
| Photos of | GET /v1/flickr/users/{userId}/photos-of | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/flickr/users/userid/photos-of/list) |
| Album | GET /v1/flickr/albums/{albumId} | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/flickr/albums/albumid/get) |
| Gallery | GET /v1/flickr/galleries/{galleryId} | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/flickr/galleries/galleryid/get) |
| Gallery comments | GET /v1/flickr/galleries/{galleryId}/comments | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/flickr/galleries/galleryid/comments/list) |
| Search | GET /v1/flickr/photos/search | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/flickr/photos/search/list) |
| Tag photos | GET /v1/flickr/tags/{tag}/photos | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/flickr/tags/tag/photos/list) |
| Explore | GET /v1/flickr/explore | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/flickr/explore/list) |
| Trending tags | GET /v1/flickr/tags/trending | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/flickr/tags/trending/list) |
| Latest uploads | GET /v1/flickr/photos/latest | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/flickr/photos/latest/list) |
| Related tags | GET /v1/flickr/tags/{tag}/related | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/flickr/tags/tag/related/list) |
| Group search | GET /v1/flickr/groups/search | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/flickr/groups/search/list) |
| Group | GET /v1/flickr/groups/{groupId} | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/flickr/groups/groupid/get) |
| Group pool | GET /v1/flickr/groups/{groupId}/photos | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/flickr/groups/groupid/photos/list) |
| Discussions | GET /v1/flickr/groups/{groupId}/discussions | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/flickr/groups/groupid/discussions/list) |
| Replies | GET /v1/flickr/groups/{groupId}/discussions/{topicId}/replies | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/flickr/groups/groupid/discussions/topicid/replies/list) |
| Institutions | GET /v1/flickr/commons/institutions | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/flickr/commons/institutions/list) |

## How to start

1. **Create an API key.** Sign up at Social Fetch and copy a key (`sfk_…`). New accounts get 100 free credits, enough to try every Flickr route on a few public photos and profiles.
2. **Pick an id and a route.** Photo and album ids are the digits in the page URL. People and groups accept an NSID or a path alias such as `bees` or `central`. Send `x-api-key` on every request.
3. **Page and branch on lookupStatus.** Check `data.lookupStatus` before storing a row, follow `page.nextCursor` while `page.hasMore` is true, and bill from `meta.creditsCharged`.

## Pricing

Each Flickr route costs one credit per completed request, shown on every endpoint page. Each page of a list is a separate request. Credits never expire on pay-as-you-go packs, and `meta.creditsCharged` on every response is the billing source of truth.

## Compared with the official API

Flickr data comes in different shapes for photos, people, groups and tag feeds. Social Fetch gives you one envelope and one paging model across all 31 routes, typed `found`, `not_found`, `hidden`, `private` and `restricted` states instead of error strings, EXIF already stripped of location, serial and owner tags, and photo URLs rather than copied or rehosted files.

## FAQ

### What can I read from Flickr with Social Fetch?

Photos with every size and their owner, public profiles and their photostreams, albums, galleries, favourites, following, groups and tags, group pools and discussions, comments, EXIF, favourited-by lists, photo contexts, tag pages, Explore, trending and related tags, the latest uploads feed, people and group search, and the Commons institution list.

### How do I identify a photo, person or group?

Photo and album ids are the digits in the page URL, for example 2362225867. People and groups accept an NSID such as 12037949754@N01 or a path alias such as bees or central. Tags go in the path and can be non-English, for example 日本.

### How many rows can I page through?

Lists return up to 100 rows per page and use page.nextCursor for the next page. Photo, people and group search stop at 4,000 rows, group pools at 10,000, and a day of Explore at about 500. Page reachableItems says how many rows the route can actually reach.

### What does lookupStatus mean?

found means the entity or list was returned. not_found means the photo, person, album, gallery, group or topic does not exist or was deleted. hidden means the owner hides EXIF. private means a group or pool is member-only. restricted means a group is age-restricted. HTTP 200 only means the request finished.

### Does the EXIF route return location or serial numbers?

No. GPS, serial-number and owner or copyright tags are removed before the tags are returned, and the response's filtered array names the categories that were removed. The remaining tags are returned as tagspace, tag, label and value.

### Can I get a person's followers or lifetime views?

The public profile record carries photos, followers, following, views, tags, geotagged photos, favourites and photos-in-groups counts where they are public. Fields that are not public are returned as null rather than guessed.

### What do a photo's sizes and licence look like?

sizes is a list of key, label, url, width, height and media entries, including original where the record shows it. license carries the id, name and url for ids 0 to 16; an id outside that range keeps a null name and url.

### Can I search a group's pool or a person's photos?

Use GET /v1/flickr/groups/{groupId}/photos for a group pool and GET /v1/flickr/users/{userId}/photos/search with tag or query for one person's photos. The general photo search takes text, tags, dates, licence, media, person and place filters.

### How much does the Flickr API cost?

Every Flickr route costs one credit per completed request, and each page of a list is billed separately. Check meta.creditsCharged on every response. New accounts start with 100 free credits.

### Can I call Flickr routes from agents or MCP?

Yes. Every Flickr route is a typed MCP tool and is reachable through Ask (POST /v1/ask) in plain English. Use the typed routes for production jobs.

## Related

- [Flickr Photo API](https://www.socialfetch.dev/platforms/flickr/photos-photoid): One photo with sizes, counts, dates and owner (`GET /v1/flickr/photos/{photoId}`).
- [Flickr Photo Search API](https://www.socialfetch.dev/platforms/flickr/photos-search-list): Search by text, tags, dates, licence, media, person or place (`GET /v1/flickr/photos/search`).
- [Flickr Profile API](https://www.socialfetch.dev/platforms/flickr/users-userid): A public profile with counts and profile text (`GET /v1/flickr/users/{userId}`).
- [Flickr Group API](https://www.socialfetch.dev/platforms/flickr/groups-groupid): A group with counts, rules and activity (`GET /v1/flickr/groups/{groupId}`).
- [Ask in plain English](https://www.socialfetch.dev/ask): Route a natural-language photo or profile request to the matching Flickr operation.
- [Hosted MCP](https://www.socialfetch.dev/mcp): Call Flickr tools from Cursor or Claude with the same credit metering as REST.
