Overview
The European Patent Office (EPO) serves as a central authority for patent granting and information dissemination in Europe. Established in 1973, its mandate includes examining European patent applications and granting European patents, which can then be validated in various member states. Beyond its role in patent examination, the EPO provides extensive resources for patent searching and intellectual property (IP) research to a global audience of developers, researchers, and technical buyers.
The EPO's primary offerings for information access include Espacenet, a public web-based search tool, and Open Patent Services (OPS), an API for programmatic access to patent data. Espacenet allows users to search over 140 million patent documents from around the world, providing access to patent applications and granted patents, technical specifications, and legal status information. This data supports comprehensive patent searching, intellectual property research, and patent landscape analysis, making it a resource for businesses, academics, and inventors seeking to understand existing technologies and identify innovation trends.
For developers, the Open Patent Services (OPS) API offers a standardized interface for integrating patent data directly into applications. This enables automated retrieval of patent documents, bibliographic data, and legal event information. The OPS API adheres to common REST principles, facilitating the development of custom patent analysis tools, competitive intelligence platforms, and academic research applications. The EPO's commitment to providing accessible patent data supports various use cases, from individual researchers tracking specific technologies to large corporations performing due diligence on potential acquisitions. The EPO's documentation provides details on how to use the API for specific data retrieval tasks, such as searching for patents by keywords or retrieving full patent documents.
While the EPO offers extensive data, users should note that other providers like Clarivate's Derwent World Patents Index also aggregate and index patent data, often with additional value-added analytics and curated content for specific industries. These alternative services can offer different search capabilities or specialized datasets, which may complement the EPO's offerings depending on the specific research requirements.
Key features
- Espacenet Database: A free-to-use online service providing access to over 140 million patent documents from around the world, including patent applications and granted patents, along with their legal status and technical specifications. Users can search by keywords, applicant, inventor, and classification codes. Further details are available on the Espacenet help pages.
- Open Patent Services (OPS) API: A RESTful API enabling programmatic access to the EPO's patent data. This includes bibliographic data, legal status information, full-text documents, and images. The API supports various query types and data formats for integration into custom applications, with developer documentation available.
- Global Patent Index (GPI): A comprehensive tool for patent professionals, offering advanced search and analysis capabilities beyond Espacenet, often requiring a subscription for full access.
- Patent Landscape Analysis: Tools and data suitable for analyzing technological trends, competitive landscapes, and identifying white spaces for innovation based on patent activity.
- Legal Status Information: Access to the current legal status of European and selected national patents, including information on grant, opposition, and expiry.
- Machine Translation: Integrated machine translation for patent documents to facilitate understanding across different languages.
Pricing
The EPO provides a tiered access model for its patent information services. The Espacenet web interface is available for free public use, offering extensive search capabilities without a direct cost.
| Service | Description | Cost | As Of |
|---|---|---|---|
| Espacenet (Web Interface) | Public access to over 140 million patent documents. | Free | 2026-05-28 |
| Open Patent Services (OPS) API - Free Tier | Limited programmatic access to patent data (e.g., 100 queries/day). | Free | 2026-05-28 |
| Open Patent Services (OPS) API - Commercial Use | Programmatic access beyond free limits, suitable for high-volume data retrieval and commercial applications. | Subscription-based | 2026-05-28 |
| Global Patent Index (GPI) | Advanced patent search and analysis platform for professionals. | Subscription-based | 2026-05-28 |
Commercial use of the Open Patent Services API beyond the specified free limits requires a subscription, with pricing details available upon inquiry to the EPO. Further information on the free and commercial usage of OPS can be found on the EPO developer portal.
Common integrations
The EPO's Open Patent Services (OPS) API supports direct integration into custom applications and platforms. While the EPO does not provide a list of pre-built integrations with specific third-party tools, its adherence to REST principles allows for broad compatibility:
- Custom IP Management Systems: Developers can integrate OPS to automatically pull patent data into internal databases or IP management software for tracking and analysis.
- Academic Research Platforms: Researchers can build tools to analyze patent trends, citation networks, and technology landscapes using OPS data.
- Competitive Intelligence Tools: Integration with business intelligence platforms to monitor competitor patent activity and emerging technological fields.
- Legal Tech Applications: Development of specialized tools for patent attorneys and legal professionals to streamline searching and due diligence processes.
Alternatives
- Google Patents: A free search engine that indexes patents and patent applications from around the world, often linking to non-patent literature.
- Clarivate (Derwent): Offers comprehensive patent intelligence, analytics, and curated content through products like the Derwent World Patents Index (DWPI) for in-depth analysis.
- Questel Orbit: Provides a suite of IP software solutions, including patent search and analytics, for professional patent information and management.
Getting started
To begin using the EPO's Open Patent Services (OPS) API, you typically need to obtain credentials (a consumer key and secret) by registering on their developer portal. The following Python example demonstrates a basic query to retrieve patent data using the OPS API. This example uses the requests library to make an HTTP GET request to the OPS API's publication service, searching for documents related to a specific query.
import requests
from requests.auth import HTTPBasicAuth
# Replace with your actual consumer key and secret obtained from the EPO developer portal
CONSUMER_KEY = 'YOUR_CONSUMER_KEY'
CONSUMER_SECRET = 'YOUR_CONSUMER_SECRET'
# Base URL for the OPS API
OPS_BASE_URL = 'https://ops.epo.org/3.2/rest-services/published-data/'
def search_patents(query_string):
# The authentication mechanism for OPS is OAuth 2.0 Client Credentials flow.
# For simplicity, this example uses Basic Auth with key/secret for direct access tokens if supported,
# or you'd typically get a token first.
# For a full OAuth 2.0 implementation, refer to the EPO's OPS API documentation.
# Example: Searching for publications related to 'artificial intelligence'
# The query format depends on the specific service you are calling.
# This example targets the 'search' service within published-data.
# Construct the URL for a search query
# For a simple search, you might use the 'search' service and specify a query in the URL path.
# Example using the 'biblio' service to search by query and retrieve bibliographic data.
# The actual search syntax might vary; consult the OPS documentation for precise query language.
# Let's assume we want to search for 'artificial intelligence' in the title or abstract
# and retrieve bibliographic data for the first 10 results.
# First, get an access token (simplified for illustration; actual OAuth flow is more involved)
token_url = 'https://ops.epo.org/3.2/auth/accesstoken'
token_response = requests.post(token_url, auth=HTTPBasicAuth(CONSUMER_KEY, CONSUMER_SECRET), data={'grant_type': 'client_credentials'})
if token_response.status_code == 200:
access_token = token_response.json().get('access_token')
headers = {
'Authorization': f'Bearer {access_token}',
'Accept': 'application/json'
}
# Example query for 'artificial intelligence'
# The specific search format depends on the OPS service being called.
# This example uses a CQL-like query for simplicity.
search_query_encoded = requests.utils.quote(f'ai="{query_string}"') # Assuming 'ai' is a field for artificial intelligence
search_endpoint = f'{OPS_BASE_URL}search?q={search_query_encoded}&Range=1-10'
print(f"Searching OPS at: {search_endpoint}")
response = requests.get(search_endpoint, headers=headers)
if response.status_code == 200:
print("Search successful!")
# Process the JSON response
patent_data = response.json()
# print(json.dumps(patent_data, indent=2))
# Example: print titles of found patents
if 'ops:world-patent-data' in patent_data and 'ops:publication-reference' in patent_data['ops:world-patent-data']:
publications = patent_data['ops:world-patent-data']['ops:publication-reference']
if isinstance(publications, dict): # Handle single result case
publications = [publications]
for pub in publications:
if 'document-id' in pub and 'bibliographic-data' in pub['document-id']:
biblio_data = pub['document-id']['bibliographic-data']
title = biblio_data.get('invention-title', {}).get('value', 'No Title')
print(f" Title: {title}")
else:
print("No patent data found in response.")
else:
print(f"Error during search: {response.status_code} - {response.text}")
else:
print(f"Failed to get access token: {token_response.status_code} - {token_response.text}")
if __name__ == "__main__":
search_patents("artificial intelligence")
This example demonstrates the general flow: obtaining an access token and then making a request to a specific OPS endpoint. Developers should consult the official EPO Open Patent Services documentation for detailed information on authentication, available services (e.g., publication, family, legal status), query syntax (e.g., Common Query Language - CQL), and response structures to build more specific and robust integrations.