curl --request GET \
--url https://api.evolink.ai/v1/tasks/{task_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.evolink.ai/v1/tasks/{task_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.evolink.ai/v1/tasks/{task_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.evolink.ai/v1/tasks/{task_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.evolink.ai/v1/tasks/{task_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.evolink.ai/v1/tasks/{task_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.evolink.ai/v1/tasks/{task_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"created": 1788436500,
"duration": 30,
"id": "task-unified-1788436500-yscib7uw",
"model": "gemini-3-pro-image-preview",
"object": "image.generation.task",
"progress": 100,
"result_data": [
{
"url": "http://example.com/image.jpg"
}
],
"results": [
"http://example.com/image.jpg"
],
"status": "completed",
"task_info": {
"can_cancel": false
},
"type": "image",
"usage": {
"cost": {
"credits": 10,
"usd": 0.148,
"cny": 1
},
"credits_used": 10
}
}{
"error": {
"code": "unauthorized",
"message": "Invalid API key (request id: 20260908103000123456789abcdef)",
"param": null,
"type": "authentication_error"
}
}{
"error": {
"code": "user_disabled",
"message": "Your account has been disabled (request id: 20260908103000123456789abcdef)",
"param": null,
"type": "invalid_request_error"
}
}{
"error": {
"message": "Task not found",
"type": "invalid_request_error",
"param": "",
"code": "task_not_found"
}
}{
"error": {
"code": "rate_limit_exceeded",
"message": "You have reached the request limit: max 60 requests per 1 minutes. Retry after 30 seconds. (request id: 20260908103000123456789abcdef)",
"param": null,
"retry_after": 30,
"retryable": true,
"type": "rate_limit_error"
}
}{
"error": {
"message": "Failed to get task status",
"type": "api_error",
"param": "",
"code": "internal_error"
}
}Aufgabenstatus abfragen
Status, Fortschritt und Ergebnisinformationen asynchroner Aufgaben anhand der Aufgaben-ID abfragen
curl --request GET \
--url https://api.evolink.ai/v1/tasks/{task_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.evolink.ai/v1/tasks/{task_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.evolink.ai/v1/tasks/{task_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.evolink.ai/v1/tasks/{task_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.evolink.ai/v1/tasks/{task_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.evolink.ai/v1/tasks/{task_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.evolink.ai/v1/tasks/{task_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"created": 1788436500,
"duration": 30,
"id": "task-unified-1788436500-yscib7uw",
"model": "gemini-3-pro-image-preview",
"object": "image.generation.task",
"progress": 100,
"result_data": [
{
"url": "http://example.com/image.jpg"
}
],
"results": [
"http://example.com/image.jpg"
],
"status": "completed",
"task_info": {
"can_cancel": false
},
"type": "image",
"usage": {
"cost": {
"credits": 10,
"usd": 0.148,
"cny": 1
},
"credits_used": 10
}
}{
"error": {
"code": "unauthorized",
"message": "Invalid API key (request id: 20260908103000123456789abcdef)",
"param": null,
"type": "authentication_error"
}
}{
"error": {
"code": "user_disabled",
"message": "Your account has been disabled (request id: 20260908103000123456789abcdef)",
"param": null,
"type": "invalid_request_error"
}
}{
"error": {
"message": "Task not found",
"type": "invalid_request_error",
"param": "",
"code": "task_not_found"
}
}{
"error": {
"code": "rate_limit_exceeded",
"message": "You have reached the request limit: max 60 requests per 1 minutes. Retry after 30 seconds. (request id: 20260908103000123456789abcdef)",
"param": null,
"retry_after": 30,
"retryable": true,
"type": "rate_limit_error"
}
}{
"error": {
"message": "Failed to get task status",
"type": "api_error",
"param": "",
"code": "internal_error"
}
}Autorisierungen
##Alle APIs erfordern Bearer-Token-Authentifizierung##
API-Schlüssel erhalten:
Besuchen Sie die API-Schlüsselverwaltungsseite, um Ihren API-Schlüssel zu erhalten
Zum Anfrage-Header hinzufügen:
Authorization: Bearer YOUR_API_KEY
Pfadparameter
Aufgaben-ID, ignorieren Sie {} bei der Abfrage, hängen Sie die ID aus dem Antworttext der asynchronen Aufgabe am Ende des Pfades an
Antwort
Details zum Aufgabenstatus
Zeitstempel der Aufgabenerstellung
1756817821
Aufgaben-ID
"task-unified-1756817821-4x3rx6ny"
Verwendetes Modell
"gemini-3-pro-image-preview"
Aufgabentyp
image.generation.task, video.generation.task, audio.generation.task "image.generation.task"
Aufgabenfortschritt in Prozent
0 <= x <= 100100
Aufgabenstatus. Hinweis: Solange die Aufgabe upstream noch wartet, meldet die Abfrage-API bereits "processing"; Clients sehen daher normalerweise nur processing / completed / failed.
pending, processing, completed, failed "completed"
Aufgabentyp
image, video, audio, text "image"
Aufgabendauer in Sekunden. Nur vorhanden, wenn status "completed" oder "failed" ist.
30
Tatsächliche Länge des generierten Videos in Sekunden. Nur bei einigen Videomodellen (z. B. Kling) im Endzustand vorhanden.
5
Frist für die Konvertierung in ein finales Video (UTC, RFC 3339). Wird nur für Seedance-2.5-Entwürfe (mit draft: true erstellt) im Status completed zurückgegeben. Nach diesem Zeitpunkt ist eine Konvertierung mit Seedance 2.5 Draft-to-Video nicht mehr möglich
"2026-09-23T17:19:36Z"
ID der Entwurfsaufgabe, aus der dieses finale Video konvertiert wurde. Wird nur für Seedance-2.5-Draft-to-Video-Aufgaben zurückgegeben
"task-unified-1774857405-abc123"
Liste der Ergebnis-URLs. Nur vorhanden, wenn status "completed" ist und das Modell URL-Ergebnisse liefert; andernfalls fehlt das Feld.
["http://example.com/image.jpg"]
Modellspezifisches vollständiges Ergebnisobjekt. Bei Bildmodellen ein Array von Objekten wie [{"url": ...}] (dieselben URLs wie in results); einige Modelle liefern umfangreichere Objekte (z. B. Song-Objekte bei Suno). Fehlt, wenn das Modell kein strukturiertes Ergebnis hat.
[{ "url": "http://example.com/image.jpg" }]
Nutzungs- und Abrechnungsinformationen. Nur vorhanden, wenn status "completed" ist. Enthält immer credits_used und cost; Token-Felder erscheinen nur bei tokenbasiert abgerechneten Modellen (z. B. gpt-image-2). Einige Modelle liefern weitere modellspezifische Felder.
Show child attributes
Show child attributes
Fehlerinformationen bei fehlgeschlagener Aufgabe (nur vorhanden, wenn status "failed" ist). Hinweis: error.code ist hier ein Geschäftsfehlercode vom Typ String und unterscheidet sich von HTTP-Statuscodes. Die vollständige Liste finden Sie in der Fehlercode-Referenz.
Show child attributes
Show child attributes
Detaillierte Aufgabeninformationen
Show child attributes
Show child attributes
Midjourney V7 variation / pan / outpaint: prompt ist optional. Fehlende, leere oder nur aus Leerzeichen bzw. kontrollierten Geschwindigkeits-/Versionsparametern bestehende Prompts verwenden immer Fast zum Fast-Preis, auch bei speed=turbo. Mit nicht leerem Prompt verwenden fehlende Geschwindigkeit oder fast den Fast-Modus; turbo kostet das Doppelte. Playground bietet nur Fast. Die Quellaufgabe muss abgeschlossen sein und dem aktuellen Benutzer gehören; ohne Prompt werden Bilderzeugung und unterstützte Variation-, Pan- und Outpaint-Ergebnisse akzeptiert. Historical tasks retain their recorded execution speed and billing.
draft, fast, turbo