DEVELOPER PLATFORM

Build with
storage.now

36 REST endpoints. Zero egress. Global edge. MCP-native.
The file storage API that gets out of your way.

300+
Edge locations
<50ms
Metadata latency
$0
Egress fees
5 GB
Free storage
Upload, share, done. Two requests.
storage.now
$ curl -X PUT /files/models/v3.bin \
-H "Authorization: Bearer sk_..." \
-H "Content-Type: application/octet-stream" \
--data-binary @model-v3.bin
{
"id": "o_7f2a9c...",
"path": "models/v3.bin",
"size": 47185920,
"content_type": "application/octet-stream"
}
$ curl -X POST /shares \
-d '{"path":"models/v3.bin","grantee":"a/inference","permission":"read"}'
{ "id": "sh_9ea9...", "permission": "read" }
$
One API. Any language.
$ curl -X PUT https://storage.liteio.dev/files/hello.txt \
    -H "Authorization: Bearer sk_..." \
    -H "Content-Type: text/plain" \
    -d "Hello, world!"

→ 201 Created
{
  "id": "o_a1b2c3",
  "path": "hello.txt",
  "name": "hello.txt",
  "size": 13
}
const res = await fetch("https://storage.liteio.dev/files/hello.txt", {
  method: "PUT",
  headers: {
    "Authorization": "Bearer sk_...",
    "Content-Type": "text/plain",
  },
  body: "Hello, world!",
});

const file = await res.json();
// → { id: "o_a1b2c3", path: "hello.txt", size: 13 }
import requests

res = requests.put(
    "https://storage.liteio.dev/files/hello.txt",
    headers={
        "Authorization": "Bearer sk_...",
        "Content-Type": "text/plain",
    },
    data="Hello, world!",
)

file = res.json()
# → {"id": "o_a1b2c3", "path": "hello.txt", "size": 13}
Everything you need to ship
PUT /files/docs/readme.md
Authorization: Bearer sk_...
Content-Type: text/markdown

<file bytes>

→ 201 Created
{
  "id": "o_7f2a9c",
  "path": "docs/readme.md",
  "name": "readme.md",
  "size": 1234
}
Upload anything

PUT a file, get a URL. Content-Type auto-detected from extension. Parent folders created on the fly. Up to 100 MB per request, or unlimited via presigned URLs.

GET /folders/docs
Authorization: Bearer sk_...

→ 200 OK
{
  "path": "docs/",
  "items": [
    {"name": "reports", "is_folder": true},
    {"name": "readme.md", "size": 1234}
  ]
}

POST /drive/rename
{"path": "docs/old.md", "new_name": "new.md"}

→ {"old_path":"docs/old.md","new_path":"docs/new.md"}
Organize with folders

Virtual folder tree with nested paths. Star, rename, move, copy, trash, and restore. Full Google Drive-class file management through a simple REST API.

POST /shares
Authorization: Bearer sk_...
Content-Type: application/json

{
  "path": "models/v3.bin",
  "grantee": "a/inference",
  "permission": "read"
}

→ 201 Created
{"id": "sh_9ea9", "permission": "read"}
Share with anyone

Grant read or write access to any actor. Humans and AI agents share the same permission model. List, filter, and revoke shares at any time.

POST /presign/upload
Authorization: Bearer sk_...
Content-Type: application/json

{
  "path": "models/v3.bin",
  "content_type": "application/octet-stream"
}

→ 200 OK
{
  "upload_url": "https://...signed...",
  "method": "PUT",
  "expires_in": 3600
}
Direct to storage

Presigned URLs for zero-hop uploads direct to object storage. No file bytes pass through the API server. Ideal for large files and high-throughput pipelines.

36 endpoints. One base URL.
https://storage.liteio.dev
Auth
7 routes
POST /actors
POST /auth/challenge
POST /auth/verify
POST /auth/magic-link
+3 more
Files
4 routes
PUT /files/*path
GET /files/*path
DEL /files/*path
HEAD /files/*path
Folders
4 routes
POST /folders
GET /folders
GET /folders/*path
DEL /folders/*path
Presign
3 routes
POST /presign/upload
POST /presign/download
POST /presign/complete
Shares
5 routes
POST /shares
GET /shares
DEL /shares/:id
GET /shared
GET /shared/:owner/*
Drive
13 routes
PATCH /drive/star
POST /drive/rename
POST /drive/move
GET /drive/search
+9 more
> read the full documentation →
Built for the AI era

MCP Server

Model Context Protocol. 8 tools for file management. Connect any MCP-compatible AI assistant.

ChatGPT

OAuth 2.0 PKCE flow. Dynamic client registration. Works with ChatGPT plugins and custom GPTs.

Claude

Native MCP support. Direct file access. Seamless integration with Claude Desktop and API.

Set up AI integration →