🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
Book a DemoInstallSign in
Socket

node-bing-api

Package Overview
Dependencies
Maintainers
1
Versions
26
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

node-bing-api

Node.js module for the Cognitive Services Bing Search API

4.1.1
latest
Source
npm
Version published
Weekly downloads
2K
13.88%
Maintainers
1
Weekly downloads
 
Created
Source

NPM downloads per month NPM version NPM license

Node Bing API

Node.js lib for the Microsoft Cognitive Services Bing Web Search API

Changelog v4

Use Cognitive V7. Apparently new registrations can use that version only. Upgrade with care!

Changelog v3

Thanks to the contribution of @franciscofsales, version 3 supports the new API (Cognitive Services).

Changelog v2

In order to follow JavaScript best practices and allow the library to be promisified, the callback function is now the last parameter.

Installation

npm install node-bing-api

Usage

Require the library and initialize it with your account key:

var Bing = require('node-bing-api')({ accKey: "your-account-key" });

Promises

This API provdes callbacks by default, but users of node 8 and newer can make the library return Promises with util.promisify(). For example, to use Bing.web:

var util = require('util'),
  Bing = require('node-bing-api')({ accKey: 'someKey' }),
  searchBing = util.promisify(Bing.web.bind(Bing));

Web Search (same as Composite):

Bing.web("Pizza", {
    count: 10,  // Number of results (max 50)
    offset: 3   // Skip first 3 results
  }, function(error, res, body){

    // body has more useful information besides web pages
    // (image search, related search, news, videos)
    // but for this example we are just
    // printing the first two web page results
    console.log(body.webPages.value[0]);
    console.log(body.webPages.value[1]);
  });

Composite Search (same as Web):

Bing.composite("Playstation 4 Pro", {
    count: 10,  // Number of results (max 15 for news, max 50 if other)
    offset: 3   // Skip first 3 results
  }, function(error, res, body){
    console.log(body.news);
  });
Bing.news("Anonymous", {
    count: 10,  // Number of results (max 15)
    offset: 3   // Skip first 3 results
  }, function(error, res, body){
    console.log(body);
  });
Bing.video("monkey vs frog", {
    count: 10,  // Number of results (max 50)
    offset: 3   // Skip first 3 result
  }, function(error, res, body){
    console.log(body);
  });
Bing.images("Ninja Turtles", {
  count: 15,   // Number of results (max 50)
  offset: 3    // Skip first 3 result
  }, function(error, res, body){
    console.log(body);
  });
Bing.relatedSearch('berlin'
, { market: 'en-US' }
, (err, res, body) => {
    const suggestions = body.relatedSearches.value.map(r => r.displayText)
    console.log(suggestions.join('\n'))
  })

Spelling Suggestions:

Bing.spelling('awsome spell', function (err, res, body) {
  console.log(body.flaggedTokens.suggestions[0].suggestion); //awesome spell
});

Requires specific Account key

Available Options:

  • mode:<Proof | Spell>
  • preContextText:<String>
  • postContextText:<String>

request() options

  • maxSockets: integer (default: Infinity)
  • reqTimeout: ms

Specify Market

Getting spanish results:

Bing.images("Ninja Turtles"
          , {count: 5, market: 'es-ES'}
          , function(error, res, body){

  console.log(body);
});

Full list of supported markets: es-AR,en-AU,de-AT,nl-BE,fr-BE,pt-BR,en-CA,fr-CA,es-CL,da-DK,fi-FI,fr-FR, de-DE,zh-HK,en-IN,en-ID,en-IE,it-IT,ja-JP,ko-KR,en-MY,es-MX,nl-NL,en-NZ, no-NO,zh-CN,pl-PL,pt-PT,en-PH,ru-RU,ar-SA,en-ZA,es-ES,sv-SE,fr-CH,de-CH, zh-TW,tr-TR,en-GB,en-US,es-US

Adult Filter

Bing.images('Kim Kardashian'
          , {market: 'en-US', adult: 'Strict'}
          , function(error, res, body){

  console.log(body.value);
});

Accepted values: "Off", "Moderate", "Strict".

Moderate level should not include results with sexually explicit images or videos, but may include sexually explicit text.

Web Only API Subscriptions

To use this library with a web only subscription, you can require and initialize it with an alternate root url:

var Bing = require('node-bing-api')
            ({
              accKey: "your-account-key",
              rootUri: "https://api.datamarket.azure.com/Bing/SearchWeb/v1/"
            });

Running Tests

In order to run the tests, the integration tests require to create a secrets.js file from the provided secrets.js.example example, and fill it in with a valid access key.

Then just mocha.

License

MIT

Keywords

bing

FAQs

Package last updated on 03 Apr 2021

Did you know?

Socket

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