TryItOn
API Reference

Virtual Try-On — Tattoo

Preview how a tattoo design would look as real ink on a person's skin.

Ink a design onto skin. Submit a close-up photo of bare skin (body_image) and the tattoo design on its own (design_image); the API returns a job id you poll on the Job Status endpoint until the result is ready.

POST https://tryiton.now/api/v1/tryon/tattoo

All image fields accept either a public URL or a base64 data URL (data:image/png;base64,...).

Request

Use an official SDK (recommended) or call the endpoint directly.

import { TryItOn } from "tryiton";

const client = new TryItOn({ apiKey: process.env.TRYITON_API_KEY });

const jobId = await client.tryOnTattoo({
  bodyImage: "https://example.com/forearm.jpg",
  designImage: "https://example.com/design.png",
  placement: "on the right forearm, small",
});

const [resultUrl] = await client.waitForResult(jobId);
import os
from tryiton import TryItOn

client = TryItOn(api_key=os.environ["TRYITON_API_KEY"])

job_id = client.try_on_tattoo(
    body_image="https://example.com/forearm.jpg",
    design_image="https://example.com/design.png",
    placement="on the right forearm, small",
)

urls = client.wait_for_result(job_id)
curl -X POST https://tryiton.now/api/v1/tryon/tattoo \
     -H "Content-Type: application/json" \
     -H "Authorization: Bearer YOUR_API_KEY" \
     -d '{
           "body_image": "https://example.com/forearm.jpg",
           "design_image": "https://example.com/design.png",
           "placement": "on the right forearm, small"
         }'

Body Parameters

ParameterTypeDefaultDescription
body_imagestringRequired. URL or base64 data URL — a close-up of bare skin (arm, leg, shoulder, back).
design_imagestringRequired. URL or base64 data URL of the tattoo design on its own.
placementstring(auto)Optional free-text placement/size, e.g. "on the right forearm, small". Max 140 characters. Omitted: placed naturally on the most visible skin, palm-sized.

For the most faithful result, use a design on a plain background and a body photo where the target skin area is clearly visible and evenly lit.

Response

A successful submission returns a jobId. Poll /api/v1/status/{jobId} until status is completed.

201 Created
{
  "ok": true,
  "jobId": "64b7f1a9d9a3b8e5c7f9a123"
}

Credits: 1 credit per try-on. Failed jobs are never charged.

On this page