Operations
Easily upload Images, PDF and JSON files to IPFS.
Use this operation to upload content to IPFS and get the IPFS Content Identifier (CID).
POST
https://api.bws.ninja/v1/call
Request Body
{
"statusCode": 200,
"info": {
"cid": "QmXmCX9S6ANVjYJh3rJmXjqgYtYv7WZLUDL2XCwdPrvUwN",
"uris": {
"ipfs": "ipfs://QmXmCX9S6ANVjYJh3rJmXjqgYtYv7WZLUDL2XCwdPrvUwN",
"url": "https://ipfs.bws.ninja/ipfs/QmXmCX9S6ANVjYJh3rJmXjqgYtYv7WZLUDL2XCwdPrvUwN"
}
}
}
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
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"
}
}
}
Get the list of your IPFS files
POST
https://api.bws.ninja/v1/call
Request Body
{
"statusCode": 200,
"statusMessage": "",
"info": [
{
"": ""
}
]
}
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
Was this helpful?