التوثيق
ما الذي يعمل وأين، وما القادم.
كيف يعمل swapfile.io
يعمل المحوّل ومنظّف البيانات الوصفية بالكامل في متصفحك باستخدام File API وcanvas. يُقرأ ملفك في ذاكرة جهازك، ويُعالَج هناك، ويُنزَّل من هناك. أما الصيغ التي لا يستطيع المتصفح فكّ ترميزها (مثل HEIC خارج Safari)، فخط معالجة عبر الخادم قادم؛ وستُحذف تلك المهام من التخزين خلال ساعة واحدة.
تدفّق البيانات
API
حوّل الملفات من شيفرتك الخاصة عبر واجهة REST API. تشغّل خط الخادم نفسه المستخدم في الموقع: تسجّل عملية رفع، وترسل البايتات، وتبدأ مهمة تحويل، ثم تنزّل الناتج — كل ذلك موثّق بمفتاح API.
المصادقة
يحمل كل طلب مفتاحك في ترويسة Authorization (Bearer)، أو ترويسة X-API-Key. تعامل معه كأنه كلمة مرور — فهو يستهلك حصة التحويل الخاصة بحسابك.
curl https://api.swapfile.io/v1/jobs/{id} \
-H "Authorization: Bearer sf_live_..."تحويل ملف
# 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://…"}
نقاط النهاية
/v1/uploadsRegister an upload; returns a presigned PUT URL.{upload_url}Send the raw file bytes (max 100 MB)./v1/jobsStart a conversion job for an uploaded file./v1/jobs/{id}Job status; includes download_url once done./v1/jobs/{id}Delete the file and job immediately.العمليات
مرّر إحدى هذه القيم كعملية. تشمل المدخلات المقبولة 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)الحدود
- 100 MB max upload
- 30 conversions / day (free)
- 60 requests / minute per key
- Files auto-deleted within 1 hour
الأخطاء
تُرجِع الإخفاقات استجابة RFC 9457 بصيغة problem+json مع حقل code ثابت — مثل unauthorized أو unsupported_format أو file_too_large أو quota_exceeded أو rate_limited.
تحقّق بنفسك
افتح أدوات المطوّرين في متصفحك، وراقب علامة تبويب الشبكة، وحوّل ملفًا. لن ترى أي طلب يحمل ملفك.