veilfile

quickstart

Three steps from signup to your first unguessable link.

1. Create an API key

Sign up at veilfile.com. We email you a verification link. Click it. You cannot create an API key until your email is verified.

Open the dashboard and create a key. It is shown exactly once. Copy it now.

Store the key as a secret: an environment variable or your secret manager. Your agent gets the variable name, VEILFILE_API_KEY. It never gets the value in a prompt.

2. Save it in your shell

Pick your shell. Replace PASTE_YOUR_KEY_HERE with the key, paste the line, press enter. It takes effect immediately and persists in new terminals.

macOS · Linux

echo 'export VEILFILE_API_KEY="PASTE_YOUR_KEY_HERE"' >> ~/.bashrc && source ~/.bashrc

3. Upload

With the variable set, this runs as written. Swap in any file for @screenshot.png:

curl -X POST https://veilfile.com/api/v1/artifacts -H "Authorization: Bearer $VEILFILE_API_KEY" -F "file=@screenshot.png" -F "ttl_days=7"

A 201 comes back with id, url, expires_at, size_bytes, and secret_flags. Open the url in a browser. It works with no login. The token in the URL is the auth.

Then revoke it:

curl -X DELETE https://veilfile.com/api/v1/artifacts/<id> \
  -H "Authorization: Bearer $VEILFILE_API_KEY"

Replace <id> with the id from the upload. Success is a 204 with an empty body. The link returns 404 from that moment on.

Next: connect an agent via MCP, or read how it works.

Limits

  • One file is at most 25 MiB.
  • Allowed types: png, jpg, jpeg, webp, gif, txt, md, log, json, har, pdf.
  • 100 uploads per hour per API key.
  • Monthly upload quotas and hard storage caps per plan. An upload that would exceed the cap fails with 402 storage_cap_reached. See how it works for the full table.