Runway Creative Suite

Профессиональная анимация изображений с моделями Gen-2, Gen-3 и Gen4. Результаты кинематографического качества.

✓ Модели Gen-2, Gen-3, Gen4

✓ Анимация изображений

✓ Управление движением

✓ HD-качество

Аутентификация

Чтобы получить доступ к Runway через Doitong API, используйте ваш API-ключ. Передавайте его в мутации GraphQL или в заголовках REST API.

Важно: Храните ваш API-ключ Doitong в безопасности и никогда не используйте его в клиентском коде. Всегда делайте вызовы API со своего бэкенд-сервера.
// GraphQL Header
{
  "Authorization": "Bearer YOUR_API_KEY"
}

// REST Header
"X-API-Key": "YOUR_API_KEY"

Быстрый старт

Начните работу с Runway Gen4 API всего за несколько минут. Следуйте этим простым шагам, чтобы создать свой первый text to video.

Шаг 1: Получите API-ключ

Зарегистрируйте аккаунт Doitong и перейдите в панель управления, чтобы создать API-ключ.

Шаг 2: Сделайте первый запрос

Используйте один из примеров кода ниже, чтобы выполнить свой первый вызов API.

curl -X POST https://api.doitong.com/graphql \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Idempotency-Key: unique-request-id-123" \
  -d '{
    "query": "mutation Generate($input: GenerateInput!) { generate(input: $input) { id status type provider url metadata creditCost } }",
    "variables": {
      "input": {
        "type": "VIDEO",
        "provider": "runway",
        "input": {
          "text": "A serene landscape with mountains and a lake at sunset"
        },
        "options": {
          "duration": 5,
          "aspectRatio": "16:9"
        }
      }
    }
  }'
const response = await fetch('https://api.doitong.com/graphql', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer YOUR_API_KEY',
    'Idempotency-Key': 'unique-request-id-123'
  },
  body: JSON.stringify({
    query: `
      mutation Generate($input: GenerateInput!) {
        generate(input: $input) {
          id
          status
          type
          provider
          url
          metadata
          creditCost
        }
      }
    `,
    variables: {
      input: {
        type: 'VIDEO',
        provider: 'runway',
        input: {
          text: 'A serene landscape with mountains and a lake at sunset'
        },
        options: {
          duration: 5,
          aspectRatio: '16:9'
        }
      }
    }
  })
});

const data = await response.json();
console.log('Result:', data.data.generate);
import requests
import json

url = "https://api.doitong.com/graphql"
headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer YOUR_API_KEY"
}

query = """
mutation Generate($input: GenerateInput!) {
  generate(input: $input) {
    id
    status
    type
    provider
    url
    metadata
    creditCost
  }
}
"""

variables = {
    "input": {
        "type": "VIDEO",
        "provider": "runway",
        "input": {
            "text": "A serene landscape with mountains and a lake at sunset"
        },
        "options": {
            "duration": 5,
            "aspectRatio": "16:9"
        }
    }
}

response = requests.post(url, json={
    "query": query,
    "variables": variables
}, headers=headers)

data = response.json()
print("Result:", data["data"]["generate"])
mutation Generate($input: GenerateInput!) {
  generate(input: $input) {
    id
    status
    type
    provider
    url
    metadata
    creditCost
    createdAt
  }
}

# Variables
{
  "input": {
    "type": "VIDEO",
    "provider": "runway",
    "input": {
      "text": "A serene landscape with mountains and a lake at sunset"
    },
    "options": {
      "duration": 5,
      "aspectRatio": "16:9",
      "version": "gen-4",
      "quality": "high"
    }
  }
}

Цены

Runway Gen4 API использует модель оплаты на основе кредитов. Кредиты списываются в зависимости от сложности и длительности создаваемого контента.

Функция Кредиты Описание
Стандартный режим 100-200 Кредиты Видео 5–10 секунд в стандартном качестве
Pro-режим 300-500 Кредиты Видео 5–10 секунд в профессиональном качестве

Эндпоинты API

Runway Gen4 API доступен через наш единый эндпоинт GraphQL.

Эндпоинт GraphQL

POST https://api.doitong.com/graphql

Эндпоинт REST

POST https://api.doitong.com/v1/text_to_video

Параметры

Доступные параметры для запросов Runway Gen4 API:

Параметр Тип Обязательно Описание
service Строка Yes Идентификатор сервиса: "runway"
prompt Строка Yes Текстовое описание того, что нужно создать
duration Целое число No Длительность видео в секундах (по умолчанию: 5)
aspectRatio Строка No Соотношение сторон: "16:9", "9:16", "1:1" (по умолчанию: "16:9")
version Строка No Model version: "gen-2", "gen-3", "gen-4"
webhookUrl Строка No URL для получения уведомлений о завершении

Формат ответа

Все ответы API имеют единый формат:

Успешный ответ

{
  "data": {
    "generatevideo": {
      "id": "abc123xyz",
      "status": "processing",
      "url": null,
      "webhookUrl": "https://your-webhook.com/callback",
      "createdAt": "2024-01-01T00:00:00Z"
    }
  }
}

Завершенный ответ

{
  "data": {
    "generatevideo": {
      "id": "abc123xyz",
      "status": "completed",
      "url": "https://cdn.doitong.com/outputs/abc123xyz.mp4",
      "duration": 5,
      "createdAt": "2024-01-01T00:00:00Z"
    }
  }
}

Обработка ошибок

API использует стандартные коды состояния HTTP и возвращает подробные сообщения об ошибках.

Распространенные коды ошибок

Код состояния Тип ошибки Описание
400 Bad Request Invalid parameters or malformed request
401 Unauthorized Missing or invalid API key
402 Payment Required Insufficient credits
429 Too Many Requests Rate limit exceeded
500 Internal Server Error Server error, please retry

Формат ответа с ошибкой

{
  "errors": [
    {
      "message": "Insufficient credits for this operation",
      "extensions": {
        "code": "INSUFFICIENT_CREDITS",
        "creditsRequired": 100,
        "creditsAvailable": 50
      }
    }
  ]
}

Вебхуки

Получайте уведомления в реальном времени, когда генерация text to video будет завершена.

Настройка вебхуков

Include a <code>webhookUrl</code> parameter in your request to receive a POST notification when processing is complete.

Данные вебхука

{
  "id": "abc123xyz",
  "status": "completed",
  "url": "https://cdn.doitong.com/outputs/abc123xyz.mp4",
  "service": "runway",
  "createdAt": "2024-01-01T00:00:00Z",
  "completedAt": "2024-01-01T00:01:00Z",
  "metadata": {
    "duration": 5,
    "width": 1920,
    "height": 1080
  }
}

Безопасность вебхуков

Все запросы вебхуков содержат заголовок с подписью для проверки:

X-Doitong-Signature: sha256=abc123...

Лимиты запросов

Для обеспечения стабильности системы и честного использования действуют следующие лимиты:

Тариф Запросов в минуту Параллельные задачи Дневной лимит
Бесплатно 10 1 100
Starter 30 3 1,000
Pro 60 10 10,000
Enterprise Индивидуальный Индивидуальный Безлимитно
Заголовки лимитов: Проверяйте заголовки ответов для получения информации о текущих лимитах:
  • X-RateLimit-Limit: Maximum requests per window
  • X-RateLimit-Remaining: Requests remaining
  • X-RateLimit-Reset: Window reset timestamp

Рекомендации

1. Оптимизируйте промпты

Пишите четкие и подробные промпты для достижения лучших результатов:

  • Be specific about visual elements, style, and mood
  • Include details about lighting, camera angles, and composition
  • Avoid contradictory or impossible requests

2. Обрабатывайте асинхронные процессы

Генерация происходит асинхронно. Используйте поллинг или вебхуки:

// Polling example
async function pollStatus(jobId) {
  let status = 'processing';
  while (status === 'processing') {
    await sleep(2000); // Wait 2 seconds
    const result = await checkJobStatus(jobId);
    status = result.status;
  }
  return result;
}

3. Восстановление после ошибок

Реализуйте логику повторных попыток с экспоненциальной задержкой:

async function retryWithBackoff(fn, maxRetries = 3) {
  for (let i = 0; i < maxRetries; i++) {
    try {
      return await fn();
    } catch (error) {
      if (i === maxRetries - 1) throw error;
      await sleep(Math.pow(2, i) * 1000);
    }
  }
}

4. Контролируйте расход кредитов

Отслеживайте потребление кредитов, чтобы избежать перерывов в работе:

  • Check credit balance before large batch operations
  • Set up alerts for low credit thresholds
  • Implement credit-aware request queuing

Готовы начать?

Присоединяйтесь к тысячам разработчиков, использующих Runway Gen4 API для создания потрясающего контента

Получить API-ключ Посмотреть цены