spzHubspz.lol

API конвертации файлов

Конвертируйте файлы прямо из своего кода — один эндпоинт, без ключей.

API асинхронный и состоит из трёх шагов: отправляете файл, опрашиваете прогресс, скачиваете результат. Ключи и регистрация не нужны. Действует ограничение частоты запросов (20/minute;200/hour;1000/day), размер — до 25 МБ на файл.

1. Отправить файл на конвертацию

POST https://spz.lol/api/convertmultipart/form-data с полями file и target (целевой формат). Возвращает job_id.

curl -X POST https://spz.lol/api/convert \
  -F "file=@photo.heic" \
  -F "target=jpg"
# -> {"ok": true, "job_id": "a1b2c3..."}

2. Опросить прогресс

GET https://spz.lol/api/progress/{job_id} — статус queued / running / done / error. По готовности возвращает ссылку download_url.

curl https://spz.lol/api/progress/a1b2c3
# -> {"status":"done","progress":100,
#     "download_url":"/api/download/<token>.jpg","size":12345}

3. Скачать результат

GET https://spz.lol{download_url} — отдаёт готовый файл. Файлы удаляются автоматически через 30 минут.

Полный пример (Python)

import time, requests

BASE = "https://spz.lol"
with open("photo.heic", "rb") as f:
    r = requests.post(f"{BASE}/api/convert",
                      files={"file": f}, data={"target": "jpg"})
job = r.json()["job_id"]

while True:
    p = requests.get(f"{BASE}/api/progress/{job}").json()
    if p["status"] in ("done", "error"):
        break
    time.sleep(0.5)

if p["status"] == "done":
    out = requests.get(BASE + p["download_url"]).content
    open("photo.jpg", "wb").write(out)

Справочные эндпоинты

Список целевых форматов (target) смотрите на странице форматов или в /api/formats.