↑ ↓ to move ↵ to open
Instagram API · Endpoint

Instagram Topic Search API

Get the popular content for an Instagram topic, by topic name, ID or link.

  • 1 credit per call
  • Failed calls are free
  • Updated
  • instagram.topic.search
Response completed
{  "category": "Sports",  "has_more": true,  "pages": 1,  "topic_id": "1283274535024498",  "topic_name": "Sports",  "topic_slug": "sports",  "total_count": 12,  "posts": [    {      "caption": "No handed catch 🤯\n\n#gymnastics #gymnast #olympics #sports #olympic",      "id": "3821162622834555967",      "play_count": 104409550,      "shortcode": "DUHfyj7Dbw_",      "type": "Video",      "url": "https://www.instagram.com/reel/DUHfyj7Dbw_/",      "user": {        "username": "iandgunther",        "id": "17841401267387798",        "is_verified": true      },      "video_versions": [        {          "height": 0,          "width": 0        },        {          "height": 0,          "width": 0        }      ]    },    {      "caption": "Imagine an eagle landing on your shoulder before a game 😳🦅 #MLBonNetflix \n\n#baseball #mlb #sports",      "id": "3862390664806429764",      "play_count": 10025526,      "shortcode": "DWZ99iHknRE",      "type": "Video",      "url": "https://www.instagram.com/reel/DWZ99iHknRE/",      "user": {        "username": "netflixsports",        "id": "17841474528124930",        "is_verified": true      },      "video_versions": [        {          "height": 0,          "width": 0        },        {          "height": 0,          "width": 0        }      ]    }  ]}
Try it live, free
Input

What you send

The input object of the request, with every field the endpoint accepts.

FieldTypeRequiredWhat it doesExample
topic string yes Known topic ID, topic slug, explore-topic URL, or public /popular/ URL travel
cursor string no
limit integer no Maximum deduplicated results From 1 to 120. Default: 24. 12
max_pages integer no Default: 2.
Response

Fields it returns

What each record in the response holds, with the values from the sample above.

FieldTypeWhat it isExample
posts[].caption string The post's caption. No handed catch 🤯 #gymnastics #gymnast #olympics #sports #olymp…
posts[].user.username string The account's username. iandgunther
posts[].id string The post's Instagram ID. 3821162622834555967
posts[].play_count integer How many times the video was played, as Instagram shows it. 104,409,550
posts[].shortcode string The post's short code, the last part of its link. DUHfyj7Dbw_
posts[].type string The kind of post, such as Video. Video
posts[].url string The post's link on Instagram. https://www.instagram.com/reel/DUHfyj7Dbw_/
posts[].user object The account that posted it. 3 fields
posts[].user.id string The posting account's Instagram ID. 17841401267387798
posts[].user.is_verified boolean Whether Instagram shows the account as verified. true
posts[].video_versions array The video files Instagram offers, one per size. 3 records
posts[].video_versions[].height integer 0
posts[].video_versions[].width integer 0
category string The topic's category. Sports
has_more boolean Whether another page of results is available. true
pages integer How many result pages were read for this answer. 1
posts array The matching posts. 3 records
topic_id string Instagram's ID for the topic. 1283274535024498
topic_name string The topic's name. Sports
topic_slug string The topic's name as it appears in its link. sports
total_count integer 12
REST API · MCP server

Call it from your code, or ask your agent

Set UPSCRAPE_API_KEY to your key and copy a working request.

curl --request POST \  --url https://data.upscrape.com/execute \  --header "Authorization: Bearer $UPSCRAPE_API_KEY" \  --header "Content-Type: application/json" \  --header "Prefer: wait=30" \  --data '{  "capability": "instagram.topic.search",  "input": {    "limit": 12,    "topic": "sports"  }}'
In your AI agent Claude · Cursor · any MCP client
1Add the Upscrape MCP server
https://data.upscrape.com/mcp
2Ask for the data in plain words

With Upscrape, get the Instagram topic search for topic "sports". Tell me what it costs before you run it, then show the results as a table.

The agent finds the endpoint, shows you the price, and runs it with your credits.
Instagram

More from the Instagram API

Questions

Instagram Topic Search API FAQ

The short answers. The docs have the long ones.

Still have a question? Talk to the people who build the endpoints.
How much does the Instagram Topic Search API cost?

1 credit per successful call, shown before it runs. You buy credits once, and paid credits never expire.

What do I send?

Send topic. The input fields below list every option with its type and limits.

Do I need an Instagram login?

No. It reads public Instagram data; nothing runs on your account.

Can my AI agent call it?

Yes, over MCP: the agent finds instagram.topic.search, checks its price and runs it with the same credits as the REST API.

Get started

Your first Instagram call is free.

Up to 100 free credits to start, no card needed.