REST API v1

fii.one API

Upload, manage, and share files programmatically. Integrate fii.one into your apps, websites, and workflows.

Get Your API Key

Quick Start

1Get your API key

Sign in to your fii.one account and generate an API key from Settings → API Keys.

2Upload your first file

cURL
curl -X POST "https://fii.one/api/v1/upload" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "image=@/path/to/file.jpg" \
  -F "name=my-image.jpg"

3Get the response

JSON Response
{
  "success": true,
  "data": {
    "id": "abc123-uuid",
    "title": "my-image.jpg",
    "url": "https://cdn.fii.one/user/file.jpg",
    "direct_link": "https://cdn.fii.one/user/file.jpg",
    "share_url": "https://fii.one/s/aB3xKp",
    "size": 245760,
    "mime": "image/jpeg",
    "created_at": "2026-05-03T10:00:00.000Z"
  }
}

API Endpoints

POST/api/v1/upload

Upload a file. Accepts multipart/form-data or JSON with base64.

Parameters

imageRequired. File binary or base64 data.
nameOptional. Custom filename.
GET/api/v1/files

List all your files with pagination.

Query Parameters

pagePage number (default: 1)
limitResults per page (default: 50, max: 100)
GET/api/v1/files/:id

Get detailed information about a specific file.

PATCH/api/v1/files/:id

Update file metadata (rename, move to folder).

Body (JSON)

nameNew filename
folder_idMove to folder (null for root)
DELETE/api/v1/files/:id

Permanently delete a file and its share links.

POST/api/v1/keys

Create a new API key (requires session auth).

Body (JSON)

nameRequired. Key label (e.g., "My App")
permissionsArray: ["upload", "read", "delete"]
expires_in_daysOptional. Days until expiry.

Authentication

All API requests require an API key. Include it in the Authorization header:

Authorization: Bearer fii_your_api_key_here

Alternatively, pass as query parameter: ?key=fii_your_api_key_here

Code Examples

JavaScript / Node.js

upload.js
const form = new FormData();
form.append('image', fileInput.files[0]);

const res = await fetch('https://fii.one/api/v1/upload', {
  method: 'POST',
  headers: { 'Authorization': 'Bearer YOUR_API_KEY' },
  body: form,
});

const data = await res.json();
console.log(data.data.direct_link);

Python

upload.py
import requests

url = "https://fii.one/api/v1/upload"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
files = {"image": open("photo.jpg", "rb")}

response = requests.post(url, headers=headers, files=files)
data = response.json()
print(data["data"]["direct_link"])

PHP

upload.php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://fii.one/api/v1/upload");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  "Authorization: Bearer YOUR_API_KEY"
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, [
  "image" => new CURLFile("/path/to/file.jpg")
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = json_decode(curl_exec($ch));
echo $response->data->direct_link;

Rate Limits & Quotas

Free Plan

  • • 100 API requests / hour
  • • 200 MB max file size
  • • 5 GB total storage
  • • 10 GB bandwidth / month

Pro Plan

  • • 1,000 API requests / hour
  • • 2 GB max file size
  • • 100 GB total storage
  • • 500 GB bandwidth / month

Error Codes

CodeStatusDescription
400Bad RequestMissing or invalid parameters
401UnauthorizedInvalid or missing API key
403ForbiddenInsufficient permissions
404Not FoundFile or resource not found
413Too LargeFile exceeds plan size limit
429Rate LimitedToo many requests
500Server ErrorInternal server error