SharpAPI.com Node.js SDK for analyzing product review sentiment
npm install @sharpapi/sharpapi-node-product-review-sentiment

SharpAPI Product Review Sentiment Analyzer uses advanced AI to determine if product reviews are positive, negative, or neutral with confidence scores. Perfect for e-commerce platforms, review management, and customer feedback analysis.
---
1. Requirements
2. Installation
3. Usage
4. API Documentation
5. Examples
6. License
---
- Node.js >= 16.x
- npm or yarn
---
``bash`
npm install @sharpapi/sharpapi-node-product-review-sentiment
Visit SharpAPI.com to get your API key.
---
`javascript
const { SharpApiProductReviewSentimentService } = require('@sharpapi/sharpapi-node-product-review-sentiment');
const apiKey = process.env.SHARP_API_KEY; // Store your API key in environment variables
const service = new SharpApiProductReviewSentimentService(apiKey);
const review =
This product exceeded my expectations! The quality is outstanding and delivery was fast.
I highly recommend it to anyone looking for a reliable solution.;
async function analyzeReview() {
try {
// Submit sentiment analysis job
const statusUrl = await service.analyzeSentiment(review);
console.log('Job submitted. Status URL:', statusUrl);
// Fetch results (polls automatically until complete)
const result = await service.fetchResults(statusUrl);
const sentiment = result.getResultJson();
console.log('Sentiment:', sentiment.opinion);
console.log('Confidence:', sentiment.score + '%');
} catch (error) {
console.error('Error:', error.message);
}
}
analyzeReview();
`
---
#### analyzeSentiment(reviewText: string): Promise
Analyzes the sentiment of a product review.
Parameters:
- reviewText (string, required): The review text to analyze
Returns:
- Promise
Example:
`javascript`
const statusUrl = await service.analyzeSentiment(customerReview);
const result = await service.fetchResults(statusUrl);
The API returns sentiment classification with confidence score:
`json`
{
"opinion": "POSITIVE",
"score": 95,
"key_phrases": [
"exceeded expectations",
"outstanding quality",
"highly recommend"
]
}
Sentiment Values:
- POSITIVE: Review expresses satisfaction or praiseNEGATIVE
- : Review expresses dissatisfaction or criticismNEUTRAL
- : Review is balanced or factual without strong opinion
---
`javascript
const { SharpApiProductReviewSentimentService } = require('@sharpapi/sharpapi-node-product-review-sentiment');
const service = new SharpApiProductReviewSentimentService(process.env.SHARP_API_KEY);
const review = 'The product broke after 2 days. Very disappointed with the quality.';
service.analyzeSentiment(review)
.then(statusUrl => service.fetchResults(statusUrl))
.then(result => {
const sentiment = result.getResultJson();
const emoji = sentiment.opinion === 'POSITIVE' ? '😊' :
sentiment.opinion === 'NEGATIVE' ? '😞' : '😐';
console.log(${emoji} Sentiment: ${sentiment.opinion} (${sentiment.score}% confidence));`
})
.catch(error => console.error('Analysis failed:', error));
`javascript
const service = new SharpApiProductReviewSentimentService(process.env.SHARP_API_KEY);
const reviews = [
{ id: 1, text: 'Amazing product! Love it.' },
{ id: 2, text: 'Not worth the money, poor quality.' },
{ id: 3, text: 'Good product, fast shipping.' },
{ id: 4, text: 'Terrible experience, would not buy again.' }
];
const analyzed = await Promise.all(
reviews.map(async (review) => {
const statusUrl = await service.analyzeSentiment(review.text);
const result = await service.fetchResults(statusUrl);
const sentiment = result.getResultJson();
return {
id: review.id,
text: review.text,
sentiment: sentiment.opinion,
score: sentiment.score
};
})
);
const positive = analyzed.filter(r => r.sentiment === 'POSITIVE').length;
const negative = analyzed.filter(r => r.sentiment === 'NEGATIVE').length;
console.log(Positive reviews: ${positive}/${analyzed.length});Negative reviews: ${negative}/${analyzed.length}
console.log();`
`javascript
const service = new SharpApiProductReviewSentimentService(process.env.SHARP_API_KEY);
async function analyzeProductReviews(productId, reviews) {
const sentiments = await Promise.all(
reviews.map(async (review) => {
const statusUrl = await service.analyzeSentiment(review.text);
const result = await service.fetchResults(statusUrl);
return result.getResultJson();
})
);
const positiveCount = sentiments.filter(s => s.opinion === 'POSITIVE').length;
const negativeCount = sentiments.filter(s => s.opinion === 'NEGATIVE').length;
const neutralCount = sentiments.filter(s => s.opinion === 'NEUTRAL').length;
const avgScore = sentiments.reduce((sum, s) => sum + s.score, 0) / sentiments.length;
return {
productId,
totalReviews: reviews.length,
positive: positiveCount,
negative: negativeCount,
neutral: neutralCount,
averageConfidence: Math.round(avgScore),
overallSentiment: positiveCount > negativeCount ? 'POSITIVE' : 'NEGATIVE'
};
}
const productReviews = [
{ text: 'Great quality, very satisfied!' },
{ text: 'Perfect for my needs.' },
{ text: 'Not as described, disappointed.' }
];
const dashboard = await analyzeProductReviews('PROD-123', productReviews);
console.log('Product Sentiment Dashboard:', dashboard);
`
---
- E-commerce Platforms: Analyze customer reviews automatically
- Review Moderation: Flag negative reviews for quick response
- Product Insights: Understand customer satisfaction trends
- Quality Control: Identify products with declining sentiment
- Marketing: Highlight positive reviews in campaigns
- Customer Support: Prioritize responses to negative feedback
- Competitive Analysis: Compare sentiment across products
---
The analyzer evaluates multiple factors:
- Language Patterns: Positive vs negative word choices
- Emotional Indicators: Expressions of satisfaction or frustration
- Rating Consistency: Alignment with explicit ratings
- Key Phrases: Important phrases indicating sentiment
- Context Understanding: Industry-specific terminology
- Sarcasm Detection: Identifies ironic or sarcastic reviews
---
POST /ecommerce/review_sentiment`
For detailed API specifications, refer to:
- Postman Documentation
- Product Page
---
- @sharpapi/sharpapi-node-travel-review-sentiment - Travel review sentiment
- @sharpapi/sharpapi-node-detect-spam - Spam detection
- @sharpapi/sharpapi-node-product-categories - Product categorization
- @sharpapi/sharpapi-node-client - Full SharpAPI SDK
---
This project is licensed under the MIT License. See the LICENSE.md file for details.
---
- Documentation: SharpAPI.com Documentation
- Issues: GitHub Issues
- Email: contact@sharpapi.com
---
Powered by SharpAPI - AI-Powered API Workflow Automation