Skip to main content

Uploading an image

If you wish to upload an image to the Upload API, you can do so by sending a POST request to the https://api.fivemanage.com/api/v3/file endpoint.

General

Headers

You need to send an Authorization header with your API key.

Query parameters

You can also send your API key as a query parameter ?apiKey=. This is useful if you are using the Upload API in a browser.

Body

The body of the request should be a form-data object with a file named file .

Uploading an image with Axios

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

const apiKey = 'YOUR_API_TOKEN';
const url = 'https://api.fivemanage.com/api/v3/file';

const formData = new FormData();

formData.append('file', fs.createReadStream('image.png'));
// Optional metadata field (JSON string)
formData.append("metadata", JSON.stringify({
    name: 'My image',
    description: 'This is my image',
}));

// Custom filename and path
formData.append("filename", "cool_image.png")
// if a folder does not exist, it will be created automatically
formData.append("path", "path/to/folder")

axios.post(url, formData, {
    headers: {
        Authorization: apiKey,
    }
}).then(res => {
    console.log(res.data.url);
}).catch(err => {
    console.error(err);
});

Uploading a base64 image

If you have a base64 encoded image, you can upload it using the /v3/file/base64 endpoint. This is particularly useful for environments where FormData is not available or difficult to use, such as some game engines or server-side scripts.
const axios = require('axios');

const apiKey = 'YOUR_API_TOKEN';
const url = 'https://api.fivemanage.com/api/v3/file/base64';

const data = {
    base64: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==",
    filename: "pixel.png",
    // Optional metadata field (JSON string)
    metadata: JSON.stringify({
        name: 'My image',
        description: 'This is my image',
    })
};

axios.post(url, data, {
    headers: {
        Authorization: apiKey,
        'Content-Type': 'application/json'
    }
}).then(res => {
    console.log(res.data.url);
}).catch(err => {
    console.error(err);
});

Response

Success
{
  "data": {
	// use this ID when you want to delete or get a file later
    "id": "7F9pGhN8qwErT1vx5aZk",
    "url": "https://r2.fivemanage.com/6E9pGhN8qwErT1vx5aZk/7F9pGhN8qwErT1vx5aZk.webp"
  },
  "status": "ok"
}

Deleting a file

When we want to delete an image, we can do so by sending a DELETE request to the https://api.fivemanage.com/api/v3/file/:path endpoint. The :path parameter should be the ID or the file path of the image you want to delete. You can get the ID from the response when you upload an image (see above).
import axios from "axios";

const options = {
  method: 'DELETE',
  url: 'https://api.fivemanage.com/api/v3/file/0987654321',
  headers: {
    Authorization: 'YOUR_API_TOKEN'
  }
};

axios.request(options).then(function (response) {
  console.log(response.data);
}).catch(function (error) {
  console.error(error);
});

Listing images

You can list your uploaded images using a GET request. You can filter by type to only see images.
const axios = require('axios');

const apiKey = 'YOUR_API_TOKEN';
// Filter by type=image
const url = 'https://api.fivemanage.com/api/v3/file?type=image';

axios.get(url, {
    headers: { Authorization: apiKey }
}).then(res => {
    console.log(res.data);
}).catch(err => {
    console.error(err);
});

Getting image details

To get details about a specific image, including its metadata, use the GET request with the file ID.
const axios = require('axios');

const apiKey = 'YOUR_API_TOKEN';
const fileId = '7F9pGhN8qwErT1vx5aZk';
const url = `https://api.fivemanage.com/api/v3/file/${fileId}`;

axios.get(url, {
    headers: { Authorization: apiKey }
}).then(res => {
    console.log(res.data);
}).catch(err => {
    console.error(err);
});

Games & Mods

FiveM

You can upload files from Lua using the base64 endpoint.
You can upload an image using the base64 endpoint directly from Lua.
local apiKey = "YOUR_API_TOKEN"
local url = "https://api.fivemanage.com/api/v3/file/base64"
local base64Image = "data:image/png;base64,..." -- Your base64 string

PerformHttpRequest(url, function(statusCode, text, headers)
    local data = json.decode(text)
    if data then
        print("Uploaded: " .. data.data.url)
    else
        print("Error: " .. text)
    end
end, 'POST', json.encode({
    base64 = base64Image,
    filename = "image.png"
}), {
    ["Content-Type"] = "application/json",
    ["Authorization"] = apiKey
})
There are a few ways to upload an image to the Image API. The easiest way is to use Screenshot Basic.

Screenshot Basic

Using headers
exports['screenshot-basic']:requestScreenshotUpload('https://api.fivemanage.com/api/v3/file',
'file',
{
    headers = {
        Authorization = "YOUR_API_TOKEN"
    }
},
function(data)
    local resp = json.decode(data)
    if resp then
		-- the url is in resp.data.url	
        print(resp.data.url)
    end
end)
Using query parameters
exports['screenshot-basic']:requestScreenshotUpload('https://api.fivemanage.com/api/v3/file?apiKey=YOUR_API_TOKEN', 'file', function(data)
    local resp = json.decode(data)
    if resp then
        print(resp.data.url)
    end
end)