• Documentation
  • Pricing
© 2026 Serverless, Inc. All rights reserved.

Framework

  • Overview
  • Documentation
  • Plugins360
  • Pricing

Learn

  • Blog
  • GuidesUpdated
  • Examples240
  • Courses

Resources

  • Support
  • Security
  • Trust Center
  • Status

Community

  • Slack
  • GitHub47k
  • Forum
  • Meetups

Company

  • About
  • Careers
  • Contact
  • Partners

Legal

  • Terms of Service
  • Privacy Policy
  • Trademark
  • DMCA
Nikos

TypeScript Serverless HTTP API with DynamoDB

by

This example shows your how to create a TypeScript powered HTTP API with DynamoDB.

  1. TypeScript Serverless HTTP API with DynamoDB

Introduction

TypeScript (ts) offers type safety which is helpful when working with the AWS SDK, which comes with ts definitions (d.ts)

compiling

Note: TypeScript is intentionally held at 5.x — the TypeScript 7 native compiler isn't yet supported by the surrounding ecosystem tooling (checked 2026-07-20).

Serverless Framework v4 has a built-in esbuild bundler, so there is no manual compilation step. Just run

npm i

and the .ts handlers under todos/ are packaged natively by serverless package / serverless deploy using the tsconfig.json in this directory.

For brevity, I have just demonstrated this to match with the todos/create.ts, todos/list.ts, todos/get.ts and todos/update.ts lambda function

Usage

You can create, retrieve, update, or delete todos with the following commands:

Create a Todo

curl -X POST https://XXXXXXX.execute-api.us-east-1.amazonaws.com/todos --data '{ "text": "Learn Serverless" }'

Example Result:

{"text":"Learn Serverless","id":"ee6490d0-aa11e6-9ede-afdfa051af86","createdAt":1479138570824,"checked":false,"updatedAt":1479138570824}%

List all Todos

curl https://XXXXXXX.execute-api.us-east-1.amazonaws.com/todos

Example output:

[{"text":"Deploy my first service","id":"ac90feaa11e6-9ede-afdfa051af86","checked":true,"updatedAt":1479139961304},{"text":"Learn Serverless","id":"206793aa11e6-9ede-afdfa051af86","createdAt":1479139943241,"checked":false,"updatedAt":1479139943241}]%

Get one Todo

# Replace the <id> part with a real id from your todos table
curl https://XXXXXXX.execute-api.us-east-1.amazonaws.com/todos/<id>

Example Result:

{"text":"Learn Serverless","id":"ee6490d0-aa11e6-9ede-afdfa051af86","createdAt":1479138570824,"checked":false,"updatedAt":1479138570824}%

Update a Todo

# Replace the <id> part with a real id from your todos table
curl -X PUT https://XXXXXXX.execute-api.us-east-1.amazonaws.com/todos/<id> --data '{ "text": "Learn Serverless", "checked": true }'

Example Result:

{"text":"Learn Serverless","id":"ee6490d0-aa11e6-9ede-afdfa051af86","createdAt":1479138570824,"checked":true,"updatedAt":1479138570824}%

Contents

  • Introduction
  • compiling
  • Usage
  • Create a Todo
  • List all Todos
  • Get one Todo
  • Update a Todo

Related

GuidesPluginsExamplesSlack CommunitySupport