API Documentation

Convert files between 500+ format pairs with a simple REST API. Video, audio, documents, images, ebooks, archives, and more.

Contents

Quick Start

Get converting in two steps. No credit card required.

1 Get a free API key

curl -X POST https://changethisfile.com/v1/keys/free \
  -H "Content-Type: application/json" \
  -d '{"email": "you@example.com"}'

Response:

{
  "api_key": "ctf_sk_abc123...",
  "plan": "free",
  "monthly_limit": 100
}
Save your key. It is shown only once. Free keys include 100 conversions/month and 10 requests/minute.

2 Convert a file

curl -X POST https://changethisfile.com/v1/convert \
  -H "Authorization: Bearer ctf_sk_abc123..." \
  -F "file=@document.docx" \
  -F "target=pdf" \
  -o document.pdf

That's it. The converted file is returned as a binary download.

Anonymous API

POST /api/convert

Convert a file without authentication. Rate-limited by IP address. Good for quick testing.

FieldTypeRequiredDescription
filefileYesThe file to convert (max 25 MB)
sourcestringYesSource format (e.g. docx, mkv)
targetstringYesTarget format (e.g. pdf, mp4)

Example

curl -X POST https://changethisfile.com/api/convert \
  -F "file=@input.docx" \
  -F "source=docx" \
  -F "target=pdf" \
  -o output.pdf
Limits: 5 requests/minute, 5 conversions/day, 25 MB max file size. For higher limits, use the authenticated API.

Authenticated API

POST /v1/convert

Convert a file with an API key. Higher rate limits, larger files, and monthly quota tracking.

Send your API key in the Authorization header:

Authorization: Bearer ctf_sk_your_api_key
FieldTypeRequiredDescription
filefileYesThe file to convert
targetstringYesTarget format (e.g. mp3, jpg)

Example

curl -X POST https://changethisfile.com/v1/convert \
  -H "Authorization: Bearer ctf_sk_your_key" \
  -F "file=@video.mkv" \
  -F "target=mp4" \
  -o video.mp4

Response

On success, returns the converted file as a binary download with these headers:

HeaderExample
Content-Dispositionattachment; filename="converted.mp4"
Content-Typevideo/mp4

Check Usage

GET /v1/usage
curl https://changethisfile.com/v1/usage \
  -H "Authorization: Bearer ctf_sk_your_key"
{
  "plan": "free",
  "conversions_this_month": 42,
  "monthly_limit": 100,
  "max_file_size": 100000000,
  "rate_per_minute": 10
}

Tool API

POST /api/tool

Run file operations like merge, split, and compress. Accepts one or more files and returns the processed result.

FieldTypeRequiredDescription
filesfile[]YesOne or more files to process (use multiple files fields)
categorystringYesTool category (e.g. pdf, image, video)
actionstringYesOperation to perform (e.g. merge, split, compress)

Example: Merge PDFs

curl -X POST https://changethisfile.com/api/tool \
  -F "files=@page1.pdf" \
  -F "files=@page2.pdf" \
  -F "files=@page3.pdf" \
  -F "category=pdf" \
  -F "action=merge" \
  -o merged.pdf
The Tool API shares rate limits and daily quotas with the anonymous conversion API (5/min, 5/day for free users).

Batch API

POST /api/batch-convert

Convert multiple files in a single request. Returns a ZIP archive containing all converted files.

FieldTypeRequiredDescription
filesfile[]YesMultiple files to convert (use multiple files fields)
targetstringYesTarget format for all files

Example: Convert multiple images

curl -X POST https://changethisfile.com/api/batch-convert \
  -F "files=@photo1.png" \
  -F "files=@photo2.png" \
  -F "files=@photo3.png" \
  -F "target=jpg" \
  -o converted.zip
Maximum combined upload size is 500 MB. Individual files are limited to 25 MB (free) or 500 MB (Pro).

Formats

GET /v1/formats

Returns all supported conversion routes. No authentication required.

curl https://changethisfile.com/v1/formats
{
  "formats": {
    "png": [
      { "target": "jpg", "engine": "canvas", "tier": "free" },
      { "target": "webp", "engine": "canvas", "tier": "free" }
    ],
    "docx": [
      { "target": "pdf", "engine": "libreoffice", "tier": "free" }
    ]
  },
  "total_routes": 500
}

Supported categories include images, video, audio, documents, spreadsheets, ebooks, archives, data formats, and fonts.

The API supports all server-side conversion routes (video, audio, documents, ebooks, archives, fonts). Client-side-only routes (some image and data conversions) are available on the web interface only.

Error Codes

All errors return JSON with an error field describing what went wrong.

{
  "error": "Unsupported conversion: bmp to mp4"
}
StatusCodeMeaning
400Bad RequestMissing required fields (file, target), unsupported conversion route, or invalid form data
401UnauthorizedMissing or invalid API key (authenticated endpoints only)
413Payload Too LargeFile exceeds plan limit (25 MB free web, 100 MB free API, 500 MB Pro)
429Too Many RequestsRate limit exceeded or monthly/daily quota reached. Check retry_after field.
502Bad GatewayConversion service temporarily unavailable. Retry after a few seconds.

Rate limit response

{
  "error": "Rate limit exceeded. Max 5 conversions per minute.",
  "retry_after": 60
}

Quota exceeded response

{
  "error": "Monthly quota exceeded",
  "limit": 100,
  "used": 100,
  "plan": "free",
  "upgrade_url": "https://changethisfile.com/dashboard#upgrade"
}

Rate Limits & Plans

Anonymous (no API key)

LimitValue
Daily conversions5
Rate limit5 requests/minute
Max file size25 MB

Authenticated (API key)

PlanMonthly ConversionsMax File SizeRate LimitPrice
Free100100 MB10/min$0
ProUnlimited500 MB60/min$9/mo
Starter2,500500 MB30/min$15/mo
Growth10,0002 GB60/min$49/mo
Scale50,0005 GB120/min$149/mo

Need more conversions? Buy credit packs for pay-as-you-go usage beyond your plan limits.

OpenAPI Spec

A machine-readable OpenAPI 3.0 specification is available at:

https://changethisfile.com/v1/openapi.yaml

Use it with tools like Postman, Swagger UI, or any OpenAPI-compatible client to explore and test the API.

Questions? Email cosmo@changethisfile.com

Get your API key →