> For the complete documentation index, see [llms.txt](https://theblockchainchief.gitbook.io/web3stash/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://theblockchainchief.gitbook.io/web3stash/services/pinata.md).

# Pinata

Dive into the specifics of connecting and using pinata with web3stash

## Initialization

To use Pinata you have to pass "PINATA" as the service name. No other name will work!

```javascript
const pinataService = Web3Stash("PINATA",{apiKey:"", apiSecret:""},{pinata options})
```

## Configuration&#x20;

To use pinata in web3stash, you need two things:

* apiKey&#x20;
* apiSecret

Note: Use these name only while passing keys in object i.e, {apiKey:"", apiSecret:""}

#### Optional Config Options

There are no optional config options for this service

## Methods Available

The following methods are available for this service, More will be added soon

* Uploading JSON data&#x20;

```javascript
pinataService.uploadJson({name:"example", url:"abc.com"}, {pinataOptions}).then().catch()
```

* Uploading Image

```javascript
pinataService.uploadImage("./image.png", {pinataOptions}).then().catch()
```

* Uploading Video

```javascript
pinataService.uploadVideo("./video.mp4", {pinataOptions}).then().catch()
```

* Uploading File

<pre class="language-javascript"><code class="lang-javascript"><strong>pinataService.uploadFile("./data.txt", {pinataOptions}).then().catch()
</strong></code></pre>

* Uploading Images from Stream

<pre class="language-javascript"><code class="lang-javascript"><strong>pinataService.uploadImageFromStream(readableStream, {pinataOptions}).then().catch()
</strong></code></pre>

* Uploading Video from Stream

<pre class="language-javascript"><code class="lang-javascript"><strong>pinataService.uploadVideoFromStream(readableStream, {pinataOptions}).then().catch()
</strong></code></pre>

* Uploading File from Stream

<pre class="language-javascript"><code class="lang-javascript"><strong>pinataService.uploadFileFromStream(readableStream, {pinataOptions}).then().catch()
</strong></code></pre>

## Output

All the functions return id (cid) and metadata (data returned by the service on upload)

<pre class="language-javascript"><code class="lang-javascript"><strong>{id:"dewfnlpweurmwknrwiojhgcbxczz", metadata:{}}
</strong></code></pre>
