Skip to content

GetTaskStatus

This example assumes using Runway; is in scope and apiKey contains your Runway API key.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
using var client = new RunwayClient(apiKey);

// Replace with an actual task ID from a previous generation
var taskId = Guid.Parse("00000000-0000-0000-0000-000000000000");

GetTasksResponse taskDetail = await client.TaskManagement.GetTasksByIdAsync(
    id: taskId,
    xRunwayVersion: "2024-11-06");

if (taskDetail.IsPending)
{
    Console.WriteLine($"Task {taskDetail.Pending!.Id} is pending.");
    Console.WriteLine($"Created at: {taskDetail.Pending.CreatedAt}");
}
else if (taskDetail.IsRunning)
{
    Console.WriteLine($"Task {taskDetail.Running!.Id} is running.");
    Console.WriteLine($"Progress: {taskDetail.Running.Progress}");
}
else if (taskDetail.IsSucceeded)
{
    Console.WriteLine($"Task {taskDetail.Succeeded!.Id} succeeded.");

    foreach (var output in taskDetail.Succeeded.Output)
    {
        Console.WriteLine($"Output URL: {output}");
    }
}
else if (taskDetail.IsFailed)
{
    Console.WriteLine($"Task {taskDetail.Failed!.Id} failed.");
    Console.WriteLine($"Failure: {taskDetail.Failed.Failure}");
    Console.WriteLine($"Failure code: {taskDetail.Failed.FailureCode}");
}
else if (taskDetail.IsCancelled)
{
    Console.WriteLine($"Task {taskDetail.Cancelled!.Id} was cancelled.");
}