Operated by Sourcelane✓ verified
Fetch Instagram highlights and their stories for any public profile.
Downloads and scrapes Instagram highlight reels and their constituent story items without requiring an Instagram account or login. The connector retrieves per-highlight metadata (title, cover image) and enumerates every media item inside each reel, extracting direct image and video URLs, thumbnails, posting timestamps, link-sticker URLs, mentioned usernames, and structured highlight metadata. Results are organized by highlight with full media lists, enabling media download, archival, brand monitoring, competitor research, influencer analysis, and structured social media data extraction for analytics.
Verified Sep 28, 3:55 AM
$0.015
per result
Up to 66 per call. Only pay for results returned; failed calls are refunded.
Instagram highlight downloader
Save highlight videos and photos directly from profiles
Brand monitoring
Track how brands organize and update their highlight reels over time
Competitor research
See what products, campaigns, or announcements competitors are pinning to their profile
Influencer analysis
Audit highlight content and engagement hooks for marketing research
Content archiving
Back up highlight media before it disappears or gets edited
Social media scraping
Collect structured Instagram data for analysis pipelines or dashboards
List of Instagram usernames to fetch highlights for
Optional settings
| Window | Uptime | Success rate | p50 | p95 | Calls |
|---|---|---|---|---|---|
| 24h | — | — | — | — | 0 |
| 7d | — | — | — | — | 0 |
| 30d | — | — | — | — | 0 |
Call it through Sourcelane's gateway or MCP server. We run the connector, apply your agent's spend guardrails, and bill only the results returned.
Call it via Sourcelane
curl -X POST https://api.usesourcelane.com/v1/call \
-H "Authorization: Bearer sl_live_your_agent_key" \
-H "Content-Type: application/json" \
-d '{"listing":"instagram-highlights-scraper","params":{"usernames":["natgeo","nike"]},"maxResults":10}'Request params
| Field | Type | Required | Description |
|---|---|---|---|
usernames | array | required | List of Instagram usernames to fetch highlights for (max 20) |
maxHighlightsPerUser | integer | optional | Maximum number of highlights to scrape per username, taken in the order Instagram returns them (pinned/most recent first). Set to 0 for unlimited. Lower values reduce cost since each highlight's stories require an extra API call. |
Each result contains
| Field | Type | Description |
|---|---|---|
username | string | Username |
highlightId | string | — |
title | string | Highlight |
coverUrl | string | Cover |
mediaCount | integer | Media |
stories | array | Stories |
Pick your tool and connect in under a minute. Then just ask — for example: “Pull the last 20 posts from @natgeo and tell me which formats get the most engagement.”
Connect Claude
Web, desktop and mobile. One click, then confirm.
Adds the Sourcelane MCP server with your key as a header.
claude mcp add --transport http sourcelane https://api.usesourcelane.com/mcp \
--header "Authorization: Bearer sl_live_your_agent_key"Alternative to the connector URL: add to claude_desktop_config.json, then restart Claude.
{
"mcpServers": {
"sourcelane": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://api.usesourcelane.com/mcp",
"--header",
"Authorization:${AUTH_HEADER}"
],
"env": {
"AUTH_HEADER": "Bearer sl_live_your_agent_key"
}
}
}
}Add to ~/.cursor/mcp.json (or Windsurf's mcp_config.json).
{
"mcpServers": {
"sourcelane": {
"url": "https://api.usesourcelane.com/mcp",
"headers": {
"Authorization": "Bearer sl_live_your_agent_key"
}
}
}
}Save as .vscode/mcp.json. VS Code prompts for your key once.
{
"servers": {
"sourcelane": {
"type": "http",
"url": "https://api.usesourcelane.com/mcp",
"headers": {
"Authorization": "Bearer ${input:sourcelane-key}"
}
}
},
"inputs": [
{
"type": "promptString",
"id": "sourcelane-key",
"description": "Sourcelane agent key",
"password": true
}
]
}Create a GPT → Actions → Import from URL, then Authentication: API Key, Bearer.
https://usesourcelane.com/openapi.jsonOne POST. Pass maxResults to cap cost.
curl -X POST https://api.usesourcelane.com/v1/call \
-H "Authorization: Bearer sl_live_your_agent_key" \
-H "Content-Type: application/json" \
-d '{"listing":"instagram-highlights-scraper","params":{"usernames":["natgeo","nike"]},"maxResults":10}'Wrap the REST call as a tool, or point an MCP client at the endpoint.
import requests
res = requests.post(
"https://api.usesourcelane.com/v1/call",
headers={"Authorization": "Bearer sl_live_your_agent_key"},
json={
"listing": "instagram-highlights-scraper",
"params": {"usernames":["natgeo","nike"]},
"maxResults": 10,
},
timeout=300,
)
body = res.json()
print(body["receipt"]["chargedMicros"], "micro-USD for", body["receipt"]["results"], "results")
print(body["data"])—
0 reviews
Leave a review
Loading reviews…