DEV Community

Alex Spinov
Alex Spinov

Posted on

USPTO Has a Free Patent API — Search 8M+ Patents (No Key Required)

Did you know you can search every US patent since 1976 with a free API call?

I didn't — until I needed to check if my idea was already patented.

The API

USPTO's PatentsView API is completely free. No API key, no registration.

import requests

def search_patents(query, limit=5):
    resp = requests.post('https://api.patentsview.org/patents/query', json={
        'q': {'_text_any': {'patent_abstract': query}},
        'f': ['patent_number', 'patent_title', 'patent_date', 
              'assignee_organization', 'patent_abstract'],
        'o': {'per_page': limit},
        's': [{'patent_date': 'desc'}]
    })
    return resp.json().get('patents', [])

# What AI patents were filed recently?
patents = search_patents('artificial intelligence medical diagnosis')
for p in patents:
    company = p.get('assignees', [{}])[0].get('assignee_organization', 'Individual')
    print(f"[{p['patent_number']}] {p['patent_title']}")
    print(f"  {p['patent_date']} | {company}\n")
Enter fullscreen mode Exit fullscreen mode

Real Use Cases

1. Check Before You Build

Before spending months on a product, check if someone already patented the core idea:

patents = search_patents('voice assistant smart home control')
print(f"Found {len(patents)} existing patents")
Enter fullscreen mode Exit fullscreen mode

2. Competitive Intelligence

What is Google working on?

resp = requests.post('https://api.patentsview.org/patents/query', json={
    'q': {'assignee_organization': 'Google LLC'},
    'f': ['patent_number', 'patent_title', 'patent_date'],
    'o': {'per_page': 10},
    's': [{'patent_date': 'desc'}]
})
for p in resp.json().get('patents', []):
    print(f"  [{p['patent_date']}] {p['patent_title']}")
Enter fullscreen mode Exit fullscreen mode

3. Investment Research

Count patents by company to gauge R&D activity:

for company in ['Apple Inc.', 'Google LLC', 'Microsoft Corporation']:
    resp = requests.post('https://api.patentsview.org/patents/query', json={
        'q': {'assignee_organization': company},
        'f': ['patent_number'],
        'o': {'per_page': 1}
    })
    total = resp.json().get('total_patent_count', 0)
    print(f"{company}: {total:,} patents")
Enter fullscreen mode Exit fullscreen mode

Full Toolkit

I built a CLI wrapper with CSV/JSON export:

python search_patents.py "blockchain supply chain" --format csv --output patents.csv
Enter fullscreen mode Exit fullscreen mode

👉 GitHub: patent-api-toolkit

Part of my Research API Suite — 10 free API toolkits.


Have you ever searched patents programmatically? What for?


More tools: Apify scrapers | GitHub

Top comments (0)