REST API · Version 1.0

Nano Banana Video API

A powerful REST API to generate studio-quality AI videos programmatically — from a text prompt or an image — powered by Seedance 2.0, VEO 3.1 and Sora 2 VIP.

Lightning Fast

Avg. render time ~2.1 s. Seedance 2.0 delivers results in seconds.

3 AI Models

Seedance 2.0, VEO 3.1, and Sora 2 VIP. Choose by quality or speed.

Developer-First

Clean REST API, JSON responses, rate-limit headers, CORS enabled.

Base URL

API Endpoint
https://nanobananavideo.com/api/v1/

Quick Start

Generate your first AI video in under 60 seconds.

  1. 1

    Get your API Key

    Sign up or log in, then navigate to Dashboard → API to retrieve your nb_... key. An active API Plan (€59.99/mo) is required.

    Get API Key →
  2. 2

    Make your first request

    Send a POST request with your prompt and desired settings:

    cURL
    curl https://nanobananavideo.com/api/v1/text-to-video.php \
      -X POST \
      -H "Authorization: Bearer nb_YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "prompt": "A cinematic aerial shot of a golden beach at sunset",
        "resolution": "1080p",
        "duration": 5,
        "aspect_ratio": "16:9",
        "video_model": "seedance2"
      }'
  3. 3

    Receive your video

    The API returns a direct URL to your generated video:

    JSON Response 200 OK
    {
      "success": true,
      "video_id": "vid_a1b2c3d4e5f6",
      "video_url": "https://cdn.nanobananavideo.com/videos/vid_a1b2c3.mp4",
      "thumbnail_url": "https://cdn.nanobananavideo.com/thumbs/vid_a1b2c3.jpg",
      "credits_used": 7,
      "rate_limit": {
        "count": 1,
        "limit": 30,
        "remaining": 29,
        "reset_in_seconds": 1800
      }
    }

Available Endpoints

SDK Examples

generate.js
const API_KEY = process.env.NB_API_KEY;
const BASE_URL = 'https://nanobananavideo.com/api/v1';

async function generateVideo(prompt, options = {}) {
  const response = await fetch(`${BASE_URL}/text-to-video.php`, {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${API_KEY}`,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      prompt,
      resolution:     options.resolution    ?? '1080p',
      duration:       options.duration      ?? 5,
      aspect_ratio:   options.aspectRatio   ?? '16:9',
      motion_intensity: options.motion      ?? 'medium',
      video_model:    options.model         ?? 'seedance2',
    }),
  });

  const data = await response.json();
  if (!data.success) throw new Error(data.error);
  return data;
}

// Usage
const result = await generateVideo('Cinematic drone shot over Paris at golden hour', {
  resolution: '1080p',
  duration:   8,
  model:      'veo3',
});
console.log(result.video_url); // → https://cdn.nanobananavideo.com/...

What's Next?