Skip to content

Monitor the Automotive and EV Industry ​

Combine vehicle manufacturing, vehicle sales and EV charging with industry.id to get one automotive feed. Add event and sentiment filters to focus on the news you need.

Step 1: Choose the industries to follow ​

Send up to 3 IDs in industry.id, separated by commas, to match any of them. Use 801 for Vehicle Manufacturing (vehicles and parts), 805 for Vehicle Sales (dealerships, fleets and online sales), and 807 for EV Charging.

bash
curl "https://api.apitube.io/v1/news/everything?industry.id=801,805,807&sort.by=published_at&sort.order=desc&per_page=20&api_key=YOUR_API_KEY"
python
import requests

response = requests.get(
    "https://api.apitube.io/v1/news/everything",
    params={
        "industry.id": "801,805,807",
        "sort.by": "published_at",
        "sort.order": "desc",
        "per_page": "20",
        "api_key": "YOUR_API_KEY",
    },
)
print(response.json())
javascript
const params = new URLSearchParams({ "industry.id": "801,805,807", "sort.by": "published_at", "sort.order": "desc", "per_page": "20", "api_key": "YOUR_API_KEY" });
const response = await fetch(`https://api.apitube.io/v1/news/everything?${params}`);
const data = await response.json();
console.log(data);
php
$query = http_build_query(["industry.id" => "801,805,807", "sort.by" => "published_at", "sort.order" => "desc", "per_page" => "20", "api_key" => "YOUR_API_KEY"]);
$response = file_get_contents("https://api.apitube.io/v1/news/everything?$query");
$data = json_decode($response, true);
print_r($data);
go
package main

import (
	"encoding/json"
	"fmt"
	"io"
	"net/http"
	"net/url"
)

func main() {
	u, _ := url.Parse("https://api.apitube.io/v1/news/everything")
	q := u.Query()
	q.Set("industry.id", "801,805,807")
	q.Set("sort.by", "published_at")
	q.Set("sort.order", "desc")
	q.Set("per_page", "20")
	q.Set("api_key", "YOUR_API_KEY")
	u.RawQuery = q.Encode()

	resp, _ := http.Get(u.String())
	defer resp.Body.Close()

	body, _ := io.ReadAll(resp.Body)
	var data map[string]any
	json.Unmarshal(body, &data)
	fmt.Println(data)
}
java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class Example {
    public static void main(String[] args) throws Exception {
        HttpClient client = HttpClient.newHttpClient();
        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create("https://api.apitube.io/v1/news/everything?industry.id=801,805,807&sort.by=published_at&sort.order=desc&per_page=20&api_key=YOUR_API_KEY"))
            .GET()
            .build();
        HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
        System.out.println(response.body());
    }
}
text
Write a script in your preferred language that calls the APITube News API:

GET https://api.apitube.io/v1/news/everything?industry.id=801,805,807&sort.by=published_at&sort.order=desc&per_page=20

Read the API key from an environment variable (do not hardcode it), handle request
errors, and print the key fields of each result.
Docs: https://docs.apitube.io/platform/news-api/everything
  • Part of the industry — each article's industries array shows whether it covers manufacturing, sales or charging.
  • Tone of the coverage — sentiment.overall.polarity and sentiment.overall.score.
  • Publisher — source.domain identifies the website. Use source.country.code to see the publisher's country.

Step 2: Narrow to one manufacturer ​

Add title to select headlines mentioning a manufacturer. This helps narrow a broad industry feed to one company.

bash
curl "https://api.apitube.io/v1/news/everything?industry.id=801,805,807&title=Tesla&per_page=20&api_key=YOUR_API_KEY"
python
import requests

response = requests.get(
    "https://api.apitube.io/v1/news/everything",
    params={
        "industry.id": "801,805,807",
        "title": "Tesla",
        "per_page": "20",
        "api_key": "YOUR_API_KEY",
    },
)
print(response.json())
javascript
const params = new URLSearchParams({ "industry.id": "801,805,807", "title": "Tesla", "per_page": "20", "api_key": "YOUR_API_KEY" });
const response = await fetch(`https://api.apitube.io/v1/news/everything?${params}`);
const data = await response.json();
console.log(data);
php
$query = http_build_query(["industry.id" => "801,805,807", "title" => "Tesla", "per_page" => "20", "api_key" => "YOUR_API_KEY"]);
$response = file_get_contents("https://api.apitube.io/v1/news/everything?$query");
$data = json_decode($response, true);
print_r($data);
go
package main

import (
	"encoding/json"
	"fmt"
	"io"
	"net/http"
	"net/url"
)

func main() {
	u, _ := url.Parse("https://api.apitube.io/v1/news/everything")
	q := u.Query()
	q.Set("industry.id", "801,805,807")
	q.Set("title", "Tesla")
	q.Set("per_page", "20")
	q.Set("api_key", "YOUR_API_KEY")
	u.RawQuery = q.Encode()

	resp, _ := http.Get(u.String())
	defer resp.Body.Close()

	body, _ := io.ReadAll(resp.Body)
	var data map[string]any
	json.Unmarshal(body, &data)
	fmt.Println(data)
}
java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class Example {
    public static void main(String[] args) throws Exception {
        HttpClient client = HttpClient.newHttpClient();
        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create("https://api.apitube.io/v1/news/everything?industry.id=801,805,807&title=Tesla&per_page=20&api_key=YOUR_API_KEY"))
            .GET()
            .build();
        HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
        System.out.println(response.body());
    }
}
text
Write a script in your preferred language that calls the APITube News API:

GET https://api.apitube.io/v1/news/everything?industry.id=801,805,807&title=Tesla&per_page=20

Read the API key from an environment variable (do not hardcode it), handle request
errors, and print the key fields of each result.
Docs: https://docs.apitube.io/platform/news-api/everything

For a topic rather than a company — title=electric vehicle — multiple words are matched as AND, so every word must appear in the headline. Wrap the phrase in double quotes to require the exact order.

Step 3: Split the feed into recalls and launches ​

Use event.type=recall for safety recalls and event.type=product-launch for new models and product announcements.

bash
curl "https://api.apitube.io/v1/news/everything?industry.id=801,805,807&event.type=recall&sort.by=published_at&sort.order=desc&per_page=20&api_key=YOUR_API_KEY"
python
import requests

response = requests.get(
    "https://api.apitube.io/v1/news/everything",
    params={
        "industry.id": "801,805,807",
        "event.type": "recall",
        "sort.by": "published_at",
        "sort.order": "desc",
        "per_page": "20",
        "api_key": "YOUR_API_KEY",
    },
)
print(response.json())
javascript
const params = new URLSearchParams({ "industry.id": "801,805,807", "event.type": "recall", "sort.by": "published_at", "sort.order": "desc", "per_page": "20", "api_key": "YOUR_API_KEY" });
const response = await fetch(`https://api.apitube.io/v1/news/everything?${params}`);
const data = await response.json();
console.log(data);
php
$query = http_build_query(["industry.id" => "801,805,807", "event.type" => "recall", "sort.by" => "published_at", "sort.order" => "desc", "per_page" => "20", "api_key" => "YOUR_API_KEY"]);
$response = file_get_contents("https://api.apitube.io/v1/news/everything?$query");
$data = json_decode($response, true);
print_r($data);
go
package main

import (
	"encoding/json"
	"fmt"
	"io"
	"net/http"
	"net/url"
)

func main() {
	u, _ := url.Parse("https://api.apitube.io/v1/news/everything")
	q := u.Query()
	q.Set("industry.id", "801,805,807")
	q.Set("event.type", "recall")
	q.Set("sort.by", "published_at")
	q.Set("sort.order", "desc")
	q.Set("per_page", "20")
	q.Set("api_key", "YOUR_API_KEY")
	u.RawQuery = q.Encode()

	resp, _ := http.Get(u.String())
	defer resp.Body.Close()

	body, _ := io.ReadAll(resp.Body)
	var data map[string]any
	json.Unmarshal(body, &data)
	fmt.Println(data)
}
java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class Example {
    public static void main(String[] args) throws Exception {
        HttpClient client = HttpClient.newHttpClient();
        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create("https://api.apitube.io/v1/news/everything?industry.id=801,805,807&event.type=recall&sort.by=published_at&sort.order=desc&per_page=20&api_key=YOUR_API_KEY"))
            .GET()
            .build();
        HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
        System.out.println(response.body());
    }
}
text
Write a script in your preferred language that calls the APITube News API:

GET https://api.apitube.io/v1/news/everything?industry.id=801,805,807&event.type=recall&sort.by=published_at&sort.order=desc&per_page=20

Read the API key from an environment variable (do not hardcode it), handle request
errors, and print the key fields of each result.
Docs: https://docs.apitube.io/platform/news-api/everything

Change the event type to compare recalls with launches. Use a count request when you only need the totals:

python
import requests

MAKERS = ["Tesla", "Toyota", "BYD", "Volkswagen"]
AUTO = "801,805,807"

def scoreboard(api_key, event, since="2026-01-01"):
    rows = {}
    for maker in MAKERS:
        r = requests.get(
            "https://api.apitube.io/v1/news/count",
            params={
                "industry.id": AUTO,
                "title": maker,
                "event.type": event,
                "published_at.start": since,
                "api_key": api_key,
            },
        ).json()
        rows[maker] = r["count"]
    return dict(sorted(rows.items(), key=lambda kv: -kv[1]))

Tip: use EV charging (807) on its own to follow charging infrastructure and utility partnerships.