Ebay API Client for node js.
The intent is to simplify the request process by handling the tedious logic. It's a thin wrapper around eBay Api.
- Installation
- Usage
- Examples
- Getting Access Token
- Finding Api(findItemsByKeywords, findItemsByCategory, findCompletedItems, getVersion)
- Fetch Items By Keyword
- Get Items By Category
- Get Single Item
- Get Item By Legacy Id
- Get Items By Group Id
- Search Items by Keyword
- Search Items with Free Shipping
- Search Items Based on Price and Condition
- Taxonomy Api(getDefaultCategoryTreeId, getCategoryTree, getCategorySubtree, getCategorySuggestions)
- Get Most Watched item, Get Most Similar Items
- Get All Categories, GetUserDetails, GetShippingCost, GetItemStatus
- Test
- Issues
- Contribution
- LICENSE
npm install ebay-node-apilet eBay = require('ebay-node-api') let ebay = new eBay({ clientID: '-- Client APP ID ----', // options - optional HTTP request timeout to apply to all requests. env: 'SANDBOX' // optional default = 'PRODUCTION' })Creates a new Ebay instance.
Join eBay developers program. Register your app here https://go.developer.ebay.com/quick-start-guide.
If you using Sandbox environment, make sure to provide env variable in options as mentioned above.
clientID- Required(String) - Client Id key provided when you register in eBay developers program.limit- optional(Number) - fetch items functionality - Number that limits the number of data you need in response.details- optional(Boolean) - Get User Details functionality - true, if you need details about the user.env- optional(String) - Environment, default value is PRODUCTION.
const Ebay = require('ebay-node-api'); let ebay = new Ebay({ clientID: '--Client Id----', clientSecret: '-- Client Secret --', body: { grant_type: 'client_credentials', //you may need to define the oauth scope scope: 'https://api.ebay.com/oauth/api_scope' } }); ebay.getAccessToken().then((data) => { console.log(data); // data.access_token }, (error) => { console.log(error); });//This call searches for items on eBay using specific eBay category ID numbers ebay.findItemsByCategory(10181).then((data) => { console.log(data); }, (error) => { console.log(error); }); //This call searches for items on eBay by a keyword query (keywords). ebay.findItemsByKeywords('iphone').then((data) => { console.log(data); }, (error) => { console.log(error); }); // This call searches for items whose listings are completed and are no longer available for sale by category (using categoryId), by keywords (using keywords), or a combination of the two. ebay.findCompletedItems({ keywords: 'Garmin nuvi 1300 Automotive GPS Receiver', categoryId: '156955', sortOrder: 'PricePlusShippingLowest', //https://developer.ebay.com/devzone/finding/callref/extra/fndcmpltditms.rqst.srtordr.html Condition: 3000, SoldItemsOnly: true, entriesPerPage: 2 }).then((data) => { console.log(data); }, (error) => { console.log(error); }); ebay.getVersion().then((data) => { console.log(data.version); }, (error) => { console.log(error); });// Get access token and pass it to this method ebay.getAccessToken() .then((data) => { ebay.getItem('v1|202117468662|0').then((data) => { console.log(data); // Data is in format of JSON // To check the format of Data, Go to this url (https://jsonblob.com/56cbea67-30b8-11e8-953c-5d1886dcf4a0) }) });ebay.getAccessToken() .then((data) => { ebay.getItemByLegacyId({ 'legacyItemId': 2628001 // Get Item Details Using a Legacy ID 'legacyVariationSku': 'V-00031-WHM' // default null }).then((data) => { if (!data) console.log(data); // Data is in format of JSON // To check the format of Data, Go to this url (https://jsonblob.com/56cbea67-30b8-11e8-953c-5d1886dcf4a0) }); });ebay.getAccessToken() .then((data) => { ebay.getItemByItemGroup('151915076499').then((data) => { // Data is in format of JSON // To check the format of Data, Go to this url (https://jsonblob.com/56cbea67-30b8-11e8-953c-5d1886dcf4a0) console.log(data) }, (error) => { console.log(error); }); });ebay.getAccessToken() .then((data) => { ebay.searchItems({ keyword: 'drone', limit: '3' }).then((data) => { console.log(data); // Data is in format of JSON // To check the format of Data, Go to this url (https://developer.ebay.com/api- docs/buy/browse/resources/item_summary/methods/search#w4-w1-w4-SearchforItemsbyKeyword-0) }) });ebay.getAccessToken() .then((data) => { ebay.searchItems({ keyword: 'drone', limit: 3, // filter: { maxDeliveryCost: 0 } old object based filter method filter: 'maxDeliveryCost:0' // new string based filter method. Format here: https://developer.ebay.com/api-docs/buy/static/ref-buy-browse-filters.html#conditionIds }).then((data) => { console.log(data); // Data is in format of JSON // To check the format of Data, Go to this url https://developer.ebay.com/api-docs/buy/browse/resources/item_summary/methods/search#w4-w1-w4-ReturnItemswithFreeShipping-6. }) });ebay.getAccessToken() .then((data) => { ebay.searchItems({ keyword: 'iphone', limit: 3, // filter: { price: '[300..800]', priceCurrency: 'USD', conditions: 'NEW' } old object based filter method filter: 'price:[300..800],priceCurrency:USD,conditions{NEW}' // new string based filter method. Format here: https://developer.ebay.com/api-docs/buy/static/ref-buy-browse-filters.html#conditionIds }).then((data) => { console.log(data); // Data is in format of JSON // To check the format of Data, Go to this url https://developer.ebay.com/api-docs/buy/browse/resources/item_summary/methods/search#w4-w1-w4-ReturnItemsBasedonPriceandCondition-7. }) });ebay.getMostWatchedItems({ maxResults: 3, // optional categoryId: 267 // optional }).then((data) => { if (data.errorMessage) { console.log('Error:' + data.errorMessage); } console.log(JSON.stringify(data)); }); ebay.getSimilarItems({ maxResults: 3, // optional itemId=280254552262 // optional }).then((data) => { if (data.errorMessage) { console.log('Error:' + data.errorMessage); } console.log(JSON.stringify(data)); // JSON format of similar items. });ebay.getAccessToken() .then((data) => { ebay.getDefaultCategoryTreeId('EBAY_US').then((data) => { console.log(data); // for EN_US { categoryTreeId: '0', categoryTreeVersion: '119' } }); ebay.getCategoryTree(0).then((data) => { console.log(data); // JSON format of complete category tree. }); ebay.getCategorySubtree(0, 11450).then((data) => { console.log(data); // JSON format of complete category sub tree. }); ebay.getCategorySuggestions(0, 'iphone').then((data) => { console.log(data); // JSON format of category suggestions. }); ebay.getItemAspectsForCategory(0, 67726).then((data) => { console.log(data); // JSON format of complete category sub tree. }); });ebay.getAllCategories('1234').then((data) => { console.log(data); //extract data.CategoryArray }, (error) => { console.log(error); }); // Get User Profile //https://developer.ebay.com/devzone/shopping/docs/callref/GetUserProfile.html ebay.getUserDetails({ userId: 'ajaykumapratha_0', details: true }).then((data) => { console.log(data); }, (error) => { console.log(error); }); // Get Item Status //https://developer.ebay.com/devzone/shopping/docs/callref/GetItemStatus.html ebay.getItemStatus(['153265274986', '153265274986']).then((data) => { console.log(data); }, (error) => { console.log(error); }); //https://developer.ebay.com/devzone/shopping/docs/callref/GetShippingCosts.html ebay.getShippingCosts({ itemId: '153265274986', destCountryCode: 'US', destPostalCode: '95128' }).then((data) => { console.log(data); }, (error) => { console.log(error); });All test files are present inside test folder. You can run using
npm run testIf you are facing any issues, you can create the issues here.
Willing to share your idea or ready to contribute, check here
MIT.
I have mentioned the examples here https://github.com/pajaydev/ebay-node-api/tree/master/demo.