Edge Functions

Server-side code, without the per-call bill.

Deploy TypeScript functions on the Supabase Edge Runtime, on the same instance as your database. There's no price per invocation: webhooks, APIs and background jobs run on the compute you already pay for.

Deno and TypeScript

Write functions with npm:, jsr: and https: imports and several files per function, the same code that runs on Supabase.

Deploy from the dashboard or your agent

Edit and deploy in the project's Functions tab, or let Claude Code, Cursor or Codex deploy over MCP (deploy_edge_function).

Checked before it goes live

Each deploy is bundled first. If it doesn't build, you see the error and the previous version keeps serving.

JWT checks per function

Require the project's anon key or a user's token by default, or turn it off for public webhooks like Stripe and GitHub.

Encrypted secrets

Set API keys in the dashboard and read them with Deno.env.get. SUPABASE_URL and the project keys are set for you.

Logs and a test console

console.log output, errors and every request, per function, plus a button to send a test request.

Availability

All plans, with no per-invocation fees. Functions run on your instance's compute, shared with your projects. Each run gets up to 150 MB of memory and 150 seconds to respond.

Compare plans

Questions

How do I deploy?

Write the function in the dashboard's Functions tab and click Deploy, or ask your AI agent to deploy it over MCP. Deploys go live in about a minute. Deploying with the Supabase CLI (supabase functions deploy) isn't supported yet.

Are invocations really free?

There's no fee per invocation. Functions run on your instance's CPU and memory, so very heavy traffic may need a bigger plan, just like your database.

Can I move my functions from Supabase Cloud?

Yes. Paste each function's files into the dashboard or have your agent redeploy them, then add your secrets. Change the base URL in your app to your project's URL.

What are the limits?

Up to 100 functions per project and 1 MB of source per function. Each run gets 150 MB of memory and must start responding within 150 seconds.

Put every project on one plan.

Every plan starts with a 7-day free trial.