Developer API

Automate PDF processing with a simple HTTP request — the same pipelines that power the site.

Quickstart

Create an API key in your dashboard, under Developer API. Then send a file with the key in the X-Api-Key header:

curl -X POST https://makeitpdf.com/api/v1/compress/ \
  -H "X-Api-Key: mip_your_key_here" \
  -F "file=@document.pdf"

The response contains download links for the processed files:

{
  "success": true,
  "tool": "compress",
  "files": ["https://makeitpdf.com/media/temp/…/document_compressed.pdf"],
  "credits_remaining": 18
}

Endpoints

All endpoints accept POST with multipart/form-data. Attach files in the file field (repeat it for multiple files). A machine-readable list lives at /api/v1/tools/.

Endpoint Input Extra fields
POST /api/v1/merge/ PDF files (2+)
POST /api/v1/rotate/ PDF files; rotation: 90|180|270 (default 90) rotation
POST /api/v1/extract-pages/ One PDF; pages: e.g. "1-3,5" pages
POST /api/v1/compress/ PDF files; compression_level: low|recommended|high compression_level
POST /api/v1/repair/ One PDF
POST /api/v1/flatten/ One PDF
POST /api/v1/grayscale/ One PDF
POST /api/v1/word-to-pdf/ Word documents (.doc/.docx)
POST /api/v1/excel-to-pdf/ Excel workbooks (.xls/.xlsx)
POST /api/v1/powerpoint-to-pdf/ PowerPoint files (.ppt/.pptx)
POST /api/v1/image-to-pdf/ Images (JPG/PNG/WebP…); merge_images: true|false page_size, page_orientation, page_margin, merge_images
POST /api/v1/pdf-to-word/ PDF files
POST /api/v1/pdf-to-excel/ PDF files
POST /api/v1/pdf-to-powerpoint/ PDF files
POST /api/v1/pdf-to-jpg/ PDF files; image_quality: normal|high conversion_type, image_quality
POST /api/v1/pdf-to-text/ One PDF
POST /api/v1/pdf-to-pdfa/ PDF files pdfa_conformance
POST /api/v1/ocr/ Scanned PDFs; ocr_language: eng|deu|fra|… (default eng) ocr_language, ocr_quality
POST /api/v1/protect/ PDF files; password required password
POST /api/v1/unlock/ PDF files; password required password
POST /api/v1/translate/ One PDF; target_language required (e.g. "de"), source_language optional (default auto) target_language, source_language

Example: translate a PDF to German

curl -X POST https://makeitpdf.com/api/v1/translate/ \
  -H "X-Api-Key: mip_your_key_here" \
  -F "file=@report.pdf" \
  -F "target_language=de"

Pricing and limits

API requests use the same allowance as your account on the website: your plan's daily tasks and monthly AI quotas first, then your credits (1 credit per standard task, 5 per AI document). There is no separate API subscription.

See plans and credit packs →

Errors

Errors return a JSON body with an error code and a human-readable message:

{ "success": false, "error": "daily_limit_reached",
  "message": "Daily task limit reached for your plan…", "credits_remaining": 0 }
Status Meaning
400Missing file or required field — the message names it
401Missing, unknown or revoked API key
403Plan or credit limit reached — the error code names the limit
422The file could not be processed
429Rate limit exceeded — retry after a minute
500Unexpected server error — retry, then contact us

The API is in beta. Questions or a tool you need exposed?

Contact us