Каталог форматов

Один публичный эндпоинт без аутентификации возвращает всё, что мы конвертируем, и каждый маршрут между форматами. Стройте интерфейс на его основе, а не на зашитом списке.

Ключ не нужен

GET https://rework.live/api/v1/formats не требует аутентификации. Это список возможностей, а не данные, и требовать ключ только ради того, чтобы узнать, что сервис конвертирует, — маленькая недружелюбность; это также означало бы, что оценить API до оплаты невозможно.

Ответ можно кешировать на час. Запрашивайте его при запуске, а не на каждый запрос.

curl https://rework.live/api/v1/formats

Что возвращается

Два массива. formats описывает каждый формат, который мы умеем читать или записывать; conversions — каждое ребро между ними.

{
  "formats": [
    {
      "id": "png",
      "label": "PNG",
      "kind": "image",
      "extensions": ["png"],
      "mime": "image/png"
    }
  ],
  "conversions": [
    {
      "from": "png",
      "to": "webp",
      "fidelity": "high",
      "async": false,
      "maxInputMb": 200,
      "options": []
    }
  ]
}
ПолеОписание
from / toИдентификаторы форматов, соединяемых ребром
fidelityНасколько точна конвертация
asyncИстина, когда эта конвертация ставится в очередь, а не выполняется сразу
maxInputMbНаибольший вход, принимаемый именно этой конвертацией
optionsДополнительные параметры этой конвертации, если они есть

Два потолка, а не один

maxInputMb — потолок именно этой конвертации. У вашего тарифа есть свой, и действует меньший из двух. Видео на 400 МБ в аккаунте Plus всё равно не пройдёт, если сама конвертация принимает меньше.