
Introducing Files.Baby 3.0: AI-Powered File Organization
We're excited to announce the biggest update in Files.Baby history. With AI-powered organization, your files practically organize themselves.
Integrate secure, scalable cloud storage into your applications in minutes. Powerful APIs, comprehensive SDKs, and developer-first documentation.
Drop-in SDKs for React, Node.js, Python, and Go. Get started in under 5 minutes.
Use only what you need. Auth, Storage, or Database - mix and match components seamlessly.
Test safely with dedicated sandbox environments for every branch and PR.
We've obsessed over every detail of the developer experience. From type-safe SDKs to helpful error messages.
import { FilesBaby } from '@files-baby/sdk';
const client = new FilesBaby(process.env.API_KEY);
// Upload a file
const { url } = await client.upload({
file: myFile,
path: '/uploads/images',
onProgress: (progress) => {
console.log(`Upload: ${progress}%`);
}
});
console.log('File uploaded:', url);Authenticate your users seamlessly. We support standard Bearer token authentication. Manage individual sessions with granular control.
/api/v1/auth/loginObtain an access token
/api/v1/auth/registerCreate a new user account
/api/v1/auth/logoutInvalidate current session
/api/v1/auth/userGet current user details
# Login Request
curl -X POST https://api.files.baby/v1/auth/login \
-H "Content-Type: application/json" \
-d '{
"email": "user@example.com",
"password": "secure_password",
"device_name": "MacBook Pro"
}'
# Response
{
"token": "23|abb...789",
"user": {
"id": 1,
"email": "user@example.com"
}
}Navigate the virtual file system with ease. Our folder-based hierarchy works just like your OS, but in the cloud.
/api/v1/file-entriesList files and folders
/api/v1/file-entries/{id}Get specific file metadata
// List contents of a specific folder
const response = await fetch(
'/api/v1/file-entries?parentId=5&orderBy=name',
{
headers: {
Authorization: `Bearer ${token}`
}
}
);
const data = await response.json();
console.log(data);
// [
// { "id": 12, "name": "Report.pdf", "type": "file" },
// { "id": 13, "name": "Images", "type": "folder" }
// ]Handle creation of new assets. We support standard multipart form uploads for files and simple JSON payloads for folders.
/api/v1/file-entriesUpload file or create folder
import requests
# Upload a file
files = {'file': open('document.pdf', 'rb')}
data = {'parentId': 5}
r = requests.post(
'https://api.files.baby/v1/file-entries',
files=files,
data=data,
headers={'Authorization': 'Bearer ' + token}
)
# Create a folder
payload = {
'type': 'folder',
'name': 'New Project',
'parentId': 5
}
r = requests.post(..., data=payload)Keep your data clean. Rename files, update descriptions, or delete obsolete assets. Bulk deletion is supported via comma-separated IDs.
/api/v1/file-entries/{id}Rename or update description
/api/v1/file-entries/{ids}Delete one or multiple files
// Rename a file
await client.put('/api/v1/file-entries/45', {
name: "Final_Report_v2.pdf",
description: "Updated with Q4 stats"
});
// Delete multiple files
// Accepts a comma-separated string of IDs
await client.delete('/api/v1/file-entries/45,46,47');Built for teams. Generate public links for external sharing or manage granular user permissions for internal collaboration.
/api/v1/file-entries/{id}/shareable-linkCreate public link
/api/v1/file-entries/{id}/permissionsAdd user access
// Create a public link
const link = await client.post(
'/api/v1/file-entries/88/shareable-link',
{
password: "secure-share",
expiresAt: "2025-12-31"
}
);
// Add a collaborator
await client.post(
'/api/v1/file-entries/88/permissions',
{
email: "colleague@example.com",
view: true,
edit: true
}
);Start building for free. Scale as you grow.
Deep dives into distributed systems, security, and developer productivity.