Retrieve Jurisdiction
curl --request GET \
--url https://api.signa.so/v1/jurisdictions/{code} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.signa.so/v1/jurisdictions/{code}"
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/{code}', 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/{code}",
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/{code}"
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/{code}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.signa.so/v1/jurisdictions/{code}")
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{
"code": "EU",
"object": "jurisdiction",
"name": "European Union",
"office_code": "EM",
"office_status": "live",
"scope_type": "regional",
"madrid_member": true,
"member_jurisdictions": ["AT", "BE", "BG", "HR", "CY", "CZ", "DK", "EE", "FI", "FR", "DE", "GR", "HU", "IE", "IT", "LV", "LT", "LU", "MT", "NL", "PL", "PT", "RO", "SK", "SI", "ES", "SE"],
"wipo_contracting_party_code": "EM"
}
Jurisdictions
Retrieve Jurisdiction
Retrieve a single jurisdiction with Madrid Protocol membership details
GET
/
v1
/
jurisdictions
/
{code}
Retrieve Jurisdiction
curl --request GET \
--url https://api.signa.so/v1/jurisdictions/{code} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.signa.so/v1/jurisdictions/{code}"
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/{code}', 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/{code}",
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/{code}"
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/{code}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.signa.so/v1/jurisdictions/{code}")
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{
"code": "EU",
"object": "jurisdiction",
"name": "European Union",
"office_code": "EM",
"office_status": "live",
"scope_type": "regional",
"madrid_member": true,
"member_jurisdictions": ["AT", "BE", "BG", "HR", "CY", "CZ", "DK", "EE", "FI", "FR", "DE", "GR", "HU", "IE", "IT", "LV", "LT", "LU", "MT", "NL", "PL", "PT", "RO", "SK", "SI", "ES", "SE"],
"wipo_contracting_party_code": "EM"
}
Credits: 0.
Overview
Returns a single jurisdiction record. For regional jurisdictions like the EU, the response includes the member jurisdictions. For Madrid Protocol members, the WIPO contracting party code is included so you can map between national filings and Madrid designations. Member states of a regional right are retrievable in their own right, including states that have no national register and are not Madrid contracting parties themselves.NL, BE and LU (Benelux members) and MT (an EU member that is not a Madrid party) all return scope_type: "national", madrid_member: false, wipo_contracting_party_code: null and office_status: "not_covered". That status is structural, not a gap in the roadmap for NL, BE and LU: BOIP (ST.3 BX) is the register for all three, so there is no Dutch, Belgian or Luxembourg national register to connect. The same holds for the OAPI member states, whose register is OAPI (OA). Malta is the one exception in this group: it has a national register, and Signa does not connect to it yet.
Membership is carried by the regional row rather than by the member: GET /v1/jurisdictions/BX lists ["BE", "LU", "NL"], and GET /v1/jurisdictions/NL returns member_jurisdictions: null.
On search,
jurisdictions=NL matches rights protecting the Netherlands, which includes EU trade marks and Benelux rights. jurisdictions=BX matches Benelux rights only and excludes EU trade marks, so a Benelux clearance should request ["BX", "EU"] or use Screening. See Offices and jurisdictions.Path Parameters
string
required
Jurisdiction code (e.g.
US, EU, GB, DE).Response
This endpoint is publicly cacheable, so the response never includesrequest_id.
string
Jurisdiction code.
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.
string[] | null
For regional jurisdictions, the list of member country codes.
null for jurisdictions with no members list.string | null
WIPO contracting party code for Madrid filings, or
null when not applicable.{
"code": "EU",
"object": "jurisdiction",
"name": "European Union",
"office_code": "EM",
"office_status": "live",
"scope_type": "regional",
"madrid_member": true,
"member_jurisdictions": ["AT", "BE", "BG", "HR", "CY", "CZ", "DK", "EE", "FI", "FR", "DE", "GR", "HU", "IE", "IT", "LV", "LT", "LU", "MT", "NL", "PL", "PT", "RO", "SK", "SI", "ES", "SE"],
"wipo_contracting_party_code": "EM"
}
Code Examples
curl "https://api.signa.so/v1/jurisdictions/EU" \
-H "Authorization: Bearer sig_YOUR_KEY"
import { Signa } from "@signa-so/sdk";
const signa = new Signa({ api_key: process.env.SIGNA_API_KEY });
const jurisdiction = await signa.references.jurisdiction("EU");
Related Endpoints
- List Jurisdictions
- Retrieve Office
- Deadline Rules, maintenance rules across all jurisdictions
- Opposition Rules, third-party opposition windows
- Madrid Protocol guide