TrademarkSearchPro API
Authentication
Every call to /v1/... requires an API key sent in the X-API-Key header. Keys are issued from the dashboard after you activate a subscription.
Base URL & Errors
Production base URL:
All responses are JSON. Error responses include error + code fields. HTTP status:
| Status | Meaning |
|---|---|
200 | OK |
201 | Created |
400 | Bad request — see error field |
401 | Missing / invalid API key |
403 | Subscription expired, plan doesn't include this feature |
404 | Resource not found |
429 | Rate limit, concurrent limit, or monthly quota exceeded |
5xx | Our problem — contact support@trademarksearchpro.com |
Quotas & Rate Limits
Each plan includes monthly quotas tracked per resource type:
api_calls— most read endpointsdoc_views— pre-signed document URL generationslogo_searches— text + image (single or bulk)pdf_reports/excel_reports— generated reports
Real-time limits:
- Per-IP: 200 requests / minute
- Per-key: 10 requests / second
- Concurrent: determined by your plan (1–10 in-flight requests)
When you hit a limit, you get 429 with details in the body. Bulk endpoints charge N credits per request (e.g. POST /v1/trademarks/bulk/ with 50 app numbers charges 50 api_calls).
Webhooks
Get real-time HTTP POST notifications when trademark data changes. Register from the dashboard's Webhooks tab. We sign every delivery with HMAC-SHA256 so you can verify it came from us.
webhook_enabled=true (Silver and Gold by default).Event types
| Event | Fires when… |
|---|---|
trademark.status_changed | A row appears in tradmark_status_history |
trademark.alert_changed | A row appears in alert_changes |
trademark.opposition_filed | A row appears in tbl_tm_oppositions |
trademark.hearing_scheduled | A row appears in tbl_tm_hearing_details |
trademark.document_added | A row appears in tbl_tm_documents |
trademark.proprietor_changed | A proprietor_detail row updates |
trademark.exam_report_added | A row appears in tbl_tm_examination_report |
Verifying signatures
We send X-TMSP-Signature: sha256=<hex> on every delivery. Compute HMAC-SHA256 of the raw request body using your webhook secret (shown once when you register):
Failed deliveries retry up to 3 times with 60s backoff. After 10 cumulative failures the webhook is auto-disabled and the user is emailed.
Free Public Search (no key required)
The free search page is a no-login preview that returns a restricted result set. Use it to demo the data quality before signing up.
- Endpoint:
GET /public/v1/trademarks/search/?word_mark=… - Returns only:
application_number,word_mark,class_number,status,application_date,state,tm_type - Capped at 10 results, 60 searches / hour / IP