Medical-research-skills uspto-database
Access USPTO data (Patent Search, PEDS, TSDR, assignments) when you need to query patents/trademarks and retrieve prosecution or status information programmatically.
install
source · Clone the upstream repo
git clone https://github.com/aipoch/medical-research-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/aipoch/medical-research-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/scientific-skills/Other/uspto-database" ~/.claude/skills/aipoch-medical-research-skills-uspto-database && rm -rf "$T"
manifest:
scientific-skills/Other/uspto-database/SKILL.mdsource content
When to Use
- Find relevant US patents by keyword, inventor, assignee, CPC/IPC class, or date range for prior-art screening.
- Retrieve patent application/prosecution history (PEDS) to understand office actions, events, and timeline status.
- Check trademark status and documents via TSDR for clearance, monitoring, or portfolio review.
- Validate patent lifecycle signals such as maintenance-fee-related status or expiration indicators as part of diligence.
- Pull assignment/ownership-related information to support chain-of-title checks.
Key Features
- Patent search client for querying USPTO/PatentsView-style endpoints and returning matching patent identifiers/records.
- PEDS client for fetching examination history and event data for applications.
- TSDR access for trademark status and document retrieval.
- Script-oriented workflow designed for automation (batch queries, pipelines, and integration into internal tools).
Dependencies
- Python
>=3.9 requests >=2.31.0uspto-opendata-python >=0.3.0
Example Usage
# Example: search patents by abstract text and print results # Prerequisite: set required API keys in environment variables as expected by your scripts/clients. # For example (names may vary by implementation): # export USPTO_API_KEY="..." # export PATENTSVIEW_API_KEY="..." from scripts.patent_search import PatentSearchClient def main(): client = PatentSearchClient() # Query example: search for patents whose abstract contains "AI" query = {"_text_all": {"patent_abstract": "AI"}} results = client.search_patents(query) print(results) if __name__ == "__main__": main()
Implementation Details
-
Workflow
- Search: Use
to locate relevant patent numbers/records from a text or fielded query.scripts/patent_search.py - History: Use
to retrieve prosecution/examination history (events, dates, and status signals).scripts/peds_client.py - Status checks: Use retrieved metadata to assess maintenance-fee/expiration-related status where available.
- Search: Use
-
Query model
- Patent search is driven by a JSON query object (e.g., full-text constraints such as
over fields like"_text_all"
).patent_abstract - Returned results are intended to be fed into downstream steps (e.g., PEDS lookups by application/patent identifiers).
- Patent search is driven by a JSON query object (e.g., full-text constraints such as
-
Authentication
- API keys for USPTO and/or PatentsView are required and should be provided via environment variables or configuration used by the clients.
-
Networking
- HTTP requests are performed via
; ensure timeouts/retries are configured in the underlying clients if running large batches.requests
- HTTP requests are performed via