API Reference Private beta

PrivConvert API

A single REST endpoint for every conversion — images, documents, data, eBooks, fonts and archives. Files are processed entirely in memory and deleted the instant they are returned. Nothing is ever written to disk.

Introduction

The PrivConvert API turns any file conversion on PrivConvert into a single authenticated POST request. It is designed for teams that handle sensitive documents — legal, medical, finance — and cannot send files to a service that stores them.

Private beta. The API is currently invite-only while we onboard our first developers. Request access and we will issue a key and walk you through onboarding. Endpoints and parameters below reflect the stable contract.
Base URLhttps://privconvert.com/api
ProtocolHTTPS only (TLS 1.3)
AuthBearer API key
Requestmultipart/form-data
ResponseBinary file stream

Authentication

Every request must include your secret API key as a Bearer token in the Authorization header. Keys are issued per account and look like pk_live_…. Keep them server-side — never expose a key in client-side code.

# Pass your key in the Authorization header
Authorization: Bearer pk_live_xxxxxxxxxxxxxxxxxxxx
Keep keys secret. A leaked key can spend your monthly quota. Rotate immediately from your dashboard if you suspect exposure (dashboard ships with general availability).

Quick start

Convert a Word document to PDF. The converted file streams straight back in the response body.

# Convert contract.docx → PDF
curl -X POST https://privconvert.com/api/convert/word-to-pdf \
  -H "Authorization: Bearer pk_live_…" \
  -F "[email protected]" \
  -o contract.pdf

Convert a file

POST /api/convert/{tool}

The {tool} path segment selects the conversion — for example word-to-pdf, png-to-jpg or json-to-csv. Send the source file as a file field in a multipart/form-data body. The same pattern works for all 200+ tools.

Parameters

FieldTypeRequiredDescription
filefileYesThe source file to convert, sent as multipart form data.
qualityintegerNoOutput quality 1–100 for image/PDF tools. Defaults to 90.
widthintegerNoTarget width in pixels for resize-capable image tools.
heightintegerNoTarget height in pixels for resize-capable image tools.

Response

On success (200) the response body is the converted file — a raw binary stream, not JSON. Read it from the body and write it to disk. Useful headers:

HeaderExample
Content-Typeapplication/pdf
Content-Dispositionattachment; filename="contract.pdf"
X-Credits-Remaining4985

Errors return JSON instead of a file:

{
  "error": {
    "code": "file_too_large",
    "message": "File exceeds the 100 MB limit on your plan."
  }
}

Code examples

The same request in your language of choice. Swap the png-to-jpg slug for any tool.

curl -X POST https://privconvert.com/api/convert/png-to-jpg \
  -H "Authorization: Bearer pk_live_…" \
  -F "[email protected]" \
  -o photo.jpg

Available tools

Every server-side conversion uses the same /api/convert/{tool} pattern. A sample of the 200+ available slugs:

Images

png-to-jpgimage-to-webpheic-to-jpgcompress-imageresize-image

Documents

word-to-pdfexcel-to-pdfpdf-to-wordhtml-to-pdfmarkdown-to-pdf

Data

json-to-csvcsv-to-jsonxml-to-jsonyaml-to-jsonjson-to-sql

eBooks

epub-to-mobipdf-to-epubmobi-to-epubazw3-to-epub

Fonts & archives

ttf-to-woff2otf-to-woff2rar-to-zip7z-to-zip

See the full tool catalog for every supported conversion. If a tool exists on the site, it works over the API with the same slug.

Rate limits & quotas

Quota is counted per successful conversion and resets on the first of each month. Beyond your rate limit or quota, requests return 429 with a Retry-After header.

PlanMonthly quotaRate limitMax file size
Starter5,000 / mo60 req / min100 MB
Growth25,000 / mo120 req / min250 MB
Scale150,000 / mo300 req / min250 MB
EnterpriseCustomCustomCustom

Errors

The API uses conventional HTTP status codes. 2xx means success; 4xx means a problem with the request; 5xx means a problem on our side.

StatusCodeMeaning
200OKConversion succeeded. The body is the converted file.
400bad_requestMalformed request — missing file, bad parameter, or unreadable input.
401unauthorizedMissing or invalid API key.
413file_too_largeThe uploaded file exceeds your plan’s size limit.
415unsupported_typeThe input file type is not valid for this tool.
422conversion_failedThe file was read but could not be converted.
429rate_limitedRate limit or monthly quota exceeded. See Retry-After.
500server_errorUnexpected error on our side. Safe to retry.

Privacy & data handling

Privacy is the product. Every file you send to the API is:

  • Processed entirely in RAM — never written to disk.
  • Deleted from memory the instant the converted file is returned.
  • Never logged, never used for training, never shared.
  • Covered by a signed DPA on Enterprise plans.
Ready to build?

Request a beta key and we will get you converting in minutes.

Request API access