curl --request POST \
--url https://www.gostudio.ai/api/v2/photo/recreate \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"input_image_url": "https://example.com/photo.jpg",
"reference_image_url": "https://example.com/reference.jpg"
}
'{
"status": 200,
"data": {
"kind": "generation",
"job_id": "enc_abc123",
"credits_deducted": 10,
"credit_balance": 490,
"created_at": "2023-11-07T05:31:56Z",
"output_urls": [
"<string>"
]
}
}{
"status": 400,
"error": {
"type": "validation_error",
"code": "invalid_input",
"dev": 40001,
"message": "Some information is invalid."
}
}{
"status": 401,
"error": {
"type": "authentication_error",
"code": "unauthorized",
"dev": 40100,
"message": "Missing or invalid Authorization Bearer token."
}
}{
"status": 402,
"error": {
"type": "billing_error",
"code": "insufficient_credits",
"dev": 40200,
"message": "You don't have enough credits."
}
}{
"status": 403,
"error": {
"type": "permission_error",
"code": "forbidden",
"dev": 40300,
"message": "You don't have permission for this action."
}
}{
"status": 404,
"error": {
"type": "trained_profile_not_found",
"code": 40403,
"message": "Trained profile not found."
}
}{
"status": 409,
"error": {
"type": "trained_profile_not_ready",
"code": 40901,
"message": "Trained profile is not ready."
}
}{
"status": 429,
"error": {
"type": "rate_limit_error",
"code": "rate_limited",
"dev": 42900,
"message": "You're doing that too often. Please wait a moment."
}
}{
"status": 500,
"error": {
"type": "system_error",
"code": "internal_error",
"dev": 50000,
"message": "Something went wrong on our end."
}
}Recreate a photo using a reference image
Recreates a photo by combining an input image with a reference style or scene image. Optionally locks identity to one or more trained profiles.
Both input_image_url and reference_image_url are required. The call blocks until generation completes. Credits are deducted before generation begins and refunded if the job fails.
If profile_ids are provided and all are invalid, the request returns trained_profile_not_found.
curl --request POST \
--url https://www.gostudio.ai/api/v2/photo/recreate \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"input_image_url": "https://example.com/photo.jpg",
"reference_image_url": "https://example.com/reference.jpg"
}
'{
"status": 200,
"data": {
"kind": "generation",
"job_id": "enc_abc123",
"credits_deducted": 10,
"credit_balance": 490,
"created_at": "2023-11-07T05:31:56Z",
"output_urls": [
"<string>"
]
}
}{
"status": 400,
"error": {
"type": "validation_error",
"code": "invalid_input",
"dev": 40001,
"message": "Some information is invalid."
}
}{
"status": 401,
"error": {
"type": "authentication_error",
"code": "unauthorized",
"dev": 40100,
"message": "Missing or invalid Authorization Bearer token."
}
}{
"status": 402,
"error": {
"type": "billing_error",
"code": "insufficient_credits",
"dev": 40200,
"message": "You don't have enough credits."
}
}{
"status": 403,
"error": {
"type": "permission_error",
"code": "forbidden",
"dev": 40300,
"message": "You don't have permission for this action."
}
}{
"status": 404,
"error": {
"type": "trained_profile_not_found",
"code": 40403,
"message": "Trained profile not found."
}
}{
"status": 409,
"error": {
"type": "trained_profile_not_ready",
"code": 40901,
"message": "Trained profile is not ready."
}
}{
"status": 429,
"error": {
"type": "rate_limit_error",
"code": "rate_limited",
"dev": 42900,
"message": "You're doing that too often. Please wait a moment."
}
}{
"status": 500,
"error": {
"type": "system_error",
"code": "internal_error",
"dev": 50000,
"message": "Something went wrong on our end."
}
}Authorizations
Supabase user JWT (or an internal service token). Send as Authorization: Bearer <token>.
Body
HTTPS URL of the image to recreate.
"https://example.com/photo.jpg"
HTTPS URL of the reference style or scene image.
"https://example.com/reference.jpg"
Additional instructions for the recreation.
"Make it look more professional"
IDs of trained profiles for identity lock.
Number of images to generate.
1 <= x <= 4Output image format.
png, jpg 
