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:

1

Sign in with Telegram

No email or phone number required — one tap and you're in.

2

Upload media

Add files from your device or paste a public URL to import directly.

3

Organize into folders

Group files into folders, up to two levels deep.

4

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

http
Authorization: Bearer YOUR_API_TOKEN

Endpoints

GET/api/files

List your files. Supports search, type filter, sorting and pagination via query params.

Parameters

FieldType
folder_idstring
searchstring
typeimage | video | audio
sortstring

Response

json
{
  "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"
    }
  ]
}
POST/api/upload/url

Import a file from a public URL. Returns a task you can poll for progress.

Parameters

FieldType
urlrequiredstring
folder_idstring
filenamestring

Request body

json
{
  "url": "https://example.com/clip.mp4",
  "folder_id": null,
  "filename": "My Clip"
}

Response

json
{
  "file_id": "9388bda03215f535",
  "task_id": "d0c645b4-5ea3-4465-b258-58c975b3ffd4"
}
POST/api/upload/file

Reserve a direct upload. Returns a one-time upload_url to PUT the file to.

Parameters

FieldType
filenamerequiredstring
sizenumber
mimestring
folder_idstring
display_filenamestring

Response

json
{
  "file_id": "21dc454e67ce0f5f",
  "upload_url": "https://worker.example/upload/direct/<token>",
  "token": "f9d0c7ea-1e85-462f-867b-a16e4cc9f7c6"
}
GET/api/upload/status/:taskId

Poll the status and progress of an in-flight upload.

Response

json
{
  "task_id": "d0c645b4-5ea3-4465-b258-58c975b3ffd4",
  "file_id": "9388bda03215f535",
  "status": "processing",
  "progress": 65,
  "error_message": null
}
POST/api/files/:id/download-url

Get a temporary direct download link for a stored file.

Response

json
{ "url": "https://lh3.googleusercontent.com/..." }
DELETE/api/files/:id

Move a file to the recycle bin.

Response

json
{ "ok": true }
POST/api/folders

Create a folder (max two levels deep).

Parameters

FieldType
namerequiredstring
parent_idstring

Request body

json
{ "name": "Vacation", "parent_id": null }

Response

json
{
  "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.

Docs | NullDrop