550W · Developer API

Developer API

Image & Video Processing API

What you can build

Quick integration

1

Add credits

Video subtitle removal is charged by processing duration and resolution. Images cost 10 credits per successful task; failed processing is not charged.

Usage & billing
2

Generate API Key

Use userNo and API Key for every request. Upload is optional: use /open/uploadVideo or provide a public videoUrl.

Generate API Key
3

Integration examples

Choose a workflow for your product. Each step links directly to the API reference below.

Integration examples
Base URLhttps://www.550wai.cnPOST · multipart/form-data

Quick start

Use userNo and API Key for every request. Upload is optional: use /open/uploadVideo or provide a public videoUrl.

curl -X POST https://www.550wai.cn/open/submitTask \\
  -H 'Content-Type: application/x-www-form-urlencoded' \\
  --data-urlencode 'userNo=YOUR_USER_NO' --data-urlencode 'apiKey=YOUR_API_KEY' \\
  --data-urlencode 'videoUrl=https://example.com/video.mp4' \\
  --data-urlencode 'width=1920' --data-urlencode 'height=1080' --data-urlencode 'duration=30' \\
  --data-urlencode 'x1=0' --data-urlencode 'y1=0' --data-urlencode 'x2=1920' --data-urlencode 'y2=200'

Conventions

Required

Use userNo and API Key for every request. Upload is optional: use /open/uploadVideo or provide a public videoUrl.

Response

Responses contain code and message. Tasks progress through waiting, processing, and success or failed. On success, use resultUrl; on failure, inspect failCode. Result files expire. For overseas accounts (clientType=overseas), message is returned in English. Codes, field names, status, and failCode are language-independent; use them for program logic.

Video subtitle / watermark removal

uploadVideo → submitTask → taskDetail

Task state machine

Responses contain code and message. Tasks progress through waiting, processing, and success or failed. On success, use resultUrl; on failure, inspect failCode. Result files expire.

waiting→processing→successfailed

Handle errors using code, message, status, failCode and refundStatus.

Asynchronous and reliable requests

Task status checks and Webhooks

Configure a publicly reachable HTTPS callbackUrl to receive the final task status. Alternatively, query taskDetail with taskId and gradually increase the time between checks.

Idempotent retries

Send a unique Idempotency-Key for each logical task submission. Reuse the same key when retrying that submission to receive the original taskId without creating another task or charging twice.

Asynchronous image processing

Set sync to false, save task.taskId, and call imageWatermarkTaskDetail until the status is success or failed. On success, read task.resultUrl.

resultUrl · 24 h

Integration examples

Choose a workflow for your product. Each step links directly to the API reference below.

Video subtitle / watermark removal

  1. videoUrl · uploadVideo · Upload a local video, or provide your own public videoUrl.
  2. submitTask · Submit a video subtitle or watermark removal task, then poll or use a callback.
  3. taskId · taskDetail · callbackUrl
  4. When the status is success, download resultUrl. For failed tasks, read failCode and failReason.

Task and account utilities

  1. userNo · apiKey · Required on every request
  2. queryCredits · Check available account credits.
  3. taskList · List your video tasks with pagination. Deleted tasks are filtered from taskDetail and taskList; task status remains waiting, processing, success, or failed.

Available endpoints

POST/open/uploadVideo

Upload a local video, or provide your own public videoUrl.

POST/open/submitTask

Submit a video subtitle or watermark removal task, then poll or use a callback.

POST/open/taskDetail

Check a video task’s status, result, cost, and failure details.

POST/open/taskList

List your video tasks with pagination. Deleted tasks are filtered from taskDetail and taskList; task status remains waiting, processing, success, or failed.

POST/open/deleteTask

Mark a video task as deleted and return immediately. Its uploaded source, processed result, and retry media are then removed from VOD asynchronously in the background. Neither taskDetail nor taskList returns it after deletion. Credits already charged are not refunded.

POST/open/removeImageWatermark

Remove an image watermark synchronously or as an async task.

POST/open/imageWatermarkTaskDetail

Check an async image task’s status and result URL.

POST/open/queryCredits

Check available account credits.

POST

/open/uploadVideo

Upload a local video, or provide your own public videoUrl.

Request format: multipart/form-data

Request parameters

FieldTypeRequiredDescription
userNostringYes550W userNo
apiKeystringYesAPI Key
filefileYesMP4/MOV · ≤ 1080p · ≤ 30 min · File Size ≤ 1 GiB

Response fields

FieldTypeDescription
codenumberResult code; 200 means success
messagestringHuman-readable status message
videoUrlstringHosted video URL
coverUrlstringVideo cover URL
widthnumberVideo width in pixels
heightnumberVideo height in pixels
durationnumberVideo duration in seconds

Endpoint errors

codeMeaningDescription
-100Authentication or quota failureTypical causes: userNo · API Key · credits
-200Invalid parameterTypical causes: field · URL · size · duration · Idempotency-Key
-500Internal errorTypical causes: server · retry
POST

/open/submitTask

Submit a video subtitle or watermark removal task, then poll or use a callback.

Request format: application/x-www-form-urlencoded

Request parameters

FieldTypeRequiredDescription
userNostringYes550W userNo
apiKeystringYesAPI Key
videoUrlstringYesHTTP(S) URL · ≤ 2048 chars
widthnumberYespx · max edge ≤ 1920 · min edge ≤ 1080
heightnumberYespx · max edge ≤ 1920 · min edge ≤ 1080
durationnumberYes1–1800 s
x1numberYestop-left X · px · ≥ 0
y1numberYestop-left Y · px · ≥ 0
x2numberYesbottom-right X · px · > x1
y2numberYesbottom-right Y · px · > y1
modestringNonormal (default) · protect
fileNamestringNoUTF-8
coverUrlstringNoHTTP(S) URL
callbackUrlstringNoHTTPS webhook · final status
removeAudiobooleanNotrue · false (default)
Idempotency-Key / idempotencyKeystringRecommended≤ 128 chars

Response fields

FieldTypeDescription
codenumberResult code; 200 means success
messagestringHuman-readable status message
taskIdstringTask identifier; save it for status queries
statusstringwaiting / processing / success / failed

Endpoint errors

codeMeaningDescription
-100Authentication or quota failureTypical causes: userNo · API Key · credits
-200Invalid parameterTypical causes: field · URL · size · duration · Idempotency-Key
-300Request rejectedTypical causes: taskId · ownership · state
-401Temporary account suspensionTypical causes: First effective violation: 1 hour. Second: 24 hours. Hits during an active suspension do not count, extend, or escalate it.
-402Permanent account banTypical causes: The third effective violation permanently bans the account.
-600Unsupported video formatTypical causes: codec · bit depth · HDR · audio
POST

/open/taskDetail

Check a video task’s status, result, cost, and failure details.

Request format: form / query

Request parameters

FieldTypeRequiredDescription
userNostringYes550W userNo
apiKeystringYesAPI Key
taskIdstringYes1–64 chars
subUserIdstringNo≤ 128 chars · ownership scope

Response fields

FieldTypeDescription
taskIdstringTask identifier; save it for status queries
statusstringwaiting / processing / success / failed
widthnumberVideo width in pixels
heightnumberVideo height in pixels
durationnumberVideo duration in seconds
x1numberx1
y1numbery1
x2numberx2
y2numbery2
modestringmode
costnumberCredits charged for this task
resultUrlstringResult URL; valid for 24 hours after generation
failCodestringStable failure identifier
failReasonstringDiagnostic failure reason
refundStatusnumberCredit refund state after failure

Endpoint errors

codeMeaningDescription
-100Authentication or quota failureTypical causes: userNo · API Key · credits
-300Request rejectedTypical causes: taskId · ownership · state
-500Internal errorTypical causes: server · retry
POST

/open/taskList

List your video tasks with pagination. Deleted tasks are filtered from taskDetail and taskList; task status remains waiting, processing, success, or failed.

Request format: form / query

Request parameters

FieldTypeRequiredDescription
userNostringYes550W userNo
apiKeystringYesAPI Key
pagenumberNo≥ 0 · default 0
sizenumberNo1–100 · default 20
subUserIdstringNo≤ 128 chars · ownership scope

Response fields

FieldTypeDescription
totalnumberTotal non-deleted task count
pagenumberNormalized page number
sizenumberNormalized page size
listarrayNon-deleted tasks; status is waiting, processing, success, or failed

Endpoint errors

codeMeaningDescription
-100Authentication or quota failureTypical causes: userNo · API Key · credits
-200Invalid parameterTypical causes: field · URL · size · duration · Idempotency-Key
-500Internal errorTypical causes: server · retry
POST

/open/deleteTask

Mark a video task as deleted and return immediately. Its uploaded source, processed result, and retry media are then removed from VOD asynchronously in the background. Neither taskDetail nor taskList returns it after deletion. Credits already charged are not refunded.

Request format: form / query

Request parameters

FieldTypeRequiredDescription
userNostringYes550W userNo
apiKeystringYesAPI Key
taskIdstringYes1–64 chars
subUserIdstringNo≤ 128 chars · ownership scope

Response fields

FieldTypeDescription
codenumberResult code; 200 means success
messagestringHuman-readable status message

Endpoint errors

codeMeaningDescription
-100Authentication or quota failureTypical causes: userNo · API Key · credits
-200Invalid parameterTypical causes: field · URL · size · duration · Idempotency-Key
-300Request rejectedTypical causes: taskId · ownership · state
-500Internal errorTypical causes: server · retry
POST

/open/removeImageWatermark

Remove an image watermark synchronously or as an async task.

Request format: multipart/form-data

Request parameters

FieldTypeRequiredDescription
userNostringYes550W userNo
apiKeystringYesAPI Key
filefileYesJPG · PNG · BMP · WebP · AVIF · TIFF · SVG · ≤ 50 MiB
syncbooleanNotrue (default) · false
operationIdstringNostring

Response fields

FieldTypeDescription
codenumberResult code; 200 means success
messagestringHuman-readable status message
creditsAfternumberCredits remaining after processing
taskobjectSynchronous result or asynchronous task

Endpoint errors

codeMeaningDescription
-100Authentication or quota failureTypical causes: userNo · API Key · credits
-200Invalid parameterTypical causes: field · URL · size · duration · Idempotency-Key
-300Request rejectedTypical causes: taskId · ownership · state
-500Internal errorTypical causes: server · retry
POST

/open/imageWatermarkTaskDetail

Check an async image task’s status and result URL.

Request format: form / query

Request parameters

FieldTypeRequiredDescription
userNostringYes550W userNo
apiKeystringYesAPI Key
taskIdstringYes1–64 chars

Response fields

FieldTypeDescription
statusstringwaiting / processing / success / failed
resultUrlstringResult URL; valid for 24 hours after generation
failCodestringStable failure identifier
failReasonstringDiagnostic failure reason
costnumberCredits charged for this task
expiredTimestringResult URL expiration time

Endpoint errors

codeMeaningDescription
-100Authentication or quota failureTypical causes: userNo · API Key · credits
-300Request rejectedTypical causes: taskId · ownership · state
-500Internal errorTypical causes: server · retry
POST

/open/queryCredits

Check available account credits.

Request format: form / query

Request parameters

FieldTypeRequiredDescription
userNostringYes550W userNo
apiKeystringYesAPI Key

Response fields

FieldTypeDescription
codenumberResult code; 200 means success
messagestringHuman-readable status message
userNostringUser identifier
creditsnumberCurrently available credits

Endpoint errors

codeMeaningDescription
-100Authentication or quota failureTypical causes: userNo · API Key · credits
-500Internal errorTypical causes: server · retry

Common request fields

FieldRequiredDescription
userNoYes550W userNo
apiKeyYesAPI Key
Idempotency-KeyRecommended≤ 128 · retry-safe
callbackUrlNoHTTPS webhook · final status

Video task fields

FieldTypeDescription
videoUrlstringHTTP(S) URL · ≤ 2048 chars
widthnumberpx · max edge ≤ 1920 · min edge ≤ 1080
heightnumberpx · max edge ≤ 1920 · min edge ≤ 1080
durationnumber1–1800 s
x1numbertop-left X · px · ≥ 0
y1numbertop-left Y · px · ≥ 0
x2numberbottom-right X · px · > x1
y2numberbottom-right Y · px · > y1
modestringnormal (default) · protect
removeAudiobooleantrue · false (default)

Response and task status

Responses contain code and message. Tasks progress through waiting, processing, and success or failed. On success, use resultUrl; on failure, inspect failCode. Result files expire.

{ "code": 200, "message": "success", "taskId": "...", "status": "waiting" }

Error codes

CodeMeaningTypical causes
200Successmessage: "success"
-100Authentication or quota failureuserNo · API Key · credits
-200Invalid parameterfield · URL · size · duration · Idempotency-Key
-300Request rejectedtaskId · ownership · state
-401Temporary account suspensionFirst effective violation: 1 hour. Second: 24 hours. Hits during an active suspension do not count, extend, or escalate it.
-402Permanent account banThe third effective violation permanently bans the account.
-500Internal errorserver · retry
-600Unsupported video formatcodec · bit depth · HDR · audio

Task failure identifiers (failCode)

failCode is a string identifier, not the numeric code. It appears only when a task fails. Use failCode to determine the cause; do not parse the translated failReason message.

failCodeMeaning
VIDEO_UNREACHABLEThe video URL is not publicly accessible
VIDEO_METADATA_UNAVAILABLECould not obtain reliable video metadata.
VIDEO_RESOLUTION_UNSUPPORTEDThe measured video resolution exceeds the supported range
VIDEO_DURATION_UNSUPPORTEDThe measured video duration exceeds 30 minutes
VIDEO_CODEC_UNSUPPORTEDThe video codec is not supported
VIDEO_BIT_DEPTH_UNSUPPORTEDThe video bit depth is not supported
VIDEO_HDR_UNSUPPORTEDHDR, PQ, or HLG is not supported
VIDEO_AUDIO_UNSUPPORTEDThe audio codec is not supported
VIDEO_CONTAINER_UNSUPPORTEDThe video container format is not supported
VIDEO_PREPARE_FAILEDVideo preparation, validation, or audio removal failed

Copy and call

/open/submitTask

// JavaScript
const form = new URLSearchParams({
  userNo: USER_NO, apiKey: API_KEY, videoUrl: VIDEO_URL,
  width: '1920', height: '1080', duration: '30',
  x1: '0', y1: '0', x2: '1920', y2: '200'
});
const response = await fetch('https://www.550wai.cn/open/submitTask', {
  method: 'POST',
  body: form,
});

# Python
import requests
r = requests.post('https://www.550wai.cn/open/submitTask', data={
  'userNo': USER_NO, 'apiKey': API_KEY, 'videoUrl': VIDEO_URL,
  'width': 1920, 'height': 1080, 'duration': 30,
  'x1': 0, 'y1': 0, 'x2': 1920, 'y2': 200
})

/open/removeImageWatermark

// JavaScript
const imageFile = document.querySelector('#image-file').files[0];
const imageForm = new FormData();
imageForm.append('userNo', USER_NO);
imageForm.append('apiKey', API_KEY);
imageForm.append('file', imageFile);
imageForm.append('sync', 'true');
const imageResponse = await fetch(
  'https://www.550wai.cn/open/removeImageWatermark',
  { method: 'POST', body: imageForm }
);

# Python
import requests
IMAGE_FILE_PATH = '/path/to/image-file'
with open(IMAGE_FILE_PATH, 'rb') as image:
  r = requests.post(
    'https://www.550wai.cn/open/removeImageWatermark',
    data={'userNo': USER_NO, 'apiKey': API_KEY, 'sync': 'true'},
    files={'file': image}
  )

Usage & billing

Video subtitle removal is charged by processing duration and resolution. Images cost 10 credits per successful task; failed processing is not charged.

Video resolutionRateExample
width × height ≤ 921,600 · 720p or below1.3 Credits / s1280×720 · 30 s ≈ 39 Credits
width × height > 921,600 · Up to 1080p1.6 Credits / s1920×1080 · 30 s ≈ 48 Credits

Task queries only return the authenticated user’s data.

Handle errors using code, message, status, failCode and refundStatus.

Buy Credits

Video subtitle removal is charged by processing duration and resolution. Images cost 10 credits per successful task; failed processing is not charged.

Pricing →