Cross-regional media bias analysis

Compare how different regions cover specific topics, showing whether coverage is positive, negative, or neutral and filtering by date range

Input parameters

ParameterDescriptionTypeDefaultRequired
titleSearch for topic.stringYes
source.country.codeMultiple country codes (comma-separated).stringYes
sort.bySort by sentiment score.stringYes
published_at.startStart date filter.stringYes
published_at.endEnd date filter.stringYes
facetCount articles by field.booleantrueYes
facet.fieldFields to count articles by.stringYes
api_keyYour API keystringYes
per_pageMaximum number of articles to retrieveinteger50No

Workflow examples

Cross-regional media bias analysis:
curl -X GET "https://api.apitube.io/v1/news/everything?title=climate%20change&source.country.code=us,cn,in&sort.by=sentiment.overall.score&published_at.start=2023-01-01&published_at.end=2023-01-31&api_key=YOUR_API_KEY"
Media bias distribution:
curl -X GET "https://api.apitube.io/v1/news/everything?title=climate%20change&facet=true&facet.field=source.bias,source.country.id&api_key=YOUR_API_KEY"

Related examples

Recipe for cURL

curl --location --globoff --request POST 'https://api.apitube.io/v1/news/everything?title=climate+change&source.country.code=us%2Ccn%2Cin&sort.by=sentiment.overall.score&published_at.start=2023-01-01&published_at.end=2023-12-31&facet=1&facet.field=source.bias%2Csource.country.id&api_key=YOUR_API_KEY&per_page=50' \
--header 'Content-Type: application/json'

Recipe for Python

import requests

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

querystring = {
    "title": "climate change",
    "source.country.code": "us,cn,in",
    "sort.by": "sentiment.overall.score",
    "published_at.start": "2023-01-01",
    "published_at.end": "2023-12-31",
    "facet": true,
    "facet.field": "source.bias,source.country.id",
    "api_key": "YOUR_API_KEY",
    "per_page": 50
}
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": "climate change",
    "source.country.code": "us,cn,in",
    "sort.by": "sentiment.overall.score",
    "published_at.start": "2023-01-01",
    "published_at.end": "2023-12-31",
    "facet": true,
    "facet.field": "source.bias,source.country.id",
    "api_key": "YOUR_API_KEY",
    "per_page": 50
}};

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' => 'climate change',
    'source.country.code' => 'us,cn,in',
    'sort.by' => 'sentiment.overall.score',
    'published_at.start' => '2023-01-01',
    'published_at.end' => '2023-12-31',
    'facet' => 1,
    'facet.field' => 'source.bias,source.country.id',
    'api_key' => 'YOUR_API_KEY',
    'per_page' => 50,
],
]);

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=climate+change&source.country.code=us%2Ccn%2Cin&sort.by=sentiment.overall.score&published_at.start=2023-01-01&published_at.end=2023-12-31&facet=1&facet.field=source.bias%2Csource.country.id&api_key=YOUR_API_KEY&per_page=50")
		.method("POST", body)
		.addHeader("Content-Type", "application/json")
		.build();
Response response = client.newCall(request).execute();
		
  • CNN
  • Techcrunch
  • Vox
  • Apple
  • Microsoft
  • IBM
  • Bloomberg
  • Spotify
We use cookies

By clicking "Accept", you agree to cookies on your device for the site to work and for analytics.