Capterra API endpoint
Returns Capterra search-result products (id, name, url, description, rating). Note: Capterra renders a fallback product list even for queries with no genuine match, rather than a distinct empty-results page, so callers should treat low-relevance results as an upstream characteristic, not a bug.
/capterra/searchWhen the source site blocks the request, the endpoint returns a 503 upstream error.
Query parameters:
q (required) — search query.Response includes: query, items — a list of product_id, name, url,
description, rating, review_count.
Known limitation: Capterra was observed to always render a fallback set of product cards, even for a nonsense query with no genuine match, rather than a distinct empty-results page. This endpoint cannot reliably distinguish a truly-irrelevant query from a real match using page markers alone — treat a low-relevance result set as an upstream characteristic, not a parser bug.
| Field | Filled in, of 20 checked | Values in the sample |
|---|---|---|
| product_id | 20 | |
| name | 20 | “Slack” and 19 other values |
| url | 20 | capterra.com |
| description | 12 | median 127 characters |
| rating | 4 | 4.2 to 5, median 4.4 |
| review_count | 4 | 1 to 24,224, median 11 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| q | string | Yes | Search query | slack | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/capterra/search?q=slack" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"query": "slack",
"items": [
{
"product_id": "135003",
"name": "Slack",
"url": "https://www.capterra.com/p/135003/Slack/",
"description": "Bring your people, applications and data into one platform.",
"rating": 4.7,
"review_count": 24148
}
]
}
}Request schema
No body schema
Response schema
#/definitions/capterra.searchResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | capterra.SearchResponse | No | ||||
| data.items | array | No | ||||
| data.items[].description | string | No | ||||
| data.items[].name | string | No | Slack | |||
| data.items[].product_id | string | No | 135003 | |||
| data.items[].rating | number | No | 4.7 | |||
| data.items[].review_count | integer | No | 24148 | |||
| data.items[].url | string | No | https://www.capterra.com/p/135003/Slack/ | |||
| data.query | string | No | slack | |||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 500 | Internal Server Error | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/capterra/search?q=slack" \
-H "x-api-key: $CRAWLORA_API_KEY"