> **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/users-userid-photos-list>
- **Markdown (.mdx) URL:** <https://www.socialfetch.dev/platforms/flickr/users-userid-photos-list.mdx>

---

# Flickr Photostream API

A user’s photos, newest first, with the same full record as a single photo lookup.

`GET /v1/flickr/users/{userId}/photos` returns `data.user` (a short profile summary) and a page of `data.photos`, newest first. Each row is the full photo record: id, title, description, owner, dates, counts, licence, sizes, tags, geo, notes and video state. The route accepts an NSID or a path alias.

Use `limit` (1 to 100, default 100) and follow `page.nextCursor` while `page.hasMore` is true. `page.totalItems` is the total rows in the list and can change between calls; `page.reachableItems` is how many rows this route can reach. An unknown person returns `lookupStatus: not_found` with an empty list.

## Request

- **Endpoint:** `GET /v1/flickr/users/{userId}/photos`
- **Credits:** 1 credit
Failed requests are free
- **Input:** by NSID or alias
- **Full reference:** [docs](https://www.socialfetch.dev/docs/api/v1/flickr/users/userid/photos/list)
- **Platform page:** [/platforms/flickr](https://www.socialfetch.dev/platforms/flickr)

## FAQ

### How do I name the person?

Use the NSID or path alias, for example bees or 12037949754@N01. Both forms work for this list.

### Are the rows full photo records?

Yes. Each row carries sizes, counts, dates, licence, tags, geo and the owner summary, not just an id and a title.

### How much does a photostream page cost?

Pricing is documented on the operation in the API registry (shown on this page). Confirm on every response with meta.creditsCharged: that field is the billing source of truth. Each paginated page is a separate billed request.

### How do I page through a large photostream?

Set limit up to 100 and follow page.nextCursor while page.hasMore is true. A cursor is bound to the filters it was issued for, so start again without a cursor if you change them.
