File Conversion API
Convert files between 216 formats with one HTTP request, from scripts, CI pipelines or your own app. Send a file and a conversion ID, get the converted file back. No account, no subscription and no SDK. Files are processed in memory and deleted immediately after conversion.
The API uses credits: each conversion costs one credit. Want to try a conversion first? Every converter on this website is free to use in the browser, within the website's free tier.
Authentication
Buy a credit pack to get a token. It is shown after purchase and in your bookmark link (/?t=YOUR_TOKEN). Send it with every request as a Bearer token. Keep it secret: anyone with the token can use its credits.
Quick start
curl --fail-with-body \
-H "Authorization: Bearer YOUR_TOKEN" \
-F "file=@network.har" \
-F "conversionId=har-to-csv" \
https://www.omniconvert.cloud/api/convert -o network.csvPython and JavaScript
import requests
with open("parcels.zip", "rb") as f:
r = requests.post(
"https://www.omniconvert.cloud/api/convert",
files={"file": f},
data={"conversionId": "shapefile-to-geojson"},
headers={"Authorization": "Bearer YOUR_TOKEN"},
)
if not r.ok:
raise RuntimeError(r.json()["message"])
open("parcels.geojson", "wb").write(r.content)// Node.js 18+
import { readFile, writeFile } from 'node:fs/promises'
const form = new FormData()
form.append('file', new Blob([await readFile('network.har')]), 'network.har')
form.append('conversionId', 'har-to-csv')
const res = await fetch('https://www.omniconvert.cloud/api/convert', {
method: 'POST',
headers: { Authorization: 'Bearer YOUR_TOKEN' },
body: form,
})
if (!res.ok) throw new Error((await res.json()).message)
await writeFile('network.csv', Buffer.from(await res.arrayBuffer()))Pricing
- Every API conversion uses one credit, whatever the format or file size (up to 50 MB).
- Packs start at $1 for 5 credits; the Bulk pack is $29 for 500 credits. Credits never expire and there is no subscription.
- Failed conversions are free: the credit is given back.
- Converting in the browser on this website has its own free tier: light conversions up to 5 MB are unlimited, and Image, PDF, Document, Font conversions or larger files get 3 free per day.
Responses
A successful request returns the converted file with its name in Content-Disposition and these headers:
X-Credits-Remaining: credits left on your token after this conversionX-Conversion-Method: alwayspaidfor API requests
Errors are JSON with a stable code and a readable message:
{ "error": "NO_CREDITS", "message": "API conversions use one credit each and this token has no credits left." }| Status | error | Meaning |
|---|---|---|
| 400 | MISSING_FIELDS | The form needs "file" and "conversionId". |
| 400 | UNKNOWN_CONVERSION | No conversion with that ID. See /api/conversions. |
| 401 | TOKEN_REQUIRED | No token was sent. Add "Authorization: Bearer <token>". |
| 401 | INVALID_TOKEN | The token does not exist. |
| 402 | NO_CREDITS | The token has no credits left. Buy another pack. |
| 413 | FILE_TOO_LARGE | The file is over 50 MB. |
| 422 | CONVERSION_FAILED | The input could not be converted. The credit is given back ("refunded": true). |
Endpoints
POST /api/convert: convert a file (multipart form:file,conversionId)GET /api/conversions: every conversion ID with its file extensions and free tierGET /api/credits/check?t=YOUR_TOKEN: credits left on a token/openapi.json: OpenAPI 3.1 specification, for API clients and code generators
Popular conversion IDs
har-to-csvConvert HAR to CSVshapefile-to-kmlConvert Shapefile to KMLshapefile-to-geojsonConvert Shapefile to GeoJSONkml-to-shapefileConvert KML to Shapefilegeojson-to-svgConvert GeoJSON to SVG mapx509-to-jsonConvert X.509 certificate to JSONcer-to-pemConvert CER to PEMris-to-jsonConvert RIS to JSONutf16le-to-utf8Convert UTF-16 LE to UTF-8json-diffJSON diff
The full list of 216 conversions is at /api/conversions, and every converter page shows its own command-line example.
Limits
- Maximum file size: 50 MB
- One file per request; requests are synchronous and return when the conversion is done
- Uploaded and converted files are not stored