Developer API

API Integration

Integrate rtAV directly into your applications with full control over the experience. OpenAI Realtime API compatible with real-time video avatar output.

Powerful API Features

Everything you need to build custom AI video experiences

🔌

OpenAI Compatible

Drop-in replacement for OpenAI Realtime API. Use existing SDKs and code with minimal changes.

🎮

Full Control

Complete control over the experience. Customize every aspect of the conversation and video output.

âš¡

Low Latency

Optimized for real-time interaction with low end-to-end latency. GPU-accelerated processing.

🎭

Video Avatars

Real-time video avatar generation with custom faces and voices. Synchronized with audio output.

🔒

Secure

API key authentication with rate limiting. Enterprise-grade security and reliability.

📚

Well Documented

Comprehensive documentation with examples in multiple languages. Active community support.

Integration Options

Choose the integration method that best fits your application

WebSocket API

Real-time bidirectional communication via WebSocket. Perfect for chat applications and interactive experiences.

// Connect to rtAV WebSocket
const ws = new WebSocket('wss://api.rtav.io/v1/realtime', {
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY'
  }
});

ws.onopen = () => {
  // Send session configuration
  ws.send(JSON.stringify({
    type: 'session.update',
    session: {
      model: 'gpt-5.2',
      instructions: 'You are a helpful assistant.',
      voice: 'default'
    }
  }));
};

ws.onmessage = (event) => {
  const data = JSON.parse(event.data);
  // Handle responses, audio, video events
};

WebRTC API

Direct WebRTC connection for lowest latency. Ideal for video-first applications and custom UIs.

// Create WebRTC call
const response = await fetch('https://api.rtav.io/v1/realtime/calls', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'multipart/form-data'
  },
  body: formData // Contains SDP offer and session config
});

const { sdp, video_url } = await response.json();

// Set remote description and handle video stream
const pc = new RTCPeerConnection();
await pc.setRemoteDescription(new RTCSessionDescription({ type: 'answer', sdp }));
// Handle video stream from video_url

REST API

HTTP endpoints for session management, asset uploads, and configuration. Use for backend integration.

// Create a session
const response = await fetch('https://api.rtav.io/v1/realtime/sessions', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    model: 'gpt-5.2',
    instructions: 'You are a helpful assistant.',
    voice: 'default',
    face_id: 'your-face-id'
  })
});

const session = await response.json();

Use Cases

Build powerful applications with rtAV API

Custom Chat Applications

Build your own chat interface with full control over UI/UX and conversation flow.

Video Conferencing

Integrate video avatars into existing video conferencing platforms and tools.

Gaming & Entertainment

Create interactive NPCs and characters with dynamic conversations and video output.

Customer Support

Build custom support systems with video avatars that match your brand perfectly.

Education Platforms

Create AI tutors and educational assistants with engaging video presentations.

Enterprise Applications

Integrate into existing enterprise systems with custom workflows and authentication.

Quick Start

Get started with rtAV API in minutes

1. Get Your API Key

Sign up at platform.rtav.io and get your API key from the dashboard.

Sign Up Free

2. Make Your First Request

Use the WebSocket or WebRTC API to start a conversation.

// Example: WebSocket connection
const ws = new WebSocket('wss://api.rtav.io/v1/realtime', {
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY'
  }
});

ws.onopen = () => {
  ws.send(JSON.stringify({
    type: 'session.update',
    session: {
      model: 'gpt-5.2',
      instructions: 'You are a helpful assistant.'
    }
  }));
};

3. Handle Responses

Process audio, video, and text responses from the API.

ws.onmessage = (event) => {
  const data = JSON.parse(event.data);
  
  if (data.type === 'response.audio.delta') {
    // Handle audio chunks
    playAudio(data.delta);
  }
  
  if (data.type === 'response.video') {
    // Handle video URL
    displayVideo(data.video_url);
  }
  
  if (data.type === 'response.text.delta') {
    // Handle text chunks
    appendText(data.delta);
  }
};

Ready to Build with rtAV API?

Get started with 10 free minutes. No credit card required.