Product review sentiment analysis with brand filtering

Analyze product reviews with brand filtering, sentiment score range, and time filtering

Input parameters

ParameterDescriptionTypeDefaultRequired
titleSearch for review articles.stringYes
brand.nameBrand/product name.stringYes
sentiment.overall.score.minMinimum sentiment score.floatYes
sentiment.overall.score.maxMaximum sentiment score.floatYes
published_at.startStart date filter.stringYes
sort.bySort by sentiment score.stringYes
source.rank.opr.minMinimum source quality.stringYes
api_keyYour API key.stringYes
per_pageMaximum number of articles to retrieve.integer25No

Workflow examples

Request for product review sentiment analysis:
curl -X GET "https://api.apitube.io/v1/news/everything?title=review&brand.name=Samsung%20Galaxy%20S23&sentiment.overall.score.min=-1.0&sentiment.overall.score.max=1.0&published_at.start=2023-01-01&sort.by=sentiment.overall.score&api_key=YOUR_API_KEY"

Recipe for cURL

curl --location --globoff --request POST 'https://api.apitube.io/v1/news/everything?title=review&brand.name=Samsung+Galaxy+S23&sentiment.overall.score.min=-1&sentiment.overall.score.max=1&published_at.start=2023-01-01&sort.by=sentiment.overall.score&source.rank.opr.min=0.6&api_key=YOUR_API_KEY&per_page=25' \
--header 'Content-Type: application/json'

Recipe for Python

import requests

url = "https://api.apitube.io/v1/news/everything"

querystring = {
    "title": "review",
    "brand.name": "Samsung Galaxy S23",
    "sentiment.overall.score.min": -1,
    "sentiment.overall.score.max": 1,
    "published_at.start": "2023-01-01",
    "sort.by": "sentiment.overall.score",
    "source.rank.opr.min": 0.6,
    "api_key": "YOUR_API_KEY",
    "per_page": 25
}
response = requests.request("GET", url, params=querystring)

print(response.text)

Recipe for Javascript

import axios from "axios"

const options = {
		method: 'GET',
		url: 'https://api.apitube.io/v1/news/everything',
		params: {
    "title": "review",
    "brand.name": "Samsung Galaxy S23",
    "sentiment.overall.score.min": -1,
    "sentiment.overall.score.max": 1,
    "published_at.start": "2023-01-01",
    "sort.by": "sentiment.overall.score",
    "source.rank.opr.min": 0.6,
    "api_key": "YOUR_API_KEY",
    "per_page": 25
}};

axios.request(options).then(function (response) {
		console.log(response.data);
}).catch(function (error) {
		console.error(error);
});

Recipe for PHP

require 'vendor/autoload.php';

use GuzzleHttp\Client;

$client = new Client();
$response = $client->request('GET', 'https://api.apitube.io/v1/news/everything', [
	'query' => [
    'title' => 'review',
    'brand.name' => 'Samsung Galaxy S23',
    'sentiment.overall.score.min' => -1,
    'sentiment.overall.score.max' => 1,
    'published_at.start' => '2023-01-01',
    'sort.by' => 'sentiment.overall.score',
    'source.rank.opr.min' => 0.6,
    'api_key' => 'YOUR_API_KEY',
    'per_page' => 25,
],
]);

echo $response->getBody();

Recipe for Java

OkHttpClient client = new OkHttpClient().newBuilder().build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "");
Request request = new Request.Builder()
		.url("https://api.apitube.io/v1/news/everything?title=review&brand.name=Samsung+Galaxy+S23&sentiment.overall.score.min=-1&sentiment.overall.score.max=1&published_at.start=2023-01-01&sort.by=sentiment.overall.score&source.rank.opr.min=0.6&api_key=YOUR_API_KEY&per_page=25")
		.method("POST", body)
		.addHeader("Content-Type", "application/json")
		.build();
Response response = client.newCall(request).execute();
		
  • CNN
  • Techcrunch
  • Vox
  • Apple
  • Microsoft
  • IBM
  • Bloomberg
  • Spotify