Guia rápido
Primeira imagem no Photta em menos de cinco minutos.
Em uma frase
Cadastre-se em ai.photta.app, clique em Generate API key, exporte-a como PHOTTA_API_KEY, faça um POST para /api/v1/tryon/apparel e faça polling do generation ID retornado a cada 3 segundos até que o status mude para completed — normalmente entre 1.5 e 4 minutos.
- Autenticação: Chave Bearer
- Processamento: assíncrono, polling
- Limites: 600 requisições/min
Todos os números nesta página vêm de a documentação da API da Photta · verificado
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')Como funciona
Cinco comandos do zero à primeira imagem
Cole-os em um terminal nesta ordem. Cada snippet é independente e utiliza apenas curl + jq.
Passo 1
Gere uma chave de API
Cadastre-se em ai.photta.app e acerte o painel de Developers. Clique em Generate API key — chaves ativas começam com photta_live_. Exporte-a para que o restante do guia possa lê-la a partir do seu shell.
# 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"Passo 2
Envie seu primeiro POST de try-on
Chame /api/v1/tryon/apparel com a URL da imagem do produto e um ID de manequim. A API responde imediatamente com 202 Accepted e retorna um generation ID em 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')Passo 3
Faça polling até a conclusão
GET /api/v1/tryon/apparel/:id a cada 3 segundos. A conclusão típica leva de 1.5 a 4 minutos. Defina um limite máximo de tentativas para que um job travado não prenda seu script indefinidamente.
# $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'Passo 4
Persista a saída
Quando o status mudar para completed, data.output_url conterá a imagem renderizada. Baixe os bytes no seu próprio storage para que seu produto não dependa da CDN da Photta para renderização.
OUTPUT_URL=$(echo "$RESULT" | jq -r '.data.output_url') curl -sO "$OUTPUT_URL" echo "Saved $(basename "$OUTPUT_URL")"Passo 5
Trate os modos de falha de forma explícita
Faça o desvio pelo código de status HTTP: 402 para créditos insuficientes, 429 para rate limits (respeite o Retry-After), 5xx para erros transientes do servidor. O corpo de cada erro traz um error.code legível por máquina para você tratar.
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
Dúvidas frequentes de desenvolvedores
Dúvidas sobre os primeiros passos
Quanto tempo leva o quickstart?
Cinco minutos para cadastro + geração de chave + primeiro cURL. A geração em si leva de 1.5 a 4 minutos, então planeje dez minutos de tempo real antes de ver sua primeira imagem no modelo.
Preciso de cartão de crédito para testar?
Novas contas vêm com créditos de teste que você pode usar antes de pagar. Quando estiver pronto para entrar em produção, assine um plano para ter um saldo mensal de créditos maior e rate limits mais altos.
Qual endpoint devo testar primeiro?
Apparel try-on (/api/v1/tryon/apparel) — é o mais utilizado, a documentação é a mais completa e cobre o padrão de async + polling que todos os outros endpoints da Photta reutilizam. Quando dominar este, jewelry e ghost mannequin funcionam da mesma forma.
Posso rodar a partir do navegador?
Não. Sua chave de API deve permanecer no lado do servidor — enviá-la para o navegador expõe sua credencial a qualquer visitante. Encaminhe as chamadas através de um proxy leve no seu próprio backend (route handler do Next.js, Express, Flask, Lambda) e faça o navegador se comunicar com o seu proxy.
Páginas relacionadas
Recursos
Provador Virtual (Roupas)
Coloque uma peça em flat-lay em um manequim de IA com a expressão e o tamanho corporal que você escolher. Quatro tipos de produto, cinco proporções de tela.
LerRecursos
Provador de Joias
Close-ups fechados de colares, anéis, pulseiras e brincos em manequins de joias dedicados — reflexos e superfícies minúsculas perfeitamente tratados.
LerRecursos
Manequim Invisível
Remova o manequim da foto da peça mantendo a construção interna intacta. Acabamento 3D ou flat-lay, pronto para lotes.
LerRecursos
Estúdio de Óculos
Óculos de grau e de sol renderizados em modelos em close-up, mantendo a armação idêntica à foto do seu produto.
LerRecursos
Fotos de Detalhes
Close-ups de costura, tecido, aviamentos e etiquetas a partir de uma única foto do produto; um analisador sugere quais áreas fotografar.
LerRecursos
Geração de Manequins
Gere seus próprios manequins de roupas ou joias a partir de opções e reutilize os IDs deles em cada chamada de provador.
LerRecursos
Fluxos de Trabalho
Execute um fluxo de trabalho pré-definido — uma foto principal de joia, por exemplo — com uma chamada e receba um conjunto finalizado de imagens.
LerRecursos
Manequim Invisível em Lote
Envie uma arara inteira de fotos de peças em uma única chamada e monitore via polling um único ID de lote; cada imagem é cobrada e rastreada individualmente.
LerAPI
Photta API
A API do Photta é uma API REST baseada em credits: envie uma foto de produto via POST para o endpoint de uma funcionalidade, faça polling no seu endpoint de status a cada poucos segundos, baixe a imagem finalizada. Oito funcionalidades, uma chave, um saldo de credits.
Ler
Todos os números nesta página vêm de a documentação da API da Photta · verificado
Você está a cinco minutos da sua primeira imagem
- Chave Bearer
- assíncrono, polling
- 600 requisições/min