Pin by CID
curl --request POST \
--url https://api.pinata.cloud/v3/files/public/pin_by_cid \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"cid": "<string>",
"name": "<string>",
"group_id": "<string>",
"keyvalues": {},
"host_nodes": [
"<string>"
]
}
'import requests
url = "https://api.pinata.cloud/v3/files/public/pin_by_cid"
payload = {
"cid": "<string>",
"name": "<string>",
"group_id": "<string>",
"keyvalues": {},
"host_nodes": ["<string>"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
cid: '<string>',
name: '<string>',
group_id: '<string>',
keyvalues: {},
host_nodes: ['<string>']
})
};
fetch('https://api.pinata.cloud/v3/files/public/pin_by_cid', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.pinata.cloud/v3/files/public/pin_by_cid",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'cid' => '<string>',
'name' => '<string>',
'group_id' => '<string>',
'keyvalues' => [
],
'host_nodes' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.pinata.cloud/v3/files/public/pin_by_cid"
payload := strings.NewReader("{\n \"cid\": \"<string>\",\n \"name\": \"<string>\",\n \"group_id\": \"<string>\",\n \"keyvalues\": {},\n \"host_nodes\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.pinata.cloud/v3/files/public/pin_by_cid")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"cid\": \"<string>\",\n \"name\": \"<string>\",\n \"group_id\": \"<string>\",\n \"keyvalues\": {},\n \"host_nodes\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.pinata.cloud/v3/files/public/pin_by_cid")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"cid\": \"<string>\",\n \"name\": \"<string>\",\n \"group_id\": \"<string>\",\n \"keyvalues\": {},\n \"host_nodes\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "<string>",
"name": "<string>",
"cid": "<string>",
"keyvalues": {},
"group_id": "<string>",
"status": "<string>",
"date_queued": "<string>",
"hose_nodes": [
"<string>"
]
}
}Pin by CID
Pin by CID
org:files:write
POST
/
files
/
public
/
pin_by_cid
Pin by CID
curl --request POST \
--url https://api.pinata.cloud/v3/files/public/pin_by_cid \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"cid": "<string>",
"name": "<string>",
"group_id": "<string>",
"keyvalues": {},
"host_nodes": [
"<string>"
]
}
'import requests
url = "https://api.pinata.cloud/v3/files/public/pin_by_cid"
payload = {
"cid": "<string>",
"name": "<string>",
"group_id": "<string>",
"keyvalues": {},
"host_nodes": ["<string>"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
cid: '<string>',
name: '<string>',
group_id: '<string>',
keyvalues: {},
host_nodes: ['<string>']
})
};
fetch('https://api.pinata.cloud/v3/files/public/pin_by_cid', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.pinata.cloud/v3/files/public/pin_by_cid",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'cid' => '<string>',
'name' => '<string>',
'group_id' => '<string>',
'keyvalues' => [
],
'host_nodes' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.pinata.cloud/v3/files/public/pin_by_cid"
payload := strings.NewReader("{\n \"cid\": \"<string>\",\n \"name\": \"<string>\",\n \"group_id\": \"<string>\",\n \"keyvalues\": {},\n \"host_nodes\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.pinata.cloud/v3/files/public/pin_by_cid")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"cid\": \"<string>\",\n \"name\": \"<string>\",\n \"group_id\": \"<string>\",\n \"keyvalues\": {},\n \"host_nodes\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.pinata.cloud/v3/files/public/pin_by_cid")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"cid\": \"<string>\",\n \"name\": \"<string>\",\n \"group_id\": \"<string>\",\n \"keyvalues\": {},\n \"host_nodes\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "<string>",
"name": "<string>",
"cid": "<string>",
"keyvalues": {},
"group_id": "<string>",
"status": "<string>",
"date_queued": "<string>",
"hose_nodes": [
"<string>"
]
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
application/json
CID of the file you want to pin
Add a custom name for the file
ID of the group you would like to upload
Add additional key value metadata to files upon upload
Show child attributes
Show child attributes
An optional array of host node IDs, use ipfs id in Kubo to get these
Response
200 - application/json
OK
Show child attributes
Show child attributes
⌘I