Attorney Trademarks
curl --request GET \
--url https://api.signa.so/v1/attorneys/{id}/trademarks \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.signa.so/v1/attorneys/{id}/trademarks"
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/attorneys/{id}/trademarks', 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/attorneys/{id}/trademarks",
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/attorneys/{id}/trademarks"
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/attorneys/{id}/trademarks")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.signa.so/v1/attorneys/{id}/trademarks")
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": "list",
"data": [
{
"id": "tm_8kLm2nPq",
"object": "trademark",
"mark_text": "AURORA",
"status": { "primary": "active", "stage": "registered" },
"office_code": "US",
"jurisdiction_code": "US",
"filing_date": "2023-04-12",
"registration_date": "2024-09-18",
"classifications": [
{ "nice_class": 9, "goods_services_text": "Downloadable software for digital image processing" },
{ "nice_class": 35, "goods_services_text": "Online retail store services featuring digital media" },
{ "nice_class": 42, "goods_services_text": "Software as a service (SaaS) featuring media management tools" }
],
"owners": [
{
"id": "own_7nQp3xYz",
"name": "Aurora Digital Inc.",
"country_code": "US",
"entity_id": "ent_7nQp3xYz",
"entity_id_type": "derived"
}
]
}
],
"has_more": true,
"pagination": { "cursor": "eyJpZCI6..." },
"request_id": "req_xyz"
}
Attorneys
Attorney Trademarks
List an attorney’s trademarks with the standard trademark filters
GET
/
v1
/
attorneys
/
{id}
/
trademarks
Attorney Trademarks
curl --request GET \
--url https://api.signa.so/v1/attorneys/{id}/trademarks \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.signa.so/v1/attorneys/{id}/trademarks"
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/attorneys/{id}/trademarks', 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/attorneys/{id}/trademarks",
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/attorneys/{id}/trademarks"
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/attorneys/{id}/trademarks")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.signa.so/v1/attorneys/{id}/trademarks")
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": "list",
"data": [
{
"id": "tm_8kLm2nPq",
"object": "trademark",
"mark_text": "AURORA",
"status": { "primary": "active", "stage": "registered" },
"office_code": "US",
"jurisdiction_code": "US",
"filing_date": "2023-04-12",
"registration_date": "2024-09-18",
"classifications": [
{ "nice_class": 9, "goods_services_text": "Downloadable software for digital image processing" },
{ "nice_class": 35, "goods_services_text": "Online retail store services featuring digital media" },
{ "nice_class": 42, "goods_services_text": "Software as a service (SaaS) featuring media management tools" }
],
"owners": [
{
"id": "own_7nQp3xYz",
"name": "Aurora Digital Inc.",
"country_code": "US",
"entity_id": "ent_7nQp3xYz",
"entity_id_type": "derived"
}
]
}
],
"has_more": true,
"pagination": { "cursor": "eyJpZCI6..." },
"request_id": "req_xyz"
}
Overview
Returns a paginated list of trademarks an attorney has prosecuted, scoped automatically to the parent attorney. Use this for attorney portfolio views, client roster auditing, or competitive intelligence on prosecution counsel. When neithersort nor q is supplied, results default to most-recent-first (-filing_date); a q text query instead ranks by relevance. Arrays are comma-separated, date ranges use flat _gte, _gt, _lte, and _lt operators, and booleans must be the literal strings true or false.
Path Parameters
string
required
Attorney ID (
att_...).Query Parameters
The full Search Trademarks filter set applies (status, mark classification, identifiers, geography, Nice/Vienna codes, date ranges, public-company filters, and boolean flags), plus:string
Search query text within this attorney’s trademarks.
string
default:"-filing_date"
Sort field(s), comma-separated,
- prefix for descending.string
Filter to marks owned by a specific owner (
own_...).string
Filter to marks handled through a specific firm (
firm_...).string
Comma-separated optional row projections.
full_goods_services returns full classifications[].goods_services_text instead of the truncated summary text.string
Sparse top-level field projection, comma-separated.
id and object are always retained. Unknown names return 400.integer
default:"20"
Items per page (1-100).
string
Pagination cursor from a previous response.
Response
Returns alist envelope of trademark summary objects belonging to this attorney.
{
"object": "list",
"data": [
{
"id": "tm_8kLm2nPq",
"object": "trademark",
"mark_text": "AURORA",
"status": { "primary": "active", "stage": "registered" },
"office_code": "US",
"jurisdiction_code": "US",
"filing_date": "2023-04-12",
"registration_date": "2024-09-18",
"classifications": [
{ "nice_class": 9, "goods_services_text": "Downloadable software for digital image processing" },
{ "nice_class": 35, "goods_services_text": "Online retail store services featuring digital media" },
{ "nice_class": 42, "goods_services_text": "Software as a service (SaaS) featuring media management tools" }
],
"owners": [
{
"id": "own_7nQp3xYz",
"name": "Aurora Digital Inc.",
"country_code": "US",
"entity_id": "ent_7nQp3xYz",
"entity_id_type": "derived"
}
]
}
],
"has_more": true,
"pagination": { "cursor": "eyJpZCI6..." },
"request_id": "req_xyz"
}
Code Examples
curl "https://api.signa.so/v1/attorneys/att_3kPq9X/trademarks?status_stage=registered&offices=US,EM&nice_classes=9,42&limit=20" \
-H "Authorization: Bearer sig_YOUR_KEY"
import { Signa } from "@signa-so/sdk";
const signa = new Signa({ api_key: process.env.SIGNA_API_KEY });
const page = await signa.attorneys.trademarks("att_3kPq9X", {
status_stage: ["registered"],
offices: ["US", "EM"],
nice_classes: [9, 42],
limit: 20,
});
Errors
| Status | Type | Description |
|---|---|---|
| 400 | validation_error | Invalid query parameter or date range |
| 401 | unauthorized | Missing or invalid API key |
| 403 | forbidden | API key lacks the trademarks:read scope |
| 404 | not_found | Attorney ID does not exist |
| 429 | rate_limited | Too many requests |
Related Endpoints
- Retrieve Attorney: attorney profile and stats
- Attorney Clients: owners represented by this attorney
- Owner Trademarks: same view scoped to an owner
- Search Trademarks: search across all attorneys