zapvert

zapvert API

Convert files from your code, scripts and automations (n8n, Make, Zapier). One request in, the converted file out.

Quick start

curl -H "Authorization: Bearer $ZAPVERT_KEY" \
  -F file=@video.mp4 \
  "https://zapvert.com/api/v1/convert?to=mp3" -o video.mp3

Authentication

Send your key in the Authorization: Bearer <key> header (or X-API-Key). Keys start with zv_live_. Keep them secret; anyone with your key can spend your quota.

POST /api/v1/convert

  • Query: to — target format, e.g. pdf, jpg, mp3.
  • Body: multipart/form-data with one field file. The source format is taken from the file name's extension.
  • Response: the converted file (200), with a Content-Disposition filename. A multi-page PDF converted to JPG/PNG returns a ZIP with one image per page.
  • Files are processed in memory/temporary storage and deleted as soon as the response is sent. Nothing is kept.

GET /api/v1/me

Your plan and usage:

{"plan": "pro", "period": "2026-10", "used": 12, "quota": 1000, "credits": 0, "remaining": 988, "max_file_mb": 1024}

Supported conversions

521 conversions between 53 formats. Machine-readable list: GET /formats; human-readable: all conversions.

Usage and limits

  • 1 conversion = 1 unit. Audio and video use 1 unit per started 10 minutes of input.
  • Monthly units reset on the 1st of each month (UTC). Prepaid credits never expire and are used after the monthly units.
  • Max file size depends on your plan; requests time out after 300 seconds.

Errors

Errors are JSON: {"detail": "…"}.

  • 400 missing file · 401 missing, invalid or inactive key · 402 no units left
  • 413 file too large · 422 unsupported conversion · 500 the converter failed on this file · 504 timed out

Examples

Python

import os, requests

r = requests.post("https://zapvert.com/api/v1/convert", params={"to": "pdf"},
                  headers={"Authorization": f"Bearer {os.environ['ZAPVERT_KEY']}"},
                  files={"file": open("report.docx", "rb")})
r.raise_for_status()
open("report.pdf", "wb").write(r.content)

Node.js

const form = new FormData();
form.append("file", new Blob([await fs.promises.readFile("photo.heic")]), "photo.heic");
const r = await fetch("https://zapvert.com/api/v1/convert?to=jpg", {
  method: "POST", headers: { Authorization: `Bearer ${process.env.ZAPVERT_KEY}` }, body: form,
});
await fs.promises.writeFile("photo.jpg", Buffer.from(await r.arrayBuffer()));

n8n / Make / Zapier: use an HTTP request step: method POST, URL above, header Authorization, body type multipart with a binary field named file.

Get a key

Write to hello@zapvert.com. Self-service plans are coming soon.

© zapvert by Codelaice · Files are deleted right after conversion. · All conversions · API · Privacy · Terms

We use Google Analytics cookies to see which conversions people use. Privacy