Sourcelane

Instagram Keyword Posts Scraper

Instagram

Operated by Sourcelane✓ verified

Search Instagram posts, Reels and carousels by any keyword or phrase. Export captions, hashtags, likes, comments, views, dates, locations and author profiles.

Read full description

A scraper that performs Instagram-style keyword and phrase searches (like the Instagram search bar) to find and export matching posts; it returns one record per matched post containing the post identity and URL, post type (reel/photo/carousel/video), caption text with hashtags and mentions, posting timestamp, engagement metrics (likes, comments, play/views, video duration, paid partnership flag), media links and counts (thumbnail/cover, video, carousel media), location metadata (place name, address and coordinates when present), author/profile metadata (identifiers, display name, verification and privacy status, follower count, profile image) and search context (which keyword matched and the post’s rank). The connector accepts plain words and multi-word phrases (hashtags are optional), operates without an Instagram login or cookies, supports filters for post type, minimum engagement and date ranges, preserves per-keyword resume cursors for continued pagination, and typically returns hundreds of relevance-ranked results per keyword with Reels dominating most keyword result sets.

Verified Oct 25, 10:11 PM

$0.0015

per post

Up to 100 per call. Only pay for results returned; failed calls are refunded.

What people use it for

You give it

  • Keywordsrequired

    One or more keywords or phrases to search Instagram posts for, e.g.

  • Posted after

    Only save posts published on or after this date, or a relative value like "30 days".

  • Posted before

    Only save posts published on or before this date, or a relative value like "7 days".

Optional settings

Max posts per keywordPost typeMinimum likesPage ID

You get back

Text & content
CaptionHashtags
People & accounts
Owner IDOwner usernameOwner full nameOwner is verifiedOwner is private
Numbers & stats
Like countComment countPlay countCarousel media countOwner follower count
Location
Location nameLocation cityLocation addressLocation IDLocation latLocation lng
Dates
Taken atTaken at timestamp
Links & media
URLVideo durationDisplay URLVideo URLCarousel image URLsOwner profile pic URL
Other details
Record typeKeywordPositionPost IDShortcodeTypeProduct typeMentions+1 more

Trust & reliability

7d uptime trend
WindowUptimeSuccess ratep50p95Calls
24h————0
7d————0
30d————0

Calling contract

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-keyword-posts-scraper","params":{"keywords":["coffee shop"],"maxPostsPerKeyword":5},"maxResults":10}'

Request params

FieldTypeRequiredDescription
keywordsarrayrequiredOne or more keywords or phrases to search Instagram posts for, e.g. "coffee shop", "home workout", "nike". Plain words and multi-word phrases both work — no # needed. Each keyword is searched separately and every row records which keyword found it.
maxPostsPerKeywordintegeroptionalMaximum number of posts to save for each keyword. Set 0 to fetch everything Instagram returns for the keyword (typically a few hundred posts). Capped at 100 per call.
postTypestringoptionalOnly save posts of this type. Instagram's keyword results are mostly Reels, so photo, carousel and video filters return fewer posts per page scanned.
minLikesintegeroptionalOnly save posts with at least this many likes. Posts whose like count is hidden are skipped when this is set. Leave at 0 for no filter.
dateFromstringoptionalOnly save posts published on or after this date (YYYY-MM-DD), or a relative value like "30 days". Results are ranked by relevance, not date, so this filters the results rather than reaching further back.
dateTostringoptionalOnly save posts published on or before this date (YYYY-MM-DD), or a relative value like "7 days".
pageIdstringoptionalPaste NEXT_PAGE_ID from the previous run's Key-value store to continue each keyword where it stopped. Leave empty to start fresh.

Each result contains

FieldTypeDescription
recordTypestring—
keywordstringKeyword
positioninteger#
postIdstring—
shortcodestring—
urlstringPost URL
typestringType
productTypestring—
captionstringCaption
hashtagsarrayHashtags
mentionsarray—
takenAtstringPosted
takenAtTimestampinteger—
likeCountintegerLikes
commentCountintegerComments
playCountintegerPlays
videoDurationnumber—
carouselMediaCountnull—
isPaidPartnershipboolean—
displayUrlstringPreview
videoUrlstring—
carouselImageUrlsarray—
locationNamenullLocation
locationCitynull—
locationAddressnull—
locationIdnull—
locationLatnull—
locationLngnull—
ownerIdstring—
ownerUsernamestringOwner
ownerFullNamestring—
ownerIsVerifiedbooleanVerified
ownerIsPrivateboolean—
ownerFollowerCountintegerOwner followers
ownerProfilePicUrlstring—
scrapedAtstring—

Use Instagram Keyword Posts Scraper from Claude, ChatGPT or Cursor

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.

  1. 1Click Add to Claude — claude.ai opens with Sourcelane filled in
  2. 2Click Continue to confirm — it then works in Claude desktop and mobile too
Manual setup (config files, REST, Python) +

Claude Code

Adds the Sourcelane MCP server with your key as a header.

terminal
claude mcp add --transport http sourcelane https://api.usesourcelane.com/mcp \
  --header "Authorization: Bearer sl_live_your_agent_key"

Claude Desktop (config file)

Alternative to the connector URL: add to claude_desktop_config.json, then restart Claude.

claude_desktop_config.json
{
  "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"
      }
    }
  }
}

Cursor & Windsurf

Add to ~/.cursor/mcp.json (or Windsurf's mcp_config.json).

mcp.json
{
  "mcpServers": {
    "sourcelane": {
      "url": "https://api.usesourcelane.com/mcp",
      "headers": {
        "Authorization": "Bearer sl_live_your_agent_key"
      }
    }
  }
}

VS Code

Save as .vscode/mcp.json. VS Code prompts for your key once.

.vscode/mcp.json
{
  "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
    }
  ]
}

ChatGPT Custom GPT (Actions)

Create a GPT → Actions → Import from URL, then Authentication: API Key, Bearer.

OpenAPI schema URL
https://usesourcelane.com/openapi.json

REST

One POST. Pass maxResults to cap cost.

curl
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-keyword-posts-scraper","params":{"keywords":["coffee shop"],"maxPostsPerKeyword":5},"maxResults":10}'

Python, LangChain, CrewAI, OpenAI Agents SDK…

Wrap the REST call as a tool, or point an MCP client at the endpoint.

python
import requests

res = requests.post(
    "https://api.usesourcelane.com/v1/call",
    headers={"Authorization": "Bearer sl_live_your_agent_key"},
    json={
        "listing": "instagram-keyword-posts-scraper",
        "params": {"keywords":["coffee shop"],"maxPostsPerKeyword":5},
        "maxResults": 10,
    },
    timeout=300,
)
body = res.json()
print(body["receipt"]["chargedMicros"], "micro-USD for", body["receipt"]["results"], "results")
print(body["data"])

Reviews

—

0 reviews

5
0
4
0
3
0
2
0
1
0

Leave a review

Loading reviews…

Related Instagram connectors

See all Instagram data connectors →