Trustpilot API endpoint
Searches Trustpilot for businesses matching a query, for a country (default `US`), with `page` and `page_size` (default 20, max 100). Each result has the display name, identifying name, TrustScore, star rating, review count, categories, website, email, phone, address and Trustpilot URL; `total_hits` gives the full match count.
/trustpilot/business-units/searchQuery parameters:
q: required. Search query. Example: openai.country: optional. Two-letter country code; defaults to US. Example: US.page: optional. 1-based page number; defaults to 1. Example: 1. Minimum: 1.page_size: optional. Results per page; defaults to 20, maximum 100. Example: 5. Minimum: 1. Maximum: 100.| Field | Filled in, of 40 checked | Values in the sample |
|---|---|---|
| business_unit_id | 40 | |
| display_name | 40 | |
| identifying_name | 40 | “openai.com” and 39 other values |
| trustpilot_url | 40 | trustpilot.com |
| website_url | 40 | openai.com and 39 other hosts |
| verified | 40 | true in 17 of 40 |
| review_count | 40 | 0 to 3,873, median 7 |
| trust_score | 40 | 0 to 4.8, median 3.6 |
| stars | 40 | 0 to 5, median 3.5 |
| country_code | 40 | |
| categories | 35 | median 2 entries |
| address | 39 | |
| logo_url | 22 | s3-eu-west-1.amazonaws.com |
| 18 | ||
| phone | 12 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| q | string | Yes | Search query | openai | |
| country | string | No | US | Two-letter country code; defaults to US | US |
| page | integer | No | 1 | 1-based page number; defaults to 1 Minimum: 1. | 1 |
| page_size | integer | No | 20 | Results per page; defaults to 20, maximum 100 Minimum: 1. Maximum: 100. | 5 |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/trustpilot/business-units/search?q=openai&country=us&page=1" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"query": "openai",
"country": "US",
"page": 1,
"page_size": 5,
"items": []
}
}Request schema
No body schema
Response schema
#/definitions/trustpilot.businessSearchResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | trustpilot.SearchResponse | No | ||||
| data.country | string | No | US | Two-letter country code the search was run for. | ||
| data.items | array | No | Businesses matching the query on this page. | |||
| data.items[].address | object | No | Address of the business. Omitted when Trustpilot lists none. | |||
| data.items[].address.approximate_area | object | No | Bounding box of the approximate area the address falls in. | |||
| data.items[].address.approximate_area.north_west | object | No | North-west corner of the area. | |||
| data.items[].address.approximate_area.north_west.lat | number | No | 39.7837304 | Latitude in decimal degrees. | ||
| data.items[].address.approximate_area.north_west.lon | number | No | -100.445882 | Longitude in decimal degrees. | ||
| data.items[].address.approximate_area.south_east | object | No | South-east corner of the area. | |||
| data.items[].address.approximate_area.south_east.lat | number | No | 39.7837304 | Latitude in decimal degrees. | ||
| data.items[].address.approximate_area.south_east.lon | number | No | -100.445882 | Longitude in decimal degrees. | ||
| data.items[].address.city | string | No | San Francisco | City of the business. | ||
| data.items[].address.coordinates | object | No | Latitude and longitude of the business. | |||
| data.items[].address.coordinates.lat | number | No | 39.7837304 | Latitude in decimal degrees. | ||
| data.items[].address.coordinates.lon | number | No | -100.445882 | Longitude in decimal degrees. | ||
| data.items[].address.country | string | No | United States | Country name of the business. | ||
| data.items[].address.country_code | string | No | US | Country code of the business, such as `US`. | ||
| data.items[].address.postcode | string | No | 94105 | Postal code of the business. | ||
| data.items[].address.street | string | No | 1 Market St | Street address of the business. | ||
| data.items[].business_unit_id | string | No | 630f21bc9f08b0302a52590d | Trustpilot id of the business. | ||
| data.items[].categories | array | No | Categories the business is listed under. | |||
| data.items[].categories[].id | string | No | software_company | Trustpilot category id, such as `software_company`. | ||
| data.items[].categories[].name | string | No | Software Company | Display name of the category. | ||
| data.items[].categories[].primary | boolean | No | true | Whether this is the business's primary category. | ||
| data.items[].country_code | string | No | FR | Country code of the business, such as `FR`. | ||
| data.items[].display_name | string | No | OpenAI | Display name of the business on Trustpilot. | ||
| data.items[].email | string | No | hello@example.com | Contact email address of the business. | ||
| data.items[].identifying_name | string | No | openai.com | Business slug used in the Trustpilot profile URL, usually the website domain. Use it with the business endpoint. | ||
| data.items[].logo_url | string | No | https://s3-eu-west-1.amazonaws.com/tpd/logos/example/0x0.png | URL of the business's logo. | ||
| data.items[].phone | string | No | +1-555-555-5555 | Contact phone number of the business. | ||
| data.items[].predicted_top_category | object | No | Category Trustpilot predicts as the business's top category. | |||
| data.items[].predicted_top_category.id | string | No | software_company | Trustpilot category id, such as `software_company`. | ||
| data.items[].predicted_top_category.name | string | No | Software Company | Display name of the category. | ||
| data.items[].predicted_top_category.primary | boolean | No | true | Whether this is the business's primary category. | ||
| data.items[].review_count | integer | No | 984 | Total number of reviews the business has on Trustpilot. | ||
| data.items[].stars | number | No | 1.5 | Star rating of the business, out of 5. | ||
| data.items[].trust_score | number | No | 1.3 | Trustpilot TrustScore of the business, as a decimal number. | ||
| data.items[].trustpilot_url | string | No | https://www.trustpilot.com/review/openai.com | URL of the business profile on Trustpilot. | ||
| data.items[].verified | boolean | No | false | Whether Trustpilot marks the business as verified. | ||
| data.items[].website_url | string | No | https://openai.com | Website address of the business. | ||
| data.page | integer | No | 1 | Page number returned. | ||
| data.page_size | integer | No | 5 | Number of results per page. | ||
| data.query | string | No | openai | Query that was run. | ||
| data.search_mode | string | No | keyword | How Trustpilot matched the query, such as `keyword`. | ||
| data.total_hits | integer | No | 147 | Total number of businesses matching the query. | ||
| data.total_pages | integer | No | 30 | Total number of result pages. | ||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Missing or invalid query parameters | #/definitions/app.Response |
| 404 | No results found | #/definitions/app.Response |
| 429 | Rate limit exceeded | #/definitions/app.Response |
| 500 | Internal server error | #/definitions/app.Response |
| 503 | Trustpilot upstream request failed | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/trustpilot/business-units/search?q=openai&country=us&page=1" \
-H "x-api-key: $CRAWLORA_API_KEY"