curl --request POST \
--url https://zcjbtpxuhdekpwcxmepn.supabase.co/rest/v1/rpc/company_financials \
--header 'Content-Type: application/json' \
--header 'apikey: <api-key>' \
--data '
{
"p_id": "<string>",
"p_from": "2023-12-25",
"p_to": "2023-12-25",
"p_scope": "con",
"p_as_of": null
}
'import requests
url = "https://zcjbtpxuhdekpwcxmepn.supabase.co/rest/v1/rpc/company_financials"
payload = {
"p_id": "<string>",
"p_from": "2023-12-25",
"p_to": "2023-12-25",
"p_scope": "con",
"p_as_of": None
}
headers = {
"apikey": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {apikey: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
p_id: '<string>',
p_from: '2023-12-25',
p_to: '2023-12-25',
p_scope: 'con',
p_as_of: null
})
};
fetch('https://zcjbtpxuhdekpwcxmepn.supabase.co/rest/v1/rpc/company_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://zcjbtpxuhdekpwcxmepn.supabase.co/rest/v1/rpc/company_financials",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'p_id' => '<string>',
'p_from' => '2023-12-25',
'p_to' => '2023-12-25',
'p_scope' => 'con',
'p_as_of' => null
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"apikey: <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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://zcjbtpxuhdekpwcxmepn.supabase.co/rest/v1/rpc/company_financials"
payload := strings.NewReader("{\n \"p_id\": \"<string>\",\n \"p_from\": \"2023-12-25\",\n \"p_to\": \"2023-12-25\",\n \"p_scope\": \"con\",\n \"p_as_of\": null\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("apikey", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://zcjbtpxuhdekpwcxmepn.supabase.co/rest/v1/rpc/company_financials")
.header("apikey", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"p_id\": \"<string>\",\n \"p_from\": \"2023-12-25\",\n \"p_to\": \"2023-12-25\",\n \"p_scope\": \"con\",\n \"p_as_of\": null\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://zcjbtpxuhdekpwcxmepn.supabase.co/rest/v1/rpc/company_financials")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["apikey"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"p_id\": \"<string>\",\n \"p_from\": \"2023-12-25\",\n \"p_to\": \"2023-12-25\",\n \"p_scope\": \"con\",\n \"p_as_of\": null\n}"
response = http.request(request)
puts response.read_body[
{
"id": "<string>",
"id_type": "<string>",
"cnpj": "<string>",
"company": "<string>",
"ticker": "<string>",
"doc_type": "<string>",
"scope": "<string>",
"ref_date": "2023-12-25",
"period_start": "2023-12-25",
"period_end": "2023-12-25",
"period_months": 123,
"revenue": 123,
"gross_profit": 123,
"net_income": 123,
"total_assets": 123,
"equity": 123,
"net_margin_pct": 123,
"roe_pct": 123,
"version": 123,
"source": "<string>",
"setor": "<string>",
"segmento": "<string>"
}
]{
"code": "22023",
"message": "<string>",
"details": "<string>",
"hint": "<string>"
}{
"code": "22023",
"message": "<string>",
"details": "<string>",
"hint": "<string>"
}{
"code": "22023",
"message": "<string>",
"details": "<string>",
"hint": "<string>"
}company_financials
Headline financials for one company, one row per filed period, latest stored version of each document. p_as_of (a date, default NULL) makes the read point-in-time: only documents CVM had received (cia_filing.dt_receb) BEFORE that date are read, the highest remaining version of each is kept, and a document with no filing header is dropped. NULL reads the latest stored version of every document and is NOT point-in-time: a later filing or a restatement appears as if it had been known. Versions superseded before 2026 are not held, so an as-of read is stale for a restating company, never early.
Row cap. A window producing more than 1000 rows raises SQLSTATE 22023 naming this function. Nothing is trimmed to fit — PostgREST would silently cut the response at 1000 and a cut-short series is indistinguishable from one that simply ends. This function does not page — narrow the window instead.
curl --request POST \
--url https://zcjbtpxuhdekpwcxmepn.supabase.co/rest/v1/rpc/company_financials \
--header 'Content-Type: application/json' \
--header 'apikey: <api-key>' \
--data '
{
"p_id": "<string>",
"p_from": "2023-12-25",
"p_to": "2023-12-25",
"p_scope": "con",
"p_as_of": null
}
'import requests
url = "https://zcjbtpxuhdekpwcxmepn.supabase.co/rest/v1/rpc/company_financials"
payload = {
"p_id": "<string>",
"p_from": "2023-12-25",
"p_to": "2023-12-25",
"p_scope": "con",
"p_as_of": None
}
headers = {
"apikey": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {apikey: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
p_id: '<string>',
p_from: '2023-12-25',
p_to: '2023-12-25',
p_scope: 'con',
p_as_of: null
})
};
fetch('https://zcjbtpxuhdekpwcxmepn.supabase.co/rest/v1/rpc/company_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://zcjbtpxuhdekpwcxmepn.supabase.co/rest/v1/rpc/company_financials",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'p_id' => '<string>',
'p_from' => '2023-12-25',
'p_to' => '2023-12-25',
'p_scope' => 'con',
'p_as_of' => null
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"apikey: <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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://zcjbtpxuhdekpwcxmepn.supabase.co/rest/v1/rpc/company_financials"
payload := strings.NewReader("{\n \"p_id\": \"<string>\",\n \"p_from\": \"2023-12-25\",\n \"p_to\": \"2023-12-25\",\n \"p_scope\": \"con\",\n \"p_as_of\": null\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("apikey", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://zcjbtpxuhdekpwcxmepn.supabase.co/rest/v1/rpc/company_financials")
.header("apikey", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"p_id\": \"<string>\",\n \"p_from\": \"2023-12-25\",\n \"p_to\": \"2023-12-25\",\n \"p_scope\": \"con\",\n \"p_as_of\": null\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://zcjbtpxuhdekpwcxmepn.supabase.co/rest/v1/rpc/company_financials")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["apikey"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"p_id\": \"<string>\",\n \"p_from\": \"2023-12-25\",\n \"p_to\": \"2023-12-25\",\n \"p_scope\": \"con\",\n \"p_as_of\": null\n}"
response = http.request(request)
puts response.read_body[
{
"id": "<string>",
"id_type": "<string>",
"cnpj": "<string>",
"company": "<string>",
"ticker": "<string>",
"doc_type": "<string>",
"scope": "<string>",
"ref_date": "2023-12-25",
"period_start": "2023-12-25",
"period_end": "2023-12-25",
"period_months": 123,
"revenue": 123,
"gross_profit": 123,
"net_income": 123,
"total_assets": 123,
"equity": 123,
"net_margin_pct": 123,
"roe_pct": 123,
"version": 123,
"source": "<string>",
"setor": "<string>",
"segmento": "<string>"
}
]{
"code": "22023",
"message": "<string>",
"details": "<string>",
"hint": "<string>"
}{
"code": "22023",
"message": "<string>",
"details": "<string>",
"hint": "<string>"
}{
"code": "22023",
"message": "<string>",
"details": "<string>",
"hint": "<string>"
}Authorizations
The publishable key (sb_publishable_…), on every request. It is NOT a JWT — sending it as Authorization: Bearer is rejected as an invalid JWT. It identifies the project, not you, and maps to the Postgres anon role.
Body
Response
The result set, oldest first. An unknown id is an empty array, not a 404 and never a guessed value.
Was this page helpful?