List Instagram profile posts
List posts from an Instagram profile by handle.
Headers
Get your API keyAPI key (`sfk_...`)
Instagram handle whose posts should be listed.
min 1 chars · max 2048 chars
Opaque pagination cursor from a previous response.
min 1 chars
When true, hosts source media for 90 days and returns delivery URLs in each post's `hostedMedia`.
Endpoint-specific response payload.
Whether posts could be listed for this handle.
one of: found, private, not_found
Instagram posts for the requested profile page.
Instagram media id for this item (vendor-defined composite id).
min 1 chars
Public shortcode used in the Instagram post URL.
min 1 chars
Normalized media type.
one of: image, video, sidecar, unknown
Caption text when Instagram provides one.
When the media was taken or posted (ISO-8601).
Canonical public Instagram URL for this media.
min 1 chars
Source-platform CDN URL for the primary display image when available. It can expire or be rejected outside the original retrieval context; it is not a SocialFetch-hosted asset. Omitted when no syntactically usable URL is available.
Source-platform CDN URL for the thumbnail or cover image when available. It can expire or be rejected outside the original retrieval context; it is not a SocialFetch-hosted asset.
Source-platform CDN URL for the video when this item is a video and a usable URL is available. It can expire or be rejected outside the original retrieval context; it is not a SocialFetch-hosted asset. For durable hosted copies on this list route, pass `hostMedia=true`. For a single known post URL, `GET /v1/instagram/posts?downloadMedia=true` returns provider-hosted URLs in `downloads`.
Like count when Instagram exposes it.
≥ 0
Comment count when Instagram exposes it.
≥ 0
Play or view count for video content when Instagram exposes it (Instagram-only views when distinguishable).
≥ 0
Width and height when available.
Media width in pixels.
≥ 0
Media height in pixels.
≥ 0
Users tagged in the media when Instagram exposes them.
Tagged Instagram username without a leading @.
min 1 chars
Instagram numeric user id for the tagged account when present.
Present only when `hostMedia=true`. Hosted copies and/or per-asset failures for this post.
Whether SocialFetch stored a durable copy of this asset.
one of: stored, failed
Normalized media kind.
one of: image, video
Which source field this asset was derived from.
one of: display, thumbnail, video
Source-platform CDN URL that was requested for hosting. Still transient; prefer `url` when status is stored.
Time-limited SocialFetch delivery URL when status is stored. Re-request hostMedia (or a future refresh route) before this expires if you still need access; object retention may outlive the delivery URL.
ISO-8601 timestamp when the returned delivery URL stops working.
ISO-8601 timestamp when the stored object is deleted from SocialFetch storage (90-day tier).
MIME type of the stored bytes when status is stored.
min 1 chars
Stored size in bytes when status is stored.
≥ 0
Pixel width when known.
≥ 0
Pixel height when known.
≥ 0
Opaque parent entity id for this asset (post, reel, photo, or video id).
min 1 chars
Legacy Instagram media id alias for `entityId`. Prefer `entityId`.
min 1 chars
Typed failure code when status is failed.
min 1 chars
Short customer-safe failure message when status is failed.
min 1 chars
Pagination state for the current response.
Cursor to pass as `cursor` in the next request when more posts are available.
Whether another page of posts is available from Instagram.
Metadata describing the request and billing outcome.
Unique request identifier for tracing this API call.
min 1 chars
Credits charged for this request.
≥ 0
Public API version that served the response.
one of: v1
True when served from shared response cache. Credits still apply (full endpoint price); Age header may be present.
Code example
curl "https://api.socialfetch.dev/v1/instagram/profiles/charlidamelio/posts" \
-H "x-api-key: YOUR_API_KEY"Responses
Instagram posts for the requested profile.