Trademark Search Pro API
Complete REST access to Indian Trademark data — 7.7M+ records, opposition proceedings, hearings, exam reports, logo similarity, webhook event streams. Sourced directly from IPIndia.
Base URL
https://api.trademarksearchpro.com/india/v1/
Quick start
- Sign up at /signup/ to receive your API key
- All API calls require
X-API-KeyorAuthorization: Api-Keyheader - Try requests right from this page — paste your key in the Try-It panel on the right
- Production responses are cached for 1 hour; webhooks deliver real-time updates
Authentication
Every request to /v1/* requires an API key. Both header formats work:
X-API-Key: tmsp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxAuthorization: Api-Key tmsp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxFor user dashboard / webhook management endpoints under /user/v1/*, use JWT:
Authorization: Bearer eyJhbGciOiJIUzI1NiI...Keys are SHA-256 hashed at rest. Never embed a key in client-side JavaScript; keep all calls server-side.
Errors and Status Codes
Errors return a JSON body with error, code, and sometimes additional fields:
{
"error": "Opposition data is not included in your plan.",
"code": "data_category_not_enabled",
"category": "cat_oppositions",
"resource": "oppositions"
}| Status | Meaning |
|---|---|
| 200 | Success |
| 201 | Created |
| 400 | Validation error — see code |
| 401 | Missing / invalid API key |
| 403 | Plan / category gate — upgrade or enable add-on |
| 404 | Not found |
| 413 | Payload too large (file upload, bulk limit) |
| 429 | Quota exhausted or rate-limited |
| 5xx | Server error — retry with exponential backoff |
Common error codes
| Code | Cause |
|---|---|
auth_required | Missing X-API-Key / Authorization header |
data_category_not_enabled | Endpoint requires a cat_* flag not on your plan |
bulk_not_on_plan | Bulk endpoint requires Pro+ plan |
quota_exhausted | Monthly quota for this resource is fully consumed |
subscription_inactive | Subscription expired or suspended |
bulk_limit_exceeded | Too many items in one bulk request |
validation_error | Bad input — see message |
Quotas and Plans
Each API key is bound to a subscription with monthly quotas. Quotas reset on the 1st of every month (IST).
| Quota | Charges on |
|---|---|
api_calls | Most search / detail / reference endpoints (1 per call) |
doc_views | Each document / opposition-doc / journal-PDF URL (1 per file) |
logo_searches | Every logo similarity call (1 per query; N for bulk) |
pdf_reports | Each PDF report / export |
excel_reports | Each Excel export |
realtime_searches | Each realtime IPIndia call |
Plan tiers
| Plan | Base / mo | API calls | Logo | Webhooks |
|---|---|---|---|---|
| Free Tier | Rs. 0 | 1,000 | 10 | — |
| Basic | Rs. 7,450 | 25,000 | 1,000 | — |
| Pro | Rs. 11,617 | 75,000 | 5,000 | 50 TMs |
| Business | Rs. 18,283 | 300,000 | 20,000 | Unlimited |
| Custom | Quote | Any | Any | Any |
Trademark Object Schema
The canonical trademark object returned by detail / search endpoints:
| Field | Type | Description |
|---|
Status Values
Values returned in the status field. Tags below are coloured by category.
Data Access Categories
Endpoints are gated by 17 data-category flags. Each flag maps to a cat_* column
on your subscription. When a flag is off, the endpoint returns 403 data_category_not_enabled.
Sample 403 response
{
"error": "Opposition data is not included in your plan.",
"code": "data_category_not_enabled",
"category": "cat_oppositions",
"resource": "oppositions"
}
Trademark Search Pro