Create function
Create a new Zavu Function. The function starts in draft status. A dedicated API key is auto-provisioned and injected as the ZAVU_API_KEY secret so the function can call back into the Zavu API without manual setup.
Provide sourceCode to seed the draft. Call POST /v1/functions/{functionId}/deploy afterwards to publish.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
URL-safe identifier (lowercase, digits, hyphens). Must be unique per project.
1 - 50"order-bot"
80"Order Bot"
280Runtime the function is deployed on.
nodejs24 Per-invocation timeout in seconds. Event and cron invocations are asynchronous, so a long timeout only bounds cost; a tool called during a live conversation holds up the reply, and a function exposed over HTTP is additionally bounded by the platform's HTTP response limit.
1 <= x <= 180128, 256, 512, 1024 Whether to expose a public HTTPS URL for this function.
The project's source files, keyed by path relative to the project root (e.g. index.ts, lib/orders.ts). Imports between them are resolved when the function is built, so a function can be split across as many files as it needs.
Paths must be relative and use forward slashes; .., node_modules/ and package.json are rejected. npm packages are not uploaded here — declare them under dependencies and Zavu installs them. Limits: 200 files and 900,000 bytes for the whole tree.
Which file in files is the entry point. Defaults to index.ts.
"index.ts"
Shortcut for a single-file function: exactly equivalent to sending files with one entry named after entrypoint (index.ts by default). Fully supported — use whichever fits. If both are sent, files wins.
900000npm dependencies. Keys are package names, values are semver ranges.
Response
Function created.
A Zavu Function — user-supplied TypeScript that runs in Zavu Cloud and reacts to messaging events or HTTP requests.
