Social Fetch
Instagram

List Instagram profile posts

Lists public posts for an Instagram profile with cursor-based pagination. Private accounts, missing handles, and accounts with no posts can all surface as HTTP `200` with an empty `data.posts` page—this route does not expose `lookupStatus`. Call `GET /v1/instagram/profiles/{handle}` first when you need explicit `found` / `private` / `not_found` before interpreting an empty list.

Operation

GET/v1/instagram/profiles/{handle}/posts

Headers

x-api-keystringrequired(header)

API key (`sfk_...`)

Parameters

handlestringrequired

Instagram handle whose posts should be listed.

min 1 chars · max 64 chars

cursorstring(query)

Opaque pagination cursor from a previous response (`data.page.nextCursor`).

min 1 chars

Response fields

data
objectrequired

Endpoint-specific response payload.

dataposts
arrayrequired

Instagram posts for the requested profile page. An empty array can represent a private account, a missing handle, or simply no posts—use the profile endpoint first when you need explicit `lookupStatus`.

dataposts[]id
stringrequired

Instagram media id for this item (vendor-defined composite id).

min 1 chars

dataposts[]shortcode
stringrequired

Public shortcode used in the Instagram post URL.

min 1 chars

dataposts[]mediaType
stringrequired

Normalized media type.

one of: image, video, sidecar, unknown

dataposts[]caption
stringrequirednullable

Caption text when Instagram provides one.

dataposts[]takenAt
integerrequired

When the media was taken or posted (Unix epoch seconds).

dataposts[]url
stringrequired

Canonical public Instagram URL for this media.

min 1 chars

dataposts[]displayUrl
string

Primary display image URL when available.

dataposts[]thumbnailUrl
string

Thumbnail or cover image URL when available.

dataposts[]videoUrl
string

Direct video URL when this item is a video and a URL is available.

dataposts[]likeCount
integer

Like count when Instagram exposes it.

≥ 0

dataposts[]commentCount
integer

Comment count when Instagram exposes it.

≥ 0

dataposts[]playCount
integer

Play or view count for video content when Instagram exposes it (Instagram-only views when distinguishable).

≥ 0

dataposts[]dimensions
object

Width and height when available.

dataposts[]dimensionswidth
integerrequired

Media width in pixels.

≥ 0

dataposts[]dimensionsheight
integerrequired

Media height in pixels.

≥ 0

dataposts[]taggedUsers
array

Users tagged in the media when Instagram exposes them.

dataposts[]taggedUsers[]handle
stringrequired

Tagged Instagram username without a leading @.

min 1 chars

dataposts[]taggedUsers[]platformUserId
string

Instagram numeric user id for the tagged account when present.

datapage
objectrequired

Pagination state for the current response.

datapagenextCursor
stringrequirednullable

Cursor to pass as `cursor` in the next request when more posts are available.

datapagehasMore
booleanrequired

Whether another page of posts is available from Instagram.

meta
objectrequired

Metadata describing the request and billing outcome.

metarequestId
stringrequired

Unique request identifier for tracing this API call.

min 1 chars

metacreditsCharged
integerrequired

Credits charged for this request.

≥ 0

metaversion
stringrequired

Public API version that served the response.

one of: v1

Code example

Responses

Instagram posts for the requested profile page. Empty `data.posts` is ambiguous without a profile preflight—see the operation description.

Error codes

bad_requestinsufficient_creditsinternal_errorlookup_failedtemporarily_unavailableunauthorized

On this page