Understanding video chat APIs: low-level APIs and new approaches

The pros and cons of different API designs

Should your team build new functionality internally, or use an API? “Build or buy” is the refrain. For video chat APIs, you also have the choice of whether to use a traditional, low-level API, or a newer API that gives you more features and a prebuilt user interface. 

To update the question, should your team:

  • Build video calling from scratch yourself
  • Build on top of a low-level API
  • Or use a full-featured API?

In this blog post, we’ll first touch base on what an API is, and how it works. Then we’ll get into the differences between a low-level API versus a higher level, full-featured API. 

In a follow-up piece, we look at the specific technology challenges involved with video calls — like browser complexity, browser versioning, bandwidth management, UI design, infrastructure and more. How you want to address these factors helps determined what video chat API is right for your product and roadmap. If you’re already familiar with API design, you can skip right to that blog post:  “Choosing a video chat API: 5 key considerations.”

Or read on below, so you have the full context of what an API is, and what’s a low-level API versus more full-featured API.

What's an API, and why use it? 

An API lets you add features and functionality to your product or app. (The term stands for “Application Programming Interface,” but typically you’ll see it referred to as “API.”)

An API is like a set of programming rules a developer follows, to plug in functionality from a service. Instead of building from scratch, a developer can use an API.

The benefits are many: speed, efficiency, scalability, quality, focus. New features and new products get to market faster. Teams save time and money.

Experienced product teams use APIs wherever they can for features that are “must haves”, but are not unique to the team’s own product. Some common API categories many products use include:

  • Payment processing (Stripe)
  • User analytics (Mixpanel)
  • Customer support chat (Intercom)
  • Sending email from an app (Mailchimp)
  • Text chat (Sendbird)
  • Video chat and screen sharing (Daily.co)
Photo credit: Josue Isai Ramos Figueroa, Unsplash

You can use APIs both when building “version 1.0” of a product, and when adding features to existing products.

If there’s a good API available for a specific product function, you usually save money using an API compared to building that function from scratch. (Check out this build versus buy calculator from Baremetrics, a company that makes a recurring revenue analytics API. They make their own POV pretty clear! “Don’t build it! It’s not worth it!” they advise.)

In addition to saving money, an API gives you the benefits of leveraging proven, scalable technology. Instead of spinning wheels to fix problems that are already solved, your team can focus on developing your own differentiated functionality, your “secret sauce.”

Once a company decides to use an API, the question becomes which API — what kind of API, and which vendor.

Low-level vs full-featured APIs

APIs can give you different levels of functionality. “Low-level” APIs give you more control, but make you write more code to create working features. Full-featured APIs let you ship faster with more features, less development work, testing, and maintenance.

We’ll come back to what “control” means and what features are important to consider for video calls.

So this conversation works for non-technical readers, we’ll cut to an example. Take building a house.

If you’re looking to build a house, you have several options:

  1. You can go the prefab route. The house is delivered finished to you. (You’re careful to get a prefab house with solid warranties and easy servicing. You want as little maintenance as possible, ever!)
  2. You go a more custom version of the prefab route, so you have more say in appearance and features. You use prefab or standard plans that you can tweak. The house parts are delivered. Either you or someone you hire does the work of putting it together.
  3. You manage more of a process. You assemble a team to build the house: an architect, a general contractor, electricians, plumbers, etc.
  4. You are heading into the woods, to choose the trees you’d like to chop down. After that you will go to the local farm, where they’re letting you gather stone from their pasture for your foundation. (This book is wonderful, by the way.)

There’s a scale of work here — each step from option 1 to option 4 increases the amount of time it takes to build a house.

Each step also changes the kind of work you have to do. The lower you go down the list, the more you have to know about how to build houses in order to get the house you want.

If you pick the trees out yourself, you have more control over the wood used in your house. But that takes both time and expertise.

Neat small house plans from Mini Motives

An API is like this. “Low-level” APIs let you pick out the trees to build the house with. Full-featured APIs give you a mix of “prefab” parts to work with.

A working video call depends on millions of lines of running code, from the code in your own product all the way down to the code in the operating system, network servers, and global internet infrastructure.

  • Low-level code is further down the stack. In a video call the low-level code manages raw audio and video data, compression and encoding, encryption, routing, and bandwidth management.
  • You then need code to set up connections between devices and servers. You need code to make a video call work in the browser. This still is pretty low level because it’s part of making calls work.
  • After you build the tech fundamentals, you start to work on things like the interface of the video call — the UI, with the buttons and controls your user sees. This still takes code, of course, but it’s higher level code.

To loop back to that house you’re building, it comes down to how much your organization wants to shoulder in terms of time, focus, resources, and expertise.

How much of the video chat do you want to build?

When choosing a video chat API, you’re deciding how much of the code you want to write. Your team can decide to create video calls from scratch. Or you can use a low-level API. Or you can opt for more flexible, full-featured APIs:

  • New, full-featured video chat APIs take care of all the video calling code for you. You simply add an iframe, or a few lines of native code, and the API gives you a complete video chat widget. You don’t have to design or code anything about the call. You just plug in the API, and the call appears in your site, product, or app.

For example, with the Daily.co API you can drop a full-featured, production-quality video call into your app with just two lines of front-end code.

Easily add a video chat widget, with the Daily.co API

With some full-featured APIs, you can also “drop down” a layer and customize the video call UI and user flows.

The Daily.co video call API has this flexibility (you're not locked into the widget). You can move around the UI pieces, and create your own layout with  CSS or javascript. With this option, you can control what features are available for each user in a call, and you can use our REST API to create and manage video call rooms and users.

  • In contrast, older video calling APIs are low-level APIs. A developer team using a low-level API has to build the user interface for the call from scratch.
  • With a low level API, the team must also implement all the features needed for a complete call experience — for example screen sharing, time limits, muting and unmuting, and retrying failed connections.

In a follow up blog post, we go through a checklist of specific video call issues to consider when deciding on your video chat API. Click here to see “Choosing a video chat API: 5 key considerations."

Or contact us — email help@daily.co or chat on our website — to talk about your product with our API team. Cheers!

Recent posts