npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@microlink/google

v0.1.0

Published

Structured Google data from 10 verticals through Microlink API

Readme

@microlink/google

Last version Coverage Status NPM Status

Turn Google into a structured API. Query Search, News, Images, Videos, Places, Maps, Shopping, Scholar, Patents, and Autocomplete — and get normalized data ready for code.

Highlights

  • 10 Google verticals in one API Search, News, Images, Videos, Places, Maps, Shopping, Scholar, Patents, and Autocomplete.

  • Normalized data Dates → ISO 8601 Prices → { symbol, amount } Ratings → { score, total, reviews }

  • Lazy HTML fetching Any result with a url exposes .html() to fetch the page HTML on demand.

  • Built-in pagination Just call .next() to fetch the next page.

  • Fast ~1 second response time per request with full parallelization support.

  • Full TypeScript support Type-specific inference out of the box.

Install

npm install @microlink/google

Quick start

Your first query

Initialize @microlink/google. The only prerequisite is a Microlink API key:

const google = require('@microlink/google')({
  apiKey: process.env.MICROLINK_API_KEY
})

Make your first query:

const page = await google('Lotus Elise S2')

console.log(page.results)
// [
//   {
//     title: 'Lotus Elise - Wikipedia',
//     url: 'https://en.wikipedia.org/wiki/Lotus_Elise',
//     description: 'The Lotus Elise is a two-seat, rear-wheel-drive...'
//   }
// ]

Use Google search operators to refine queries:

const page = await google('Lotus Elise S2 filetype:pdf')

Localize results using location or filter by time with period:

await google('recetas de pasta', {
  location: 'es',
  period: 'week'
})

Get HTML markup

Any result containing a url exposes a lazy .html() method:

const { results } = await google('node.js frameworks')

for (const result of results) {
  const html = await result.html()
  console.log(html)
}

Pagination

Pages chain naturally:

const page1 = await google('node.js frameworks')
const page2 = await page1.next()
const page3 = await page2.next()

You can also iterate:

let page = await google('node.js frameworks')

while (page) {
  for (const result of page.results) {
    console.log(result.title)
  }

  page = await page.next()
}

Google products

| Type | Product | Example | | -------------- | ------------------- | ----------------------------------------------------------- | | search | Google Search | google('Lotus Elise S2') | | news | Google News | google('artificial intelligence', { type: 'news' }) | | images | Google Images | google('northern lights', { type: 'images' }) | | videos | Google Videos | google('cooking tutorial', { type: 'videos' }) | | places | Google Places | google('coffee shops denver', { type: 'places' }) | | maps | Google Maps | google('apple store new york', { type: 'maps' }) | | shopping | Google Shopping | google('macbook pro', { type: 'shopping' }) | | scholar | Google Scholar | google('transformer architecture', { type: 'scholar' }) | | patents | Google Patents | google('touchscreen gestures apple', { type: 'patents' }) | | autocomplete | Google Autocomplete | google('how to', { type: 'autocomplete' }) |


Google Search

Web results with knowledge graph, related questions, and related searches.

const page = await google('Lotus Elise S2')

page.results[0]

page.knowledgeGraph
page.peopleAlsoAsk
page.relatedSearches

Google News

Recent articles with publisher, date, and thumbnail.

const page = await google('artificial intelligence', { type: 'news' })

Google Images

Full-resolution image URLs with dimensions.

const page = await google('northern lights', { type: 'images' })

Google Videos

Video metadata with duration in milliseconds.

const page = await google('cooking tutorial', { type: 'videos' })

Google Places

Local business listings with coordinates and contact info.

const page = await google('coffee shops denver', { type: 'places' })

Google Maps

Detailed place data with ratings, hours, and pricing.

const page = await google('apple store new york', { type: 'maps' })

Google Shopping

Product listings with parsed prices and structured ratings.

const page = await google('macbook pro', { type: 'shopping' })

Google Scholar

Academic papers with citation counts and PDF links.

const page = await google('transformer architecture', { type: 'scholar' })

Google Patents

Patent filings with ISO 8601 dates and metadata.

const page = await google('touchscreen gestures apple', { type: 'patents' })

Google Autocomplete

Search suggestions as you type.

const page = await google('how to', { type: 'autocomplete' })

API

google(query, options?)

query

Required Type: string

The search query. Supports Google search operators.

await google('annual report filetype:pdf')
await google('security updates site:github.com')
await google('"machine learning" site:arxiv.org')

options

type

Type: string Default: 'search' Values: 'search' | 'news' | 'images' | 'videos' | 'places' | 'maps' | 'shopping' | 'scholar' | 'patents' | 'autocomplete'

Selects which Google product to query.

await google('artificial intelligence', { type: 'news' })

location

Type: string Default: 'us' Values: Location

Controls result geolocation using a country code (ISO 3166-1 alpha-2). This influences ranking, language, and local intent.

await google('recetas de pasta', { location: 'es' })

period

Type: string Default: undefined Values: hourdayweekmonthyear

Limits results to a recent time window. Useful for news monitoring and freshness-sensitive queries.

await google('tech news', { period: 'week' })

License

@microlink/google © Microlink, released under the MIT License. Authored and maintained by Kiko Beats with help from contributors.

microlink.io · GitHub microlinkhq · X @microlinkhq