Help us improve
Share bugs, ideas, or general feedback.
Searches and retrieves official USPTO patent and trademark records via PatentSearch, TSDR, and assignment APIs. Supports reproducible IP research logs.
npx claudepluginhub affaan-m/ecc --plugin eccHow this skill is triggered — by the user, by Claude, or both
Slash command
/everything-claude-code:scientific-db-uspto-databaseThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Use this skill when a task needs official United States patent or trademark
Access USPTO APIs for patent/trademark searches, examination history (PEDS), assignments, citations, office actions, TSDR, for IP analysis and prior art searches.
Accesses USPTO patent data via PatentsView REST API and Google Patents BigQuery. Searches by inventor, assignee, CPC, keywords; analyzes portfolios and trends for IP landscape, prior art search, competitor monitoring.
Guides structured prior art searches using Espacenet: CQL query construction, abstract triage, full-text keyword search, paginated claim reading, family expansion, report generation. For patent novelty and invalidation.
Share bugs, ideas, or general feedback.
Use this skill when a task needs official United States patent or trademark records from USPTO systems.
Do not use this skill to give legal advice. Treat it as a data-gathering and record-verification workflow.
Prefer official USPTO or USPTO-supported surfaces first:
Use secondary sources only as convenience indexes. When the answer matters, cross-check the official record.
Many USPTO API flows require an API key. Store keys in environment variables or a secret manager, never in committed files or pasted transcripts.
Common environment names:
export USPTO_API_KEY="..."
export PATENTSVIEW_API_KEY="..."
For PatentSearch, send the key with the X-Api-Key header. For TSDR, follow
the current USPTO API Manager instructions and rate-limit guidance.
Use PatentSearch for broad patent and pre-grant publication search when the question is about trends, inventors, assignees, classifications, dates, or portfolio slices.
Workflow:
Python request skeleton:
import os
import requests
API_KEY = os.environ["PATENTSVIEW_API_KEY"]
BASE = "https://search.patentsview.org/api/v1"
payload = {
"q": {
"_and": [
{"patent_date": {"_gte": "2024-01-01"}},
{"assignees.assignee_organization": {"_text_any": ["Google", "Alphabet"]}},
]
},
"f": ["patent_id", "patent_title", "patent_date"],
"s": [{"patent_date": "desc"}],
"o": {"per_page": 100, "page": 1},
}
response = requests.post(
f"{BASE}/patent/",
headers={"X-Api-Key": API_KEY, "Content-Type": "application/json"},
json=payload,
timeout=30,
)
response.raise_for_status()
print(response.json())
Before reusing a query, verify current endpoint names, field paths, request parameters, and API-key availability in the live PatentSearch docs.
Use TSDR when the task needs trademark case status, documents, images, owner history, or prosecution events.
Workflow:
For large trademark pulls, prefer documented bulk-data flows rather than screen-scraping public pages.
For application status, transaction history, and prosecution documents:
For patent or trademark ownership:
Every USPTO research pass should include a log table:
| Source | Date searched | Identifier/query | Filters | Results | Notes |
| --- | --- | --- | --- | ---: | --- |
| PatentSearch | 2026-05-11 | `assignee=Alphabet AND date>=2024` | patent endpoint | 118 | API docs checked before run |
| TSDR | 2026-05-11 | `serial=90000000` | status only | 1 | API-key flow, no document bulk pull |
For final writeups, separate: