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"
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 |
|---|---|---|
| Free | 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" }
}Create a free account and generate your API key to start querying UK opposition intelligence data.