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

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • MyrinNew
    Senior Member
    • Feb 2024
    • 5175

    #1

    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")







    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")







    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']}")







    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")







    Full Toolkit

    I built a CLI wrapper with CSV/JSON export:






    python search_patents.py "blockchain supply chain" --format csv --output patents.csv







    👉 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




    More...
Working...