Patent Client#
Summary#
A powerful library for accessing intellectual property, featuring:
🍰 Ease of use: All sources use a simple unified API inspired by Django-ORM.
🐼 Pandas Integration: Results are easily castable to Pandas Dataframes and Series.
🚀 Performance: Fetched data is retrieved using the httpx library with native HTTP/2 and asyncio support, and cached using the hishel library for super-fast queries, and yankee for data extraction.
🌐 Async/Await Support: All API’s (optionally!) support the async/await syntax.
🔮 Pydantic v2 Support: All models retrieved are Pydantic v2 models with all the goodness that comes with them!
Docs, including a fulsome Getting Started and User Guide are available on Read the Docs. The Examples folder includes examples of using patent_client
for
many common IP tasks
Coverage#
United States Patent & Trademark Office
Patent Examination Data - Full Support
Global Dossier - Full Support
Patent Assignment Data - Lookup Support
Patent Trial & Appeal Board API v2 - Supports Proceedings, Decisions, and Documents
Patent Public Search - Full Support
Bulk Data Storage System - Full Support
European Patent Office - Open Patent Services
Inpadoc - Full Support
EPO Register - No Support (in progress)
Classification - No Support
Free software: Apache Software License 2.0
Installation#
pip install patent_client
If you only want access to USPTO resources, you’re done! However, additional setup is necessary to access EPO Inpadoc and EPO Register resources. See the Docs.
Quick Start#
To use the project:
# Import the model classes you need
>>> from patent_client import Inpadoc, Assignment, USApplication
# Fetch US Applications
>>> app = USApplication.objects.get('15710770')
>>> app.patent_title
'Camera Assembly with Concave-Shaped Front Face'
# Fetch from USPTO Assignments
>>> assignments = Assignment.objects.filter(assignee='Google')
>>> len(assignments) > 23000
True
>>> assignment = Assignment.objects.get('47086-788')
>>> assignment.conveyance_text
'ASSIGNMENT OF ASSIGNORS INTEREST'
# Fetch from INPADOC
>>> pub = Inpadoc.objects.get('EP3082535A1')
>>> pub.biblio.title
'AUTOMATIC FLUID DISPENSER'
Async Quick Start#
To use the asyncio methods, simply use async with
for iterators, and call any methods with a a
prefix:
apps = list()
async for app in USApplication.objects.filter(first_named_applicant="Google"):
apps.append(app)
app = await USApplication.objects.aget("16123456")
Table of Contents#
- Motivation
- Getting Started
- User Guide
- Examples
- Introduction to Patent_Client
- Patent Expiration Dates
- Collect a Company’s Patent Porfolio
- U.S. Portfolio
- Step 1.a: Collect all applications naming the company as applicant
- Step 1.b: Collect all applications assigned to the company
- Step 2: Collect all applications ever assigned out of the company
- Step 3: Subtract one set from the other
- Step 4: Generate status report
- Foreign Patent Portfolio
- Examiner Monitor
- Generate Continuity Graphs
- API Documentation
- v3 to v4 Migration Guide
- Developer Documentation
- Changelog
- 4.0.2 (2023-11-31)
- 4.0.1 (2023-11-14)
- 4.0.0 (2023-11-09)
- 3.2.11 (2023-11-09)
- 3.2.10 (2023-10-31)
- 3.2.9 (2023-10-31)
- 3.2.8 (2023-10-25)
- 3.2.7 (2023-07-10)
- 3.2.6 (2023-06-12)
- 3.1.0 (2023-01-19)
- 3.0.6 (2023-01-14)
- 3.0.5 (2022-11-17)
- 3.0.1 (2022-08-09)
- 2.1.3 (2020-11-12)
- 2.1.0 (2021-03-23)
- 2.0.3 (2020-10-14)
- 2.0.2 (2020-04-13)
- 2.0.1 (2020-03-12)
- 2.0.0 (2020-03-11)
- 0.4.0 (2019-01-30)
- 0.2.3 (2018-11-02)
- 0.1.5 (2018-10-25)
- 0.1.4 (2018-10-24)
- 0.0.1 (2018-10-15)