---
title: "Build a Video API with Twilio Programmable Video, Node.js, TypeScript, and Express"
description: "This tutorial builds an Express API for creating and managing Twilio Programmable Video rooms with Node.js and TypeScript. It sets up a project with Express, TypeScript 5, ts-node, node-dev, dotenv, and the Twilio Node.js helper library, while requiring Node.js 20 or 22 LTS. Twilio account credentials are stored in environment variables loaded from .env, which is excluded through .gitignore. The TypeScript configuration compiles strict CommonJS source from src into build and targets ES5; routes call the Rooms API to create rooms and complete them by changing status to completed, disconnecting connected participants. The result is a server-side room-management foundation, with access-token issuance identified as the next step for browser or mobile participants."
---

# Build a Video API with Twilio Programmable Video, Node.js, TypeScript, and Express

[Twilio](https://yomu.fyi/company/twilio) · Mia Adjei · Aug 31, 2026

**Type:** Tutorial

## Summary

This tutorial builds an Express API for creating and managing Twilio Programmable Video rooms with Node.js and TypeScript. It sets up a project with Express, TypeScript 5, ts-node, node-dev, dotenv, and the Twilio Node.js helper library, while requiring Node.js 20 or 22 LTS. Twilio account credentials are stored in environment variables loaded from .env, which is excluded through .gitignore. The TypeScript configuration compiles strict CommonJS source from src into build and targets ES5; routes call the Rooms API to create rooms and complete them by changing status to completed, disconnecting connected participants. The result is a server-side room-management foundation, with access-token issuance identified as the next step for browser or mobile participants.

## Context

The tutorial addresses the need to add video to an application when the starting point is unclear, focusing on programmatic creation and management of Twilio Programmable Video rooms.

## Approach / What changed

It builds a Node.js and Express API in TypeScript, configures Twilio credentials through environment variables, compiles the project with TypeScript, and adds routes that use the Twilio Rooms API to manage and complete rooms.

## Takeaways

- Node.js 20 or 22 LTS and TypeScript 5 are specified; TypeScript 5 is pinned because TypeScript 7.x removes the configured target: "es5" option and is not supported by ts-node in this setup.
- The Twilio Account SID, API key, and API secret are loaded from a .env file, which the tutorial places in .gitignore to avoid committing credentials to the repository.
- Completing a room updates its status from in-progress to completed, ends the video chat, and disconnects connected participants; the room is not deleted.

**Tags:** [Express](https://yomu.fyi/topic/express), [Node.js](https://yomu.fyi/topic/node-js), [Twilio](https://yomu.fyi/topic/twilio), [TypeScript](https://yomu.fyi/topic/typescript)

- Source: [Twilio](https://www.twilio.com/en-us/blog/developers/tutorials/product/build-api-twilio-programmable-video-node-js-typescript-express)
- Source URL: https://www.twilio.com/en-us/blog/developers/tutorials/product/build-api-twilio-programmable-video-node-js-typescript-express
- Ingested by Yomu: 2026-09-09T13:36:01.161Z

[Read original post](https://www.twilio.com/en-us/blog/developers/tutorials/product/build-api-twilio-programmable-video-node-js-typescript-express)
