Fetch File
curl --request GET \
--url https://api.replyke.com/api/v6/:projectId/api/v7/storage/:fileIdimport requests
url = "https://api.replyke.com/api/v6/:projectId/api/v7/storage/:fileId"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.replyke.com/api/v6/:projectId/api/v7/storage/:fileId', 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.replyke.com/api/v6/:projectId/api/v7/storage/:fileId",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.replyke.com/api/v6/:projectId/api/v7/storage/:fileId"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.replyke.com/api/v6/:projectId/api/v7/storage/:fileId")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.replyke.com/api/v6/:projectId/api/v7/storage/:fileId")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"fileId": "<string>",
"type": "<string>",
"originalPath": "<string>",
"originalSize": 123,
"originalMimeType": "<string>",
"position": 123,
"metadata": {},
"userId": "<string>",
"entityId": "<string>",
"commentId": "<string>",
"spaceId": "<string>",
"createdAt": "<string>",
"updatedAt": "<string>",
"image": {
"originalWidth": 123,
"originalHeight": 123,
"variants": {},
"processingStatus": "<string>",
"format": "<string>",
"quality": 123,
"exifStripped": true
}
}Storage Endpoints
Fetch File
Retrieve file metadata and proxy URLs by file ID
GET
/
:projectId
/
api
/
v7
/
storage
/
:fileId
Fetch File
curl --request GET \
--url https://api.replyke.com/api/v6/:projectId/api/v7/storage/:fileIdimport requests
url = "https://api.replyke.com/api/v6/:projectId/api/v7/storage/:fileId"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.replyke.com/api/v6/:projectId/api/v7/storage/:fileId', 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.replyke.com/api/v6/:projectId/api/v7/storage/:fileId",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.replyke.com/api/v6/:projectId/api/v7/storage/:fileId"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.replyke.com/api/v6/:projectId/api/v7/storage/:fileId")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.replyke.com/api/v6/:projectId/api/v7/storage/:fileId")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"fileId": "<string>",
"type": "<string>",
"originalPath": "<string>",
"originalSize": 123,
"originalMimeType": "<string>",
"position": 123,
"metadata": {},
"userId": "<string>",
"entityId": "<string>",
"commentId": "<string>",
"spaceId": "<string>",
"createdAt": "<string>",
"updatedAt": "<string>",
"image": {
"originalWidth": 123,
"originalHeight": 123,
"variants": {},
"processingStatus": "<string>",
"format": "<string>",
"quality": 123,
"exifStripped": true
}
}Returns metadata and proxy URLs for a file. For image files, also returns the image extension data including all variants.
Requires an authenticated user.
Rate limit: 100 requests per 5 minutes.
Image extension (only when
Path Parameters
string
required
The UUID of the file to retrieve.
Response
Base fields (all file types)
string
The file’s UUID.
string
One of:
image, video, document, other.string
Proxy URL for the original file.
number
File size in bytes at the time of upload.
string
MIME type of the uploaded file.
number
Display order in a multi-attachment context.
object
Custom metadata stored at upload time. Always includes
originalName and uploadedAt.string
ID of the user who uploaded the file (present if associated).
string
ID of the associated entity (present if provided at upload).
string
ID of the associated comment (present if provided at upload).
string
ID of the associated space (present if provided at upload).
string
ISO 8601 timestamp.
string
ISO 8601 timestamp.
Image extension (only when type === "image")
object
Image processing details.
Show image fields
Show image fields
number
Pixel width of the source image before processing.
number
Pixel height of the source image before processing.
object
Named variants. Each key maps to
{ publicPath, width, height, size, format }.string
"completed" or "failed".string
Output format (e.g.,
"webp").number
Quality setting used during processing.
boolean
Whether EXIF metadata was removed.
Error Responses
Not Found — 404
Not Found — 404
{ "error": "File not found", "code": "storage/file-not-found" }

