Applications web
Ajoutez la génération IA à votre application avec quelques lignes de code. Les helpers webhook gèrent la livraison asynchrone.
Claude visitors: new accounts receive $1.00 in bonus API credit within 30 days. One per person; usage credits only.
Clients avec sûreté des types pour Python, Node.js, Go, Ruby, Java et PHP. Interrogation des tâches asynchrones, assistants webhook et nouvelles tentatives automatiques intégrés.
npm install @runapi.ai/kling
npm
import { KlingClient } from "@runapi.ai/kling";
const client = new KlingClient({ apiKey: process.env.RUNAPI_API_KEY });
const task = await client.textToVideo.create({
"model": "kling-v3-turbo-text-to-video",
"prompt": "A paper kite flying above a quiet coastal town at sunrise",
"duration_seconds": 5,
"aspect_ratio": "16:9",
"output_resolution": "720p"
});
pip install runapi-kling
PyPI
import os
from runapi.kling import KlingClient
client = KlingClient(api_key=os.environ["RUNAPI_API_KEY"])
task = client.text_to_video.create(
model="kling-v3-turbo-text-to-video",
prompt="A paper kite flying above a quiet coastal town at sunrise",
duration_seconds=5,
aspect_ratio="16:9",
output_resolution="720p"
)
go get github.com/runapi-ai/kling-sdk/go@latest
Go modules
package main
import (
"context"
"log"
"os"
"github.com/runapi-ai/core-sdk/go/option"
kling "github.com/runapi-ai/kling-sdk/go/kling"
)
func main() {
client, err := kling.NewClient(option.WithAPIKey(os.Getenv("RUNAPI_API_KEY")))
if err != nil {
log.Fatal(err)
}
task, err := client.TextToVideo.Create(context.Background(), kling.TextToVideoParams{
Model: kling.TextToVideoModel("kling-v3-turbo-text-to-video"),
Prompt: "A paper kite flying above a quiet coastal town at sunrise",
DurationSeconds: 5,
AspectRatio: "16:9",
OutputResolution: kling.KlingTextToVideoOutputResolution("720p"),
})
if err != nil {
log.Fatal(err)
}
_ = task
}
gem install runapi-kling
RubyGems
require "runapi/kling"
client = RunApi::Kling::Client.new(api_key: ENV.fetch("RUNAPI_API_KEY"))
task = client.text_to_video.create(
model: "kling-v3-turbo-text-to-video",
prompt: "A paper kite flying above a quiet coastal town at sunrise",
duration_seconds: 5,
aspect_ratio: "16:9",
output_resolution: "720p"
)
implementation("ai.runapi:runapi-kling")
Maven
import ai.runapi.kling.KlingClient;
import ai.runapi.kling.types.TextToVideoParams;
import ai.runapi.core.polling.TaskCreateResponse;
public final class Example {
public static void main(String[] args) {
KlingClient client = KlingClient.builder()
.apiKey(System.getenv("RUNAPI_API_KEY"))
.build();
TaskCreateResponse task = client.textToVideo().create(
TextToVideoParams.builder()
.model("kling-v3-turbo-text-to-video")
.prompt("A paper kite flying above a quiet coastal town at sunrise")
.durationSeconds(5)
.aspectRatio("16:9")
.outputResolution("720p")
.build()
);
}
}
composer require runapi-ai/kling
Packagist
<?php
require __DIR__ . '/vendor/autoload.php';
use RunApi\Core\ClientOptions;
use RunApi\Kling\KlingClient;
$client = new KlingClient(new ClientOptions(apiKey: getenv('RUNAPI_API_KEY')));
$task = $client->textToVideo->create([
"model" => "kling-v3-turbo-text-to-video",
"prompt" => "A paper kite flying above a quiet coastal town at sunrise",
"duration_seconds" => 5,
"aspect_ratio" => "16:9",
"output_resolution" => "720p"
]);
Les SDK propres aux modèles partagent le même objet de tâche, l’authentification, la gestion des erreurs et les liens tarifaires.
import { KlingClient } from "@runapi.ai/kling";
const client = new KlingClient({ apiKey: process.env.RUNAPI_API_KEY });
const task = await client.textToVideo.create({
"model": "kling-v3-turbo-text-to-video",
"prompt": "A paper kite flying above a quiet coastal town at sunrise",
"duration_seconds": 5,
"aspect_ratio": "16:9",
"output_resolution": "720p"
});
import os
from runapi.kling import KlingClient
client = KlingClient(api_key=os.environ["RUNAPI_API_KEY"])
task = client.text_to_video.create(
model="kling-v3-turbo-text-to-video",
prompt="A paper kite flying above a quiet coastal town at sunrise",
duration_seconds=5,
aspect_ratio="16:9",
output_resolution="720p"
)
package main
import (
"context"
"log"
"os"
"github.com/runapi-ai/core-sdk/go/option"
kling "github.com/runapi-ai/kling-sdk/go/kling"
)
func main() {
client, err := kling.NewClient(option.WithAPIKey(os.Getenv("RUNAPI_API_KEY")))
if err != nil {
log.Fatal(err)
}
task, err := client.TextToVideo.Create(context.Background(), kling.TextToVideoParams{
Model: kling.TextToVideoModel("kling-v3-turbo-text-to-video"),
Prompt: "A paper kite flying above a quiet coastal town at sunrise",
DurationSeconds: 5,
AspectRatio: "16:9",
OutputResolution: kling.KlingTextToVideoOutputResolution("720p"),
})
if err != nil {
log.Fatal(err)
}
_ = task
}
require "runapi/kling"
client = RunApi::Kling::Client.new(api_key: ENV.fetch("RUNAPI_API_KEY"))
task = client.text_to_video.create(
model: "kling-v3-turbo-text-to-video",
prompt: "A paper kite flying above a quiet coastal town at sunrise",
duration_seconds: 5,
aspect_ratio: "16:9",
output_resolution: "720p"
)
import ai.runapi.kling.KlingClient;
import ai.runapi.kling.types.TextToVideoParams;
import ai.runapi.core.polling.TaskCreateResponse;
public final class Example {
public static void main(String[] args) {
KlingClient client = KlingClient.builder()
.apiKey(System.getenv("RUNAPI_API_KEY"))
.build();
TaskCreateResponse task = client.textToVideo().create(
TextToVideoParams.builder()
.model("kling-v3-turbo-text-to-video")
.prompt("A paper kite flying above a quiet coastal town at sunrise")
.durationSeconds(5)
.aspectRatio("16:9")
.outputResolution("720p")
.build()
);
}
}
<?php
require __DIR__ . '/vendor/autoload.php';
use RunApi\Core\ClientOptions;
use RunApi\Kling\KlingClient;
$client = new KlingClient(new ClientOptions(apiKey: getenv('RUNAPI_API_KEY')));
$task = $client->textToVideo->create([
"model" => "kling-v3-turbo-text-to-video",
"prompt" => "A paper kite flying above a quiet coastal town at sunrise",
"duration_seconds" => 5,
"aspect_ratio" => "16:9",
"output_resolution" => "720p"
]);
Ajoutez la génération IA à votre application avec quelques lignes de code. Les helpers webhook gèrent la livraison asynchrone.
Traitez les demandes de génération à grande échelle. Les nouvelles tentatives et la limitation de débit intégrées rendent votre service fiable.
Générez des données d'entraînement, enrichissez des jeux de données ou créez des médias synthétiques dans votre pipeline ML.
Remplacement direct. Changez l’URL de base et conservez votre code existant.
Des types TypeScript et Python pour chaque modèle, endpoint et paramètre.
Prise en charge native d’async/await et du streaming SSE dans tous les langages compatibles.
RunAPI maintient des SDK propres aux modèles pour Python, Node.js, PHP, Java, Ruby et Go. Les packages PHP sont publiés sur Packagist et peuvent être installés avec Composer. Chaque package cible une famille de modèles, tandis que l’API REST reste disponible pour Elixir, .NET et tout environnement capable d’envoyer des requêtes HTTPS.
Les packages propres aux modèles limitent les dépendances applicatives et clarifient les champs de requête. Une application vidéo peut installer Kling ou Seedance, une application musicale Suno, et un backend multimodal peut ajouter des packages à mesure que de nouveaux workflows arrivent.
Le contrat exporté actuel couvre 251 identifiants publics de modèles et 132 opérations de requête. Il est généré à partir du catalogue RunAPI et maintient la cohérence des exemples SDK, des métadonnées CLI et de la documentation API.
Non. Les appels SDK utilisent la même clé API RunAPI que REST, la CLI, MCP et les compétences d’agents. Stockez-la dans RUNAPI_API_KEY ou transmettez-la via le gestionnaire de secrets de votre déploiement plutôt que de l’inscrire en dur dans le code source.
Oui. Les tâches créées via le SDK suivent le même cycle de vie que les requêtes REST. Vous pouvez interroger leur état depuis un worker ou configurer un callback pour que RunAPI envoie à votre backend les données finales de la tâche.
Consultez le catalogue de modèles et la page tarifaire avant d’intégrer un modèle. La documentation SDK renvoie aux pages des modèles pour vérifier l’unité de facturation actuelle, la structure des endpoints et les identifiants compatibles sans copier les prix dans le code.
Nous vous aidons pour la mise en place entreprise, les intégrations et les questions techniques.