Get company facts
curl --request GET \
--url https://api.financialdatasets.ai/company/facts \
--header 'X-API-KEY: <api-key>'import requests
url = "https://api.financialdatasets.ai/company/facts"
headers = {"X-API-KEY": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-KEY': '<api-key>'}};
fetch('https://api.financialdatasets.ai/company/facts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.financialdatasets.ai/company/facts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-KEY: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.financialdatasets.ai/company/facts"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-KEY", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.financialdatasets.ai/company/facts")
.header("X-API-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.financialdatasets.ai/company/facts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-KEY"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"company_facts": {
"ticker": "<string>",
"name": "<string>",
"cik": "<string>",
"industry": "<string>",
"sector": "<string>",
"exchange": "<string>",
"is_active": true,
"location": "<string>",
"sec_filings_url": "<string>",
"sic_code": "<string>",
"sic_industry": "<string>",
"sic_sector": "<string>"
}
}{
"error": "Bad Request",
"message": "Invalid request parameters"
}{
"error": "Unauthorized",
"message": "Invalid API key provided"
}{
"error": "Not Found",
"message": "Ticker XXXX not found"
}Company
Company Profile API (Sector, CIK)
Basic facts about a public company by ticker: name, CIK, sector, industry, exchange, location, and SIC code, for 28,000+ tickers, updated in real time.
GET
/
company
/
facts
Get company facts
curl --request GET \
--url https://api.financialdatasets.ai/company/facts \
--header 'X-API-KEY: <api-key>'import requests
url = "https://api.financialdatasets.ai/company/facts"
headers = {"X-API-KEY": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-KEY': '<api-key>'}};
fetch('https://api.financialdatasets.ai/company/facts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.financialdatasets.ai/company/facts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-KEY: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.financialdatasets.ai/company/facts"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-KEY", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.financialdatasets.ai/company/facts")
.header("X-API-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.financialdatasets.ai/company/facts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-KEY"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"company_facts": {
"ticker": "<string>",
"name": "<string>",
"cik": "<string>",
"industry": "<string>",
"sector": "<string>",
"exchange": "<string>",
"is_active": true,
"location": "<string>",
"sec_filings_url": "<string>",
"sic_code": "<string>",
"sic_industry": "<string>",
"sic_sector": "<string>"
}
}{
"error": "Bad Request",
"message": "Invalid request parameters"
}{
"error": "Unauthorized",
"message": "Invalid API key provided"
}{
"error": "Not Found",
"message": "Ticker XXXX not found"
}Overview
The Financial Datasets company facts API returns the basic facts about a public company by ticker: name, CIK, sector, industry, exchange, location, SIC code, a link to its SEC filings, and whether the company is still active. It covers 28,000+ tickers, updated in real time. To look a company up by SEC CIK, use Facts (by CIK). You can call it as a REST endpoint with an API key, or from Claude, ChatGPT, Cursor, and other AI apps through the MCP server, or pay per request with x402. Pricing starts at $20. To get started, please create an account and grab your API key at financialdatasets.ai. You will use the API key to authenticate your API requests.Coverage
| Tickers | Years of Coverage | Updated |
|---|---|---|
| 28,000+ | Current | Real-time |
Available Tickers
You can fetch a list of available tickers with aGET request to:
https://api.financialdatasets.ai/company/facts/tickers/
Getting Started
There are only 3 steps for making a successful API call:- Add your API key to the header of the request as
X-API-KEY. - Add query params like
tickerfilter the data. - Execute the API request.
ticker in your query params.
Example
Company Facts
import requests
# add your API key to the headers
headers = {
"X-API-KEY": "your_api_key_here"
}
# set your query params
ticker = 'AAPL'
# create the URL
url = (
f'https://api.financialdatasets.ai/company/facts'
f'?ticker={ticker}'
)
# make API request
response = requests.get(url, headers=headers)
# parse company_facts from the response
company_facts = response.json().get('company_facts')
FAQ
Can I look up a company by CIK instead of ticker?
Yes. Passcik instead of ticker. See Facts (by CIK).
Does it include SIC codes?
Yes. Each company has its SIC code, with the SIC industry and SIC sector, next to its sector and industry.Which tickers are covered?
28,000+ tickers. Get the full list with aGET request to https://api.financialdatasets.ai/company/facts/tickers/.