Espacenet Patents Scraper: EPO OPS API for 130M+ Patents
Pricing
from $0.00005 / actor start
Espacenet Patents Scraper: EPO OPS API for 130M+ Patents
Search 130M+ patents from the official EPO Espacenet (OPS API): bibliographic data, abstracts, applicants, inventors, IPC/CPC classifications, full family graph, legal status, citations. EP, WO, US, JP, CN, DE, FR, GB. For IP lawyers, R&D, M&A diligence. $15/1K.
Pricing
from $0.00005 / actor start
Rating
0.0
(0)
Developer
Walid
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Espacenet Patents Scraper — EPO OPS API for 130M+ Patents
Espacenet Patents Scraper lets you search and extract 130M+ patents from the official EPO Espacenet database via the European Patent Office Open Patent Services (OPS) API. Bibliographic data, abstracts, applicants, inventors, IPC/CPC classifications, full family graph, priority claims, citations, and legal status — for EP, WO, US, JP, CN, DE, FR, GB and 90+ jurisdictions.
Built on the official EPO OPS v3.2 API. Stable, authoritative, no Cloudflare scraping. Free OPS tier (4M req/month) supplied by the user.
⭐ Found this useful? Click the Bookmark button at the top of this page — it helps the scraper stay visible on the Apify Store. Takes 1 click. No signup beyond your existing Apify account.
What can Espacenet Patents Scraper do?
- 🔬 Search 130M+ patents — by CQL query (title, abstract, full-text)
- 🏢 Filter by applicant / assignee — find every patent owned by a company (Apple, Samsung, BASF, Anthropic)
- 👨🔬 Filter by inventor — track an inventor's portfolio across jurisdictions
- 🏷️ Filter by IPC / CPC class — taxonomy-driven search (G06N3/08 = neural networks, A61K = pharma)
- 🌍 Patent family expansion — every sibling publication in EP / WO / US / JP / CN / DE / FR / GB
- 📚 Lookup by publication number — batch resolve EP / WO / US / JP IDs to full biblio
- 📄 Abstract + full-text (EP / WO) — get the abstract automatically, full description on demand
- 🆔 Espacenet URLs — direct deep-links to every record on worldwide.espacenet.com
- ⚡ Free OPS tier — 4,000,000 requests/month per client_id, registered at developers.epo.org
What data can you extract from each patent?
| Field | Description |
|---|---|
publication_number | EPODOC publication number (e.g. EP3000000A1, WO2020123456) |
publication_date | Publication date (YYYY-MM-DD) |
application_number | Application reference (e.g. EP20150123456) |
application_date | Application filing date |
title | Invention title (English when available) |
abstract | Patent abstract (English when available) |
applicants | Companies / assignees who hold the patent |
inventors | Named inventors |
ipc_classifications | International Patent Classification codes (e.g. H04L9/32) |
cpc_classifications | Cooperative Patent Classification codes (more granular than IPC) |
priority_claims | Earliest priority documents + dates (priority chain) |
family_id | DOCDB family ID — groups equivalent patents across jurisdictions |
family_members | Sibling publications (EP + US + JP + CN…) when includeFamilyGraph=true |
country_code | Publication country (2-letter ISO) |
kind_code | Document kind (A1, A2, B1, B2…) |
espacenet_url | Deep link to the record on worldwide.espacenet.com |
language | Title / abstract language |
scraped_at | UTC timestamp of extraction |
How to use Espacenet Patents Scraper
- Register a free EPO OPS account — takes 2 minutes, no credit card. You get 4,000,000 requests/month free.
- Create an app in the EPO portal → copy your Consumer Key + Consumer Secret.
- Open Espacenet Patents Scraper on Apify Store.
- Paste your OPS keys into
epoClientId+epoClientSecret(or set them as actor env vars). - Pick a mode:
search(CQL query),lookup(publication numbers), orfamily(family graph). - Click Start — patents appear within seconds. Download as JSON, CSV, or Excel.
How much does it cost to scrape patents?
$0.015 per patent record ($15 per 1,000 patents) — mid-range B2B pricing for IP-lawyer-grade data.
| Run size | Patents | Apify cost | Time |
|---|---|---|---|
| Quick test | 10 | ~$0.15 | ~15s |
| Standard | 100 | ~$1.50 | ~1min |
| Deep dive | 500 | ~$7.50 | ~5min |
| Massive | 2,000 | ~$30 | ~20min |
Plus a flat $0.00005 per actor start. The EPO OPS API itself is free at the 4M req/month tier — you supply the credentials.
Input parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
mode | string | ❌ | search | search, lookup, or family |
query | string | ❌ | — | CQL query (e.g. ti=widget AND in=Smith) |
publicationNumbers | array | ❌ | [] | EPODOC numbers for lookup / family modes |
applicant | string | ❌ | — | Filter by company name |
inventor | string | ❌ | — | Filter by inventor last name |
ipcClass | string | ❌ | — | IPC code (e.g. H04L) |
cpcClass | string | ❌ | — | CPC code (e.g. G06N3/08) |
publicationDateFrom | string | ❌ | — | YYYYMMDD lower bound |
publicationDateTo | string | ❌ | — | YYYYMMDD upper bound |
country | string | ❌ | — | 2-letter publication country |
includeFamilyGraph | boolean | ❌ | false | Fetch family members per result |
includeFullText | boolean | ❌ | false | EP / WO full description text |
maxResults | integer | ❌ | 25 | Max records (1–2000) |
epoClientId | string | ✅* | — | OPS consumer key |
epoClientSecret | string | ✅* | — | OPS consumer secret |
proxyConfig | object | ❌ | none | Apify proxy (rarely needed) |
*Either the input fields or the EPO_CLIENT_ID / EPO_CLIENT_SECRET env vars are required.
Output example
{"publication_number": "EP3000000A1","publication_date": "2016-03-30","application_number": "EP20140187456","application_date": "2014-10-02","title": "Method and apparatus for distributed authentication","abstract": "A distributed authentication system uses cryptographic tokens to enable secure session management across heterogeneous networks…","applicants": ["EXAMPLE TECH GMBH", "PARTNER CORP"],"inventors": ["MULLER Hans", "TANAKA Yuki"],"ipc_classifications": ["H04L9/32", "G06F21/31"],"cpc_classifications": ["H04L9/3263", "G06F21/335"],"priority_claims": [{"number": "EP20140187456", "date": "2014-10-02"}],"family_id": "54321098","family_members": [{"publication_number": "US2016099876A1", "country": "US", "date": "2016-04-07"},{"publication_number": "JP2016072123A", "country": "JP", "date": "2016-05-09"},{"publication_number": "CN105450123A", "country": "CN", "date": "2016-03-30"}],"country_code": "EP","kind_code": "A1","espacenet_url": "https://worldwide.espacenet.com/patent/search/publication/EP3000000A1","language": "en","scraped_at": "2026-06-12T08:30:00Z"}
Use cases
- IP-lawyer prior-art search — find every relevant patent across EP / WO / US / JP for a freedom-to-operate study, with full family graph in one run.
- M&A diligence — audit a target company's entire patent portfolio by
applicant, including legal status and citation count. - Competitor R&D monitoring — track quarterly filings by
cpc=G06N3/08(neural networks) plusapplicant=OpenAIfor a near-live feed of AI patent activity. - Pharma / biotech mining — query
cpc=A61K(medicinal preparations) and filter by date range to surface new drug-formulation patents. - Academic prior-art — build a CSV of patents in your research field for systematic literature reviews, then enrich with abstracts and IPC tags.
Use Espacenet Patents Scraper via API
Python:
import requestsrun = requests.post("https://api.apify.com/v2/acts/dltik~espacenet-patents-scraper/runs",headers={"Authorization": "Bearer YOUR_APIFY_TOKEN"},json={"mode": "search","query": "machine learning","applicant": "Anthropic","publicationDateFrom": "20230101","maxResults": 100,"includeFamilyGraph": True,"epoClientId": "YOUR_EPO_CONSUMER_KEY","epoClientSecret": "YOUR_EPO_CONSUMER_SECRET"}).json()print(f"Run started: {run['data']['id']}")
curl:
curl -X POST "https://api.apify.com/v2/acts/dltik~espacenet-patents-scraper/runs" \-H "Authorization: Bearer YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"mode": "lookup","publicationNumbers": ["EP3000000A1", "WO2020123456"],"epoClientId": "YOUR_EPO_CONSUMER_KEY","epoClientSecret": "YOUR_EPO_CONSUMER_SECRET"}'
FAQ
Do I need a paid EPO OPS subscription? No. The EPO offers a free tier of 4,000,000 requests/month per client_id — more than enough for most workflows. Register at https://developers.epo.org/user/register and create an app to get your Consumer Key + Secret.
Why do I need to supply my own OPS credentials? The OPS quota is per-client_id. If we used a shared key, every user would compete for the same 4M monthly budget. With your own key, your runs are isolated and free up to 4M req/mo — and we never see your patent search history.
What's the difference between IPC and CPC? IPC (International Patent Classification) is the WIPO standard — coarser, ~70K codes. CPC (Cooperative Patent Classification) is a joint EPO + USPTO extension — finer, ~250K codes, used by EP and US examiners. We return both when available.
Why is full_text only for EP / WO patents?
The EPO OPS API only exposes full description + claims text for EP (European Patent Office) and WO (PCT / WIPO) publications. For US / JP / CN / etc., you get biblio + abstract via OPS — for full text, you'd need USPTO PEDS or J-PlatPat (different actors).
What's a patent family?
A patent family is the set of publications worldwide that share the same priority claim — i.e. the same invention filed in multiple jurisdictions. Set includeFamilyGraph=true to get every sibling publication in one record, which is essential for global FTO and licensing.
I'm hitting OPS 403 "Fair Use" errors. You've exhausted your monthly 4M-req quota on the free tier, or you're hitting the per-minute throttle (~30 req/min). Wait, or upgrade your OPS plan at developers.epo.org. The actor surfaces this as a warning record, not a crash.
I need help or a custom solution. Open an issue on the Issues tab or contact us through Apify.
Connect with Make, Zapier & n8n
This actor integrates with any automation platform via the Apify API.
Make (Integromat)
- Add an Apify module in your Make scenario
- Select Run Actor and choose this actor
- Configure the input (paste your JSON)
- Add a Get Dataset Items module to retrieve results
- Connect to Google Sheets, Airtable, Slack, or any other app
Zapier
- Use the Apify integration on Zapier
- Set trigger: Actor Run Finished
- Action: Get Dataset Items
- Send results to your CRM, IP-management tool, or spreadsheet
n8n
- Add an HTTP Request node to call the Apify API
- POST to
https://api.apify.com/v2/acts/dltik~espacenet-patents-scraper/runs - Wait for completion, then fetch dataset items
- Route results to any n8n node
Webhooks
run = client.actor("dltik/espacenet-patents-scraper").call(run_input={...},webhooks=[{"eventTypes": ["ACTOR.RUN.SUCCEEDED"],"requestUrl": "https://your-webhook-url.com"}])
⭐ Found this Espacenet Patents Scraper useful? Bookmark it — Apify ranks actors by bookmarks, so it's the strongest single signal for Store visibility. One click = directly helps this actor stay surfaced.
Other scrapers by dltik
| Actor | What it does | Price |
|---|---|---|
| EUR-Lex Scraper | Search EU laws, regulations, directives (CELEX) | $8/1K |
| TED Europa Scraper | EU public-procurement tenders (TED) | $5/1K |
| Pappers / Sirene Scraper | 26M French companies (SIREN/SIRET) | $5/1K |
| BODACC FR Scraper | 4.5M French court announcements | $2/1K |
| SEC Edgar MCP Server | US public-company filings for AI agents | $10/1K |