Socket
Socket
Sign inDemoInstall

serper

Package Overview
Dependencies
8
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    serper

A client for the Serper Google Search API.


Version published
Weekly downloads
15
decreased by-54.55%
Maintainers
1
Install size
8.86 MB
Created
Weekly downloads
 

Readme

Source

Serper for JavaScript/TypeScript

npm version npm downloads GitHub Docs Workflow Status

Scrape Google search results using Serper, the fastest and most affordable SERP API.

Quick Start

Node.js

  • Supports most modern Node.js versions.
# npm
npm install serper
# yarn
yarn add serper
# pnpm
pnpm add serper
import { Serper } from "serper"; // ES Modules
const { Serper } = require("serper"); // CommonJS Modules

const serper = new Serper({
  apiKey: process.env.SERPER_API_KEY // Get your API key at https://serper.dev/api-key
});

const results = await serper.search("search terms");

Features

  • TypeScript support.
  • Works in Node.js and the browser.
  • Promises and async/await support.

Configuration

Configuration is very simple; just three things.

  • The required API key.
  • An optional request timeout.
  • A toggle for the cache.
const serper = new Serper({
  apiKey: process.env.SERPER_API_KEY, // Your API key, this is required
  timeout: 10000, // Request timeout in milliseconds, 10000 by default
  doCache: true // Enable to cache responses, true by default
});

Basic Usage

The client usage is just as simple as what was shown in the quick start. Simply initializing a client, then making requests with async methods.

Currently, you can search under all supported Serper API routes. They are:

  • Search - Typical rich search page.
  • News - Current Google news articles only.
  • Images - Just images and links.
  • Videos - Just videos and links.
  • Places - Google maps locations and information.

All of these can be called using the exact same client API and the respective name of the route as the function name. By replacing "search" in the quick start function, you can run any search imaginable!

Pagination

Pagination is built in to Serper with three simple functions, nextPage, prevPage and toPage. Currently, due to API limitations, there is no indicator in nextPage as to the end of all pages. The prevPage function just returns the first page if you try to go negative. The self explanatory toPage results in the specified page.

All client responses contain nextPage and prevPage, as well as all pagination responses.

let results = await serper.search("dog shelters");
for (let x = 0; x < 5; x++) {
  results = await results.nextPage();
}

Caching

All responses from the Serper Client are locally cached to reduce credit usage during pagination and repeated searching. The cache can easily be disabled by setting the cache config value to false, although this is not recommended as it will significantly slow down your application, and should only be used when current information (ie. news) is needed.

Documentation and Examples

API docs are available online here, and a large collection of usage examples are available in the examples directory.

Note: All examples assume top level await, which is supported in modern Node.js and most modern browers.

To Do

  • Implement pagination.
  • A more robust Response object with caching.
  • Better request prechecking.
  • External (ie. Redis) caching.
  • Unit tests.
  • Documentation.
  • Deno support.
  • Module bundler.
  • Any other ideas you may have.

License

This code is released under the permissible MIT license. Anyone can contribute, use, redistribute, and sell this library without any credit, although it is appreciated.

FAQs

Last updated on 01 Nov 2023

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc