Docs

क्या कहाँ चलता है, और आगे क्या आ रहा है।

swapfile.io कैसे काम करता है

कन्वर्टर और मेटाडेटा क्लीनर पूरी तरह आपके ब्राउज़र में File API और canvas का इस्तेमाल करके चलते हैं। आपकी फ़ाइल आपके डिवाइस की memory में पढ़ी जाती है, वहीं प्रोसेस होती है और वहीं से डाउनलोड होती है। जिन फ़ॉर्मैट को ब्राउज़र decode नहीं कर सकता (जैसे Safari के बाहर HEIC), उनके लिए एक server-side pipeline आ रही है; वे jobs एक घंटे के अंदर storage से डिलीट कर दिए जाएँगे।

डेटा फ़्लो

लोकल टूल्सफ़ाइल → आपका ब्राउज़र → आपका downloads फ़ोल्डर
सर्वर टूल्स (जल्द)फ़ाइल → presigned upload → worker → download link → auto-delete ≤ 1h

API

एक REST API के साथ अपने कोड से फ़ाइलें कन्वर्ट करें। यह साइट जैसा ही server pipeline चलाती है: आप एक upload register करते हैं, bytes भेजते हैं, एक conversion job शुरू करते हैं, फिर रिज़ल्ट डाउनलोड करते हैं — सब एक API key से authenticated।

अपने अकाउंट में एक API key बनाएँ

Authentication

हर रिक्वेस्ट आपकी key को Authorization header (Bearer), या एक X-API-Key header में ले जाती है। इसे पासवर्ड की तरह समझें — यह आपके अकाउंट का conversion quota खर्च करती है।

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

एक फ़ाइल कन्वर्ट करना

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://…"}

Endpoints

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.

Operations

इनमें से एक को operation के रूप में पास करें। स्वीकार किए जाने वाले inputs में JPEG, PNG, WebP, GIF, BMP, HEIC, AVIF और TIFF शामिल हैं।

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

Limits

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

Errors

विफलताएँ एक stable code फ़ील्ड के साथ RFC 9457 problem+json लौटाती हैं — उदाहरण के लिए unauthorized, unsupported_format, file_too_large, quota_exceeded या rate_limited।

खुद जाँचें

अपने ब्राउज़र के developer tools खोलें, network टैब देखें और एक फ़ाइल कन्वर्ट करें। आपको कोई रिक्वेस्ट आपकी फ़ाइल ले जाती नहीं दिखेगी।