Capterra APIcapterra.com ↗
Access Capterra software categories, product details, user reviews, vendor profiles, and keyword search via 6 structured API endpoints.
What is the Capterra API?
The Capterra API provides access to software product data across Capterra's full directory through 6 endpoints, covering categories, products, reviews, vendor profiles, and keyword search. With get_product_reviews, you can pull paginated user reviews including pros, cons, title, date, and rating for any product. With get_product_details, you get the product description, overall rating, feature list, and total review count — all addressable by numeric product ID.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/7484701a-5337-4f49-9ab8-a28426c3bb24/get_software_categories' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace capterra-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Capterra SDK — search software, browse categories, read reviews."""
from parse_apis.capterra_software_review_api import Capterra, ProductNotFound
client = Capterra()
# Search for CRM software — limit caps total items fetched.
for product in client.products.search(query="CRM", limit=3):
print(product.name, product.id, product.slug)
# Drill into the first result's reviews via sub-resource.
product = client.products.search(query="accounting", limit=1).first()
if product:
for review in product.reviews.list(limit=2):
print(review.title, review.rating, review.pros[:60])
# Browse categories and list products in the first one.
category = client.categories.list(limit=1).first()
if category:
for item in category.products(limit=3):
print(item.name, item.id)
# Construct a category by slug, list its products, and drill into details.
hr_category = client.category(slug="human-resource")
summary = hr_category.products(limit=1).first()
if summary:
detail = summary.details()
print(detail.name, detail.rating, detail.review_count, detail.description[:80])
# Typed error handling around a details call.
try:
bad_summary = client.category(slug="accounting").products(limit=1).first()
if bad_summary:
bad_summary.details()
except ProductNotFound as exc:
print(f"Product not found: {exc.product_id}")
print("exercised: products.search / product.reviews.list / categories.list / category.products / summary.details")Retrieve a list of all software categories available on Capterra. Returns category names, URLs, and slugs. Each slug can be passed to get_category_products to list products in that category. No pagination; returns the full category tree in a single response.
No input parameters required.
{
"type": "object",
"fields": {
"categories": "array of category objects each containing name, url, and slug"
},
"sample": {
"data": {
"categories": [
{
"url": "https://www.capterra.com/performance-appraisal-software/",
"name": "Performance Management System",
"slug": "performance-appraisal"
},
{
"url": "https://www.capterra.com/human-resource-software/",
"name": "Human Resources",
"slug": "human-resource"
},
{
"url": "https://www.capterra.com/employee-scheduling-software/",
"name": "Employee Scheduling",
"slug": "employee-scheduling"
}
]
},
"status": "success"
}
}About the Capterra API
Category and Product Discovery
get_software_categories returns the full list of software categories on Capterra, each with a name, url, and slug. That slug feeds directly into get_category_products, which returns all products listed under a category as an array of objects — each carrying a name, id, slug, and url. The id and name slug are the two keys you'll reuse across most other endpoints.
Product Details and Reviews
get_product_details accepts a numeric product_id and a product_name slug (both available from category or search results) and returns a single product's description, overall rating out of 5, review_count, and a features array listing the product's advertised capabilities. For review data, get_product_reviews uses the same two required inputs plus an optional page integer, returning a paginated array of review objects. Each review includes title, date, rating, pros, and cons.
Search and Vendor Profiles
search_software accepts a free-text query (e.g. 'CRM', 'project management') and returns matching products with name, id, slug, and url — the same shape as category product listings. get_company_profile takes a company_slug and returns the vendor's name, description, url, and a products array of the software titles they list on Capterra.
The Capterra API is a managed, monitored endpoint for capterra.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when capterra.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official capterra.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a software comparison tool using product ratings and feature lists from
get_product_details - Aggregate user sentiment across competitors by pulling pros and cons from
get_product_reviews - Map the Capterra software directory structure by iterating categories from
get_software_categories - Enrich a B2B database with vendor descriptions and product portfolios via
get_company_profile - Monitor review volume trends for a product over time using
review_countand paginated review dates - Implement software recommendation search using
search_softwarekeyword queries - Identify all products in a category (e.g. accounting) to benchmark feature coverage across vendors
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Capterra have an official developer API?+
What fields does `get_product_reviews` return per review?+
title, date, rating, pros, and cons. Pagination is controlled with the optional page integer parameter. The response also returns page (current page) and product_id for reference.Does the API return reviewer demographics or job roles alongside reviews?+
Is pricing information for listed software products available?+
get_product_details covers description, rating, review count, and features, but does not include pricing tiers or cost data for the listed products. You can fork this API on Parse and revise it to add a pricing endpoint if needed.How does pagination work for product reviews?+
page parameter in get_product_reviews is optional and defaults to the first page. Each response includes the current page value. You increment the page integer to retrieve subsequent batches of reviews for the same product_id.