Market Analytics
curl --request GET \
--url https://api.signa.so/v1/analytics/market \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.signa.so/v1/analytics/market"
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/analytics/market', 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/analytics/market",
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/analytics/market"
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/analytics/market")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.signa.so/v1/analytics/market")
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_body{
"object": "market_analytics",
"total_marks": 12000000,
"active_count": 8300000,
"by_status": {
"registered": 7000000,
"pending": 1300000,
"expired": 1800000,
"cancelled": 900000,
"abandoned": 1000000
},
"by_office": {
"uspto": 8000000,
"euipo": 4000000
},
"top_classes": [
{
"class": 9,
"count": 950000,
"pct": 0.079
}
],
"filing_trend": {
"2025": 610000
},
"computed_at": "2026-07-12T00:00:00.000Z",
"request_id": "req_example"
}
Market Analytics
Market Analytics
GET
/
v1
/
analytics
/
market
Market Analytics
curl --request GET \
--url https://api.signa.so/v1/analytics/market \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.signa.so/v1/analytics/market"
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/analytics/market', 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/analytics/market",
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/analytics/market"
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/analytics/market")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.signa.so/v1/analytics/market")
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_body{
"object": "market_analytics",
"total_marks": 12000000,
"active_count": 8300000,
"by_status": {
"registered": 7000000,
"pending": 1300000,
"expired": 1800000,
"cancelled": 900000,
"abandoned": 1000000
},
"by_office": {
"uspto": 8000000,
"euipo": 4000000
},
"top_classes": [
{
"class": 9,
"count": 950000,
"pct": 0.079
}
],
"filing_trend": {
"2025": 610000
},
"computed_at": "2026-07-12T00:00:00.000Z",
"request_id": "req_example"
}
Use this endpoint for market sizing and total addressable filing volume across every supported trademark office. Results are precomputed and suited to dashboards and recurring analysis.
curl https://api.signa.so/v1/analytics/market -H "Authorization: Bearer $SIGNA_API_KEY"
Total trademark records.
Registered and pending marks.
Counts by normalized status bucket.
Counts keyed by lowercase office code.
Top ten Nice classes. Each
pct is the share of all marks that include this class.Annual filing counts.
{
"object": "market_analytics",
"total_marks": 12000000,
"active_count": 8300000,
"by_status": {
"registered": 7000000,
"pending": 1300000,
"expired": 1800000,
"cancelled": 900000,
"abandoned": 1000000
},
"by_office": {
"uspto": 8000000,
"euipo": 4000000
},
"top_classes": [
{
"class": 9,
"count": 950000,
"pct": 0.079
}
],
"filing_trend": {
"2025": 610000
},
"computed_at": "2026-07-12T00:00:00.000Z",
"request_id": "req_example"
}
⌘I