Hotel Lobby AI API
Turn two portraits into a hotel lobby video. The first portrait supplies the person on the left; the second supplies the person on the right.
Developer API pricing
Provider: SeeAPI
USD estimate: $0.0037 / credit · Estimated equivalent, not an additional charge.
2K: 395 credits/gen (≈ $1.48/gen)
768P: 285 credits/gen (≈ $1.07/gen)
API examples
We submitted the two portraits shown below to the Hotel Lobby AI API: the first for the performer on the left, the second for the performer on the right. The video shown here is the output from that same API call.
Example 1
Input
reference_images

Output 1
Result 1
These examples are saved API results. Actual generated results may vary.
Request
/v1/templates/hotel-lobby-ai/generationsHeader Params
Identifies this generation request so a retry does not create a second video.
- Use a new key for each new video.
- When retrying the same request, reuse the original key and request body.
- Example:
template-order-001
Body Params
application/jsonIdentifies the provider that processes the generation request.
- Use seeapi for this template.
seeapi- Default:
seeapi- Example:
seeapi
objectrequiredContains the performer portraits and output settings for the hotel lobby video.
Contains the performer portraits and output settings for the hotel lobby video.
Portraits of the left and right performers in the hotel lobby video.
- Send an array of exactly two portrait URLs: the left performer first, the right performer second.
- Use a directly accessible HTTPS URL for each image, with no embedded credentials or URL fragment.
- Use JPG, JPEG, PNG, WebP, HEIC, or HEIF. Each image must be 30 MB or smaller.
- Width and height must each be between 256 and 5760 px, inclusive.
- Each image’s width divided by its height must be between 0.4 and 2.5, inclusive.
- Replace both placeholder URLs in the request example with your own portrait URLs.
- Example:
["https://customer.example.com/input-1.jpg","https://customer.example.com/input-2.jpg"]
Sets the width-to-height ratio of the output video.
- For a vertical video, use 9:16.
adaptive21:916:94:31:13:49:16- Default:
adaptive- Example:
adaptive
Sets the resolution of the output video.
768P2K- Default:
768P- Example:
768P
URL where SeeAPI sends a notification when video generation succeeds or fails.
- Use an absolute HTTPS URL.
- Omit this field if you poll for task status instead.
Responses
202Accepted for processing. Save generation.id and use it to check progress; the video is not ready yet.
objectrequired
Pass this ID as task_id to GET /v1/generations/{task_id}.
- Example:
task_example
Public template ID.
- Example:
hotel-lobby-ai
seeapi- Example:
seeapi
Normalized customer input only.
- Example:
{"reference_images":["https://customer.example.com/input-1.jpg","https://customer.example.com/input-2.jpg"],"aspect_ratio":"adaptive","resolution":"768P"}
processingEstimated credits for this request. For an estimate before creating a video, send the same input to POST /v1/templates/hotel-lobby-ai/quote.
- Example:
10
- Example:
0
- Example:
0
- Example:
2026-01-01T00:00:00.000Z
- Example:
2026-01-01T00:00:00.000Z
false- Example:
false
200The original request was replayed. This response returns the existing task and its current status; it does not create a second video.
objectrequired
Pass this ID as task_id to GET /v1/generations/{task_id}.
Public template ID.
- Example:
hotel-lobby-ai
seeapi- Example:
seeapi
Normalized customer input only.
processingsucceededfailedcanceledrefundedexpiredEstimated credits for this request. For an estimate before creating a video, send the same input to POST /v1/templates/hotel-lobby-ai/quote.
objectoptional
array <object>required
imagevideotrue- Example:
true
Invalid request or public template input
Invalid API key
Insufficient credits
API key scope or access denied
Template or task not found or unavailable
Template configuration changed, idempotency conflict, or request still being created
Request body too large
Rate limit exceeded
Service temporarily unavailable
Query Task Status
After submitting a task, use the unified query endpoint to check progress and retrieve results:
Poll GET /v1/generations/{task_id} using generation.id from the creation response. On success, read the video URL from generation.result.assets. On failure, check the public error_code and error_message.
Callbacks
Manage the secret used to verify generation webhook signatures. Callback URLs are supplied when you create each generation.
Webhook flow
Callback URL per generation.