This guide walks you through the core Phota API workflow: authenticate, create a profile, wait for training, and run your first edit, generation, and enhancement.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.
Prerequisites: You need an API key from the Developer Portal. All requests
require the
X-API-Key header.Authenticate
Every request must include your API key in the You should receive a JSON response with your profiles (empty if you haven’t created any yet):
X-API-Key header. Verify your key works by listing your profiles:Create a profile
A profile represents a subject whose identity you want to preserve across edits and generations. Provide to
publicly accessible image URLs of the subject (person, dog, or cat):The response includes the new profile ID:
Training starts immediately and runs asynchronously. The profile is not ready for use until training completes. See
the Profiles guide for tips on choosing good training photos.
Poll for training status
Check the profile status until it reaches Possible status values:
READY:| Status | Meaning |
|---|---|
IN_PROGRESS | Training is still running. Poll again in a few seconds. |
READY | Training completed. The profile is ready for edits. |
ERROR | Training failed. Check the message field for details. |
Edit an image
Once the profile is The response contains the output images as base64-encoded strings (default To get download URLs instead of base64 bytes, set
READY, you can reference it in an edit request. Provide input images as base64 strings or public
URLs, along with a text prompt. You can refer to a profile inline in the prompt with [[profile_id]] and/or list
candidate profiles in the profile_ids field — either mechanism is enough on its own:response_mode: "bytes"):response_mode: "urls":curl
Generate an image
You can also generate images from scratch — no input image needed. Reference profiles directly in the prompt using
The response format is the same as
[[profile_id]] syntax:/edit:The
/generate endpoint does not accept images or profile_ids. Reference profiles in the prompt with
[[profile_id]] syntax instead. If you need to transform an existing photo, use /edit.Enhance an image
Enhancement improves a photo automatically — no prompt needed:
/enhance does not accept base_model. Enhancement is pinned to Nano Banana 2 at 2K — see
Pricing.Next steps
Authentication
Learn about API key management and best practices.
Use cases
See detailed examples of each capability with visual previews.
Profiles guide
Deep-dive into profiles, identity preservation, and prompt syntax.
Pricing
Per-image and per-profile rates.
