Documentation
Everything you need to know about uploading, organizing, sharing, and automating with NullDrop.
Getting Started
NullDrop is a cloud store for your images and videos — storage is granted on admin approval. Get up and running in four steps:
Sign in with Telegram
No email or phone number required — one tap and you're in.
Upload media
Add files from your device or paste a public URL to import directly.
Organize into folders
Group files into folders, up to two levels deep.
Share as links or packs
Send a single file link, or bundle a whole folder into one public pack.
Supported formats
JPEG, PNG, GIF, WebP, HEIC, BMP, TIFF, and RAW images · MP4, MOV, MKV, AVI, WMV, FLV, WebM, 3GP, and more.
Uploading Files
There are two ways to add files, both reachable from the + button in the bottom-right corner.
Direct upload
Browse or drag a file from your device. You can optionally set a custom name before confirming. Progress is shown live in the bottom-right panel.
URL upload
Paste a direct link and NullDrop fetches and stores it server-side — no need to download it yourself first.
Content validation: files are verified by their actual bytes, not the extension — a ZIP renamed to .mp4 is rejected.
Upload stages: each upload moves through Queued → Fetching → Verifying → Processing → Complete. Double-click a completed URL upload in the progress panel to open it.
Folders & Organization
Create folders from the + menu. Folders can nest up to two levels deep (e.g. Photos → Vacation).
Move files via the right-click menu to relocate them between folders or back to the root.
Rename files and folders anytime. Renaming a file also updates its stored name, so it may take a moment to reflect.
Delete a folder and its files move safely back to the root — they are never deleted with the folder. Sub-folders and their packs are removed.
Sharing & Packs
File links: every file has a public link. Use “Copy link” from the right-click menu — anyone with it can preview and download, no account needed.
Packs turn an entire folder into one shareable link:
- • Auto-updating — add or remove files and the pack reflects it instantly.
- • One pack per folder keeps links predictable.
- • Fully public — viewers browse and download without signing in.
Create one from My Packs → Create Pack, name it, and choose the folder to link.
Recycle Bin
Deleting a file moves it to the Recycle Bin rather than removing it immediately.
- • 30-day retention — items are permanently purged after 30 days.
- • Restore anything back to your drive with one click.
- • Automatic cleanup runs when you open your dashboard.
API Reference
NullDrop exposes a REST API for automation. Generate a token from Account → API Token and send it as a Bearer token.
Authentication
Authorization: Bearer YOUR_API_TOKENEndpoints
/api/filesList your files. Supports search, type filter, sorting and pagination via query params.
Parameters
| Field | Type |
|---|---|
folder_id | string |
search | string |
type | image | video | audio |
sort | string |
Response
{
"files": [
{
"file_id": "385e3673becac594",
"name": "googlelogo.png",
"size": 13504,
"mime": "image/png",
"status": "active",
"folder_id": null,
"created_at": "2026-06-15T17:15:57.137Z"
}
]
}/api/upload/urlImport a file from a public URL. Returns a task you can poll for progress.
Parameters
| Field | Type |
|---|---|
urlrequired | string |
folder_id | string |
filename | string |
Request body
{
"url": "https://example.com/clip.mp4",
"folder_id": null,
"filename": "My Clip"
}Response
{
"file_id": "9388bda03215f535",
"task_id": "d0c645b4-5ea3-4465-b258-58c975b3ffd4"
}/api/upload/fileReserve a direct upload. Returns a one-time upload_url to PUT the file to.
Parameters
| Field | Type |
|---|---|
filenamerequired | string |
size | number |
mime | string |
folder_id | string |
display_filename | string |
Response
{
"file_id": "21dc454e67ce0f5f",
"upload_url": "https://worker.example/upload/direct/<token>",
"token": "f9d0c7ea-1e85-462f-867b-a16e4cc9f7c6"
}/api/upload/status/:taskIdPoll the status and progress of an in-flight upload.
Response
{
"task_id": "d0c645b4-5ea3-4465-b258-58c975b3ffd4",
"file_id": "9388bda03215f535",
"status": "processing",
"progress": 65,
"error_message": null
}/api/files/:id/download-urlGet a temporary direct download link for a stored file.
Response
{ "url": "https://lh3.googleusercontent.com/..." }/api/files/:idMove a file to the recycle bin.
Response
{ "ok": true }/api/foldersCreate a folder (max two levels deep).
Parameters
| Field | Type |
|---|---|
namerequired | string |
parent_id | string |
Request body
{ "name": "Vacation", "parent_id": null }Response
{
"folder_id": "7b0eb2137b60ad6b",
"name": "Vacation",
"parent_id": null
}Security & Privacy
Telegram login — we never see your phone number. Telegram shares only your ID, name, username and photo, verified with a cryptographic signature.
Sessions live in a secure HTTP-only cookie that expires after 30 days. Log out anytime to invalidate it.
API tokens can be regenerated or revoked from Account settings; regenerating invalidates the old token immediately.
Private by default — files are visible only to you until you explicitly share a file link or publish a pack.