Skip to main content
The Recreate Photo API transforms an input photo by applying the style or scene from a reference image. You provide two image URLs — the source to recreate and the reference to draw from — and the API returns one or more recreated images. The call is synchronous — one request, one finished result. There is no job queue to manage.
The API holds the connection until the job completes. Depending on complexity, this can take up to four minutes. Most HTTP clients default to a 30-second timeout — raise yours to at least 300 seconds before calling this endpoint.

Before you start

  • A valid Bearer token. See Authentication.
  • Enough credits. The request is rejected up front with 402 insufficient_credits if your balance is too low. Failed generations are refunded automatically.
  • Two publicly reachable image URLs — one for the input photo and one for the reference. The API fetches them server-side, so neither can be behind a login, a signed-URL expiry, or a firewall.

Step 1 — Submit the recreation

Request fields

Step 2 — Read the response

Credits are reserved when the job is accepted and refunded automatically if the generation fails.

Step 3 — Lock to a trained profile (optional)

Pass one or more profile IDs in profile_ids to preserve a person’s identity in the recreated image.
Use GET /api/v2/photo/profiles to retrieve the IDs of your trained profiles. Profiles must have status: ready. Any invalid or inactive profiles are silently filtered — if all provided profiles are invalid, the request returns 404 trained_profile_not_found.

Common issues

See Errors for the full code reference.