Phone → website uploads

The file is on the phone. The form is on the computer. Fixed.

CrossUpload adds “Upload from your phone” to the upload button you already have. Visitors scan a QR code, pick a photo or document, and it appears in your form a few seconds later — no app, no account, no WhatsApp detour.

No credit card for the Free plan · Works with any website · English & Turkish

From six steps to two

Today your visitor sends the file to themselves, downloads it, finds it, and uploads it again. With CrossUpload they scan and send.

Without CrossUpload

  1. Open WhatsApp or email on the phone
  2. Send the photo to yourself
  3. Open the chat on the computer
  4. Download the (compressed) file
  5. Find it in the Downloads folder
  6. Upload it to the form

With CrossUpload

  1. Scan the QR code with the phone camera
  2. Pick the file and tap Send

The verified file appears in the form on the computer. The visitor continues and submits as usual.

Why this works →

Add it in three steps

1

Create a project

Sign up, add your website’s origin, choose allowed file types and limits, and create a server API key.

2

Add a session endpoint

Your backend calls POST /v1/sessions with its secret key and returns short-lived credentials to the browser.

3

Attach the widget

One script tag and CrossUpload.attach() on your existing button. Accepted file IDs land in a hidden field.

<button type="button" id="upload">Upload a file</button>
<input type="hidden" id="attachments" name="attachment_ids" value="[]">
<script src="https://app.crossupload.com/v1/widget.js"></script>
<script>
  CrossUpload.attach({
    target: '#upload',
    mode: 'picker',
    sessionEndpoint: '/api/crossupload/session',
    resultInput: '#attachments',
    maxFiles: 3,
    onComplete({ files }) { console.log(files); }
  });
</script>

Read the quickstart →

Security is the default, not an add-on

Files upload straight to private quarantine storage with short-lived, narrowly scoped credentials. A background worker checks the real file type, scans it with ClamAV, and promotes the exact verified version to an immutable delivery copy. Only then does your form see it.

How we protect uploads →

  • Single-use, expiring QR pairing
  • Separate credentials for server, desktop and phone
  • HTML, SVG and executables rejected by default
  • Private delivery with expiring signed URLs
  • Signed webhooks with retries

Simple pricing. Only accepted files count.

Opening the picker, scanning a QR code, retries and rejected files are free.

Free

$0/mo
  • 100 accepted files/month
  • 10 MB per file
  • 7-day retention

Starter

$19/mo
  • 2,000 accepted files/month
  • 25 MB per file
  • 30-day retention

Business

$149/mo
  • 50,000 accepted files/month
  • 100 MB per file
  • 180-day retention

Compare plans in detail →

Stop losing visitors at the upload step

Start on the Free plan in a couple of minutes. Questions? Write to master@crossupload.com.