Skip to main content
POST
https://gptproto.com
/
api
/
v3
/
openai
/
reverse
/
sora-2
/
image-to-video
sora-2 (Image To Video)
curl --request POST \
  --url https://gptproto.com/api/v3/openai/reverse/sora-2/image-to-video

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/openai/reverse/sora-2/image-to-video' \
--header 'Authorization: GPTPROTO_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
  "orientation": "portrait",
  "size": "small",
  "prompt": "She turns around and smiles, then slowly walks out of the frame.",
  "images": [
    "https://oss.gptproto.com/ai-draw/material/land-part1-default.png"
  ],
  "duration": 10,
  "character_url": "https://oss.gptproto.com/2025/11/11/fffe18ab440d4fadb16b4563c4cd18d1.mp4"
}'

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
{
    "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
modelstring✅ Yessora-2sora-2
sora-2-pro
The video generation model to use.
promptstring✅ Yes--The positive prompt for the generation.
imagesstring[]✅ Yes--Images parameter ,The image must match the target video’s resolution (size).
sizestring✅ Yessmallsmall
large
Video size quality. Options: small, large. Only sora-2-pro supports high-definition (large)
orientationstring❌ Noportraitportrait
landscape
Video orientation, does not support specific size control. Options: portrait, landscape
durationinteger❌ No10For sora-2:
1015
For sora-2-pro:
101525
The duration of the generated video in seconds. For sora-2: 10, 15. For sora-2-pro: 10, 15, 25
character_urlstring❌ No--Non-human IP video URL.

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)