curl --request GET \
--url https://api.coverwhale.dev/v1/submission/{displayId}/transactions \
--header 'Accept: <accept>' \
--header 'AccessToken: <api-key>' \
--header 'Content-Type: <content-type>'import requests
url = "https://api.coverwhale.dev/v1/submission/{displayId}/transactions"
headers = {
"Content-Type": "<content-type>",
"Accept": "<accept>",
"AccessToken": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'Content-Type': '<content-type>', Accept: '<accept>', AccessToken: '<api-key>'}
};
fetch('https://api.coverwhale.dev/v1/submission/{displayId}/transactions', 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://api.coverwhale.dev/v1/submission/{displayId}/transactions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Accept: <accept>",
"AccessToken: <api-key>",
"Content-Type: <content-type>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.coverwhale.dev/v1/submission/{displayId}/transactions"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Content-Type", "<content-type>")
req.Header.Add("Accept", "<accept>")
req.Header.Add("AccessToken", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.coverwhale.dev/v1/submission/{displayId}/transactions")
.header("Content-Type", "<content-type>")
.header("Accept", "<accept>")
.header("AccessToken", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.coverwhale.dev/v1/submission/{displayId}/transactions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Content-Type"] = '<content-type>'
request["Accept"] = '<accept>'
request["AccessToken"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"display_id": "2261310",
"transaction_count": 3,
"endorsement_count": 2,
"transactions": [
{
"transaction_number": 0,
"transaction_type": "NEW_BUSINESS",
"status": "Bound",
"effective_date": "2025-10-03"
},
{
"transaction_number": 1,
"transaction_type": "ENDORSEMENT",
"status": "Bound",
"effective_date": "2025-11-04"
},
{
"transaction_number": 2,
"transaction_type": "ENDORSEMENT",
"status": "Quoted",
"effective_date": "2026-01-06"
}
]
}{
"error": "Submission not found"
}List Submission Transactions
List every transaction on a submission (new business plus each endorsement, reinstatement, and cancellation) with a lightweight status summary. Use this to track how a policy has changed over time without pulling each transaction’s full detail.
Results are scoped to the calling partner’s own submissions. A display ID that does not exist, or that belongs to another company, returns 404 — existence is never revealed to a non-owner.
curl --request GET \
--url https://api.coverwhale.dev/v1/submission/{displayId}/transactions \
--header 'Accept: <accept>' \
--header 'AccessToken: <api-key>' \
--header 'Content-Type: <content-type>'import requests
url = "https://api.coverwhale.dev/v1/submission/{displayId}/transactions"
headers = {
"Content-Type": "<content-type>",
"Accept": "<accept>",
"AccessToken": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'Content-Type': '<content-type>', Accept: '<accept>', AccessToken: '<api-key>'}
};
fetch('https://api.coverwhale.dev/v1/submission/{displayId}/transactions', 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://api.coverwhale.dev/v1/submission/{displayId}/transactions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Accept: <accept>",
"AccessToken: <api-key>",
"Content-Type: <content-type>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.coverwhale.dev/v1/submission/{displayId}/transactions"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Content-Type", "<content-type>")
req.Header.Add("Accept", "<accept>")
req.Header.Add("AccessToken", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.coverwhale.dev/v1/submission/{displayId}/transactions")
.header("Content-Type", "<content-type>")
.header("Accept", "<accept>")
.header("AccessToken", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.coverwhale.dev/v1/submission/{displayId}/transactions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Content-Type"] = '<content-type>'
request["Accept"] = '<accept>'
request["AccessToken"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"display_id": "2261310",
"transaction_count": 3,
"endorsement_count": 2,
"transactions": [
{
"transaction_number": 0,
"transaction_type": "NEW_BUSINESS",
"status": "Bound",
"effective_date": "2025-10-03"
},
{
"transaction_number": 1,
"transaction_type": "ENDORSEMENT",
"status": "Bound",
"effective_date": "2025-11-04"
},
{
"transaction_number": 2,
"transaction_type": "ENDORSEMENT",
"status": "Quoted",
"effective_date": "2026-01-06"
}
]
}{
"error": "Submission not found"
}Authorizations
JWT returned as AccessToken by the /authentication endpoint (the Cognito ID token carrying the email claim). It expires after 3600 seconds.
Path Parameters
Submission display ID
Response
Transaction list
"2261310"
Total number of transactions on the submission (new business + endorsements + reinstatements + cancellations).
3
Number of bound endorsement transactions (excludes in-progress/quoted endorsements).
2
Show child attributes
Show child attributes