ohmywrap
Get an API key

§ Office API

Office API. 1 endpoint, $0.001 a call.

One endpoint, and one decision inside it: what you want the document to become. Legacy formats onto modern ones, modern ones into ODF, and documents into something a retrieval index can read. Runs on LibreOffice, and a conversion that will not work is refused before a parser sees the file.

Example · POST /office/convert
curl -sS --fail-with-body \
  -o quarterly.csv \
  -H "Authorization: Bearer $OHMYWRAP_KEY" \
  -F "file=@quarterly.xlsx" \
  -F 'options={"to":"csv"}' \
  https://api.ohmywrap.com/office/convert

A conversion cannot be priced from its input.

A 2 MB document may be five pages or five hundred, and the only way to find out is to convert it — which is why everyone else bills this by the page, the minute, or the megabyte. We bill the call. Your five-hundred-page migration costs a tenth of a cent, the same as the memo.

Bytes per file
50 MB
Bytes per request
60 MB
Conversion timeout
60s
Concurrent conversions
2
Input formats
6
Target formats
9
Supported pairs
17
Price per call
$0.001

Anything over a limit is refused immediately, and refusals are not billed.

§ The inventory

The one office endpoint.

Each is a POST with your file attached, each returns the result on the same connection, and each costs $0.001. Follow any of them for parameters, limits, and a request you can paste.

The input list is an allowlist, not a description of the engine. LibreOffice also opens Visio, Publisher and WordPerfect, and each of those is another parser aimed at a document a stranger uploaded, for demand nobody has expressed. Your extension is your declaration and the container is what gets checked: a file named .docx must begin like a zip, a .doc like an OLE2 compound file, an .rtf with a brace and rtf. A mismatch is refused and never reaches a filter.

Your first office call takes one line of curl.

No plan to choose. No credits to model. No storage to configure.

10,000 calls for $10. No subscription, no expiry.

§ The matrix

Seventeen pairs, not a cross product.

Every pair below either works or is refused with a message naming what your inputcan become. Nothing here guesses.

Supported office conversion pairs
FromToWhy
docdocx odtLegacy migration
rtfdocx odtLegacy migration
xlsxlsx ods csvLegacy migration, data extraction
pptpptx odpLegacy migration
docxodt txt htmlODF compliance, text for retrieval
xlsxcsv odsThe one people actually ask for

odt, ods, odp, pptx, csv, txt and html are targets only. Sending one as input gets a refusal that says so, rather than one claiming the format is unknown.