Analytics dashboard query

Build a dashboard with article counts by field and range. Choose which fields to return and apply multiple filters

Input parameters

ParameterDescriptionTypeDefaultRequired
organization.nameOrganization filter.stringYes
facetCount articles by field value.booleantrueYes
facet.fieldFields to count articles by.stringYes
facet.rangeCount articles by range.booleantrueYes
facet.range.fieldField to use for counts by range.stringYes
facet.range.startStart date for range.stringYes
facet.range.endEnd date for range.stringYes
facet.range.gapGap between ranges.stringYes
flField selection.stringYes
source.rank.opr.minMinimum source quality.stringYes
api_keyYour API keystringYes
per_pageMaximum number of articles to retrieveinteger50No

Workflow examples

Comprehensive analytics dashboard:
curl -X GET "https://api.apitube.io/v1/news/everything?organization.name=Tesla&facet=true&facet.field=source.id,language.id,sentiment.overall.polarity,published.day_of_week&facet.range=true&facet.range.field=published_at&facet.range.start=2024-01-01&facet.range.end=2024-12-31&facet.range.gap=1MONTH&fl=id,title,published_at,sentiment.overall.score&source.rank.opr.min=5&api_key=YOUR_API_KEY"
See how strongly positive or negative the coverage is:
curl -X GET "https://api.apitube.io/v1/news/everything?organization.name=Tesla&facet=true&facet.field=sentiment.strength,sentiment.overall.polarity&api_key=YOUR_API_KEY"
Yearly trend analysis:
curl -X GET "https://api.apitube.io/v1/news/everything?topic.id=industry.ai_news&facet=true&facet.field=published.year,published.month&published_at.start=2020-01-01&api_key=YOUR_API_KEY"

Related examples

Recipe for cURL

curl --location --globoff --request POST 'https://api.apitube.io/v1/news/everything?organization.name=Tesla&facet=1&facet.field=source.id%2Clanguage.id%2Csentiment.overall.polarity%2Cpublished.day_of_week&facet.range=1&facet.range.field=published_at&facet.range.start=2024-01-01&facet.range.end=2024-12-31&facet.range.gap=1MONTH&fl=id%2Ctitle%2Cpublished_at%2Csentiment.overall.score&source.rank.opr.min=5&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 = {
    "organization.name": "Tesla",
    "facet": true,
    "facet.field": "source.id,language.id,sentiment.overall.polarity,published.day_of_week",
    "facet.range": true,
    "facet.range.field": "published_at",
    "facet.range.start": "2024-01-01",
    "facet.range.end": "2024-12-31",
    "facet.range.gap": "1MONTH",
    "fl": "id,title,published_at,sentiment.overall.score",
    "source.rank.opr.min": 5,
    "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: {
    "organization.name": "Tesla",
    "facet": true,
    "facet.field": "source.id,language.id,sentiment.overall.polarity,published.day_of_week",
    "facet.range": true,
    "facet.range.field": "published_at",
    "facet.range.start": "2024-01-01",
    "facet.range.end": "2024-12-31",
    "facet.range.gap": "1MONTH",
    "fl": "id,title,published_at,sentiment.overall.score",
    "source.rank.opr.min": 5,
    "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' => [
    'organization.name' => 'Tesla',
    'facet' => 1,
    'facet.field' => 'source.id,language.id,sentiment.overall.polarity,published.day_of_week',
    'facet.range' => 1,
    'facet.range.field' => 'published_at',
    'facet.range.start' => '2024-01-01',
    'facet.range.end' => '2024-12-31',
    'facet.range.gap' => '1MONTH',
    'fl' => 'id,title,published_at,sentiment.overall.score',
    'source.rank.opr.min' => 5,
    '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?organization.name=Tesla&facet=1&facet.field=source.id%2Clanguage.id%2Csentiment.overall.polarity%2Cpublished.day_of_week&facet.range=1&facet.range.field=published_at&facet.range.start=2024-01-01&facet.range.end=2024-12-31&facet.range.gap=1MONTH&fl=id%2Ctitle%2Cpublished_at%2Csentiment.overall.score&source.rank.opr.min=5&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.