MPP API-integrationsvejledning

Alt hvad du behøver for at integrere baggrundsfjernelse ved hjælp af MPP-betalingsprotokollen.

Hurtig start

Send en POST-anmodning med dit billede som den rå brødtekst. API'en udfordrer med HTTP 402 og en WWW-Authenticate: Payment-header ifølge MPP-specifikationen.

# 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

Godkendelse via MPP

MPP er en åben HTTP-betalingsprotokol, der er lanceret sammen af Stripe og Tempo. På den første anmodning returnerer API'en HTTP 402 med en WWW-Authenticate: Payment-udfordring. Underskriv en pathUSD-overførsel på Tempo ved hjælp af mppx SDK, og send derefter igen med Authorization: Payment-headeren.

Se mppx SDK-dokumentationen

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)

Anmodningsformat

  • Slutpunkt
  • Brødtekst: rå billedbytes (PNG, JPEG eller WebP)
  • Content-Type: image/png | image/jpeg | image/webp
  • Valgfrit: ?format=webp til WebP-output

Svarformat

  • HTTP 200 — binært billede (PNG eller WebP)
  • HTTP 402 — betaling påkrævet (WWW-Authenticate: Payment-udfordring)

Fejlhåndtering

  • 400 — Ugyldigt billede (dårligt format, magiske bytes uoverensstemmelse eller dimension overskredet)
  • 413 — Filen er for stor (> 25 MB)
  • 415 — Ikke-understøttet Content-Type
  • 429 — Satsgrænse overskredet (ubetalte anmodninger: 30/min/IP)
  • 500 — Behandling mislykkedes (kan prøves igen: sand)
  • 503 — Processor midlertidigt utilgængelig (kan prøves igen: sand)

Grænser og formater

  • Maks filstørrelse: 25 MB
  • Maks. dimensioner: 10.000 × 10.000 px
  • Understøttet input: PNG, JPEG, WebP
  • Output: PNG (standard) eller WebP

Netværk

API'en kører på Tempo mainnet. Betalinger afregnes i pathUSD ($0,05 pr. billede). Sørg for, at din Tempo-pung holder pathUSD, før du fremsætter anmodninger. Brug Tempo-testnettet til ende-til-ende-test uden omkostninger.

Klar til at integrere?