Skip to main content
POST
Generate only (no logging or billing)

Authorizations

Authorization
string
header
required

Supabase user JWT (or an internal service token). Send as Authorization: Bearer <token>.

Body

application/json
image_url
string<uri>
required

Publicly accessible http/https URL of the watermarked image. The API fetches it server-side, so it must not sit behind authentication or a firewall.

Example:

"https://example.com/watermarked.jpg"

model_id
string
default:dewatermark/watermark-remover-pro

Model to run. Accepts either a full model ID or one of the friendly tier aliases lite, pro, advance. Defaults to dewatermark/watermark-remover-pro (the lite tier). Cost per run: lite 4 credits, pro 4 credits, advance 10 credits. Call /info for the authoritative figures rather than hard-coding these — both the model list and the pricing can change.

Example:

"pro"

prompt
string

Optional guidance. Ignored by models whose requires_prompt is false in the info response.

webhook_url
string<uri>

Behaves differently here than on POST /api/v2/apps/watermark-remover. This URL is registered directly with the upstream model provider as its own callback, so what your server receives is the provider's raw, provider-specific body (Replicate / Astria / Fal) with provider-hosted output URLs — not the GoStudio result payload, and not GoStudio CDN URLs. It is also ignored entirely by synchronous models, including the default dewatermark/watermark-remover-pro (lite), which return their output in the 200 response and never call back at all. Use POST /api/v2/apps/watermark-remover if you want the documented result payload delivered to your endpoint.

Example:

"https://your-app.com/webhooks/gostudio"

Response

Generation completed synchronously.

status
integer
Example:

200

data
object