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
| Parameter | Type | Required | Description |
|---|
| username | string | Yes | Instagram 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
| Field | Type | Description |
|---|
| success | boolean | Whether the request was successful |
| id | string | Instagram user ID |
| username | string | Username/handle |
| fullName | string | Display name |
| biography | string | User bio/description |
| profilePic | string | Profile picture URL |
| isPrivate | boolean | Whether account is private |
| isVerified | boolean | Verification status |
| isBusiness | boolean | Whether account is business account |
| followers | number | Number of followers |
| following | number | Number of accounts following |
| posts | number | Total number of posts |
| externalUrl | string | External URL in bio |
| accountType | number | Type of account (1 = Personal, 2 = Creator, 3 = Business) |
| bioLinks | array | Array of bio links with URL and title |
Get Stories
Get active stories from an Instagram profile.
Endpoint
GET /api/instagram/stories
Query Parameters
| Parameter | Type | Required | Description |
|---|
| username | string | Yes | Instagram username |
| amount | number | No | Number 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:
| Field | Type | Description |
|---|
| id | number | Story ID |
| mediaType | number | Type of media (1 = Image, 2 = Video) |
| takenAt | string | ISO timestamp when story was posted |
| imageUrl | string | Image URL |
| videoUrl | string | null | Video URL (null if mediaType is image) |
| videoDuration | number | Duration of video in seconds (0 if image) |
| user | object | User info (pk, username, fullName, profilePic, isPrivate, isVerified) |
Get Highlights
Get highlights from an Instagram profile.
Endpoint
GET /api/instagram/highlights
Query Parameters
| Parameter | Type | Required | Description |
|---|
| username | string | Yes | Instagram username |
| amount | number | No | Number 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
| Field | Type | Description |
|---|
| id | number | Highlight ID |
| title | string | Highlight title |
| createdAt | string | ISO timestamp when highlight was created |
| isPinnedHighlight | boolean | Whether highlight is pinned |
| mediaCount | number | Number of media items in the highlight |
| coverMedia | string | Cover image URL |
Get Post
Get media information from an Instagram post URL.
Endpoint
Query Parameters
| Parameter | Type | Required | Description |
|---|
| url | string | Yes | Instagram post URL |
| amount | number | No | Number 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
| Field | Type | Description |
|---|
| pk | number | Post primary key |
| id | number | Full post ID (includes user PK) |
| code | string | Shortcode used in the post URL |
| mediaType | number | Media type (1 = Image, 2 = Video/Reel) |
| takenAt | string | ISO timestamp when post was created |
| likeCount | number | Number of likes |
| commentCount | number | Number of comments |
| playCount | number | Number of video plays (0 for images) |
| title | string | null | Post title/caption if available |
| thumbnailUrl | string | Thumbnail image URL |
| videoUrl | string | null | Video URL (null for image posts) |
| videoDuration | number | Video duration in seconds (0 for images) |
| imageUrls | array | Array of image URLs |
| user | object | Post author info (pk, username, fullName, profilePic, isPrivate, isVerified) |
Get comments from an Instagram post.
Endpoint
GET /api/instagram/comments
Query Parameters
| Parameter | Type | Required | Description |
|---|
| url | string | Yes | Instagram post URL |
| amount | number | No | Number 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
| Field | Type | Description |
|---|
| pk | number | Comment primary key |
| text | string | Comment text (empty string if emoji-only or no text) |
| createdAt | string | ISO timestamp when comment was posted |
| user | object | Commenter 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