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].
| Field | Value |
|---|---|
| rowType | product |
| platform | capterra |
| seoId | 184581 |
| name | Asana |
| vendor | Asana |
| rating | 4.49 |
| reviewCount | 13,770 |
| category | Project 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"] |
| rank | 18 |
| sponsored | false |
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.
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
}
}'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
| Field | Type | What it holds |
|---|---|---|
| platform | string | Source site, e.g. 'capterra'. |
| seoId | string | Capterra product id, the number in the product URL. |
| name | string | Product name. |
| url | Product page URL. | |
| vendor | string | Vendor company name. |
| rating | number | Overall rating, 1 to 5. |
| reviewCount | number | Number of reviews the site shows. |
| category | string | Category the product was listed under (for a direct product URL: its primary category). |
| primaryCategory | The product's own primary category from its page, which can differ from the listing (null when includePricingDetails is off). | |
| description | Short product description. | |
| pricing | object | Pricing 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. |
| topFeatures | array | Most mentioned features listed by the site. |
| rank | number | 1-based position in the category list, null for direct product URLs. |
| sponsored | boolean | True when the listing is a paid placement, null when the site does not say. |
| page | Number of the list page the product was found on. | |
| categoryUrl | Category URL the product was listed under, null for direct product URLs. | |
| scrapedAt | ISO timestamp of when the row was collected. |
Error rows, free 3 fields
| Field | Type | What it holds |
|---|---|---|
| input | Error and coverage rows: the input (URL, id or search text) the row is about. Example: 'https://www.example.com/page'. | |
| code | Error 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). | |
| message | Error 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.
| Field | Type | What it does |
|---|---|---|
| startUrls | array | Capterra 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. |
| maxResultsPerCategory | integer | Maximum 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)
| Field | Type | What it does |
|---|---|---|
| includePricingDetails | boolean | Category 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 |
| includeErrorRows | boolean | Adds 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