Skip to main content
POST
/
presigned-url
/
{token}
Upload with an upload URL
curl --request POST \
  --url https://api.fivemesh.io/v1/presigned-url/{token} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "path": "<string>",
  "filename": "<string>",
  "metadata": {}
}
'
import requests

url = "https://api.fivemesh.io/v1/presigned-url/{token}"

payload = {
"path": "<string>",
"filename": "<string>",
"metadata": {}
}
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({path: '<string>', filename: '<string>', metadata: {}})
};

fetch('https://api.fivemesh.io/v1/presigned-url/{token}', 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.fivemesh.io/v1/presigned-url/{token}",
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([
'path' => '<string>',
'filename' => '<string>',
'metadata' => [

]
]),
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.fivemesh.io/v1/presigned-url/{token}"

payload := strings.NewReader("{\n \"path\": \"<string>\",\n \"filename\": \"<string>\",\n \"metadata\": {}\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.fivemesh.io/v1/presigned-url/{token}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"path\": \"<string>\",\n \"filename\": \"<string>\",\n \"metadata\": {}\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.fivemesh.io/v1/presigned-url/{token}")

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 \"path\": \"<string>\",\n \"filename\": \"<string>\",\n \"metadata\": {}\n}"

response = http.request(request)
puts response.read_body
Upload one or more files to a scoped upload URL created by GET /presigned-url. No service key is required. Send a multipart form body to the returned uploadUrl.
token
string
required
Upload token from the uploadUrl.
file
file
required
File to upload. Multiple files are allowed when the URL was created with maxFiles greater than 1.
path
string
Optional destination folder. If omitted, the upload uses the path from the created URL. When provided, it must stay inside the URL path lock.
filename
string
Optional stored filename.
metadata
object
Optional metadata when the URL was created with allowCustomMetadata=true.
curl -X POST "https://api.fivemesh.io/v1/presigned-url/UPLOAD_TOKEN" \
  -F "file=@a.png"
If the upload URL was created with path=screenshots, this request stores a.png under screenshots/a.png. For a single file, the response contains object. For multiple files, the response contains results.