Companies
The Companies endpoints provide a searchable directory of organizations and brands, enriched with Wikidata metadata (headquarters, founded date, website, key people, subsidiaries), plus a coverage block and the latest articles mentioning them.
Added in 1.0.42
Full response field definitions are in API Response Structure. See also the Monitor a company recipe.
Endpoints
GET /v1/companies # list & search
GET /v1/companies/{id} # single company profileAuthentication via the X-API-Key header or the api_key query parameter.
List & search
GET /v1/companiesQuery Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | No | Filter by company name (substring match). |
wikidata_id | string | No | Filter by Wikidata ID (e.g. Q478214 or 478214). |
page | integer | No | Page number (default 1). |
per_page | integer | No | Results per page (default 100, max 250). |
api_key | string | Yes* | Your API key. Can also be provided via headers. |
* Required if not provided in headers
Example
curl "https://api.apitube.io/v1/companies?name=Tesla&per_page=5&api_key=YOUR_API_KEY"import requests
resp = requests.get(
"https://api.apitube.io/v1/companies",
params={"name": "Tesla", "per_page": 5, "api_key": "YOUR_API_KEY"},
)
print(resp.json())const params = new URLSearchParams({ name: "Tesla", per_page: "5", api_key: "YOUR_API_KEY" });
const resp = await fetch(`https://api.apitube.io/v1/companies?${params}`);
console.log(await resp.json());$query = http_build_query(["name" => "Tesla", "per_page" => 5, "api_key" => "YOUR_API_KEY"]);
$data = json_decode(file_get_contents("https://api.apitube.io/v1/companies?$query"), true);
print_r($data);package main
import (
"encoding/json"
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
u, _ := url.Parse("https://api.apitube.io/v1/companies")
q := u.Query()
q.Set("name", "Tesla")
q.Set("per_page", "5")
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)
}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/companies?name=Tesla&per_page=5&api_key=YOUR_API_KEY"))
.GET()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}Write a script in your preferred language that calls the APITube News API:
GET https://api.apitube.io/v1/companies?name=Tesla&per_page=5
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/parameters{
"status": "ok",
"limit": 5,
"page": 1,
"has_next_pages": true,
"results": [
{
"id": 474,
"name": "Tesla Robotaxi",
"type": "brand",
"links": {
"self": "https://api.apitube.io/v1/companies/474",
"articles": "https://api.apitube.io/v1/news/entity/474",
"wikipedia": "https://en.wikipedia.org/wiki/Tesla_Robotaxi",
"wikidata": "https://www.wikidata.org/wiki/Q135277686"
},
"profile": {
"description": "Ride-hailing service operated by Tesla, Inc.",
"website_url": "https://www.tesla.com/robotaxi/",
"brand_owner": { "name": "Tesla, Inc." }
}
}
]
}Company profile
GET /v1/companies/{id}Returns a single company with the full Wikidata-enriched profile (headquarters, founded, website, logo, key people, subsidiaries), a coverage block, and recent_articles.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
coverage | string | No | Set to false to omit the coverage block. |
api_key | string | Yes* | Your API key. |
The coverage block is identical in shape to the People coverage block: article_count, first_seen/last_seen, sentiment, momentum, timeline, top_sources, top_topics, top_countries, top_languages, related_entities. recent_articles contains the latest articles mentioning the company.
curl "https://api.apitube.io/v1/companies/474?api_key=YOUR_API_KEY"import requests
resp = requests.get(
"https://api.apitube.io/v1/companies/474",
params={"api_key": "YOUR_API_KEY"},
)
print(resp.json())const resp = await fetch("https://api.apitube.io/v1/companies/474?api_key=YOUR_API_KEY");
console.log(await resp.json());$data = json_decode(file_get_contents("https://api.apitube.io/v1/companies/474?api_key=YOUR_API_KEY"), true);
print_r($data);package main
import (
"encoding/json"
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
u, _ := url.Parse("https://api.apitube.io/v1/companies/474")
q := u.Query()
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)
}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/companies/474?api_key=YOUR_API_KEY"))
.GET()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}Write a script in your preferred language that calls the APITube News API:
GET https://api.apitube.io/v1/companies/474
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/parametersPricing
Each request costs 1 point, charged only when the response contains at least one result. Zero-result searches are free. Requests with no remaining credits return 402.
Errors
A request for a non-existent company returns 404 with code ER0151 (Company not found.).