دليل تكامل MPP API

كل ما تحتاجه لدمج إزالة الخلفية باستخدام بروتوكول الدفع MPP.

بداية سريعة

أرسل طلب POST مع صورتك كنص خام. تعيد API تحديًا عبر HTTP 402 مع رأس WWW-Authenticate: Payment وفقًا لمواصفة MPP.

# Step 1: discovery — returns HTTP 402 with a "Payment" challenge
curl -X POST https://mpp.clearcanvas.app/v1/remove-background \
  -H "Content-Type: image/png" \
  --data-binary @photo.png

# Step 2: paid request — attach an Authorization: Payment header
curl -X POST https://mpp.clearcanvas.app/v1/remove-background \
  -H "Content-Type: image/png" \
  -H "Authorization: Payment <mpp-credential>" \
  --data-binary @photo.png \
  --output result.png

المصادقة عبر MPP

MPP هو بروتوكول دفع HTTP مفتوح أطلقته Stripe وTempo معًا. في الطلب الأول، تعيد API استجابة HTTP 402 مع تحدي WWW-Authenticate: Payment. وقّع على تحويل pathUSD على Tempo باستخدام mppx SDK، ثم أعد الإرسال مع رأس Authorization: Payment.

اعرض وثائق mppx SDK

TypeScript

import fs from 'fs';
import { MppxClient } from 'mppx/client';

// Configure the mppx client for the Tempo crypto rail (pathUSD).
const client = new MppxClient({
  wallet: process.env.TEMPO_WALLET_PRIVATE_KEY!,
  network: 'tempo',
});

const res = await client.fetch('https://mpp.clearcanvas.app/v1/remove-background', {
  method: 'POST',
  headers: { 'Content-Type': 'image/png' },
  body: fs.readFileSync('photo.png'),
});

const buffer = await res.arrayBuffer();
fs.writeFileSync('result.png', Buffer.from(buffer));

Python

import os
import httpx
from mpp import wrap_httpx   # pip install mpp

client = wrap_httpx(
    wallet=os.environ["TEMPO_WALLET_PRIVATE_KEY"],
    network="tempo",
)
resp = client.post(
    "https://mpp.clearcanvas.app/v1/remove-background",
    content=open("photo.png", "rb").read(),
    headers={"Content-Type": "image/png"},
)
open("result.png", "wb").write(resp.content)

تنسيق الطلب

  • نقطة النهاية
  • النص: بايتات الصورة الخام (PNG أو JPEG أو WebP)
  • Content-Type: image/png | image/jpeg | image/webp
  • اختياري: ?format=webp لإخراج WebP

تنسيق الاستجابة

  • HTTP 200 — صورة ثنائية (PNG أو WebP)
  • HTTP 402 — الدفع مطلوب (تحدي WWW-Authenticate: Payment)

معالجة الأخطاء

  • 400 — صورة غير صالحة (تنسيق سيئ، أو عدم تطابق magic bytes، أو تجاوز للأبعاد)
  • 413 — الملف كبير جدًا (> 25 MB)
  • 415 — Content-Type غير مدعوم
  • 429 — تم تجاوز الحد الأقصى للمعدل (الطلبات غير المدفوعة: 30/دقيقة/IP)
  • 500 — فشلت المعالجة (retryable: true)
  • 503 — المعالج غير متاح مؤقتًا (retryable: true)

الحدود والتنسيقات

  • الحد الأقصى لحجم الملف: 25 MB
  • الحد الأقصى للأبعاد: 10,000 × 10,000 px
  • المدخلات المدعومة: PNG، JPEG، WebP
  • الإخراج: PNG (افتراضي) أو WebP

الشبكة

تعمل API على Tempo mainnet. تتم تسوية المدفوعات بعملة pathUSD (0.05 دولار لكل صورة). تأكد من أن محفظة Tempo الخاصة بك تحتوي على pathUSD قبل إرسال الطلبات. استخدم Tempo testnet لاختبار التدفق الكامل دون تكلفة.

هل أنت مستعد للتكامل؟