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 Libraryconst PexelsAPI = ; //Create Client instance by passing in API keyvar pexelsClient = "<API_KEY>"; //Search APIpexelsClient catch{ console; }; //Get Popular PhotospexelsClient catch{ console; }; //Get Curated PhotospexelsClient catch{ console; }; //Get Photo by IDpexelsClient catch{ console; }; //Search Video APIpexelsClient catch{ console; }; //Get Popular VideospexelsClient catch{ console; };
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;
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;
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;
Photo
Promise factory to fetch a single photo from Pexels Photos API
Param | Type | Description |
---|---|---|
id | number | The ID of the photo |
PexelsAPI;
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;
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;
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
- 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
anduseHttps
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. - 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.