Route HTTP to your functions in seconds
Define routes, set auth, configure CORS — no infrastructure config needed. Your functions become real HTTP endpoints instantly.
How it works
Three steps to a live endpoint
Define a route
Map any HTTP method and path to a function. Supports wildcards and path parameters like /users/:id.
Set authentication
Choose none, API key, or Bearer token auth per route. Each route can have its own policy.
Go live instantly
Your route is immediately available at /gw/{workspace}/{path}. No deploy step, no DNS changes.
Features
Everything you need for routing
Path parameters
/users/:id → event.pathParameters.id. Wildcards with /admin/* also supported.
Rate limiting
Cap requests per minute per route. Protect your functions from abuse.
CORS configuration
Set allowed origins and headers per route. Fine-grained control per endpoint.
Any HTTP method
Route GET, POST, PUT, DELETE independently — or use ANY to catch them all.
Example
Route config + handler
// Route configuration { "method": "GET", "path": "/users/:id", "functionId": "get-user", "auth": "api-key", "rateLimit": 100, "cors": { "allowedOrigins": ["https://myapp.com"] } }
export async function handler(event, context) { const { id } = event.pathParameters; const user = await db.users.findById(id); return { statusCode: 200, body: JSON.stringify(user), }; }
Get started free
Deploy your first function in 60 seconds. No credit card required.