/open/uploadVideoOptional multipart upload; returns a videoUrl.
550W DEVELOPER PLATFORM
图片与视频处理 API
Sign in to generate an API keyAuthenticate every request with your userNo and apiKey. Uploading a video is optional: you may either call /open/uploadVideo first or submit a publicly reachable videoUrl directly.
curl -X POST https://www.550wai.cn/open/submitTask \
-F userNo=YOUR_USER_NO -F apiKey=YOUR_API_KEY \
-F videoUrl=https://example.com/video.mp4 \
-F width=1920 -F height=1080 -F duration=30 \
-F x1=0 -F y1=0 -F x2=1920 -F y2=200/open/uploadVideoOptional multipart upload; returns a videoUrl.
/open/submitTaskSubmit a video subtitle/text erasing task using videoUrl or an uploaded file.
/open/taskDetailGet one video task status and result.
/open/taskListList video tasks for the authenticated user.
/open/removeImageWatermarkSubmit an image watermark removal task.
/open/imageWatermarkTaskDetailGet an image task status and result.
/open/queryCreditsRead the current credit balance.
/open/uploadVideoRequest format: multipart/form-data
| Field | Type | Required | Description |
|---|---|---|---|
userNo | string | Yes | Authenticated user number |
apiKey | string | Yes | API key |
file | file | Yes | MP4/MOV video, max 1 GB; max edge 1920 px, min edge 1080 px, duration ≤ 600 s, 8-bit SDR |
Response: Returns code, message, videoUrl, coverUrl, width, height and duration.
/open/submitTaskRequest format: application/x-www-form-urlencoded
| Field | Type | Required | Description |
|---|---|---|---|
userNo | string | Yes | Authenticated user number |
apiKey | string | Yes | API key |
videoUrl | string | Yes | Public http(s) URL (≤2048 chars) |
width / height | number | Yes | Video dimensions; max edge ≤1920 and min edge ≤1080 |
duration | number | Yes | Seconds, 1–600 |
x1,y1,x2,y2 | number | Yes | Subtitle rectangle; 0,0,0,0 means full-screen |
mode | string | No | normal (default) or protect |
fileName | string | No | Original file name |
coverUrl | string | No | Public cover URL |
callbackUrl | string | No | Public webhook URL called at final state |
removeAudio | boolean | No | Remove audio before processing (default false) |
Idempotency-Key / idempotencyKey | string | Recommended | Retry-safe key, max 128 chars |
Response: Returns code, message, taskId and status=waiting. Reusing an identical idempotency key returns the original task.
/open/taskDetailRequest format: form or query parameters
| Field | Type | Required | Description |
|---|---|---|---|
userNo | string | Yes | Authenticated user number |
apiKey | string | Yes | API key |
taskId | string | Yes | Task identifier, 1–64 chars |
Response: Returns task metadata, status, cost, resultUrl on success, failCode/failReason on failure and refundStatus.
/open/taskListRequest format: form or query parameters
| Field | Type | Required | Description |
|---|---|---|---|
userNo | string | Yes | Authenticated user number |
apiKey | string | Yes | API key |
page | number | No | Zero-based page, default 0 |
size | number | No | Page size 1–100, default 20 |
Response: Returns total, page, size and list[]; each item includes taskId, status, fileName, coverUrl, dimensions, duration, cost, timestamps, resultUrl, failCode, failReason and refundStatus.
/open/removeImageWatermarkRequest format: multipart/form-data
| Field | Type | Required | Description |
|---|---|---|---|
userNo | string | Yes | Authenticated user number |
apiKey | string | Yes | API key |
file | file | Yes | JPG, PNG, BMP, WebP, AVIF, TIFF or SVG; max 50 MB |
sync | boolean | No | Wait for result (default true); false returns processing |
operationId | string | No | Caller-defined tracking identifier |
Response: Returns code, message, errorCode, creditsAfter and task object (taskId, status, cost, resultUrl, failCode, failReason, createTime, expiredTime).
/open/imageWatermarkTaskDetailRequest format: form or query parameters
| Field | Type | Required | Description |
|---|---|---|---|
userNo | string | Yes | Authenticated user number |
apiKey | string | Yes | API key |
taskId | string | Yes | Image task identifier |
Response: Returns task status, resultUrl, failCode, failReason, cost and expiration metadata.
/open/queryCreditsRequest format: form or query parameters
| Field | Type | Required | Description |
|---|---|---|---|
userNo | string | Yes | Authenticated user number |
apiKey | string | Yes | API key |
Response: Returns code, message, userNo and non-negative integer credits.
| Field | Required | Description |
|---|---|---|
userNo | Yes | Your 550W user number. |
apiKey | Yes | API key generated from this page. |
Idempotency-Key | Recommended | Retry-safe key for task submission; max 128 characters. |
callbackUrl | No | Public HTTPS webhook called when a task reaches a final state. |
| Field | Type | Notes |
|---|---|---|
videoUrl | string | Public http(s) URL; omit when using an uploaded video. |
width / height | number | Pixels; maximum edge ≤ 1920 and minimum edge ≤ 1080. |
duration | number | Seconds, 1–600. |
x1, y1, x2, y2 | number | Subtitle rectangle; use 0,0,0,0 for full-screen mode. |
mode | string | normal (default) or protect. |
removeAudio | boolean | Remove audio before processing. |
Every response is a flat JSON object with code and message. Video tasks move through waiting → processing → success or failed. A successful task returns resultUrl; failed tasks include a stable failCode. Results expire according to the platform retention policy.
{ "code": 200, "message": "success", "taskId": "...", "status": "waiting" }| Code | Meaning | Typical causes |
|---|---|---|
200 | Success | Request accepted or completed. |
-100 | Authentication or quota failure | Missing/mismatched userNo or apiKey, or insufficient credits. |
-200 | Invalid parameter | Missing fields, invalid URL, dimensions, duration, or idempotency key. |
-300 | Business rejection | Task not found, unavailable, or unable to be accepted. |
-400 | Account suspended | Account blocked for policy violations. |
-500 | Internal error | Retry later. |
-600 | Unsupported video format | Codec, bit depth, HDR, or audio format is unsupported. |
// JavaScript
const form = new FormData();
form.append('userNo', USER_NO);
form.append('apiKey', API_KEY);
form.append('videoUrl', VIDEO_URL);
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
})Video subtitle removal uses the same credit schedule as the domestic Open API. Images are charged 10 credits per task. Failed processing is not charged; when a post-charge media failure occurs, inspect refundStatus.
| Video resolution | Rate | Example |
|---|---|---|
| width × height ≤ 921,600 (720p or below) | 1.3 credits / second | 1280×720 for 30s ≈ 39 credits |
| width × height > 921,600 (up to 1080p) | 1.6 credits / second | 1920×1080 for 30s ≈ 48 credits |
Task detail and list responses are scoped to the authenticated user. Video-link watermark removal is not available through the Eraser developer API.
See code, message, status, failCode and refundStatus for robust error handling.