- Fully generated C# SDK based on official Runway OpenAPI specification using AutoSDK
- Same day update to support new features
- Updated and supported automatically if there are no breaking changes
- All modern .NET features - nullability, trimming, NativeAOT, etc.
using Runway;
using var client = new RunwayClient(apiKey);
var response = await client.StartGenerating.CreateImageToVideoAsync(
xRunwayVersion: "2024-11-06",
request: new RequestGen3aTurbo
{
PromptImage = "https://example.com/photo.jpg",
PromptText = "The girl smiles a little",
Seed = 999999999,
Model = "gen3a_turbo",
Duration = 5,
Ratio = RequestGen3aTurboRatio.x1280_768,
});
// Poll until complete
Response taskDetail;
do
{
taskDetail = await client.TaskManagement.GetTasksByIdAsync(
id: response.Id,
xRunwayVersion: "2024-11-06");
await Task.Delay(TimeSpan.FromSeconds(10));
}
while (!taskDetail.IsFailed && !taskDetail.IsSucceeded && !taskDetail.IsCancelled);
foreach (var output in taskDetail.Succeeded!.Output)
{
Console.WriteLine($"Video URL: {output}");
}Choose from 48 preset voices including Maya, Arjun, Eleanor, Bernard, and more.
var response = await client.StartGenerating.CreateTextToSpeechAsync(
xRunwayVersion: "2024-11-06",
request: new RequestElevenMultilingualV2
{
PromptText = "Hello! Welcome to Runway's text-to-speech API.",
Voice = new RequestElevenMultilingualV2VoiceRunwayPresetVoice
{
PresetId = RequestElevenMultilingualV2VoiceRunwayPresetVoicePresetId.Maya,
},
});Generate sound effects from text descriptions (0.5–30 seconds, optional seamless looping).
var response = await client.StartGenerating.CreateSoundEffectAsync(
xRunwayVersion: "2024-11-06",
request: new RequestElevenTextToSoundV2
{
PromptText = "A thunderstorm with heavy rain and distant thunder rumbling",
Duration = 10.0,
Loop = false,
});Dub audio to a target language with automatic voice cloning.
var response = await client.StartGenerating.CreateVoiceDubbingAsync(
xRunwayVersion: "2024-11-06",
request: new RequestElevenVoiceDubbing
{
AudioUri = "https://example.com/audio.mp3",
TargetLang = RequestElevenVoiceDubbingTargetLang.Es,
DisableVoiceCloning = false,
DropBackgroundAudio = false,
});All generation APIs return async tasks. Check for failures with machine-readable error codes.
if (taskDetail.IsFailed)
{
Console.WriteLine($"Failure: {taskDetail.Failed!.Failure}");
Console.WriteLine($"Code: {taskDetail.Failed.FailureCode}");
}Priority place for bugs: https://github.com/tryAGI/Runway/issues
Priority place for ideas and general questions: https://github.com/tryAGI/Runway/discussions
Discord: https://discord.gg/Ca2xhfBf3v
This project is supported by JetBrains through the Open Source Support Program.
This project is supported by CodeRabbit through the Open Source Support Program.
