Patent Client#

Build codecov Documentation

PyPI PyPI - Python Versions Downloads Pydantic v2

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#

  • 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#

Indices and tables#