mcpField
S
scraping-instagram-location-posts

scraping-instagram-location-posts

github.com/apidojo-ioData & databases1818 installsUpdated 24w ago
Repository

About scraping-instagram-location-posts

A data-collection skill that exports Instagram posts tagged to a physical location. It is intended for gathering geo-tagged post datasets using location IDs or location page URLs.

Key features

  1. 01Collect posts by location ID
  2. 02Accept Instagram location page URLs
  3. 03Filter posts by date
  4. 04Return post datasets

Use cases

  1. 01Collecting posts tagged at a venue
  2. 02Reviewing geo-tagged content for a place

MCP support

Can run the Apify Instagram location scraper through the Apify MCP server when available.

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/apidojo-io/apidojo-skills --skill scraping-instagram-location-posts

After installing, type/scraping-instagram-location-postsin Claude Code to confirm it loaded.

Details

From the project README

Scraping Instagram Location Posts

Exports Instagram posts tagged at any physical location. Uses Instagram's location ID or place name to collect geo-tagged content.

Prerequisites

  • APIFY_TOKEN environment variable set
  • Optional: Apify MCP server installed

Inputs

ParameterTypeRequiredDefaultNotes
startUrlsarrayOptional[]Instagram location page URLs
locationIdsarrayOptional[]Instagram location IDs
maxItemsnumberOptionalUnlimitedMaximum posts to return
untilstringOptional—Date filter (YYYY-MM-DD)
customMapFunctionstringOptional—JavaScript function to transform each output object

Workflow

Progress:
- [ ] Step 1: Resolve location ID
- [ ] Step 2: Run instagram-location-scraper
- [ ] Step 3: Poll for SUCCEEDED
- [ ] Step 4: Deliver post dataset
Step 2: Run the Actor

Recommended — run_actor.js (handles waiting, output, and file saving automatically):

# Quick answer (prints table to chat)
node scripts/run_actor.js \
  --actor "apidojo~instagram-location-scraper" \
  --input '{"param": "value"}'

# Save as CSV
node scripts/run_actor.js \
  --actor "apidojo~instagram-location-scraper" \
  --input '{"param": "value"}' \
  --output YYYY-MM-DD_results.csv --format csv

# Save as JSON
node scripts/run_actor.js \
  --actor "apidojo~instagram-location-scraper" \
  --input '{"param": "value"}' \
  --output YYYY-MM-DD_results.json --format json

APIFY_TOKEN must be set in environment or .env file.

If Apify MCP is available:

Tool: apify:run-actor
Actor: "apidojo~instagram-location-scraper"
Input:
{
  "locationIds": ["<LOCATION_ID>"],
  "maxItems": 100
}

REST API fallback:

curl -X POST \
  "https://api.apify.com/v2/acts/apidojo~instagram-location-scraper/runs?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"locationIds": ["<LOCATION_ID>"], "maxItems": 100}'

Save id as RUN_ID. Poll until status = SUCCEEDED:

curl "https://api.apify.com/v2/actor-runs/$RUN_ID?token=$APIFY_TOKEN" | grep '"status"'

Fetch results:

curl "https://api.apify.com/v2/actor-runs/$RUN_ID/dataset/items?token=$APIFY_TOKEN&format=json"
Step 3: Handle Edge Cases
  • Location ID not found: Invalid ID or location removed from Instagram — report to user.
  • Low post volume: Niche locations may have < 20 posts — return all available.
  • Private account posts in feed: Metadata visible but media may be restricted.

Output Format

# Instagram Location Posts: <location name>
Location ID: <id> | Posts collected: N

| Post ID | Author | Caption (truncated) | Likes | Comments | Type | Timestamp |
|---------|--------|---------------------|-------|----------|------|-----------|
| ...     | ...    | ...                 | ...   | ...      | ...  | ...       |

Troubleshooting

Don't have the Location ID: Visit https://www.instagram.com/explore/locations/ and search — the ID is in the URL. 0 results: Location may have been renamed or merged — search for new ID.

Comments

Markdown supported