Archive Conversion API — Free Tier + Pay-As-You-Go
Programmatically convert between ZIP, RAR, 7Z, TAR, GZ, BZ2, XZ, and 15+ archive formats. Streaming + integrity validation.
What it does
The Archive Conversion API handles 22 archive formats with native ZIP, 7Z, TAR (gzip, bzip2, xz, zstd, lz4 variants), and JAR write paths, plus read-only extraction support for legacy formats such as CAB, ISO, DEB, RPM, and DMG. Conversion is streaming where possible — the API decompresses the source and pipes into the target encoder without materialising the full extracted tree on disk, dramatically reducing latency and disk pressure for multi-gigabyte tarballs. Each job runs through a ZIP-bomb detection layer that aborts when the decompression ratio exceeds a configurable threshold (default 100:1).
Encrypted archives are supported on read for ZIP (AES-128/256) and 7Z; pass `password=<secret>` to extract. On write, you can request password-encrypted output for ZIP (AES-256), 7Z, and RAR-compatible archives. Per-job parameters control compression level (0-9), solid mode for 7Z, dictionary size, multi-threading, and split-archive volume size (`split=100M` produces .part1, .part2, etc.).
The same idempotency, webhook, and rate-limit model as the other category APIs applies.
Supported formats
Source formats (22)
- zip
- rar
- 7z
- tar
- gz
- bz2
- xz
- zst
- lz4
- jar
- war
- ear
- cab
- iso
- deb
- rpm
- dmg
- cpio
- ar
- alz
- arj
- lzma
Target formats (11)
- zip
- 7z
- tar
- gz
- bz2
- xz
- zst
- tar.gz
- tar.bz2
- tar.xz
- jar
Quick start
All three SDK languages show the same conversion: a single POST to /v1/convert with your API key in the X-Api-Key header.
curl -X POST https://api.convertintomp4.com/v1/convert \
-H "X-Api-Key: ck_your_api_key" \
-F "file=@input.rar" \
-F "target=zip"
-F "compressionLevel=6"import { ConvertIntoMP4 } from "@convertintomp4/sdk";
import fs from "node:fs";
const client = new ConvertIntoMP4({ apiKey: process.env.CIM4_API_KEY });
const job = await client.convert({
file: fs.createReadStream("input.rar"),
target: "zip",
});
const result = await client.waitForJob(job.id);
console.log("Output URL:", result.outputUrl);from convertintomp4 import Client
client = Client(api_key="ck_your_api_key")
with open("input.rar", "rb") as f:
job = client.convert(file=f, target="zip")
result = client.wait_for_job(job.id)
print("Output URL:", result.output_url)Features
- 22 source formats, 11 target formats
- Streaming pipeline — no full-tree disk materialisation
- ZIP-bomb detection with configurable ratio threshold
- AES-256 encrypted ZIP, 7Z, RAR-compatible output
- Split archives via volume size parameter
- Multi-threaded compression for 7Z and ZSTD
- Read-only support for CAB, ISO, DEB, RPM, DMG
Pricing
From $9.99/mo (Pro) or $24.99/mo (Business) — or pay-as-you-go on the API plan.
Free tier: 5 conversions/day, 100 MB file size, no API key required (IP-gated). Pro $9.99/mo: 100/day (2,000/month), 2 GB files. Business $24.99/mo: 1,000/day (20,000/month), 10 GB files, GPU encoding, dedicated support.
See full pricing breakdown →Built for production
99.9% uptime SLA
Multi-region failover, transparent status page, 60-second response-time guarantee on Business.
Encryption + auto-delete
TLS 1.2+ in transit, AES-256 at rest. Files deleted after 1h / 24h / 7d depending on plan, or instantly via DELETE endpoint. See the security page.
~7s median latency
Most sub-100 MB jobs complete in 6-9 seconds. Webhook-driven async for heavier workloads; waitForJob for synchronous flows.
Frequently Asked Questions
Can the API write RAR archives?
No — RAR's encoder is proprietary and closed-source. The API outputs RAR-compatible archives (7Z with a .rar extension is NOT what we do; we cleanly refuse the request). Use ZIP or 7Z as drop-in alternatives — both achieve better compression than RAR in practice.
How are encrypted ZIPs decrypted?
Pass `password=<secret>` in the request. Both legacy ZipCrypto and modern AES-128/256 are supported. AES-encrypted ZIPs are recommended over ZipCrypto, which has known cryptographic weaknesses.
What is ZIP-bomb protection?
Every job tracks decompression ratio and aborts if a single entry's expansion exceeds 100:1 (or your `bombRatioLimit` override). Standard archive contents stay well under 10:1; values above 100:1 are reliably malicious payloads.
Can the API split a large archive into volumes?
Yes. Pass `split=100M` and the output will be split into `.part1.7z`, `.part2.7z`, etc. Reassembly on the recipient side uses any 7Z-compatible client — no special tooling required.
Are there formats the API can only read, not write?
CAB, ISO, DEB, RPM, DMG, ALZ, ARJ are read-only — these are extracted into a normalised target archive (ZIP / 7Z / TAR) on conversion. Writing requires proprietary or platform-specific encoders we don't bundle.
Related APIs
- File Conversion APIOne unified file conversion API for video, audio, image, document, ebook, archive, and font formats — 255 formats, 2,290+ conversion pairs.
- Convert APIProduction-grade file conversion API with 9 language SDKs, async webhooks, and cloud-to-cloud workflows. Free tier available.
- Media Conversion APIVideo and audio conversion API in one endpoint. 27 video + 21 audio formats, FFmpeg-backed, GPU-accelerated.
Or browse the full catalogue of 23 API products →
Get an API key
Start integrating the Archive Conversion API in five minutes. Read the docs, grab a key, and ship your first conversion before the trial coffee cools.