# Conversion Tools - Complete API Reference > Conversion Tools converts files between formats. This document is self-contained: everything needed to write a correct client is here, plus the full list of 225 converters with the API type and page for each. - Website: https://conversiontools.io - Human documentation: https://conversiontools.io/api-documentation - API base URL: `https://api.conversiontools.io/v1` - OpenAPI specification: https://api.conversiontools.io/openapi.yaml - Concise index: https://conversiontools.io/llms.txt --- ## 1. Read this first: the async contract **Conversion is asynchronous.** There is exactly one correct client shape: 1. Upload the file. `POST /files` returns a `file_id`. Skip this step when the input is a public URL. 2. Create the task. `POST /tasks` with the conversion `type` and an `options` object returns a `task_id`. It does **not** return a file. 3. Poll `GET /tasks/{task_id}` until `status` is `SUCCESS` or `ERROR`. Those are the only terminal values. Poll no more than once every 5 to 10 seconds. 4. On `SUCCESS`, download the bytes from `GET /files/{file_id}` using the `file_id` the status response returned. That is the **result** file id, and it is different from the id you uploaded. Rules a generated client must follow: - **Branch on the `status` field in the JSON body.** Never on how long the request took, and never on whether a `file_id` happens to be present. - **`ERROR` is a normal HTTP 200 response.** `GET /tasks/{task_id}` returns 200 for every task state, with `"status": "ERROR"` and a human-readable `error` string. Handle it explicitly. - **Bound the poll loop.** Use a deadline or an attempt cap and surface a timeout instead of polling forever. Large files legitimately take minutes. - **Do not re-submit the file because a poll feels slow.** A second task costs another conversion against your plan. - **The two `file_id` values are different.** The one from `POST /files` is the source. The one from the task status is the result. --- ## 2. Authentication Every request requires a Bearer token: ``` Authorization: Bearer ``` The token is generated when the account is created and is shown on the profile page at https://conversiontools.io/profile. Regenerating it invalidates the previous token immediately. Store the token in an environment variable. Never commit it and never ship it in client-side code. Verify a token with a request to the API root, which returns `{"error": null}` when the token is valid: ```bash curl -sSX GET https://api.conversiontools.io/v1/ \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $CT_API_TOKEN" ``` A missing, malformed or unknown token returns `401` with `{"error": "Not authorized"}`. ## 3. Identifiers `file_id`, `task_id` and `download_id` are opaque 32-character lowercase hexadecimal strings, for example `4147c475ffe94ec8a11aff9a6a8f437a`. They carry no prefix and no structure. Do not parse them, do not assume a format, and do not generate them yourself. ## 4. Endpoint map | Method | Path | Purpose | | --- | --- | --- | | GET | `/v1/` | Verify the token | | POST | `/v1/files` | Upload a file, receive a `file_id` | | POST | `/v1/upload-sessions` | Get a one-time upload URL for a large file | | PUT | `/v1/upload-sessions/{session_id}` | Upload the bytes to that URL (no auth header) | | POST | `/v1/tasks` | Create a conversion task | | GET | `/v1/tasks/{task_id}` | Poll a task and read its result file id | | GET | `/v1/files/{file_id}` | Download a file | | POST | `/v1/files/{file_id}/download` | Mint a temporary unauthenticated download link | | GET | `/v1/files/{download_id}/download` | Follow that link | | GET | `/v1/files/{file_id}/info` | File metadata and a short text preview | | PATCH | `/v1/tasks/{task_id}/retention` | Change how long the task's files are kept | | POST | `/v1/tasks/{task_id}/delete` | Delete the task's files now (paid plans) | --- ## 5. Step 1 - upload the file `POST /v1/files`, `multipart/form-data`, one field named `file`. ```bash curl -sSX POST https://api.conversiontools.io/v1/files \ -H "Authorization: Bearer $CT_API_TOKEN" \ -F "file=@/path/to/input.xml" ``` ```json { "error": null, "file_id": "be87de1a680c4451a49a72df3fecd3fd" } ``` Skip this step entirely when the input is a public URL: pass `url` in the task options instead. ### Large files: upload sessions For files too large to push through a single authenticated multipart request, mint a one-time upload URL first. `POST /v1/upload-sessions` with `{"filename": "input.xml"}`: ```json { "upload_url": "https://api.conversiontools.io/v1/upload-sessions/", "file_id": "be87de1a680c4451a49a72df3fecd3fd", "expires_in": 300 } ``` `expires_in` is in seconds, and the window is short, so start the upload straight away. Then `PUT` the file to `upload_url`. That request needs **no** `Authorization` header - the session id is the credential. The body may be either `multipart/form-data` or the raw bytes: ```bash curl -sSX PUT "$UPLOAD_URL" --data-binary @/path/to/input.xml ``` ```json { "file_id": "be87de1a680c4451a49a72df3fecd3fd", "filename": "input.xml", "size": 52480 } ``` The session is single-use and is discarded once the upload finishes. Use the `file_id` in the task exactly as you would a normal upload. ## 6. Step 2 - create the task `POST /v1/tasks`, `Content-Type: application/json`. | Field | Type | Required | Description | | --- | --- | --- | --- | | `type` | string | yes | Conversion type, for example `convert.xml_to_excel`. See the table in section 12 | | `options` | object | yes | The input plus any converter-specific settings | Inside `options`: | Key | Required | Description | | --- | --- | --- | | `file_id` | for uploaded files | The `file_id` returned by `POST /files` | | `url` | for URL inputs | Public URL of the file to convert, or the page to capture | | any converter option | no | Converter-specific keys, see section 8 | `file_id` and `url` are also accepted at the top level of the body and are folded into `options` for you. ```bash curl -sSX POST https://api.conversiontools.io/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $CT_API_TOKEN" \ -d '{ "type": "convert.xml_to_excel", "options": { "file_id": "be87de1a680c4451a49a72df3fecd3fd", "excel_format": "xlsx" } }' ``` ```json { "error": null, "task_id": "4147c475ffe94ec8a11aff9a6a8f437a" } ``` A URL input needs no upload at all: ```bash curl -sSX POST https://api.conversiontools.io/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $CT_API_TOKEN" \ -d '{ "type": "convert.website_to_jpg", "options": { "url": "https://example.com", "images": "yes" } }' ``` ## 7. Step 3 and 4 - poll, then download `GET /v1/tasks/{task_id}`. Returns HTTP 200 for every task state. Poll no more than once every 5 to 10 seconds. ```bash curl -sSX GET https://api.conversiontools.io/v1/tasks/4147c475ffe94ec8a11aff9a6a8f437a \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $CT_API_TOKEN" ``` ```json { "error": null, "type": "convert.xml_to_excel", "status": "SUCCESS", "file_id": "ce87de1a680c4451a49a72df3fecd3fe", "conversionProgress": 100, "conversionResult": {} } ``` | Field | Type | Notes | | --- | --- | --- | | `status` | string | `PENDING` (queued), `RUNNING` (processing), `SUCCESS`, `ERROR`. Only the last two are terminal | | `file_id` | string or null | The **result** file id. `null` until the task succeeds | | `error` | string or null | Failure reason when `status` is `ERROR` | | `type` | string | The conversion type the task was created with | | `conversionProgress` | number | Percent complete, 0 to 100 | | `conversionResult` | object | Extra detail when present. `message` carries a human-readable note | A failed task: ```json { "error": "Wrong file format", "status": "ERROR", "file_id": null } ``` Then download the result: ```bash curl -sS -o result.xlsx https://api.conversiontools.io/v1/files/ce87de1a680c4451a49a72df3fecd3fe \ -H "Authorization: Bearer $CT_API_TOKEN" ``` The response body is the raw file bytes, with a `Content-Disposition: attachment` header carrying the output filename. ### Temporary download links To hand a file to something that cannot send your token, mint a short-lived link: `POST /v1/files/{file_id}/download` returns `{ "file_id": "...", "download_id": "..." }`. Anyone with that `download_id` can then fetch `GET /v1/files/{download_id}/download` with **no** `Authorization` header. Treat the link as a secret: it is the only thing standing between the file and whoever holds it. ### File metadata `GET /v1/files/{file_id}/info` returns detected type, size and, for text files, a short preview of the first lines. Binary files return no preview. Useful for confirming what was actually uploaded when an extension lies about the contents. --- ## 8. Conversion options Every converter accepts `file_id` or `url`. Beyond that, options are per conversion type: `delimiter` on CSV output, `excel_format` on Excel output, `output_layout` on tabular conversions, `pagesize` on PDF rendering, and so on. The authoritative per-converter list lives in three places, all generated from the same catalog: - The OpenAPI specification: https://api.conversiontools.io/openapi.yaml - The expandable option reference at https://conversiontools.io/api-documentation#conversion-types - The converter's own page, linked in the table in section 12 How values are handled: - **Option values are strings.** Booleans travel as `"yes"` and `"no"`. `"on"`, `"off"`, `true` and `false` are accepted and normalized to `"yes"`/`"no"`. - **An option that does not apply to the chosen type is dropped**, and the conversion runs with that setting's default. It is not an error. - **A value outside the allowed set is replaced with the default** rather than rejected. Both behaviours mean a typo produces a successful conversion with settings you did not ask for. Check the output, and take option keys from the specification rather than guessing them. Sandbox mode: send `"sandbox": true` inside `options` to exercise the full request and poll cycle without consuming your conversion allowance. The task returns a small placeholder result after a couple of seconds. Use it to test wiring, never to test conversion quality. ## 9. Errors Errors are a flat JSON object with a top-level `error` string. Decide that a request failed from the HTTP status code, then read `error` for the message. ```json { "error": "Human-readable message", "param": "file_id", "value": "the offending value", "code": "MACHINE_CODE", "message": "User-facing sentence", "remedy": { "text": "View plans", "path": "/pricing" } } ``` Only `error` is always present. `param`, `value`, `details`, `code`, `limit`, `message` and `remedy` appear when relevant. When a limit was hit, branch on `code` rather than on the English wording of `error`. | Status | Meaning | | --- | --- | | `400` | Validation error: malformed `type`, neither `file_id` nor `url` supplied, unusable `url` | | `401` | Missing, malformed or unknown token | | `403` | The conversion is not allowed on the current plan | | `404` | Task or file not found | | `413` | The uploaded file is larger than the plan allows | | `429` | Conversion rate limit, monthly limit, or AI credits exhausted | | `500` | Server error | Retry guidance: retry `500` at most twice with exponential backoff. Never auto-retry `400`, `401`, `403`, `404`, `413` or `429`. ### Rate limit headers Task creation responses carry the current allowance, so a client can back off before it hits a wall: | Header | Meaning | | --- | --- | | `x-ratelimit-limit-tasks` | Conversions allowed in the current period | | `x-ratelimit-limit-tasks-remaining` | Conversions left in that period | | `x-ratelimit-limit-tasks-monthly` | Monthly conversion allowance, when the plan has one | | `x-ratelimit-limit-tasks-monthly-remaining` | Monthly conversions left | | `x-ratelimit-limit-filesize` | Maximum upload size in bytes on this plan | | `x-ratelimit-limit-parallel` | Files converted in parallel inside an archive, when the plan allows more than one | | `x-ratelimit-ai-credits-monthly` | Monthly AI credit allowance, on AI conversions | | `x-ratelimit-ai-credits-monthly-remaining` | AI credits left this month | | `x-ratelimit-ai-credits-purchased` | Purchased AI credit balance | ## 10. Limits and retention - **File size** is capped per plan. Read the live ceiling from `x-ratelimit-limit-filesize` instead of hardcoding a number; exceeding it returns `413`. - **Conversions** are capped per plan, per period and per month. Read the live numbers from the rate limit headers above. Plan details are at https://conversiontools.io/pricing and https://conversiontools.io/api-pricing. - **AI conversions** spend AI credits rather than ordinary conversions, from a monthly allowance plus any purchased balance. Running out returns `429`. Retention: - Files are encrypted at rest with AES-256. - The uploaded file and the converted result are both deleted automatically **24 hours** after the conversion. - Paid plans can shorten that: `PATCH /v1/tasks/{task_id}/retention` with `{"retentionMode": "ttl_15m"}` deletes the files 15 minutes after the task finishes. `{"retentionMode": "standard_24h"}` restores the default. The response echoes `retentionMode` and the resulting `dateExpires`. - Paid plans can also delete immediately with `POST /v1/tasks/{task_id}/delete`. - Full policy: https://conversiontools.io/security ## 11. Complete integration examples Each example does the same thing: upload a file, create a task, poll until a terminal status, handle failure, save the result. ### 11A. curl and bash Requires `jq`. ```bash #!/usr/bin/env bash set -euo pipefail API="https://api.conversiontools.io/v1" AUTH="Authorization: Bearer ${CT_API_TOKEN:?set CT_API_TOKEN}" INPUT="${1:?usage: convert.sh }" TYPE="${2:?usage: convert.sh }" OUTPUT="${3:?usage: convert.sh }" POLL_INTERVAL=5 MAX_ATTEMPTS=240 # 240 x 5s = 20 minutes # 1. Upload file_id=$(curl -sS -X POST "$API/files" -H "$AUTH" -F "file=@$INPUT" | jq -r '.file_id') [ "$file_id" != "null" ] || { echo "upload failed" >&2; exit 1; } # 2. Create the task. This returns a task_id, never a file. task_id=$(curl -sS -X POST "$API/tasks" \ -H "$AUTH" -H "Content-Type: application/json" \ -d "{\"type\": \"$TYPE\", \"options\": {\"file_id\": \"$file_id\"}}" | jq -r '.task_id') [ "$task_id" != "null" ] || { echo "task creation failed" >&2; exit 1; } # 3. Poll until a terminal status. Branch on status, never on timing. status="PENDING" result="{}" attempt=0 while [ "$status" != "SUCCESS" ] && [ "$status" != "ERROR" ]; do attempt=$((attempt + 1)) if [ "$attempt" -gt "$MAX_ATTEMPTS" ]; then echo "timed out waiting for task $task_id" >&2 exit 1 fi sleep "$POLL_INTERVAL" result=$(curl -sS "$API/tasks/$task_id" -H "$AUTH") status=$(echo "$result" | jq -r '.status') done if [ "$status" = "ERROR" ]; then echo "conversion failed: $(echo "$result" | jq -r '.error')" >&2 exit 1 fi # 4. Download the RESULT file id, which differs from the uploaded one. result_file_id=$(echo "$result" | jq -r '.file_id') curl -sS -o "$OUTPUT" "$API/files/$result_file_id" -H "$AUTH" echo "wrote $OUTPUT" ``` ### 11B. Python An official client is published as `conversiontools` on PyPI (`pip install conversiontools`). The raw HTTP version, for when you would rather not add a dependency: ```python """Convert a file with the Conversion Tools API and save the result.""" import os import sys import time import requests API = "https://api.conversiontools.io/v1" HEADERS = {"Authorization": f"Bearer {os.environ['CT_API_TOKEN']}"} POLL_INTERVAL_SECONDS = 5.0 POLL_TIMEOUT_SECONDS = 1200.0 class ConversionError(RuntimeError): """The task reached a terminal ERROR state.""" def upload(path: str) -> str: with open(path, "rb") as handle: response = requests.post(f"{API}/files", headers=HEADERS, files={"file": handle}, timeout=600) response.raise_for_status() return response.json()["file_id"] def create_task(conversion_type: str, options: dict) -> str: body = {"type": conversion_type, "options": options} response = requests.post(f"{API}/tasks", headers=HEADERS, json=body, timeout=60) if response.status_code == 429: raise ConversionError(response.json().get("error", "rate limit reached")) response.raise_for_status() # The body carries a task_id, never the converted file. return response.json()["task_id"] def wait_for_result(task_id: str) -> str: """Poll until the task succeeds or fails. Returns the RESULT file id.""" deadline = time.monotonic() + POLL_TIMEOUT_SECONDS while time.monotonic() < deadline: response = requests.get(f"{API}/tasks/{task_id}", headers=HEADERS, timeout=30) response.raise_for_status() payload = response.json() status = payload.get("status") if status == "SUCCESS": return payload["file_id"] if status == "ERROR": raise ConversionError(payload.get("error") or "conversion failed") # PENDING or RUNNING. file_id is null until the task succeeds. time.sleep(POLL_INTERVAL_SECONDS) raise TimeoutError(f"task {task_id} did not finish within {POLL_TIMEOUT_SECONDS:.0f}s") def download(file_id: str, destination: str) -> None: with requests.get(f"{API}/files/{file_id}", headers=HEADERS, stream=True, timeout=600) as response: response.raise_for_status() with open(destination, "wb") as handle: for chunk in response.iter_content(chunk_size=1 << 20): handle.write(chunk) def convert(path: str, conversion_type: str, destination: str, **options: str) -> None: file_id = upload(path) task_id = create_task(conversion_type, {"file_id": file_id, **options}) download(wait_for_result(task_id), destination) if __name__ == "__main__": convert(sys.argv[1], sys.argv[2], sys.argv[3]) ``` ### 11C. Node An official client is published as `conversiontools` on npm (`npm install conversiontools`). The raw HTTP version: ```javascript // Convert a file with the Conversion Tools API and save the result. import { readFile, writeFile } from 'node:fs/promises'; import { basename } from 'node:path'; const API = 'https://api.conversiontools.io/v1'; const AUTH = { Authorization: 'Bearer ' + process.env.CT_API_TOKEN }; const POLL_INTERVAL_MS = 5000; const POLL_TIMEOUT_MS = 1200000; const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms)); async function upload(path) { const form = new FormData(); form.append('file', new Blob([await readFile(path)]), basename(path)); const response = await fetch(API + '/files', { method: 'POST', headers: AUTH, body: form }); const payload = await response.json(); if (!response.ok) throw new Error(payload.error ?? 'upload failed with ' + response.status); return payload.file_id; } async function createTask(type, options) { const response = await fetch(API + '/tasks', { method: 'POST', headers: { ...AUTH, 'Content-Type': 'application/json' }, body: JSON.stringify({ type, options }), }); const payload = await response.json(); if (!response.ok) throw new Error(payload.error ?? 'task creation failed with ' + response.status); // The body carries a task_id, never the converted file. return payload.task_id; } async function waitForResult(taskId) { const deadline = Date.now() + POLL_TIMEOUT_MS; while (Date.now() < deadline) { const response = await fetch(API + '/tasks/' + taskId, { headers: AUTH }); const payload = await response.json(); if (!response.ok) throw new Error(payload.error ?? 'poll failed with ' + response.status); if (payload.status === 'SUCCESS') return payload.file_id; if (payload.status === 'ERROR') throw new Error(payload.error ?? 'conversion failed'); // PENDING or RUNNING. file_id is null until the task succeeds. await sleep(POLL_INTERVAL_MS); } throw new Error('task ' + taskId + ' did not finish within the timeout'); } export async function convert(path, type, destination, options = {}) { const fileId = await upload(path); const taskId = await createTask(type, { file_id: fileId, ...options }); const resultFileId = await waitForResult(taskId); const response = await fetch(API + '/files/' + resultFileId, { headers: AUTH }); if (!response.ok) throw new Error('download failed with ' + response.status); await writeFile(destination, Buffer.from(await response.arrayBuffer())); } await convert(process.argv[2], process.argv[3], process.argv[4]); ``` ### 11D. Without writing a client - **Command line:** the `ctio` CLI is a single binary for Windows, macOS and Linux. Install with `brew install conversiontools/tap/ctio` (macOS, Linux) or scoop (Windows). It streams stdin to stdout, so a conversion drops into a shell pipeline, and `ctio voices` plus the `ai_*_to_speech` converters cover text to speech. See https://conversiontools.io/docs/ctio - **MCP:** point an MCP-capable client at https://mcp.conversiontools.io/mcp for conversion, converter discovery and large-file uploads as tools; add `?toolsets=all` for document data extraction and custom converters. See https://conversiontools.io/docs/mcp - **n8n:** Convert File, Convert URL, Get Task Status and Download File nodes. See https://conversiontools.io/docs/n8n - **Official SDKs:** `conversiontools` on npm and PyPI, `conversiontools/conversiontools-php` on Packagist. They implement the poll loop, retries and error types for you. --- ## 12. Converter catalog 225 converters. Use the **API type** value as the `type` field of `POST /tasks`. The **Page** column is the converter's own page, which carries its options, FAQ and worked examples. Rows marked **AI** in the last column are AI-powered and spend AI credits instead of ordinary conversions. A dash in the Formats column means the converter reshapes a file in place - a formatter, a validator or a metadata stripper - rather than moving it between two formats. Converters not listed here can be built to order: describe the transformation at https://conversiontools.io/ai-converter-studio, or request a bespoke one at https://conversiontools.io/custom-converter. | Converter | Formats | API type | Page | AI | | --- | --- | --- | --- | --- | | AI: DOCX to Speech | docx to mp3 | `convert.ai_docx_to_mp3` | https://conversiontools.io/convert/ai-docx-to-speech | AI | | AI: FLAC to Text | flac to text | `convert.ai_flac_to_text` | https://conversiontools.io/convert/ai-flac-to-text | AI | | AI: JPG to JSON | jpg to json | `convert.ai_jpg_to_json` | https://conversiontools.io/convert/ai-jpg-to-json | AI | | AI: Markdown to Speech | markdown to mp3 | `convert.ai_md_to_mp3` | https://conversiontools.io/convert/ai-markdown-to-speech | AI | | AI: MP3 to Text | mp3 to text | `convert.ai_mp3_to_text` | https://conversiontools.io/convert/ai-mp3-to-text | AI | | AI: PDF to CSV | pdf to csv | `convert.ai_pdf_to_csv` | https://conversiontools.io/convert/ai-pdf-to-csv | AI | | AI: PDF to Excel | pdf to excel | `convert.ai_pdf_to_excel` | https://conversiontools.io/convert/ai-pdf-to-excel | AI | | AI: PDF to JSON | pdf to json | `convert.ai_pdf_to_json` | https://conversiontools.io/convert/ai-pdf-to-json | AI | | AI: PDF to Markdown | pdf to markdown | `convert.ai_pdf_to_markdown` | https://conversiontools.io/convert/ai-pdf-to-markdown | AI | | AI: PDF to Speech | pdf to mp3 | `convert.ai_pdf_to_mp3` | https://conversiontools.io/convert/ai-pdf-to-speech | AI | | AI: PNG to JSON | png to json | `convert.ai_png_to_json` | https://conversiontools.io/convert/ai-png-to-json | AI | | AI: Text to Speech | text to mp3 | `convert.ai_text_to_mp3` | https://conversiontools.io/convert/ai-text-to-speech | AI | | AI to PDF | ai to pdf | `convert.ai_to_pdf` | https://conversiontools.io/convert/ai-to-pdf | | | AI to SVG | ai to svg | `convert.ai_to_svg` | https://conversiontools.io/convert/ai-to-svg | | | AI: Translate SRT | srt to srt | `convert.ai_translate_srt` | https://conversiontools.io/convert/ai-translate-srt | AI | | AI: WAV to Text | wav to text | `convert.ai_wav_to_text` | https://conversiontools.io/convert/ai-wav-to-text | AI | | AIS JSON to CSV | json to csv | `convert.ais_to_csv` | https://conversiontools.io/convert/ais-json-to-csv | | | AIS JSON to Excel | json to excel | `convert.ais_to_excel` | https://conversiontools.io/convert/ais-json-to-excel | | | ASS to Excel | ass to excel | `convert.ass_to_excel` | https://conversiontools.io/convert/ass-to-excel | | | ASS to SRT | ass to srt | `convert.ass_to_srt` | https://conversiontools.io/convert/ass-to-srt | | | ASS to Text | ass to text | `convert.ass_to_text` | https://conversiontools.io/convert/ass-to-text | | | ASS to VTT | ass to vtt | `convert.ass_to_vtt` | https://conversiontools.io/convert/ass-to-vtt | | | AVI to MP4 | avi to mp4 | `convert.avi_to_mp4` | https://conversiontools.io/convert/avi-to-mp4 | | | AVIF to HEIC | avif to heic | `convert.avif_to_heic` | https://conversiontools.io/convert/avif-to-heic | | | AVIF to JPEG | avif to jpg | `convert.avif_to_jpg` | https://conversiontools.io/convert/avif-to-jpg | | | AVIF to JXL | avif to jxl | `convert.avif_to_jxl` | https://conversiontools.io/convert/avif-to-jxl | | | AVIF to PNG | avif to png | `convert.avif_to_png` | https://conversiontools.io/convert/avif-to-png | | | AVIF to WebP | avif to webp | `convert.avif_to_webp` | https://conversiontools.io/convert/avif-to-webp | | | AZW to ePUB | azw to epub | `convert.azw_to_epub` | https://conversiontools.io/convert/azw-to-epub | | | AZW to MOBI | azw to mobi | `convert.azw_to_mobi` | https://conversiontools.io/convert/azw-to-mobi | | | AZW to PDF | azw to pdf | `convert.azw_to_pdf` | https://conversiontools.io/convert/azw-to-pdf | | | AZW3 to PDF | azw3 to pdf | `convert.azw3_to_pdf` | https://conversiontools.io/convert/azw3-to-pdf | | | BMP to HEIC | bmp to heic | `convert.bmp_to_heic` | https://conversiontools.io/convert/bmp-to-heic | | | BMP to JXL | bmp to jxl | `convert.bmp_to_jxl` | https://conversiontools.io/convert/bmp-to-jxl | | | BSON to CSV | bson to csv | `convert.bson_to_csv` | https://conversiontools.io/convert/bson-to-csv | | | BSON to Excel | bson to excel | `convert.bson_to_excel` | https://conversiontools.io/convert/bson-to-excel | | | Compress Image | - | `convert.compress_image` | https://conversiontools.io/convert/compress-image | | | Compress PDF | pdf to pdf | `convert.compress_pdf` | https://conversiontools.io/convert/compress-pdf | | | Compress Video | video to mp4 | `convert.compress_video` | https://conversiontools.io/convert/compress-video | | | CSV to Excel | csv to excel | `convert.csv_to_excel` | https://conversiontools.io/convert/csv-to-excel | | | CSV to JSON | csv to json | `convert.csv_to_json` | https://conversiontools.io/convert/csv-to-json | | | CSV to JSONL | csv to jsonl | `convert.csv_to_jsonl` | https://conversiontools.io/convert/csv-to-jsonl | | | CSV to Parquet | csv to parquet | `convert.csv_to_parquet` | https://conversiontools.io/convert/csv-to-parquet | | | CSV to SQL | csv to sql | `convert.csv_to_sql` | https://conversiontools.io/convert/csv-to-sql | | | CSV to SRT | csv to srt | `convert.csv_to_srt` | https://conversiontools.io/convert/csv-to-srt | | | CSV to XML | csv to xml | `convert.csv_to_xml` | https://conversiontools.io/convert/csv-to-xml | | | EDI to CSV | edi to csv | `convert.edi_to_csv` | https://conversiontools.io/convert/edi-to-csv | | | EDI to Excel | edi to excel | `convert.edi_to_excel` | https://conversiontools.io/convert/edi-to-excel | | | ePUB to AZW | epub to azw | `convert.epub_to_azw` | https://conversiontools.io/convert/epub-to-azw | | | ePUB to MOBI | epub to mobi | `convert.epub_to_mobi` | https://conversiontools.io/convert/epub-to-mobi | | | ePUB to PDF | epub to pdf | `convert.epub_to_pdf` | https://conversiontools.io/convert/epub-to-pdf | | | Excel to ASS | excel to ass | `convert.excel_to_ass` | https://conversiontools.io/convert/excel-to-ass | | | Excel to CSV | excel to csv | `convert.excel_to_csv` | https://conversiontools.io/convert/excel-to-csv | | | Excel to HTML | excel to html | `convert.excel_to_html` | https://conversiontools.io/convert/excel-to-html | | | Excel to JSON | excel to json | `convert.excel_to_json` | https://conversiontools.io/convert/excel-to-json | | | Excel to JSONL | excel to jsonl | `convert.excel_to_jsonl` | https://conversiontools.io/convert/excel-to-jsonl | | | Excel to ODS | excel to ods | `convert.excel_to_ods` | https://conversiontools.io/convert/excel-to-ods | | | Excel to Parquet | excel to parquet | `convert.excel_to_parquet` | https://conversiontools.io/convert/excel-to-parquet | | | Excel to PDF | excel to pdf | `convert.excel_to_pdf` | https://conversiontools.io/convert/excel-to-pdf | | | Excel to SQL | excel to sql | `convert.excel_to_sql` | https://conversiontools.io/convert/excel-to-sql | | | Excel to SRT | excel to srt | `convert.excel_to_srt` | https://conversiontools.io/convert/excel-to-srt | | | Excel to XML | excel to xml | `convert.excel_to_xml` | https://conversiontools.io/convert/excel-to-xml | | | Excel to XPS | excel to xps | `convert.excel_to_xps` | https://conversiontools.io/convert/excel-to-xps | | | Excel XML to XLSX | xml to excel | `convert.excel_xml_to_excel_xlsx` | https://conversiontools.io/convert/excel-xml-to-excel-xlsx | | | FB2 to PDF | fb2 to pdf | `convert.fb2_to_pdf` | https://conversiontools.io/convert/fb2-to-pdf | | | FBZ to PDF | fbz to pdf | `convert.fbz_to_pdf` | https://conversiontools.io/convert/fbz-to-pdf | | | Fix XML Escaping | - | `convert.fix_xml_escaping` | https://conversiontools.io/convert/fix-xml-escaping | | | FLAC to MP3 | flac to mp3 | `convert.flac_to_mp3` | https://conversiontools.io/convert/flac-to-mp3 | | | FLAC to WAV | flac to wav | `convert.flac_to_wav` | https://conversiontools.io/convert/flac-to-wav | | | JSON Formatter | - | `convert.format_json` | https://conversiontools.io/convert/format-json | | | GIF to JXL | gif to jxl | `convert.gif_to_jxl` | https://conversiontools.io/convert/gif-to-jxl | | | GIF to WebP | gif to webp | `convert.gif_to_webp` | https://conversiontools.io/convert/gif-to-webp | | | GSTR JSON to CSV | json to csv | `convert.gst_to_csv` | https://conversiontools.io/convert/gstr-json-to-csv | | | GSTR JSON to Excel | json to excel | `convert.gst_to_excel` | https://conversiontools.io/convert/gstr-json-to-excel | | | HEIC to AVIF | heic to avif | `convert.heic_to_avif` | https://conversiontools.io/convert/heic-to-avif | | | HEIC to BMP | heic to bmp | `convert.heic_to_bmp` | https://conversiontools.io/convert/heic-to-bmp | | | HEIC to JPG | heic to jpg | `convert.heic_to_jpg` | https://conversiontools.io/convert/heic-to-jpg | | | HEIC to JXL | heic to jxl | `convert.heic_to_jxl` | https://conversiontools.io/convert/heic-to-jxl | | | HEIC to PNG | heic to png | `convert.heic_to_png` | https://conversiontools.io/convert/heic-to-png | | | HEIC to TIFF | heic to tiff | `convert.heic_to_tiff` | https://conversiontools.io/convert/heic-to-tiff | | | HEIC to WebP | heic to webp | `convert.heic_to_webp` | https://conversiontools.io/convert/heic-to-webp | | | HTML Meta to JSON | html to json | `convert.html_meta_to_json` | https://conversiontools.io/convert/html-meta-to-json | | | HTML Table to CSV | html to csv | `convert.html_table_to_csv` | https://conversiontools.io/convert/html-to-csv | | | HTML Table to Excel | html to excel | `convert.html_table_to_excel` | https://conversiontools.io/convert/html-to-excel | | | HTML to JPG | html to jpg | `convert.html_to_jpg` | https://conversiontools.io/convert/html-to-jpg | | | HTML to JSON | html to json | `convert.html_to_json` | https://conversiontools.io/convert/html-to-json | | | HTML to Markdown | html to markdown | `convert.html_to_markdown` | https://conversiontools.io/convert/html-to-markdown | | | HTML to PNG | html to png | `convert.html_to_png` | https://conversiontools.io/convert/html-to-png | | | HTML to Word | html to word | `convert.html_to_word` | https://conversiontools.io/convert/html-to-word | | | JPG to AVIF | jpg to avif | `convert.jpg_to_avif` | https://conversiontools.io/convert/jpg-to-avif | | | JPG to HEIC | jpg to heic | `convert.jpg_to_heic` | https://conversiontools.io/convert/jpg-to-heic | | | JPG to JXL | jpg to jxl | `convert.jpg_to_jxl` | https://conversiontools.io/convert/jpg-to-jxl | | | JPG to PDF | jpg to pdf | `convert.jpg_to_pdf` | https://conversiontools.io/convert/jpg-to-pdf | | | JPEG to PGM | jpg to pgm | `convert.jpg_to_pgm` | https://conversiontools.io/convert/jpg-to-pgm | | | JPG to PNG | jpg to png | `convert.jpg_to_png` | https://conversiontools.io/convert/jpg-to-png | | | JPEG to PPM | jpg to ppm | `convert.jpg_to_ppm` | https://conversiontools.io/convert/jpg-to-ppm | | | JPG to WebP | jpg to webp | `convert.jpg_to_webp` | https://conversiontools.io/convert/jpg-to-webp | | | JSON objects to CSV | jsonl to csv | `convert.json_objects_to_csv` | https://conversiontools.io/convert/json-objects-to-csv | | | JSON objects to Excel | jsonl to excel | `convert.json_objects_to_excel` | https://conversiontools.io/convert/json-objects-to-excel | | | JSON to CSV | json to csv | `convert.json_to_csv` | https://conversiontools.io/convert/json-to-csv | | | JSON to Excel | json to excel | `convert.json_to_excel` | https://conversiontools.io/convert/json-to-excel | | | JSON to Parquet | json to parquet | `convert.json_to_parquet` | https://conversiontools.io/convert/json-to-parquet | | | JSON to SQL | json to sql | `convert.json_to_sql` | https://conversiontools.io/convert/json-to-sql | | | JSON to XML | json to xml | `convert.json_to_xml` | https://conversiontools.io/convert/json-to-xml | | | JSON to YAML | json to yaml | `convert.json_to_yaml` | https://conversiontools.io/convert/json-to-yaml | | | JSONL to CSV | jsonl to csv | `convert.jsonl_to_csv` | https://conversiontools.io/convert/jsonl-to-csv | | | JSONL to Excel | jsonl to excel | `convert.jsonl_to_excel` | https://conversiontools.io/convert/jsonl-to-excel | | | JSONL to Parquet | jsonl to parquet | `convert.jsonl_to_parquet` | https://conversiontools.io/convert/jsonl-to-parquet | | | JSONL to SQL | jsonl to sql | `convert.jsonl_to_sql` | https://conversiontools.io/convert/jsonl-to-sql | | | JXL to AVIF | jxl to avif | `convert.jxl_to_avif` | https://conversiontools.io/convert/jxl-to-avif | | | JXL to BMP | jxl to bmp | `convert.jxl_to_bmp` | https://conversiontools.io/convert/jxl-to-bmp | | | JXL to GIF | jxl to gif | `convert.jxl_to_gif` | https://conversiontools.io/convert/jxl-to-gif | | | JXL to HEIC | jxl to heic | `convert.jxl_to_heic` | https://conversiontools.io/convert/jxl-to-heic | | | JXL to JPG | jxl to jpg | `convert.jxl_to_jpg` | https://conversiontools.io/convert/jxl-to-jpg | | | JXL to PNG | jxl to png | `convert.jxl_to_png` | https://conversiontools.io/convert/jxl-to-png | | | JXL to TIFF | jxl to tiff | `convert.jxl_to_tiff` | https://conversiontools.io/convert/jxl-to-tiff | | | JXL to WebP | jxl to webp | `convert.jxl_to_webp` | https://conversiontools.io/convert/jxl-to-webp | | | Markdown to Word | markdown to docx | `convert.markdown_to_docx` | https://conversiontools.io/convert/markdown-to-docx | | | Markdown to ePUB | markdown to epub | `convert.markdown_to_epub` | https://conversiontools.io/convert/markdown-to-epub | | | Markdown to HTML | markdown to html | `convert.markdown_to_html` | https://conversiontools.io/convert/markdown-to-html | | | Markdown to LaTeX | markdown to latex | `convert.markdown_to_latex` | https://conversiontools.io/convert/markdown-to-latex | | | Markdown to PDF | markdown to pdf | `convert.markdown_to_pdf` | https://conversiontools.io/convert/markdown-to-pdf | | | Markdown to Text | markdown to text | `convert.markdown_to_text` | https://conversiontools.io/convert/markdown-to-text | | | MKV to MP4 | mkv to mp4 | `convert.mkv_to_mp4` | https://conversiontools.io/convert/mkv-to-mp4 | | | MOBI to AZW | mobi to azw | `convert.mobi_to_azw` | https://conversiontools.io/convert/mobi-to-azw | | | MOBI to ePUB | mobi to epub | `convert.mobi_to_epub` | https://conversiontools.io/convert/mobi-to-epub | | | MOBI to PDF | mobi to pdf | `convert.mobi_to_pdf` | https://conversiontools.io/convert/mobi-to-pdf | | | MOV to MP4 | mov to mp4 | `convert.mov_to_mp4` | https://conversiontools.io/convert/mov-to-mp4 | | | MP3 to WAV | mp3 to wav | `convert.mp3_to_wav` | https://conversiontools.io/convert/mp3-to-wav | | | MP4 to MP3 | mp4 to mp3 | `convert.mp4_to_mp3` | https://conversiontools.io/convert/mp4-to-mp3 | | | Numbers to Excel | numbers to excel | `convert.numbers_to_excel` | https://conversiontools.io/convert/numbers-to-excel | | | OCR: JPG to PDF | jpg to pdf | `convert.ocr_jpg_to_pdf` | https://conversiontools.io/convert/ocr-jpg-to-pdf | | | OCR: JPG to Text | jpg to text | `convert.ocr_jpg_to_text` | https://conversiontools.io/convert/ocr-jpg-to-text | | | OCR: PDF Image to PDF Text | pdf to pdf | `convert.ocr_pdf_to_pdf` | https://conversiontools.io/convert/ocr-pdf-to-pdf | | | OCR: PDF (Image) to Text | pdf to text | `convert.ocr_pdf_to_text` | https://conversiontools.io/convert/ocr-pdf-to-text | | | OCR: PNG to PDF | png to pdf | `convert.ocr_png_to_pdf` | https://conversiontools.io/convert/ocr-png-to-pdf | | | OCR: PNG to Text | png to text | `convert.ocr_png_to_text` | https://conversiontools.io/convert/ocr-png-to-text | | | ODS to CSV | ods to csv | `convert.ods_to_csv` | https://conversiontools.io/convert/ods-to-csv | | | ODS to Excel | ods to excel | `convert.ods_to_excel` | https://conversiontools.io/convert/ods-to-excel | | | ODS to PDF | ods to pdf | `convert.ods_to_pdf` | https://conversiontools.io/convert/ods-to-pdf | | | OXPS to PDF | oxps to pdf | `convert.oxps_to_pdf` | https://conversiontools.io/convert/oxps-to-pdf | | | Parquet to CSV | parquet to csv | `convert.parquet_to_csv` | https://conversiontools.io/convert/parquet-to-csv | | | Parquet to Excel | parquet to excel | `convert.parquet_to_excel` | https://conversiontools.io/convert/parquet-to-excel | | | Parquet to JSON | parquet to json | `convert.parquet_to_json` | https://conversiontools.io/convert/parquet-to-json | | | Parquet to JSONL | parquet to jsonl | `convert.parquet_to_jsonl` | https://conversiontools.io/convert/parquet-to-jsonl | | | Parquet to SQL | parquet to sql | `convert.parquet_to_sql` | https://conversiontools.io/convert/parquet-to-sql | | | PDF to AZW | pdf to azw | `convert.pdf_to_azw` | https://conversiontools.io/convert/pdf-to-azw | | | PDF to AZW3 | pdf to azw3 | `convert.pdf_to_azw3` | https://conversiontools.io/convert/pdf-to-azw3 | | | PDF to CSV | pdf to csv | `convert.pdf_to_csv` | https://conversiontools.io/convert/pdf-to-csv | | | PDF to ePUB | pdf to epub | `convert.pdf_to_epub` | https://conversiontools.io/convert/pdf-to-epub | | | PDF to Excel | pdf to excel | `convert.pdf_to_excel` | https://conversiontools.io/convert/pdf-to-excel | | | PDF to FB2 | pdf to fb2 | `convert.pdf_to_fb2` | https://conversiontools.io/convert/pdf-to-fb2 | | | PDF to FBZ | pdf to fbz | `convert.pdf_to_fbz` | https://conversiontools.io/convert/pdf-to-fbz | | | PDF to HTML | pdf to html | `convert.pdf_to_html` | https://conversiontools.io/convert/pdf-to-html | | | PDF to JPG | pdf to jpg | `convert.pdf_to_jpg` | https://conversiontools.io/convert/pdf-to-jpg | | | PDF to MOBI | pdf to mobi | `convert.pdf_to_mobi` | https://conversiontools.io/convert/pdf-to-mobi | | | PDF to PNG | pdf to png | `convert.pdf_to_png` | https://conversiontools.io/convert/pdf-to-png | | | PDF to SVG | pdf to svg | `convert.pdf_to_svg` | https://conversiontools.io/convert/pdf-to-svg | | | PDF to Text | pdf to text | `convert.pdf_to_text` | https://conversiontools.io/convert/pdf-to-text | | | PDF to TIFF | pdf to tiff | `convert.pdf_to_tiff` | https://conversiontools.io/convert/pdf-to-tiff | | | PDF to Word | pdf to word | `convert.pdf_to_word` | https://conversiontools.io/convert/pdf-to-word | | | PNG to AVIF | png to avif | `convert.png_to_avif` | https://conversiontools.io/convert/png-to-avif | | | PNG to HEIC | png to heic | `convert.png_to_heic` | https://conversiontools.io/convert/png-to-heic | | | PNG to JPG | png to jpg | `convert.png_to_jpg` | https://conversiontools.io/convert/png-to-jpg | | | PNG to JXL | png to jxl | `convert.png_to_jxl` | https://conversiontools.io/convert/png-to-jxl | | | PNG to PDF | png to pdf | `convert.png_to_pdf` | https://conversiontools.io/convert/png-to-pdf | | | PNG to PGM | png to pgm | `convert.png_to_pgm` | https://conversiontools.io/convert/png-to-pgm | | | PNG to PPM | png to ppm | `convert.png_to_ppm` | https://conversiontools.io/convert/png-to-ppm | | | PNG to SVG | png to svg | `convert.png_to_svg` | https://conversiontools.io/convert/png-to-svg | | | PNG to WebP | png to webp | `convert.png_to_webp` | https://conversiontools.io/convert/png-to-webp | | | Postman Test Results to CSV | json to csv | `convert.postman_results_to_csv` | https://conversiontools.io/convert/postman-test-results-to-csv | | | Postman Test Results to Excel | json to excel | `convert.postman_results_to_excel` | https://conversiontools.io/convert/postman-test-results-to-excel | | | PowerPoint to HTML | powerpoint to html | `convert.powerpoint_to_html` | https://conversiontools.io/convert/powerpoint-to-html | | | PowerPoint to PDF | powerpoint to pdf | `convert.powerpoint_to_pdf` | https://conversiontools.io/convert/powerpoint-to-pdf | | | PowerPoint to Text | powerpoint to text | `convert.powerpoint_to_text` | https://conversiontools.io/convert/powerpoint-to-text | | | Remove EXIF Data | - | `convert.remove_exif` | https://conversiontools.io/convert/remove-exif-data | | | RSS to CSV | xml to csv | `convert.rss_to_csv` | https://conversiontools.io/convert/rss-to-csv | | | RSS to Excel | xml to excel | `convert.rss_to_excel` | https://conversiontools.io/convert/rss-to-excel | | | Sitemap to CSV | xml to csv | `convert.sitemap_to_csv` | https://conversiontools.io/convert/sitemap-to-csv | | | Sitemap to Excel | xml to excel | `convert.sitemap_to_excel` | https://conversiontools.io/convert/sitemap-to-excel | | | SRT to ASS | srt to ass | `convert.srt_to_ass` | https://conversiontools.io/convert/srt-to-ass | | | SRT to CSV | srt to csv | `convert.srt_to_csv` | https://conversiontools.io/convert/srt-to-csv | | | SRT to Excel | srt to excel | `convert.srt_to_excel` | https://conversiontools.io/convert/srt-to-excel | | | SRT to Text | srt to text | `convert.srt_to_text` | https://conversiontools.io/convert/srt-to-text | | | SRT to VTT | srt to vtt | `convert.srt_to_vtt` | https://conversiontools.io/convert/srt-to-vtt | | | SRT to XLS | srt to excel | `convert.srt_to_xls` | https://conversiontools.io/convert/srt-to-xls | | | SRT to XLSX | srt to xlsx | `convert.srt_to_xlsx` | https://conversiontools.io/convert/srt-to-xlsx | | | SVG to JPG | svg to jpg | `convert.svg_to_jpg` | https://conversiontools.io/convert/svg-to-jpg | | | SVG to PNG | svg to png | `convert.svg_to_png` | https://conversiontools.io/convert/svg-to-png | | | TIFF to HEIC | tiff to heic | `convert.tiff_to_heic` | https://conversiontools.io/convert/tiff-to-heic | | | TIFF to JXL | tiff to jxl | `convert.tiff_to_jxl` | https://conversiontools.io/convert/tiff-to-jxl | | | TIFF to WebP | tiff to webp | `convert.tiff_to_webp` | https://conversiontools.io/convert/tiff-to-webp | | | JSON Validator | - | `convert.validate_json` | https://conversiontools.io/convert/validate-json | | | XML/XSD Validator | - | `convert.validate_xml_xsd` | https://conversiontools.io/convert/validate-xml-xsd | | | VTT to ASS | vtt to ass | `convert.vtt_to_ass` | https://conversiontools.io/convert/vtt-to-ass | | | VTT to SRT | vtt to srt | `convert.vtt_to_srt` | https://conversiontools.io/convert/vtt-to-srt | | | VTT to Text | srt to text | `convert.vtt_to_text` | https://conversiontools.io/convert/vtt-to-text | | | WAV to FLAC | wav to flac | `convert.wav_to_flac` | https://conversiontools.io/convert/wav-to-flac | | | WAV to MP3 | wav to mp3 | `convert.wav_to_mp3` | https://conversiontools.io/convert/wav-to-mp3 | | | WebP to AVIF | webp to avif | `convert.webp_to_avif` | https://conversiontools.io/convert/webp-to-avif | | | WebP to BMP | webp to bmp | `convert.webp_to_bmp` | https://conversiontools.io/convert/webp-to-bmp | | | WebP to HEIC | webp to heic | `convert.webp_to_heic` | https://conversiontools.io/convert/webp-to-heic | | | WebP to JPEG | webp to jpg | `convert.webp_to_jpg` | https://conversiontools.io/convert/webp-to-jpg | | | WebP to JXL | webp to jxl | `convert.webp_to_jxl` | https://conversiontools.io/convert/webp-to-jxl | | | WebP to PAM | webp to pam | `convert.webp_to_pam` | https://conversiontools.io/convert/webp-to-pam | | | WebP to PGM | webp to pgm | `convert.webp_to_pgm` | https://conversiontools.io/convert/webp-to-pgm | | | WebP to PNG | webp to png | `convert.webp_to_png` | https://conversiontools.io/convert/webp-to-png | | | WebP to PPM | webp to ppm | `convert.webp_to_ppm` | https://conversiontools.io/convert/webp-to-ppm | | | WebP to TIFF | webp to tiff | `convert.webp_to_tiff` | https://conversiontools.io/convert/webp-to-tiff | | | WebP to YUV | webp to yuv | `convert.webp_to_yuv` | https://conversiontools.io/convert/webp-to-yuv | | | Website to JPG | html to jpg | `convert.website_to_jpg` | https://conversiontools.io/convert/website-to-jpg | | | HTML to PDF | html to pdf | `convert.website_to_pdf` | https://conversiontools.io/convert/website-to-pdf | | | Website to PNG | html to png | `convert.website_to_png` | https://conversiontools.io/convert/website-to-png | | | Word to HTML | word to html | `convert.word_to_html` | https://conversiontools.io/convert/word-to-html | | | Word to LaTeX | word to latex | `convert.word_to_latex` | https://conversiontools.io/convert/word-to-latex | | | Word to Markdown | word to markdown | `convert.word_to_markdown` | https://conversiontools.io/convert/word-to-markdown | | | Word to PDF | word to pdf | `convert.word_to_pdf` | https://conversiontools.io/convert/word-to-pdf | | | Word to Text | word to text | `convert.word_to_text` | https://conversiontools.io/convert/word-to-text | | | XLS to SRT | excel to srt | `convert.xls_to_srt` | https://conversiontools.io/convert/xls-to-srt | | | XLSX to SRT | xlsx to srt | `convert.xlsx_to_srt` | https://conversiontools.io/convert/xlsx-to-srt | | | XML to CSV | xml to csv | `convert.xml_to_csv` | https://conversiontools.io/convert/xml-to-csv | | | XML to Excel | xml to excel | `convert.xml_to_excel` | https://conversiontools.io/convert/xml-to-excel | | | XML to JSON | xml to json | `convert.xml_to_json` | https://conversiontools.io/convert/xml-to-json | | | XML to Parquet | xml to parquet | `convert.xml_to_parquet` | https://conversiontools.io/convert/xml-to-parquet | | | YAML to JSON | yaml to json | `convert.yaml_to_json` | https://conversiontools.io/convert/yaml-to-json | | Category hubs, each listing the converters into and out of one format: - [Parquet Converters](https://conversiontools.io/converters/parquet): Convert Apache Parquet files online. Transform between Parquet, CSV, Excel, JSON, and JSONL formats for data engineering and analytics workflows. - [JSONL Converters](https://conversiontools.io/converters/jsonl): Convert JSON Lines (JSONL/NDJSON) files online. Transform between JSONL, CSV, Excel, Parquet formats for streaming data and ML workflows. - [SQL Converters](https://conversiontools.io/converters/sql): Convert Excel, CSV, JSON, JSONL and Parquet files into a ready-to-run SQL script. CREATE TABLE and INSERT statements for MySQL, PostgreSQL, SQL Server and SQLite. - [JSON Converters](https://conversiontools.io/converters/json): Convert JSON files online. Transform between JSON, XML, CSV, Excel, YAML and more formats. - [XML Converters](https://conversiontools.io/converters/xml): Convert XML files online. Transform between XML, JSON, CSV, Excel and more formats. - [CSV Converters](https://conversiontools.io/converters/csv): Convert CSV files online. Transform between CSV, Excel, JSON, XML, Parquet and more formats. - [Excel Converters](https://conversiontools.io/converters/excel): Convert Excel files online. Transform between Excel (XLSX, XLS), CSV, JSON, XML, Parquet and more formats. - [Subtitles Converters](https://conversiontools.io/converters/subtitles): Convert subtitle files online. Transform between SRT, VTT, CSV, Excel formats. Translate subtitles with AI. - [AI-Powered Converters](https://conversiontools.io/converters/ai): AI-powered file converters. Extract structured data from PDFs and images, translate subtitles, and more using advanced AI technology. - [Image Converters](https://conversiontools.io/converters/image): Convert image files online. Transform between PNG, JPG, WebP, AVIF, HEIC, SVG, and more image formats. - [Office Document Converters](https://conversiontools.io/converters/office): Convert Office documents online. Transform Word, PowerPoint, and other office formats to PDF, HTML, text and more. - [PDF Converters](https://conversiontools.io/converters/pdf): Convert PDF files online. Transform PDF to Word, Excel, images, HTML, text and more. Convert documents to PDF. - [eBook Converters](https://conversiontools.io/converters/ebook): Convert eBook files online. Transform between EPUB, MOBI, AZW, PDF and other eBook formats. - [Markdown Converters](https://conversiontools.io/converters/markdown): Convert Markdown files online. Transform between Markdown, Word, HTML, PDF, LaTeX, ePUB, and plain text formats. - [OCR Converters](https://conversiontools.io/converters/ocr): Extract text from images and scanned PDFs using OCR. Convert PNG, JPG, and PDF images to searchable text or PDF. - [Canva Converters](https://conversiontools.io/converters/canva): Free file converters for Canva users. Convert HEIC and WebP images so they upload, turn Canva PDF exports into images or editable Word, and shrink exports for the web. No signup, files stay private. - [CapCut Converters](https://conversiontools.io/converters/capcut): Free file converters for CapCut editors. Translate captions into 30+ languages, turn SRT into transcripts, convert between SRT, VTT and ASS, extract audio, and normalize video for editing. --- ## 13. Related products - **Parse** - https://parse.conversiontools.io - document data extraction: send a PDF or an image, get structured JSON back, optionally exported as CSV or Excel. Its own reference is at https://parse.conversiontools.io/llms-full.txt - **Voice** - https://voice.conversiontools.io - text to speech and speech to text. --- ## 14. Checklist for a generated client - [ ] Send `Authorization: Bearer ` on every request, read from an environment variable. - [ ] Upload first and keep the `file_id`, or pass `url` and skip the upload. - [ ] Treat the `task_id` from `POST /tasks` as the start of the job, not as a result. - [ ] Poll `GET /tasks/{task_id}` every 5 to 10 seconds, no faster. - [ ] Stop only on `status == "SUCCESS"` or `status == "ERROR"`. Never on a timing heuristic. - [ ] Raise or return an error on `ERROR`, using the `error` string. - [ ] Bound the poll loop with a deadline or attempt cap and report a timeout. - [ ] Download using the `file_id` from the **status** response, not the uploaded one. - [ ] Read errors from the flat top-level `error` field, and branch on `code` for limits. - [ ] Do not auto-retry `429` or `413`. Surface them as "limit reached" and "file too large". - [ ] Take option keys from the OpenAPI specification. A misspelled option is silently ignored, not rejected.