Trademark Search API
Search 14M+ USPTO trademark records — phonetic matching, fuzzy search, owner lookup
api.robotdomainsearch.com/v1/trademark/search
── Try It Live ──
┌──────────────────────────────────────────────────────────────────┐
│ Enter a trademark name above to search │
│ Results will appear here in real-time... │
└──────────────────────────────────────────────────────────────────┘
── How It Works ──
1
Search a Mark
Query any word, brand, or phrase against the full USPTO trademark database
2
Get Match Details
Receive exact, phonetic, and fuzzy match scores with full mark metadata
3
Act on Insights
Use the data for brand clearance, domain investing, or legal research
── Key Features ──
┌──────────────────────────────────────────────────────────────────────────────┐ │ │ │ 14M+ Records Every trademark in the USPTO database, indexed │ │ Phonetic Match Double metaphone finds marks that sound alike │ │ Fuzzy Search Levenshtein distance catches spelling variations │ │ Jaro-Winkler Similarity scoring for near-match detection │ │ Owner Lookup Find all marks owned by a specific company │ │ Expiring Marks Discover trademarks expiring within N days │ │ Live/Dead Status Filter by active (800) or dead (900) marks │ │ Goods & Services Full classification text and class numbers │ │ No API Key Free during beta — 60 requests/minute │ │ │ └──────────────────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────┐ │ │ │ ▸ 14M+ USPTO records │ │ ▸ Phonetic matching │ │ ▸ Fuzzy search │ │ ▸ Jaro-Winkler scoring │ │ ▸ Owner lookup │ │ ▸ Expiring marks discovery │ │ ▸ Live/dead status filter │ │ ▸ Goods & services data │ │ ▸ No API key required │ │ │ └──────────────────────────────────┘
── Endpoints ──
┌──────────────────────────────────────────────────────────────────────────────┐ │ │ │ /v1/trademark/search Search marks by name with matching │ │ /v1/trademark/search/description Search by goods/services description │ │ /v1/trademark/search/owner Find all marks by owner name │ │ /v1/trademark/search/expiring Discover marks expiring in N days │ │ /v1/trademark/search/status Index health, doc count, last update │ │ │ └──────────────────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────┐ │ │ │ ▸ /search — by mark name │ │ ▸ /search/description — G&S │ │ ▸ /search/owner — by owner │ │ ▸ /search/expiring — by date │ │ ▸ /search/status — index info │ │ │ └──────────────────────────────────┘
── Response Format ──
┌──────────────────────────────────────────────────────────────────────────────┐
│ │
│ { │
│ "results": [{ │
│ "serial_number": "73023814", │
│ "mark_text": "NIKE", │
│ "status_code": "800", │
│ "owner_name": "NIKE, INC.", │
│ "filing_date": "1978-01-16T00:00:00Z", │
│ "goods_services": "ATHLETIC SHOES...", │
│ "class_numbers": ["025"], │
│ "match_details": { │
│ "exact_match": true, │
│ "phonetic_match": true, │
│ "jaro_winkler": 1, │
│ "phonetic_codes": "NK" │
│ } │
│ }], │
│ "total": 9, │
│ "index_info": { "total_documents": 13931255 } │
│ } │
│ │
└──────────────────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────┐
│ │
│ { "results": [{ │
│ "mark_text": "NIKE", │
│ "status_code": "800", │
│ "owner_name": "NIKE, INC.", │
│ "match_details": { │
│ "exact_match": true, │
│ "phonetic_match": true │
│ } │
│ }], │
│ "total": 9 } │
│ │
└──────────────────────────────────┘
── Use Cases ──
┌──────────────────────────────────────────────────────────────────────────────┐ │ │ │ 🛡️ Brand Protection & Clearance │ │ Search for conflicting marks before launching a brand or product │ │ │ │ 🌐 Domain Investors │ │ Check if a domain name conflicts with existing trademarks │ │ │ │ ⚖️ Trademark Attorneys │ │ Automate preliminary clearance searches across 14M+ records │ │ │ │ 🏷️ Naming Agencies │ │ Validate candidate names against the full USPTO database │ │ │ │ 📅 Expiring Mark Monitoring │ │ Track trademarks approaching renewal deadlines │ │ │ └──────────────────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────┐ │ │ │ 🛡️ Brand Protection │ │ Search for conflicting marks │ │ before launching a brand │ │ │ │ 🌐 Domain Investors │ │ Check domain vs. trademark │ │ conflicts │ │ │ │ ⚖️ Trademark Attorneys │ │ Automate preliminary │ │ clearance searches │ │ │ │ 🏷️ Naming Agencies │ │ Validate names against the │ │ full USPTO database │ │ │ │ 📅 Expiring Mark Monitoring │ │ Track marks approaching │ │ renewal deadlines │ │ │ └──────────────────────────────────┘
── Code Samples ──
# Search by mark name (phonetic + fuzzy matching)
$ curl "https://api.robotdomainsearch.com/v1/trademark/search?q=nike&limit=5"
# Search by goods/services description
$ curl "https://api.robotdomainsearch.com/v1/trademark/search/description?q=software&limit=5"
# Find all marks owned by a company
$ curl "https://api.robotdomainsearch.com/v1/trademark/search/owner?q=apple&limit=5"
# Discover marks expiring in the next 30 days
$ curl "https://api.robotdomainsearch.com/v1/trademark/search/expiring?days=30&limit=5"
# Check index status
$ curl "https://api.robotdomainsearch.com/v1/trademark/search/status"
import requests
# Search for trademarks matching "nike"
r = requests.get("https://api.robotdomainsearch.com/v1/trademark/search",
params={"q": "nike", "limit": 5})
data = r.json()
print(f"Found {data['total']} results in {data['took_ms']}ms")
for mark in data["results"]:
status = "LIVE" if mark["status_code"] == "800" else "DEAD"
print(f" [{status}] {mark['mark_text']} — {mark['owner_name']}")
m = mark["match_details"]
if m["exact_match"]:
print(" ✓ Exact match")
if m["phonetic_match"]:
print(f" ♫ Phonetic: {m.get('phonetic_codes', '')}")
const res = await fetch(
"https://api.robotdomainsearch.com/v1/trademark/search?q=nike&limit=5"
);
const data = await res.json();
console.log(`Found ${data.total} marks in ${data.took_ms}ms`);
for (const mark of data.results) {
const status = mark.status_code === "800" ? "LIVE" : "DEAD";
console.log(`[${status}] ${mark.mark_text} — ${mark.owner_name}`);
const m = mark.match_details;
if (m.exact_match) console.log(" ✓ Exact match");
if (m.phonetic_match) console.log(` ♫ Phonetic: ${m.phonetic_codes}`);
console.log(` Score: ${m.jaro_winkler.toFixed(2)} (Jaro-Winkler)`);
}
── Related APIs ──
┌──────────────────────────────────────────────────────────────────────────────┐ │ │ │ → Name Search Presence API — Check if a name exists online │ │ → Domain Availability API — Check if a domain is available │ │ → WHOIS Lookup API — Get registration details for any domain │ │ → Full API Reference — Complete /v1/trademark endpoint documentation │ │ │ └──────────────────────────────────────────────────────────────────────────────┘
── Frequently Asked Questions ──
What is the Trademark Search API?
RobotDomainSearch's Trademark Search API lets you search over 14 million USPTO trademark records. It supports text search with phonetic matching, fuzzy matching, owner lookup, and expiring trademark discovery — all from a simple REST API.
How does phonetic matching work?
The API uses double metaphone encoding to find trademarks that sound similar to your query, even if they're spelled differently. For example, searching 'nike' will also match phonetically similar marks like 'nyke' or 'nyk'. Each result includes match details with phonetic codes, Jaro-Winkler similarity, and fuzzy distance scores.
Do I need an API key?
No. RobotDomainSearch is free during beta with no API key required. You get 60 requests per minute with full access to all endpoints.
How current is the data?
The trademark index is regularly updated from USPTO bulk data. The /status endpoint shows the exact last-updated timestamp and total document count so you always know how fresh the data is.
Can I search by trademark owner?
Yes. The /search/owner endpoint lets you find all trademarks owned by a specific company or individual. Search for 'Apple' and get back every mark filed by Apple Inc.
What are common use cases?
Brand protection and clearance searches, domain investing (checking if a domain name conflicts with existing marks), trademark attorney research, naming agency validation, and monitoring expiring trademarks for acquisition opportunities.
┌──────────────────────────────────────────────────────────────────────────────┐ │ │ │ Ready to get started? │ │ │ └──────────────────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────┐ │ │ │ Ready to get started? │ │ │ └──────────────────────────────────┘