A Zotero API client package for Node.js. This package tries to make it as easy as possible to bootstrap a Zotero client application in Node.js; it comes with hardly any runtime dependencies and provides four simple abstractions to interact with Zotero: Client, Library, Message, Stream. Clients handle the HTTPS connection to a Zotero data server, observing any rate-limiting directives issued by the server; you can configure settings (like API versions, default headers etc.) for each Client. Each Library represents a Zotero user or group library and is associated with a Client instance; a Library offers many convenience methods to make it easy to construct Zotero API requests. Each request and the corresponding response are then encapsulated in a Message instance, wich provides accessors and an extendable body parser collection to handle the various formats supported by Zotero. The Stream class, finally, uses a WebSocket connection to access the Zotero Streaming API, manages the subscription list locally, and automatically tries to re-open prematurely closed connections.