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";
async run() {
const client = new TrustpilotApi({
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.apiRequest
try {
const response = await client.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";
async run() {
const client = await new TrustpilotApi({
key: 'YOUR-API-KEY',
secret: 'YOUR-SECRET',
username: 'YOUR-TRUSTPILOT-B2B-USERNAME',
password: 'YOUR-TRUSTPILOT-B2B-PASSWORD',
baseUrl: 'https://api.trustpilot.com'
}).authenticate();
try {
const response = await client.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";
async run() {
const client = await new TrustpilotApi({
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";
async run() {
const client = await new TrustpilotApi({
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
const json = await client.apiRequest('...');
const json = (await client.apiRequest('...')).data;