Skip to main content
POST
https://gptproto.com
/
api
/
v3
/
kwaivgi
/
kling-video-o1-std
/
reference-to-video
kling-video-o1-std (Reference To Video)
curl --request POST \
  --url https://gptproto.com/api/v3/kwaivgi/kling-video-o1-std/reference-to-video

API Key Authentication

  1. Sign up for a GPTProto account at https://gptproto.com
  2. Navigate to the API Keys section in your dashboard
  3. Generate a new API key(sk-xxxxx)
  4. Copy and securely store your API key For authentication details, please refer to the Authentication section.

Initiate Request

curl --location 'https://gptproto.com/api/v3/kwaivgi/kling-video-o1-std/reference-to-video' \
--header 'Authorization: GPTPROTO_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
  "prompt": "the girl smile",
  "images": [
    "https://oss.gptproto.com/ai/api89e28146-5cc7-4f31-98a0-2d73f17266f7.png"
  ],
  "duration": 3
}'

Query Result

If the request that generated your content includes the parameter enable_sync_mode set to true (some models do not support this parameter, but you still need to query the result by id), you must call the Query Result endpoint to retrieve the final output.
curl -X GET "https://gptproto.com/api/v3/predictions/{id}/result" \
  -H "Authorization: GPTPROTO_API_KEY" \
  -H "Content-Type: application/json"
After submitting your prediction request, the response will contain the id you need.
You can find it in either:
  • data.id – the unique identifier of the prediction
  • data.urls[0].get – a ready-to-use GET URL that already embeds the id

Response Example

{
    "data": {
        "id": "abc",
        "model": "model_name",
        "outputs": [],
        "urls": {
            "get": "https://gptproto.com/api/v3/predictions/abc/result"
        },
        "status": "completed",
        "error": null,
        "executionTime": 0,
        "timings": {
            "inference": 0
        },
        "has_nsfw_contents": [],
        "created_at": "2026-01-01 00:00:00"
    },
    "message": "success",
    "code": 200
}

Parameters

ParameterTypeRequiredDefaultRangeDescription
promptstring✅ Yes--The positive prompt for the generation. Must not exceed 2,500 characters.
imagestring❌ No--Source image for image-to-video generation.
last_imagestring❌ No--last_frame is the last frame.
imagesarray❌ No--Including reference images of the element, scene, style, etc. Max 10 (reduced to 4 when video is provided).
videostring❌ No--The video URL for reference-to-video generation.
aspect_ratiostring❌ No16:916:9, 1:1, 9:16The aspect ratio of the generated video. This parameter is required when the image-to-video or video editing features are not used.
durationinteger❌ No53, 4, 5, 6, 7, 8, 9, 10 or
5, 10
The duration of the generated media in seconds. When using text generated videos, and first frame image generated videos, only 5 and 10 seconds are supported.
keep_original_soundboolean❌ Notruetrue, falseSelect whether to keep the video original sound through the parameter.

Error Codes

Common Error Codes

Error CodeError NameDescription
401UnauthorizedAPI key is missing or invalid
403ForbiddenYour API key doesn’t have permission to access this resource, or insufficient balance for the requested operation
429Too Many RequestsYou’ve exceeded your rate limit
500Internal server errorAn internal server error occurred
503Content policy violationContent blocked due to safety concerns (actual status code is 400)