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 🙏

© 2024 – Pkg Stats / Ryan Hefner

pexels-api-wrapper

v1.1.2

Published

A simple promise wrapper for the Pexels API

Downloads

661

Readme

Pexels API

A simple wrapper to use the Pexels API. Please refer to the API docs to undestand the inputs and expected results.

Installation

Install the package

$ cd /path/to/app
$ npm install --save pexels-api-wrapper

Usage

//In NodeJS App

//Require Wrapper Library
const PexelsAPI = require('pexels-api-wrapper');

//Create Client instance by passing in API key
var pexelsClient = new PexelsAPI("<API_KEY>");

//Search API
pexelsClient.search("food", 10, 1)
    .then(function(result){
        console.log(result);
    }).
    catch(function(e){
        console.err(e);
    });

//Get Popular Photos
pexelsClient.getPopularPhotos(10, 1)
    .then(function(result){
        console.log(result);
    }).
    catch(function(e){
        console.err(e);
    });

//Get Curated Photos
pexelsClient.getCuratedPhotos(10, 1)
    .then(function(result){
        console.log(result);
    }).
    catch(function(e){
        console.err(e);
    });

//Get Photo by ID
pexelsClient.getPhoto(123456)
    .then(function(result){
        console.log(result);
    }).
    catch(function(e){
        console.err(e);
    });

//Search Video API
pexelsClient.searchVideos("food", 10, 1)
    .then(function(result){
        console.log(result);
    }).
    catch(function(e){
        console.err(e);
    });

//Get Popular Videos
pexelsClient.getPopularVideos(10, 1)
    .then(function(result){
        console.log(result);
    }).
    catch(function(e){
        console.err(e);
    });

API

Search

Promise factory to interact with Pexels Search API

| Param | Type | Description | | ----- | ---- | ----------- | | query | string | The search term to query the API with | per_page | number | The number of results to return per page (Defaults to 10) | page | number | The page number to return (Defaults to 1)

PexelsAPI.search(query, per_page, page);

Popular

Promise factory to interact with Pexels Popular Photos API

| Param | Type | Description | | ----- | ---- | ----------- | | per_page | number | The number of results to return per page (Defaults to 10) | page | number | The page number to return (Defaults to 1)

PexelsAPI.getPopularPhotos(per_page, page);

Curated

Promise factory to interact with Pexels Curated Photos API

| Param | Type | Description | | ----- | ---- | ----------- | | per_page | number | The number of results to return per page (Defaults to 10) | page | number | The page number to return (Defaults to 1)

PexelsAPI.getCuratedPhotos(per_page, page);

Photo

Promise factory to fetch a single photo from Pexels Photos API

| Param | Type | Description | | ----- | ---- | ----------- | | id | number | The ID of the photo

PexelsAPI.getPhoto(id);

Search Videos

Promise factory to interact with Pexels Videos API

| Param | Type | Description | | ----- | ---- | ----------- | | query | string | The search term to query the API with | per_page | number | The number of results to return per page (Defaults to 10) | page | number | The page number to return (Defaults to 1) | min_width | number | The minimum width in pixels of the returned videos. (optional) | max_width | number | The maximum width in pixels of the returned videos. (optional) | min_duration | number | The minimum duration in seconds of the returned videos. (optional) | max_duration | number | The maximum duration in seconds of the returned videos. (optional)

PexelsAPI.searchVideos(query, per_page, page, min_width, max_width, min_duration, max_duration);

Popular Videos

Promise factory to interact with Pexels Popular Videos API

| Param | Type | Description | | ----- | ---- | ----------- | | per_page | number | The number of results to return per page (Defaults to 10) | page | number | The page number to return (Defaults to 1) | min_width | number | The minimum width in pixels of the returned videos. (optional) | max_width | number | The maximum width in pixels of the returned videos. (optional) | min_duration | number | The minimum duration in seconds of the returned videos. (optional) | max_duration | number | The maximum duration in seconds of the returned videos. (optional)

PexelsAPI.getPopularVideos(per_page, page, min_width, max_width, min_duration, max_duration);

Changelog

| Version | Changes | | ------- | ------- | | v1.0.8 | First published version | | v1.1.1 | Extended library to accommodate new APIs: getCuratedPhotos getPhoto searchVideos getPopularVideos, Base URL uses HTTPS by default | | v1.1.2 | Extended library to accommodate new parameters for width and duration|

Contribution Ideas

  1. Change the string parameter (API Key) currently used while initializing the client to support an options object as well. This object can contain the apiKey and useHttps as options to start with which can drive whether the client uses HTTP or HTTPS. This will also create a structure which can allow future extensibility by adding keys to the options object.
  2. Make this library browser friendly. Refactor code to stop using node-fetch and use an isomorphic version instead. The current version, as it stands, is not optimal to be used on the browser.

Acknowledgements

Thanks, Pexels for creating a great platform for great images. Always rooting for you.

I'd like to thank all the folks taking the time out to keep this library in sync with the Pexels API. Power to you!

Shout out to: @fcrespo82, @jeffski and jbuchmann-coosto for their pull requests which has kept the library in sync with the changes in the API.