Persistent file IDs
Every registered file gets a INX-01-XXXXXXXX identity that survives renames and content changes.
INX gives files a persistent identity beyond filenames and extensions. Register, identify, verify and track files through a unified system built for developers and applications.
INX is a registry and identity layer that works alongside your existing storage — it doesn't replace it.
An application registers a file and receives a unique INX identity, independent of its filename.
Applications retrieve a file's metadata, version history and storage location using its INX ID — not its path.
Applications confirm file integrity at any time by comparing content against the SHA-256 checksum recorded for that INX ID.
No fabricated roadmap items — this is the local engine you can test right now at /app.
Every registered file gets a INX-01-XXXXXXXX identity that survives renames and content changes.
Every new upload under the same INX ID becomes a tracked version, each with its own checksum and size.
Content integrity is computed on every upload and stored per version — not bolted on after the fact.
Upload, look up, search, version and delete files through a plain HTTP API — see the Documentation section below.
Deleted files move to a recoverable trash with restore and permanent-delete actions, not silent data loss.
Files sharing a checksum are flagged as duplicates and can be cleaned up automatically, keeping the original.
These examples hit your own machine. Start the server with go run ./cmd/inx-server, then run them from a terminal.
curl -c cookies.txt -X POST http://localhost:8080/api/v1/auth/register \ -H "Content-Type: application/json" \ -d '{"email":"you@example.com","password":"at-least-8-chars"}' # cookies.txt now holds your session
curl -b cookies.txt \ -F "file=@project-document.pdf" \ http://localhost:8080/api/v1/files # → {"inx_id":"INX-01-AMSYGXCA","version":1,...}
POST /auth/register Create an account (also signs in)
POST /auth/login Sign in
POST /auth/logout Sign out
GET /auth/me Current user
GET /overview Dashboard summary (activity, storage, recent, trash)
POST /files Register a file, get back an INX ID
GET /files/{id} Fetch file metadata
GET /files/{id}/download Download the latest version
GET /files/{id}/versions List all versions
POST /files/{id}/versions Register a new version
DELETE /files/{id} Soft-delete (recoverable)
POST /files/{id}/restore Restore a soft-deleted file
DELETE /files/{id}/purge Permanently delete
GET /files/deleted List soft-deleted files
GET /search?q= Search your files by name
POST /duplicates/clean Remove duplicate files by checksum
This is the live schema of the server running at /app — not a separate, aspirational spec.
No account on a hosted service required yet — run the engine locally and register your first file in under a minute.
Open the local app →