Photography — entry 006 of 25
Flickr
Flickr's REST API (also available as XML-RPC, SOAP, JSON, or PHP-serialized responses) exposes photo search, metadata, favorites, groups, and the site's large Creative Commons-licensed photo collection to third-party applications. Every call requires an application API key, which alone is enough for the read-only public methods that make up most integrations; Flickr's own OAuth 1.0a flow is layered on only for actions performed against a specific signed-in user's account, like uploading or editing. Non-commercial use is free and capped at 3,600 queries/hour per key; commercial use is possible only by prior arrangement with Flickr, owned by SmugMug since 2018.
GreatAPIs Score
Auth quickstart
- Sign up with the provider to get an API key.
- Send it on every request as a header
Authorization: <key> - The exact header isn't documented — Authorization is a common default; confirm in the provider's docs.
Your key is stored only in this browser (localStorage) and sent directly to the API — never to greatapis.
Endpoints
Public25
GET/oauth/access_token
| Name | In | Required | Type |
|---|---|---|---|
oauth_consumer_key | query | yes | string |
oauth_nonce | query | yes | string |
oauth_timestamp | query | yes | string |
oauth_signature_method | query | yes | string |
oauth_version | query | yes | string |
oauth_signature | query | yes | string |
oauth_verifier | query | yes | string |
oauth_token | query | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | OK | — |
GET/oauth/request_token
| Name | In | Required | Type |
|---|---|---|---|
oauth_consumer_key | query | yes | string |
oauth_nonce | query | yes | string |
oauth_timestamp | query | yes | string |
oauth_signature_method | query | yes | string |
oauth_version | query | yes | string |
oauth_signature | query | yes | string |
oauth_callback | query | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | OK | — |
GET/rest?method=flickr.favorites.getContext
| Name | In | Required | Type |
|---|---|---|---|
api_key | query | yes | string |
photo_id | query | yes | string |
user_id | query | no | string |
| Status | Description | Schema |
|---|---|---|
200 | OK | — |
GET/rest?method=flickr.favorites.getList
| Name | In | Required | Type |
|---|---|---|---|
api_key | query | yes | string |
user_id | query | yes | string |
min_fave_date | query | no | number |
max_fave_date | query | no | number |
page | query | no | number |
per_page | query | no | number |
| Status | Description | Schema |
|---|---|---|
200 | OK | — |
GET/rest?method=flickr.galleries.getPhotos
| Name | In | Required | Type |
|---|---|---|---|
api_key | query | yes | string |
gallery_id | query | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | OK | — |
GET/rest?method=flickr.groups.discuss.replies.getInfo
| Name | In | Required | Type |
|---|---|---|---|
api_key | query | yes | string |
group_id | query | no | string |
topic_id | query | yes | string |
reply_id | query | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | OK | — |
GET/rest?method=flickr.groups.discuss.topics.getInfo
| Name | In | Required | Type |
|---|---|---|---|
api_key | query | yes | string |
group_id | query | no | string |
topic_id | query | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | OK | — |
GET/rest?method=flickr.groups.discuss.topics.getList
| Name | In | Required | Type |
|---|---|---|---|
api_key | query | yes | string |
group_id | query | no | string |
page | query | no | number |
per_page | query | no | number |
| Status | Description | Schema |
|---|---|---|
200 | OK | — |
GET/rest?method=flickr.groups.getInfo
| Name | In | Required | Type |
|---|---|---|---|
api_key | query | yes | string |
group_id | query | no | string |
group_path_alias | query | no | string |
lang | query | no | string |
| Status | Description | Schema |
|---|---|---|
200 | OK | — |
GET/rest?method=flickr.groups.pools.getContext
| Name | In | Required | Type |
|---|---|---|---|
api_key | query | yes | string |
photo_id | query | yes | string |
group_id | query | no | string |
| Status | Description | Schema |
|---|---|---|
200 | OK | — |
GET/rest?method=flickr.groups.pools.getPhotos
| Name | In | Required | Type |
|---|---|---|---|
api_key | query | yes | string |
group_id | query | no | string |
| Status | Description | Schema |
|---|---|---|
200 | OK | — |
GET/rest?method=flickr.people.getInfo
| Name | In | Required | Type |
|---|---|---|---|
api_key | query | yes | string |
user_id | query | no | string |
| Status | Description | Schema |
|---|---|---|
200 | OK | — |
GET/rest?method=flickr.people.getPhotos
| Name | In | Required | Type |
|---|---|---|---|
api_key | query | yes | string |
user_id | query | yes | string |
safe_search | query | no | number |
min_upload_date | query | no | number |
max_upload_date | query | no | number |
min_taken_date | query | no | number |
max_taken_date | query | no | number |
content_type | query | no | number |
privacy_filter | query | no | number |
page | query | no | number |
per_page | query | no | number |
| Status | Description | Schema |
|---|---|---|
200 | OK | — |
GET/rest?method=flickr.photolist.getContext
| Name | In | Required | Type |
|---|---|---|---|
api_key | query | yes | string |
photo_id | query | yes | string |
photolist_id | query | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | OK | — |
GET/rest?method=flickr.photos.getContext
| Name | In | Required | Type |
|---|---|---|---|
api_key | query | yes | string |
photo_id | query | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | OK | — |
GET/rest?method=flickr.photos.getExif
| Name | In | Required | Type |
|---|---|---|---|
api_key | query | yes | string |
photo_id | query | yes | string |
secret | query | no | string |
| Status | Description | Schema |
|---|---|---|
200 | OK | — |
GET/rest?method=flickr.photos.getInfo
| Name | In | Required | Type |
|---|---|---|---|
api_key | query | yes | string |
photo_id | query | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | a photo | — |
GET/rest?method=flickr.photos.getSizes
| Name | In | Required | Type |
|---|---|---|---|
api_key | query | yes | string |
photo_id | query | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | Photo sizes | — |
GET/rest?method=flickr.photos.licenses.getInfo
| Name | In | Required | Type |
|---|---|---|---|
api_key | query | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | OK | — |
GET/rest?method=flickr.photos.search
| Name | In | Required | Type |
|---|---|---|---|
api_key | query | yes | string |
text | query | no | string |
tags | query | no | string |
user_id | query | no | string |
min_upload_date | query | no | string |
max_upload_date | query | no | string |
min_taken_date | query | no | string |
max_taken_date | query | no | string |
license | query | no | string |
sort | query | no | string |
privacy_filter | query | no | number |
bbox | query | no | string |
accuracy | query | no | string |
safe_search | query | no | number |
content_type | query | no | number |
machine_tags | query | no | string |
machine_tag_mode | query | no | string |
group_id | query | no | string |
contacts | query | no | string |
woe_id | query | no | string |
place_id | query | no | string |
media | query | no | string |
has_geo | query | no | string |
geo_context | query | no | string |
lat | query | no | string |
lon | query | no | string |
radius | query | no | number |
radius_units | query | no | string |
is_commons | query | no | boolean |
in_gallery | query | no | boolean |
is_getty | query | no | boolean |
per_page | query | no | number |
page | query | no | number |
| Status | Description | Schema |
|---|---|---|
200 | OK | — |
GET/rest?method=flickr.photosets.getContext
| Name | In | Required | Type |
|---|---|---|---|
api_key | query | yes | string |
photo_id | query | yes | string |
photoset_id | query | no | string |
| Status | Description | Schema |
|---|---|---|
200 | OK | — |
GET/rest?method=flickr.photosets.getList
| Name | In | Required | Type |
|---|---|---|---|
api_key | query | yes | string |
user_id | query | yes | string |
page | query | no | number |
per_page | query | no | number |
| Status | Description | Schema |
|---|---|---|
200 | OK | — |
GET/rest?method=flickr.photosets.getPhotos
| Name | In | Required | Type |
|---|---|---|---|
api_key | query | yes | string |
photoset_id | query | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | OK | — |
GET/rest?method=flickr.test.echo
| Name | In | Required | Type |
|---|---|---|---|
api_key | query | yes | string |
echo | query | no | string |
| Status | Description | Schema |
|---|---|---|
200 | OK | — |
POST/upload
multipart/form-data (required)
| Status | Description | Schema |
|---|---|---|
200 | OK | — |
Try it
Developer reference
https://api.flickr.com/services3,600 queries/hour per API key, aggregated across every user of the integration; keys that exceed it (or otherwise abuse the API) risk suspension. No published higher tier — heavier commercial use requires prior arrangement with Flickr.
- GET/rest?method=flickr.photos.search
- GET/rest?method=flickr.photos.getInfo
- GET/rest?method=flickr.people.getPhotos
- GET/rest?method=flickr.photosets.getPhotos
- POST/upload