BWS.IPFS.Upload

Easily upload Images and JSON to IPFS!

The BWS.IPFS.Upload service provides a straightforward and efficient method for users to upload images and JSON files to the InterPlanetary File System (IPFS).

You can now use ipfs.bws.ninja as the gateway to use for the files you uploaded to IPFS using BWS.

For example, check our lovely unicorn on IPFS using BWS Gateway: https://ipfs.bws.ninja/ipfs/QmU7avmnTb4iVbNGCHMJmdEbsx9nRtUx7dWGpKeE7zjo8T

Uploads a file or JSON to IPFS.

POST https://api.bws.ninja/v1/call

Use this operation to upload content to IPFS and get the IPFS Content Identifier (CID).

Request Body

NameTypeDescription

solution*

string

BWS.IPFS.Upload

operation*

string

new

parameters*

JSON

{
    "statusCode": 200,
    "info": {
        "cid": "QmXmCX9S6ANVjYJh3rJmXjqgYtYv7WZLUDL2XCwdPrvUwN",
        "uris": {
            "ipfs": "ipfs://QmXmCX9S6ANVjYJh3rJmXjqgYtYv7WZLUDL2XCwdPrvUwN",
            "url": "https://ipfs.bws.ninja/ipfs/QmXmCX9S6ANVjYJh3rJmXjqgYtYv7WZLUDL2XCwdPrvUwN"
        }
    }
}

ParameterTypeDesciption

description

string

Short description of your content (will be returned when listing your IPFS files).

content

JSON / base64

Content to save on the IPFS network. We currently support:

  • JSON (just pass the JSON or the stringified string)

  • File sent as a base64 encoded string

BWS IPFS service is expected to be used for web browsing content! Please note that when uploading your file:

  • You must optimize your content to be less than 1 MB in size (there is a hard limit of 5MB when uploading files to IPFS using our API).

  • We currently support JSON, images, and PDF files.

If your use case requires higher file sizes or other file types, please contact us.

Upload to IPFS Examples

const fs = require('fs');
const axios = require('axios');

/* get the file you want to upload to IPFS */
const fileData = fs.readFileSync('./files/image.png');

/* encode file content to base64 */
const encodedData = fileData.toString('base64');

/* build request to use BWS IPFS solution */
const request = {
   "solution": "BWS.IPFS.Upload",
   "operation": "new",
   "parameters": {
        description: "My first IPFS file using BWS API!",
        parameters: {
            content: encodedData
        }
    }
};

/* call BWS API using Axios */
let config = {
  method: 'post',
  maxBodyLength: Infinity,
  url: 'https://api.bws.ninja/v1/call',
  headers: { 
    'X-Api-Key': 'XqaLg...... A5k2V729v', /* use your API key here! */
    'Content-Type': 'application/json'
  },
  data : JSON.stringify(request)
};

axios.request(config)
  .then((response) => {
    console.log(JSON.stringify(response.data));
  })
  .catch((error) => {
    console.log(error);
  });

When the API call is successfully executed, it returns the IPFS Content Identifier (CID) along with the corresponding IPFS URI and URL. These details facilitate easy access and reference to the uploaded content on the IPFS network.

{
    "statusCode": 200,
    "info": {
        "cid": "QmXmCX9S6ANVjYJh3rJmXjqgYtYv7WZLUDL2XCwdPrvUwN",
        "uris": {
            "ipfs": "ipfs://QmXmCX9S6ANVjYJh3rJmXjqgYtYv7WZLUDL2XCwdPrvUwN",
            "url": "https://ipfs.bws.ninja/ipfs/QmXmCX9S6ANVjYJh3rJmXjqgYtYv7WZLUDL2XCwdPrvUwN"
        }
    }
}

Lists your IPFS files.

POST https://api.bws.ninja/v1/call

Get the list of your IPFS files

Request Body

NameTypeDescription

solution*

string

BWS.IPFS.Upload

operation*

string

list

parameters

JSON

{
    "statusCode": 200,
    "statusMessage": "",
    "info": [
        {
            "": ""
        }
    ]
}

ParameterTypeDesciption

from

long

Unix time in milliseconds representing a timestamp to select IPFS files from.

to

long

Unix time in milliseconds representing a timestamp to select IPFS files to.

LIST IPFS Files Request Example

curl --location 'https://api.staging.bws.ninja/v1/call' \
--header 'X-Api-Key: XqaLg...729v' \
--header 'Content-Type: application/json' \
--data '{
    "solution": "BWS.IPFS.Upload",
    "operation": "list"
    "parameters": {
        "from": 1700404140000
        "to": 1700411940000
    }
}'

Once executed correctly, you will get a list of the IPFS uploaded files using BWS API. That list will contain for each file:

  • the timestamp of creation (Unix time in milliseconds),

  • the IPFS Content Identifier (CID),

  • the file type,

  • and the URIs to easily access the file

    • IPFS URI,

    • web URL - using the BWS IPFS Gateway to fetch the file.

{
    "statusCode": 200,
    "info": [
        {
            "timestamp": "1700416540067",
            "cid": "QmXmCX9S6ANVjYJh3rJmXjqgYtYv7WZLUDL2XCwdPrvUwN",
            "description": "Just a simple JSON for testing BWS API",
            "fileType": "json",
            "uris": {
                "ipfs": "ipfs://QmXmCX9S6ANVjYJh3rJmXjqgYtYv7WZLUDL2XCwdPrvUwN",
                "url": "https://ipfs.bws.ninja/ipfs/QmXmCX9S6ANVjYJh3rJmXjqgYtYv7WZLUDL2XCwdPrvUwN"
            }
        },
        {
            "timestamp": "1700121600009",
            "cid": "QmcduEBAppXxnyn37deHHf33Ep7cPbYxn1mH36Nvvowkiu",
            "description": "image for token 1325",
            "fileType": "image",
            "uris": {
                "ipfs": "ipfs://QmcduEBAppXxnyn37deHHf33Ep7cPbYxn1mH36Nvvowkiu",
                "url": "https://ipfs.bws.ninja/ipfs/QmcduEBAppXxnyn37deHHf33Ep7cPbYxn1mH36Nvvowkiu"
            }
        }
    ]
}

Last updated