Recording that starts before the conversation does

Video calls your users can trust. Recorded from the first second.

VideoCallAPI is a video and audio calling API for developers. Add calls to your React app with HD video, studio-quality stereo audio and recording that never misses a moment.

  • 10,000 free minutes every month
  • No credit card
  • Pay $0.003/min after that
0 sunrecorded media in recorded calls
192 kbpsstereo audio on the Studio profile
443TURN over TLS for strict firewalls
10,000free participant-minutes a month
Why VideoCallAPI

Built for calls that matter

Telehealth consults, interviews, verification, sales and support calls: when a call has to be on record, the recording can't start late and the audio can't sound bad.

Zero-gap recording

Participants don't receive each other's audio or video until the recorder is running, so nothing is said off the record. Participants see a short "Preparing your call" screen while it starts.

Studio-quality stereo audio

Stereo Opus at 128 kbps by default, or 192 kbps with the Studio profile. Redundant audio (RED) protects against packet loss. Discontinuous transmission (DTX) is turned off, so quiet speech isn't clipped.

React SDK with hooks

Build your call screen with MeetingProvider, useMeeting and useParticipant. Chat, devices and recording controls are all hooks.

SD, HD or Full HD recordings

Choose the recording resolution for each account. Audio in recordings is always 48 kHz stereo AAC, and a dropped recording restarts automatically.

Works behind firewalls

Built-in TURN over TLS on port 443 lets calls connect on hospital, corporate and hotel networks that block UDP.

Signed webhooks

Session, participant and recording events are signed with RSA. Failed deliveries retry automatically and stay visible in your console.

How it works

Live in an afternoon

Create a free account

Sign up and create an API key in the console. No credit card is needed.

Sign a token on your server

Use your API key and secret to sign a short-lived JWT. Your secret never leaves your server.

Drop in the React SDK

Wrap your call screen in MeetingProvider and use useMeeting and useParticipant.

Go live

Watch live calls, usage and recordings in your console as they happen.

// npm i @videocallapi/react-sdk
import { MeetingProvider, useMeeting } from "@videocallapi/react-sdk";

export function Call({ roomId, token }) {
  return (
    <MeetingProvider
      token={token}
      config={{ meetingId: roomId, micEnabled: true,
                webcamEnabled: true, name: "Asha" }}
      joinWithoutUserInteraction
    >
      <Room />
    </MeetingProvider>
  );
}

function Room() {
  const { participants, leave } = useMeeting();
  // render a tile per participant…
}
Customer console

See every call as it happens

Your console shows live calls with each participant's audio quality, the full call history, recordings ready to play or download, usage against your plan, and every webhook delivery with its response.

# webhook: recording ready
POST https://your-app.com/webhooks/video
x-videocallapi-signature: MEUCIQ…

{
  "webhookType": "recording-stopped",
  "data": {
    "meetingId": "consult-1042",
    "fileUrl": "https://api.videocallapi.com/media/…"
  }
}
Use cases

One API, many kinds of call

Telehealth

Doctor–patient consults with a complete record and clear audio for diagnosis.

Interviews & hiring

Recorded interviews that your panel can review later, captured from the first question.

KYC & verification

Video verification calls with recordings for compliance audits.

Sales & support

One-to-one customer calls with call events sent straight to your CRM by webhook.

Online tutoring

Lessons with stereo audio, so music and language teaching sound right.

Legal & advisory

Client consultations where an incomplete recording isn't an option.

Marketplaces

Video consultations between buyers and experts, metered by the minute.

Internal tools

Stand-ups and walkthroughs inside your own product, with no third-party apps.

FAQ

Common questions

What does "recorded from the first second" mean?

When recording is required for a call, participants don't receive each other's media until the recorder has started. They see a "Preparing your call" screen for a few seconds instead. Nobody can be heard or seen before the recording is running. If the recorder stops partway through, media pauses again until it restarts.

What is a participant-minute?

One person connected to a call for one minute. A 30-minute call with 2 people uses 60 participant-minutes.

What's included in the free plan?

10,000 participant-minutes every month, up to 2 calls at the same time, and up to 4 people per call. Recording is available on the Pay-as-you-go plan and above.

Can I move an existing video app to VideoCallAPI?

Yes. Most apps built on a hooks-based React video SDK move over with small changes. Tell us what you use and we'll review your app and plan the switch with you.

Which platforms are supported?

The React SDK for web browsers today (Chrome, Edge, Firefox and Safari). Contact us if you need native mobile.

Start building with 10,000 free minutes

Create an account, get an API key and make your first call in minutes.