Capacidad · Joyas
API de try-on de joyas para collares, anillos, pulseras y pendientes
En una frase
La API de try-on de joyas de Photta toma una foto de la joya, un jewelry_type (necklace, ring, bracelet o earrings) y un ID de maniquí, y devuelve una foto en primer plano sobre modelo. Haz POST, sondea cada 3 segundos y descarga cuando el estado sea completed.
- Tiempo típico: 1.5–4 min
- Credits: 5 credits a 2K · 6 credits a 4K
- Procesamiento: asíncrono, polling
- Límites: 600 requests/min
- Autenticación: Bearer key
Cada cifra de esta página proviene de la documentación de la API de Photta · verificado
RESPONSE=$(curl -s -X POST https://api.photta.app/api/v1/tryon/jewelry \
-H "Authorization: Bearer $PHOTTA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jewelry_image": "https://cdn.yourstore.com/products/gold-necklace.jpg",
"jewelry_type": "necklace",
"mannequin_id": "mnk_j9k1l2",
"background": "soft window light on dark velvet",
"resolution": "2K",
"aspect_ratio": "3:4",
"user_instruction": "Make the pendant 10% smaller."
}')
ID=$(echo "$RESPONSE" | jq -r '.data.id')const res = await fetch("https://api.photta.app/api/v1/tryon/jewelry", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.PHOTTA_API_KEY}`, "Content-Type": "application/json" },
body: JSON.stringify({
"jewelry_image": "https://cdn.yourstore.com/products/gold-necklace.jpg",
"jewelry_type": "necklace",
"mannequin_id": "mnk_j9k1l2",
"background": "soft window light on dark velvet",
"resolution": "2K",
"aspect_ratio": "3:4",
"user_instruction": "Make the pendant 10% smaller."
}),
});
const { data } = await res.json(); // data.id, data.statusimport os, requests
res = requests.post(
"https://api.photta.app/api/v1/tryon/jewelry",
headers={"Authorization": f"Bearer {os.environ['PHOTTA_API_KEY']}"},
json={
"jewelry_image": "https://cdn.yourstore.com/products/gold-necklace.jpg",
"jewelry_type": "necklace",
"mannequin_id": "mnk_j9k1l2",
"background": "soft window light on dark velvet",
"resolution": "2K",
"aspect_ratio": "3:4",
"user_instruction": "Make the pendant 10% smaller."
},
)
data = res.json()["data"] # data["id"], data["status"]
De un vistazo
De un vistazo
- Endpoint
- POST /api/v1/tryon/jewelry
- Autenticación
- Bearer API key
- Procesamiento
- Asíncrono — realiza polling al endpoint de estado
- Tiempo típico
- 1.5–4 min
- Credits
- 5 credits a 2K · 6 credits a 4K
- Relaciones de aspecto
- 3:4 · 1:1 · 4:3 · 9:16 · 16:9
- Límites de entrada
- Hasta 10 MB por imagen; JPEG, PNG, WebP
- Idempotente
- No
Petición y respuesta
Petición
RESPONSE=$(curl -s -X POST https://api.photta.app/api/v1/tryon/jewelry \
-H "Authorization: Bearer $PHOTTA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jewelry_image": "https://cdn.yourstore.com/products/gold-necklace.jpg",
"jewelry_type": "necklace",
"mannequin_id": "mnk_j9k1l2",
"background": "soft window light on dark velvet",
"resolution": "2K",
"aspect_ratio": "3:4",
"user_instruction": "Make the pendant 10% smaller."
}')
ID=$(echo "$RESPONSE" | jq -r '.data.id')const res = await fetch("https://api.photta.app/api/v1/tryon/jewelry", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.PHOTTA_API_KEY}`, "Content-Type": "application/json" },
body: JSON.stringify({
"jewelry_image": "https://cdn.yourstore.com/products/gold-necklace.jpg",
"jewelry_type": "necklace",
"mannequin_id": "mnk_j9k1l2",
"background": "soft window light on dark velvet",
"resolution": "2K",
"aspect_ratio": "3:4",
"user_instruction": "Make the pendant 10% smaller."
}),
});
const { data } = await res.json(); // data.id, data.statusimport os, requests
res = requests.post(
"https://api.photta.app/api/v1/tryon/jewelry",
headers={"Authorization": f"Bearer {os.environ['PHOTTA_API_KEY']}"},
json={
"jewelry_image": "https://cdn.yourstore.com/products/gold-necklace.jpg",
"jewelry_type": "necklace",
"mannequin_id": "mnk_j9k1l2",
"background": "soft window light on dark velvet",
"resolution": "2K",
"aspect_ratio": "3:4",
"user_instruction": "Make the pendant 10% smaller."
},
)
data = res.json()["data"] # data["id"], data["status"]202 Accepted / Completado
{
"data": {
"id": "jwl_a1b2c3",
"status": "processing",
"jewelry_type": "necklace",
"mannequin_id": "mnk_j9k1l2",
"resolution": "2K",
"aspect_ratio": "3:4",
"credits_used": 5,
"created_at": "2026-04-10T14:00:00Z"
},
"request_id": "req_jwl001"
}{
"data": {
"id": "jwl_a1b2c3",
"status": "completed",
"jewelry_type": "necklace",
"mannequin_id": "mnk_j9k1l2",
"resolution": "2K",
"aspect_ratio": "3:4",
"output_url": "https://cdn.photta.app/generated/jwl_a1b2c3.jpg",
"thumbnail_url": "https://cdn.photta.app/generated/jwl_a1b2c3-thumb.jpg",
"credits_used": 5,
"created_at": "2026-04-10T14:00:00Z",
"completed_at": "2026-04-10T14:01:10Z",
"duration_ms": 70000
},
"request_id": "req_jwl002"
}Parámetros de la petición
jewelry_imageTipo: stringObligatorio
URL or base64 data URI of the jewelry product image.
jewelry_typeTipo: stringObligatorio
Type of jewelry.
Valores:necklaceearringsbraceletringmannequin_idTipo: stringObligatorio
ID of the mannequin. Must be jewelry-compatible and have a matching close-up view for the given jewelry_type. Use GET /api/v1/mannequins?jewelry_type=necklace to find compatible mannequins.
backgroundTipo: string
Optional. Pass a URL or base64 data URI to use a reference photo as the scene; pass any other string to use it as a free-form text description (e.g. "soft window light on dark velvet"). When omitted, the original mannequin backdrop is preserved.
resolutionTipo: string
Output resolution. "2K" costs 5 credits per image; "4K" costs 6 credits per image. 4K is produced natively in a single generation — pick it upfront; the resolution cannot be changed after creation. 4K cannot be combined with aspect_ratio 1:1 (returns 400).
= 2K
Valores:2K4Kaspect_ratioTipo: string
Output aspect ratio. 1:1 is not available at 4K resolution — that combination returns 400.
= 3:4
Valores:3:41:14:39:1616:9user_instructionTipo: string
Free-form refinement, e.g. "make the pendant 10% smaller", "keep the clasp visible at the back of the neck". Capped at 400 characters server-side; longer strings are silently truncated. Requests to change the jewelry's size, scale, or proportions are honored and take priority; any other instruction applies only where it does not conflict with reproducing the jewelry exactly from the reference image. Not a determinism or seed control.
Errores
- 400
invalid_request_error - The request is malformed or contains invalid parameters.
- 401
authentication_error - The API key is missing, invalid, or expired.
- 402
insufficient_credits_error - Your account does not have enough credits.
- 404
not_found_error - The requested resource does not exist.
- 409
conflict_error - The request conflicts with current state — e.g. your concurrent-batch cap is reached.
- 429
rate_limit_error - Too many requests. Slow down and retry.Retry-After: 30
- 500
api_error - An internal server error occurred. Retry later.
Límites
- 600 solicitudes por minuto por API key (Ventana fija; el límite es el mismo en todos los planes)
- Un 429 incluye Retry-After: 30 segundos
- Hasta 10 MB por imagen
- Formatos: JPEG, PNG, WebP
- Lotes simultáneos por plan: Free 1 · Hobby 2 · Seller 3 · Brand 4 · Studio 6
- Solo polling — la API no envía webhooks.
El flujo de ropa, recalibrado para artículos pequeños y altamente reflectantes
Elige un maniquí en primer plano, envía la petición, haz polling y descarga.
Paso 1
Genera una API key
El mismo flujo que para ropa — ai.photta.app → Developers → Generate API key. Una sola clave funciona en todos los endpoints; un único saldo de credits cubre cada funcionalidad.
Paso 2
Elige un maniquí en primer plano
Lista los maniquíes de joyería o sube el tuyo con `POST /api/v1/mannequins/jewelry` — Photta mantiene un conjunto específico de maniquíes en primer plano con texturas de piel ajustadas para metales y piedras de tamaño reducido.
Paso 3
Envía el trabajo de joyería con POST
Haz POST a `/api/v1/tryon/jewelry` con `jewelry_image`, `jewelry_type`, `mannequin_id` y los parámetros opcionales `background`, `resolution` y `aspect_ratio`. El servicio escala automáticamente la posición según la categoría de joyería.
Paso 4
Haz polling hasta que el trabajo se complete
Haz GET a `/api/v1/tryon/jewelry/:id` cada 3 segundos. La estructura de la respuesta es idéntica a la de ropa — `data.status`, `data.output_url`, `data.thumbnail_url`.
Paso 5
Descarga y persiste
Un recorte ajustado 1:1 funciona mejor para miniaturas de PDP; relaciones de aspecto más amplias para editorial. Almacena los bytes localmente en lugar de hacer hot-linking a la CDN.
El mismo endpoint en Node.js, Python y cURL
Node.js
API de try-on de joyas en Node.js
Llama a aPI de try-on de joyas de Photta desde un backend de Node.js con fetch nativo. Sin SDKs: guarda tu key, envía el trabajo y haz polling para obtener el resultado.
LeerPython
API de try-on de joyas en Python
Llama a aPI de try-on de joyas de Photta en Python con la biblioteca requests. Wrapper de treinta líneas, compatible con async mediante httpx, funciona en Django, FastAPI y Celery.
LeercURL
API de try-on de joyas con cURL
Llama a aPI de try-on de joyas de Photta directamente desde la terminal con cURL. Envía, haz polling, descarga: cada fragmento de código se combina con jq para pipelines automatizados.
Leer
Preguntas que se hacen los desarrolladores antes de implementar try-on para joyería
¿Qué tipos de joyería son compatibles?
Cuatro categorías explícitas: collar, anillo, pulsera, pendientes. Cada categoría cuenta con su propio conjunto específico de maniquíes en primer plano y una heurística de colocación optimizada para ese factor de forma. Los anillos y pendientes se benefician más del formato 1:1; los collares lucen bien en 3:4.
¿Cuánto cuesta un try-on de joyería?
Lo mismo que para ropa: 5 credits a 2K, 6 credits a 4K. Los trabajos fallidos se reembolsan automáticamente. Sin recargo adicional por la biblioteca de maniquíes en primer plano.
¿En qué se diferencia el endpoint de joyería del de ropa?
Misma autenticación, mismo patrón de polling, misma estructura de respuesta — las diferencias están en el cuerpo de la petición. Envías `jewelry_type` y `jewelry_image` en lugar de `product_type` y `product_images`, y seleccionas maniquíes filtrados por categoría de joyería. Todo lo demás (2K/4K, relaciones de aspecto, credits) se comparte.
¿Puedo subir mi propio modelo de joyería?
Sí — `POST /api/v1/mannequins/jewelry` acepta una referencia personalizada en primer plano; `POST /api/v1/mannequins/jewelry/generate` genera una nueva a partir de opciones. Ambas devuelven un ID que luego introduces en la petición de try-on.
¿Cómo gestiona los metales reflectantes y las piedras preciosas?
El pipeline de primeros planos procesa metadatos sobre reflejos especulares y microgeometría. El oro, la plata y el platino pulido a espejo se renderizan correctamente sin las imágenes fantasma o el desenfoque cromático producidos por pipelines de try-on de propósito general. Se recomiendan fondos de estudio ultra limpios para obtener los mejores resultados.
¿Cómo hago el polling para obtener el resultado?
Haz GET a `/api/v1/tryon/jewelry/:id` cada 3 a 5 segundos. Mismo ciclo de vida de estados que para ropa: `processing` → `completed` o `failed`. Una ventana de 1.5 a 4 minutos cubre la gran mayoría de los trabajos.
Funcionalidades relacionadas
Capacidades
API de virtual try-on para ropa
API REST que viste maniquíes de IA con prendas. Generación asíncrona de 1.5–4 minutos, 5 créditos en 2K, 6 en 4K. Ejemplos en cURL, Node.js y Python.
Ver el endpointCapacidades
API de maniquí invisible para fotos de producto con efecto maniquí invisible
Endpoint de maniquí invisible con IA. Elimina el maniquí de una foto de la prenda y preserva el detalle interior. 3D o flat-lay, procesamiento por lotes, 4 credits a 2K.
Ver el endpointConstruir
Crea un servicio de fotografía de producto con IA
Un manual para fundadores sobre cómo revender la API de virtual try-on de Photta como un SaaS de marca blanca: claves por tenant, fanout por lotes, facturación por credit y la realidad del SLA.
Ver el endpointComparar
Photta frente a FASHN: API de IA de moda, frente a frente
Comparativa de Photta y FASHN: endpoints, precios de créditos, niveles de planes, límites de concurrencia. Obtenido directamente de la página de precios de cada empresa el 2026-04-19. Sin cifras inventadas.
Ver el endpointComparar
Photta frente a Ayna: API para desarrolladores o estudio centrado en Shopify
Photta vs Ayna frente a frente: tres endpoints REST frente a un estudio enfocado en Shopify + API. Ambos tienen sus ventajas. Datos extraídos de cada sitio el 2026-04-19.
Ver el endpointGuía rápida
Tu primera imagen de Photta en menos de cinco minutos.
Regístrate, genera una API key, ejecuta tu primera llamada cURL, haz polling hasta que se complete y guarda el resultado. Cinco pasos, documentados de principio a fin.
Ver el endpointReferencia
Errores de Photta API
La lista completa de tipos de error de Photta API con sus status codes, la estructura del cuerpo de error y qué fallos merece la pena reintentar.
Ver el endpointReferencia
Rate limits de la API de Photta
El rate limit de la API de Photta, su ventana, la cabecera Retry-After, el intervalo de polling y los límites de concurrencia por plan, todo extraído directamente de la documentación de la API.
Ver el endpoint
Cada cifra de esta página proviene de la documentación de la API de Photta · verificado
Prueba la API en cinco minutos
Genera una API key de Photta, pega el snippet de cURL de arriba y tendrás tu primera imagen con modelo antes de que termine de prepararse el café.
- 1.5–4 min
- 5 credits a 2K · 6 credits a 4K
- asíncrono, polling
- 600 requests/min
- Bearer key