Skip to content
Search API · Use case

Run prior art searches with a Google Patents API

A Google Patents API makes a prior art search repeatable: each query returns filings with inventor, assignee, priority, filing and grant dates, the publication number and a PDF link. Patent attorneys screen for novelty, R&D teams check what is already filed before they build, and competitive intelligence watches what rivals publish. The Search API returns those filings as JSON with ISO 8601 dates.

The problem

Prior art hides across thousands of filings and several kinds of date

A prior art search is one question asked many ways: synonyms, component names, the problem the invention solves. Each phrasing surfaces different filings, and the useful signal sits in the metadata: who invented it, which company holds it and which date came first.

Reading patent result pages by hand means copying numbers and dates into a spreadsheet, per query, per run. Scraping them means telling priority from filing from publication dates, handling missing grants, and rebuilding the parser whenever the markup changes.

type: patents returns each filing with title, abstract, url, inventor, assignee, language, the priority, filing and publication dates in ISO 8601, a grant date when there is one, the publication number, a PDF link and figure thumbnails. result.markdown() fetches the full patent page when a filing deserves a close read.

How it works

How to search prior art with the Google Patents API

Search the concept several ways, merge the filings by publication number, then read the closest ones. The patents guide lists every field.

1 · Search one phrasing of the concept
import createClient from 'microlink.io'

const microlink = createClient({
  apiKey: process.env.MICROLINK_API_KEY
})

const { results } = await microlink.search('predicated load prefetching', {
  type: 'patents'
})

const filings = results.map(patent => ({
  number: patent.publication.number,
  title: patent.title,
  assignee: patent.assignee,
  inventor: patent.inventor,
  priority: patent.priority.date,
  granted: patent.grant?.date ?? null,
  pdf: patent.pdf?.url
}))

priority, filing and publication are always present; grant and pdf are optional. publication.number identifies a filing across queries.

2 · Merge several phrasings, earliest first
import createClient from 'microlink.io'

const microlink = createClient({
  apiKey: process.env.MICROLINK_API_KEY
})

const phrasings = [
  'predicated load prefetching',
  'prefetch on conditional load instruction',
  'speculative memory prefetch predicate'
]

const pages = await Promise.all(
  phrasings.map(query => microlink.search(query, { type: 'patents' }))
)

const byNumber = new Map()
for (const { results } of pages) {
  for (const patent of results) byNumber.set(patent.publication.number, patent)
}

const timeline = Array.from(byNumber.values()).sort(
  (a, b) => Date.parse(a.priority.date) - Date.parse(b.priority.date)
)

One request per phrasing. Sorting by priority date orders the merged filings by their earliest claimed date, the order a novelty review reads them in.

3 · Read the closest filings
import createClient from 'microlink.io'

const microlink = createClient({
  apiKey: process.env.MICROLINK_API_KEY
})

const closest = timeline.slice(0, 3)

const fullText = await Promise.all(
  closest.map(async patent => ({
    number: patent.publication.number,
    assignee: patent.assignee,
    markdown: await patent.markdown()
  }))
)

markdown() fetches the Google Patents page of each filing as Markdown, one request each, ready for a reviewer or a model to read side by side.

Parameters used
  • type 'patents' returns inventor, assignee, language, priority, filing, grant and publication dates, pdf, figures and id.
  • page Later pages of filings for broad concepts, one request each.
  • limit Maximum number of filings per page.
  • markdown() Reads the full patent page as Markdown, one request per filing.

For patent monitoring, run the same queries on your own schedule and keep the filings whose publication.date is newer than your last run. The API does not store watchlists or send notifications. The content expansion guide explains when HTML fits better than Markdown for a patent page.

Why it works

Why structured patent results speed up prior art review

Prior art review is triage over dates and names. Getting those as fields instead of text moves the triage into code.

01 · Dates that sort
Priority, filing, publication and grant in ISO 8601.
Every date is an ISO 8601 string under its own key, so the earliest priority date, the gap between filing and grant, and the filings published this month are one comparison each.

Researching papers rather than filings? Collect papers and citation counts from Scholar with the same client.

02 · Who holds what
Assignee and inventor on every filing.
Group by assignee to see which companies are active in a space, or by inventor to follow a team across employers. Each filing carries a language code, so foreign-language filings can go to translation first.

For competitor activity beyond filings, monitor their press coverage in Google News by country.

03 · Full text on demand
Read only the filings that matter.
One search returns abstracts and metadata for a page of filings in one request. Expanding a filing with markdown() or downloading pdf.url is a separate step you take only for the close ones.

When not to: this searches what Google Patents ranks for a query. It is not a legal opinion and not an exhaustive register search, so a formal patentability or freedom to operate opinion still needs a patent professional and the official registers.

FAQ

How do I search prior art with a Google Patents API?

Call microlink.search with a description of the invention and type: 'patents'. Run several phrasings, merge the filings by publication number and sort by priority date to see the earliest claimed dates first.

Which dates does the patent search API return?

priority.date, filing.date and publication.date on every filing, all ISO 8601, plus grant.date when the filing lists a grant. publication.number carries the publication number, such as US20170083338A1.

Can I set up patent monitoring for a technology or a competitor?

Yes, as your own loop: run queries that describe the technology on a schedule, filter by assignee in code, and keep filings with a publication.date newer than your previous run. The API has no watchlists or alerts.

How much does patent search with the Search API cost?

Each results page is one request, and each filing expanded with markdown() is one more. Search has no free tier: it is paid from the first request, and Pro plans start at €39/month for 46,000 requests.

Is this an official Google Patents API?

No. Microlink Search is an independent product that queries public Google surfaces, Google Patents included. It is not affiliated with or endorsed by Google, and Google is a trademark of Google LLC.
Related use cases

Solve the next problem with the same API

Papers and citation counts from Google Scholar

Collect papers with year, citation count and PDF link from Google Scholar, merge queries by ID and read the shortlist as Markdown.

Brand and media monitoring from Google News

Query Google News by brand, country and time window and get headline, publisher and ISO 8601 date for every article.

Google results page as Markdown or HTML

Start from a query, not a URL: get the structured results plus the Google results page itself as Markdown or HTML.

Live search to ground LLM answers

Retrieve fresh results for a question, read the best sources as Markdown and pass them to the model with citations.

PDF and office documents to Markdown

Convert PDF, DOCX, XLSX and PPTX URLs to readable Markdown with the same request you use for web pages.

Archive web articles as PDF

Keep readable, searchable PDFs of articles and docs, printed with their print styles and trimmed to the pages you need.

Ready to search prior art?

Patent filings with inventors, assignees and ISO 8601 dates as JSON. Get a Pro key and run your first prior art search today.