This a NodeJS API wrapper for accessing the Trustpilot APIs. You can learn all about the Trustpilot API at https://developers.trustpilot.com/.
This module is built using Typescript and NodeJS v20.x.
Install using npm install trustpilot
As of version 3, the project has been converted to Typescript. The trustpilot module is async/await based. It provides an axios instance with sane defaults.
import{TrustpilotApi}from"trustpilot";asyncrun(){constclient=newTrustpilotApi({key: 'YOUR-API-KEY',secret: 'YOUR-SECRET',username: 'YOUR-TRUSTPILOT-B2B-USERNAME',password: 'YOUR-TRUSTPILOT-B2B-PASSWORD',baseUrl: 'https://api.trustpilot.com'});// For basic calls authentified by API key, use client.apiRequesttry{constresponse=awaitclient.apiRequest('/v1/resources/images');console.log(response.data);}catch(error){// handle the error});}For calls authentified by OAuth token, use the authenticate() promise, which resolves with an axiosInstance
object with everything you need.
import{TrustpilotApi}from"trustpilot";asyncrun(){constclient=awaitnewTrustpilotApi({key: 'YOUR-API-KEY',secret: 'YOUR-SECRET',username: 'YOUR-TRUSTPILOT-B2B-USERNAME',password: 'YOUR-TRUSTPILOT-B2B-PASSWORD',baseUrl: 'https://api.trustpilot.com'}).authenticate();try{constresponse=awaitclient.get(`/v1/private/business-units/${YOUR_BUSINESS_UNIT_ID}/reviews`);console.log(response.data);}catch(error){// handle the error});}For service-to-service communication use 'client_credentials' grant type and API application key, secret combination to obtain an OAuth token. (Default grant type: password)
import{TrustpilotApi}from"trustpilot";asyncrun(){constclient=awaitnewTrustpilotApi({key: 'YOUR-API-KEY',secret: 'YOUR-SECRET',grantType: 'client_credentials',baseUrl: 'https://api.trustpilot.com'}).authenticate();// Use client}The Invitations API methods have a different base URL. To override it, simply pass the baseUrl.
import{TrustpilotApi}from"trustpilot";asyncrun(){constclient=awaitnewTrustpilotApi({key: 'YOUR-API-KEY',secret: 'YOUR-SECRET',username: 'YOUR-TRUSTPILOT-B2B-USERNAME',password: 'YOUR-TRUSTPILOT-B2B-PASSWORD',baseUrl: 'https://invitations-api.trustpilot.com'}).authenticate();// Use client}As of version 4, request-promise-native has been replaced by axios
This means all responses are now following this response schema
so code that previously used the response body directly, will need to add a .data
constjson=awaitclient.apiRequest('...');constjson=(awaitclient.apiRequest('...')).data;