Skip to content

tonybadguy/yelp-fusion

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

yelp-fusion

npm version Build Status codecov

Yelp Fusion API client for Node.js with Promises

Please refer to official Yelp documentation for request / response model details: https://www.yelp.com/developers/documentation/v3

V3 Breaking Changes

The following beta endpoints have been deprecated by the API since April 1, 2019. This library has been updated to reflect this change.

  • GET https://api.yelp.com/v3/businesses/matches/best
  • GET https://api.yelp.com/v3/businesses/matches/lookup

See https://www.yelp.com/developers/documentation/v3/business_match for more info

V2 Breaking Changes

Install NPM Package

npm install yelp-fusion --save

Table of Contents

Business Endpoints:

Event Endpoints:

Category Endpoints:


Business Endpoints

Business Search

'use strict';

const yelp = require('yelp-fusion');
const client = yelp.client('YOUR_API_KEY');

client.search({
  term: 'Four Barrel Coffee',
  location: 'san francisco, ca',
}).then(response => {
  console.log(response.jsonBody.businesses[0].name);
}).catch(e => {
  console.log(e);
});

Phone Search

'use strict';

const yelp = require('yelp-fusion');
const client = yelp.client('YOUR_API_KEY');

client.phoneSearch({
  phone: '+14157492060'
}).then(response => {
  console.log(response.jsonBody.businesses[0].name);
}).catch(e => {
  console.log(e);
});

Transaction Search

'use strict';

const yelp = require('yelp-fusion');
const client = yelp.client('YOUR_API_KEY');

client.transactionSearch('delivery', {
  location: 'san diego'
}).then(response => {
  console.log(response.jsonBody.businesses[0].name);
}).catch(e => {
  console.log(e);
});

Business Details

'use strict';

const yelp = require('yelp-fusion');
const client = yelp.client('YOUR_API_KEY');

client.business('gary-danko-san-francisco').then(response => {
  console.log(response.jsonBody.name);
}).catch(e => {
  console.log(e);
});

Business Match

'use strict';

const yelp = require('yelp-fusion');
const client = yelp.client('YOUR_API_KEY');

client.businessMatch({
  name: 'Pannikin Coffee & Tea',
  address1: '510 N Coast Hwy 101',
  address2: 'Encinitas, CA 92024',
  city: 'Encinitas',
  state: 'CA',
  country: 'US'
}).then(response => {
  console.log(response.jsonBody.businesses[0].id);
}).catch(e => {
  console.log(e);
});

Reviews

'use strict';

const yelp = require('yelp-fusion');
const client = yelp.client('YOUR_API_KEY');

client.reviews('gary-danko-san-francisco').then(response => {
  console.log(response.jsonBody.reviews[0].text);
}).catch(e => {
  console.log(e);
});

Autocomplete

'use strict';

const yelp = require('yelp-fusion');
const client = yelp.client('YOUR_API_KEY');

client.autocomplete({
  text: 'pizza'
}).then(response => {
  console.log(response.jsonBody.terms[0].text);
}).catch(e => {
  console.log(e);
});

Event Endpoints

Event Lookup

'use strict';

const yelp = require('yelp-fusion');
const client = yelp.client('YOUR_API_KEY');

client.eventLookup("oakland-saucy-oakland-restaurant-pop-up").then(response => {
  console.log(response.jsonBody.description);
}).catch(e => {
  console.log(e);
});

Event Search

'use strict';

const yelp = require('yelp-fusion');
const client = yelp.client('YOUR_API_KEY');

client.eventSearch({
  categories: 2,
  is_free: true,
  location: 'claremont, ca'
}).then(response => {
  console.log(response.jsonBody.events[0].name);
}).catch(e => {
  console.log(e);
});

Featured Event

'use strict';

const yelp = require('yelp-fusion');
const client = yelp.client('YOUR_API_KEY');

client.featuredEvent({
  location: 'claremont, ca'
}).then(response => {
  console.log(response.jsonBody.description);
}).catch(e => {
  console.log(e);
});

Category Endpoints

All Categories

'use strict';

const yelp = require('yelp-fusion');
const client = yelp.client('YOUR_API_KEY');

client.allCategories().then(response => {
  console.log(response.jsonBody.categories[0].alias);
}).catch(e => {
  console.log(e);
});

Category Details

'use strict';

const yelp = require('yelp-fusion');
const client = yelp.client('YOUR_API_KEY');

client.categoryDetails('3dprinting').then(response => {
  console.log(response.jsonBody.category.title);
}).catch(e => {
  console.log(e);
});

Advanced Request Options -- SocketTimeout

Socket Timeout will abort the request if the server doesn't complete the response within that time in milliseconds.

'use strict';

const yelp = require('yelp-fusion');
const client = yelp.client('YOUR_API_KEY', {
  socketTimeout: 5000
});

// or optionally
// client.options.socketTimeout = 5000;

Additionally, the options object support all fields defined here: https://nodejs.org/api/http.html#http_http_request_options_callback