curl --request POST \
--url https://zcjbtpxuhdekpwcxmepn.supabase.co/rest/v1/rpc/option_exercises \
--header 'Content-Type: application/json' \
--header 'apikey: <api-key>' \
--data '
{
"p_prefix": "<string>",
"p_from": "2023-12-25",
"p_to": "2023-12-25",
"p_limit": null
}
'import requests
url = "https://zcjbtpxuhdekpwcxmepn.supabase.co/rest/v1/rpc/option_exercises"
payload = {
"p_prefix": "<string>",
"p_from": "2023-12-25",
"p_to": "2023-12-25",
"p_limit": 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_prefix: '<string>', p_from: '2023-12-25', p_to: '2023-12-25', p_limit: null})
};
fetch('https://zcjbtpxuhdekpwcxmepn.supabase.co/rest/v1/rpc/option_exercises', 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/option_exercises",
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_prefix' => '<string>',
'p_from' => '2023-12-25',
'p_to' => '2023-12-25',
'p_limit' => 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/option_exercises"
payload := strings.NewReader("{\n \"p_prefix\": \"<string>\",\n \"p_from\": \"2023-12-25\",\n \"p_to\": \"2023-12-25\",\n \"p_limit\": 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/option_exercises")
.header("apikey", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"p_prefix\": \"<string>\",\n \"p_from\": \"2023-12-25\",\n \"p_to\": \"2023-12-25\",\n \"p_limit\": null\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://zcjbtpxuhdekpwcxmepn.supabase.co/rest/v1/rpc/option_exercises")
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_prefix\": \"<string>\",\n \"p_from\": \"2023-12-25\",\n \"p_to\": \"2023-12-25\",\n \"p_limit\": null\n}"
response = http.request(request)
puts response.read_body[
{
"codneg": "<string>",
"trade_date": "2023-12-25",
"side": "<string>",
"strike": 123,
"expiry": "2023-12-25",
"exercise_price": 123,
"trades": 123,
"quantity": 123,
"volume": 123,
"isin": "<string>",
"underlying_ticker": "<string>",
"spec": "<string>",
"source": "<string>",
"market": "<string>",
"board": "<string>",
"term_days": "<string>",
"short_name": "<string>",
"currency": "<string>",
"open": 123,
"high": 123,
"low": 123,
"average": 123,
"bid": 123,
"ask": 123,
"quotation_factor": 123,
"contract_correction": "<string>",
"contract_points": 123,
"contract_points_raw": "<string>",
"distribution_number": "<string>",
"fetched_at": "2023-11-07T05:31:56Z"
}
]{
"code": "22023",
"message": "<string>",
"details": "<string>",
"hint": "<string>"
}{
"code": "22023",
"message": "<string>",
"details": "<string>",
"hint": "<string>"
}{
"code": "22023",
"message": "<string>",
"details": "<string>",
"hint": "<string>"
}option_exercises
Option exercise EVENTS (tpmerc 012 call / 013 put) for a REQUIRED codneg prefix (>= 3 chars). One row per exercise print — these are not quotes and carry no return semantics. underlying_ticker per the published ISIN mapping. Rows clamped to 1..500 anonymous, 1..5000 signed in. Original market, board, term and remaining quote/contract fields are preserved; contract_points_raw retains PTOEXE before six-decimal decoding. fetched_at is warehouse time, not a source-publication vintage.
Tier ceiling. Rows are CLAMPED, silently, to 500 for anonymous callers and 5000 for signed-in ones; a p_limit above the ceiling is lowered to it rather than refused. This is the opposite of the 22023 row cap the paging functions raise — here nothing tells you the result was cut, so treat a result of exactly 500 (or 5000) rows as probably truncated.
curl --request POST \
--url https://zcjbtpxuhdekpwcxmepn.supabase.co/rest/v1/rpc/option_exercises \
--header 'Content-Type: application/json' \
--header 'apikey: <api-key>' \
--data '
{
"p_prefix": "<string>",
"p_from": "2023-12-25",
"p_to": "2023-12-25",
"p_limit": null
}
'import requests
url = "https://zcjbtpxuhdekpwcxmepn.supabase.co/rest/v1/rpc/option_exercises"
payload = {
"p_prefix": "<string>",
"p_from": "2023-12-25",
"p_to": "2023-12-25",
"p_limit": 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_prefix: '<string>', p_from: '2023-12-25', p_to: '2023-12-25', p_limit: null})
};
fetch('https://zcjbtpxuhdekpwcxmepn.supabase.co/rest/v1/rpc/option_exercises', 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/option_exercises",
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_prefix' => '<string>',
'p_from' => '2023-12-25',
'p_to' => '2023-12-25',
'p_limit' => 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/option_exercises"
payload := strings.NewReader("{\n \"p_prefix\": \"<string>\",\n \"p_from\": \"2023-12-25\",\n \"p_to\": \"2023-12-25\",\n \"p_limit\": 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/option_exercises")
.header("apikey", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"p_prefix\": \"<string>\",\n \"p_from\": \"2023-12-25\",\n \"p_to\": \"2023-12-25\",\n \"p_limit\": null\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://zcjbtpxuhdekpwcxmepn.supabase.co/rest/v1/rpc/option_exercises")
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_prefix\": \"<string>\",\n \"p_from\": \"2023-12-25\",\n \"p_to\": \"2023-12-25\",\n \"p_limit\": null\n}"
response = http.request(request)
puts response.read_body[
{
"codneg": "<string>",
"trade_date": "2023-12-25",
"side": "<string>",
"strike": 123,
"expiry": "2023-12-25",
"exercise_price": 123,
"trades": 123,
"quantity": 123,
"volume": 123,
"isin": "<string>",
"underlying_ticker": "<string>",
"spec": "<string>",
"source": "<string>",
"market": "<string>",
"board": "<string>",
"term_days": "<string>",
"short_name": "<string>",
"currency": "<string>",
"open": 123,
"high": 123,
"low": 123,
"average": 123,
"bid": 123,
"ask": 123,
"quotation_factor": 123,
"contract_correction": "<string>",
"contract_points": 123,
"contract_points_raw": "<string>",
"distribution_number": "<string>",
"fetched_at": "2023-11-07T05:31:56Z"
}
]{
"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?