Capterra Products

Give it Capterra category or product pages and it returns one JSON row per software product: name, vendor, rating, review count, starting price and pricing plans, top features, category rank and the sponsored flag.

Sample output

One row as the API returns it. Long text is shortened here; names inside text read [name].

Show the sample as
Download
Sample row, one field per line
FieldValue
rowTypeproduct
platformcapterra
seoId184581
nameAsana
vendorAsana
rating4.49
reviewCount13,770
categoryProject Management
pricing{"startingPrice":10.99,"currency":"USD","model":"Per User","frequency":"Per Month","hasFreeTrial":true,"hasFreeVersion":true,"summary":"From $10.99 (Per User, Per Month)"}
topFeatures["Task Management","Collaboration Tools"]
rank18
sponsoredfalse

Call it from code or from your agent

This is the request. Small runs answer in the same call; large ones return a run ID.

TerminalOpens at launch
curl -X POST https://scrapers-api.arcadiumdata.io/v1/scrapers/capterra-products/runs \
  -H "Authorization: Bearer $ARCADIUM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "input": {
      "startUrls": [
        {
          "url": "https://www.capterra.com/project-management-software/"
        }
      ],
      "maxResultsPerCategory": 50
    }
  }'
$2.0011,000 products: $2.00, plus the run start fee of $0.001. A failed or empty run costs $0.

What each row holds

Every row says what it is in rowType: product rows are charged, coverage and error rows are free.

The product 17 fields

The product
FieldTypeWhat it holds
platformstringSource site, e.g. 'capterra'.
seoIdstringCapterra product id, the number in the product URL.
namestringProduct name.
urlProduct page URL.
vendorstringVendor company name.
ratingnumberOverall rating, 1 to 5.
reviewCountnumberNumber of reviews the site shows.
categorystringCategory the product was listed under (for a direct product URL: its primary category).
primaryCategoryThe product's own primary category from its page, which can differ from the listing (null when includePricingDetails is off).
descriptionShort product description.
pricingobjectPricing summary: startingPrice, currency, model (e.g. Per User), frequency (e.g. Per Month), hasFreeTrial, hasFreeVersion, summary text and plans [{ name, startingPrice }]. Fields the site does not publish are null.
topFeaturesarrayMost mentioned features listed by the site.
ranknumber1-based position in the category list, null for direct product URLs.
sponsoredbooleanTrue when the listing is a paid placement, null when the site does not say.
pageNumber of the list page the product was found on.
categoryUrlCategory URL the product was listed under, null for direct product URLs.
scrapedAtISO timestamp of when the row was collected.
Error rows, free 3 fields
Error rows, free
FieldTypeWhat it holds
inputError and coverage rows: the input (URL, id or search text) the row is about. Example: 'https://www.example.com/page'.
codeError rows: machine-readable reason. One of invalid_input (fix the input), not_found (page does not exist), blocked (site refused, retry later), unavailable (temporary error, retry later), filter_unsupported (the filter cannot be applied on this site), no_match (name search found nothing).
messageError rows: short human-readable explanation. Do not parse it, use code.

What it can't do

  • It does not return reviewer names, profile links or photos.
  • It reads only what the site shows to a visitor without an account.
  • Reviews the site has removed or hidden are not returned.

What you send

Every field is optional. The example request above fills the ones shown here.

Main input fields
FieldTypeWhat it does
startUrlsarrayCapterra category pages (https://www.capterra.com/project-management-software/) list every product in the category. Product pages (https://www.capterra.com/p/184581/Asana-PM/) return that one product. Both kinds can be mixed. Give at least one. Other Capterra actors' field `urls` (plain list of links) is accepted too.
maxResultsPerCategoryintegerMaximum number of products to collect from each category page list (up to 1,000). A product URL always counts as one. Also accepted as `maxItems`, or as `maxPages` (25 products a page). Default 50.
More options (2)
More input fields
FieldTypeWhat it does
includePricingDetailsbooleanCategory lists only show whether a free trial or free version exists. With this on, each product's own page is read too, which adds the starting price, pricing model and a ranked feature list. It makes runs slower and heavier on data, but the price per result stays the same.Default true
includeErrorRowsbooleanAdds a free row to the dataset for every URL that could not be read, so a failure is never silent.Default true

Questions people ask before they top up

What does a run cost?

Each product costs $0.002, which is $2.00 per 1,000. A run that delivers rows also pays a $0.001 start fee.

A run that returns rows costs at least $0.005, start fee included. Failed runs, empty runs and duplicate rows cost $0. You set the most a run may cost, and it stops there.

Do you ever return personal data?

Not about reviewers or users. Reviewer names, profile links, photos, emails and phone numbers are not collected. When a name appears inside a review or a reply, it is replaced with [name].

Job titles and company sizes stay where a site shows them, because they describe a role rather than a person. On YouTube, channel names and URLs are the publisher labels YouTube shows publicly.

How fresh is the data?

Each run reads the live site when you start it, so rows are as current as the site itself.

More from Reviews

  • Rating, sub-ratings, pros, cons, tenure, current or former employee

    $3.00per 1,000 reviews

  • Score, pros, cons, traveler type, room, nights, hotel reply

    $1.00per 1,000 reviews

  • Rating, title, text, sub-ratings, trip type, owner reply

    $0.75per 1,000 reviews

  • Rating, room, service and location scores, translation, reply

    $0.50per 1,000 reviews

  • Score, text, translation, traveler type, room, nights, reply

    $1.00per 1,000 reviews

  • Rating, text, language, reactions, owner reply

    $0.25per 1,000 reviews