Skip to main content
The Edge Functions primitive operates on a fullstack app’s Supabase project. Management operations (list/get/deploy) use the Supabase Management API via the apps Supabase proxy; invocation uses the project’s /functions/v1 endpoint. App-scoped, on both the company mount and per-user mount; the kit must enable the functions primitive on per-user mounts.

Endpoints

MethodPathDescription
ANY/v1/apps/:id/functions/proxy/*Invoke a function (/functions/v1/{slug})
GET/v1/apps/:id/supabase/proxy/v1/projects/{ref}/functionsList functions (Management API)
GET/v1/apps/:id/supabase/proxy/v1/projects/{ref}/functions/{slug}Get a function
POST/v1/apps/:id/supabase/proxy/v1/projects/{ref}/functionsDeploy/update a function (advanced)
# Invoke
curl -X POST https://api.usenaive.ai/v1/apps/<app-id>/functions/proxy/hello \
  -H "Authorization: Bearer nv_sk_live_..." -H "Content-Type: application/json" \
  -d '{"name":"world"}'
Deploying a function requires bundling its source (Supabase uses an eszip). Most teams ship functions from their app repo/workspace and use this primitive to invoke them. The full Supabase Management API is reachable via the apps Supabase proxy for advanced control.

SDK

await naive.functions.invoke("hello", { name: "world" });
await naive.forUser(userId).functions.list();
See the Edge Functions guide and the functions sub-client.