Daily delivers best-in-industry call reliability at industry-leading <200ms latency. Host larger sessions with more features, without compromising on call quality.
100K
real-time active participants
13
millisecond median
first-hop latency
Flo Crivello, CEO @ Teamflow
Sasha Varlomov, CEO @ Coding Rooms
Darren Buckner, CEO @ Workfrom
Get higher quality with Daily’s next-gen Global Mesh. Our calls are built with automatic bandwidth management to optimize for real-world network conditions. Plus use our APIs to configure simulcast and peer-to-peer bandwidth targets for specific use cases.
Build custom video UIs with our core SDKs. Or integrate Daily Prebuilt, a fully supported, hosted video call component. Get more features for your use case, like HD recording, live transcription, and HIPAA support.
Daily supports more video publishers than any other API. And with Daily’s Video Component System (VCS) toolkit you can build a broadcast studio in the cloud for your recordings and real-time streams.
Daily support is faster, more responsive, and free to every developer. We invest in resources like high quality developer docs, and offer enterprise add-ons and SLAs to support your company at scale.
Features | ||
Max. participants per call | 15,000 with 2 active | 100,000 real-time active |
Max. participants per call | 55 | 1,000 |
Global Mesh Network | No | Yes |
Cross-platform Adaptive HEVC | No | Yes |
Free minutes included | 2,000 | 10,000 |
Max. concurrent rooms | 2,000 | Unlimited |
Advanced firewall control (TURN) | Additional charge | Always included |
Encrypted recording | Additional charge | Always included |
IP whitelisting | Additional charge | Always included |
Pricing | ||
Group video call | $0.00395 flat rate | $0.0015–$0.004 + automatic volume discounts |
Recording HD recording Full HD recording | $0.0125–$0.045 $0.035 $0.045 | $0.01349 for composited Full HD video |
Composition | $0.055 per session minute | Free Full HD by default |
Interactive Live Stream / Interactive Broadcast | $0.00395 flat rate | $0.0012 + automatic volume discounts |
Support | Chat support sometimes free | Free support Email and chat |
It ended up taking less time for our team to fully integrate a functional solution with Daily than it took to parse through the documentation of some of the competitors.
Zach Jordan, CEO of Easy EMDR
<script src="https://unpkg.com/@daily-co/daily-js"></script>
<script>
callFrame = window.DailyIframe.createFrame();
callFrame.join({ url: 'https://you.daily.co/hello' });
</script>
val call = CallClient(applicationContext)
call.addListener(object: CallClientListener {
override fun onParticipantJoined(participant: Participant) {
Log.d(TAG, "Participant ${participant.id} joined the call on Android!")
showParticipant(participant)
}
}
call.addListener(object: CallClientListener {
override fun onCallStateUpdated(state: CallState) {
showUIForCallState(state);
}
}
const call = DailyIframe.createCallObject();
await call.setNetworkTopology({ topology: 'sfu' });
await call.setNetworkTopology({ topology: 'peer' });
curl --request POST \
--url https://api.staging.daily.co/v1/rooms/ROOM-NAME\
--header 'Authorization: Bearer TOKEN' \
--header 'Content-Type: application/json' \
--data '{"properties": {"enable_mesh_sfu":true,"enable_terse_logging":true,"enable_hidden_participants":true,"owner_only_broadcast":true,"experimental_optimize_large_calls":true}}'
const call = DailyIframe.createCallObject();
const roomURL = 'DAILY_ROOM_URL';
const token = 'DAILY_MEETING_TOKEN';
const rtmpURL = 'RTMP_URL';
await call.join({
url: roomURL,
token,
});
callFrame.startLiveStreaming({ rtmpUrl });