Runway Image Animation API

Professional image animation with cinema-quality results

✓ Cinema quality

✓ 16:9/9:16

✓ Pro tools

✓ Motion control

Autentificaziun

Per acceder a Runway Image-to-Video API via l'API da Doitong, dovra tia clav d'API da Doitong. Includa quella en la mutaziun GraphQL u en ils headers da l'API REST.

Impurtant: Tegn tia clav d'API da Doitong segira e n'expona quella mai en il code dal client. Fa calls d'API adina nà da tes server backend.
// GraphQL Header
{
  "Authorization": "Bearer YOUR_API_KEY"
}

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

Start d'immediat

Cumenza cun Runway Image-to-Video API en be paucas minutas. Suonda quests simpels pass per generar tes emprim image to video.

Pass 1: Obtegn tia clav d'API

Registrescha in conto da Doitong e navighescha a tes dashboard per generar ina clav d'API.

Pass 2: Fa tia emprima dumonda

Dovra in dals exempels da code sutvart per far tes emprim call d'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-i2v",
        "input": {
          "image": "https://example.com/your-image.jpg"
        },
        "options": {
          "duration": 5,
          "motionIntensity": "medium"
        }
      }
    }
  }'
const response = await fetch('https://api.doitong.com/graphql', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer YOUR_API_KEY'
  },
  body: JSON.stringify({
    query: `
      mutation AnimateImage($input: ImageAnimationInput!) {
        animateImage(input: $input) {
          id
          status
          url
        }
      }
    `,
    variables: {
      input: {
        service: 'runway-i2v',
        imageUrl: 'https://example.com/your-image.jpg',
        duration: 5,
        motionIntensity: 'medium'
      }
    }
  })
});

const data = await response.json();
console.log('Animated Video:', data.data.animateImage);
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-i2v",
        "input": {
            "imageUrl": "https://example.com/your-image.jpg"
        },
        "options": {
            "duration": 5,
            "motionIntensity": "medium"
        }
    }
}

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-i2v",
    "input": {
      "imageUrl": "https://example.com/your-image.jpg"
    },
    "options": {
      "duration": 5,
      "motionIntensity": "medium",
      "version": "gen-4"
    }
  }
}

Pretschs

Runway Image-to-Video API utilisescha in model da pretschs basà sin credits. Ils credits vegnan consumads tenor la cumplexitad e la durada dal cuntegn generà.

Funcziun Credits Descripziun
Utilisaziun da basa 10-50 Credits Qualitad e durada standard
Utilisaziun premium 100-500 Credits Qualitad auta e funcziuns extendidas

Endpoints da l'API

Runway Image-to-Video API è disponibel via noss endpoint da GraphQL unifitgà.

Endpoint GraphQL

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

Endpoint REST

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

Parameters

Parameters disponibels per dumondas da Runway Image-to-Video API:

Parameter Tip Necessari Descripziun
service String Yes Identificader dal servetsch: "runway-i2v"
prompt String Yes Descripziun textual dal cuntegn da generar
duration Integer No Durada dal video en secundas (default: 5)
aspectRatio String No Format d'aspect: "16:9", "9:16", "1:1" (default: "16:9")
version String No Model version: "gen-2", "gen-3", "gen-4"
webhookUrl String No URL per retschaver notificaziuns da cumplettaziun

Format da la resposta

Tut las respostas da l'API suondan in format consistent:

Resposta d'ina reussida

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

Resposta cumplettada

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

Gestiun d'errors

L'API dovra codes da status HTTP standards e returna missis d'error detagliads.

Codes d'error communabels

Code da status Tip d'error Descripziun
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

Format da la resposta d'error

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

Webhooks

Reçave notificaziuns en temp real cur che la generaziun da tes image to video è cumplettada.

Configurar ils webhooks

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

Payload dal webhook

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

Segirezza dals webhooks

Tut las dumondas da webhooks includan in header da signatura per la verificaziun:

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

Limits da rata

Per garantir in'utilisaziun faira e la stabilitad dal sistem, s'applitgan ils suandants limits da rata:

Plan Dumondas/Minuta Jobs simultans Limit dadiari
Gratuit 10 1 100
Starter 30 3 1,000
Pro 60 10 10,000
Enterprise Persunalisà Persunalisà Illimità
Headers dals limits da rata: Controllescha ils headers da resposta per il status actual dal limit:
  • X-RateLimit-Limit: Maximum requests per window
  • X-RateLimit-Remaining: Requests remaining
  • X-RateLimit-Reset: Window reset timestamp

Best Practices

1. Optimisescha tes prompts

Scriva prompts clers e descriptivs per ils megliers resultats:

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

2. Gestescha il processament asincron

La generaziun è asincrona. Implementescha in polling u webhooks adequats:

// 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. Recunvengia d'errors

Implementescha ina logica da retry cun exponential backoff:

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. Monitorisescha il consum da credits

Controllescha tes consum da credits per evitar interrupziuns:

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

Pront per cumenzar?

S'uniescha a millis da sviluppaders che dovran Runway Image-to-Video API per crear cuntegn ustrius

Obtegnair la clav d'API Vair ils pretschs