Facebook profile photos API
List public photos from a Facebook profile or Page — image URLs, thumbnails, dimensions, and accessibility captions when available — with cursor pagination in the shared Social Fetch envelope.
GET /v1/facebook/profiles/photos1 credit +2 credits per hosted file (hostMedia), max 24 files Max 49 credits Failed requests are free
About this endpoint
GET /v1/facebook/profiles/photos lists public photos for a profile or Page. Pass a full public url query param. On a completed lookup, branch on data.lookupStatus (found or not_found), then read data.photos and data.page. Each photo can include id, photoId, public url, accessibilityCaption, imageUrl, thumbnailUrl, and dimensions (width, height) when Facebook exposes them. When data.page.hasMore is true, pass data.page.nextCursor as the cursor query param on the next call. Bill from meta.creditsCharged.
imageUrl and thumbnailUrl are source-platform CDN links when Facebook exposes them. They can expire or fail outside the original retrieval context and are not SocialFetch-hosted assets. For SocialFetch-hosted copies on this list page, pass hostMedia=true (up to 24 assets / 90-day retention; +2 credits per successfully stored asset).
This route lists photos only. The mixed Page or profile feed is GET /v1/facebook/profiles/posts. Reels are GET /v1/facebook/profiles/reels. A single post by URL is GET /v1/facebook/posts.
Facebook profile photos API FAQ
How do I list Facebook photos for a profile or Page via API?
Call GET /v1/facebook/profiles/photos with your Social Fetch API key (x-api-key) and a public Facebook profile or Page url query param. Read data.lookupStatus, then data.photos and data.page. See the API docs for parameters and examples.
How much does the Facebook profile photos endpoint cost?
1 credit per successful list page by default. With hostMedia, +2 credits per hosted asset (up to 24 assets, 49 credits max). Always bill from meta.creditsCharged on the response. Each paginated page is a separate billed request.
How does pagination work on Facebook profile photos?
Each response includes data.page.nextCursor and data.page.hasMore. When hasMore is true, pass nextCursor as the cursor query param on the next request. The cursor is opaque.
What fields are in each Facebook profile photo?
Items can include id, photoId, public url, accessibilityCaption, imageUrl, thumbnailUrl, and dimensions with width and height when Facebook exposes them. Coverage follows what is publicly visible for that profile or Page.
What does lookupStatus mean on Facebook profile photos?
Branch on data.lookupStatus before you write rows. found means the profile or Page resolved and data.photos is the current page (it may still be empty on a last page). not_found means the URL did not resolve to a listable profile or Page — do not invent a photos grid. Keep meta.requestId if you need support on a failed list call.
Profile photos vs profile posts vs Reels vs a single Facebook post?
Use this route to page a profile or Page Photos tab. Use GET /v1/facebook/profiles/posts for the mixed feed. Use GET /v1/facebook/profiles/reels for Reels. Use GET /v1/facebook/posts when you already have a post URL.
Do I need Meta Graph API access or page admin rights?
No. Social Fetch returns publicly visible photos for enrichment-style lookups. Meta's Graph and Marketing APIs are for assets and ads accounts you control or that authorize your app — not arbitrary public competitor Pages.
Other Facebook endpoints
- ProfileGET /v1/facebook/profiles
- Profile postsGET /v1/facebook/profiles/posts
- Profile reelsGET /v1/facebook/profiles/reels
- Profile eventsGET /v1/facebook/profiles/events
- Post or reelGET /v1/facebook/posts
- CommentsGET /v1/facebook/posts/comments
- RepliesGET /v1/facebook/posts/comments/replies
- TranscriptGET /v1/facebook/posts/transcript