Dokumentacja

Co działa gdzie i co pojawi się w następnej kolejności.

Jak działa swapfile.io

Konwerter i narzędzie do czyszczenia metadanych działają w całości w przeglądarce, korzystając z File API i canvas. Twój plik jest wczytywany do pamięci na Twoim urządzeniu, tam przetwarzany i stamtąd pobierany. Dla formatów, których przeglądarka nie potrafi zdekodować (jak HEIC poza Safari), przygotowujemy potok po stronie serwera; te zadania będą usuwane z magazynu w ciągu godziny.

Przepływ danych

narzędzia lokalneplik → Twoja przeglądarka → Twój folder pobierania
narzędzia serwerowe (wkrótce)plik → wstępnie podpisane przesłanie → worker → link do pobrania → automatyczne usunięcie ≤ 1h

API

Konwertuj pliki z własnego kodu za pomocą API REST. Korzysta z tego samego serwerowego potoku co strona: rejestrujesz przesłanie, wysyłasz bajty, uruchamiasz zadanie konwersji, a następnie pobierasz wynik — wszystko z uwierzytelnianiem kluczem API.

Utwórz klucz API na swoim koncie

Uwierzytelnianie

Każde żądanie przenosi Twój klucz w nagłówku Authorization (Bearer) lub nagłówku X-API-Key. Traktuj go jak hasło — zużywa limit konwersji Twojego konta.

https://api.swapfile.ioLive
curl https://api.swapfile.io/v1/jobs/{id} \
    -H "Authorization: Bearer sf_live_..."

Konwersja pliku

heic → jpeg
# 1 · register the upload → presigned URL
curl -X POST https://api.swapfile.io/v1/uploads \
    -H "Authorization: Bearer sf_live_..." \
    -H "Content-Type: application/json" \
    -d '{"size": 48213}'
{"file_id":"9f2c…","upload_url":"https://…"}

# 2 · send the raw bytes to that URL
curl -X PUT --upload-file photo.heic "$UPLOAD_URL"

# 3 · start the conversion
curl -X POST https://api.swapfile.io/v1/jobs \
    -H "Authorization: Bearer sf_live_..." \
    -H "Content-Type: application/json" \
    -d '{"file_id":"9f2c…","operation":"convert:jpeg","params":{"quality":"82"}}'
→ 202 {"id":"7ab1…","status":"queued"}

# 4 · poll until done, then download
curl https://api.swapfile.io/v1/jobs/7ab1… \
    -H "Authorization: Bearer sf_live_..."
{"status":"done","download_url":"https://…"}

Punkty końcowe

POST/v1/uploadsRegister an upload; returns a presigned PUT URL.
PUT{upload_url}Send the raw file bytes (max 100 MB).
POST/v1/jobsStart a conversion job for an uploaded file.
GET/v1/jobs/{id}Job status; includes download_url once done.
DELETE/v1/jobs/{id}Delete the file and job immediately.

Operacje

Przekaż jedną z nich jako operację. Akceptowane formaty wejściowe to m.in. JPEG, PNG, WebP, GIF, BMP, HEIC, AVIF i TIFF.

convert:jpeg→ JPEG · params: quality (1–100)
convert:png→ PNG (lossless)
convert:webp→ WebP · params: quality (1–100)

Limity

  • 100 MB max upload
  • 30 conversions / day (free)
  • 60 requests / minute per key
  • Files auto-deleted within 1 hour

Błędy

Błędy zwracają RFC 9457 problem+json ze stabilnym polem code — na przykład unauthorized, unsupported_format, file_too_large, quota_exceeded lub rate_limited.

Sprawdź to samodzielnie

Otwórz narzędzia deweloperskie przeglądarki, obserwuj kartę sieci i przekonwertuj plik. Nie zobaczysz żadnego żądania przenoszącego Twój plik.