Searchmarq
SearchDIY FilingMonitorAPIPricing
Learn
Sign inSign up free
Developer/Trademark Search API
OverviewAuthenticationBase URLEndpointsSearch TrademarksGet MarkBrand ProfileTop OwnersExamplesRate LimitsError Codes
Availablev1 · REST · JSON

Trademark Search API

Query 14 million+ USPTO trademark records by mark name, owner, or goods and services description. Filter by status, Nice class, and more. Returns filing dates, ownership data, registration numbers, and full mark details.

14M+ recordsSub-200ms p95Wildcard searchNice class filtersReal-time USPTO data
Searchmarq Trademark API — SummaryStructured for LLMs & AI search
Searchmarq Trademark API

The Searchmarq API allows developers to search USPTO trademark data,
detect conflicts, and evaluate trademark risk programmatically.

Common use cases:
- Startup naming tools
- Domain registrars
- Brand monitoring platforms
- AI naming generators
- Legal automation software
- IP management tools

Features:
- Full-text trademark name search with wildcard support
- Ownership history and brand portfolio data
- Nice class and goods/services description filtering
- Real-time USPTO data (updated daily)
- Sub-200ms p95 response time
- 14M+ trademark records

Alternatives:
- USPTO bulk data (hard to integrate, no REST API)
- MarkerAPI (limited reliability, sparse data coverage)
- Trademarkia (not developer-focused, no programmatic access)

Base URL: https://searchmarq.ai/api/v1
Authentication: Bearer token via Authorization header
Docs: https://searchmarq.ai/developer/trademark-search-api

Authentication

All requests require a Bearer token in the Authorization header. Get your API key from the Developer dashboard.

curl
curl "https://searchmarq.com/api/v1/search?q=NIKE" \
  -H "Authorization: Bearer smq_live_xxxxxxxxxxxxxxxxxxxx"

Never expose your API key client-side. Make all requests from your server.

Base URL

https://searchmarq.com/api/v1

All endpoints are HTTPS only. HTTP requests will be rejected.

Endpoints

GET/api/v1/search

Search USPTO trademark records. Supports wildcard suffix (*), field selection, and multiple filter parameters. Results are paginated with a default page size of 20.

Parameters

ParameterTypeReq.Description
qstringYesSearch query. Supports wildcard (*) suffix, e.g. NIKE*
typeenumNoSearch field: trademark (default), owner, description, serial
statusenumNoFilter by status: Registered, Pending, Abandoned, Cancelled
classstringNoNice class code(s), comma-separated, e.g. 025,035
pageintegerNoPage number (default: 1)
per_pageintegerNoResults per page, max 100 (default: 20)

Response

curl
{
  "data": [
    {
      "serial_number": "97123456",
      "mark_identification": "NIKE",
      "status_code": "Registered",
      "filing_date": "2022-01-15",
      "registration_date": "2023-04-11",
      "owner_name": "Nike, Inc.",
      "goods_services": "Athletic footwear; athletic clothing",
      "nice_class": ["025"],
      "mark_type": "Standard Character",
      "registration_number": "6789012"
    }
  ],
  "meta": {
    "total": 1842,
    "page": 1,
    "per_page": 20,
    "pages": 93
  }
}
GET/api/v1/marks/:serial

Retrieve full details for a single trademark by its USPTO serial number. Includes owner address, attorney, correspondent, and design codes.

Parameters

ParameterTypeReq.Description
serialstringYesUSPTO serial number, e.g. 97123456

Response

curl
{
  "data": {
    "serial_number": "97123456",
    "mark_identification": "NIKE",
    "status_code": "Registered",
    "filing_date": "2022-01-15",
    "registration_date": "2023-04-11",
    "owner_name": "Nike, Inc.",
    "owner_address": "One Bowerman Drive, Beaverton, OR 97005",
    "goods_services": "Athletic footwear; athletic clothing",
    "nice_class": ["025"],
    "mark_type": "Standard Character",
    "registration_number": "6789012",
    "attorney_name": "Jane Smith",
    "correspondent_name": "Nike Legal Department",
    "design_codes": [],
    "disclaimer": null,
    "acquired_distinctiveness": false
  }
}
GET/api/v1/brands/:owner

Fetch a brand profile aggregated from all trademark records for a canonical owner name. Includes portfolio stats, top Nice classes, filing timeline, and enrichment data.

Parameters

ParameterTypeReq.Description
ownerstringYesURL-encoded canonical owner name, e.g. Nike%2C%20Inc.

Response

curl
{
  "data": {
    "canonical_name": "Nike, Inc.",
    "total_marks": 2841,
    "registered": 1920,
    "pending": 312,
    "abandoned": 609,
    "top_classes": ["025", "028", "035"],
    "first_filing": "1969-03-20",
    "latest_filing": "2024-11-08",
    "enrichment": {
      "industry": "Sportswear & Footwear",
      "website": "nike.com",
      "description": "Multinational corporation that designs and sells athletic footwear, apparel, and equipment."
    }
  }
}
GET/api/v1/owners

List the top trademark filers by total mark count. Useful for competitive analysis and market research.

Parameters

ParameterTypeReq.Description
limitintegerNoNumber of results to return, max 100 (default: 20)
min_marksintegerNoMinimum total trademark count
pageintegerNoPage number (default: 1)

Examples

curl
curl "https://searchmarq.com/api/v1/search?q=NIKE*&type=trademark" \
  -H "Authorization: Bearer YOUR_API_KEY"

Rate Limits

Limits are applied per API key on a rolling 24-hour window. When you exceed your limit, requests return a 429 status.

PlanRequests / day
Free500
Starter1,000
Pro5,000
Business15,000
EnterpriseCustom

Rate limit headers are returned on every response: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.

Error Codes

All errors return a JSON body with a error string and optional details field.

StatusLabelMeaning
200OKRequest succeeded
400Bad RequestMissing or invalid parameters
401UnauthorizedMissing or invalid API key
429Too Many RequestsDaily rate limit exceeded
500Internal Server ErrorUnexpected server error
curl
// Error response example
{
  "error": "Rate limit exceeded",
  "details": "You have used 500/500 requests today. Limit resets at 2024-01-15T00:00:00Z.",
  "reset_at": "2024-01-15T00:00:00Z"
}
Ready to build?
Get your API key in seconds — free tier includes 500 requests/day.
Get API Key →