Access UK trademark opposition intelligence data programmatically. Hearing officers, firm benchmarking, class risk, and decision search.
All requests require an API key passed in the x-api-key header.
curl -H "x-api-key: tmg_xxxx..." \ "https://api.tmguard.uk/api/intelligence/v1/hearing-officers"
The Intelligence API is available to TMGuard Intelligence subscribers. Generate your API key in dashboard settings
Rate limits depend on your API key tier. The current limits and reset time are included in every response under the rateLimit field.
| Tier | Rate | Daily limit |
|---|---|---|
| Standard | 10 req/min | 1,000 req/day |
| Basic | 30 req/min | 10,000 req/day |
| Premium | 100 req/min | 100,000 req/day |
All endpoints return a consistent envelope format with the data, pagination metadata, and rate limit information.
{
"data": [...],
"meta": { "total": 230, "page": 1, "limit": 20 },
"rateLimit": { "remaining": 9, "reset": "2026-03-22T12:00:00Z" }
}Error responses use standard HTTP status codes with a JSON body containing an error field describing the issue.
{
"error": "Rate limit exceeded. Try again after 2026-03-22T12:00:00Z"
}List hearing officers with outcome statistics.
| Name | Type | Description |
|---|---|---|
page | number | Page number (default 1) |
limit | number | Results per page (default 20, max 100) |
search | string | Search by officer name |
sort | string | Sort field: name, total_decisions, success_rate |
curl -H "x-api-key: tmg_xxxx..." \ "https://api.tmguard.uk/api/intelligence/v1/hearing-officers?page=1&limit=20"
{
"data": [
{
"slug": "amanda-michaels",
"name": "Amanda Michaels",
"totalDecisions": 342,
"applicantSuccessRate": 0.38,
"opponentSuccessRate": 0.51
}
],
"meta": { "total": 124, "page": 1, "limit": 20 },
"rateLimit": { "remaining": 9, "reset": "2026-03-22T12:00:00Z" }
}Get a single hearing officer profile with detailed statistics.
| Name | Type | Description |
|---|---|---|
slug | string | Officer slug (path parameter) |
curl -H "x-api-key: tmg_xxxx..." \ "https://api.tmguard.uk/api/intelligence/v1/hearing-officers/amanda-michaels"
{
"data": {
"slug": "amanda-michaels",
"name": "Amanda Michaels",
"totalDecisions": 342,
"applicantSuccessRate": 0.38,
"opponentSuccessRate": 0.51,
"yearRange": [2004, 2026],
"topClasses": [9, 25, 35, 41, 42],
"groundsAnalysis": [
{ "ground": "s5(2)(b)", "count": 180, "opponentSuccessRate": 0.54 }
]
}
}List law firms with opposition performance metrics.
| Name | Type | Description |
|---|---|---|
page | number | Page number (default 1) |
limit | number | Results per page (default 20, max 100) |
search | string | Search by firm name |
sort | string | Sort field: name, total_cases, win_rate |
curl -H "x-api-key: tmg_xxxx..." \ "https://api.tmguard.uk/api/intelligence/v1/firms?page=1&limit=20"
{
"data": [
{
"slug": "marks-clerk",
"name": "Marks & Clerk",
"totalCases": 412,
"winRate": 0.58,
"asApplicant": 210,
"asOpponent": 202
}
],
"meta": { "total": 230, "page": 1, "limit": 20 },
"rateLimit": { "remaining": 9, "reset": "2026-03-22T12:00:00Z" }
}Get a single firm profile with detailed performance breakdown.
| Name | Type | Description |
|---|---|---|
slug | string | Firm slug (path parameter) |
curl -H "x-api-key: tmg_xxxx..." \ "https://api.tmguard.uk/api/intelligence/v1/firms/marks-clerk"
{
"data": {
"slug": "marks-clerk",
"name": "Marks & Clerk",
"totalCases": 412,
"winRate": 0.58,
"topClasses": [9, 25, 35],
"yearRange": [2000, 2026],
"topOfficers": [
{ "name": "Amanda Michaels", "cases": 28, "winRate": 0.61 }
]
}
}Get opposition risk data for all 45 Nice classes.
curl -H "x-api-key: tmg_xxxx..." \ "https://api.tmguard.uk/api/intelligence/v1/class-risk"
{
"data": [
{
"niceClass": 9,
"totalDecisions": 820,
"oppositionRate": 0.12,
"opponentSuccessRate": 0.48,
"topGrounds": ["s5(2)(b)", "s5(1)"]
}
],
"meta": { "total": 45 },
"rateLimit": { "remaining": 9, "reset": "2026-03-22T12:00:00Z" }
}Get detailed opposition risk data for a single Nice class.
| Name | Type | Description |
|---|---|---|
classNum | number | Nice class number 1 to 45 (path parameter) |
curl -H "x-api-key: tmg_xxxx..." \ "https://api.tmguard.uk/api/intelligence/v1/class-risk/9"
{
"data": {
"niceClass": 9,
"totalDecisions": 820,
"oppositionRate": 0.12,
"opponentSuccessRate": 0.48,
"yearlyTrend": [
{ "year": 2024, "decisions": 62, "opponentSuccessRate": 0.45 }
],
"topGrounds": [
{ "ground": "s5(2)(b)", "count": 480, "successRate": 0.52 }
]
}
}Search and filter opposition decisions.
| Name | Type | Description |
|---|---|---|
q | string | Free text search across decision content |
year | number | Filter by decision year |
outcome | string | Filter by outcome: upheld, dismissed, partially_upheld |
page | number | Page number (default 1) |
limit | number | Results per page (default 20, max 100) |
curl -H "x-api-key: tmg_xxxx..." \ "https://api.tmguard.uk/api/intelligence/v1/decisions?q=software&year=2025&outcome=upheld&page=1"
{
"data": [
{
"id": "d-12345",
"caseNumber": "O/123/25",
"date": "2025-06-15",
"outcome": "upheld",
"hearingOfficer": "Amanda Michaels",
"applicantMark": "TECHFLOW",
"opponentMark": "TECHGLOW",
"classes": [9, 42]
}
],
"meta": { "total": 84, "page": 1, "limit": 20 },
"rateLimit": { "remaining": 9, "reset": "2026-03-22T12:00:00Z" }
}Get aggregate statistics across the entire decision dataset.
curl -H "x-api-key: tmg_xxxx..." \ "https://api.tmguard.uk/api/intelligence/v1/stats"
{
"data": {
"totalDecisions": 9342,
"totalOfficers": 124,
"totalFirms": 230,
"yearRange": [1998, 2026],
"overallOpponentSuccessRate": 0.47,
"decisionsThisYear": 312
},
"rateLimit": { "remaining": 9, "reset": "2026-03-22T12:00:00Z" }
}The API is included with a TMGuard Intelligence subscription. Generate your API key to start querying UK opposition intelligence data.