picnic-api
Version:
Unofficial wrapper for the API of the online supermarket Picnic
69 lines (45 loc) • 2.7 kB
Markdown
[](https://www.npmjs.org/package/picnic-api) [](https://github.com/MRVDH/picnic-api/blob/master/LICENSE) [](https://www.buymeacoffee.com/MRVDH) [](https://picnic.app/nl/vriendenkorting/MAAR3267)
Unofficial and unaffiliated Node.js npm package as a wrapper for the API of the online supermarket Picnic.
Using `npm`:
```bash
npm install picnic-api
```
Then import the package into your project. `PicnicClient` is the default export.
```js
import PicnicClient from "picnic-api";
// or
const PicnicClient = require("picnic-api");
```
Now initialize the Picnic client with an optional options object.
```js
const picnicClient = new PicnicClient();
// or
const picnicClient = new PicnicClient({
countryCode: "NL", // The country code for the requests. Can be NL or DE. Untested for other countries.
apiVersion: "15", // default 15 as this is what the app currently uses. The api version for the requests. The effect of this version numbering is unknown to me.
authKey: "long string here", // default null. The code for the x-picnic-auth header to make authenticated requests. If not supplied then login() needs to be called before making any other requests.
url: "url here" // default https://storefront-prod.nl.picnicinternational.com/api/15. The url to send requests to.
});
```
If no authKey was given in the options use the `login` method. Empty response if successful, otherwise an error.
```js
await picnicClient.login("email", "password");
// and then send an authenticated request...
```
Example of a `GET` request:
```js
const searchResults = await picnicClient.search("Affligem blond");
```
Example of a `POST` request:
```js
await picnicClient.addProductToShoppingCart(11295810, 2);
```
Examples of a custom (unimplemented) request:
```js
picnicClient.sendRequest("GET", "/unknown/route");
picnicClient.sendRequest("POST", "/invite/friend", { email: "email@email.email" });
```
If you want to contribute to this project then please read the [CONTRIBUTING.md](./CONTRIBUTING.md) file, and if you like this library then please consider using my discount code [MAAR3267](https://picnic.app/nl/vriendenkorting/MAAR3267) so that we both get a 10 euro discount on our orders. 😄