[{"data":1,"prerenderedAt":1770},["ShallowReactive",2],{"docs-/docs/sdks":3},{"id":4,"title":5,"body":6,"description":1763,"extension":1764,"meta":1765,"navigation":70,"path":1766,"seo":1767,"stem":1768,"__hash__":1769},"content/en/docs/sdks.md","SDKs & Examples - Seedance 2.0 API",{"type":7,"value":8,"toc":1751},"minimark",[9,14,18,23,34,38,587,591,1120,1124,1246,1250,1358,1362,1480,1484,1613,1617,1707,1711,1717,1721,1747],[10,11,13],"h1",{"id":12},"sdks-code-examples","SDKs & Code Examples",[15,16,17],"p",{},"The Seedance 2.0 API uses a standard REST interface. Below are complete integration examples in popular languages.",[19,20,22],"h2",{"id":21},"base-url","Base URL",[24,25,30],"pre",{"className":26,"code":28,"language":29},[27],"language-text","https://api.evolink.ai\n","text",[31,32,28],"code",{"__ignoreMap":33},"",[19,35,37],{"id":36},"python","Python",[24,39,42],{"className":40,"code":41,"language":36,"meta":33,"style":33},"language-python shiki shiki-themes github-dark","import requests\nimport time\n\nAPI_KEY = \"YOUR_API_KEY\"\nBASE_URL = \"https://api.evolink.ai\"\n\nheaders = {\n    \"Authorization\": f\"Bearer {API_KEY}\",\n    \"Content-Type\": \"application/json\"\n}\n\n# 1. Create a video generation task\nresponse = requests.post(\n    f\"{BASE_URL}/v1/videos/generations\",\n    headers=headers,\n    json={\n        \"model\": \"seedance-2.0\",\n        \"prompt\": \"A sunset over the ocean, cinematic wide shot\",\n        \"duration\": 5,\n        \"quality\": \"1080p\",\n        \"aspect_ratio\": \"16:9\"\n    }\n)\n\ntask = response.json()\ntask_id = task[\"id\"]\nprint(f\"Task created: {task_id}\")\n\n# 2. Poll for completion\nwhile True:\n    status = requests.get(\n        f\"{BASE_URL}/v1/tasks/{task_id}\",\n        headers=headers\n    )\n    result = status.json()\n\n    if result[\"status\"] == \"completed\":\n        print(f\"Video URL: {result['results'][0]}\")\n        break\n    elif result[\"status\"] == \"failed\":\n        print(\"Generation failed\")\n        break\n\n    print(f\"Progress: {result['progress']}%\")\n    time.sleep(5)\n",[31,43,44,57,65,72,86,97,102,114,138,149,155,160,167,178,194,206,217,230,243,256,269,280,286,292,297,308,325,352,357,363,375,386,409,420,426,437,442,465,501,507,526,538,543,548,577],{"__ignoreMap":33},[45,46,49,53],"span",{"class":47,"line":48},"line",1,[45,50,52],{"class":51},"snl16","import",[45,54,56],{"class":55},"s95oV"," requests\n",[45,58,60,62],{"class":47,"line":59},2,[45,61,52],{"class":51},[45,63,64],{"class":55}," time\n",[45,66,68],{"class":47,"line":67},3,[45,69,71],{"emptyLinePlaceholder":70},true,"\n",[45,73,75,79,82],{"class":47,"line":74},4,[45,76,78],{"class":77},"sDLfK","API_KEY",[45,80,81],{"class":51}," =",[45,83,85],{"class":84},"sU2Wk"," \"YOUR_API_KEY\"\n",[45,87,89,92,94],{"class":47,"line":88},5,[45,90,91],{"class":77},"BASE_URL",[45,93,81],{"class":51},[45,95,96],{"class":84}," \"https://api.evolink.ai\"\n",[45,98,100],{"class":47,"line":99},6,[45,101,71],{"emptyLinePlaceholder":70},[45,103,105,108,111],{"class":47,"line":104},7,[45,106,107],{"class":55},"headers ",[45,109,110],{"class":51},"=",[45,112,113],{"class":55}," {\n",[45,115,117,120,123,126,129,132,135],{"class":47,"line":116},8,[45,118,119],{"class":84},"    \"Authorization\"",[45,121,122],{"class":55},": ",[45,124,125],{"class":51},"f",[45,127,128],{"class":84},"\"Bearer ",[45,130,131],{"class":77},"{API_KEY}",[45,133,134],{"class":84},"\"",[45,136,137],{"class":55},",\n",[45,139,141,144,146],{"class":47,"line":140},9,[45,142,143],{"class":84},"    \"Content-Type\"",[45,145,122],{"class":55},[45,147,148],{"class":84},"\"application/json\"\n",[45,150,152],{"class":47,"line":151},10,[45,153,154],{"class":55},"}\n",[45,156,158],{"class":47,"line":157},11,[45,159,71],{"emptyLinePlaceholder":70},[45,161,163],{"class":47,"line":162},12,[45,164,166],{"class":165},"sAwPA","# 1. Create a video generation task\n",[45,168,170,173,175],{"class":47,"line":169},13,[45,171,172],{"class":55},"response ",[45,174,110],{"class":51},[45,176,177],{"class":55}," requests.post(\n",[45,179,181,184,186,189,192],{"class":47,"line":180},14,[45,182,183],{"class":51},"    f",[45,185,134],{"class":84},[45,187,188],{"class":77},"{BASE_URL}",[45,190,191],{"class":84},"/v1/videos/generations\"",[45,193,137],{"class":55},[45,195,197,201,203],{"class":47,"line":196},15,[45,198,200],{"class":199},"s9osk","    headers",[45,202,110],{"class":51},[45,204,205],{"class":55},"headers,\n",[45,207,209,212,214],{"class":47,"line":208},16,[45,210,211],{"class":199},"    json",[45,213,110],{"class":51},[45,215,216],{"class":55},"{\n",[45,218,220,223,225,228],{"class":47,"line":219},17,[45,221,222],{"class":84},"        \"model\"",[45,224,122],{"class":55},[45,226,227],{"class":84},"\"seedance-2.0\"",[45,229,137],{"class":55},[45,231,233,236,238,241],{"class":47,"line":232},18,[45,234,235],{"class":84},"        \"prompt\"",[45,237,122],{"class":55},[45,239,240],{"class":84},"\"A sunset over the ocean, cinematic wide shot\"",[45,242,137],{"class":55},[45,244,246,249,251,254],{"class":47,"line":245},19,[45,247,248],{"class":84},"        \"duration\"",[45,250,122],{"class":55},[45,252,253],{"class":77},"5",[45,255,137],{"class":55},[45,257,259,262,264,267],{"class":47,"line":258},20,[45,260,261],{"class":84},"        \"quality\"",[45,263,122],{"class":55},[45,265,266],{"class":84},"\"1080p\"",[45,268,137],{"class":55},[45,270,272,275,277],{"class":47,"line":271},21,[45,273,274],{"class":84},"        \"aspect_ratio\"",[45,276,122],{"class":55},[45,278,279],{"class":84},"\"16:9\"\n",[45,281,283],{"class":47,"line":282},22,[45,284,285],{"class":55},"    }\n",[45,287,289],{"class":47,"line":288},23,[45,290,291],{"class":55},")\n",[45,293,295],{"class":47,"line":294},24,[45,296,71],{"emptyLinePlaceholder":70},[45,298,300,303,305],{"class":47,"line":299},25,[45,301,302],{"class":55},"task ",[45,304,110],{"class":51},[45,306,307],{"class":55}," response.json()\n",[45,309,311,314,316,319,322],{"class":47,"line":310},26,[45,312,313],{"class":55},"task_id ",[45,315,110],{"class":51},[45,317,318],{"class":55}," task[",[45,320,321],{"class":84},"\"id\"",[45,323,324],{"class":55},"]\n",[45,326,328,331,334,336,339,342,345,348,350],{"class":47,"line":327},27,[45,329,330],{"class":77},"print",[45,332,333],{"class":55},"(",[45,335,125],{"class":51},[45,337,338],{"class":84},"\"Task created: ",[45,340,341],{"class":77},"{",[45,343,344],{"class":55},"task_id",[45,346,347],{"class":77},"}",[45,349,134],{"class":84},[45,351,291],{"class":55},[45,353,355],{"class":47,"line":354},28,[45,356,71],{"emptyLinePlaceholder":70},[45,358,360],{"class":47,"line":359},29,[45,361,362],{"class":165},"# 2. Poll for completion\n",[45,364,366,369,372],{"class":47,"line":365},30,[45,367,368],{"class":51},"while",[45,370,371],{"class":77}," True",[45,373,374],{"class":55},":\n",[45,376,378,381,383],{"class":47,"line":377},31,[45,379,380],{"class":55},"    status ",[45,382,110],{"class":51},[45,384,385],{"class":55}," requests.get(\n",[45,387,389,392,394,396,399,401,403,405,407],{"class":47,"line":388},32,[45,390,391],{"class":51},"        f",[45,393,134],{"class":84},[45,395,188],{"class":77},[45,397,398],{"class":84},"/v1/tasks/",[45,400,341],{"class":77},[45,402,344],{"class":55},[45,404,347],{"class":77},[45,406,134],{"class":84},[45,408,137],{"class":55},[45,410,412,415,417],{"class":47,"line":411},33,[45,413,414],{"class":199},"        headers",[45,416,110],{"class":51},[45,418,419],{"class":55},"headers\n",[45,421,423],{"class":47,"line":422},34,[45,424,425],{"class":55},"    )\n",[45,427,429,432,434],{"class":47,"line":428},35,[45,430,431],{"class":55},"    result ",[45,433,110],{"class":51},[45,435,436],{"class":55}," status.json()\n",[45,438,440],{"class":47,"line":439},36,[45,441,71],{"emptyLinePlaceholder":70},[45,443,445,448,451,454,457,460,463],{"class":47,"line":444},37,[45,446,447],{"class":51},"    if",[45,449,450],{"class":55}," result[",[45,452,453],{"class":84},"\"status\"",[45,455,456],{"class":55},"] ",[45,458,459],{"class":51},"==",[45,461,462],{"class":84}," \"completed\"",[45,464,374],{"class":55},[45,466,468,471,473,475,478,480,483,486,489,492,495,497,499],{"class":47,"line":467},38,[45,469,470],{"class":77},"        print",[45,472,333],{"class":55},[45,474,125],{"class":51},[45,476,477],{"class":84},"\"Video URL: ",[45,479,341],{"class":77},[45,481,482],{"class":55},"result[",[45,484,485],{"class":84},"'results'",[45,487,488],{"class":55},"][",[45,490,491],{"class":77},"0",[45,493,494],{"class":55},"]",[45,496,347],{"class":77},[45,498,134],{"class":84},[45,500,291],{"class":55},[45,502,504],{"class":47,"line":503},39,[45,505,506],{"class":51},"        break\n",[45,508,510,513,515,517,519,521,524],{"class":47,"line":509},40,[45,511,512],{"class":51},"    elif",[45,514,450],{"class":55},[45,516,453],{"class":84},[45,518,456],{"class":55},[45,520,459],{"class":51},[45,522,523],{"class":84}," \"failed\"",[45,525,374],{"class":55},[45,527,529,531,533,536],{"class":47,"line":528},41,[45,530,470],{"class":77},[45,532,333],{"class":55},[45,534,535],{"class":84},"\"Generation failed\"",[45,537,291],{"class":55},[45,539,541],{"class":47,"line":540},42,[45,542,506],{"class":51},[45,544,546],{"class":47,"line":545},43,[45,547,71],{"emptyLinePlaceholder":70},[45,549,551,554,556,558,561,563,565,568,570,572,575],{"class":47,"line":550},44,[45,552,553],{"class":77},"    print",[45,555,333],{"class":55},[45,557,125],{"class":51},[45,559,560],{"class":84},"\"Progress: ",[45,562,341],{"class":77},[45,564,482],{"class":55},[45,566,567],{"class":84},"'progress'",[45,569,494],{"class":55},[45,571,347],{"class":77},[45,573,574],{"class":84},"%\"",[45,576,291],{"class":55},[45,578,580,583,585],{"class":47,"line":579},45,[45,581,582],{"class":55},"    time.sleep(",[45,584,253],{"class":77},[45,586,291],{"class":55},[19,588,590],{"id":589},"nodejs","Node.js",[24,592,596],{"className":593,"code":594,"language":595,"meta":33,"style":33},"language-javascript shiki shiki-themes github-dark","const API_KEY = \"YOUR_API_KEY\";\nconst BASE_URL = \"https://api.evolink.ai\";\n\nconst headers = {\n    \"Authorization\": `Bearer ${API_KEY}`,\n    \"Content-Type\": \"application/json\"\n};\n\n// 1. Create a video generation task\nconst createRes = await fetch(`${BASE_URL}/v1/videos/generations`, {\n    method: \"POST\",\n    headers,\n    body: JSON.stringify({\n        model: \"seedance-2.0\",\n        prompt: \"A sunset over the ocean, cinematic wide shot\",\n        duration: 5,\n        quality: \"1080p\",\n        aspect_ratio: \"16:9\"\n    })\n});\n\nconst task = await createRes.json();\nconst taskId = task.id;\nconsole.log(`Task created: ${taskId}`);\n\n// 2. Poll for completion\nconst poll = async () => {\n    while (true) {\n        const statusRes = await fetch(`${BASE_URL}/v1/tasks/${taskId}`, { headers });\n        const result = await statusRes.json();\n\n        if (result.status === \"completed\") {\n            console.log(`Video URL: ${result.results[0]}`);\n            return;\n        }\n        if (result.status === \"failed\") {\n            console.log(\"Generation failed\");\n            return;\n        }\n\n        console.log(`Progress: ${result.progress}%`);\n        await new Promise(r => setTimeout(r, 5000));\n    }\n};\n\nawait poll();\n","javascript",[31,597,598,614,628,632,643,659,667,672,676,681,710,720,725,742,751,760,769,778,785,790,795,799,819,831,852,856,861,881,895,925,943,947,962,993,1000,1005,1017,1029,1035,1039,1043,1067,1098,1102,1106,1110],{"__ignoreMap":33},[45,599,600,603,606,608,611],{"class":47,"line":48},[45,601,602],{"class":51},"const",[45,604,605],{"class":77}," API_KEY",[45,607,81],{"class":51},[45,609,610],{"class":84}," \"YOUR_API_KEY\"",[45,612,613],{"class":55},";\n",[45,615,616,618,621,623,626],{"class":47,"line":59},[45,617,602],{"class":51},[45,619,620],{"class":77}," BASE_URL",[45,622,81],{"class":51},[45,624,625],{"class":84}," \"https://api.evolink.ai\"",[45,627,613],{"class":55},[45,629,630],{"class":47,"line":67},[45,631,71],{"emptyLinePlaceholder":70},[45,633,634,636,639,641],{"class":47,"line":74},[45,635,602],{"class":51},[45,637,638],{"class":77}," headers",[45,640,81],{"class":51},[45,642,113],{"class":55},[45,644,645,647,649,652,654,657],{"class":47,"line":88},[45,646,119],{"class":84},[45,648,122],{"class":55},[45,650,651],{"class":84},"`Bearer ${",[45,653,78],{"class":77},[45,655,656],{"class":84},"}`",[45,658,137],{"class":55},[45,660,661,663,665],{"class":47,"line":99},[45,662,143],{"class":84},[45,664,122],{"class":55},[45,666,148],{"class":84},[45,668,669],{"class":47,"line":104},[45,670,671],{"class":55},"};\n",[45,673,674],{"class":47,"line":116},[45,675,71],{"emptyLinePlaceholder":70},[45,677,678],{"class":47,"line":140},[45,679,680],{"class":165},"// 1. Create a video generation task\n",[45,682,683,685,688,690,693,697,699,702,704,707],{"class":47,"line":151},[45,684,602],{"class":51},[45,686,687],{"class":77}," createRes",[45,689,81],{"class":51},[45,691,692],{"class":51}," await",[45,694,696],{"class":695},"svObZ"," fetch",[45,698,333],{"class":55},[45,700,701],{"class":84},"`${",[45,703,91],{"class":77},[45,705,706],{"class":84},"}/v1/videos/generations`",[45,708,709],{"class":55},", {\n",[45,711,712,715,718],{"class":47,"line":157},[45,713,714],{"class":55},"    method: ",[45,716,717],{"class":84},"\"POST\"",[45,719,137],{"class":55},[45,721,722],{"class":47,"line":162},[45,723,724],{"class":55},"    headers,\n",[45,726,727,730,733,736,739],{"class":47,"line":169},[45,728,729],{"class":55},"    body: ",[45,731,732],{"class":77},"JSON",[45,734,735],{"class":55},".",[45,737,738],{"class":695},"stringify",[45,740,741],{"class":55},"({\n",[45,743,744,747,749],{"class":47,"line":180},[45,745,746],{"class":55},"        model: ",[45,748,227],{"class":84},[45,750,137],{"class":55},[45,752,753,756,758],{"class":47,"line":196},[45,754,755],{"class":55},"        prompt: ",[45,757,240],{"class":84},[45,759,137],{"class":55},[45,761,762,765,767],{"class":47,"line":208},[45,763,764],{"class":55},"        duration: ",[45,766,253],{"class":77},[45,768,137],{"class":55},[45,770,771,774,776],{"class":47,"line":219},[45,772,773],{"class":55},"        quality: ",[45,775,266],{"class":84},[45,777,137],{"class":55},[45,779,780,783],{"class":47,"line":232},[45,781,782],{"class":55},"        aspect_ratio: ",[45,784,279],{"class":84},[45,786,787],{"class":47,"line":245},[45,788,789],{"class":55},"    })\n",[45,791,792],{"class":47,"line":258},[45,793,794],{"class":55},"});\n",[45,796,797],{"class":47,"line":271},[45,798,71],{"emptyLinePlaceholder":70},[45,800,801,803,806,808,810,813,816],{"class":47,"line":282},[45,802,602],{"class":51},[45,804,805],{"class":77}," task",[45,807,81],{"class":51},[45,809,692],{"class":51},[45,811,812],{"class":55}," createRes.",[45,814,815],{"class":695},"json",[45,817,818],{"class":55},"();\n",[45,820,821,823,826,828],{"class":47,"line":288},[45,822,602],{"class":51},[45,824,825],{"class":77}," taskId",[45,827,81],{"class":51},[45,829,830],{"class":55}," task.id;\n",[45,832,833,836,839,841,844,847,849],{"class":47,"line":294},[45,834,835],{"class":55},"console.",[45,837,838],{"class":695},"log",[45,840,333],{"class":55},[45,842,843],{"class":84},"`Task created: ${",[45,845,846],{"class":55},"taskId",[45,848,656],{"class":84},[45,850,851],{"class":55},");\n",[45,853,854],{"class":47,"line":299},[45,855,71],{"emptyLinePlaceholder":70},[45,857,858],{"class":47,"line":310},[45,859,860],{"class":165},"// 2. Poll for completion\n",[45,862,863,865,868,870,873,876,879],{"class":47,"line":327},[45,864,602],{"class":51},[45,866,867],{"class":695}," poll",[45,869,81],{"class":51},[45,871,872],{"class":51}," async",[45,874,875],{"class":55}," () ",[45,877,878],{"class":51},"=>",[45,880,113],{"class":55},[45,882,883,886,889,892],{"class":47,"line":354},[45,884,885],{"class":51},"    while",[45,887,888],{"class":55}," (",[45,890,891],{"class":77},"true",[45,893,894],{"class":55},") {\n",[45,896,897,900,903,905,907,909,911,913,915,918,920,922],{"class":47,"line":359},[45,898,899],{"class":51},"        const",[45,901,902],{"class":77}," statusRes",[45,904,81],{"class":51},[45,906,692],{"class":51},[45,908,696],{"class":695},[45,910,333],{"class":55},[45,912,701],{"class":84},[45,914,91],{"class":77},[45,916,917],{"class":84},"}/v1/tasks/${",[45,919,846],{"class":55},[45,921,656],{"class":84},[45,923,924],{"class":55},", { headers });\n",[45,926,927,929,932,934,936,939,941],{"class":47,"line":365},[45,928,899],{"class":51},[45,930,931],{"class":77}," result",[45,933,81],{"class":51},[45,935,692],{"class":51},[45,937,938],{"class":55}," statusRes.",[45,940,815],{"class":695},[45,942,818],{"class":55},[45,944,945],{"class":47,"line":377},[45,946,71],{"emptyLinePlaceholder":70},[45,948,949,952,955,958,960],{"class":47,"line":388},[45,950,951],{"class":51},"        if",[45,953,954],{"class":55}," (result.status ",[45,956,957],{"class":51},"===",[45,959,462],{"class":84},[45,961,894],{"class":55},[45,963,964,967,969,971,974,977,979,982,985,987,989,991],{"class":47,"line":411},[45,965,966],{"class":55},"            console.",[45,968,838],{"class":695},[45,970,333],{"class":55},[45,972,973],{"class":84},"`Video URL: ${",[45,975,976],{"class":55},"result",[45,978,735],{"class":84},[45,980,981],{"class":55},"results",[45,983,984],{"class":84},"[",[45,986,491],{"class":77},[45,988,494],{"class":84},[45,990,656],{"class":84},[45,992,851],{"class":55},[45,994,995,998],{"class":47,"line":422},[45,996,997],{"class":51},"            return",[45,999,613],{"class":55},[45,1001,1002],{"class":47,"line":428},[45,1003,1004],{"class":55},"        }\n",[45,1006,1007,1009,1011,1013,1015],{"class":47,"line":439},[45,1008,951],{"class":51},[45,1010,954],{"class":55},[45,1012,957],{"class":51},[45,1014,523],{"class":84},[45,1016,894],{"class":55},[45,1018,1019,1021,1023,1025,1027],{"class":47,"line":444},[45,1020,966],{"class":55},[45,1022,838],{"class":695},[45,1024,333],{"class":55},[45,1026,535],{"class":84},[45,1028,851],{"class":55},[45,1030,1031,1033],{"class":47,"line":467},[45,1032,997],{"class":51},[45,1034,613],{"class":55},[45,1036,1037],{"class":47,"line":503},[45,1038,1004],{"class":55},[45,1040,1041],{"class":47,"line":509},[45,1042,71],{"emptyLinePlaceholder":70},[45,1044,1045,1048,1050,1052,1055,1057,1059,1062,1065],{"class":47,"line":528},[45,1046,1047],{"class":55},"        console.",[45,1049,838],{"class":695},[45,1051,333],{"class":55},[45,1053,1054],{"class":84},"`Progress: ${",[45,1056,976],{"class":55},[45,1058,735],{"class":84},[45,1060,1061],{"class":55},"progress",[45,1063,1064],{"class":84},"}%`",[45,1066,851],{"class":55},[45,1068,1069,1072,1075,1078,1080,1083,1086,1089,1092,1095],{"class":47,"line":540},[45,1070,1071],{"class":51},"        await",[45,1073,1074],{"class":51}," new",[45,1076,1077],{"class":77}," Promise",[45,1079,333],{"class":55},[45,1081,1082],{"class":199},"r",[45,1084,1085],{"class":51}," =>",[45,1087,1088],{"class":695}," setTimeout",[45,1090,1091],{"class":55},"(r, ",[45,1093,1094],{"class":77},"5000",[45,1096,1097],{"class":55},"));\n",[45,1099,1100],{"class":47,"line":545},[45,1101,285],{"class":55},[45,1103,1104],{"class":47,"line":550},[45,1105,671],{"class":55},[45,1107,1108],{"class":47,"line":579},[45,1109,71],{"emptyLinePlaceholder":70},[45,1111,1113,1116,1118],{"class":47,"line":1112},46,[45,1114,1115],{"class":51},"await",[45,1117,867],{"class":695},[45,1119,818],{"class":55},[19,1121,1123],{"id":1122},"curl","cURL",[24,1125,1129],{"className":1126,"code":1127,"language":1128,"meta":33,"style":33},"language-bash shiki shiki-themes github-dark","# 1. Create a video generation task\ncurl -X POST https://api.evolink.ai/v1/videos/generations \\\n  -H \"Authorization: Bearer YOUR_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"seedance-2.0\",\n    \"prompt\": \"A sunset over the ocean, cinematic wide shot\",\n    \"duration\": 5,\n    \"quality\": \"1080p\"\n  }'\n\n# Response: {\"id\": \"task-unified-...\", \"status\": \"pending\", ...}\n\n# 2. Check task status\ncurl https://api.evolink.ai/v1/tasks/TASK_ID \\\n  -H \"Authorization: Bearer YOUR_API_KEY\"\n\n# When completed: {\"status\": \"completed\", \"results\": [\"https://...mp4\"], ...}\n","bash",[31,1130,1131,1135,1151,1161,1170,1178,1183,1188,1193,1198,1203,1207,1212,1216,1221,1230,1237,1241],{"__ignoreMap":33},[45,1132,1133],{"class":47,"line":48},[45,1134,166],{"class":165},[45,1136,1137,1139,1142,1145,1148],{"class":47,"line":59},[45,1138,1122],{"class":695},[45,1140,1141],{"class":77}," -X",[45,1143,1144],{"class":84}," POST",[45,1146,1147],{"class":84}," https://api.evolink.ai/v1/videos/generations",[45,1149,1150],{"class":77}," \\\n",[45,1152,1153,1156,1159],{"class":47,"line":67},[45,1154,1155],{"class":77},"  -H",[45,1157,1158],{"class":84}," \"Authorization: Bearer YOUR_API_KEY\"",[45,1160,1150],{"class":77},[45,1162,1163,1165,1168],{"class":47,"line":74},[45,1164,1155],{"class":77},[45,1166,1167],{"class":84}," \"Content-Type: application/json\"",[45,1169,1150],{"class":77},[45,1171,1172,1175],{"class":47,"line":88},[45,1173,1174],{"class":77},"  -d",[45,1176,1177],{"class":84}," '{\n",[45,1179,1180],{"class":47,"line":99},[45,1181,1182],{"class":84},"    \"model\": \"seedance-2.0\",\n",[45,1184,1185],{"class":47,"line":104},[45,1186,1187],{"class":84},"    \"prompt\": \"A sunset over the ocean, cinematic wide shot\",\n",[45,1189,1190],{"class":47,"line":116},[45,1191,1192],{"class":84},"    \"duration\": 5,\n",[45,1194,1195],{"class":47,"line":140},[45,1196,1197],{"class":84},"    \"quality\": \"1080p\"\n",[45,1199,1200],{"class":47,"line":151},[45,1201,1202],{"class":84},"  }'\n",[45,1204,1205],{"class":47,"line":157},[45,1206,71],{"emptyLinePlaceholder":70},[45,1208,1209],{"class":47,"line":162},[45,1210,1211],{"class":165},"# Response: {\"id\": \"task-unified-...\", \"status\": \"pending\", ...}\n",[45,1213,1214],{"class":47,"line":169},[45,1215,71],{"emptyLinePlaceholder":70},[45,1217,1218],{"class":47,"line":180},[45,1219,1220],{"class":165},"# 2. Check task status\n",[45,1222,1223,1225,1228],{"class":47,"line":196},[45,1224,1122],{"class":695},[45,1226,1227],{"class":84}," https://api.evolink.ai/v1/tasks/TASK_ID",[45,1229,1150],{"class":77},[45,1231,1232,1234],{"class":47,"line":208},[45,1233,1155],{"class":77},[45,1235,1236],{"class":84}," \"Authorization: Bearer YOUR_API_KEY\"\n",[45,1238,1239],{"class":47,"line":219},[45,1240,71],{"emptyLinePlaceholder":70},[45,1242,1243],{"class":47,"line":232},[45,1244,1245],{"class":165},"# When completed: {\"status\": \"completed\", \"results\": [\"https://...mp4\"], ...}\n",[19,1247,1249],{"id":1248},"image-to-video-example","Image-to-Video Example",[24,1251,1253],{"className":40,"code":1252,"language":36,"meta":33,"style":33},"# Animate a single image\nresponse = requests.post(\n    f\"{BASE_URL}/v1/videos/generations\",\n    headers=headers,\n    json={\n        \"model\": \"seedance-2.0\",\n        \"prompt\": \"The woman turns her head slowly, hair flowing in the wind\",\n        \"image_urls\": [\"https://example.com/portrait.jpg\"],\n        \"duration\": 5,\n        \"quality\": \"1080p\"\n    }\n)\n",[31,1254,1255,1260,1268,1280,1288,1296,1306,1317,1331,1341,1350,1354],{"__ignoreMap":33},[45,1256,1257],{"class":47,"line":48},[45,1258,1259],{"class":165},"# Animate a single image\n",[45,1261,1262,1264,1266],{"class":47,"line":59},[45,1263,172],{"class":55},[45,1265,110],{"class":51},[45,1267,177],{"class":55},[45,1269,1270,1272,1274,1276,1278],{"class":47,"line":67},[45,1271,183],{"class":51},[45,1273,134],{"class":84},[45,1275,188],{"class":77},[45,1277,191],{"class":84},[45,1279,137],{"class":55},[45,1281,1282,1284,1286],{"class":47,"line":74},[45,1283,200],{"class":199},[45,1285,110],{"class":51},[45,1287,205],{"class":55},[45,1289,1290,1292,1294],{"class":47,"line":88},[45,1291,211],{"class":199},[45,1293,110],{"class":51},[45,1295,216],{"class":55},[45,1297,1298,1300,1302,1304],{"class":47,"line":99},[45,1299,222],{"class":84},[45,1301,122],{"class":55},[45,1303,227],{"class":84},[45,1305,137],{"class":55},[45,1307,1308,1310,1312,1315],{"class":47,"line":104},[45,1309,235],{"class":84},[45,1311,122],{"class":55},[45,1313,1314],{"class":84},"\"The woman turns her head slowly, hair flowing in the wind\"",[45,1316,137],{"class":55},[45,1318,1319,1322,1325,1328],{"class":47,"line":116},[45,1320,1321],{"class":84},"        \"image_urls\"",[45,1323,1324],{"class":55},": [",[45,1326,1327],{"class":84},"\"https://example.com/portrait.jpg\"",[45,1329,1330],{"class":55},"],\n",[45,1332,1333,1335,1337,1339],{"class":47,"line":140},[45,1334,248],{"class":84},[45,1336,122],{"class":55},[45,1338,253],{"class":77},[45,1340,137],{"class":55},[45,1342,1343,1345,1347],{"class":47,"line":151},[45,1344,261],{"class":84},[45,1346,122],{"class":55},[45,1348,1349],{"class":84},"\"1080p\"\n",[45,1351,1352],{"class":47,"line":157},[45,1353,285],{"class":55},[45,1355,1356],{"class":47,"line":162},[45,1357,291],{"class":55},[19,1359,1361],{"id":1360},"first-last-frame-example","First-Last-Frame Example",[24,1363,1365],{"className":40,"code":1364,"language":36,"meta":33,"style":33},"# Generate transition between two keyframes\nresponse = requests.post(\n    f\"{BASE_URL}/v1/videos/generations\",\n    headers=headers,\n    json={\n        \"model\": \"seedance-2.0\",\n        \"prompt\": \"Smooth camera pan revealing the landscape\",\n        \"image_urls\": [\n            \"https://example.com/frame-start.jpg\",\n            \"https://example.com/frame-end.jpg\"\n        ],\n        \"duration\": 8,\n        \"quality\": \"1080p\"\n    }\n)\n",[31,1366,1367,1372,1380,1392,1400,1408,1418,1429,1436,1443,1448,1453,1464,1472,1476],{"__ignoreMap":33},[45,1368,1369],{"class":47,"line":48},[45,1370,1371],{"class":165},"# Generate transition between two keyframes\n",[45,1373,1374,1376,1378],{"class":47,"line":59},[45,1375,172],{"class":55},[45,1377,110],{"class":51},[45,1379,177],{"class":55},[45,1381,1382,1384,1386,1388,1390],{"class":47,"line":67},[45,1383,183],{"class":51},[45,1385,134],{"class":84},[45,1387,188],{"class":77},[45,1389,191],{"class":84},[45,1391,137],{"class":55},[45,1393,1394,1396,1398],{"class":47,"line":74},[45,1395,200],{"class":199},[45,1397,110],{"class":51},[45,1399,205],{"class":55},[45,1401,1402,1404,1406],{"class":47,"line":88},[45,1403,211],{"class":199},[45,1405,110],{"class":51},[45,1407,216],{"class":55},[45,1409,1410,1412,1414,1416],{"class":47,"line":99},[45,1411,222],{"class":84},[45,1413,122],{"class":55},[45,1415,227],{"class":84},[45,1417,137],{"class":55},[45,1419,1420,1422,1424,1427],{"class":47,"line":104},[45,1421,235],{"class":84},[45,1423,122],{"class":55},[45,1425,1426],{"class":84},"\"Smooth camera pan revealing the landscape\"",[45,1428,137],{"class":55},[45,1430,1431,1433],{"class":47,"line":116},[45,1432,1321],{"class":84},[45,1434,1435],{"class":55},": [\n",[45,1437,1438,1441],{"class":47,"line":140},[45,1439,1440],{"class":84},"            \"https://example.com/frame-start.jpg\"",[45,1442,137],{"class":55},[45,1444,1445],{"class":47,"line":151},[45,1446,1447],{"class":84},"            \"https://example.com/frame-end.jpg\"\n",[45,1449,1450],{"class":47,"line":157},[45,1451,1452],{"class":55},"        ],\n",[45,1454,1455,1457,1459,1462],{"class":47,"line":162},[45,1456,248],{"class":84},[45,1458,122],{"class":55},[45,1460,1461],{"class":77},"8",[45,1463,137],{"class":55},[45,1465,1466,1468,1470],{"class":47,"line":169},[45,1467,261],{"class":84},[45,1469,122],{"class":55},[45,1471,1349],{"class":84},[45,1473,1474],{"class":47,"line":180},[45,1475,285],{"class":55},[45,1477,1478],{"class":47,"line":196},[45,1479,291],{"class":55},[19,1481,1483],{"id":1482},"multimodal-example","Multimodal Example",[24,1485,1487],{"className":40,"code":1486,"language":36,"meta":33,"style":33},"# Combine image, video, and audio references with @tags\nresponse = requests.post(\n    f\"{BASE_URL}/v1/videos/generations\",\n    headers=headers,\n    json={\n        \"model\": \"seedance-2.0\",\n        \"prompt\": \"@Image1 as first frame, replicate @Video1 camera movement, @Audio1 for BGM rhythm. A cinematic night cityscape.\",\n        \"image_urls\": [\"https://example.com/scene.jpg\"],\n        \"video_urls\": [\"https://example.com/camera-ref.mp4\"],\n        \"audio_urls\": [\"https://example.com/bgm.mp3\"],\n        \"duration\": 10,\n        \"quality\": \"1080p\"\n    }\n)\n",[31,1488,1489,1494,1502,1514,1522,1530,1540,1551,1562,1574,1586,1597,1605,1609],{"__ignoreMap":33},[45,1490,1491],{"class":47,"line":48},[45,1492,1493],{"class":165},"# Combine image, video, and audio references with @tags\n",[45,1495,1496,1498,1500],{"class":47,"line":59},[45,1497,172],{"class":55},[45,1499,110],{"class":51},[45,1501,177],{"class":55},[45,1503,1504,1506,1508,1510,1512],{"class":47,"line":67},[45,1505,183],{"class":51},[45,1507,134],{"class":84},[45,1509,188],{"class":77},[45,1511,191],{"class":84},[45,1513,137],{"class":55},[45,1515,1516,1518,1520],{"class":47,"line":74},[45,1517,200],{"class":199},[45,1519,110],{"class":51},[45,1521,205],{"class":55},[45,1523,1524,1526,1528],{"class":47,"line":88},[45,1525,211],{"class":199},[45,1527,110],{"class":51},[45,1529,216],{"class":55},[45,1531,1532,1534,1536,1538],{"class":47,"line":99},[45,1533,222],{"class":84},[45,1535,122],{"class":55},[45,1537,227],{"class":84},[45,1539,137],{"class":55},[45,1541,1542,1544,1546,1549],{"class":47,"line":104},[45,1543,235],{"class":84},[45,1545,122],{"class":55},[45,1547,1548],{"class":84},"\"@Image1 as first frame, replicate @Video1 camera movement, @Audio1 for BGM rhythm. A cinematic night cityscape.\"",[45,1550,137],{"class":55},[45,1552,1553,1555,1557,1560],{"class":47,"line":116},[45,1554,1321],{"class":84},[45,1556,1324],{"class":55},[45,1558,1559],{"class":84},"\"https://example.com/scene.jpg\"",[45,1561,1330],{"class":55},[45,1563,1564,1567,1569,1572],{"class":47,"line":140},[45,1565,1566],{"class":84},"        \"video_urls\"",[45,1568,1324],{"class":55},[45,1570,1571],{"class":84},"\"https://example.com/camera-ref.mp4\"",[45,1573,1330],{"class":55},[45,1575,1576,1579,1581,1584],{"class":47,"line":151},[45,1577,1578],{"class":84},"        \"audio_urls\"",[45,1580,1324],{"class":55},[45,1582,1583],{"class":84},"\"https://example.com/bgm.mp3\"",[45,1585,1330],{"class":55},[45,1587,1588,1590,1592,1595],{"class":47,"line":157},[45,1589,248],{"class":84},[45,1591,122],{"class":55},[45,1593,1594],{"class":77},"10",[45,1596,137],{"class":55},[45,1598,1599,1601,1603],{"class":47,"line":162},[45,1600,261],{"class":84},[45,1602,122],{"class":55},[45,1604,1349],{"class":84},[45,1606,1607],{"class":47,"line":169},[45,1608,285],{"class":55},[45,1610,1611],{"class":47,"line":180},[45,1612,291],{"class":55},[19,1614,1616],{"id":1615},"with-callback-url","With Callback URL",[24,1618,1620],{"className":40,"code":1619,"language":36,"meta":33,"style":33},"# Use callback_url instead of polling\nresponse = requests.post(\n    f\"{BASE_URL}/v1/videos/generations\",\n    headers=headers,\n    json={\n        \"model\": \"seedance-2.0\",\n        \"prompt\": \"A cat playing piano\",\n        \"callback_url\": \"https://yourapp.com/api/video-callback\"\n    }\n)\n# Your callback endpoint will receive the task result when complete\n",[31,1621,1622,1627,1635,1647,1655,1663,1673,1684,1694,1698,1702],{"__ignoreMap":33},[45,1623,1624],{"class":47,"line":48},[45,1625,1626],{"class":165},"# Use callback_url instead of polling\n",[45,1628,1629,1631,1633],{"class":47,"line":59},[45,1630,172],{"class":55},[45,1632,110],{"class":51},[45,1634,177],{"class":55},[45,1636,1637,1639,1641,1643,1645],{"class":47,"line":67},[45,1638,183],{"class":51},[45,1640,134],{"class":84},[45,1642,188],{"class":77},[45,1644,191],{"class":84},[45,1646,137],{"class":55},[45,1648,1649,1651,1653],{"class":47,"line":74},[45,1650,200],{"class":199},[45,1652,110],{"class":51},[45,1654,205],{"class":55},[45,1656,1657,1659,1661],{"class":47,"line":88},[45,1658,211],{"class":199},[45,1660,110],{"class":51},[45,1662,216],{"class":55},[45,1664,1665,1667,1669,1671],{"class":47,"line":99},[45,1666,222],{"class":84},[45,1668,122],{"class":55},[45,1670,227],{"class":84},[45,1672,137],{"class":55},[45,1674,1675,1677,1679,1682],{"class":47,"line":104},[45,1676,235],{"class":84},[45,1678,122],{"class":55},[45,1680,1681],{"class":84},"\"A cat playing piano\"",[45,1683,137],{"class":55},[45,1685,1686,1689,1691],{"class":47,"line":116},[45,1687,1688],{"class":84},"        \"callback_url\"",[45,1690,122],{"class":55},[45,1692,1693],{"class":84},"\"https://yourapp.com/api/video-callback\"\n",[45,1695,1696],{"class":47,"line":140},[45,1697,285],{"class":55},[45,1699,1700],{"class":47,"line":151},[45,1701,291],{"class":55},[45,1703,1704],{"class":47,"line":157},[45,1705,1706],{"class":165},"# Your callback endpoint will receive the task result when complete\n",[19,1708,1710],{"id":1709},"openai-compatible","OpenAI-Compatible",[15,1712,1713,1714,735],{},"The API follows OpenAI-compatible conventions. You can use existing HTTP client libraries — just set the base URL to ",[31,1715,1716],{},"https://api.evolink.ai",[19,1718,1720],{"id":1719},"related","Related",[1722,1723,1724,1733,1740],"ul",{},[1725,1726,1727,1732],"li",{},[1728,1729,1731],"a",{"href":1730},"/docs/getting-started","Quick Start"," — Get up and running",[1725,1734,1735,1739],{},[1728,1736,1738],{"href":1737},"/docs/authentication","Authentication"," — API key setup",[1725,1741,1742,1746],{},[1728,1743,1745],{"href":1744},"/docs/video-generation","Video Generation API"," — Full parameter reference",[1748,1749,1750],"style",{},"html pre.shiki code .snl16, html code.shiki .snl16{--shiki-default:#F97583}html pre.shiki code .s95oV, html code.shiki .s95oV{--shiki-default:#E1E4E8}html pre.shiki code .sDLfK, html code.shiki .sDLfK{--shiki-default:#79B8FF}html pre.shiki code .sU2Wk, html code.shiki .sU2Wk{--shiki-default:#9ECBFF}html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}html pre.shiki code .s9osk, html code.shiki .s9osk{--shiki-default:#FFAB70}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .svObZ, html code.shiki .svObZ{--shiki-default:#B392F0}",{"title":33,"searchDepth":59,"depth":59,"links":1752},[1753,1754,1755,1756,1757,1758,1759,1760,1761,1762],{"id":21,"depth":59,"text":22},{"id":36,"depth":59,"text":37},{"id":589,"depth":59,"text":590},{"id":1122,"depth":59,"text":1123},{"id":1248,"depth":59,"text":1249},{"id":1360,"depth":59,"text":1361},{"id":1482,"depth":59,"text":1483},{"id":1615,"depth":59,"text":1616},{"id":1709,"depth":59,"text":1710},{"id":1719,"depth":59,"text":1720},"Code examples for integrating Seedance 2.0 API with Python, Node.js, Go, and cURL.","md",{},"/en/docs/sdks",{"title":5,"description":1763},"en/docs/sdks","EgnbwBVUuCMAe5JyruakK4lSLDLl3-SGzRSnD-ymwwQ",1775067557222]