For developers
For professionals
Sandbox mode

Collect photos from any mobile device. No app required.

Create upload sessions via our API or SDKs. Your users scan a QR code, snap photos in the browser, and images are delivered to your webhook, S3, Google Drive, or 6 other destinations — in seconds.

app.ts
// Install: npm install @apertur/sdk

import { Apertur } from "@apertur/sdk";

const client = new Apertur({ apiKey: "aptr_live_xxxx" });

const session = await client.sessions.create({
  destination_ids: ["dest_webhook_01"],
  expires_in_hours: 24,
});

// Share session.id via QR code — done!

See it in action

Scan this QR code with your phone to experience the upload flow — or try the desktop version.

Try the desktop demo
QR code to demo

Scan with your phone

How it works

Three simple steps to integrate mobile photo collection into any app.

🔑
01

Generate a session

Call the API with your API key to create an upload session and receive a QR code URL.

📸
02

User snaps & edits

Your user scans the QR code, takes or selects photos, and edits them right in the browser — no app needed.

🚀
03

Delivered anywhere

Images are delivered to your webhook, S3 bucket, Google Drive, Dropbox, OneDrive, Azure, FTP, or pulled via long polling — in real time.

Everything you need

Built for developers who need reliable, flexible mobile image collection.

🔒

No storage on our end

Images are delivered directly to your server. We never store your users' photos.

📐

Client-side editing

Crop, rotate, and adjust images directly in the mobile browser before upload.

🔗

9+ delivery destinations

Webhooks, S3, Google Drive, Dropbox, OneDrive, Azure Blob, Box, FTP/SFTP, and WebDAV. Fan out to multiple destinations per session.

🛡️

Mil-spec API security

HMAC-signed webhooks, IP and domain restrictions, TOTP authentication, and mTLS client certificates.

📦

Sandbox mode

Test your integration with watermarked images, no session limits, and isolated test data. Switch between live and test with one click.

🔑

Official SDKs

Node.js and PHP SDKs with full API coverage. Auto-detect sandbox mode from your API key prefix.

🍁

Proudly Canadian

Built and operated in Canada. Governed by Canadian federal and Quebec provincial privacy laws.

🎖️

Veteran owned

Founded and operated by a Canadian Armed Forces veteran. Discipline and integrity built in.

Real-time status

Server-sent events keep your app updated as images are processed and delivered.

🔐

End-to-end encryption

Optionally encrypt images client-side with RSA-OAEP + AES-256-GCM. The server never sees unencrypted data.

Simple, transparent pricing

Start free and scale as you grow. No hidden fees.

Frequently asked questions

Everything you need to know about Apertur.

Do I need to build a mobile app?+
No. The upload interface runs entirely in the mobile browser. Your users simply scan a QR code or click a link.
How are images delivered?+
Apertur supports webhooks (we POST images to your endpoint), long polling (your server pulls from our API), and direct delivery to cloud storage including S3, Google Drive, Dropbox, OneDrive, Azure Blob, Box, FTP/SFTP, and WebDAV.
What is HMAC signature verification?+
Every webhook request is signed with HMAC-SHA256 using a secret key unique to your project. This lets you verify that the request genuinely came from Apertur.
What happens if my webhook fails?+
We retry failed webhook deliveries with exponential backoff for up to the number of days configured on your plan. You'll receive email notifications on repeated failures.
Can I test without affecting production data?+
Yes. Apertur has a sandbox mode. Create test API keys (aptr_test_), and all sessions, uploads, and reports are isolated from live data. In test mode, images quality and amount is reduced for maximum performance.
How do I get started?+
Sign up, create a project, generate an API key, and make a single API call to create a session. Check out our Getting Started guide for step-by-step instructions.
What are password-protected upload sessions?+
You can require a password when creating an upload session. The user must enter the correct password before they can access the upload interface. This adds an extra layer of security for sensitive photo collection workflows.
Do you have a partner program?+
Yes. Apertur offers a partner program where agencies and integrators can earn commissions on referred customers. Contact us via our contact form to learn more about commission rates and how to join.
Are there official SDKs?+
Yes. We provide official SDKs for Node.js (@apertur/sdk) and PHP (apertur/sdk). Both support all API features including upload sessions, destinations, webhooks, encryption, and automatic sandbox URL routing.
What security features does Apertur offer?+
Apertur takes security seriously. We offer multi-factor authentication (TOTP), passkey login (WebAuthn/FIDO2), HMAC-SHA256 webhook signatures, hashed API key storage, login alerts, and session management. All data is transmitted over TLS.
Are there session limits or pricing tiers?+
Yes. Apertur offers a free tier to get started, plus paid plans with higher session limits, more images per session, and extended webhook retry windows. Visit our pricing section for full details on each tier.
Is Apertur available in multiple languages?+
Yes. The Apertur dashboard and upload interface are available in English (Canada and US), French (Canada), and Spanish. We use next-intl for seamless internationalization across the platform.
What is sandbox mode?+
Sandbox mode lets you test your integration without affecting live data. Test API keys (aptr_test_) create isolated sessions with watermarked images, a 5-image limit, and 800px max resolution. Your dashboard shows test and live data separately — switch with one click.
Collect photos from any mobile device. No app required. | Apertur