v4.2 — Now with native Rust + WASM runtime

Deploy serverless
at the edge. Globally.

Ship TypeScript, Python, Rust, or Go functions to 320+ regions in 2 seconds. Zero cold starts, pay-per-millisecond billing, and a runtime that doesn't sleep.

handler.ts iad1 · 320 regions live
// Edge function — deployed globally in 2.1s import { EdgeRequest, EdgeResponse } from '@edgeapi/runtime'; import { kv } from '@edgeapi/kv'; export default async function handler(req: EdgeRequest): Promise<EdgeResponse> { const { country, city } = req.geo(); const userId = req.cookies.get('uid'); // Read from edge KV (replicated to 320 regions) const profile = await kv.get(`user:${userId}`); return EdgeResponse.json({ greeting: `Hello from ${city}, ${country}`, user: profile, latency: req.headers.get('cf-edge-latency'), }, { headers: { 'cache-control': 'public, max-age=60' } }); }
# Edge function — Python 3.12 runtime from edgeapi import handler, kv from edgeapi.types import EdgeRequest, EdgeResponse @handler async def main(req: EdgeRequest) -> EdgeResponse: geo = req.geo() user_id = req.cookies.get('uid') # Edge KV — sub-10ms reads from any region profile = await kv.get(f'user:{user_id}') return EdgeResponse.json({ 'greeting': f'Hello from {geo.city}, {geo.country}', 'user': profile, 'region': req.headers.get('x-edge-region'), }, headers={'cache-control': 'public, max-age=60'})
// Edge function — compiled to WASM, sub-millisecond cold start use edgeapi::{handler, EdgeRequest, EdgeResponse, kv}; use serde_json::json; #[handler] pub async fn main(req: EdgeRequest) -> EdgeResponse { let geo = req.geo(); let user_id = req.cookies().get("uid").unwrap_or_default(); // Edge KV access let profile = kv::get(&format!("user:{}", user_id)).await?; EdgeResponse::json(json!({ "greeting": format!("Hello from {}, {}", geo.city, geo.country), "user": profile, "runtime": "wasm-rust", })) .with_header("cache-control", "public, max-age=60") }
// Edge function — compiled with TinyGo to WASM package main import ( "github.com/edgeapi/runtime" "github.com/edgeapi/kv" ) func main() { runtime.Handle(func(req *runtime.Request) *runtime.Response { geo := req.Geo() userID := req.Cookies.Get("uid") // KV is replicated to every region — read locally profile, _ := kv.Get("user:" + userID) return runtime.JSON(map[string]interface{}{ "greeting": "Hello from " + geo.City + ", " + geo.Country, "user": profile, "runtime": "wasm-tinygo", }).WithCache(60) }) }
Bundled in 184ms Deployed to 320 regions Live in 2.1s https://api.edgeapi.date/v1/hello

// SUPPORTED RUNTIMES

TypeScript JavaScript Python Rust Go Deno Bun WASM
// PLATFORM

Built for the edge from day zero

A runtime engineered for cold-start-free execution, deeply integrated with the storage and networking your APIs need.

Zero cold starts

V8 isolates and pre-warmed WASM runtimes mean every request hits in under 5ms — including the first.

🌐

320+ regions

Every function deploys to every PoP, automatically. Users hit the closest one. No region-picking.

Multi-runtime

TypeScript, Python, Rust, and Go — all on the same platform. Mix runtimes within a single project.

Edge KV & D1

Strongly consistent KV and SQLite-on-the-edge, replicated globally. Single-digit-ms reads anywhere.

Streaming first

Native HTTP streaming, Server-Sent Events, and WebSockets. Build chat, AI, and live APIs with zero glue.

Pay per ms

Billed in 1ms increments for actual CPU time. Idle time is free. No per-request fees on the Hobby plan.

2.1s
global deploy time
320+
edge regions
<5ms
cold start (p99)
99.99%
SLA-backed uptime
// USE CASES

What teams build with EdgeAPI

// API LAYER

BFF for web & mobile

Aggregate microservices into a single edge API tailored to each client.

// AUTH

JWT verification at edge

Verify tokens, enforce RBAC, and reject bots before traffic hits origin.

// AI

LLM proxy & caching

Stream OpenAI/Anthropic responses with per-tenant rate limiting and caching.

// A/B

Feature gating

Run experiments at the edge with consistent assignment via signed cookies.

// IMAGES

On-the-fly transforms

Resize, watermark, and format-convert images closer to your users.

// WEBHOOKS

Webhook fan-out

Accept Stripe/GitHub webhooks at edge, validate, and dispatch in parallel.

// PRICING

Pay only for milliseconds you run

Idle time is free. No per-seat fees. No surprise bills.

Hobby
$0/mo
For personal projects.
  • 1M requests / month
  • 100K CPU-ms / month
  • 3 deployments
  • Community support
Start free
Scale
Custom
For high-traffic teams.
  • Unlimited requests
  • Custom CPU pool
  • Private regions on request
  • SOC 2 Type II
  • 24/7 support · 99.99% SLA
Contact sales

Compare all plans →

Your next API. At the edge. In 2 seconds.

Join thousands of teams who ship serverless without the cold starts.

Deploy your first function — free