Skip to content
    ↑↓ to choose · Enter to open

    · 13 min read

    Capterra Software Scraper: Up to 500 Free Results a Month (2026)

    By CrawlerBros Engineering Team

    Each output record carries 39 fields per product, including pricing plans, features, integrations, pros/cons, and vendor details. This Actor extracts structured profiles from the shared catalog database using alternative catalog URLs to secure identical data. It can be tried free. This Actor is for marketing analysts, SaaS product managers, and software buyers who need clean directory data. It is not for teams who require individual user reviews, which are not extracted.

    Try it: open Capterra Software Scraper on Apify, sign in on the free plan and run the prefilled example.

    Can you try Capterra Software Scraper before paying?

    Yes. Apify's free plan includes $5.00 of prepaid usage every month and asks for no credit card. At $0.01 per result, that covers up to 500 results of Capterra Software Scraper a month, before run-start charges and platform usage.

    The example request further down caps maxItems at 1, so a first run returns at most 1 results and costs at most $0.01 in result charges. That is enough to see the real shape of the data before deciding anything.

    Capterra Software Scraper was last updated on 2026-07-27. It is one of 1,725 Actors CrawlerBros publishes on Apify, which together have 680,173 lifetime public runs and an average rating of 4.63 out of 5 across 416 reviews.

    What does it cost to run Capterra Software Scraper?

    Each result costs $0.01 on Apify's free plan, which is $10.00 per 1,000 results. Starting a run is charged separately at $0.005 per GB of Actor memory. Apify also bills the platform usage each run consumes, at the rates of your Apify plan, on top of these charges.

    Apify plan Per result Per 1,000 results
    FREE $0.01 $10.00
    BRONZE $0.00833 $8.33
    SILVER $0.00667 $6.67
    GOLD $0.005 $5.00
    PLATINUM $0.005 $5.00
    DIAMOND $0.005 $5.00

    The main driver of your bill is the total number of items written to the dataset, which depends entirely on how many URLs you provide in productUrls, productUrl, or startUrls. To keep costs low during setup, run your first test with the maxItems parameter limited to 1. This limits the result charges to a maximum of $0.01 on the free plan.

    How do you run Capterra Software Scraper from the API?

    None of its 4 controls is strictly required, so the defaults below produce a valid run on their own. The payload below uses the schema's own prefilled values, so it runs as written once you substitute your API token.

    Call the synchronous endpoint to start a run and receive dataset items in one request:

    curl -X POST "https://api.apify.com/v2/acts/crawlerbros~capterra-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{"productUrls":["https://www.capterra.com/p/135003/Slack/"],"productUrl":"https://www.capterra.com/p/135003/Slack/","startUrls":[{"url":"https://www.capterra.com/p/135003/Slack/"}],"maxItems":1}'
    

    The same run from Python, using the official client:

    from apify_client import ApifyClient
    
    client = ApifyClient("<YOUR_APIFY_TOKEN>")
    
    run_input = {
      "productUrls": [
        "https://www.capterra.com/p/135003/Slack/"
      ],
      "productUrl": "https://www.capterra.com/p/135003/Slack/",
      "startUrls": [
        {
          "url": "https://www.capterra.com/p/135003/Slack/"
        }
      ],
      "maxItems": 1
    }
    
    run = client.actor("crawlerbros~capterra-scraper").call(run_input=run_input)
    
    for item in client.dataset(run["defaultDatasetId"]).iterate_items():
        print(item)
    

    And from Node.js:

    import { ApifyClient } from 'apify-client'
    
    const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' })
    
    const input = {
      "productUrls": [
        "https://www.capterra.com/p/135003/Slack/"
      ],
      "productUrl": "https://www.capterra.com/p/135003/Slack/",
      "startUrls": [
        {
          "url": "https://www.capterra.com/p/135003/Slack/"
        }
      ],
      "maxItems": 1
    }
    
    const run = await client.actor('crawlerbros~capterra-scraper').call(input)
    const { items } = await client.dataset(run.defaultDatasetId).listItems()
    console.log(items)
    

    The synchronous endpoint holds the connection open until the run finishes, which is convenient for small batches and wrong for large ones. For anything long running, start the run asynchronously and poll, or attach a webhook, so a dropped connection does not cost you the results.

    Which Capterra Software Scraper inputs matter, and which can you skip?

    The primary controls are productUrls and productUrl, where you provide the target software directory links to extract. Most users should leave startUrls untouched on their first execution, and use the maxItems control to prevent unexpected result charges during early configuration testing.

    • productUrls (array): List of Capterra product URLs to scrape. Example: https://www.capterra.com/p/135003/Slack/
    • productUrl (string): A single Capterra product URL. Used together with productUrls/startUrls when provided.
    • startUrls (array): Apify-style URL objects or strings with Capterra product URLs.
    • maxItems (integer): Maximum number of products to scrape. Default: 20.

    What does Capterra Software Scraper return?

    The resulting dataset delivers comprehensive software metadata including ratings, starting price strings, platform lists, and vendor info. It does not contain individual customer review texts or detailed reviewer demographics.

    Example Output

    • productId (e.g. 135003)
    • slug (e.g. Slack)
    • recordType (e.g. product)
    • name (e.g. Slack)
    • url (e.g. https://www.capterra.com/p/135003/Slack/)
    • sourceUrl (e.g. https://www.capterra.com/p/135003/Slack/)
    • getAppUrl (e.g. https://www.getapp.com/collaboration-software...)
    • reviewsUrl (e.g. https://www.capterra.com/p/135003/reviews)
    • tagline (e.g. A single place for team communication and wor...)
    • description
    • logo
    • rating (e.g. 4.66)
    • reviewCount (e.g. 24046)
    • startingPrice (e.g. $8.75 / month)
    • pricingModel (e.g. Per User)
    • freeTrial (e.g. true)
    • freeVersion (e.g. true)
    • pricingPlans
    • licensingModel (e.g. Proprietary)
    • primaryCategory (e.g. Team Communication)
    • categories
    • featureCount (e.g. 101)
    • integrationsCount (e.g. 3180)
    • platforms
    • typicalCustomers
    • vendorName (e.g. Slack)
    • vendorCountry (e.g. United States)
    • vendorFoundedYear (e.g. 2014)
    • scrapedAt (e.g. 2026-04-10T12:00:00+00:00)

    Ratings

    • rating: Number - Overall rating (0-5)
    • reviewCount: Integer - Total number of reviews

    Pricing

    • startingPrice: String - Starting price with currency & period (e.g., $8.75 / month)
    • pricingModel: String - Pricing model (e.g., Per User, Flat Rate)
    • priceCurrency: String - Currency code
    • pricePeriodicity: String - Billing period
    • freeTrial: Boolean - Free trial available
    • freeVersion: Boolean - Free version available
    • pricingPlans: Array - Pricing plans with name, price, attributes
    • licensingModel: String - Licensing model (e.g., Proprietary)

    Categories & Features

    • categories: Array - Software categories
    • primaryCategory: String - Primary category
    • features: Array - Up to 50 feature names
    • featureCount: Integer - Total feature count
    • integrationsCount: Integer - Total integrations count
    • integrations: Array - Up to 20 integration names
    • platforms: Array - Supported platforms
    • supportOptions: Array - Customer support options
    • trainingOptions: Array - Training options
    • typicalCustomers: Array - Target customer sizes

    Pros / Cons / Visuals

    • pros: Array - Positive sentiment topics with summary
    • cons: Array - Negative sentiment topics with summary
    • screenshots: Array - Screenshot image URLs

    Vendor

    • vendorName: String - Vendor company name
    • vendorCity: String - Vendor city
    • vendorState: String - Vendor state
    • vendorCountry: String - Vendor country
    • vendorWebsite: String - Vendor website URL
    • vendorFoundedYear: Integer - Vendor founding year
    • scrapedAt: String - ISO 8601 scrape timestamp

    Status Rows

    • recordType: String - status
    • sourceUrl: String - Input URL when available
    • _status: String - no_data
    • _reason: String - Machine-readable reason
    • _message: String - Human-readable explanation
    • scrapedAt: String - ISO 8601 scrape timestamp

    These are the documented fields. Optional ones can be empty on a given record, so measure how often each field your deliverable depends on is populated across a real sample before automating the handoff.

    How does the extraction work?

    Capterra is protected by aggressive Cloudflare Turnstile and blocks direct scraping. But Capterra, GetApp, and SoftwareAdvice are all owned by Gartner Digital Markets (GDM) and share a single product catalog. This scraper takes advantage of that:

    1. Google SERP - resolves the Capterra product URL to the equivalent GetApp URL
    2. GetApp direct fetch - GetApp exposes the full GDM catalog via __NEXT_DATA__ (~500KB of structured JSON per product)
    3. Rich extraction - parses 39 fields: name, tagline, pricing plans, features, integrations, platforms, support, training, pros/cons, vendor, and more

    Result: you get the same rich Capterra data without touching Capterra - free, reliable, and faster than fighting anti-bot systems.

    How do you build the workflow end to end?

    Open Capterra Software Scraper and work through these in order. Each step ends with something to check, so a bad configuration surfaces on a small run rather than a scheduled one.

    1. Input a specific Capterra software product link into the productUrl field.
    2. Adjust the maxItems integer parameter to 1 to run a low-cost validation test.
    3. Start the run and monitor the console until the status changes from running to succeeded.
    4. Navigate to the dataset tab to confirm that a structured JSON item has been successfully captured.
    5. Verify that the recordType field contains the string product instead of status.
    6. Confirm that the returned object contains populated values for key metrics like rating, startingPrice, and pricingPlans before initiating a bulk extraction run.

    How do you apply it? Three worked playbooks

    These are Capterra Software Scraper's own documented use cases, each worked through as an operating pattern rather than a description.

    Use case 1: Competitive research

    Outcome: Compare products across pricing, features, integrations

    Configure: Set productUrls to ["https://www.capterra.com/p/135003/Slack/", "https://www.capterra.com/p/228385/Notion/"] and set maxItems to 20.

    Working method: Supply a list of direct competitor software profile URLs to productUrls. Run the scraper to collect the 39 fields and export the final dataset. Inspect the populated values for pricingPlans, features, and integrations to cross-reference capabilities and pricing tiers.

    Deliverable: A comparative spreadsheet mapping pricing plans, total integrations, and key features across chosen software products.

    Stop condition: The output items contain status records indicating that competitor URLs failed to return product metadata.

    Use case 2: Market analysis

    Outcome: Track category trends, pricing models

    Configure: Set productUrls to a list of software directory profiles in a specific category and set maxItems to 50.

    Working method: Compile target software profile URLs for an entire industry category and paste them into productUrls. Run the actor and aggregate the resulting values for pricingModel, freeTrial, and licensingModel across the dataset to define market trends.

    Deliverable: A structured market overview showing the distribution of pricing models and the prevalence of free trials within the category.

    Stop condition: The pricingModel or startingPrice fields return empty or null across multiple records.

    Use case 3: Feature-based product discovery

    Outcome: Filter by platforms, integrations, support

    Configure: Set productUrls to a selected list of alternative software links and set maxItems to 20.

    Working method: Input potential software alternative URLs into the productUrls list and start the scraper. Analyze the returned arrays for platforms, integrations, and supportOptions to see if they fit the strict operational requirements of your technical environment.

    Deliverable: A filtered database of candidate software systems meeting pre-defined integration and operating system criteria.

    Stop condition: The integrations array is empty for software products known to support native integrations.

    What breaks, and how do you design around it?

    When a target product profile cannot be processed, the Actor outputs a status row containing specific error details inside the _reason and _message fields. When encountering these status rows, verify your input URLs to ensure they point to valid directories. If specific target profiles are persistently missing, you can run complementary directory extractions using the Software Advice Scraper.

    When should you not use Capterra Software Scraper?

    Do not use this Actor if your project demands individual written user review text or granular reviewer profiles, since this tool only extracts aggregated pros and cons summaries. If you need complete user review histories, utilize the SoftwareSuggest Software Reviews Scraper, the Findstack Software Reviews Scraper, or the TrustRadius Scraper. Additionally, if you need real-time discount data and promotional pricing terms instead of directory listings, the AppSumo Scraper is a better choice.

    What should you check before trusting the output?

    • Verify that recordType contains the value product and isolate any status rows where recordType is status.
    • Confirm that the rating field is a number and reviewCount contains a valid integer greater than or equal to zero.
    • Check that featureCount is an integer that matches the number of array elements populated inside the features list.
    • Validate that startingPrice contains a structured currency string containing a pricing periodicity or billing interval.
    • Trigger an alert if the percentage of status records in the final dataset exceeds ten percent of the total inputs.

    None of this proves a record is correct. It gives a scheduled Capterra Software Scraper run defined points where it should stop instead of quietly passing bad data downstream.

    Frequently asked questions

    What is the cost of running this scraper?

    The Actor costs $0.01 per result, which is $10.00 per 1,000 results on the free plan. Each run also consumes platform usage and is charged a run-start fee, which applies whether or not results are written.

    Does this scraper collect individual review logs?

    No. The scraper collects overall product data and aggregated pros and cons summaries. It does not extract individual review text or individual user profile details.

    How do I find valid input URLs for the scraper?

    Search the software directory website for your target application, copy the URL of the product page, and paste it directly into the productUrl or productUrls fields.

    How reliable is the catalog data extracted by this scraper?

    The extracted catalog data is identical to the target directory. It utilizes the shared database used across multiple directory platforms to deliver accurate product, rating, and feature fields.

    How can I test this Actor without spending money?

    You can try it on Apify's free plan, which provides $5.00 of monthly usage without a credit card. Running your first test with maxItems set to 1 keeps result charges under $0.01.

    Where to go next

    When you are ready to run it, open Capterra Software Scraper on Apify; the free plan covers up to 500 results a month.

    Start with the Capterra Software Scraper Actor page for the current input schema, pricing tier, and run history.

    Other Actors we maintain for related data:

    Related guides:

    Resources

    • Actor documentation, input schema, and pricing: verified against the published Actor on 2026-09-26.

    • Actor last updated by its maintainers on 2026-07-27.

    • Run outcome figures cover the 30 day public window ending 2026-09-26.

    • Capterra Software Scraper on Apify

    Featured actors

    Capterra Software Scraper

    Scrape software product data from Capterra.com, extract product details, ratings, reviews, pricing, features, deployment options, and more from the world's largest software directory.

    Run on Apify ↗