curl --request POST \
--url https://zcjbtpxuhdekpwcxmepn.supabase.co/rest/v1/rpc/company_events \
--header 'Content-Type: application/json' \
--header 'apikey: <api-key>' \
--data '
{
"p_id": "<string>",
"p_from": null,
"p_to": null,
"p_category": null
}
'import requests
url = "https://zcjbtpxuhdekpwcxmepn.supabase.co/rest/v1/rpc/company_events"
payload = {
"p_id": "<string>",
"p_from": None,
"p_to": None,
"p_category": 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: null, p_to: null, p_category: null})
};
fetch('https://zcjbtpxuhdekpwcxmepn.supabase.co/rest/v1/rpc/company_events', 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_events",
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' => null,
'p_to' => null,
'p_category' => 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_events"
payload := strings.NewReader("{\n \"p_id\": \"<string>\",\n \"p_from\": null,\n \"p_to\": null,\n \"p_category\": 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_events")
.header("apikey", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"p_id\": \"<string>\",\n \"p_from\": null,\n \"p_to\": null,\n \"p_category\": null\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://zcjbtpxuhdekpwcxmepn.supabase.co/rest/v1/rpc/company_events")
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\": null,\n \"p_to\": null,\n \"p_category\": null\n}"
response = http.request(request)
puts response.read_body[
{
"cd_cvm": "<string>",
"cnpj": "<string>",
"company": "<string>",
"ticker": "<string>",
"delivery_date": "2023-12-25",
"reference_date": "2023-12-25",
"category": "<string>",
"event_type": "<string>",
"species": "<string>",
"subject": "<string>",
"protocol": "<string>",
"version": 123,
"source_url": "<string>",
"source": "<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_events
A listed company’s IPE filings to CVM (cia_event) — fatos relevantes, comunicados ao mercado, assembly material and the rest — newest delivery first, one row per protocol (its newest version; version says which), every text field as filed: category, event_type, species, subject, plus delivery_date, reference_date, protocol and source_url, the document’s link on CVM’s RAD. p_id is resolved exactly as api.financials resolves it: a ticker only through CVM’s published FCA map (active listings), a 14-digit CNPJ or a CVM code — never a name; an id that resolves to nothing returns no rows. Window = delivery date (the reference date for a row published without one), default the 12 months before p_to or today. p_category matches CVM’s label exactly and an unknown one raises 22023 listing the categories held. History starts in 2015: CVM assigned no protocol number before then (and omits it on a minority of later filings), and a filing without one is not held, because cia_event’s key is (protocolo, versao) and a key is never synthesized — coverage() company_events says so. More than 1000 rows RAISES 22023 (never trimmed): narrow the window or pin p_category.
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_events \
--header 'Content-Type: application/json' \
--header 'apikey: <api-key>' \
--data '
{
"p_id": "<string>",
"p_from": null,
"p_to": null,
"p_category": null
}
'import requests
url = "https://zcjbtpxuhdekpwcxmepn.supabase.co/rest/v1/rpc/company_events"
payload = {
"p_id": "<string>",
"p_from": None,
"p_to": None,
"p_category": 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: null, p_to: null, p_category: null})
};
fetch('https://zcjbtpxuhdekpwcxmepn.supabase.co/rest/v1/rpc/company_events', 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_events",
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' => null,
'p_to' => null,
'p_category' => 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_events"
payload := strings.NewReader("{\n \"p_id\": \"<string>\",\n \"p_from\": null,\n \"p_to\": null,\n \"p_category\": 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_events")
.header("apikey", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"p_id\": \"<string>\",\n \"p_from\": null,\n \"p_to\": null,\n \"p_category\": null\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://zcjbtpxuhdekpwcxmepn.supabase.co/rest/v1/rpc/company_events")
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\": null,\n \"p_to\": null,\n \"p_category\": null\n}"
response = http.request(request)
puts response.read_body[
{
"cd_cvm": "<string>",
"cnpj": "<string>",
"company": "<string>",
"ticker": "<string>",
"delivery_date": "2023-12-25",
"reference_date": "2023-12-25",
"category": "<string>",
"event_type": "<string>",
"species": "<string>",
"subject": "<string>",
"protocol": "<string>",
"version": 123,
"source_url": "<string>",
"source": "<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, newest delivery first. An unknown id is an empty array, not a 404 and never a guessed value.
Was this page helpful?