Try any of 919 endpoints — live.
Pick an endpoint, load a working example, tweak the params, and send — no signup to try. Results render the way the data deserves; raw JSON, headers & code are one tab away.
Office → PDF (and html/txt; spreadsheets also → csv; text docs also → docx) via LibreOffice headless — docx/doc/odt/rtf/pptx/ppt/odp/xlsx/xls/ods/html/markdown/txt/csv in. Fonts: Noto (CJK/RTL) + Liberation (Arial/Times metrics). Output delivery: each produced file ≤10MB comes inline as base64 (files[].file_b64); 10-50MB comes as a one-time download token (files[].download_path, 30min TTL); >50MB total is rejected.
Set from=md when sending markdown (it has no magic bytes; .md filename also works).
Target: pdf (default) | html | txt | csv (spreadsheets only) | docx (text documents only).
The input file as base64 (data-URI prefix tolerated). Max 25MB. Provide file_b64 OR file_url. Multipart upload also works: POST the file as the 'file' form field.
https URL of the input file — fetched server-side through the proxy pool; private/internal/metadata addresses are SSRF-blocked. Max 25MB.
Optional original filename — used only as a hint (e.g. .md detection); the real format is always sniffed from magic bytes.
curl -X POST https://api.reefapi.com/file-convert/v1/office_convert \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"file_b64":"PCFET0NUWVBFIGh0bWw+PGh0bWw+PGhlYWQ+PG1ldGEgY2hhcnNldD0ndXRmLTgnPjx0aXRsZT5Hb2xkZW48L3RpdGxlPjwvaGVhZD48Ym9keT48aDE+UmVlZkFQSSBnb2xkZW4gdGVzdCBwYWdlPC9oMT48cD5BIHRpbnkgZG9jdW1lbnQgZm9yIGNhbmFyeSBydW5zLjwvcD48dGFibGU+PHRyPjx0aD5lbmdpbmU8L3RoPjx0aD50aWVyPC90aD48L3RyPjx0cj48dGQ+ZmlsZS1jb252ZXJ0PC90ZD48dGQ+dXRpbGl0aWVzPC90ZD48L3RyPjx0cj48dGQ+d2ViLWV4dHJhY3Q8L3RkPjx0ZD5kYXRhPC90ZD48L3RyPjwvdGFibGU+PC9ib2R5PjwvaHRtbD4=","to":"pdf"}'Hit Send to run this endpoint live.