{"id":"cc7381e8-394a-41af-adbc-da3cbdbf0899","entityType":"agent","slug":"clawhub-phy041-phy-instagram-scraper","name":"Instagram Scraper","canonicalUrl":"https://www.xpersona.co/agent/clawhub-phy041-phy-instagram-scraper","canonicalPath":"/agent/clawhub-phy041-phy-instagram-scraper","generatedAt":"2026-10-12T12:44:43.586Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-11T21:31:36.924Z","emptyReason":null},"description":"Scrape public Instagram profile data including follower counts, bio, recent posts, and engagement metrics without login or browser. Use when you want to anal... Skill: Instagram Scraper Owner: phy041 Summary: Scrape public Instagram profile data including follower counts, bio, recent posts, and engagement metrics without login or browser. Use when you want to anal... Tags: instagram:1.0.0, latest:1.0.0, scraping:1.0.0 Version history: v1.0.0 | 2026-03-06T03:39:15.194Z | user Initial release Archive index: Archive v1.0.0: 2 files, 2247 bytes Files: SKILL.md (4204b), _meta.jso","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 990 downloads reported by the source. Last updated 10/11/2026.","installCommand":"clawhub skill install s175g2rty8e4mw6h9zcwwgxmfn884t23:phy-instagram-scraper","sourceUrl":"https://clawhub.ai/phy041/phy-instagram-scraper","homepage":"https://clawhub.ai/phy041/skills/phy-instagram-scraper","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/phy041/phy-instagram-scraper","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/phy041/skills/phy-instagram-scraper","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":60,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Scrape public Instagram profile data including follower counts, bio, recent posts, and engagement metrics without login or browser. Use when you want to anal..."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-11T21:31:36.924Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T21:31:36.924Z","emptyReason":null},"stars":null,"forks":null,"downloads":990,"likes":null,"task":null,"library":null,"packageName":null,"latestVersion":"1.0.0","tractionLabel":"990 downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T21:31:36.911Z","emptyReason":null},"lastUpdatedAt":"2026-10-11T21:31:36.924Z","lastCrawledAt":"2026-10-11T21:31:36.911Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-12T21:31:36.911Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.0","createdAt":"2026-03-06T03:39:15.194Z","changelog":"Initial release","fileCount":2,"zipByteSize":2247}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s175g2rty8e4mw6h9zcwwgxmfn884t23:phy-instagram-scraper","setupComplexity":"low","setupSteps":["Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-phy041-phy-instagram-scraper/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-phy041-phy-instagram-scraper/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-phy041-phy-instagram-scraper/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-phy041-phy-instagram-scraper/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-phy041-phy-instagram-scraper/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-phy041-phy-instagram-scraper/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-12T12:44:43.586Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-phy041-phy-instagram-scraper/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-phy041-phy-instagram-scraper/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-phy041-phy-instagram-scraper/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-phy041-phy-instagram-scraper/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-11T21:31:36.924Z","emptyReason":null},"readme":"Skill: Instagram Scraper\n\nOwner: phy041\n\nSummary: Scrape public Instagram profile data including follower counts, bio, recent posts, and engagement metrics without login or browser. Use when you want to anal...\n\nTags: instagram:1.0.0, latest:1.0.0, scraping:1.0.0\n\nVersion history:\n\nv1.0.0 | 2026-03-06T03:39:15.194Z | user\n\nInitial release\n\nArchive index:\n\nArchive v1.0.0: 2 files, 2247 bytes\n\nFiles: SKILL.md (4204b), _meta.json (140b)\n\nFile v1.0.0:SKILL.md\n\n---\nname: instagram-scraper\ndescription: Scrape public Instagram profile data including follower counts, bio, recent posts, and engagement metrics without login or browser. Use when you want to analyze an Instagram account's profile stats and recent content for competitive research or audience intelligence.\nmetadata: {\"requires\": [\"python3\", \"httpx\"], \"env\": [], \"tags\": [\"instagram\", \"social-media\", \"scraper\", \"profile\", \"research\"]}\n---\n\n# Instagram Public Profile Scraper\n\nFetches public Instagram profile data using Instagram's internal API. No login required, no browser needed, no Playwright overhead. Returns structured profile stats and recent post data.\n\n## Requirements\n\n```bash\npip install httpx\n```\n\n## Usage\n\n```bash\npython instagram_scraper.py <username>\npython instagram_scraper.py google\npython instagram_scraper.py nike\n```\n\n## What It Returns\n\n### Profile Data\n| Field | Description |\n|-------|-------------|\n| `id` | Instagram user ID |\n| `username` | Handle |\n| `full_name` | Display name |\n| `biography` | Bio text |\n| `external_url` | Link in bio |\n| `is_verified` | Blue check status |\n| `is_private` | Account privacy |\n| `is_business_account` | Business profile flag |\n| `business_category_name` | Business category |\n| `followers_count` | Follower count |\n| `following_count` | Following count |\n| `posts_count` | Total post count |\n| `profile_pic_url` | HD profile photo URL |\n\n### Recent Posts (up to 12)\n| Field | Description |\n|-------|-------------|\n| `id` | Post ID |\n| `shortcode` | Post shortcode |\n| `url` | Full post URL |\n| `display_url` | Full-resolution image |\n| `thumbnail_url` | Thumbnail image |\n| `is_video` | Video post flag |\n| `caption` | Post caption text |\n| `likes_count` | Like count |\n| `comments_count` | Comment count |\n| `timestamp` | Unix timestamp |\n\n## Output\n\nResults are saved to `./storage/instagram/<username>.json`:\n\n```json\n{\n  \"profile\": {\n    \"username\": \"google\",\n    \"full_name\": \"Google\",\n    \"followers_count\": 12500000,\n    ...\n  },\n  \"recent_posts\": [\n    {\n      \"url\": \"https://www.instagram.com/p/ABC123/\",\n      \"likes_count\": 45230,\n      \"caption\": \"...\",\n      ...\n    }\n  ]\n}\n```\n\n## Implementation\n\nThe scraper uses Instagram's internal web API endpoint (`i.instagram.com/api/v1/users/web_profile_info/`) with a standard browser User-Agent and the public Instagram app ID. This is the same endpoint the Instagram web client calls on first page load.\n\n```python\nclass InstagramScraper:\n    BASE_URL = \"https://i.instagram.com/api/v1\"\n    APP_ID = \"936619743392459\"  # Public Instagram web app ID\n\n    async def get_profile(self, username: str) -> dict:\n        \"\"\"Fetch a user's public profile data.\"\"\"\n        ...\n\n    def parse_profile(self, raw_data: dict) -> dict:\n        \"\"\"Extract key information from raw profile data.\"\"\"\n        ...\n\n    async def get_recent_posts(self, raw_profile: dict, limit: int = 12) -> list:\n        \"\"\"Extract recent posts from profile data.\"\"\"\n        ...\n```\n\n## Error Handling\n\n| Error | Cause | Fix |\n|-------|-------|-----|\n| `ValueError: User not found` | Username doesn't exist or is misspelled | Verify the handle |\n| `PermissionError: Instagram blocked` | IP rate-limited or flagged | Use a VPN or residential proxy |\n| HTTP 401 | Request rejected | Rotate User-Agent or wait before retrying |\n\n## Rate Limiting\n\n- Instagram's internal API is not publicly rate-limited, but aggressive scraping triggers IP blocks.\n- Add a 2-5 second delay between requests when scraping multiple accounts.\n- Private accounts return only public metadata (follower count, bio) but no posts.\n\n## Limitations\n\n- Only works on public profiles\n- Returns up to 12 most recent posts (Instagram's default page size)\n- Does not return Stories, Reels metadata beyond what appears in the timeline grid\n- Video view counts are not included in the internal API response\n\n## Use Cases\n\n- Competitive analysis: track follower growth over time by running daily\n- Influencer vetting: check engagement rate (likes+comments / followers) before partnerships\n- Content research: analyze which post formats drive highest engagement for a niche\n- Brand monitoring: track competitor posting frequency and content themes\n\nFile v1.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn7fdhcxytgt3k2vvnc24c8ke581g5j1\",\n  \"slug\": \"phy-instagram-scraper\",\n  \"version\": \"1.0.0\",\n  \"publishedAt\": 1772768355194\n}","readmeExcerpt":"Skill: Instagram Scraper Owner: phy041 Summary: Scrape public Instagram profile data including follower counts, bio, recent posts, and engagement metrics without login or browser. Use when you want to anal... Tags: instagram:1.0.0, latest:1.0.0, scraping:1.0.0 Version history: v1.0.0 | 2026-03-06T03:39:15.194Z | user Initial release Archive index: Archive v1.0.0: 2 files, 2247 bytes Files: SKILL.md (4204b), _meta.jso","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"pip install httpx"},{"language":"bash","snippet":"python instagram_scraper.py <username>\npython instagram_scraper.py google\npython instagram_scraper.py nike"},{"language":"json","snippet":"{\n  \"profile\": {\n    \"username\": \"google\",\n    \"full_name\": \"Google\",\n    \"followers_count\": 12500000,\n    ...\n  },\n  \"recent_posts\": [\n    {\n      \"url\": \"https://www.instagram.com/p/ABC123/\",\n      \"likes_count\": 45230,\n      \"caption\": \"...\",\n      ...\n    }\n  ]\n}"},{"language":"python","snippet":"class InstagramScraper:\n    BASE_URL = \"https://i.instagram.com/api/v1\"\n    APP_ID = \"936619743392459\"  # Public Instagram web app ID\n\n    async def get_profile(self, username: str) -> dict:\n        \"\"\"Fetch a user's public profile data.\"\"\"\n        ...\n\n    def parse_profile(self, raw_data: dict) -> dict:\n        \"\"\"Extract key information from raw profile data.\"\"\"\n        ...\n\n    async def get_recent_posts(self, raw_profile: dict, limit: int = 12) -> list:\n        \"\"\"Extract recent posts from profile data.\"\"\"\n        ..."}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: instagram-scraper\ndescription: Scrape public Instagram profile data including follower counts, bio, recent posts, and engagement metrics without login or browser. Use when you want to analyze an Instagram account's profile stats and recent content for competitive research or audience intelligence.\nmetadata: {\"requires\": [\"python3\", \"httpx\"], \"env\": [], \"tags\": [\"instagram\", \"social-media\", \"scraper\", \"profile\", \"research\"]}\n---\n\n# Instagram Public Profile Scraper\n\nFetches public Instagram profile data using Instagram's internal API. No login required, no browser needed, no Playwright overhead. Returns structured profile stats and recent post data.\n\n## Requirements\n\n```bash\npip install httpx\n```\n\n## Usage\n\n```bash\npython instagram_scraper.py <username>\npython instagram_scraper.py google\npython instagram_scraper.py nike\n```\n\n## What It Returns\n\n### Profile Data\n| Field | Description |\n|-------|-------------|\n| `id` | Instagram user ID |\n| `username` | Handle |\n| `full_name` | Display name |\n| `biography` | Bio text |\n| `external_url` | Link in bio |\n| `is_verified` | Blue check status |\n| `is_private` | Account privacy |\n| `is_business_account` | Business profile flag |\n| `business_category_name` | Business category |\n| `followers_count` | Follower count |\n| `following_count` | Following count |\n| `posts_count` | Total post count |\n| `profile_pic_url` | HD profile photo URL |\n\n### Recent Posts (up to 12)\n| Field | Description |\n|-------|-------------|\n| `id` | Post ID |\n| `shortcode` | Post shortcode |\n| `url` | Full post URL |\n| `display_url` | Full-resolution image |\n| `thumbnail_url` | Thumbnail image |\n| `is_video` | Video post flag |\n| `caption` | Post caption text |\n| `likes_count` | Like count |\n| `comments_count` | Comment count |\n| `timestamp` | Unix timestamp |\n\n## Output\n\nResults are saved to `./storage/instagram/<username>.json`:\n\n```json\n{\n  \"profile\": {\n    \"username\": \"google\",\n    \"full_name\": \"Google\",\n    \"followers_count\": 12500000,\n    ...\n  },\n  \"recent_posts\": [\n    {\n      \"url\": \"https://www.instagram.com/p/ABC123/\",\n      \"likes_count\": 45230,\n      \"caption\": \"...\",\n      ...\n    }\n  ]\n}\n```\n\n## Implementation\n\nThe scraper uses Instagram's internal web API endpoint (`i.instagram.com/api/v1/users/web_profile_info/`) with a standard browser User-Agent and the public Instagram app ID. This is the same endpoint the Instagram web client calls on first page load.\n\n```python\nclass InstagramScraper:\n    BASE_URL = \"https://i.instagram.com/api/v1\"\n    APP_ID = \"936619743392459\"  # Public Instagram web app ID\n\n    async def get_profile(self, username: str) -> dict:\n        \"\"\"Fetch a user's public profile data.\"\"\"\n        ...\n\n    def parse_profile(self, raw_data: dict) -> dict:\n        \"\"\"Extract key information from raw profile data.\"\"\"\n        ...\n\n    async def get_recent_posts(self, raw_profile: dict, limit: int = 12) -> list:\n        \"\"\"Extract recent posts from profile data.\"\"\"\n        ...\n```\n\n## Error Handling\n\n| "},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7fdhcxytgt3k2vvnc24c8ke581g5j1\",\n  \"slug\": \"phy-instagram-scraper\",\n  \"version\": \"1.0.0\",\n  \"publishedAt\": 1772768355194\n}"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Scrape public Instagram profile data including follower counts, bio, recent posts, and engagement metrics without login or browser. Use when you want to anal... Skill: Instagram Scraper Owner: phy041 Summary: Scrape public Instagram profile data including follower counts, bio, recent posts, and engagement metrics without login or browser. Use when you want to anal... Tags: instagram:1.0.0, latest:1.0.0, scraping:1.0.0 Version history: v1.0.0 | 2026-03-06T03:39:15.194Z | user Initial release Archive index: Archive v1.0.0: 2 files, 2247 bytes Files: SKILL.md (4204b), _meta.jso","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":648,"uniquenessScore":58,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-11T21:31:36.924Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-11T21:31:36.924Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-12T12:44:43.586Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}