List Fees
curl --request GET \
--url https://api.signa.so/v1/fees \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.signa.so/v1/fees"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.signa.so/v1/fees', 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.signa.so/v1/fees",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.signa.so/v1/fees"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.signa.so/v1/fees")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.signa.so/v1/fees")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_bodyFees
List Fees
Browse verified official fees with native currency amounts and source snapshots
GET
/
v1
/
fees
List Fees
curl --request GET \
--url https://api.signa.so/v1/fees \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.signa.so/v1/fees"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.signa.so/v1/fees', 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.signa.so/v1/fees",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.signa.so/v1/fees"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.signa.so/v1/fees")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.signa.so/v1/fees")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_bodyReturns the complete, bounded fee catalog, optionally filtered by
Office codes are
office and action. The response is a flat list with has_more: false and a null pagination cursor. This is unbilled reference data and requires trademarks:read.
const fees = await signa.fees.list({ office: 'US', action: 'filing' });
for (const fee of fees.data) {
console.log(fee.fee_id, fee.amount_minor, fee.currency);
}
US, EM, GB, and WO; WIPO is accepted as an alias for WO. Unsupported offices return an empty catalog. Catalog rows describe verified components, not guaranteed complete transaction costs. Use Estimate Fees to resolve class counts, dates, routes, and omissions.
Amounts use native currency minor units: 35000 USD means USD 350.00. No currency conversion is applied. Each row includes its fee schedule, effective dates, verification date and expiry, applicability conditions, and sources[] containing the source URL, citation, quote, snapshot path, and SHA-256 checksum. A null amount means the row describes a conditional formula or linked fee rather than a fixed amount. A null classes_included_in_base means the class allowance is not established or is not relevant; it must not be interpreted as zero included classes.
The catalog supports ETag and If-None-Match; unchanged requests return 304. Publicly cacheable catalog responses omit request_id from the body. Estimate responses include it.