Skip to main content
GET
/
v1
/
analytics
/
offices
/
{code}
Office Analytics
curl --request GET \
  --url https://api.signa.so/v1/analytics/offices/{code} \
  --header 'Authorization: Bearer <token>'
import requests

url = "https://api.signa.so/v1/analytics/offices/{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/analytics/offices/{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/analytics/offices/{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/analytics/offices/{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/analytics/offices/{code}")
.header("Authorization", "Bearer <token>")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.signa.so/v1/analytics/offices/{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
{
  "object": "office_analytics",
  "code": "uspto",
  "total_marks": 8000000,
  "registered_count": 4800000,
  "pending_count": 900000,
  "expired_count": 1200000,
  "cancelled_count": 500000,
  "abandoned_count": 600000,
  "registration_rate": 0.8125,
  "jurisdiction_count": 1,
  "earliest_filing": "1870-01-01",
  "latest_filing": "2026-07-11",
  "top_classes": [
    {
      "class": 9,
      "count": 700000,
      "pct": 0.088
    }
  ],
  "yearly_trend": [
    {
      "year": 2025,
      "filed": 410000,
      "registered": 280000,
      "abandoned": 35000
    }
  ],
  "stats_computed_at": "2026-07-12T00:00:00.000Z",
  "request_id": "req_example"
}
Use this endpoint to benchmark one office by registration rate, leading Nice classes, and yearly filing trend. Office codes are lowercase.
code
string
required
Lowercase office code, for example uspto.
curl https://api.signa.so/v1/analytics/offices/uspto -H "Authorization: Bearer $SIGNA_API_KEY"
total_marks
number
Total marks at the office.
registration_rate
number | null
Share of concluded matters that reached registration.
top_classes
array<{ class: number; count: number; pct: number }> | null
Leading Nice classes.
yearly_trend
array<{ year: number; filed: number; registered: number; abandoned: number }> | null
Annual filing and status counts.
{
  "object": "office_analytics",
  "code": "uspto",
  "total_marks": 8000000,
  "registered_count": 4800000,
  "pending_count": 900000,
  "expired_count": 1200000,
  "cancelled_count": 500000,
  "abandoned_count": 600000,
  "registration_rate": 0.8125,
  "jurisdiction_count": 1,
  "earliest_filing": "1870-01-01",
  "latest_filing": "2026-07-11",
  "top_classes": [
    {
      "class": 9,
      "count": 700000,
      "pct": 0.088
    }
  ],
  "yearly_trend": [
    {
      "year": 2025,
      "filed": 410000,
      "registered": 280000,
      "abandoned": 35000
    }
  ],
  "stats_computed_at": "2026-07-12T00:00:00.000Z",
  "request_id": "req_example"
}