{
  "data": {
    "id": "rvdRutwrm0Pe4LT6b",
    "userId": "rpTa37o1ctfdFWZk9",
    "name": "instagram-keyword-search-scraper",
    "username": "viralanalyzer",
    "description": "Search Instagram by keyword or hashtag and extract posts, Reels and carousels: permalink, caption, author, media URL and engagement when exposed. Pay per event + usage — you pay compute and proxy.",
    "isPublic": true,
    "createdAt": "2026-08-13T13:59:56.522Z",
    "modifiedAt": "2026-10-07T02:24:10.551Z",
    "taggedBuilds": {
      "latest": {
        "buildId": "yYCxOPEtd1CqOkCW5",
        "finishedAt": "2026-10-07T02:24:10.551Z",
        "buildNumberInt": 10200003,
        "buildNumber": "1.2.3"
      }
    },
    "stats": {
      "totalBuilds": 5,
      "totalRuns": 363,
      "totalUsers": 95,
      "totalUsers7Days": 9,
      "totalUsers30Days": 45,
      "totalUsers90Days": 65,
      "lastRunStartedAt": "2026-10-24T13:06:35.212Z",
      "actorReviewCount": 0,
      "actorReviewRating": 0,
      "bookmarkCount": 0,
      "publicActorRunStats30Days": {
        "ABORTED": 7,
        "FAILED": 0,
        "SUCCEEDED": 201,
        "TIMED-OUT": 2,
        "TOTAL": 210
      }
    },
    "versions": [
      {
        "versionNumber": "1.0",
        "sourceType": "SOURCE_FILES",
        "buildTag": "latest"
      },
      {
        "versionNumber": "1.1",
        "sourceType": "SOURCE_FILES",
        "buildTag": "latest"
      },
      {
        "versionNumber": "1.2",
        "sourceType": "SOURCE_FILES",
        "buildTag": "latest"
      }
    ],
    "defaultRunOptions": {
      "build": "latest",
      "timeoutSecs": 600,
      "memoryMbytes": 2048
    },
    "exampleRunInput": {
      "body": "{ \"helloWorld\": 123 }",
      "contentType": "application/json; charset=utf-8"
    },
    "categories": [
      "SOCIAL_MEDIA",
      "DEVELOPER_TOOLS",
      "AUTOMATION"
    ],
    "isDeprecated": false,
    "title": "Instagram Keyword Search 🔍 Posts & Reels — $1/1K",
    "seoTitle": "Instagram Keyword Search Scraper — Posts & Reels",
    "seoDescription": "Scrape Instagram posts and Reels by keyword or hashtag. Get URLs, captions and engagement. Pay per result plus platform usage.",
    "pricingInfos": [
      {
        "pricingModel": "PAY_PER_EVENT",
        "startedAt": "2026-08-16T20:24:58.000Z",
        "apifyMarginPercentage": 0.2,
        "isPPEPlatformUsagePaidByUser": true,
        "pricingPerEvent": {
          "actorChargeEvents": {
            "apify-actor-start": {
              "eventTitle": "Actor Start",
              "eventDescription": "Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event).",
              "isOneTimeEvent": true,
              "eventPriceUsd": 0.00005
            },
            "post-discovered": {
              "eventTitle": "Post discovered",
              "eventDescription": "One valid Instagram post or Reel persisted to the default dataset. Diagnostic items are never charged.",
              "isPrimaryEvent": true,
              "isOneTimeEvent": false,
              "eventTieredPricingUsd": {
                "FREE": {
                  "tieredEventPriceUsd": 0.001
                },
                "BRONZE": {
                  "tieredEventPriceUsd": 0.001
                },
                "SILVER": {
                  "tieredEventPriceUsd": 0.00075
                },
                "GOLD": {
                  "tieredEventPriceUsd": 0.00053
                },
                "PLATINUM": {
                  "tieredEventPriceUsd": 0.00032
                },
                "DIAMOND": {
                  "tieredEventPriceUsd": 0.00019
                }
              }
            }
          }
        },
        "createdAt": "2026-08-16T20:25:00.595Z"
      }
    ],
    "notice": "NONE",
    "isCritical": false,
    "isGeneric": false,
    "hasNoDataset": false,
    "isSourceCodeHidden": true,
    "standbyUrl": null,
    "actorPermissionLevel": "LIMITED_PERMISSIONS",
    "readmeSummary": "## Instagram Keyword Search Scraper\n\nA Playwright-based Apify Actor that searches Instagram by keyword or hashtag and extracts matching posts, Reels, and carousels from the public web search UI. It harvests permalinks and media identifiers, classifies media type, captures caption text and author username when exposed, records publish timestamps, gathers engagement metrics when available (likes, comment counts, video views, video duration), extracts media and thumbnail URLs, and parses hashtags and mentions from captions; items include provenance metadata indicating extraction source and data quality. Technical approach: cookie seeding into a browser context followed by same-origin XHR calls to Instagram web endpoints (including an undocumented explore/search endpoint), with fallbacks to tag pages, embedded JSON, and DOM permalink scraping. Operates without a Meta API key, supports batch keyword processing, optional session cookies for authenticated access, stealth browsing measures (webdriver flag removal and fingerprint spoofing), proxy control with datacenter default and residential fallback after confirmed blocks, and produces debug screenshots when queries yield no posts; invalid items are filtered by provenance rules.\n\n## Use cases\n\n- Trend monitoring: discover what Instagram surfaces for a topic or hashtag\n- Hashtag research: collect real posts behind a tag for analysis\n- Market research: analyze caption language, hashtag use, and engagement patterns by keyword\n- Seed generation: produce author identifiers to drive downstream profile scraping for fuller profile data\n- Campaign tracking: monitor branded keywords and campaign-related content over time",
    "deploymentKey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDtAOQzT1WcR5/eZI9scYHueigRHXL0EjrausaYNu9UtDKDBZjptYRtsb14Is8DXIgS45HCtpjpHWYxFlZglguZylJIwFMsuhW+MByvy1Xcw3o1QF4oJdxN05LKssHPo8IiX0i96HhtxE9+fY3yQk/MDIP6DRI5xx6RJlqNIFc4R1i/VRHpjc78BGquWTNUjtddYlySDC5tuLCfM3m9//g3Xlk/S1dvnvw/TWFV+jmW/IPJVSRhc5TMEdBpd3j8NQjLBRb6kfytguKsHmjqpnkczKyY1toHEQay97wt1tkq/GCAQ/R5PvgUNzgp6aotpQhlhszp6pEf90JMQPysbyqP \n"
  }
}