Hurtigstart

Første Photta-bilde på under fem minutter.

I én setning

Registrer deg på ai.photta.app, klikk på Generate API key, eksporter den som PHOTTA_API_KEY, POST til /api/v1/tryon/apparel og gjør polling på den returnerte genererings-ID-en hvert 3. sekund til statusen endres til completed — vanligvis innen 1,5 til 4 minutter.

  • Autentisering: Bearer-nøkkel
  • Prosessering: asynkron, polling
  • Grenser: 600 forespørsler/min

Hvert tall på denne siden er hentet fra dokumentasjonen for Photta-API-et · verifisert

RESPONSE=$(curl -s -X POST https://api.photta.app/api/v1/tryon/apparel \
  -H "Authorization: Bearer $PHOTTA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "product_type": "top",
  "product_images": [
    "https://cdn.yourstore.com/products/shirt-front.jpg"
  ],
  "product_back_image": "https://cdn.yourstore.com/products/shirt-back.jpg",
  "product_category": "t_shirt",
  "mannequin_id": "mnk_f3a9b1",
  "pose_id": "pose_c2d4e5",
  "background": "https://cdn.yourstore.com/backgrounds/studio-loft.jpg",
  "lock_background": true,
  "resolution": "2K",
  "aspect_ratio": "3:4",
  "body_size": "M",
  "expression": "neutral",
  "user_instruction": "Keep the collar pattern crisp and centered."
}')
ID=$(echo "$RESPONSE" | jq -r '.data.id')

Slik fungerer det

Fem kommandoer fra null til første bilde

Lim dem inn i en terminal i rekkefølge. Hvert kodefragment er selvstendig og bruker kun curl + jq.

  1. Trinn 1

    Generer en API-nøkkel

    Registrer deg på ai.photta.app og åpne Developers-dashbordet. Klikk på Generate API key — live-nøkler starter med photta_live_. Eksporter den slik at resten av gjennomgangen kan lese den fra skallet ditt.

    # https://ai.photta.app → Developers → Generate API key
    export PHOTTA_API_KEY="photta_live_xxxxx"
    export PHOTTA_BASE_URL="https://api.photta.app/api/v1"
  2. Trinn 2

    POST din første try-on

    Gjør et kall mot /api/v1/tryon/apparel med en URL til et produktbilde og en mannequin-ID. API-et svarer umiddelbart med 202 Accepted og returnerer en genererings-ID i data.id.

    RESPONSE=$(curl -s -X POST https://api.photta.app/api/v1/tryon/apparel \
      -H "Authorization: Bearer $PHOTTA_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
      "product_type": "top",
      "product_images": [
        "https://cdn.yourstore.com/products/shirt-front.jpg"
      ],
      "product_back_image": "https://cdn.yourstore.com/products/shirt-back.jpg",
      "product_category": "t_shirt",
      "mannequin_id": "mnk_f3a9b1",
      "pose_id": "pose_c2d4e5",
      "background": "https://cdn.yourstore.com/backgrounds/studio-loft.jpg",
      "lock_background": true,
      "resolution": "2K",
      "aspect_ratio": "3:4",
      "body_size": "M",
      "expression": "neutral",
      "user_instruction": "Keep the collar pattern crisp and centered."
    }')
    ID=$(echo "$RESPONSE" | jq -r '.data.id')
  3. Trinn 3

    Utfør polling til fullført

    GET /api/v1/tryon/apparel/:id hvert 3. sekund. Vanlig fullføringstid er 1.5–4 minutter. Sett en øvre grense for forsøk, slik at en jobb som har hengt seg opp ikke låser skriptet ditt for alltid.

    # $ID is data.id from the POST response. Poll every 3 seconds until status is "completed" or "failed".
    for i in $(seq 1 120); do
      RESULT=$(curl -s "https://api.photta.app/api/v1/tryon/apparel/$ID" -H "Authorization: Bearer $PHOTTA_API_KEY")
      STATUS=$(echo "$RESULT" | jq -r '.data.status')
      [ "$STATUS" = "completed" ] && break
      [ "$STATUS" = "failed" ] && echo "generation failed" && exit 1
      sleep 3
    done
    echo "$RESULT" | jq -r '.data.output_url'
  4. Trinn 4

    Lagre outputen permanent

    Når status endres til completed, inneholder data.output_url det genererte bildet. Last ned bytene til din egen lagring, slik at produktet ditt ikke er avhengig av Phottas CDN for visning.

    OUTPUT_URL=$(echo "$RESULT" | jq -r '.data.output_url')
    curl -sO "$OUTPUT_URL"
    echo "Saved $(basename "$OUTPUT_URL")"
  5. Trinn 5

    Håndter feilsituasjoner skikkelig

    Forgren på HTTP-statuskoden: 402 for utilstrekkelige credits, 429 for rate limits (respekter Retry-After), 5xx for forbigående serverfeil. Hver feilrespons inneholder en maskinlesbar error.code du kan agere på.

    case "$STATUS_CODE" in
      402) echo "insufficient_credits_error — top up before retrying" ;;
      429) echo "rate_limit_error — wait the Retry-After seconds (30 by default)" ;;
      4??) echo "$BODY" | jq '.error.type, .error.message' ;;
      5??) echo "api_error — retry with backoff" ;;
    esac

Spørsmål utviklere stiller

Spørsmål om å komme i gang

Hvor lang tid tar hurtigstarten?

Fem minutter for registrering + generering av nøkkel + første cURL. Selve genereringen tar 1.5 til 4 minutter, så regn med ti minutter reell tid før du ser ditt første bilde på modell.

Trenger jeg et kredittkort for å prøve det?

Nye kontoer leveres med prøve-credits du kan bruke før du betaler. Når du er klar til å gå i produksjon, kan du abonnere på en plan for en høyere månedlig credit-saldo og romsligere rate limits.

Hvilket endpoint bør jeg prøve først?

Apparel try-on (/api/v1/tryon/apparel) — det er det mest brukte, dokumentasjonen er mest komplett, og det dekker mønsteret for asynkron kjøring + polling som alle andre Photta-endepunkter gjenbruker. Når du er komfortabel der, fungerer smykker og ghost mannequin på samme måte.

Kan jeg kjøre det fra nettleseren?

Nei. API-nøkkelen din må forbli på serversiden — sender du den til nettleseren, lekker den til alle besøkende. Rut kallene gjennom en tynn proxy på din egen backend (Next.js route handler, Express, Flask, Lambda) og la nettleseren kommunisere med proxyen din i stedet.

Relaterte sider

Hvert tall på denne siden er hentet fra dokumentasjonen for Photta-API-et · verifisert

Du er fem minutter unna ditt første bilde

  • Bearer-nøkkel
  • asynkron, polling
  • 600 forespørsler/min