Get an Instagram topic

Get an Instagram Popular topic: its title, description and related searches, plus its curated posts.

GET/v2/instagram/topics/{topic}
1credit
x-api-keystringheader

API key (`sfk_...`)

Parameters
2
topicstringrequiredpath

A topic such as `harry potter`, or its instagram.com/popular link.

cursorstringoptionalquery

`nextCursor` from the previous page.

min 1 chars · max 16384 chars

Response fields
114

Endpoint-specific response payload.

datalookupStatus
string

`found` when Instagram has a Popular page for the topic; `not_found` when it has none (the topic is too rare or unknown). A later page is always `found`.

one of: found, not_found

The topic, on the first page only. Null on later pages and when `lookupStatus` is `not_found`.

datatopictitle
stringnullable

Topic title as Instagram shows it.

datatopicdescription
stringnullable

Short generated description of the topic. Null when Instagram gives none.

Pages the description draws on, in the order its footnote markers cite them. Null when there is no description.

datatopicsourceUrls[]
stringoptional

min 1 chars

datatopicmediaCount
integernullable

Posts Instagram counts under the topic. Null when not given.

≥ 0

Related searches Instagram suggests for the topic. Null when not given.

datatopicrelatedTerms[]
stringoptional

min 1 chars

One page of the posts Instagram curates for the topic, in its ranking (not chronological). Empty when `lookupStatus` is `not_found`.

datamedia[]id
string

Media id.

pattern: ^\d+$

datamedia[]shortcode
stringnullable

Shortcode used in the media URL. Null for stories.

datamedia[]url
stringnullable

Public URL: `/reel/` for Reels, `/p/` otherwise. Null for stories.

datamedia[]kind
string

`post`, `reel` or `story`.

one of: post, reel, story

datamedia[]mediaType
stringnullable

`image`, `video` or `carousel`. Null when unknown.

one of: image, video, carousel, null

datamedia[]caption
stringnullable

Caption text.

datamedia[]altText
stringnullable

Alt text Instagram generated or the owner wrote. Null when none or not reported.

datamedia[]createdAt
stringnullable

When it was posted.

The account that posted it. Null when unknown.

datamedia[]ownerid
stringnullable

Instagram user id.

pattern: ^\d+$

datamedia[]ownerhandle
stringnullable

Username, without @.

datamedia[]ownerdisplayName
stringnullable

Display name.

datamedia[]owneravatarUrl
stringnullable

Profile picture. Instagram CDN URL; it expires after a while.

datamedia[]ownerverified
booleannullable

Whether the account is verified.

datamedia[]ownerprivateAccount
booleannullable

Whether the account is private.

Engagement counts. Null when this view doesn't report one.

datamedia[]metricslikeCount
integernullable

Likes. Null when hidden or not reported.

≥ 0

datamedia[]metricscommentCount
integernullable

Comments.

≥ 0

datamedia[]metricsplayCount
integernullable

Plays, for videos. Counts Instagram plays only, not plays of a cross-posted copy on other apps.

≥ 0

datamedia[]metricsshareCount
integernullable

Shares.

≥ 0

datamedia[]metricssaveCount
integernullable

Saves.

≥ 0

datamedia[]metricslikesHidden
booleannullable

Whether the owner hides the like count.

datamedia[]imageUrl
stringnullable

Image, or a video's cover image. Instagram CDN URL; it expires after a while.

datamedia[]thumbnailUrl
stringnullable

Small preview image. Instagram CDN URL; it expires after a while.

datamedia[]videoUrl
stringnullable

Video file. Instagram CDN URL; it expires after a while.

datamedia[]durationSec
numbernullable

Video length in seconds, to the millisecond.

Pixel size. Null when unknown.

datamedia[]dimensionswidth
integer

Width in pixels.

≥ 0

datamedia[]dimensionsheight
integer

Height in pixels.

≥ 0

Every item of a carousel, in order. Null when not a carousel.

datamedia[]carousel[]id
stringnullable

Media id of this item.

pattern: ^\d+$

datamedia[]carousel[]mediaType
stringnullable

`image` or `video`. Null when unknown.

one of: image, video, null

datamedia[]carousel[]imageUrl
stringnullable

Image, or a video's cover. Instagram CDN URL; it expires after a while.

datamedia[]carousel[]videoUrl
stringnullable

Video file. Instagram CDN URL; it expires after a while.

datamedia[]carousel[]durationSec
numbernullable

Video length in seconds, to the millisecond. Null for images.

Pixel size. Null when unknown.

datamedia[]carousel[]dimensionswidth
integer

Width in pixels.

≥ 0

datamedia[]carousel[]dimensionsheight
integer

Height in pixels.

≥ 0

datamedia[]carousel[]altText
stringnullable

Alt text Instagram generated or the owner wrote. Null when none or not reported.

Music or original audio. On a story, the music sticker. Null when none.

datamedia[]audioid
stringnullable

Audio id.

pattern: ^\d+$

datamedia[]audiotitle
stringnullable

Song or sound title.

datamedia[]audioartist
stringnullable

Artist name.

datamedia[]audioisOriginal
booleannullable

Whether it is original audio rather than licensed music.

datamedia[]audioartistHandle
stringnullable

Username of the account behind original audio.

Collab co-authors. Empty when none.

datamedia[]coauthors[]id
stringnullable

Instagram user id.

pattern: ^\d+$

datamedia[]coauthors[]handle
stringnullable

Username, without @.

datamedia[]coauthors[]displayName
stringnullable

Display name.

datamedia[]coauthors[]avatarUrl
stringnullable

Profile picture. Instagram CDN URL; it expires after a while.

datamedia[]coauthors[]verified
booleannullable

Whether the account is verified.

datamedia[]coauthors[]privateAccount
booleannullable

Whether the account is private.

Accounts tagged in the media. Empty when none. Null when this view doesn't carry tags.

datamedia[]taggedUsers[]id
stringnullable

Instagram user id.

pattern: ^\d+$

datamedia[]taggedUsers[]handle
stringnullable

Username, without @.

datamedia[]taggedUsers[]displayName
stringnullable

Display name.

datamedia[]taggedUsers[]avatarUrl
stringnullable

Profile picture. Instagram CDN URL; it expires after a while.

datamedia[]taggedUsers[]verified
booleannullable

Whether the account is verified.

datamedia[]taggedUsers[]privateAccount
booleannullable

Whether the account is private.

Tagged location. Null when none.

datamedia[]locationid
stringnullable

Location id.

pattern: ^\d+$

datamedia[]locationname
stringnullable

Place name.

datamedia[]locationlat
numbernullable

Latitude.

datamedia[]locationlng
numbernullable

Longitude.

datamedia[]isPaidPartnership
booleannullable

Whether it is labelled as a paid partnership.

Brands named in the paid-partnership label. Empty when it is not a partnership. Null when this view doesn't say.

datamedia[]sponsors[]id
stringnullable

Instagram user id.

pattern: ^\d+$

datamedia[]sponsors[]handle
stringnullable

Username, without @.

datamedia[]sponsors[]displayName
stringnullable

Display name.

datamedia[]sponsors[]avatarUrl
stringnullable

Profile picture. Instagram CDN URL; it expires after a while.

datamedia[]sponsors[]verified
booleannullable

Whether the account is verified.

datamedia[]sponsors[]privateAccount
booleannullable

Whether the account is private.

datamedia[]commentsDisabled
booleannullable

Whether the owner turned comments off. Null when this view doesn't say.

datamedia[]isPinned
booleannullable

Whether the owner pinned it to their profile (to the Reels tab, when listed there). Null when this view doesn't say.

Story-only details. Null for posts and Reels.

datamedia[]storyexpiresAt
stringnullable

When the story expires, or expired for a story kept in a highlight.

Link stickers.

datamedia[]storylinkStickers[]url
string

Link destination: the address the sticker opens, not Instagram's redirect.

min 1 chars

datamedia[]storylinkStickers[]displayUrl
stringnullable

Text shown on the sticker. Can be null on a profile's first lookup.

Accounts mentioned. On a profile's first lookup, an account's `id`, `avatarUrl` and `verified` can be null.

datamedia[]storymentions[]id
stringnullable

Instagram user id.

pattern: ^\d+$

datamedia[]storymentions[]handle
stringnullable

Username, without @.

datamedia[]storymentions[]displayName
stringnullable

Display name.

datamedia[]storymentions[]avatarUrl
stringnullable

Profile picture. Instagram CDN URL; it expires after a while.

datamedia[]storymentions[]verified
booleannullable

Whether the account is verified.

datamedia[]storymentions[]privateAccount
booleannullable

Whether the account is private.

The post or Reel the story re-shares. Null when none.

datamedia[]storysharedMediaid
string

Media id of the shared post or Reel.

pattern: ^\d+$

datamedia[]storysharedMediashortcode
string

Shortcode of the shared post or Reel.

min 1 chars

Pagination state. Pass `nextCursor` as `cursor` for the next page while `hasMore` is true.

datapagekind
string

one of: cursor, offset, page

datapagenextCursor
stringnullable
datapagehasMore
booleannullable

Null when continuation is unknown for this page.

datapagestart
integernullable

≥ 0

datapagepage
integernullable

≥ 0

datapagecount
integernullable

≥ 0

datapagereturnedCount
integer

≥ 0

datapagetotal
integernullable

≥ 0

datapagetotalPages
integernullable

≥ 0

Metadata about the API response.

metarequestId
string

Unique request identifier for tracing this API call.

min 1 chars

metacreditsCharged
integer

Credits charged for this request.

≥ 0

metaversion
string

Public API version that served the response.

one of: v2

Code example

curl "https://api.socialfetch.dev/v2/instagram/topics/morning%20coffee%20routine" \
  -H "x-api-key: YOUR_API_KEY"

Responses

An Instagram Popular topic and its posts.