curl --request POST \
--url https://zcjbtpxuhdekpwcxmepn.supabase.co/rest/v1/rpc/rj_listed_documents \
--header 'Content-Type: application/json' \
--header 'apikey: <api-key>' \
--data '
{
"p_id": null,
"p_from": null,
"p_to": null,
"p_doc_type": "itr"
}
'import requests
url = "https://zcjbtpxuhdekpwcxmepn.supabase.co/rest/v1/rpc/rj_listed_documents"
payload = {
"p_id": None,
"p_from": None,
"p_to": None,
"p_doc_type": "itr"
}
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: null, p_from: null, p_to: null, p_doc_type: 'itr'})
};
fetch('https://zcjbtpxuhdekpwcxmepn.supabase.co/rest/v1/rpc/rj_listed_documents', 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/rj_listed_documents",
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' => null,
'p_from' => null,
'p_to' => null,
'p_doc_type' => 'itr'
]),
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/rj_listed_documents"
payload := strings.NewReader("{\n \"p_id\": null,\n \"p_from\": null,\n \"p_to\": null,\n \"p_doc_type\": \"itr\"\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/rj_listed_documents")
.header("apikey", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"p_id\": null,\n \"p_from\": null,\n \"p_to\": null,\n \"p_doc_type\": \"itr\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://zcjbtpxuhdekpwcxmepn.supabase.co/rest/v1/rpc/rj_listed_documents")
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\": null,\n \"p_from\": null,\n \"p_to\": null,\n \"p_doc_type\": \"itr\"\n}"
response = http.request(request)
puts response.read_body[
{
"cd_cvm": "<string>",
"cnpj": "<string>",
"company": "<string>",
"delivery_date": "2023-12-25",
"reference_date": "2023-12-25",
"category": "<string>",
"doc_type": "<string>",
"species": "<string>",
"subject": "<string>",
"protocol": "<string>",
"version": 123,
"source_url": "<string>",
"signal": "<string>",
"cadastro_status": "<string>",
"cadastro_status_since": "2023-12-25",
"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>"
}rj_listed_documents
Recuperação judicial and extrajudicial documents of LISTED companies, as filed with CVM IPE (cia_event): petição inicial, plano, contas demonstrativas mensais, sentenças, assembleia de credores and the rest, plus the Fatos Relevantes whose subject names the recovery (signal = categoria | fato_relevante). Newest delivery first, one row per protocol at its newest version, every text field as filed, source_url the document’s link on CVM’s RAD. Each row also carries the company’s CVM cadastro situation (cadastro_status, cadastro_status_since), a second signal that lags the filings. p_id NULL = every company; otherwise resolved exactly as api.financials resolves it (ticker through CVM’s FCA map, 14-digit CNPJ or CVM code, never a name); an id that resolves to nothing returns no rows. Window = delivery date, default the 12 months before p_to or today; reference_date is not a filing date. p_doc_type matches CVM’s Tipo exactly and an unknown one raises 22023 listing the types held. Falência documents are not here (api.company_events serves them). Private companies are not here. More than 1000 rows RAISES 22023 (never trimmed): narrow the window, pin p_id or p_doc_type.
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/rj_listed_documents \
--header 'Content-Type: application/json' \
--header 'apikey: <api-key>' \
--data '
{
"p_id": null,
"p_from": null,
"p_to": null,
"p_doc_type": "itr"
}
'import requests
url = "https://zcjbtpxuhdekpwcxmepn.supabase.co/rest/v1/rpc/rj_listed_documents"
payload = {
"p_id": None,
"p_from": None,
"p_to": None,
"p_doc_type": "itr"
}
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: null, p_from: null, p_to: null, p_doc_type: 'itr'})
};
fetch('https://zcjbtpxuhdekpwcxmepn.supabase.co/rest/v1/rpc/rj_listed_documents', 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/rj_listed_documents",
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' => null,
'p_from' => null,
'p_to' => null,
'p_doc_type' => 'itr'
]),
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/rj_listed_documents"
payload := strings.NewReader("{\n \"p_id\": null,\n \"p_from\": null,\n \"p_to\": null,\n \"p_doc_type\": \"itr\"\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/rj_listed_documents")
.header("apikey", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"p_id\": null,\n \"p_from\": null,\n \"p_to\": null,\n \"p_doc_type\": \"itr\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://zcjbtpxuhdekpwcxmepn.supabase.co/rest/v1/rpc/rj_listed_documents")
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\": null,\n \"p_from\": null,\n \"p_to\": null,\n \"p_doc_type\": \"itr\"\n}"
response = http.request(request)
puts response.read_body[
{
"cd_cvm": "<string>",
"cnpj": "<string>",
"company": "<string>",
"delivery_date": "2023-12-25",
"reference_date": "2023-12-25",
"category": "<string>",
"doc_type": "<string>",
"species": "<string>",
"subject": "<string>",
"protocol": "<string>",
"version": 123,
"source_url": "<string>",
"signal": "<string>",
"cadastro_status": "<string>",
"cadastro_status_since": "2023-12-25",
"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?