How to use it: 3 steps
- Make a free Apify accountApify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us.
- Paste your input and press StartNo code needed: you fill in a form (the input). It already has a working example. For example:
US9014905B1in Publication numbers. Each start is one run. - Download the resultsWhen the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.
This tool is an Apify Actor: a small program that runs on Apify. You can also run it on a schedule, for example every Monday. New to it? Read how it works, step by step and the 8 words you need first.
What it does
Fetch Google patent details for publication numbers you already know. Get a title, dates, an abstract and source names. Choose full detail to add claims, description, citations and family links from the same public page.
Who uses it
Patent analysts
Turn a known patent list into a table.
IP lawyers and agents
Read claims side by side.
R&D teams
Keep notes on rival patents in one sheet.
Price
Pay per event: you pay for each result the tool saves, plus a small start fee for each run. The price includes Apify platform costs. Apify bills you, not us. Prices below are for the Apify free plan.
| What you pay for | Price | When |
|---|---|---|
| Saved patent row | $0.00199 | One verified patent row saved to the Dataset. |
| Start fee | $0.0007 | Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more. |
Examples
- One patent: about $0.0027.
- 1,000 patents: about $1.99.
- Every day 100 patents, for 30 days: about $5.99 a month.
Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed. That is enough for about 2,500 patents.
Prices checked on 24 October 2026. See the current price on Apify.
Questions
Can I search patents by keyword?
No. You need known publication numbers or exact patent links.
Do I need a Google account?
No. It reads public patent pages.
Does full detail cost more?
No. Both modes cost the same per saved patent.
Will I get every family member?
Only the ones shown on that patent page.
Does it search Google Patents?
No. Add known publication numbers or exact patent detail URLs. Keyword queries, application-number lookup and search filters are not supported.
Do I need Google credentials?
No. Only public detail pages are read. The Actor does not log in or solve access challenges.
Is full text copied exactly?
The Actor extracts plain page text and joins whitespace. It preserves Unicode and source content within the stated caps. HTML tags are removed; claim arrays keep page order. It does not fetch PDFs, translate text itself or generate a summary.
Can I use legal status as a decision?
Treat it as a source field. It is not legal advice, a validity judgment, an expiration guarantee or complete prior-art analysis.
Details
Step by step on Apify
- Open Input. A new form suggests
US9014905B1inpublicationNumbers. - Keep this number for a small first run. The form suggestion is not an API default.
- Click Start.
- Open Dataset and check
publicationNumber,titleandcanonicalUrl. - Open RUN_SUMMARY to check every input outcome.
Use cases
| Your task | Input | Key fields | Next step |
|---|---|---|---|
| Build a table from a known patent list | publicationNumbers | title, dates, assignees | Export the Dataset |
| Read claims and description | detailLevel: "full" | claims, description, truncation | Check the source page and text limits |
| Compare source family links | detailLevel: "full" | family, relatedApplications | Open each source link yourself |
Tips for better results
- Use publication numbers like US9014905B1 or EP1000000A1.
- One run saves up to 100 patents.
- Check the truncation field. Long text can be cut.
Recent updates
Update · 10 October 2026
- Read EP numbered claims and WO XML claims alongside the US layout.
- Keep HTTP deadlines active while reading bodies; distinguish body transport failures and non-missing HTTP errors.
- Add a useful new-form prefill and correct the canonical URL schema pattern without changing API defaults.
Update · 19 September 2026
- Reconciled the public Actor, Store copy, icon, price,
latestbuild and publication boundary independently after manual Publish. - Repaired the stale public search-plus-details metadata to the active details-only contract and verified it through a fresh public Store read-back.
- Published build
Kjjc8Ih4oaKypwemX/0.3.16from sourcec0a5de1and passed the bounded public default canary7folGVJ7jbumz0Q3gwith one savedUS9014905B1row and one post-write event.
- Reconciled the public Actor, Store copy, icon, price,
Update
- Rejected the active search contract after the five-control reliability gate produced 0/5 usable runs with no Dataset rows or
RUN_SUMMARYrecords. - Limited active inputs to publication numbers and canonical Google Patents detail URLs, with a direct-detail cap of 100 saved rows.
- Kept the search/recovery implementation and deterministic tests dormant for provenance; the production entrypoint rejects search controls and does not create a search transport for valid detail-only input.
- Rejected the active search contract after the five-control reliability gate produced 0/5 usable runs with no Dataset rows or
For developers
Sample result
One result from a real test run, in JSON. Real values change from run to run. In Excel or CSV each field is a column.
{
"schemaVersion": "1",
"status": "PATENT_SAVED",
"publicationNumber": "US9014905B1",
"canonicalUrl": "https://patents.google.com/patent/US9014905B1/en",
"applicationNumber": "US14/166,502",
"title": "Cyclist hand signal detection by an autonomous vehicle",
"dates": {
"priority": "2014-01-28",
"filing": "2014-01-28",
"publication": "2015-04-21",
"grant": null
},
"family": {
"simpleFamilyId": "52822648",
"members": [{
"publicationNumber": "US9014905B1",
"countryCode": "US",
"kindCode": "B1",
"title": "Cyclist hand signal detection by an autonomous vehicle",
"date": "2014-01-28",
"sourceUrl": "https://patents.google.com/patent/US9014905B1/en"
}]
},
"detailLevel": "full",
"truncation": [],
"search": null
}Use it from code
Actor ID: cliqtomedia/google-patents-scraper. You need your Apify API token from Apify Console → Settings → API & Integrations.
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("cliqtomedia/google-patents-scraper").call(run_input={
"publicationNumbers": [
"US9014905B1"
],
"language": "en"
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~google-patents-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"publicationNumbers": ["US9014905B1"], "language": "en"}'# pip install langchain-apify
# set APIFY_TOKEN in your environment
from langchain_apify import ApifyActorsTool
tool = ApifyActorsTool("cliqtomedia/google-patents-scraper")
result = tool.invoke({"run_input": {"publicationNumbers": ["US9014905B1"], "language": "en"}})
print(result)The cURL call waits for the results, up to 300 seconds. For longer runs, start a run (/runs) and get the results with a webhook or by checking the run. Apify API docs. LlamaIndex, MCP for AI agents and the JavaScript client: AI agents & MCP.
Input settings (6)
The main fields of the input form. With the API you send them as JSON.
| Setting | Name in the API | Type | Example value |
|---|---|---|---|
| Canonical patent detail URLs | patentUrls | array | |
| Publication numbers | publicationNumbers | array | ["US9014905B1"] |
| Detail page language | language | string | "en" |
| Detail level | detailLevel | string | "metadata" |
| Maximum unique publications | maxItems | integer | 10 |
| Include source PDF links | includePdfLink | boolean | false |