Inicio rápido
Primera imagen de Photta en menos de cinco minutos.
Una sola cuenta, una sola API key, cinco comandos de shell. Los pasos a continuación coinciden exactamente con lo que recomienda la documentación oficial de Photta — sin wrappers, sin SDKs, sin suposiciones de framework.
En una frase
Regístrate en ai.photta.app, haz clic en Generar API key, expórtala como PHOTTA_API_KEY, haz un POST a /api/v1/tryon/apparel y sondea el ID de generación devuelto cada 3 segundos hasta que el status cambie a completed — típicamente en 1.5 a 4 minutos.
Cómo funciona
Cinco comandos desde cero hasta la primera imagen
Pégalos en una terminal en orden. Cada fragmento es autónomo y usa solo curl + jq.
- 01
Paso 1
Genera una API key
Regístrate en ai.photta.app y abre el dashboard de Desarrolladores. Haz clic en Generar API key — las claves activas comienzan con photta_live_. Expórtala para que el resto de la guía pueda leerla desde tu shell.
# Sign up at ai.photta.app, open the Developers dashboard, # click "Generate API key" and copy it into your env. export PHOTTA_API_KEY="photta_live_xxxxx" export PHOTTA_BASE_URL="https://ai.photta.app/api/v1" - 02
Paso 2
Envía tu primer try-on
Llama a /api/v1/tryon/apparel con la URL de una imagen de producto, un mannequin ID y un pose ID. La API responde 202 Accepted de inmediato y devuelve un ID de generación en data.id.
curl -X POST "$PHOTTA_BASE_URL/tryon/apparel" \ -H "Authorization: Bearer $PHOTTA_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "product_type": "dress", "product_images": ["https://example.com/dress.jpg"], "mannequin_id": "mnq_athena_ts", "pose_id": "pose_standing_front", "resolution": "2K", "aspect_ratio": "3:4" }' # Response: 202 Accepted + data.id (generation ID) - 03
Paso 3
Sondea hasta que se complete
Llama a GET /api/v1/tryon/apparel/:id cada 3 segundos. La finalización típica es de 1.5–4 minutos. Pon un límite superior de intentos para que un trabajo atascado no bloquee tu script para siempre.
# Loop every 3 seconds until status flips to "completed". # Typical completion: 1.5–4 minutes. Max 120 attempts = 6 min. for i in $(seq 1 120); do RESULT=$(curl -s "$PHOTTA_BASE_URL/tryon/apparel/$ID" \ -H "Authorization: Bearer $PHOTTA_API_KEY") STATUS=$(echo "$RESULT" | jq -r '.data.status') [ "$STATUS" = "completed" ] && break [ "$STATUS" = "failed" ] && echo "Job failed" && exit 1 sleep 3 done - 04
Paso 4
Persistir el resultado
Cuando el status cambie a completed, data.output_url contiene la imagen renderizada. Descarga los bytes en tu propio almacenamiento para que tu producto no dependa del CDN de Photta para el renderizado.
# Pull the final URL out of the response and save the bytes. OUTPUT_URL=$(echo "$RESULT" | jq -r '.data.output_url') curl -sO "$OUTPUT_URL" echo "Saved $(basename "$OUTPUT_URL")" - 05
Paso 5
Maneja los modos de fallo con honestidad
Decide según el código de estado HTTP: 402 para créditos insuficientes, 429 para límites de tasa (respeta Retry-After), 5xx para errores transitorios del servidor. Cada cuerpo de error lleva un error.code legible por máquina sobre el cual puedes actuar.
# Surface the common failure modes honestly. case "$STATUS_CODE" in 402) echo "Out of credits — top up at ai.photta.app" ;; 429) echo "Rate limited — honour Retry-After header" ;; 4??) echo "Client error: $(echo "$BODY" | jq '.error.message')" ;; 5??) echo "Server error — retry with backoff" ;; esac
Preguntas de otros desarrolladores
Preguntas sobre cómo empezar
¿Cuánto tiempo toma el inicio rápido?+
Cinco minutos para el registro + generación de la clave + primer cURL. La generación en sí toma de 1.5 a 4 minutos, así que cuenta con diez minutos de tiempo real antes de ver tu primera imagen con modelo.
¿Necesito una tarjeta de crédito para probarlo?+
Las cuentas nuevas vienen con créditos de prueba que puedes usar antes de pagar. Cuando estés listo para pasar a producción, suscríbete a un plan para obtener un saldo mensual de créditos mayor y límites de tasa más rápidos.
¿Qué endpoint debería probar primero?+
Try-on de ropa (/api/v1/tryon/apparel) — es el más utilizado, la documentación es la más completa y cubre el patrón de async + polling que todos los demás endpoints de Photta reutilizan. Una vez que te sientas cómodo allí, joyería y maniquí invisible funcionan de la misma manera.
¿Puedo ejecutarlo desde el navegador?+
No. Tu API key debe permanecer en el servidor — enviarla a un navegador la filtra a cada visitante. Dirige las llamadas a través de un proxy ligero en tu propio backend (Next.js route handler, Express, Flask, Lambda) y deja que el navegador hable con tu proxy en su lugar.