curl --request POST \
--url https://zcjbtpxuhdekpwcxmepn.supabase.co/rest/v1/rpc/credit_implied_rate \
--header 'Content-Type: application/json' \
--header 'apikey: <api-key>' \
--data '
{
"p_code": "<string>",
"p_from": "2023-12-25",
"p_to": "2023-12-25"
}
'import requests
url = "https://zcjbtpxuhdekpwcxmepn.supabase.co/rest/v1/rpc/credit_implied_rate"
payload = {
"p_code": "<string>",
"p_from": "2023-12-25",
"p_to": "2023-12-25"
}
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_code: '<string>', p_from: '2023-12-25', p_to: '2023-12-25'})
};
fetch('https://zcjbtpxuhdekpwcxmepn.supabase.co/rest/v1/rpc/credit_implied_rate', 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/credit_implied_rate",
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_code' => '<string>',
'p_from' => '2023-12-25',
'p_to' => '2023-12-25'
]),
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/credit_implied_rate"
payload := strings.NewReader("{\n \"p_code\": \"<string>\",\n \"p_from\": \"2023-12-25\",\n \"p_to\": \"2023-12-25\"\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/credit_implied_rate")
.header("apikey", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"p_code\": \"<string>\",\n \"p_from\": \"2023-12-25\",\n \"p_to\": \"2023-12-25\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://zcjbtpxuhdekpwcxmepn.supabase.co/rest/v1/rpc/credit_implied_rate")
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_code\": \"<string>\",\n \"p_from\": \"2023-12-25\",\n \"p_to\": \"2023-12-25\"\n}"
response = http.request(request)
puts response.read_body[
{
"instrument_code": "<string>",
"trade_date": "2023-12-25",
"settlement_date": "2023-12-25",
"trade_classification": "<string>",
"method_version": "<string>",
"is_calculated": true,
"pu_brl": 123,
"quantity": 123,
"volume_brl": 123,
"trade_count": 123,
"indexador": "<string>",
"forma_remuneracao": "<string>",
"contract_rate_pct": 123,
"implied_rate_pct": 123,
"rate_basis": "<string>",
"flows_used": 123,
"confidence": "<string>",
"outlier": true,
"thin_trade": true,
"b3_capture_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"computed_at": "2023-11-07T05:31:56Z",
"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>"
}credit_implied_rate
CALCULATED, not observed: the yield that discounts a debenture’s published agenda (coupons, amortisation, maturity) to the average PU of a B3 trade group (api.credit_market_history avg_price), one row per trade_date, settlement_date, trade_classification and method_version, oldest first. is_calculated is always true; method_version says how (v1: 252 business days, ANBIMA holiday table, flat-forward pre curve from B3 TaxaSwap). rate_basis says what implied_rate_pct is: pre_aa, ipca_real_aa and di_spread_aa are percent a year; pct_di is a percent of DI. contract_rate_pct is the contracted rate for comparison. The PU is read as dirty; the average PU of a group mixes the trades of the day, and a yield of an average is not an average of yields. A trade group the method cannot price has no row (the daily log counts why), never a guess. Check tags: confidence is checked, divergent or unchecked against ANBIMA’s indicative rate of the same code and day (within 1 pp, more than 1 pp, or no comparable rate); outlier is divergent by more than 5 pp; thin_trade is volume under BRL 20 thousand. unchecked means no check was possible, not that the row is good. ANBIMA’s own rate and the gap to it are not served. In the first run (2026-10-01 to 10-26) the median absolute gap to ANBIMA was 0.13 pp; the worst gaps were thin trades. Unknown code (no calculated rate) raises 22023; a known code with no rows in the window returns an empty set. Row cap: more than 1000 rows RAISES 22023, never trimmed; narrow p_from/p_to. No cursor.
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/credit_implied_rate \
--header 'Content-Type: application/json' \
--header 'apikey: <api-key>' \
--data '
{
"p_code": "<string>",
"p_from": "2023-12-25",
"p_to": "2023-12-25"
}
'import requests
url = "https://zcjbtpxuhdekpwcxmepn.supabase.co/rest/v1/rpc/credit_implied_rate"
payload = {
"p_code": "<string>",
"p_from": "2023-12-25",
"p_to": "2023-12-25"
}
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_code: '<string>', p_from: '2023-12-25', p_to: '2023-12-25'})
};
fetch('https://zcjbtpxuhdekpwcxmepn.supabase.co/rest/v1/rpc/credit_implied_rate', 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/credit_implied_rate",
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_code' => '<string>',
'p_from' => '2023-12-25',
'p_to' => '2023-12-25'
]),
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/credit_implied_rate"
payload := strings.NewReader("{\n \"p_code\": \"<string>\",\n \"p_from\": \"2023-12-25\",\n \"p_to\": \"2023-12-25\"\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/credit_implied_rate")
.header("apikey", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"p_code\": \"<string>\",\n \"p_from\": \"2023-12-25\",\n \"p_to\": \"2023-12-25\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://zcjbtpxuhdekpwcxmepn.supabase.co/rest/v1/rpc/credit_implied_rate")
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_code\": \"<string>\",\n \"p_from\": \"2023-12-25\",\n \"p_to\": \"2023-12-25\"\n}"
response = http.request(request)
puts response.read_body[
{
"instrument_code": "<string>",
"trade_date": "2023-12-25",
"settlement_date": "2023-12-25",
"trade_classification": "<string>",
"method_version": "<string>",
"is_calculated": true,
"pu_brl": 123,
"quantity": 123,
"volume_brl": 123,
"trade_count": 123,
"indexador": "<string>",
"forma_remuneracao": "<string>",
"contract_rate_pct": 123,
"implied_rate_pct": 123,
"rate_basis": "<string>",
"flows_used": 123,
"confidence": "<string>",
"outlier": true,
"thin_trade": true,
"b3_capture_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"computed_at": "2023-11-07T05:31:56Z",
"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, oldest first. An unknown id is an empty array, not a 404 and never a guessed value.
Was this page helpful?