> ## Documentation Index
> Fetch the complete documentation index at: https://veniceai-feat-models-redesign.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Ovi API

> Ovi API on Venice: image to video, 5s clips, from $0.044 per second. Private, with zero data retention. Generates audio. Pricing, specs and code examples.

export const HubMount = ({view, children, ...props}) => {
  const [hub, setHub] = useState(null);
  const [failed, setFailed] = useState(false);
  useEffect(() => {
    let alive = true;
    const w = window;
    if (!w.__veniceModelHub) {
      const urls = w.location.hostname === 'localhost' ? ['http://localhost:3333/data/model-hub.bundle.json', '/data/model-hub.bundle.json'] : ['/data/model-hub.bundle.json'];
      const load = i => fetch(urls[i], {
        cache: 'no-cache'
      }).then(res => {
        if (!res.ok) throw new Error(`bundle ${res.status}`);
        return res.json();
      }).catch(err => i + 1 < urls.length ? load(i + 1) : Promise.reject(err));
      const Frag = <></>.type;
      const h = (type, props, ...kids) => {
        const T = type;
        const {key, ...rest} = props || ({});
        if (!kids.length) return <T key={key} {...rest} />;
        if (kids.length === 1) return <T key={key} {...rest}>{kids[0]}</T>;
        return <T key={key} {...rest}>{kids.map((kid, i) => <Frag key={i}>{kid}</Frag>)}</T>;
      };
      w.__veniceModelHub = load(0).then(bundle => new Function(`return (${bundle.code})`)()({
        h,
        Fragment: Frag,
        useState,
        useEffect,
        useRef,
        useMemo,
        useCallback
      }));
    }
    w.__veniceModelHub.then(instance => {
      if (alive) setHub(instance);
    }).catch(() => {
      w.__veniceModelHub = null;
      if (alive) setFailed(true);
    });
    return () => {
      alive = false;
    };
  }, []);
  const View = hub ? hub[view] : null;
  if (View) return <View {...props}>{children}</View>;
  if (failed) {
    return <div className="vx-mount is-failed">
        <p className="vx-mount-note">The interactive model catalog could not load. The full data is below.</p>
        {children}
      </div>;
  }
  return <div className="vx-mount" aria-busy="true">
      <div className="vx-mount-skeleton" aria-hidden="true"><span /><span /><span /></div>
      <div className="vx-mount-source">{children}</div>
    </div>;
};

<HubMount view="ModelPage" data={{"family":{"slug":"ovi","name":"Ovi","modality":"video","task":"video","provider":"characterai","primary":"ovi-image-to-video","variants":["ovi-image-to-video"],"created":1758825748,"updated":1758825748,"privacy":["private"],"uncensored":true,"openWeights":true,"sets":["uncensored","audio","open_source"],"modes":["i2v"]},"models":[{"id":"ovi-image-to-video","name":"Ovi","type":"video","modality":"video","task":"video","variant":"i2v","provider":"characterai","created":1758825748,"source":"https://huggingface.co/chetwinlow1/Ovi","privacy":"private","uncensored":true,"sets":["uncensored","audio","open_source"],"openWeights":true,"video":{"mode":"i2v","durations":[{"value":"5s","seconds":5}],"audio":"native","inputs":{"image":true}},"pricing":{"status":"quoted","quotedAt":"2026-09-28T23:22:18.122Z","quotes":{"-|5s|on":0.22},"perSecond":{"-|on":0.044},"fromPerSecond":0.044,"toPerSecond":0.044},"headline":{"unit":"per second","basis":"lens"},"endpoints":[{"id":"video-queue","method":"POST","path":"/video/queue","name":"Queue generation","status":"stable","recommended":true},{"id":"video-retrieve","method":"POST","path":"/video/retrieve","name":"Retrieve result","status":"stable"},{"id":"video-quote","method":"POST","path":"/video/quote","name":"Quote price","status":"stable"}],"media":[{"prompt":"cinematic-landscape","type":"video","url":"https://venice.ai/samples/ovi/cinematic-landscape.mp4","title":"Cinematic landscape","caption":"Slow aerial drone shot gliding over a misty mountain valley at golden hour, sunlight piercing clouds onto a winding river, ancient pine forests on either side, ultra-smooth motion, professional color grading, atmospheric haze, 4K","date":"2026-08-10","page":"https://venice.ai/models/ovi"},{"prompt":"ocean-loop","type":"video","url":"https://venice.ai/samples/ovi/ocean-loop.mp4","title":"Seamless loop","caption":"Calm ocean waves rolling onto a black-sand beach at sunrise, golden light on wet sand, foam dissolving into the shore, a single silhouetted figure at the waterline, smooth continuous forward push, serene cinematic atmosphere","date":"2026-08-10","page":"https://venice.ai/models/ovi"},{"prompt":"urban-night","type":"video","url":"https://venice.ai/samples/ovi/urban-night.mp4","title":"Urban cinematic","caption":"A slow tracking shot through a rain-soaked Tokyo street at night, neon reflecting in puddles, steam rising from a food cart, a person with a translucent umbrella, shallow depth of field, teal-and-orange grade, smooth steady camera","date":"2026-08-10","page":"https://venice.ai/models/ovi"}],"family":"ovi"}],"related":{"similar":[{"slug":"kling-2-5-turbo-pro","name":"Kling 2.5 Turbo Pro","provider":"kling","modality":"video","privacy":["anonymized"],"created":1758825748,"headline":{"unit":"per second","basis":"lens"},"videoFrom":0.0775,"variants":2},{"slug":"veo-3-fast","name":"Veo 3 Fast","provider":"google","modality":"video","privacy":["anonymized"],"created":1758825748,"headline":{"unit":"per second","basis":"lens"},"videoFrom":0.11,"variants":2},{"slug":"veo-3-full-quality","name":"Veo 3 Full Quality","provider":"google","modality":"video","privacy":["anonymized"],"created":1758825748,"headline":{"unit":"per second","basis":"lens"},"videoFrom":0.22,"variants":2},{"slug":"wan-2-5-preview","name":"Wan 2.5 Preview","provider":"alibaba","modality":"video","privacy":["anonymized"],"created":1758825748,"headline":{"unit":"per second","basis":"lens"},"videoFrom":0.0555,"variants":2}],"versions":[]},"providers":{"characterai":{"slug":"characterai","name":"Character.AI","logo":"/images/icons/models/ovi.svg"},"kling":{"slug":"kling","name":"Kling AI","logo":"/images/icons/models/kling.svg"},"google":{"slug":"google","name":"Google","logo":"/images/icons/models/google.svg"},"alibaba":{"slug":"alibaba","name":"Alibaba Qwen","logo":"/images/icons/models/qwen.svg"}},"faq":[{"q":"How much does the Ovi API cost?","a":"From $0.044 to $0.044 per second of video, depending on resolution, duration and audio. A 5-second  clip with audio costs $0.22. Call `POST /video/quote` for the exact price before queueing. Prices are in USD and can be paid in DIEM at parity."},{"q":"What is the Ovi model ID?","a":"Use `ovi-image-to-video` as the `model` parameter."},{"q":"Is the Ovi API private?","a":"Ovi is private: requests run on infrastructure Venice controls with zero data retention, and prompts and outputs are never stored or used for training."},{"q":"What resolutions and durations does Ovi support?","a":"Durations: 5s. Audio: always generated."},{"q":"Which endpoint does the Ovi API use?","a":"Queue a job with `POST /video/queue`, then poll `/video/retrieve` for the result."}]}} />

<div className="vx-static">
  <Accordion title="Plain-text specification">
    # Ovi API

    Ovi is an image to video model by Character.AI, available on the Venice API as `ovi-image-to-video`. It runs privately, with zero data retention.

    ## Ovi API pricing

    | Model ID | Variant | Privacy | Price |
    | - | - | - | - |
    | `ovi-image-to-video` | Image to video | Private | from \$0.04 per second |

    ## Ovi specifications

    | Spec | Value |
    | - | - |
    | Provider | Character.AI |
    | Released | Sep 25, 2025 |
    | Privacy | Private |
    | Open weights | Yes |
    | Modes | image to video |
    | Durations | 5s |
    | Audio | Always generated |

    ## How to use the Ovi API

    Send requests to `POST https://api.venice.ai/api/v1/video/queue` with `"model": "ovi-image-to-video"` and your API key.

    ```bash theme={null}
    # 1. Queue the job (returns a queue_id)
    curl https://api.venice.ai/api/v1/video/queue \
      -H "Authorization: Bearer $VENICE_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "model": "ovi-image-to-video",
        "prompt": "Slow aerial drone shot over a misty mountain valley at golden hour",
        "duration": "5s",
        "image_url": "https://example.com/first-frame.jpg"
      }'

    # 2. Poll until the MP4 is ready
    curl https://api.venice.ai/api/v1/video/retrieve \
      -H "Authorization: Bearer $VENICE_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{ "model": "ovi-image-to-video", "queue_id": "<queue_id>" }' --output video.mp4
    ```

    ## Ovi API FAQ

    ### How much does the Ovi API cost?

    From $0.044 to $0.044 per second of video, depending on resolution, duration and audio. A 5-second  clip with audio costs \$0.22. Call `POST /video/quote` for the exact price before queueing. Prices are in USD and can be paid in DIEM at parity.

    ### What is the Ovi model ID?

    Use `ovi-image-to-video` as the `model` parameter.

    ### Is the Ovi API private?

    Ovi is private: requests run on infrastructure Venice controls with zero data retention, and prompts and outputs are never stored or used for training.

    ### What resolutions and durations does Ovi support?

    Durations: 5s. Audio: always generated.

    ### Which endpoint does the Ovi API use?

    Queue a job with `POST /video/queue`, then poll `/video/retrieve` for the result.

    ## Related models

    * [Kling 2.5 Turbo Pro API](/models/kling-2-5-turbo-pro): from \$0.08 per second
    * [Veo 3 Fast API](/models/veo-3-fast): from \$0.11 per second
    * [Veo 3 Full Quality API](/models/veo-3-full-quality): from \$0.22 per second
    * [Wan 2.5 Preview API](/models/wan-2-5-preview): from \$0.06 per second
  </Accordion>
</div>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.