List Jurisdictions
curl --request GET \
--url https://api.signa.so/v1/jurisdictions \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.signa.so/v1/jurisdictions"
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/jurisdictions', 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/jurisdictions",
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/jurisdictions"
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/jurisdictions")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.signa.so/v1/jurisdictions")
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": [
{
"code": "EU",
"object": "jurisdiction",
"name": "European Union",
"office_code": "EM",
"office_status": "live",
"scope_type": "regional",
"madrid_member": true
},
{
"code": "AE",
"object": "jurisdiction",
"name": "United Arab Emirates",
"office_code": null,
"office_status": "not_covered",
"scope_type": "national",
"madrid_member": true
}
],
"has_more": true,
"pagination": { "cursor": "AE" }
}
Offices & Jurisdictions
List Jurisdictions
List all trademark jurisdictions with office coverage
GET
/
v1
/
jurisdictions
List Jurisdictions
curl --request GET \
--url https://api.signa.so/v1/jurisdictions \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.signa.so/v1/jurisdictions"
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/jurisdictions', 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/jurisdictions",
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/jurisdictions"
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/jurisdictions")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.signa.so/v1/jurisdictions")
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": [
{
"code": "EU",
"object": "jurisdiction",
"name": "European Union",
"office_code": "EM",
"office_status": "live",
"scope_type": "regional",
"madrid_member": true
},
{
"code": "AE",
"object": "jurisdiction",
"name": "United Arab Emirates",
"office_code": null,
"office_status": "not_covered",
"scope_type": "national",
"madrid_member": true
}
],
"has_more": true,
"pagination": { "cursor": "AE" }
}
Overview
Returns every jurisdiction Signa tracks, whether or not it has a live office connection yet. Each entry reports the jurisdiction’s scope, Madrid Protocol membership, and its office coverage status. Use this to build jurisdiction pickers and to tell customers which jurisdictions have live data today versus which are recognized but not yet covered.Query Parameters
integer
default:"100"
Max results per page (max 500).
string
Pagination cursor, the jurisdiction
code of the last item on the previous page.boolean
default:"false"
When
true, includes pagination.total_count (exact, the full catalog is loaded server-side).Response
This endpoint is publicly cacheable, so the response never includesrequest_id.
string
Always
list.object[]
Show Jurisdiction object
Show Jurisdiction object
string
ISO 3166-1 alpha-2 jurisdiction code, or a WIPO/regional code such as
EU.string
Always
jurisdiction.string
Jurisdiction name.
string | null
Office code for this jurisdiction’s trademark office, or
null when office_status is not live.string
live when the office connection is shipping data, roadmap when an office is planned but not yet live, not_covered when no office is associated with this jurisdiction.string
national, regional, or international.boolean
Whether the jurisdiction is a Madrid Protocol member.
boolean
Whether more pages are available.
object
{
"object": "list",
"data": [
{
"code": "EU",
"object": "jurisdiction",
"name": "European Union",
"office_code": "EM",
"office_status": "live",
"scope_type": "regional",
"madrid_member": true
},
{
"code": "AE",
"object": "jurisdiction",
"name": "United Arab Emirates",
"office_code": null,
"office_status": "not_covered",
"scope_type": "national",
"madrid_member": true
}
],
"has_more": true,
"pagination": { "cursor": "AE" }
}
Code Examples
curl "https://api.signa.so/v1/jurisdictions?limit=50&include_total=true" \
-H "Authorization: Bearer sig_YOUR_KEY"
import { Signa } from "@signa-so/sdk";
const signa = new Signa({ api_key: process.env.SIGNA_API_KEY });
const jurisdictions = await signa.references.jurisdictions();
const live = jurisdictions.data.filter((j) => j.office_status === "live");
Errors
| Status | Type | Description |
|---|---|---|
| 401 | unauthorized | Missing or invalid API key |
| 403 | forbidden | API key missing the trademarks:read scope |
| 429 | rate_limited | Too many requests |
Related Endpoints
- Get Jurisdiction, single jurisdiction detail
- List Offices, live office coverage
- Madrid Protocol guide
⌘I