Skip to content

FileType Converters API

Convert files with the HTTP API

Use /api/v1 to check supported pairs, convert files, queue jobs, create batches, download outputs, and read usage. The API uses the same 584 enabled conversion pairs as the web converter.

1. Authenticate

Create a key in Dashboard → API and store it as FTC_API_KEY.

2. Check the pair

Call /api/v1/pairs before uploading so you know the engine, mode, and options.

3. Convert

Post a file or public URL, then stream the output or poll an async job.

Base URL and versioning

The production base URL is https://filetypeconverters.com. Version 1 endpoints live under /api/v1. Breaking changes use a new version path.

Public catalog endpoints need no key. Conversion, job, batch, and usage endpoints require a workspace API key from a Starter, Pro, or Scale plan.

Quickstart in three requests

curl
export FTC_API_KEY="your-dashboard-key"

curl -sS "https://filetypeconverters.com/api/v1/pairs?from=csv&to=json"

curl -sS -X POST https://filetypeconverters.com/api/v1/convert \
  -H "Authorization: Bearer $FTC_API_KEY" \
  -F "file=@input.csv" \
  -F "from=csv" \
  -F "to=json" \
  --output output.json

End-to-end async example

This flow checks the pair, queues a job, polls until the status is succeeded, then downloads the output.

curl
curl -sS "https://filetypeconverters.com/api/v1/pairs?from=csv&to=json"

JOB_ID=$(curl -sS -X POST "https://filetypeconverters.com/api/v1/convert?async=1" \
  -H "Authorization: Bearer $FTC_API_KEY" \
  -F "file=@input.csv" \
  -F "from=csv" \
  -F "to=json" | python3 -c 'import json,sys; print(json.load(sys.stdin)["jobId"])')

curl -sS https://filetypeconverters.com/api/v1/jobs/$JOB_ID \
  -H "Authorization: Bearer $FTC_API_KEY"

curl -sS https://filetypeconverters.com/api/v1/jobs/$JOB_ID/download \
  -H "Authorization: Bearer $FTC_API_KEY" \
  --output output.json

Endpoint index

POST /api/v1/convert

Convert one file and stream the output in the response. Send multipart form data for local files, or JSON with a public URL when you want FileType Converters to fetch the input before converting it.

POST /api/v1/convert?async=1

Queue a conversion and poll the job endpoint until it succeeds or fails. The API also queues files larger than 25 MB even when async is omitted.

GET /api/v1/pairs

List supported conversion pairs or check one pair before you upload a file. Format values accept ids, extensions, and common names such as word, excel, and jpeg.

GET /api/v1/formats

Return the enabled public format catalog and the enabled pair matrix. Use this when you need names, extensions, MIME types, format hubs, and canonical pair slugs.

GET /api/v1/jobs/{id}

Poll an async conversion job that belongs to your workspace. A succeeded job includes a downloadUrl for the converted file.

GET /api/v1/jobs/{id}/download

Download the output bytes for a succeeded async job. Local storage streams through the API. Browser-reachable object storage may return a short-lived redirect.

POST /api/v1/batches

Queue several files with one source format and one target format. The response returns a batch id that you poll until a ZIP download is ready.

GET /api/v1/batches/{id}

Read aggregate status for a batch. A finished batch includes succeeded and failed counts plus a ZIP download URL when an archive exists.

GET /api/v1/batches/{id}/download

Download the ZIP archive for a completed batch. The API streams local storage outputs and may redirect to short-lived object storage links.

GET /api/v1/usage

Return the workspace entitlements and this month's conversion and API request counts. Use it to show quota, max file size, batch size, and AI Deep Read credit balance before uploads.

GET /api/v1/openapi.json

Return the OpenAPI 3.1 document for code generation and API explorers. The document includes schemas for conversion, pairs, jobs, batches, usage, downloads, and shared error responses.

CLI and SDK

The filetypeconverters npm package wraps this API with no dependencies. It runs the same checks, uploads, async jobs and downloads described above, reads FTC_API_KEY from the environment, and prints warnings on stderr so output can be piped.

Terminal
npx filetypeconverters convert photo.heic --to jpg
npx filetypeconverters convert scan.pdf --to md --deep-read
npx filetypeconverters pairs --from heic          # public, no key needed

Package page: npmjs.com/package/filetypeconverters. For other languages, use /api/v1/openapi.json with your code generator to produce a typed client.