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
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.
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… }
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/…" } }
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.
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.