Merge pull request #31 from shao-shuai/fix/uspto-database

Add patentsview api key for patent search api
This commit is contained in:
Timothy Kassis
2026-01-09 08:57:21 -08:00
committed by GitHub
2 changed files with 13 additions and 9 deletions

View File

@@ -66,12 +66,16 @@ The USPTO provides multiple specialized APIs for different data needs:
### API Key Registration ### API Key Registration
All USPTO APIs require an API key. Register at: USPTO APIs require an API key. Register at:
**https://account.uspto.gov/api-manager/** **https://account.uspto.gov/api-manager/**
API key for **PatentSearch API** is provided by PatentsView. Register at:
**https://patentsview.org/api-v01-information-page**
Set the API key as an environment variable: Set the API key as an environment variable:
```bash ```bash
export USPTO_API_KEY="your_api_key_here" export USPTO_API_KEY="your_api_key_here"
export PATENTSVIEW_API_KEY="you_api_key_here"
``` ```
### Helper Scripts ### Helper Scripts
@@ -98,7 +102,7 @@ client = PatentSearchClient()
# Search for machine learning patents # Search for machine learning patents
results = client.search_patents({ results = client.search_patents({
"patent_abstract": {"_text_all": ["machine", "learning"]} "_text_all": {"patent_abstract": "machine learning"}
}) })
for patent in results['patents']: for patent in results['patents']:

View File

@@ -31,11 +31,11 @@ class PatentSearchClient:
Initialize client with API key. Initialize client with API key.
Args: Args:
api_key: USPTO API key (if not provided, uses USPTO_API_KEY env var) api_key: PatentsView API key (if not provided, uses PATENTSVIEW_API_KEY env var)
""" """
self.api_key = api_key or os.getenv("USPTO_API_KEY") self.api_key = api_key or os.getenv("PATENTSVIEW_API_KEY")
if not self.api_key: if not self.api_key:
raise ValueError("API key required. Set USPTO_API_KEY environment variable or pass to constructor.") raise ValueError("API key required. Set PATENTSVIEW_API_KEY environment variable or pass to constructor.")
self.headers = { self.headers = {
"X-Api-Key": self.api_key, "X-Api-Key": self.api_key,
@@ -101,15 +101,15 @@ class PatentSearchClient:
""" """
if fields is None: if fields is None:
fields = [ fields = [
"patent_number", "patent_title", "patent_date", "patent_id", "patent_title", "patent_date",
"patent_abstract", "assignee_organization", "patent_abstract", "assignees",
"inventor_name", "cpc_subclass_id" "inventors"
] ]
if sort is None: if sort is None:
sort = [{"patent_date": "desc"}] sort = [{"patent_date": "desc"}]
options = {"page": page, "per_page": min(per_page, 1000)} options = {"size": 100}
return self._request("patent", query, fields, sort, options) return self._request("patent", query, fields, sort, options)