Skip to main content

Documentation Index

Fetch the complete documentation index at: https://rocks.docs.rive.wtf/llms.txt

Use this file to discover all available pages before exploring further.

Every API key is tied to one IP. To apply for a key, DM southctrl on Discord.
Use the endpoint path below, replace the required params, and send Authorization: Bearer YOUR_API_KEY.

Most Used Endpoints

Profile

Look up a public Instagram profile

Stories

Get active stories for a user

Highlights

Fetch highlight reels and metadata

Post

Get a post by URL or shortcode
Start with profile if you only need user info. Use stories or highlights only for public accounts that currently expose that content.

Get Profile

Get detailed information about an Instagram profile.

Endpoint

GET /api/instagram/profile

Query Parameters

ParameterTypeRequiredDescription
usernamestringYesInstagram username

Example Request

curl -X GET "https://rocks.rive.wtf/api/instagram/profile?username=instagram" \
  -H "Authorization: Bearer YOUR_API_KEY"

Example Response

{
  "success": true,
  "data": {
    "id": "25025320",
    "username": "instagram",
    "fullName": "Instagram",
    "biography": "Discover what's new on Instagram 🔎✨",
    "profilePic": "https://scontent-iad6-1.cdninstagram.com/v/t51.82787-19/550891366_18667771684001321_1383210656577177067_n.jpg",
    "isPrivate": false,
    "isVerified": true,
    "isBusiness": false,
    "followers": 700991323,
    "following": 232,
    "posts": 8385,
    "externalUrl": "http://help.instagram.com",
    "accountType": 3,
    "bioLinks": [
      {
        "title": "",
        "url": "http://help.instagram.com"
      }
    ]
  }
}

Response Fields

FieldTypeDescription
successbooleanWhether the request was successful
idstringInstagram user ID
usernamestringUsername/handle
fullNamestringDisplay name
biographystringUser bio/description
profilePicstringProfile picture URL
isPrivatebooleanWhether account is private
isVerifiedbooleanVerification status
isBusinessbooleanWhether account is business account
followersnumberNumber of followers
followingnumberNumber of accounts following
postsnumberTotal number of posts
externalUrlstringExternal URL in bio
accountTypenumberType of account (1 = Personal, 2 = Creator, 3 = Business)
bioLinksarrayArray of bio links with URL and title

Get Stories

Get active stories from an Instagram profile.

Endpoint

GET /api/instagram/stories

Query Parameters

ParameterTypeRequiredDescription
usernamestringYesInstagram username
amountnumberNoNumber of stories (default: all)

Example Request

curl -X GET "https://rocks.rive.wtf/api/instagram/stories?username=instagram" \
  -H "Authorization: Bearer YOUR_API_KEY"

Example Response

{
  "success": true,
  "data": [
    {
      "id": 386513564076624783625025320,
      "mediaType": 1,
      "takenAt": "2026-03-31T18:01:34+00:00",
      "imageUrl": "https://scontent-iad6-1.cdninstagram.com/v/t51.82787-15/658206683_18740550940001321_7052292533031689339_n.jpg",
      "videoUrl": null,
      "videoDuration": 0.0,
      "user": {
        "pk": 25025320,
        "username": "instagram",
        "fullName": "Instagram",
        "profilePic": "https://scontent-iad6-1.cdninstagram.com/v/t51.82787-19/550891366_18667771684001321_1383210656577177067_n.jpg",
        "isPrivate": false,
        "isVerified": null
      }
    },
    {
      "id": 386513749628436774825025320,
      "mediaType": 1,
      "takenAt": "2026-03-31T18:05:16+00:00",
      "imageUrl": "https://scontent-iad6-1.cdninstagram.com/v/t51.82787-15/659643023_18740556085001321_3850051662962132257_n.jpg",
      "videoUrl": null,
      "videoDuration": 0.0,
      "user": {
        "pk": 25025320,
        "username": "instagram",
        "fullName": "Instagram",
        "profilePic": "https://scontent-iad6-1.cdninstagram.com/v/t51.82787-19/550891366_18667771684001321_1383210656577177067_n.jpg",
        "isPrivate": false,
        "isVerified": null
      }
    }
  ]
}

Response Fields

Story object includes:
FieldTypeDescription
idnumberStory ID
mediaTypenumberType of media (1 = Image, 2 = Video)
takenAtstringISO timestamp when story was posted
imageUrlstringImage URL
videoUrlstring | nullVideo URL (null if mediaType is image)
videoDurationnumberDuration of video in seconds (0 if image)
userobjectUser info (pk, username, fullName, profilePic, isPrivate, isVerified)

Get Highlights

Get highlights from an Instagram profile.

Endpoint

GET /api/instagram/highlights

Query Parameters

ParameterTypeRequiredDescription
usernamestringYesInstagram username
amountnumberNoNumber of highlights (default: all)

Example Request

curl -X GET "https://rocks.rive.wtf/api/instagram/highlights?username=instagram" \
  -H "Authorization: Bearer YOUR_API_KEY"

Example Response

{
  "success": true,
  "data": [
    {
      "id": 18223279177302854,
      "title": "CFO Podcast",
      "createdAt": "2024-06-28T20:31:11+00:00",
      "isPinnedHighlight": false,
      "mediaCount": 27,
      "coverMedia": "https://scontent-iad6-1.cdninstagram.com/v/t51.71878-15/551377207_662429250240179_6517642476883709504_n.jpg"
    },
    {
      "id": 18029499352961095,
      "title": "Meta AI ✍️",
      "createdAt": "2024-04-18T16:14:01+00:00",
      "isPinnedHighlight": false,
      "mediaCount": 53,
      "coverMedia": "https://scontent-iad6-1.cdninstagram.com/v/t51.71878-15/572959565_683033951543541_80681017689541270_n.jpg"
    },
    {
      "id": 17914256252161608,
      "title": "IG Tips 📝",
      "createdAt": "2022-01-27T21:49:31+00:00",
      "isPinnedHighlight": false,
      "mediaCount": 100,
      "coverMedia": "https://scontent-iad6-1.cdninstagram.com/v/t51.82787-15/563616145_18109328230514806_54750836396957926440_n.jpg"
    }
  ]
}

Response Fields

FieldTypeDescription
idnumberHighlight ID
titlestringHighlight title
createdAtstringISO timestamp when highlight was created
isPinnedHighlightbooleanWhether highlight is pinned
mediaCountnumberNumber of media items in the highlight
coverMediastringCover image URL

Get Post

Get media information from an Instagram post URL.

Endpoint

GET /api/instagram/post

Query Parameters

ParameterTypeRequiredDescription
urlstringYesInstagram post URL
amountnumberNoNumber of media items

Example Request

curl -X GET "https://rocks.rive.wtf/api/instagram/post?url=https://instagram.com/reel/DUyTN_gkVGj" \
  -H "Authorization: Bearer YOUR_API_KEY"

Example Response

{
  "success": true,
  "data": [
    {
      "pk": 3833210757274751395,
      "id": 383321075727475139577443244866,
      "code": "DUyTN_gkVGj",
      "mediaType": 2,
      "takenAt": "2026-02-15T16:52:37+00:00",
      "likeCount": 30897,
      "commentCount": 81,
      "playCount": 284142,
      "title": null,
      "thumbnailUrl": "https://scontent-iad6-1.cdninstagram.com/v/t51.82787-15/634252478_17864210913580867_1123440006585974191_n.jpg",
      "videoUrl": "https://scontent-iad6-1.cdninstagram.com/o1/v/t16/f2/m69/AQPd6zW_pppriWmdN9icZ5kftCIKCIYN4IM5a00k3W9arK6rXeKZ6Lpbd5voUewq52aNH-9fTa2GhYw6Y-viH4hW.mp4",
      "videoDuration": 8.637,
      "imageUrls": [
        "https://scontent-iad6-1.cdninstagram.com/v/t51.82787-15/634252478_17864210913580867_1123440006585974191_n.jpg"
      ],
      "user": {
        "pk": 77443244866,
        "username": "lordofmemes.mm",
        "fullName": "lordofmemes",
        "profilePic": "https://scontent-iad6-1.cdninstagram.com/v/t51.82787-19/562599741_17846608557580867_7302728300856692644_n.jpg",
        "isPrivate": false,
        "isVerified": null
      }
    }
  ]
}

Response Fields

FieldTypeDescription
pknumberPost primary key
idnumberFull post ID (includes user PK)
codestringShortcode used in the post URL
mediaTypenumberMedia type (1 = Image, 2 = Video/Reel)
takenAtstringISO timestamp when post was created
likeCountnumberNumber of likes
commentCountnumberNumber of comments
playCountnumberNumber of video plays (0 for images)
titlestring | nullPost title/caption if available
thumbnailUrlstringThumbnail image URL
videoUrlstring | nullVideo URL (null for image posts)
videoDurationnumberVideo duration in seconds (0 for images)
imageUrlsarrayArray of image URLs
userobjectPost author info (pk, username, fullName, profilePic, isPrivate, isVerified)

Get Comments

Get comments from an Instagram post.

Endpoint

GET /api/instagram/comments

Query Parameters

ParameterTypeRequiredDescription
urlstringYesInstagram post URL
amountnumberNoNumber of comments

Example Request

curl -X GET "https://rocks.rive.wtf/api/instagram/comments?url=https://instagram.com/reel/DUyTN_gkVGj" \
  -H "Authorization: Bearer YOUR_API_KEY"

Example Response

{
  "success": true,
  "data": [
    {
      "pk": 17979757640971009,
      "text": "",
      "createdAt": "2026-02-20T03:43:26+00:00",
      "user": {
        "pk": 77443244866,
        "username": "lordofmemes.mm",
        "fullName": "lordofmemes",
        "profilePic": "https://scontent-iad6-1.cdninstagram.com/v/t51.82787-19/562599741_17846608557580867_7302728300856692644_n.jpg",
        "isPrivate": false,
        "isVerified": false
      }
    },
    {
      "pk": 18557213974032327,
      "text": "@epsteinbludersen us?",
      "createdAt": "2026-02-17T15:33:37+00:00",
      "user": {
        "pk": 71309056610,
        "username": "chizzumiru",
        "fullName": "Chi       -     ・:*+.\\(( °ω° ))/.:+",
        "profilePic": "https://scontent-iad6-1.cdninstagram.com/v/t51.82787-19/628297135_17898988428376611_1929549902425579130_n.jpg",
        "isPrivate": false,
        "isVerified": false
      }
    }
  ]
}

Response Fields

FieldTypeDescription
pknumberComment primary key
textstringComment text (empty string if emoji-only or no text)
createdAtstringISO timestamp when comment was posted
userobjectCommenter info (pk, username, fullName, profilePic, isPrivate, isVerified)

Error Responses

Invalid Username

{
  "error": "Invalid Instagram username: 'invalid@user'. Usernames may only contain letters, numbers, periods, and underscores (max 30 chars)."
}

User Not Found

{
  "error": "User not found: username_here"
}

Invalid Post URL

{
  "error": "Invalid Instagram post URL"
}

Notes

  • Only public Instagram profiles can be accessed through this API
  • Private or restricted profiles will return limited information
  • Stories and highlights data may be limited based on account privacy settings
  • API returns available public content from the profile
  • Usernames must contain only letters, numbers, periods, and underscores (max 30 characters)
  • mediaType is a number: 1 = Image, 2 = Video/Reel
  • Comment text may be an empty string if the comment contains only emojis or reactions
  • isVerified may be null in nested user objects (e.g. within story or post responses)

Use Cases

  • Social Analytics - Track Instagram influencer metrics and growth
  • Profile Verification - Verify Instagram creators in your platform
  • Content Discovery - Build Instagram profile search tools
  • Bot Integration - Display Instagram stats in Discord/Telegram bots
  • Engagement Analysis - Analyze post performance and audience comments