Free HEIC to JPG converter

Drop a HEIC photo from an iPhone and get a JPG back, turned the right way, with its colours and without its GPS position. The form calls the same free API your code can call: one POST, no API key and no account. The JPG waits in Storage for 24 hours.

The whole API
curl -s -X POST https://aisenseapi.com/services/v1/image_convert \
  -F "file=@IMG_0001.HEIC" \
  -F "format=jpeg"

{
  "storage_id": "4bb715b0-e38f-49c0-b107-8971bb0da14d",
  "storage_url": "https://aisenseapi.com/services/v1/storage/4bb715b0-e38f-49c0-b107-8971bb0da14d",
  "sha256_hash": "3973005e87eabd09798f4306817dc2c56f3b7fb81a5d590502ffb3768689bb63",
  "bytes": 98701,
  "expire_timestamp": 1790788252,
  "expire_datetime": "2026-09-30T17:10:52+00:00",
  "content_type": "image/jpeg",
  "filename": "result.jpg",
  "operation": "image_convert",
  "format": "jpeg",
  "width": 1600,
  "height": 1200,
  "input_format": "heic",
  "input_bytes": 84381
}
No API key No account HEIC to JPG, PNG or WebP GPS removed Colours kept

Try it in the browser

This form posts your image to the same endpoint and shows the stored result. The image is sent to aisenseapi.com, and the result is kept for 24 hours at a link that anyone with the link can open.

Drop an image here or click to choose one, or paste it with Ctrl+V. HEIC, JPEG, PNG or WebP, up to 10 MB.

What HEIC is, and why convert it

HEIC is the format an iPhone has saved photos in since iOS 11. It stores a photo in less space than JPEG, which is why Apple uses it, but many websites, upload forms and programs cannot open it, and Windows needs extra extensions from the Microsoft Store to show it. A JPG opens everywhere.

The JPG is usually somewhat larger than the HEIC it came from, as in the example at the top of the page: 84 381 bytes of HEIC became 98 701 bytes of JPG at quality 82. That is the price of a format everything can read.

How the conversion works

HEIC on the iPhone itself

Two settings decide whether an iPhone hands out HEIC at all:

Photos sent another way, or already on a computer as HEIC, are what this converter is for. The guide to the location in photos has more on what an iPhone photo can carry.

The API

POST https://aisenseapi.com/services/v1/image_convert with multipart/form-data, the same endpoint as the image converter.

FieldRequiredMeaning
fileyesThe photo: HEIC, JPEG, PNG or WebP.
formatyesjpeg, png or webp. jpg is read as jpeg.
qualityno40 to 95, for JPG and WebP. 82 when left out.
losslessnotrue or false, for WebP only.

A folder of photos is converted with one request per photo. At most two images are converted at a time, so a script should wait the seconds in Retry-After when it gets 503.

The answer is a Storage link

The endpoint never sends the image in its answer. It stores the result for 24 hours and answers with the same fields the Temporary Storage API answers with, plus what the result is:

FieldMeaning
storage_id, storage_urlWhere the result is. A GET on the URL returns the image.
sha256_hash, bytesThe digest and size of the stored image.
expire_timestamp, expire_datetimeWhen the result is removed, 24 hours after it was stored.
content_type, filenameThe type of the image and the name to save it under.
operation, format, width, heightThe endpoint that made it, and the format and size of the result in pixels.
input_format, input_bytesWhat the upload was, so the saving can be read off.

The example at the top of the page comes from a test run with a test image of 1600 x 1200 pixels. The id and the expiry are different on every call, and the sizes depend on the image.

Anyone with the link can open the image until it expires, so do not send pictures of people or anything confidential. Stored results count against the Storage budget of 80 MB per IP address per day.

Limits

Errors

A refused request stores nothing and answers with error. The endpoint's own refusals also carry fix, a sentence saying what to send instead.

StatusWhen
400A field is missing, unknown or out of range, the upload is not one whole file, or ImageMagick cannot read the image.
405The method is not POST.
413The upload, its number of pixels or the result is over a limit.
415The body is not multipart/form-data, or the file is not a JPEG, PNG, WebP or HEIC.
429More than 5000 requests from one IP address in 24 hours, or the day's Storage budget is used up.
503Two images are being converted already, the conversion took more than 45 seconds, or the service cannot convert right now.

Questions

Is the HEIC to JPG converter free?

Yes. No API key, no account and no sign up. The limit is 5000 requests per IP address per 24 hours, and stored results count against the Storage budget of 80 MB per IP address per day.

Does it work on Windows?

Yes. The conversion happens on the server, so the browser only sends the file. No extension or app is needed.

Is the location removed?

Yes. EXIF with the GPS position, XMP and comments are removed from every result. The colour profile is kept.

Will my photo be turned the right way?

Yes. An iPhone records the turn both in the HEIC file and in EXIF, and the converter applies it once.

Does it keep the quality?

JPG is saved at quality 82 unless you choose from 40 to 95. For the least loss choose 95, or PNG, which is lossless but much larger.

Can it convert HEIF and AVIF?

HEIC and other HEIF files with HEVC inside, yes. AVIF, no.

All image endpoints All free public APIs