How can we help?
Find answers about image hosting, the optimizer, QR codes, accounts, and billing
Getting Started4
Uppic is an image hosting service with a built-in image optimizer and a QR code studio (both static and dynamic QR) in one place. You can start using it for free without creating an account.
No — you can host images, compress files, and create static QR codes without signing in. A free account adds persistent storage, a management dashboard, dynamic QR codes, galleries, and API access.
There are four main tools: image hosting (/upload) with instant share links, the optimizer (/optimize) for WebP/AVIF conversion, the QR studio (/qr) supporting URL, Wi-Fi, PromptPay and more, and the workflow (/workflow) that compresses and hosts in one step. There is also an image inspector (/analyze).
Use the TH/EN language switcher in the top navigation on any page — your choice is remembered.
Image Hosting13
Yes — guests (not signed in) can upload files up to 10 MB each. Free members get 500 MB of total storage, while Pro and Business get 20 GB and 200 GB respectively.
Yes — upload right away and get all link formats. You will also receive a delete link; keep it safe because it is the only way to remove that image later (guests have no management dashboard).
JPG, PNG, WebP, AVIF, GIF (including animations), APNG, BMP, and TIFF (BMP/TIFF are re-encoded to PNG). HEIC/HEIF from iPhones is not supported yet — please convert to JPG or PNG first. File types are detected from the actual file bytes, not the extension.
Guests and the Free plan: 10 MB per file. Pro and Business: 25 MB per file. Up to 20 files per upload request.
The default is "never expires" — images stay as long as they are not deleted and do not violate the terms. You can also choose an automatic expiry from 1 hour up to 1 year.
Yes — when uploading, choose an expiry of 1 hour, 6 hours, 1 day, 7 days, 30 days, 90 days, 1 year, or never. Members can also change the expiry of already-uploaded images from the dashboard. When the time is up, the image is moved to trash and purged automatically.
A direct link is a URL that points straight to the image file (e.g. /f/filename.jpg), ready to embed in websites, forums, or apps. Every image also gets thumbnail (.th) and medium (.md) variant links, plus ready-to-copy HTML, Markdown, and BBCode embed snippets.
Hotlinking means embedding an image's direct link on another website. Uppic supports hotlinking — files are served with long-lived cache headers (and CDN support) so they load fast.
Not supported — hosted image files are immutable, so you must upload a new file and get a new link. If you need a permanent link whose destination can change, use a Dynamic QR instead: point it at your image page, then update the destination to a new image anytime without changing the QR.
Members: go to Dashboard → Images and delete — the image moves to Trash for 7 days and can be restored before permanent deletion. Guests: use the delete link you received when uploading.
The default is Unlisted — images are not listed or searchable; only people with the link can view them. Members can also choose Private (only the signed-in owner can view) or Public, at upload time or later.
Not supported yet. The closest alternatives are Private mode (only the signed-in owner can view) or Unlisted with the link shared only to people you trust.
Yes, by default — EXIF/GPS metadata (location, camera model, etc.) is stripped at upload time for privacy. If you want to keep metadata, untick the "Strip EXIF/GPS" option before uploading.
Image Optimizer10
At the default quality (80) the difference is nearly invisible while the file shrinks dramatically. You can adjust quality from 1–100 or use target-file-size mode to let the system find the right quality, and you see the savings percentage per file before downloading.
Lossless compression keeps every pixel intact (smaller savings), while lossy discards detail the eye barely notices for much smaller files. Uppic uses adjustable lossy compression — for the closest-to-lossless result, set quality to 100 and choose "keep original format" for PNG files.
WebP is a modern image format from Google that produces files roughly 25–35% smaller than JPG/PNG at the same quality, with support for transparency and animation. All major browsers support it — it is our recommended choice for general web use.
AVIF is newer than WebP and produces the smallest files (often 50% smaller than JPG) at the same quality, at the cost of slower encoding. Nearly all modern browsers support it — ideal when file size matters most.
Use WebP for general purposes (best balance of size and compatibility), AVIF when you want the smallest possible files, and "keep original format" when the destination system specifically requires JPG/PNG.
Yes — import a PNG and output as WebP/AVIF for maximum savings, or choose "keep original format" to stay in PNG (transparency fully preserved).
Yes, including animated GIFs — converting to animated WebP saves a lot of space. The only limitation: watermarks are not applied to animations.
Yes, up to 20 files per batch. Jobs run through a background queue with live status updates. Daily quotas: guests 20 files, Free 50, Pro 1,000, Business 10,000 files/day.
No — originals are used for processing and then discarded. Output files are kept for download for 7 days, then purged automatically. To keep a result long-term, click "Host this image" to move it into image hosting.
Yes — when the job completes, use the "Download all (ZIP)" button to grab every file in one archive, or download files individually.
QR Code9
Static QR codes never expire — the data is encoded in the image itself and works forever, even without an account. Dynamic QR codes use our short link and keep working as long as the code remains active in your account.
A static QR encodes the data (URL, text, Wi-Fi, etc.) directly into the image — free, unlimited, no sign-in needed, and it never expires. The trade-off: the content cannot be edited later (you must generate a new one) and there are no scan statistics.
Static QR is free, unlimited, and requires no sign-in. Dynamic QR requires an account: the Free plan includes 3 codes, Pro 50, and Business 500.
Yes — upload a logo (up to 1 MB) and adjust its size. Error correction is automatically raised to level H so the QR stays scannable even with the logo covering the center.
Yes — customize both the QR foreground (dark) color and the background color, plus add a frame with a call-to-action label like "SCAN ME".
Yes, as long as the colors contrast strongly — dark pattern on a light background. The system checks the contrast ratio automatically and warns you when it drops below 3:1, meaning the QR may fail to scan. Adjust the colors before using it in production.
Yes — enter the Wi-Fi name (SSID), password, and encryption type; guests scan and connect instantly without typing. Other supported types include text, email, phone, SMS, vCard business cards, calendar events, and social links.
Yes — enter a 10-digit phone number or 13-digit national ID, and optionally set a fixed amount (or leave it blank for the payer to fill in). Great for shops and personal transfers.
Yes — download as SVG (vector, scales infinitely, ideal for print) or PNG (ideal for digital use). Colors, logo, and frame apply to both formats.
Dynamic QR6
A dynamic QR does not embed the destination URL directly — it embeds a short link (like /r/abc123) that redirects to your destination. This lets you change the destination later without reprinting the QR, and every scan is tracked for analytics.
Static: data lives in the image, cannot be edited, no analytics, free and unlimited, no login, never expires. Dynamic: uses a short link, destination editable anytime, scan analytics included, requires an account, quota by plan (Free 3 / Pro 50 / Business 500). For large print runs where the destination might change, choose dynamic.
Yes (dynamic QR only) — go to Dashboard → QR Codes, select the code, and edit the destination URL. The change applies instantly to every printed copy, and the previous destinations are kept in a history log.
Yes (dynamic QR) — see daily scan counts, unique scanners, repeat scans, device type, operating system, country, and recent scans, with CSV export available.
Free plan: 3 codes, Pro: 50, Business: 500 (only non-deleted codes count). Static QR codes are unlimited on every plan.
Yes — copy the share-page link or direct link of a hosted image and use it as the QR destination. With a dynamic QR you can point it at a different image later without reprinting. See the Help Center for a step-by-step guide.
Account8
Not for basic use (hosting, compression, static QR). An account is required for: the management dashboard (delete/restore), persistent storage, dynamic QR, galleries, webhooks, and the API.
Yes — the Free plan includes 500 MB storage, 10 MB max file size, 3 dynamic QR codes, and 50 optimizations/day, with no card required.
Three ways: email + password (email verification required), Google account, and magic link (a passwordless sign-in link sent to your email).
On the sign-in page, click "Forgot password" and enter your email — a reset link will be sent to you (the link expires after a while). Alternatively, sign in with a magic link instead.
Self-service email changes are not supported yet. If you need to change your email, please contact us via the contact page.
Yes — TOTP-based 2FA via authenticator apps (Google Authenticator, Authy, etc.). Enable it at Dashboard → Security; once on, sign-in requires an extra 6-digit code from your app.
There is no automated full-account export yet. What you can do today: download images from the dashboard, download an entire gallery as a ZIP, and export QR scan analytics as CSV. For anything else, please contact us.
Self-service account deletion is not available yet — please reach out via the contact page and we will delete your account, images, QR codes, and all related data for you.
Billing8
Three plans — Free (฿0): 500 MB storage, 10 MB files, 3 dynamic QR, 50 optimizations/day. Pro (฿199/mo): 20 GB, 25 MB files, 50 dynamic QR + analytics, 1,000 optimizations/day, 2,000 API calls/hour. Business (฿799/mo): 200 GB, 500 dynamic QR, 10,000 optimizations/day, 10,000 API calls/hour, and team workspace.
It is a subscription — pay monthly or yearly, and subscribe/cancel yourself anytime. Note: payments currently run on a development mock provider; the architecture is ready to switch to Stripe/Omise.
Yearly is cheaper — Pro at ฿1,990/year and Business at ฿7,990/year, roughly 2 months free compared to paying monthly all year.
Go to /pricing, pick a plan, and complete checkout. The new limits (storage, QR quota, optimization quota) apply immediately after payment. Track your current usage at Dashboard → Billing.
Cancel renewal at Dashboard → Billing — your account automatically returns to the Free plan at the end of the current billing period, after which you can subscribe to a lower plan. Your current benefits remain until the period ends.
Anytime, at Dashboard → Billing. Cancelling stops the renewal — you keep the plan's benefits until the end of the period you already paid for, with no further charges.
All your files and data remain intact — nothing is deleted. Once back on Free, if your usage exceeds the 500 MB quota you cannot upload new images until you free up space or upgrade again. Dynamic QR codes over the quota keep working, but you cannot create new ones.
Automatic invoices are not available yet since payments run on a development mock provider. If you need payment documentation, please contact us.
Privacy & Security5
Unlisted is the default for every image — only people with the link can view it; it is never listed publicly and links are randomly generated to be hard to guess. This differs from Public (openly shareable) and Private (signed-in owner only).
Photos from phones and cameras often embed the GPS location, timestamp, and device model — which can unintentionally reveal where you live or your routines. Uppic therefore strips EXIF/GPS by default before an image is served (you can opt out).
Every file's type is detected from its actual bytes (magic bytes) — the claimed extension/MIME is never trusted. Images are re-encoded to neutralize polyglot payloads, dimension limits guard against decompression bombs, and a hash-level blocklist stops abusive files.
Every image page has a Report button — pick a reason and submit, no sign-in needed. Moderators review reports and can block the file at the hash level so it cannot be re-uploaded.
Passwords are hashed with a modern algorithm (Argon2), email verification is required, TOTP 2FA can be enabled, and API keys are stored hashed (shown in full only once at creation) with scoped permissions and optional expiry.
API5
Yes — a REST API under /api/v1 covering image upload/management, QR code creation and editing, optimization jobs, galleries, and webhooks. See the API section of the Help Center for real examples.
Go to Dashboard → API Keys and create a key — it starts with upk_ and is shown in full only once, so copy it immediately. Use it with the header: Authorization: Bearer upk_xxx
Yes — choose scopes when creating a key: images:read, images:write, qr:read, qr:write, and optimize:write. A key can only call endpoints within its granted scopes, and keys can be expired or revoked anytime.
By plan: Free 100 requests/hour, Pro 2,000/hour, Business 10,000/hour. Exceeding the limit returns HTTP 429 — wait and retry.
Yes — subscribe to four events: image.uploaded, optimization.completed, optimization.failed, and subscription.changed. Every payload is HMAC-SHA256 signed (X-Uppic-Signature header), deliveries retry automatically, and endpoints that keep failing are auto-disabled.
Troubleshooting6
Check in order: (1) Is the file over your plan's limit (10 or 25 MB)? (2) Is the format supported — iPhone HEIC must be converted first. (3) Are you rate-limited from uploading too often (error 429 — wait a bit)? (4) Members: is your storage full? Check Dashboard → Billing. See the Help Center for the full guide.
Newer iPhones save photos as HEIC, which is not supported yet. Fix: on iPhone go to Settings → Camera → Formats → choose "Most Compatible" to shoot JPG, or share the photo through an app that auto-converts to JPG before uploading.
Common causes: insufficient color contrast (use a dark pattern on a light background, never inverted), a logo that is too large (reduce its size), printing too small (at least 2×2 cm for close-range scanning), or a very long URL making the pattern dense — a dynamic QR uses a short link, producing a cleaner pattern.
Three possibilities: the image had an expiry and has expired, it was deleted (by the owner or a moderator), or it is Private and requires the owner to be signed in. Owners can restore recently deleted images from Trash within 7 days.
Jobs run through a background queue and can take several minutes at busy times — AVIF and large files encode slower than usual. If it stays stuck abnormally long, resubmit the job. Remember output files are kept for only 7 days.
Check: have you verified your email (look for the verification email, including spam)? Is the password correct (use "Forgot password" to reset)? If 2FA is on, the 6-digit authenticator code must be current. You can also bypass all of this by signing in with an email magic link.
Still can't find what you need?
Read step-by-step guides in the Help Center, or reach the team directly