Skip to content

search
PRO

Google results as structured data. Unlike the other methods, search takes a query instead of a URL and requires an apiKey on every request:
const microlink = createClient({ apiKey: process.env.MICROLINK_API_KEY })

const page = await microlink.search('Lotus Elise S2')

console.log(page.results)
The resolved page carries results — the shape of each item depends on type — plus page extras such as knowledgeGraph when the vertical returns them. Every example on this page assumes the microlink client above.

A type

type routes the query to a Google surface. Each one has its own result shape:
TypeWhat you get
searchWeb results, knowledge graph, related questions, related searches (default)
newsArticles with publisher, date, and thumbnail
imagesFull-resolution image URLs with dimensions
videosVideo metadata with duration and channel
placesLocal listings with coordinates and contact info
mapsRich place data with hours, ratings, and pricing
shoppingProduct listings with parsed prices
scholarAcademic papers with citations and PDF links
patentsPatent filings with ISO 8601 dates
autocompleteQuery suggestions
Omit type and you get search. Start with the lightest surface that answers the question.
Type: 'search'
Default: 'search'
Web results with knowledge graph, related questions, and related searches. This is the default surface of search when type is omitted:
const page = await microlink.search('technical seo checklist')
Each result carries title, url, and description:
page.results[0]
// {
//   title: 'Full Technical SEO Checklist (from Start to Finish) - Semrush',
//   url: 'https://www.semrush.com/blog/technical-seo-checklist/',
//   description: 'The full technical SEO checklist covers crawling and indexing issues…'
// }

Page extras

The page can also return these top-level fields alongside results:
FieldTypeDescription
knowledgeGraphobject?Entity panel with title, type, website, image, description, descriptionSource, descriptionLink, and attributes
peopleAlsoAskarray?Related questions with question, snippet, title, and link
relatedSearchesarray?Suggested follow-up queries with query
const page = await microlink.search('apple inc')

page.knowledgeGraph.attributes
// { Headquarters: 'Cupertino, CA', Founded: 'April 1, 1976, Los Altos, CA', … }

page.relatedSearches.map(s => s.query)
// ['Apple Inc full form', 'Apple Inc address', 'Apple Inc stock']
See the web search guide for knowledge-graph and query-expansion workflows.

News

Type: 'news'
Recent articles with publisher, date, and thumbnail. Pass type: 'news' to search:
const { results } = await microlink.search('artificial intelligence', { type: 'news' })

results[0]
// {
//   title: 'Artificial Intelligence Floods Court Dockets with Home-Brewed Lawsuits',
//   url: 'https://www.nytimes.com/2026/05/25/us/politics/artificial-intelligence-courts.html',
//   description: 'For years, courts have welcomed cases brought by self-represented litigants…',
//   date: '2026-05-25T15:13:08.232Z',
//   publisher: 'The New York Times',
//   image: { url: 'https://encrypted-tbn0.gstatic.com/images?q=tbn:…' }
// }
FieldTypeDescription
titlestringArticle headline
urlstringPublisher URL
descriptionstringArticle snippet
datestringISO 8601 publication date
publisherstringSource name
image{ url }?Thumbnail image
Narrow the window with period, or the region with location:
await microlink.search('tech acquisitions', { type: 'news', period: 'week' })
await microlink.search('regulatory update', { type: 'news', location: 'de', period: 'day' })
See the news guide for monitoring patterns.

Images

Type: 'images'
Full-resolution image URLs with dimensions. Pass type: 'images' to search:
const { results } = await microlink.search('northern lights', { type: 'images' })

results[0]
// {
//   title: 'Northern lights (aurora borealis) — What they are and how to see them | Space',
//   url: 'https://www.space.com/15139-northern-lights-auroras-earth-facts-sdcmp.html',
//   creator: 'Frank Olsen',
//   image: { url: 'https://cdn.mos.cms.futurecdn.net/57jQMDN5MZLYfV8ps8HuZQ.jpg', width: 2121, height: 1193 },
//   thumbnail: { url: 'https://encrypted-tbn0.gstatic.com/images?q=tbn:…', width: 300, height: 168 }
// }
FieldTypeDescription
titlestringImage title or alt text
urlstringSource page URL
image{ url, width, height }Full-resolution image
thumbnail{ url, width, height }Smaller preview
google{ url }?Google Images viewer link
creatorstring?Image creator attribution
creditstring?Image credit or copyright
See the images guide for asset-discovery workflows.

Videos

Type: 'videos'
Video metadata with duration and channel. Pass type: 'videos' to search:
const { results } = await microlink.search('node.js streams', { type: 'videos' })

results[0]
// {
//   title: 'Learn Node.js Streams in 25 minutes',
//   channel: 'Dipesh Malvia',
//   url: 'https://www.youtube.com/watch?v=EcznOgzOdxI',
//   description: 'In this video we will understand what are streams…',
//   date: '2024-08-22T12:00:00.000Z',
//   publisher: 'YouTube',
//   duration: 1502000,
//   duration_pretty: '25m'
// }
FieldTypeDescription
titlestringVideo title
urlstringVideo page URL
descriptionstringVideo description snippet
image{ url }?Video thumbnail
video{ url }?Direct video URL if available
durationnumber?Duration in milliseconds
duration_prettystring?Human-readable duration ('25m', '1h')
publisherstring?Platform name
channelstring?Channel or creator name
datestring?ISO 8601 publish date
See the videos guide for tutorial-discovery workflows.

Places

Type: 'places'
Local listings with coordinates and contact info. Pass type: 'places' to search:
const { results } = await microlink.search('coworking spaces barcelona', { type: 'places' })

results[0]
// {
//   title: 'Betahaus | Coworking Barcelona',
//   address: 'Carrer de Vilafranca, 7, 08024 Barcelona, Spain',
//   latitude: 41.406982,
//   longitude: 2.1567652,
//   rating: 4.8,
//   ratingCount: 417,
//   category: 'Coworking space',
//   phone: { number: '+34 655 62 71 49' },
//   url: 'https://www.betahaus.es/…',
//   cid: '15533147541347981884'
// }
FieldTypeDescription
titlestringBusiness name
addressstringStreet address
latitudenumberGeographic latitude
longitudenumberGeographic longitude
ratingnumber?Average rating
ratingCountnumber?Number of reviews
categorystring?Business category
phone{ number }?Phone number
urlstring?Website URL
cidstringGoogle CID identifier
Choose places for simple listings. Choose maps when you need opening hours, price levels, or place IDs.
See the places guide for local lookup workflows.

Maps

Type: 'maps'
Richer place data than places — opening hours, price levels, place types, and thumbnails. Pass type: 'maps' to search:
const { results } = await microlink.search('restaurants madrid', { type: 'maps' })

results[0]
// {
//   title: 'Rosi La Loca',
//   address: 'C. de Cádiz, 4, Centro, 28012 Madrid, Spain',
//   latitude: 40.4158037,
//   longitude: -3.7029837,
//   rating: 4.7,
//   ratingCount: 25007,
//   type: 'Restaurant',
//   types: ['Restaurant', 'Lounge bar'],
//   price: { level: '€20–40' },
//   phone: { number: '+34 915 32 66 81' },
//   opening: { hours: { Monday: '12:30 PM–1:30 AM', … } },
//   url: 'http://www.rosilaloca.com/',
//   place: { id: 'ChIJgwIBTHkoQg0RD1lm5kc2tWI' },
//   cid: '7112650868937611535'
// }
FieldTypeDescription
titlestringPlace name
addressstringFull address
latitudenumberGeographic latitude
longitudenumberGeographic longitude
ratingnumber?Average rating
ratingCountnumber?Number of reviews
price{ level }?Price level indicator
typestring?Primary place type
typesstring[]?All place types
urlstring?Website URL
phone{ number }?Phone number
descriptionstring?Place description
opening{ hours }?Opening hours by day
thumbnail{ url }?Place thumbnail image
cidstringGoogle CID identifier
fidstring?Google FID identifier
place{ id }?Google Place ID
See the maps guide for entity and local lookup workflows.

Shopping

Type: 'shopping'
Product listings with parsed prices and structured ratings. Pass type: 'shopping' to search:
const { results } = await microlink.search('macbook pro', { type: 'shopping' })

results[0]
// {
//   title: '14-inch MacBook Pro Apple M5 chip CPU and GPU',
//   url: 'https://www.google.com/search?ibp=oshop&q=macbook+pro&prds=…',
//   publisher: 'Apple',
//   price: { symbol: '$', amount: 1699 },
//   rating: { score: 4.8, total: 5, reviews: 2400 },
//   id: '1293272249390991376'
// }
FieldTypeDescription
titlestringProduct name
urlstringMerchant URL
publisherstringMerchant or retailer name
price{ symbol, amount }Parsed price with currency symbol and numeric amount
image{ url }?Product image
rating{ score, total, reviews? }?Rating with score, total (scale), and review count
idstring?Product identifier
price.amount is already a number, so you can filter and average without parsing currency strings:
const affordable = results.filter(r => r.price.amount < 500)
See the shopping guide for price-monitoring workflows.

Scholar

Type: 'scholar'
Academic papers with citation counts and PDF links. Pass type: 'scholar' to search:
const { results } = await microlink.search('attention is all you need', { type: 'scholar' })

results[0]
// {
//   title: 'Attention is all you need',
//   url: 'https://proceedings.neurips.cc/paper/2017/hash/3f5ee243547dee91fbd053c1c4a845aa-Abstract.html',
//   description: '…to attend to all positions in the decoder…',
//   publisher: 'A Vaswani, N Shazeer, N Parmar… - Advances in neural …, 2017',
//   year: 2017,
//   citations: 249883,
//   pdf: { url: 'https://proceedings.neurips.cc/paper/2017/file/3f5ee243547dee91fbd053c1c4a845aa-Paper.pdf' },
//   id: '5Gohgn6QFikJ'
// }
FieldTypeDescription
titlestringPaper title
urlstringPaper or abstract URL
descriptionstringPaper snippet
publisherstringAuthors, journal, and year in publisher line format
yearnumberPublication year
citationsnumberCitation count
pdf{ url }?Direct PDF link when available
idstringGoogle Scholar ID
Sort or filter by citations to surface the most impactful papers. Use pdf.url when the workflow needs the full document.
See the scholar guide for research and citation workflows.

Patents

Type: 'patents'
Patent filings with ISO 8601 dates, figures, and PDF links. Pass type: 'patents' to search:
const { results } = await microlink.search('compiler optimization', { type: 'patents' })

results[0]
// {
//   title: 'Prefetching associated with predicated load instructions',
//   inventor: 'Douglas C. Burger',
//   assignee: 'Microsoft Technology Licensing, Llc',
//   language: 'en',
//   url: 'https://patents.google.com/patent/US20170083338A1/en',
//   pdf: { url: 'https://patentimages.storage.googleapis.com/…/US20170083338A1.pdf' },
//   priority: { date: '2015-09-19T00:00:00.000Z' },
//   filing: { date: '2016-03-04T00:00:00.000Z' },
//   publication: { date: '2017-03-23T00:00:00.000Z', number: 'US20170083338A1' },
//   figures: [{ image: { url: 'https://…' }, thumbnail: { url: 'https://…' } }]
// }
FieldTypeDescription
titlestringPatent title
descriptionstringPatent abstract or summary
urlstringGoogle Patents URL
inventorstringInventor name
assigneestringAssignee organization
languagestringPatent language code
priority{ date }Priority date (ISO 8601)
filing{ date }Filing date (ISO 8601)
grant{ date }?Grant date (ISO 8601)
publication{ date, number }Publication date and number
pdf{ url }?Direct PDF link
thumbnail{ url }?Patent figure thumbnail
figuresarray?Patent figures with image and thumbnail objects
idstring?Patent identifier
See the patents guide for prior-art workflows.

Autocomplete

Type: 'autocomplete'
Query suggestions as the user types. Pass type: 'autocomplete' to search:
const { results } = await microlink.search('javascript debounce', { type: 'autocomplete' })

results.map(({ value }) => value)
// [
//   'javascript debounce',
//   'javascript debounce function',
//   'javascript debounce vs throttle',
//   …
// ]
FieldTypeDescription
valuestringSuggested query string
Lightweight enough to run before a heavier surface. Use it to discover what people are actually searching for, then route those expanded queries to search, news, or scholar.
See the autocomplete guide for query-expansion workflows.

Options

  • type <string> — the search vertical. One of the values above (default: 'search').
  • limit <number> — the maximum number of results per page.
  • location <string> — a two-letter country code geo-targeting the results, e.g. 'us' or 'es'.
  • period <string> — restricts results by recency: 'hour', 'day', 'week', 'month', or 'year'.
  • page <number> — the results page to fetch (default: 1).
  • html <boolean> — eagerly fetches the HTML of the results page and of every result (default: false).
  • markdown <boolean> — eagerly fetches the Markdown of the results page and of every result (default: false).
const { results } = await microlink.search('open source llm', {
  type: 'news',
  period: 'week',
  location: 'us',
  limit: 10
})
search issues its requests through its own transport, so the shared options for browser and page control don't apply; timeout does.

Pagination

Every page exposes next(), which resolves to the following page of the same query with the same options:
const first = await microlink.search('node.js frameworks')
const second = await first.next()
Or jump straight to a page with the page option:
const { results } = await microlink.search('node.js frameworks', { page: 3 })

Content expansion

Results that carry a url can expand themselves lazily: result.markdown() and result.html() fetch the linked page through Microlink and resolve to its content, so an agent can read only the results worth reading. Autocomplete results expose only value and have nothing to expand. The page itself exposes the same markdown() and html() for the results page:
const page = await microlink.search('web performance budgets', { limit: 3 })

for (const result of page.results) {
  const markdown = await result.markdown()
  console.log(result.title, markdown.length)
}
Pass markdown: true or html: true to fetch everything up front instead; the functions then resolve immediately with the prefetched content. Those options apply to URL-backed results only.
See the search guide for workflow-first pages per surface and integration patterns for agents, RAG, and monitoring.