The format catalogue
One public, unauthenticated endpoint returns everything we convert and every route between formats. Build your interface from it rather than hardcoding a list.
No key required
GET https://rework.live/api/v1/formats needs no authentication. It is a capability list rather than data, and requiring a key to find out what a service converts is a small hostility — it would also mean nobody could evaluate the API before paying for it.
The response is cacheable for an hour. Fetch it at startup rather than per request.
curl https://rework.live/api/v1/formatsWhat comes back
Two arrays. formats describes each format we can read or write; conversions is every edge between them.
{
"formats": [
{
"id": "png",
"label": "PNG",
"kind": "image",
"extensions": ["png"],
"mime": "image/png"
}
],
"conversions": [
{
"from": "png",
"to": "webp",
"fidelity": "high",
"async": false,
"maxInputMb": 200,
"options": []
}
]
}| Field | Description |
|---|---|
| from / to | Format ids the edge connects |
| fidelity | How faithful the conversion is |
| async | True when this conversion queues instead of running inline |
| maxInputMb | Largest input this particular conversion accepts |
| options | Extra parameters this conversion accepts, if any |
Two ceilings, not one
maxInputMb is the ceiling for that specific conversion. Your plan has its own, and the smaller of the two is the one that applies. A 400 MB video on a Plus account still fails if the conversion itself accepts less.