AI agent instructions
AI agent instructions
Via Python SDK
The simplest way to call a Function:Run Parameters
run_parameters.py
Handling Results
Via HTTP API
Call Functions as HTTP endpoints:POST Request
Response
Via cURL
Basic cURL Request
Generate cURL Command
Get the exact cURL command for your Function:Via JavaScript/Node.js
Call from JavaScript applications:With Axios
Streaming Logs
Watch function execution in real-time:Via SDK
Via HTTP (Server-Sent Events)
Async Invocation
Create and Start Separately
Use Python’sfunction.create_run() or TypeScript’s fn.createRun() only when you need a run ID before execution begins.
It creates the run record only. Pass that ID to function.run(function_run_id=...)
or fn.run(variables, { functionRunId }) to execute it. Omitting the ID automatically creates a new run.
For Python local execution, pass local=True to both calls.
Set NOTTE_FUNCTION_ID to your deployed function’s ID before running these examples:
Run Without Blocking the Event Loop
function.run() is synchronous and waits for completion. stream=True (the default)
prints live logs; stream=False receives the final JSON response without live logs.
Disabling streaming does not make standard-runtime execution non-blocking.
Use asyncio.to_thread() to keep your application’s event loop available:
async_run.py
Check Run Status
function.get_run(run_id) fetches the current status and result without waiting
for execution to finish. From async code, use await asyncio.to_thread(function.get_run, run_id).
In TypeScript, use await fn.getRun(runId); fn.retrieve(runId) remains a compatible alias.
Stop a Running Function
stop_running.py
Webhook Integration
As Webhook Endpoint
Use Functions as webhook receivers:webhook_handler.py
Testing Webhooks
Test webhook locally:Error Handling
SDK Error Handling
sdk_error_handling.py
Disable Raise on Failure
HTTP Error Handling
Batch Invocations
Run Multiple Functions
Sequential Invocations
Local vs Cloud Execution
Cloud Execution (Default)
- Scalable
- No local resources needed
- Built-in logging
- Session replays available
Local Execution
local_execution.py
- Debugging
- Development/testing
- No cloud execution costs
- Decryption key (from Console) - passed when creating Function instance
- Function code accessible locally
Rate Limits
Account Limits
Functions have rate limits based on your plan:- Free: 10 concurrent runs
- Pro: 50 concurrent runs
- Enterprise: Custom limits
Handling Rate Limits
Best Practices
1. Use Appropriate Timeout
2. Stream Logs for Debugging
stream_debug.py
3. Handle Errors Gracefully
graceful_errors.py
4. Use Variables for Dynamic Data
use_variables.py
Next Steps
Schedules
Schedule Functions automatically
Management
Update and monitor Functions
Creating Functions
Learn to write Functions
API Reference
Full API documentation