Instagram

Two endpoints for public Instagram data. Profile gives you an account's size and recent performance; hashtag gives you what is being posted in a niche and who is posting it. Both are read only and only see what a logged out visitor could see.


POST/v1/social/instagram/profile

Profile

Profile stats plus the most recent posts, with engagement rate computed over the posts analysed.

Required attributes

  • Name
    handle
    Type
    string
    Description

    The Instagram username, with or without @.

Optional attributes

  • Name
    posts
    Type
    integer
    Description

    Recent posts to analyse, 5 to 50. Default 12. Capped by your plan.

Response fields

  • Name
    engagement.engagement_rate_pct
    Type
    number
    Description

    Average likes plus comments per post, divided by followers, as a percentage.

  • Name
    posts[].type
    Type
    string
    Description

    image, video or carousel.

  • Name
    posts[].likes_hidden
    Type
    boolean
    Description

    true when the account hides like counts. likes is 0 in that case, which is not the same as unpopular.

  • Name
    posts[].views
    Type
    integer
    Description

    Plays for videos. null for images and carousels.

Returns 404 not_found for private accounts and accounts that do not exist.

Request

POST
/v1/social/instagram/profile
curl -X POST https://suvjexogmfpvxjcktvuk.supabase.co/functions/v1/api/v1/social/instagram/profile \
  -H "Authorization: Bearer $PENGU_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"handle": "nike", "posts": 12}'

Response

{
  "data": {
    "handle": "nike",
    "checked_at": "2026-09-09T11:43:31.911Z",
    "profile": {
      "full_name": "Nike",
      "biography": "Just Do It.",
      "followers": 291273140,
      "following": 265,
      "posts_total": 1664,
      "verified": true,
      "is_business": true,
      "external_url": "http://empli.fi/nike"
    },
    "engagement": {
      "posts_analyzed": 12,
      "avg_likes": 106756,
      "avg_comments": 1494,
      "engagement_rate_pct": 0.04
    },
    "posts": [
      {
        "url": "https://www.instagram.com/p/DcyZo6EDijg/",
        "type": "carousel",
        "caption": "No moment is too small to win. Grab the Sabrina 4 “The Switch” launching 9.5",
        "hashtags": [],
        "likes": 42913,
        "likes_hidden": false,
        "comments": 415,
        "views": null,
        "posted_at": "2026-09-02T13:59:48.000Z",
        "owner": "nikebasketball"
      },
      // ...
    ]
  },
  "meta": {
    "credits_charged": 5,
    "credits_remaining": 478.5,
    "request_id": "2a1d0b4e-6b7c-4d2f-9f1e-0c3b5a7d9e11"
  }
}

POST/v1/social/instagram/hashtag

Hashtag

Recent public posts under a hashtag, plus the creators posting under it ranked by engagement. Useful for niche research and a first pass at influencer discovery.

Required attributes

  • Name
    hashtag
    Type
    string
    Description

    The hashtag, with or without #.

Optional attributes

  • Name
    posts
    Type
    integer
    Description

    Posts to fetch, 10 to 50. Default 20. Capped by your plan.

Response fields

  • Name
    creators
    Type
    array
    Description

    Accounts seen in the fetched posts, ranked by average likes and comments. Follower counts need a separate profile call per creator.

Request

POST
/v1/social/instagram/hashtag
curl -X POST https://suvjexogmfpvxjcktvuk.supabase.co/functions/v1/api/v1/social/instagram/hashtag \
  -H "Authorization: Bearer $PENGU_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"hashtag": "skincare", "posts": 20}'

Response

{
  "data": {
    "hashtag": "skincare",
    "checked_at": "2026-09-09T11:44:10.204Z",
    "count": 20,
    "posts": [
      {
        "url": "https://www.instagram.com/p/DdEItjitXO8/",
        "type": "image",
        "caption": "Q+A Vitamin C Brightening Serum ...",
        "hashtags": [
          "skincare",
          "vitaminc",
          "serum"
        ],
        "likes": 312,
        "likes_hidden": false,
        "comments": 14,
        "views": null,
        "posted_at": "2026-09-09T09:12:41.000Z",
        "owner": "european.beautyo"
      },
      // ...
    ],
    "creators": [
      {
        "handle": "european.beautyo",
        "url": "https://www.instagram.com/european.beautyo/",
        "posts": 2,
        "avg_likes": 312,
        "avg_comments": 14
      },
      // ...
    ]
  },
  "meta": {
    "credits_charged": 7.5,
    "credits_remaining": 471,
    "request_id": "7c9e2f10-3b44-4a8d-b1e2-5d6f7a8b9c0d"
  }
}

Was this page helpful?