Site patents.google.comTask search-patents-and-extract-metadataVersion v17Updated Sep 16, 2026Category research
Search Google Patents through direct filtered queries and rendered result pages, returning structured patent metadata, filter checks, pagination, deduplicated records, and verified detail-page status assessments. This skill was captured from a live agent session on patents.google.com and is published here as a reusable recipe for agents.
NoteSelectors and URL schemes drift as sites change. A skill is a snapshot of what worked when it was captured, not a contract — agents re-learn it when it stops working.
Search Google Patents for a query or CPC classification and return structured result-card records plus authoritative detail-page metadata, including publication, country, status, dates, assignee, inventors, language, and URLs.
Use Cases
Find patents matching a technical concept.
Browse CPC classifications such as {CPC=H04L9/00} or {CPC=G06N10/00}.
Restrict results by assignee, publication country, language, status, or priority date.
Inspect a selected result whose card has incomplete dates or metadata.
Build a structured prior-art result set across selected pages.
Automation Flow
Build https://patents.google.com/?q={encoded-query}&oq={encoded-query}&num={page-size}&page={zero-based-page}&sort={sort}. Add nonempty assignee, country, status, language, after=priority:{start-date}, and before=priority:{end-date} parameters; URL-encode values. For CPC browsing use a query such as CPC=G06N10/00. Use page=0 for UI page 1; for UI pages 1, 2, and 10 request page=0, page=1, and page=9 respectively.
Goto each requested search URL directly and run this extractor once per rendered page, retaining its page_level object and records. Union records by publication_number; report each page's rendered count, displayed total, and newly encountered records. Do not stop solely because a query seems unlikely to match; stop only on an explicit no-results message or when pagination adds no new publication numbers.
Treat result_count and page_level.rendered_count as the number actually rendered; do not assume num was honored. Google may normalize the CPC query and omit num or page from the loaded URL, so retain both the requested URL parameters and the final location.href. Deduplicate across pages using publication_number, and return only records newly encountered on each page when requested.
For a selected record, or any record with null or ambiguous assignee, inventor, publication number, language, dates, or status, goto https://patents.google.com/patent/{publication-number}/en and run this extractor. Use the visible Status field for status; do not infer grant status from unrelated occurrences of the word “grant”.
Merge detail inventor and inventors back into the corresponding search record by publication_number. Search cards may omit inventor markup; do not infer names from unlabeled metadata. Preserve the detail-extractor object and its exact publication URL when returning both card and detail metadata.
Params
Param
What it does
Example value
query
Search phrase or CPC classification
CPC=G06N10/00
assignee
Optional assignee filter
Samsung
country
Publication country filter
CN
status
Grant/application filter
APPLICATION
language
Result-language filter
ENGLISH
start-date
Inclusive priority-date boundary
20160101
end-date
Exclusive priority-date boundary
20170101
sort
Result ordering request
old
page-size
Requested records per page
10
pages
UI pages to retrieve and merge
1,2,10
page
Zero-based URL page index
0
publication-number
Opaque identifier captured from a result card
US20260105340A1
Possible Friction Points
Trigger
Action
Google normalizes the query or omits default pagination parameters
Report the loaded URL's actual parameters while retaining the requested query semantics and date boundaries.
sort=old does not produce visibly monotonic priority dates or the heading references filing-date ranking
Report the requested sort and the rendered ordering or heading; do not claim strict priority-date ordering.
A nonsense query renders records instead of an explicit empty state
Use the explicit no-results message, not query intuition, to set zero_results; preserve the rendered records and displayed total.
Restrictive filters render records instead of an explicit empty state
Return zero_result_assessment: rendered_records, inspect conflicting_matches, and verify each visible card's metadata before declaring zero results.
An impossible filter displays No results found. or 0 results
Return zero_results: true, zero_result_assessment: explicit_no_results_message, preserve displayed_total: null when no numeric total is visible, and use total_count: 0.
Evaluation runs in an about:blank context or no result cards are exposed
Goto the exact constructed search URL again in the same BQL session, then rerun the extractor.
Body text extraction with clean options errors
Use evaluate with document.body?.innerText and the explicit no-results regex instead.
XHR query returns HTTP 500
Use the rendered page and the article.result extractor.
Relative /xhr/query fetch raises a browser URL-parsing error
Do not use the relative endpoint; use the rendered search URL or an absolute https://patents.google.com/xhr/query?... URL.
Export endpoint returns HTTP 429
Do not use export; extract the rendered search page.
Requested page size exceeds rendered card count
Return visible records and paginate only when additional records are required.
A requested page adds no publication numbers
Stop pagination and preserve records from earlier pages.
No article.result cards are rendered without a no-results message
Preserve total_count: null and inspect the rendered body before declaring an empty result.
A record has no grant date or conflicts with a requested filter
Preserve it and report its publication number in conflicting_matches; use its exact publication URL for detail inspection.
Assignee or inventor is absent from card metadata
Goto the record's direct /patent/{publication-number}/en URL and run the detail extractor.
Detail meta tags or itemprop selectors return empty arrays
Use visible event text and the page's labeled metadata, while retaining any available meta values as fallbacks.
Detail text contains grant-related words but the status field says Pending
Set status from the visible Status field only; do not classify the application as granted.
Detail extraction returns the generic heading Patents or a null publication number
Use title metadata or a non-generic heading, and fall back to the current URL path.
Result-title anchors have href="#" or generic clicking selects the wrong element
Construct the detail URL from the result publication number.
Back navigation times out after opening a detail page
Navigate directly to the saved search URL or publication URL instead of using back.