Get filed financials
curl --request GET \
--url https://api.otbstudio.ai/v1/companies/{id}/financials \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.otbstudio.ai/v1/companies/{id}/financials"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.otbstudio.ai/v1/companies/{id}/financials', 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.otbstudio.ai/v1/companies/{id}/financials",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.otbstudio.ai/v1/companies/{id}/financials"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.otbstudio.ai/v1/companies/{id}/financials")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.otbstudio.ai/v1/companies/{id}/financials")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"periods": [
{
"closingDate": "2025-03-31",
"reference": "2025-00184417",
"schemaType": "full",
"employees": 186.4,
"equity": 12480310.52,
"operatingIncome": 3912774.18,
"ebitda": 5240118.66,
"resultForPeriod": 2731905.07,
"healthIndicator": 10,
"cashFlow": {
"operating": 4410228.35,
"investing": -1876340.12,
"financing": -1504377.8,
"free": 2533888.23,
"cashAtPeriodEnd": 1388902.41,
"distributionsToOwners": 600000
},
"balanceSheet": {
"operatingProfit": 3480112.9,
"depreciation": 1328006.48,
"staffCosts": 9876540.21,
"totalAssets": 31902554.7,
"totalDebt": 8044120.33,
"interestPaid": 288410.12
}
}
]
}{
"code": "missing_token"
}{
"code": "insufficient_credits"
}{
"code": "not_found"
}{
"code": "rate_limited"
}{
"code": "internal"
}{
"code": "busy"
}Companies
Get filed financials
The filed figures, one row per accounting period, newest first. A correction replaces the filing it corrects and is flagged rather than hidden. Each period is charged, so ten years cost ten times one.
GET
/
v1
/
companies
/
{id}
/
financials
Get filed financials
curl --request GET \
--url https://api.otbstudio.ai/v1/companies/{id}/financials \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.otbstudio.ai/v1/companies/{id}/financials"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.otbstudio.ai/v1/companies/{id}/financials', 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.otbstudio.ai/v1/companies/{id}/financials",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.otbstudio.ai/v1/companies/{id}/financials"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.otbstudio.ai/v1/companies/{id}/financials")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.otbstudio.ai/v1/companies/{id}/financials")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"periods": [
{
"closingDate": "2025-03-31",
"reference": "2025-00184417",
"schemaType": "full",
"employees": 186.4,
"equity": 12480310.52,
"operatingIncome": 3912774.18,
"ebitda": 5240118.66,
"resultForPeriod": 2731905.07,
"healthIndicator": 10,
"cashFlow": {
"operating": 4410228.35,
"investing": -1876340.12,
"financing": -1504377.8,
"free": 2533888.23,
"cashAtPeriodEnd": 1388902.41,
"distributionsToOwners": 600000
},
"balanceSheet": {
"operatingProfit": 3480112.9,
"depreciation": 1328006.48,
"staffCosts": 9876540.21,
"totalAssets": 31902554.7,
"totalDebt": 8044120.33,
"interestPaid": 288410.12
}
}
]
}{
"code": "missing_token"
}{
"code": "insufficient_credits"
}{
"code": "not_found"
}{
"code": "rate_limited"
}{
"code": "internal"
}{
"code": "busy"
}Authorizations
An otb_live_ token, minted in the OTB Studio dashboard.
Path Parameters
The enterprise number. 0712.345.630, BE 0712 345 630 and BE0712345630 are all accepted.
Query Parameters
How many periods to return, 1 to 20. A missing, zero, negative or larger value gives 10.
true adds the cash flow statement and the named balance sheet lines to every period.
Response
The periods. An empty list when the company has filed nothing.
Show child attributes
Show child attributes