image

 

Let’s be real for a second. Trying to scrape Instagram manually is a nightmare. They change their CSS class names more often than I change my socks, and rate limits on the frontend are brutal. If you’re trying to build a dashboard to track influencers, monitor competitors, or just display a feed on a lobby screen, you need a stable JSON stream, not a fragile web scraper.

We’re going to build a simple content dashboard using SteadyAPI. We'll focus on finding a user, grabbing their profile stats (to calculate engagement), and pulling their high-res media.


Obtain API key

Get your API key


The Setup

Before writing code, you need an API key. You pass this in the header of every request.

Header:

Authorization: Bearer {YOUR_AUTH_KEY}

Check out the Authentication docs if you get stuck here. Also, keep in mind the Rate Limit is 15 requests/sec, which is plenty for a dashboard application.


Step 1: Find Your Target

You might know the username, but sometimes you need to verify it or find related accounts. The Search endpoint is your entry point. It gives you the internal id and the username, which confirms the account exists before you try to pull data.

Endpoint

GET /v1/instagram/search

Docs: SteadyAPI Docs: Instagram General Search

The Request

curl --request GET \
  --url 'https://api.steadyapi.com/v1/instagram/search?search=mrbeast' \
  --header 'Authorization: Bearer {YOUR_AUTH_KEY}'

What you get back

The API returns a list of users matching that string. You want to grab the username or id from the top result.

{
  "body": [
    {
      "id": 2278169415,
      "username": "mrbeast",
      "full_name": "MrBeast",
      "is_verified": true,
      "profile_pic": "https://..."
    }
  ]
}

Key Fields

id
The internal Instagram account identifier required for deeper lookups

username
The confirmed public handle of the account

is_verified
Indicates whether the profile is officially verified

profile_pic
CDN URL for the user’s profile image


Step 2: Get The "Vitals" (Profile Stats)

A dashboard isn't useful without context. Is this post performing well relative to their follower count? To know that, we need the profile metadata.

Endpoint

GET /v1/instagram/profile

Docs: SteadyAPI Docs: Instagram Profile

You simply pass the username parameter. This gives you the follower count, which is the denominator for engagement rate calculations.


Step 3: The Content Feed (The Heavy Lifting)

This is the core of the dashboard. We want the images, the video clips, the captions, and the like counts.

Endpoint

GET /v1/instagram/posts

Docs: SteadyAPI Docs: Instagram Posts Feed


Code Implementation

Python

import requests

url = "https://api.steadyapi.com/v1/instagram/posts"

headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}"
}

params = {
    "username": "mrbeast"
}

response = requests.get(url, headers=headers, params=params)
data = response.json()

for post in data['body']:
    print(f"Post ID: {post['shortcode']}")
    print(f"Likes: {post['like_count']}")
    print(f"Media: {post['media_url']}")
    print("---")

JavaScript (Node / Browser)

const url = new URL("https://api.steadyapi.com/v1/instagram/posts");
url.searchParams.append("username", "mrbeast");

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json"
};

fetch(url, { method: "GET", headers })
    .then(response => response.json())
    .then(data => {
        data.body.forEach(post => {
            console.log(`Caption: ${post.caption}`);
            console.log(`Image: ${post.thumbnail_url}`);
        });
    })
    .catch(console.error);

PHP

<?php
$client = new \GuzzleHttp\Client();

$response = $client->request(
    'GET',
    'https://api.steadyapi.com/v1/instagram/posts',
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
        ],
        'query' => [
            'username' => 'mrbeast',
        ],
    ]
);

$body = json_decode($response->getBody(), true);

foreach ($body['body'] as $post) {
    echo "Likes: " . $post['like_count'] . "\n";
}
?>

The Data Structure

{
  "id": "3627347799613702778",
  "shortcode": "DJW7ZrwxQJ6",
  "media_type": 2,
  "product_type": "clips",
  "caption": "It's my Birthday so I'm giving away...",
  "like_count": 8413943,
  "comment_count": 7327981,
  "media_url": "https://...",
  "thumbnail_url": "https://...",
  "permalink": "https://www.instagram.com/p/DJW7ZrwxQJ6/"
}

Key fields for your dashboard

thumbnail_url
Use this for grid view loading speed

media_url
Full-resolution media for detail view

like_count & comment_count
Engagement overlays for dashboard cards

product_type
Detect Reels (clips) vs images


3 Real-World Use Cases

Influencer Vetting Tool

Build an engagement calculator using /v1/instagram/posts + /v1/instagram/profile.

Digital Signage

Fetch brand content hourly and display using direct media_url.

Competitor Watchlist

Combine /v1/hashtags/search with /v1/instagram/search to monitor trends.


Handling Pagination

If you need more posts, use the pagination token from:

"meta": {
    "pagination_token": "Mzc2NDYwNjAyMzkzNjgwMTQ4Ml8yMjc4MTY5NDE1...",
    "count": 12
}

Then request:

?pagination_token=YOUR_TOKEN


That’s it. No headless browsers, no IP bans, just JSON.

Go build something cool.


Learn more or explore other endpoints:
SteadyAPI Docs Home

How to Read TikTok Video Comments Using SteadyAPI Oct 05, 2026

How to Read TikTok Video Comments Using SteadyAPI

Read TikTok comments 20 at a time. Video 7106594312292453675 has 1269 comments. The next cursor is the string 20.

How to Get an AliExpress Description Using SteadyAPI Oct 12, 2026

How to Get an AliExpress Description Using SteadyAPI

Turn a product-detail description token into ordered text modules. The product id alone is not enough.

How to Find Vehicles for Sale Using SteadyAPI Oct 11, 2026

How to Find Vehicles for Sale Using SteadyAPI

Search vehicle listings by make, model, and ZIP. Price and mileage on each row are numbers.

How to Track Amazon New Releases Using SteadyAPI Oct 10, 2026

How to Track Amazon New Releases Using SteadyAPI

Pull one category’s new-release ranking. Store each row’s ASIN, rank, and price string.