Skip to main content
POST
/
v1
/
phota
/
generate
Generate
curl --request POST \
  --url https://api.photalabs.com/v1/phota/generate \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: <api-key>' \
  --data '
{
  "prompt": "",
  "num_output_images": 1,
  "aspect_ratio": "auto",
  "resolution": "1K",
  "quality": "auto",
  "base_model": "nb2",
  "output_format": "png",
  "response_mode": "bytes"
}
'
{
  "known_subjects": {
    "counts": {}
  },
  "images": [
    "<string>"
  ],
  "download_urls": [
    "<string>"
  ]
}

Documentation Index

Fetch the complete documentation index at: https://docs.photalabs.com/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

X-API-Key
string
header
required

Body

application/json

Request body for the generate endpoint.

Provide a text prompt describing the image you want to create. Reference profiles inline using [[profile_id]] syntax to specify which people should appear in the generated image.

prompt
string
default:""

Text prompt describing the desired edit.

num_output_images
integer
default:1

Number of output images to generate (1-4).

Required range: 1 <= x <= 4
aspect_ratio
enum<string>
default:auto

Output aspect ratio (auto, 1:1, 3:4, 4:3, 9:16, 16:9).

Available options:
auto,
1:1,
3:4,
4:3,
9:16,
16:9
resolution
enum<string>
default:1K

Output resolution (1K, 2K, 4K). Per-model support varies; see /models.

Available options:
1K,
2K,
4K
quality
enum<string> | null

Quality tier (auto, low, medium, high). Only supported by gpt-image-2; passing this field for other models returns 400. Omit (or pass 'auto') to let the provider pick — for gpt-image-2 this resolves to OpenAI's auto tier. Lower tiers reduce output tokens and therefore settled cost.

Available options:
auto,
low,
medium,
high
base_model
enum<string>
default:nb2

Base model identifier. Omit to use the default base model. Unknown ids are rejected with 400; base models that do not support this endpoint's capability are also rejected with 400.

Available options:
flux-2,
gpt-image-2,
nb2,
qwen-image-2,
reve
output_format
enum<string>
default:png

Output image format (png, jpg). Default: png (will change to jpg on 2026-05-08).

Available options:
png,
jpg
response_mode
enum<string>
default:bytes

Response delivery mode. 'bytes': return base64-encoded image data (default). 'urls': return signed download URLs (24-hour expiry) instead of image bytes.

Available options:
bytes,
urls

Response

Successful Response

Response returned by the edit, generate, and enhance endpoints.

known_subjects
KnownGeneratedSubjectCounts · object
required

Dictionary mapping a known subject's profile_id to the number of times they were generated. If multiple variations are generated, this will be the aggregated count across all variations.

images
string[]

Output image(s) as raw base64-encoded strings. Format matches the requested output_format. Populated when response_mode='bytes', empty otherwise.

download_urls
string[]

Signed download URLs for each output image (24-hour expiry). Populated when response_mode='urls', empty otherwise.