Secure Multi-Tenant
File Storage

Store, manage, and access your files with our powerful API and TypeScript SDK. Built for developers who need reliable, scalable file storage.

Features

Multi-Tenant Architecture

Isolated projects with independent file storage, API keys, and access controls for each tenant.

Secure API Authentication

API key-based authentication with origin whitelisting to ensure only authorized domains can access your files.

TypeScript SDK

Framework-agnostic SDK with full TypeScript support, making file management simple and type-safe.

File Management API

Upload, download, list, and delete files with a RESTful API. Support for chunked uploads and file metadata.

Rate Limiting

Built-in rate limiting to protect your API from abuse and ensure fair resource allocation.

Nova Admin Panel

Manage projects, API keys, files, and users through an elegant Laravel Nova admin interface.

How It Works

1

Create a Project

Sign up and create a new project in the admin panel.

2

Generate API Key

Create an API key and configure allowed origins for security.

3

Use the SDK

Install the SDK or use our REST API directly in your app.

4

Manage Files

Upload, download, and manage your files programmatically.

For AI Code Agents

AI-Ready Integration

Download our integration specification and let Claude Code, ChatGPT, Cursor, or any AI code agent automatically implement Files Hub in your application.

Download Specification

Get the complete API specification in JSON or Markdown format for your AI code agent.

Full Documentation

View the complete integration guide with examples, TypeScript types, and best practices.

View Full Guide

SDK Example

import { FilesHubClient } from '@files-hub/sdk';

const client = new FilesHubClient({
  apiKey: 'your-api-key',
  baseUrl: 'https://your-domain.com/api/v1'
});

// Upload a file
const uploadResult = await client.upload(file, {
  folder: 'documents',
  metadata: { category: 'invoices' }
});

// List files
const files = await client.list({ folder: 'documents' });

// Download a file
const fileData = await client.download(fileId);

// Delete a file
await client.delete(fileId);