跳至主要內容
指南
指南

快速入門

建立非同步任務並處理輪詢、完成、失敗及回呼。

RunAPI 使用任務進行非同步圖像、視頻、音頻及音樂生成。建立請求會快速返回;您的應用程式隨後對任務進行輪詢,或接收該端點 API 參考中列出的回呼事件。

建立任務

在目錄中選擇模型和端點,然後發送端點所需的輸入。此示例啟動一個 Flux 2 文字轉圖像任務:

SHELL
curl -X POST "https://runapi.ai/api/v1/flux_2/text_to_image" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Idempotency-Key: 8c8ba3c9-0ce0-4bbd-a9a7-bf59ab639286" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "flux-2-pro-text-to-image",
    "prompt": "A product photograph on a clean studio background"
  }'

已接受的非同步請求返回 202 Accepted 及任務識別碼:

JSON
{
  "id": "task_id",
  "status": "processing"
}

將 id 與您的應用程式記錄一起儲存。它是用於輪詢、支援及回呼對帳的穩定識別符。

傳入媒體輸入

Media Input Field 是承載媒體 URL 的請求欄位:名稱以 _url 或 _urls 結尾的頂層欄位(例如 image_url 或 image_urls)、video_list 每一項的 url,以及 kling_elements 每一項的 element_input_urls、element_input_video_urls 和 element_input_audio_urls。callback_url 是回呼投遞地址,不屬於 Media Input Field。每個 Media Input Field 的值可以是公開的 HTTPS URL,也可以是 data:<mime>;base64,<data> 格式的 data URI,單個 data URI 最大 10 MB。RunAPI 會將每個 data URI 儲存為一小時後過期的臨時 File Upload,並在 Task 中使用該 File Upload。無法儲存的 data URI 會傳回 422,錯誤碼為 invalid_media_input。

GPT Image 編輯端點的 source_image_urls 只接受 HTTPS URL。向這些端點傳送本機圖片時,請先建立 File Upload,再傳入傳回的 URL。

檔案超過 10 MB 時,請先透過 POST /api/v1/files 建立 File Upload,再傳入傳回的 URL。透過 multipart 或 URL 來源建立的 File Upload 最大支援 50 MB。File Upload URL 同樣會在一小時後過期,超過該時間後啟動的 Task 需要重新建立 File Upload。

SHELL
# For this model, non-PNG/JPEG input may return 409 depending on the selected service.
# If rejected, convert WebP/BMP/TIFF/GIF to PNG/JPEG or select a compatible service.
# Actual MIME determines support, even for a .png URL. Rejection happens before task creation or charging.
# This is not a format limit for every service. Existing Task queries remain available.
curl -X POST "https://runapi.ai/api/v1/seedream/decompose_layers" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"model":"seedream-5-pro-layer-decomposition","image_url":"https://cdn.runapi.ai/public/samples/image.png"}'

防止重複建立任務

任務建立端點接受一個可選的 Idempotency-Key 標頭,其值為最多 512 個字元的不透明字串。為每個邏輯任務生成一個值,並在確認請求是否已被接受之前隨請求一同保留。

若超時或連接失敗導致結果未知,請使用相同的金鑰重試完全相同的 Task 建立請求。RunAPI 將返回原始 Task,而非建立並收費一個新的。以不同的 Task 建立請求重複使用金鑰會返回 409 Conflict。為有意建立的新 Task 生成新金鑰,且不要將 X-Client-Request-Id 用作此金鑰。

恢復中斷的同步請求

緩慢的同步端點通常保持連線開放,並返回與之前相同的終止回應。現有整合無需更改輪詢方式。

如需刻意縮短連接預算,請發送 Prefer: wait=N。 若 Task 在明確預算到期後仍在執行,RunAPI 將回傳 202 Accepted,包含相同的 Task id、用於恢復的不透明 Location URL, 以及建議查詢延遲的 Retry-After。請完整遵循 Location,而非自行構建結果 URL。已完成的 Task 結果保留終止 HTTP 狀態、允許的標頭、內容類型及主體;請根據 response.content_type 解碼 response.body,後者並非總是 JSON。

輪詢任務

將任務識別碼附加至相同的端點路徑:

SHELL
curl "https://runapi.ai/api/v1/flux_2/text_to_image/task_id" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

當 status 為 processing 時繼續輪詢。請在 請求之間使用有限退避,而非持續輪詢。當任務狀態為 completed 或 failed 時,任務進入終態。

處理完成

completed 回應包含任務 id、終止 status、端點特定的結果欄位,以及該 Task 的 usage.cost(float USD)。請持久化所需的結果並停止輪詢。請參閱端點的 API 參考以獲取確切的結果結構,而非假設每個媒體端點均返回相同的欄位。

建立、processing 及 failed 的 Task envelope 不包含 usage。

需要按媒體資料進行最終結算的任務,在最終費用記錄完成前會維持 processing 狀態。完成回呼只會在結算完成後發送, 其 usage.cost 與後續任務查詢傳回的值一致。 缺少計費依據時,不會將費用回報為零: 在核對及補齊資料期間,任務會維持 processing 狀態。 已確認為零的費用會以 usage.cost: 0 傳回。

處理失敗

failed 回應包含任務 id、終止 status,以及 RunAPI 提供的 error(如有)。停止輪詢,記錄識別碼和錯誤,並僅在應用程式將失敗歸類為暫時性後才重試。重試將建立新的任務識別碼。

接收回呼

如需 RunAPI 傳送該端點所記錄的回呼事件,請在建立請求時新增公開的 HTTPS callback_url:

JSON
{
  "model": "flux-2-pro-text-to-image",
  "prompt": "A product photograph on a clean studio background",
  "callback_url": "https://your-domain.com/webhooks/runapi"
}

每個回呼主體對應端點 API 參考中的一個生命週期事件。completed 回呼與 completed 輪詢回應共享 usage.cost;建立、processing 及 failed 回呼不包含 usage。終止回呼包含與終止輪詢回應相同的結果欄位;部分端點亦會發送已記錄的 processing 回呼。請快速回傳成功的 HTTP 回應,並在交付延遲或您的回呼處理器不可用時,保持輪詢可用以進行核對。

閱讀回呼,了解如何建立回呼密鑰、驗證簽名及安全處理重試。

生成 Vidu Q4 視頻

將 POST /api/v1/vidu/image_to_video 與 model: "vidu-q4-image-to-video" 和 first_frame_image_url 一起使用。將 POST /api/v1/vidu/reference_to_video 與 model: "vidu-q4-reference-to-video"、非空 prompt 和 1–15 有序組合使用 reference_image_urls。在建立時使用 GET 檢索每個任務 /:id 所遵循的路徑。已完成的任務包含 videos 陣列 結果 URL。您也可以提供callback_url來完成 通知。

兩個端點都接受 3 到 16 之間的整數 duration_seconds,預設 5、540p、720p、1080p、2k 或 4k 中的 output_resolution, 預設720p。 audio 是一個 JSON 布林值,預設 true;明確的 false 停用產生的音訊。提示最多接受 20,000 個 字元。圖像到視頻提示是可選的,並且第一幀 決定其縱橫比。參考影片接受aspect_ratio 16:9、9:16、1:1、4:3、3:4,預設16:9,最多3個 reference_audio_urls。

使用公用 HTTP(S) 媒體 URL。圖片必須為 JPG/JPEG、PNG 或 WEBP; 第一幀影像不得大於 50 MB。每個參考音訊 檔案必須為 MP3,長度為 3-12 秒,且不大於 50 MB。 RunAPI 檢查欄位類型、URL 方案和參考計數。世代 提供者檢查遠端媒體格式、大小和音訊持續時間 異步地。無效媒體可能會導致任務失敗 正常故障和退款流程。