![require(esm) Backported to Node.js 20, Paving the Way for ESM-Only Packages](https://cdn.sanity.io/images/cgdhsj6q/production/be8ab80c8efa5907bc341c6fefe9aa20d239d890-1600x1097.png?w=400&fit=max&auto=format)
Security News
require(esm) Backported to Node.js 20, Paving the Way for ESM-Only Packages
require(esm) backported to Node.js 20, easing the transition to ESM-only packages and reducing complexity for developers as Node 18 nears end-of-life.
etsy-js-heroku
Advanced tools
etsy-js is an asynchronous nodeJS wrapper for the etsy v2 api.
Install the latest stable version
$ npm install etsy-js
Bleeding edge version
$ git clone https://github.com/GeorgiCodes/etsy-js.git
$ cd etsy-js
$ npm install
The Etsy API has two modes: public, and authenticated. Public mode only requires an API key (available from http://developer.etsy.com ).
var etsyjs = require('etsy-js');
var client = etsyjs.client('your_api_key');
// direct API calls (GET / PUT / POST / DELETE)
client.get('/users/sparkleprincess', {}, function (err, status, body, headers) {
console.log(body); //json object
});
// or you can use some convenience methods
var etsyUser = client.user('sparkleprincess');
var etsySearch = client.search();
var etsyShop = client.shop('shopALot');
etsyUser.find(function(err, body, headers) {
console.log(body); //json object
});
You can make any non-authenticated calls to the API that you need.
The Etsy API has support for both retrieval of extended information and write support for authenticated users. Authentication can be performed from within a web application.
In authenticated mode, you need to set a client, secret and callbackURL.
var etsyjs = require('etsy-js');
var client = etsyjs.client({
key: 'key',
secret: 'secret',
callbackURL: 'http://localhost:3000/authorise'
});
In this mode, you'll need to store the request token and secret before redirecting to the verification URL. A simple example in coffeescript using Express and Express Sessions:
express = require('express')
session = require('express-session')
cookieParser = require('cookie-parser')
url = require('url')
etsyjs = require('etsy-js')
# instantiate client with key and secret and set callback url
client = etsyjs.client
key: nconf.get('key')
secret: nconf.get('secret')
callbackURL: 'http://localhost:3000/authorise'
app = express()
app.use(cookieParser('secEtsy'))
app.use(session())
app.get '/', (req, res) ->
client.requestToken (err, response) ->
return console.log err if err
req.session.token = response.token
req.session.sec = response.tokenSecret
res.redirect response.loginUrl
app.get '/authorise', (req, res) ->
# parse the query string for OAuth verifier
query = url.parse(req.url, true).query;
verifier = query.oauth_verifier
# final part of OAuth dance, request access token and secret with given verifier
client.accessToken req.session.token, req.session.sec, verifier, (err, response) ->
# update our session with OAuth token and secret
req.session.token = response.token
req.session.sec = response.tokenSecret
res.redirect '/find'
app.get '/find', (req, res) ->
# we now have OAuth credentials for this session and can perform authenticated requests
client.auth(req.session.token, req.session.sec).user("etsyjs").find (err, body, headers) ->
console.log err if err
console.dir(body) if body
res.send body.results[0] if body
server = app.listen 3000, ->
console.log 'Listening on port %d', server.address().port
All the callbacks fwill take first an error argument, then a data argument, like this:
etsyUser.find(function(err, body, headers) {
console.log("error: " + err);
console.log("data: " + body);
console.log("headers:" + headers);
});
Pagination is supported, simply pass through params as follows:
var params = {
keywords: "rainbow"
offset: 1,
limit: 25
};
client.search().findAllUsers(params, function(err, body, headers) {
console.log("data: " + body);
});
More examples to come...
etsyUser.find(callback); //json
$ grunt test
Please submit and bugs to this project and I will fix them. Pull requests also welcome.
Thanks to the ruby etsy api wrapper as I used their fixture tests data for the etsy-js tests and README outline. Thanks to octonode for the inspiration to make this API in coffeescript.
FAQs
An asynchronous nodejs wrapper for the etsy v2 api.
The npm package etsy-js-heroku receives a total of 0 weekly downloads. As such, etsy-js-heroku popularity was classified as not popular.
We found that etsy-js-heroku demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
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.
Security News
require(esm) backported to Node.js 20, easing the transition to ESM-only packages and reducing complexity for developers as Node 18 nears end-of-life.
Security News
PyPI now supports iOS and Android wheels, making it easier for Python developers to distribute mobile packages.
Security News
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.