Hurtig start
Send en POST-anmodning med dit billede som den rå krop. Ingen godkendelsesheader nødvendig - API'en bruger x402 til betaling.
# Step 1: discovery — returns HTTP 402 with payment details curl -X POST https://x402.clearcanvas.app/v1/remove-background \ -H "Content-Type: image/png" \ --data-binary @photo.png # Step 2: paid request — attach X-PAYMENT header with signed USDC transfer curl -X POST https://x402.clearcanvas.app/v1/remove-background \ -H "Content-Type: image/png" \ -H "X-PAYMENT: <base64-signed-payload>" \ --data-binary @photo.png \ --output result.png
Godkendelse via x402
x402 er en standard HTTP-betalingsprotokol. På den første anmodning returnerer API'en HTTP 402 med betalingsoplysninger. Underskriv en USDC-overførsel på Base ved hjælp af Coinbase x402 SDK, og send derefter igen med X-PAYMENT-headeren.
Se x402 SDK på GitHub →TypeScript
import fs from 'fs';
import { wrapFetchWithPayment } from '@coinbase/x402';
import { privateKeyToAccount } from 'viem/accounts';
const account = privateKeyToAccount(process.env.PRIVATE_KEY as `0x${string}`);
const fetch402 = wrapFetchWithPayment(fetch, account);
const res = await fetch402('https://x402.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 x402.client import wrap_httpx # pip install x402
client = wrap_httpx(private_key=os.environ["PRIVATE_KEY"])
resp = client.post(
"https://x402.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)
- •Indholdstype: billede/png | billede/jpeg | billede/webp
- •Valgfrit: ?format=webp til WebP-output
Svarformat
- •HTTP 200 — binært billede (PNG eller WebP)
- •HTTP 402 — betaling påkrævet (x402 detaljer i brødteksten)
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 indholdstype
- •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å Base mainnet. Betalinger afregnes i ægte USDC ($0,05 pr. billede). Sørg for, at din tegnebog holder USDC on Base, før du fremsætter anmodninger.