---
title: "Programmable to the max - making an API with Zuplo"
description: "Learn how to build a simple API at the Edge using Zuplo - the programmable API gateway."
canonicalUrl: "https://zuplo.com/blog/2022/03/15/programmable-to-the-max"
pageType: "blog"
date: "2022-03-15"
authors: "josh"
tags: "Tutorial"
image: "https://zuplo.com/og?text=Programmable%20to%20the%20max%20-%20making%20an%20API%20with%20Zuplo"
---
In this video we see just how programmable the Zuplo gateway is by going _full
tilt_ and building a simple API using **Function Handlers** 🤯

We also look at wildcard routes like so `/(.*)`.

<YouTubeVideo videoId="pVMssyy9vUw" />

Length: 3 minutes

Here's the code from the echo API we create

```ts
import { ZuploContext, ZuploRequest } from "@zuplo/runtime";

export default async function (request: ZuploRequest, context: ZuploContext) {
  const { url, query } = request;

  const body = await request.text();

  return { url, query, body };
}
```