Skip to main content
POST
Edits an existing property showcase image through the image-edit flow. You provide the URL of the image to edit plus at least one editing directive (a prompt and/or style overrides). Editing runs asynchronously — the request returns a job ID immediately and the edited image is delivered to your webhook_url. At least one of prompt, dominant_color, font, or language must be supplied — a request with no changes is rejected with a VALIDATION_ERROR.
Set a webhook_url. Showcase jobs are not pollable: Get Task covers video tasks only and returns 404 TASK_NOT_FOUND for a showcase job_id. The webhook is the only way to receive output_image_url.

Request Body

string
required
URL of the property showcase image to edit. This must be the result URL (output_image_url) of a property showcase you previously generated — you cannot edit arbitrary images. A URL that doesn’t belong to one of your showcases returns FORBIDDEN.
Omitting image_url returns the message Either source_result_id or image_url is required. source_result_id is an internal identifier used by the VibePeak dashboard and is not available to API clients — always send image_url.
Image URLs cannot point to private/internal networks (SSRF protection). A blocked URL returns SSRF_BLOCKED.
string
Natural-language editing instruction, e.g. "replace the For Sale label with Sold". Maximum 250 characters.
string
Dominant color to apply to the showcase, e.g. "#1A4D2E" or "navy".
string
Font to apply to the showcase text, e.g. "Montserrat".
string
Language used to render the showcase copy. One of en, es, de, fr, it, pt. Forwarded to the generation service so the rendered text matches the requested locale.
You must send at least one of prompt, dominant_color, font, or language. An edit request with none of these is rejected with a VALIDATION_ERROR.
string
URL to receive a webhook notification when the job completes. Must be a valid HTTPS URL, at most 2048 characters. May be null. See Webhooks for details.
The webhook is the only way to receive the edited image. Edit jobs are not exposed through Get Task. Without a webhook_url you cannot retrieve output_image_url.
Webhook URLs must use HTTPS and cannot point to private/internal networks (SSRF protection). A non-HTTPS or private URL is rejected with VALIDATION_ERROR and the message Webhook URL must be HTTPS and cannot point to private networks.
webhook_url on its own does not count as an editing directive — you still need at least one of prompt, dominant_color, font or language.

Response

string
required
Unique identifier for the edit job. Use this to check status or correlate the webhook.
string
required
Initial job status. Always pending for new jobs.
string
required
Human-readable confirmation that the request was accepted for async processing.
string
required
Unique identifier for this request, useful for support and debugging.

Webhook Payload

If you provide a webhook_url, VibePeak sends a POST request when the job finishes, carrying X-VibePeak-Event, X-VibePeak-Signature and X-VibePeak-Timestamp headers. Delivery is attempted up to 3 times with exponential backoff; a 4xx response from your endpoint stops the retries. See Webhooks for signature verification. Edit jobs use the same payload shape as generation jobs, with kind set to edit. An edit has no template, so template_id is an empty string.

Completed

Failed

On failure error is always the fixed string above — the underlying provider message is never exposed. Use request_id from the edit call when contacting support.

Error Codes

Error shape. VALIDATION_ERROR responses carry a details object of the form { "field": "<dotted.path>", "issues": [{ "path": "<dotted.path>", "message": "..." }] }field is the first failing path and issues lists every failure. All other error codes return no details.
See Error Handling for more details.

Credits

This endpoint charges 2 credits per request for accounts without an annual plan. Accounts on an annual plan are not charged (0 credits). Credits are charged upon successful job creation and are not refunded if the edit fails.
Test mode is not supported on this endpoint. Unlike the video endpoints, a vpk_test_ key is not sandboxed here — the request runs the real generation pipeline and charges credits. Use it only when you intend to generate a real image. See Test Mode.

Next Steps

After creating a job:
  1. Wait for the webhook: your webhook_url receives a showcase.completed or showcase.failed notification. Verify the X-VibePeak-Signature header as described in Webhooks.
  2. Download the image: read output_image_url from the showcase.completed payload.
An edited image is itself a showcase you own, so its output_image_url can be passed straight back into this endpoint to chain another edit.
There is no polling endpoint for showcase jobs. Get Task serves video tasks only and returns 404 TASK_NOT_FOUND for a showcase job_id. If you do not set a webhook_url, the edited image cannot be retrieved.