Operated by Sourcelane✓ verified
A unified Instagram scraping connector that extracts structured, keyword-rich data from profiles, posts, reels, hashtag feeds, search results, story highlights, tagged posts, reels by audio track, and video transcripts. It ingests target identifiers (user handles/profile URLs, post/reel URLs, hashtags, search keywords, audio IDs, highlight IDs) and produces normalized, flat records for profiles, posts/reels, highlights, highlight items, search results and transcripts; records include profile metadata and contact details, follower/following and post counts, post and reel metadata (captions, timestamps, engagement metrics, media and video URLs, play counts, durations, carousel media and tagged users), audio metadata for music/original sound and aggregates of hashtag or keyword feed items. The connector can generate speech-to-text transcripts for video content and can append the full upstream payload to each record when requested. Runs support per-target result limits, date-range filtering for feeds and reels, media-type filtering for hashtag results, and discovery of reels by audio usage.
Verified Sep 28, 3:55 AM
$0.002
per post or reel
Up to 100 per call. Only pay for results returned; failed calls are refunded.
| 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-scraper-all-in-one","params":{"scrapeType":"profile","maxItems":5},"maxResults":10}'Request params
| Field | Type | Required | Description |
|---|---|---|---|
scrapeType | string | required | Pick the type of data to extract, then fill in ONLY the input field named in brackets for that type. |
usernames | array | optional | Instagram usernames or profile URLs, with or without @. Used by: Profile details, User posts, User reels, Tagged posts, Story highlights list. |
postUrls | array | optional | Full URLs of Instagram posts or reels, e.g. https://www.instagram.com/p/ABC123/ or https://www.instagram.com/reel/ABC123/ (plain shortcodes also work). Used by: Post / Reel details, Video transcript. |
queries | array | optional | Keywords to search for. Used by: Search, Search profiles, Search reels by keyword. |
hashtags | array | optional | Hashtags to scrape, with or without the # symbol. Used by: Hashtag posts. |
highlightIds | array | optional | Story highlight IDs or highlight URLs (get IDs first with the 'Story highlights list' scrape type). Used by: Story highlight items. |
audioIds | array | optional | Instagram audio IDs or audio page URLs (https://www.instagram.com/reels/audio/123.../). The audioId of any reel result works here. Used by: Reels using an audio. |
maxItems | integer | optional | Maximum number of results to return for each username, hashtag, query or audio. 0 = unlimited. Only applies to scrape types that return lists. Capped at 100 per call. |
datePosted | string | optional | Filter results by recency. Used by: Hashtag posts and Search reels by keyword. |
mediaType | string | optional | Which media to return for Hashtag posts: everything, or reels only. |
includeRawData | boolean | optional | Add every field Instagram exposes for each result under the 'raw' field, including ones left out of the standard output. |
Each result contains
| Field | Type | Description |
|---|---|---|
type | string | Type |
id | string | Id |
title | string | — |
coverUrl | string | — |
mediaCount | integer | — |
username | string | Username |
url | string | Url |
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. Paste one URL.
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-scraper-all-in-one","params":{"scrapeType":"profile","maxItems":5},"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-scraper-all-in-one",
"params": {"scrapeType":"profile","maxItems":5},
"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…