MPP API Entegrasyon Kılavuzu

MPP ödeme protokolünü kullanarak arka plan kaldırmayı entegre etmek için ihtiyacınız olan her şey.

Hızlı Başlangıç

Ham gövde olarak görselinizi içeren bir POST isteği gönderin. API, MPP spesifikasyonuna göre HTTP 402 ve WWW-Authenticate: Payment başlığıyla bir sorgu döndürür.

# 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 aracılığıyla kimlik doğrulama

MPP, Stripe ve Tempo tarafından birlikte başlatılan açık bir HTTP ödeme protokolüdür. İlk istekte API, WWW-Authenticate: Payment sorgusuyla birlikte HTTP 402 döndürür. mppx SDK'yı kullanarak Tempo üzerinde bir pathUSD transferi imzalayın ve ardından Authorization: Payment başlığıyla yeniden gönderin.

mppx SDK belgelerini görüntüleyin

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)

Talep Formatı

  • Uç nokta
  • Gövde: ham görüntü baytları (PNG, JPEG veya WebP)
  • Content-Type: image/png | image/jpeg | image/webp
  • İsteğe bağlı: WebP çıkışı için ?format=webp

Yanıt Formatı

  • HTTP 200 — ikili görüntü (PNG veya WebP)
  • HTTP 402 — ödeme gerekli (WWW-Authenticate: Payment sorgusu)

Hata İşleme

  • 400 — Geçersiz görüntü (kötü format, magic bytes uyumsuzluğu veya boyut aşıldı)
  • 413 — Dosya çok büyük (> 25 MB)
  • 415 — Desteklenmeyen Content-Type
  • 429 — Hız sınırı aşıldı (ödenmemiş istekler: 30/dak/IP)
  • 500 — İşleme başarısız oldu (retryable: true)
  • 503 — İşlemci geçici olarak kullanılamıyor (retryable: true)

Sınırlar ve Formatlar

  • Maksimum dosya boyutu: 25 MB
  • Maksimum boyutlar: 10.000 × 10.000 px
  • Desteklenen giriş: PNG, JPEG, WebP
  • Çıktı: PNG (varsayılan) veya WebP

API, Tempo ana ağında çalışır. Ödemeler pathUSD cinsinden yapılır (görüntü başına 0,05 $). İstek göndermeden önce Tempo cüzdanınızda pathUSD bulunduğundan emin olun. Uçtan uca testleri ücretsiz yapmak için Tempo test ağını kullanın.

Entegrasyona hazır mısınız?