VidMage

VidMage is an AI video and image creation platform for creators. Turn your ideas and images into videos and fresh visuals.

Open the creator tools
Explore APIs
AI Video APIsAI Image APIsAI Audio APIsAI 3D APIsAI Face Swap APIsAI Effects APIs
Build with VidMage
QuickstartAPI keysVidMage MCPError reference
Your account
Developer consoleAbout VidMagePlans and creditsAPI billingContact support
© 2026 VidMage. All rights reserved.
Privacy PolicyTerms of ServiceReport Abuse
Skip to content
VidMage/Developers
Overview
APIs
All APIsAI Video APIsAI Image APIsAI Audio APIsAI 3D APIsAI Face Swap APIsAI Effects APIs
DocumentationVidMage MCPOpen console
Developers/AI Video Watermark Remover API for Two Inputs

AI Video Watermark Remover API for Two Inputs

Integrate video watermark removal with separate endpoints for direct video URLs and Sora page links. Submit the matching source, track its job, and retrieve the processed video for your workflow.

Get API keyView API docs
Abstract illustration for AI Video Watermark Remover API for Two Inputs
PlaygroundAPIPricingGuideFAQs

AI Video Watermark Remover API Playground

Use your existing API key and subscription. Submitting a generation uses credits; uploading and preparing a request does not start a generation.

API access is available to subscribers only. Your subscription credits are shared across the website and the API.

View plans

Parameter

1 Parameter

Watermarked-video fileUrl returned by upload_files.

Request code

#!/usr/bin/env bash
set -euo pipefail
# Set this once per intended task; preserve it and the body for transport retries.
: "${VIDMAGE_IDEMPOTENCY_KEY:?Set a unique key for this task}"

SUBMIT_RESPONSE="$(curl --fail-with-body --silent --show-error -X POST "https://vidmage.ai/api/v1/watermark-removal/submit" \
  -H "Authorization: Bearer ${VIDMAGE_API_KEY}" \
  -H "Idempotency-Key: ${VIDMAGE_IDEMPOTENCY_KEY}" \
  -H "Content-Type: application/json" \
  --data-raw '{
  "videoUrl": "https://vidmage.ai/assets/models/hailuo-ai-video-generator/skincare-ad.mp4"
}')"
TASK_ID="$(printf '%s' "$SUBMIT_RESPONSE" | jq -er '.["requestId"]')"

while true; do
  QUERY_RESPONSE="$(curl --fail-with-body --silent --show-error -X POST "https://vidmage.ai/api/v1/watermark-removal/query" \
    -H "Authorization: Bearer ${VIDMAGE_API_KEY}" \
    -H "Content-Type: application/json" \
    --data-raw "{\"requestId\":\"${TASK_ID}\"}")"
  STATUS="$(printf '%s' "$QUERY_RESPONSE" | jq -r '(.status // .data.status // "") | ascii_downcase')"
  case "$STATUS" in
    success|succeeded|completed)
      RESULT="$(printf '%s' "$QUERY_RESPONSE" | jq -r '(.result // .["videoUrl"] // .data["videoUrl"] // empty)')"
      if [ -z "$RESULT" ]; then
        printf '%s' "Result missing; preserve task $TASK_ID and query the same task again. Do not resubmit." >&2
        exit 2
      fi
      printf '%s\n' "$RESULT"
      break
      ;;
    needs_input)
      printf '%s' "Face selection required; preserve task $TASK_ID" >&2
      exit 2
      ;;
    failed|error)
      printf '%s' "$QUERY_RESPONSE" | jq -r '(.message // .error // .data.error // "Task failed")' >&2
      exit 1
      ;;
  esac
  sleep 5
done

Response data

Submit the task to see the API response here.
PlaygroundCapabilities

API documentation

Submit a request, track the task, and retrieve your result.

EndpointVideo Watermark Remover ↓
Required inputs
videoUrl
Output
Video·videoUrl
EndpointSora Link Watermark Remover ↓
Required inputs
soraPageUrl
Output
Video·videoUrl
Request setup & limitsHeaders, input options and media limits

Request headers

Authorization
Bearer YOUR_API_KEY

Keep your API key on your server.

Content-Type
application/json
Idempotency-Key
YOUR_UNIQUE_KEY

Use a new key per task. Reuse it only when retrying the same submission.

Input options & limits

Request controls follow each task's parameter rules; they do not guarantee output properties.

Video Watermark Remover

RequiredvideoUrl

Output dimensions and format are not specified in this reference.

Sora Link Watermark Remover

RequiredsoraPageUrl

Output dimensions and format are not specified in this reference.

Input retention and output-link lifetime depend on the API contract. Confirm API-specific retention terms before making promises to your users. Upload guide ↗

Video Watermark Remover

POST /api/v1/watermark-removal/submit

Full API documentation ↗

videoUrl is required.

Required inputs

videoUrlstring
Watermarked-video fileUrl returned by upload_files.

Edit the sample inputs for your own task before submitting.

Video Watermark Remover request
# Set VIDMAGE_IDEMPOTENCY_KEY to a unique value for this task; preserve it for transport retries.
curl -X POST "https://vidmage.ai/api/v1/watermark-removal/submit" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Idempotency-Key: ${VIDMAGE_IDEMPOTENCY_KEY}" \
  -H "Content-Type: application/json" \
  -d '{"videoUrl":"https://vidmage.ai/assets/models/hailuo-ai-video-generator/skincare-ad.mp4"}'
# -> { "success": true, "requestId": "...", "creditsConsumed": ... }
Parameters and input rules1 field
FieldTypeRequiredDefaultMeaning and limits
videoUrlstringYesNot specifiedWatermarked-video fileUrl returned by upload_files. No additional field constraint listed.

Retrieve the result

Save requestId from the accepted submission and send it to this endpoint:

POST /api/v1/watermark-removal/query

Use the same Bearer API key. On completion, read the videoUrl result field.

Task states and recovery ↗
Video Watermark Remover query
curl -X POST "https://vidmage.ai/api/v1/watermark-removal/query" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "requestId": "TASK_ID_FROM_SUBMIT" }'
# -> { "success": true, "data": { "status": "...", "videoUrl": "https://..." } }

Sora Link Watermark Remover

POST /api/v1/sora-link-watermark-removal/submit

Full API documentation ↗

soraPageUrl is required.

Required inputs

soraPageUrlstring
HTTPS Sora page URL on sora.openai.com or sora.chatgpt.com, with path /s_<video-id> or /p/s_<video-id>.

Edit the sample inputs for your own task before submitting.

Sora Link Watermark Remover request
# Set VIDMAGE_IDEMPOTENCY_KEY to a unique value for this task; preserve it for transport retries.
curl -X POST "https://vidmage.ai/api/v1/sora-link-watermark-removal/submit" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Idempotency-Key: ${VIDMAGE_IDEMPOTENCY_KEY}" \
  -H "Content-Type: application/json" \
  -d '{"soraPageUrl":"https://sora.openai.com/p/s_example-video-id"}'
# -> { "success": true, "taskId": "...", "creditsRequired": ..., "creditsConsumed": 0, "usageDeferred": true }
Parameters and input rules1 field
FieldTypeRequiredDefaultMeaning and limits
soraPageUrlstringYesNot specifiedHTTPS Sora page URL on sora.openai.com or sora.chatgpt.com, with path /s_<video-id> or /p/s_<video-id>. No additional field constraint listed.

Retrieve the result

Save taskId from the accepted submission and send it to this endpoint:

POST /api/v1/sora-link-watermark-removal/query

Use the same Bearer API key. On completion, read the videoUrl result field.

Task states and recovery ↗
Sora Link Watermark Remover query
curl -X POST "https://vidmage.ai/api/v1/sora-link-watermark-removal/query" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "taskId": "TASK_ID_FROM_SUBMIT" }'
# -> { "success": true, "data": { "status": "...", "videoUrl": "https://..." } }

Pricing

See what one image, video, or generation costs in credits. Your API and website activity share the same credit balance.

API credit rates and calculated example request costs
API / workflowExample requestPrice (credits)
Video Watermark Removervideo API5.875-second video: 5 credits
How this is calculated
  • Video duration: 1 credit / second

The example uses the duration shown above. The server measures uploaded media for billing; this duration is only supplied to the estimate.

Duration × rate is rounded down to whole credits, with at least one credit charged.

Estimate your own request ↗
1 credit / secondSee calculation details
Sora Link Watermark Removervideo API1 generation request: 10 credits
How this is calculated
  • Per request: 10 credits / request

A fixed credit charge applies to this API request.

Estimate your own request ↗
10 credits / requestSee calculation details
Billed in credits. Shared with the website.Active subscription required. Unit rates and examples follow current API credit rules.Billing details⌄

Examples show the charge for the inputs listed above. Resolution, duration, audio, output count and reference media can change the total. Minimum charges and rounding follow the selected API.

Use the Playground to estimate your request before submitting it. Estimates do not start a generation. Subscription and credit-pack prices are listed on the plans page.

Your task’s recorded usage is the source of truth for the final charge.

View plans ↗Billing guide ↗

About AI Video Watermark Remover API

VidMage's AI Video Watermark Remover API is a video editing interface for watermark cleanup. It provides separate endpoints for direct video URLs and Sora sharing links, with each endpoint handling its corresponding source type. Both workflows return a processed video for comparison with the original. To clean up a video you have permission to edit, open VidMage's Video Watermark Remover.

AI Video Watermark Remover API capabilities

Direct video input
Send a video file URL to the direct cleanup route and retrieve the processed video after completion.
Sora page input
Use the separate Sora-link route when the source is a sharing page instead of a video file URL.
Video review output
Display the returned video beside its source so editors can check the affected area throughout the sequence.

What you can build

Refreshing owned campaign clips

An old campaign watermark can get in the way when a team reuses its own footage. Process an authorized source clip and examine the affected area throughout the sequence before applying the current branding in the new edit.

Importing authorized Sora clips

Some creators start with a Sora sharing page rather than a direct video file. The dedicated link route handles that source type, returning a processed clip for their storyboard or editing project when they are authorized to use it.

Agency draft cleanup

A draft carrying the agency's own review watermark may be the only available export. Cleanup gives the team a version to assess, with frame-by-frame comparison helping determine whether it is suitable for further use in the client edit.

How to use AI Video Watermark Remover API

  1. Get an API key

    Create a key in the Developer Console and store it on your server. Use it in the Authorization: Bearer header.

  2. Prepare and submit your inputs

    Set up your inputs in the Playground, then copy the matching API request. Send it from your server with a unique Idempotency-Key.

  3. Track the task

    Save the returned requestId or taskId and query the same operation until it completes. Keep that identifier if your app stops waiting.

  4. Retrieve the result

    Read videoUrl from the completed task. Preview the result in your app and save a copy to your own storage for later use.

Input tips
Route by the source type
Use videoUrl for the direct route and soraPageUrl for the Sora-link route. A sharing page and a media file need different request fields.
Review more than one frame
Check the affected area during movement and scene changes. Neither route accepts a selection mask, watermark coordinates, or a quality setting in its published request.

Input requirementsUpload local files

Task fields and results

Keep the task identifier with its original request and Idempotency-Key. Query the same capability until it completes, then read the documented result field.

Task identifier
requestId
Query route
POST /api/v1/watermark-removal/query
Completed result
videoUrl
Task states and response structure ↗
Errors, retries and limits

Retry transport failures with the same idempotency key only when the original submission may not have reached the server. For a confirmed task, keep querying the original task instead of submitting a duplicate.

Read error recovery guidance ↗

FAQs

Is this the same workflow as video background removal?

Use AI Video Background Remover when you need to edit the scene behind a subject. The Sora cleanup route is not a general video-sharing URL adapter.

Are failed or timed-out requests charged?

A client timeout is not a confirmed task failure. Confirmed failures are automatically refunded only when the refund outcome is certain. Unknown charges or refunds remain pending reconciliation.

Failure and refund handling ↗
How long should my app wait for a result?

The checked contract does not establish a fixed completion time. Choose a local wait budget for your app; it is not an API completion deadline.

Polling and wait budgets ↗
What are the rate and concurrency limits?

Request-rate limits control how often you can call the API; concurrency limits control simultaneous work. The documentation ties both to the stable API key but does not publish numeric limits for this operation. Confirm account limits before planning parallel jobs.

Rate-limit recovery ↗
Can I receive results through a webhook?

The checked request contract documents status queries and does not list a webhook or callback field for these routes. Check the current authenticated OpenAPI contract before making a callback part of your integration.

Query task results ↗Check the current contract ↗

Explore more APIs on VidMage

  • AI Video Background Remover API for Clips↗
  • AI Video Upscaler API for 2x and 4x Requests↗
  • AI Video Extender API for Clip Continuations↗
  • AI Subtitle Generator API for Video Captions↗
  • AI Video to Video API for Style Transformations↗
  • Runway API↗
  • HappyHorse API↗
  • Hailuo API↗