The Butterbase connector lets your AI agent act in each user's Butterbase account. Each user connects their own Butterbase access token once, and Scalekit sends it with every call, so your agent never handles credentials. It comes with 210 tools.
- Tools
- 210
- What they doRead · write · destructive
- 92 · 96 · 2292 read96 write22 destructive
- Users sign in with
- Access token
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet your credentials
Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret>Create the Butterbase connection
In AgentKit > Connections, create a Butterbase connection. The name you give it is the
connection_nameyour code passes. See Configure connections.Authorize a user and make your first call
quickstart.mts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'import { createInterface } from 'node:readline/promises'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENVIRONMENT_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'butterbase'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Butterbase:', link)const rl = createInterface({ input: process.stdin, output: process.stdout })await rl.question('Press Enter after authorizing...')rl.close()// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'butterbase_apps_list',toolInput: {},})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "butterbase"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Butterbase:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="butterbase_apps_list",connection_name=connection_name,identifier=identifier,)print(result)Terminal window python quickstart.pyEach user opens the link once and enters their Butterbase credentials there. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_toolbutterbase_agent_getGet a single Butterbase agent's full configuration by name, including its model, graph_spec, visibility, and run limits.Read-onlyGet Agent
Get a single Butterbase agent's full configuration by name, including its model, graph_spec, visibility, and run limits. Returns the agent object as Butterbase stores it. Use butterbase_agent_get to inspect one specific agent. Use butterbase_agents_list to browse every agent in the app.
Inputs
app_idstringrequired- The Butterbase app's unique ID the agent belongs to.
namestringrequired- The unique name of the agent to fetch, as given when it was created (or seen in a prior butterbase_agents_list response).
butterbase_agent_run_events_listFetch every event recorded for an agent run as a single JSON array, instead of connecting to the run's live event stream.Read-onlyList Agent Run Events
Fetch every event recorded for an agent run as a single JSON array, instead of connecting to the run's live event stream. Returns an array of event objects covering the run's lifecycle — run_start, node_start, node_end, tool_call_start, tool_call_end, llm_token_usage, run_paused, run_cancelled, run_failed, and run_end. Use butterbase_agent_run_events_list to review a run's full event history at any point after it starts. Use butterbase_agent_run_get instead for just the run's current summary state.
Inputs
app_idstringrequired- The id of the Butterbase app the agent belongs to.
idstringrequired- The id of the run whose events you want to fetch.
namestringrequired- The unique name of the agent whose run's events you want to fetch.
butterbase_agent_run_getGet a single agent run's full state by id.Read-onlyGet Agent Run
Get a single agent run's full state by id. Returns the run object, including its status and, once available, its output. Use butterbase_agent_run_get to inspect or poll one specific run. Use butterbase_agent_runs_list to find its id first.
Inputs
app_idstringrequired- The Butterbase app's unique ID the agent belongs to.
namestringrequired- The unique name of the agent the run belongs to.
run_idstringrequired- The id of the run to fetch, as returned by butterbase_agent_run_create or a prior butterbase_agent_runs_list call.
butterbase_agent_runs_listList an agent's recent runs.Read-onlyList Agent Runs
List an agent's recent runs. Returns an array of run objects with each run's id and status; Butterbase's docs don't itemize further response fields or pagination parameters for this endpoint. Use butterbase_agent_runs_list to see recent activity for one agent. Use butterbase_agent_run_get to fetch one run's full state.
Inputs
app_idstringrequired- The Butterbase app's unique ID the agent belongs to.
namestringrequired- The unique name of the agent whose runs to list.
butterbase_agents_listList all agents defined in a Butterbase app.Read-onlyList Agents
List all agents defined in a Butterbase app. Returns an array of agent objects, each with the agent's name, display name, description, default model, visibility, and run/budget limits. Use butterbase_agents_list to see which agents exist in an app before starting or configuring a run against one of them.
Inputs
app_idstringrequired- The Butterbase app ID whose agents you want to list. Found in the app's dashboard URL or via Butterbase's apps listing.
butterbase_ai_config_getGet an app's AI gateway configuration in Butterbase.Read-onlyGet AI Config
Get an app's AI gateway configuration in Butterbase. Returns a config object with the app's default model, its maximum tokens allowed per request, and its list of allowed models. Use butterbase_ai_config_get to check an app's current AI settings before calling butterbase_ai_config_update to change them.
Inputs
app_idstringrequired- The id of the Butterbase app whose AI configuration to fetch.
butterbase_ai_models_listList the AI models available and allowed for use by one Butterbase app.Read-onlyList AI Models
List the AI models available and allowed for use by one Butterbase app. Returns a JSON array of model objects (exact fields are not published in Butterbase's docs). Use butterbase_ai_models_list to see which model identifiers are valid before calling butterbase_chat_completions_create or butterbase_embeddings_create.
Inputs
app_idstringrequired- The Butterbase app ID whose allowed AI models to list.
butterbase_ai_usage_getGet AI usage and cost statistics for a Butterbase app, optionally scoped to a date range.Read-onlyGet AI Usage
Get AI usage and cost statistics for a Butterbase app, optionally scoped to a date range. Returns the total token count, total cost, and a per-model breakdown of tokens, cost, and request count. Use butterbase_ai_usage_get to monitor AI spend for an app over time, narrowing the results with a start and end date.
Inputs
app_idstringrequired- The id of the Butterbase app whose AI usage to fetch.
end_datestring- End of the date range to report usage for, as YYYY-MM-DD. If omitted, usage is not bounded on the end date.
start_datestring- Start of the date range to report usage for, as YYYY-MM-DD. If omitted, usage is not bounded on the start date.
butterbase_app_config_getGet a Butterbase app's current access-mode and visibility configuration.Read-onlyGet App Config
Get a Butterbase app's current access-mode and visibility configuration. Returns the app's configuration object, including its access mode (public or authenticated) and visibility settings. Use butterbase_app_config_get to read current settings before changing them with butterbase_app_access_mode_update or butterbase_app_visibility_update.
Inputs
app_idstringrequired- The ID of the app to read configuration for.
butterbase_app_migration_status_getCheck the status of a Butterbase app's region-move migration.Read-onlyGet App Migration Status
Check the status of a Butterbase app's region-move migration. Returns the migration's current status and progress details; exact response fields beyond status are not published in Butterbase's docs. Use butterbase_app_migration_status_get after calling butterbase_app_move to track when the region move completes.
Inputs
app_idstringrequired- The ID of the app being moved.
migration_idstringrequired- The migration ID returned by butterbase_app_move when the region move was started.
butterbase_apps_listList every application owned by the authenticated Butterbase account.Read-onlyList Apps
List every application owned by the authenticated Butterbase account. Returns an array of app objects (Butterbase's docs do not publish the exact per-app fields, such as id, name, and region). Use butterbase_apps_list to discover an app's id before calling any app-scoped tool; use butterbase_app_delete to remove one you no longer need.
Inputs
This tool takes no inputs.
butterbase_auth_audit_logs_listQuery a Butterbase app's authentication audit log, optionally filtered by user or event type.Read-onlyList Auth Audit Logs
Query a Butterbase app's authentication audit log, optionally filtered by user or event type. Returns an array of audit log entries recording authentication activity such as signups, logins, and password resets (the exact per-entry fields are not published in Butterbase's docs). Use this to investigate suspicious activity, review a specific user's authentication history, or audit recent sign-in events for an app.
Inputs
app_idstringrequired- The unique identifier of the Butterbase app whose authentication audit log should be queried.
event_typestring- Filter results to a single audit event type, e.g. login, signup, or password_reset. Valid values are not enumerated in Butterbase's docs, so pass the exact event type string used by your app.
limitinteger- Maximum number of audit log entries to return. Butterbase's docs do not state a default or maximum, so pass a value appropriate for your use case.
offsetinteger- Number of audit log entries to skip before returning results, for paging through a large log.
user_idstring- Filter results to audit events for one specific end user, by their Butterbase user ID.
butterbase_auth_jwks_getGet the public JSON Web Key Set (JWKS) Butterbase uses to sign access tokens for a specific app, so tokens can be verified independently of the Butterbase API.Read-onlyGet Auth JWKS
Get the public JSON Web Key Set (JWKS) Butterbase uses to sign access tokens for a specific app, so tokens can be verified independently of the Butterbase API. Returns a standard JWKS object: an array of public keys under a "keys" field. Use butterbase_auth_jwks_get when you need to validate a Butterbase-issued JWT's signature yourself. Use butterbase_auth_me_get instead if you just want the profile behind a token.
Inputs
app_idstringrequired- The unique ID of the Butterbase app whose signing keys to fetch.
butterbase_auth_me_getGet the profile of the end-user identified by the access token used to authenticate this call, for a specific Butterbase app.Read-onlyGet Current User
Get the profile of the end-user identified by the access token used to authenticate this call, for a specific Butterbase app. Returns the user's id, email, email-verification status, display name, and avatar URL. Use butterbase_auth_me_get to look up who a Butterbase session belongs to. Use butterbase_auth_login or butterbase_auth_signup first to obtain that session's token. CONFIRMED via a dedicated live investigation: the underlying Butterbase endpoint works correctly and returns a genuine success when called with a valid end-user access token (obtained via butterbase_auth_login) -- this was previously only ever tested with the wrong credential type (this connector's platform key), which always 401s. HOWEVER, this connector has no way to actually supply that end-user token: Scalekit's execution engine controls the Authorization header for a BEARER connection server-side and rejects a client-supplied Authorization header override outright (confirmed via direct SDK-level testing -- a custom header is rejected with its own 401 before ever reaching Butterbase). This tool will therefore always fail via the standard execution path on this connector, by platform design, not due to a fixable tool-JSON defect -- it would need a future Scalekit auth-strategy feature (e.g. a per-call token override) to ever work through this connector.
Inputs
app_idstringrequired- The unique ID of the Butterbase app to look up the current user in.
butterbase_auth_oauth_config_getGet the configuration for one social-login (OAuth) provider set up on a Butterbase app.Read-onlyGet OAuth Provider Config
Get the configuration for one social-login (OAuth) provider set up on a Butterbase app. Returns the provider's configuration object, including its client ID, redirect URIs, and any provider metadata. Use butterbase_auth_oauth_config_get to inspect a single provider by name. Use butterbase_auth_oauth_configs_list to see all configured providers at once.
Inputs
app_idstringrequired- The unique ID of the Butterbase app the provider is configured on.
providerstringrequired- The OAuth provider identifier to fetch, e.g. one of google, github, discord, facebook, linkedin, microsoft, apple, x, or a custom provider identifier.
butterbase_auth_oauth_configs_listList all social-login (OAuth) provider configurations set up for a Butterbase app.Read-onlyList OAuth Provider Configs
List all social-login (OAuth) provider configurations set up for a Butterbase app. Returns an array of provider configuration objects, each with the provider name, client ID, and redirect URIs. Use butterbase_auth_oauth_configs_list to see every configured provider at once. Use butterbase_auth_oauth_config_get to fetch just one provider's configuration by name.
Inputs
app_idstringrequired- The unique ID of the Butterbase app whose OAuth provider configurations to list.
butterbase_billing_connect_status_getCheck the Stripe Connect onboarding status for a Butterbase app's monetization setup.Read-onlyGet Stripe Connect Status
Check the Stripe Connect onboarding status for a Butterbase app's monetization setup. Returns the app's current onboarding status details. Use butterbase_billing_connect_status_get to poll whether an app has finished Stripe Connect onboarding. Use butterbase_billing_connect_onboard to start or resume onboarding if it isn't complete.
Inputs
app_idstringrequired- The Butterbase app ID to check Stripe Connect onboarding status for, found in the app's dashboard URL or settings.
butterbase_billing_dashboard_getGet the current plan, usage, and limits for your Butterbase platform account as a whole, not a specific app.Read-onlyGet Billing Dashboard
Get the current plan, usage, and limits for your Butterbase platform account as a whole, not a specific app. Returns the account's plan details, current usage metrics, and the limits attached to that plan. Use butterbase_billing_dashboard_get for a snapshot of the account's overall billing status. Use butterbase_billing_usage_get for a day-by-day usage history over a date range instead.
Inputs
This tool takes no inputs.
butterbase_billing_order_getRetrieve the details of a single order placed by an end user within a Butterbase app.Read-onlyGet Order
Retrieve the details of a single order placed by an end user within a Butterbase app. Returns the order object with its line items, referenced product or plan, and payment status. Use butterbase_billing_order_get to look up one order by ID once you already have it, such as from an order confirmation, a list of the app's order history, or a Stripe webhook event.
Inputs
app_idstringrequired- The Butterbase app ID that owns the order, as shown in the app's dashboard URL or returned by the app-creation API.
order_idstringrequired- The unique identifier of the order to retrieve, as returned when the order was created or listed in the app's order history.
butterbase_billing_orders_listList the current end user's order history for a Butterbase app.Read-onlyList Orders
List the current end user's order history for a Butterbase app. Returns an array of order objects for the current end user's past one-time-purchase products. Use butterbase_billing_orders_list to review what the current end user has already bought. Use butterbase_billing_purchase to place a new order, or butterbase_billing_products_list to see what's available to buy.
Inputs
app_idstringrequired- The unique ID of the Butterbase app to list the current end user's order history for.
butterbase_billing_plans_listList all subscription plans configured for a Butterbase app.Read-onlyList Subscription Plans
List all subscription plans configured for a Butterbase app. Returns an array of plan objects, each with its id, name, price, billing interval, and included features. Use butterbase_billing_plans_list to browse an app's existing plans, find a plan_id for butterbase_billing_plan_update, or see which plans end users can subscribe to. Use butterbase_billing_subscription_get to check one end user's current subscription instead.
Inputs
app_idstringrequired- The unique ID of the Butterbase app whose subscription plans you want to list. Every Butterbase app has a distinct app_id, shown in the dashboard or returned when the app was created.
butterbase_billing_products_listList all one-time-purchase products configured for a Butterbase app.Read-onlyList Products
List all one-time-purchase products configured for a Butterbase app. Returns an array of product objects, each with its id, name, price, description, and metadata. Use butterbase_billing_products_list to browse an app's existing products or find a product_id for butterbase_billing_product_update or butterbase_billing_purchase. Use butterbase_billing_plans_list to see recurring subscription plans instead.
Inputs
app_idstringrequired- The unique ID of the Butterbase app whose one-time-purchase products you want to list. Every Butterbase app has a distinct app_id, shown in the dashboard or returned when the app was created.
butterbase_billing_subscription_getGet the current end user's active subscription for a Butterbase app.Read-onlyGet Current Subscription
Get the current end user's active subscription for a Butterbase app. Returns the current subscription's details, such as the plan it's on and its status. Use butterbase_billing_subscription_get to check whether the current end user has an active subscription before gating access to a feature. Use butterbase_billing_subscribe to start one, or butterbase_billing_cancel to end it.
Inputs
app_idstringrequired- The unique ID of the Butterbase app to check the current end user's subscription for.
butterbase_billing_usage_getGet daily usage history for the Butterbase platform account over a date range, optionally filtered to a single usage meter.Read-onlyGet Billing Usage History
Get daily usage history for the Butterbase platform account over a date range, optionally filtered to a single usage meter. Returns an array of daily usage data points covering the requested date range. Use butterbase_billing_usage_get to chart usage trends or check consumption against your plan's limits. Use butterbase_billing_dashboard_get for the current plan and limits snapshot instead.
Inputs
end_datestringrequired- End of the date range to fetch usage for, as an ISO 8601 date. Inclusive.
start_datestringrequired- Start of the date range to fetch usage for, as an ISO 8601 date. Inclusive.
meter_typestring- Limit results to a single usage meter: "storage_bytes" (file/storage usage), "ai_tokens" (AI gateway token consumption), "lambda_invocations" (serverless function calls), "bandwidth_bytes" (network egress), or "api_calls" (API request count). Omit to return all meters. CONFIRMED via live testing: api_calls was missing from this enum despite being a valid upstream value.one of
storage_bytesai_tokenslambda_invocationsbandwidth_bytesapi_calls
butterbase_clone_job_getCheck the status of a template clone job by its job id.Read-onlyGet Clone Job Status
Check the status of a template clone job by its job id. Returns the clone job's current status and related details as reported by Butterbase (exact fields vary by job state and are not fully published in Butterbase's docs). Use butterbase_clone_job_get to poll a job started by butterbase_template_clone. Use butterbase_clone_job_retry if the job has failed.
Inputs
job_idstringrequired- The id of the clone job to check, as returned by butterbase_template_clone or butterbase_clone_job_retry.
butterbase_custom_domain_status_getGet a custom domain's current verification and SSL status for a Butterbase app.Read-onlyGet Custom Domain Status
Get a custom domain's current verification and SSL status for a Butterbase app. Returns the domain's verification status and SSL status as reported by Cloudflare. Use butterbase_custom_domain_status_get to poll progress after registering a domain with butterbase_custom_domain_create or after re-triggering a check with butterbase_custom_domain_verify.
Inputs
app_idstringrequired- The unique identifier of the Butterbase app the custom domain is registered to.
idstringrequired- The unique identifier of the custom domain to check, as returned when the domain was registered.
butterbase_custom_domains_listList custom domains registered for an app.Read-onlyList Custom Domains
List custom domains registered for an app. Returns an array of domain objects, each with at least its id, hostname, verification status, and SSL status; the full field-by-field shape isn't published in Butterbase's docs. Use butterbase_custom_domains_list to see which domains are already registered for an app and their status. Use butterbase_custom_domain_create to add a new one.
Inputs
app_idstringrequired- The Butterbase app whose registered custom domains to list, exactly as shown in the Butterbase dashboard or returned when the app was created.
butterbase_frontend_deployment_getGet details and status of a specific frontend deployment.Read-onlyGet Frontend Deployment
Get details and status of a specific frontend deployment. Returns the deployment record; Butterbase's docs don't publish its exact fields, but expect at least the deployment id and a status of WAITING, UPLOADING, BUILDING, READY, ERROR, or CANCELED. Use butterbase_frontend_deployment_get to check one deployment's progress or result. Use butterbase_frontend_deployments_list first if you don't already have the deployment id.
Inputs
app_idstringrequired- The Butterbase app that owns the frontend deployment, exactly as shown in the Butterbase dashboard or returned when the app was created.
idstringrequired- The unique identifier of the frontend deployment to fetch, as returned when the deployment record was created or from butterbase_frontend_deployments_list.
butterbase_frontend_deployments_listList an app's frontend deployment history.Read-onlyList Frontend Deployments
List an app's frontend deployment history. Returns an array of deployment records; Butterbase's docs don't publish the exact per-deployment fields, but each includes at least its id and status (WAITING, UPLOADING, BUILDING, READY, ERROR, or CANCELED). No pagination parameters are documented for this endpoint. Use butterbase_frontend_deployments_list to browse or review all deployments for an app. Use butterbase_frontend_deployment_get to fetch full details for one specific deployment by id.
Inputs
app_idstringrequired- The Butterbase app whose frontend deployment history to list, exactly as shown in the Butterbase dashboard or returned when the app was created.
butterbase_frontend_env_getList a frontend deployment's environment variable key names.Read-onlyList Frontend Environment Variable Keys
List a frontend deployment's environment variable key names. Returns the variable key names only — Butterbase encrypts values at rest and never returns them through this or any other endpoint; the exact response shape (array vs. object of keys) isn't published in Butterbase's docs. Use butterbase_frontend_env_get to see which environment variables are already set before replacing them with butterbase_frontend_env_update.
Inputs
app_idstringrequired- The Butterbase app whose frontend deployment environment variable keys to list, exactly as shown in the Butterbase dashboard or returned when the app was created.
butterbase_function_getGet a deployed serverless function's stored configuration together with its current invocation metrics.Read-onlyGet Function
Get a deployed serverless function's stored configuration together with its current invocation metrics. Returns the function's settings (triggers, resource limits, agent-tool configuration) plus total invocations, error count, error rate, average duration, and last invocation time. Use butterbase_function_get to inspect one specific function by name. Use butterbase_functions_list to browse or find a function's exact name first.
Inputs
app_idstringrequired- The Butterbase application ID the function belongs to.
namestringrequired- The exact name of the deployed function to retrieve.
butterbase_function_logs_listList historical invocation logs for a deployed Butterbase serverless function, optionally filtered by time, log level, or including soft-deleted functions.Read-onlyList Function Logs
List historical invocation logs for a deployed Butterbase serverless function, optionally filtered by time, log level, or including soft-deleted functions. Returns an array of log entries, each with the invocation's HTTP method, path, status code, duration in milliseconds, memory used, any error, and the console log lines it produced. Use butterbase_function_logs_list to inspect a function's runtime behavior and diagnose failures. Use butterbase_function_get for the function's current configuration and aggregate metrics instead.
Inputs
app_idstringrequired- The Butterbase app ID that owns the function, found in the app's dashboard URL or settings.
namestringrequired- The unique name of the deployed function whose logs you want to view.
include_deletedboolean- Whether to include log entries from functions that have since been soft-deleted. Defaults to false.default
false levelstring- Filter log entries by level: "error" returns only invocations that errored, "all" returns every invocation. Omit to use the API's default.one of
errorall limitinteger- Maximum number of log entries to return. Omit to use the API's default page size.
sincestring- Only return log entries recorded after this timestamp, as an ISO 8601 datetime. Omit to return the most recent logs regardless of time.
butterbase_functions_listList every serverless function deployed to an app.Read-onlyList Functions
List every serverless function deployed to an app. Returns an array of function objects with their names and configured settings. Use butterbase_functions_list to browse what's deployed or check whether a name is already taken. Use butterbase_function_get to fetch one function's full configuration and invocation metrics.
Inputs
app_idstringrequired- The Butterbase application ID whose functions should be listed.
butterbase_gateway_models_listList the AI models available to your personal Butterbase gateway API key, in an OpenAI-compatible format.Read-onlyList Gateway Models
List the AI models available to your personal Butterbase gateway API key, in an OpenAI-compatible format. Returns an object with a data array of model entries, each with an id, object type, and display name. Use butterbase_gateway_models_list to see which models your own key can call through the gateway's chat and embeddings endpoints. Use butterbase_public_models_list for the full public catalog with pricing and context-window details.
Inputs
This tool takes no inputs.
butterbase_image_generation_getPoll the status of a Butterbase AI image-generation job by its job id.Read-onlyGet Image Generation Job
Poll the status of a Butterbase AI image-generation job by its job id. Returns the job's status (pending, in_progress, completed, failed, cancelled, or expired) and, once the job is terminal, an array of content URLs for the generated images. Use butterbase_image_generation_get after butterbase_image_generation_create to check whether an image job has finished.
Inputs
app_idstringrequired- The id of the Butterbase app the image-generation job was submitted under.
job_idstringrequired- The id of the image-generation job to check, as returned by butterbase_image_generation_create.
butterbase_integration_connections_listList the third-party integration accounts currently connected for an end user of a Butterbase app.Read-onlyList Integration Connections
List the third-party integration accounts currently connected for an end user of a Butterbase app. Returns the end user's connected integration accounts (exact response fields are not published in Butterbase's docs). Use butterbase_integration_connections_list to check what's already connected before calling butterbase_integration_connect. Use butterbase_integration_connection_delete to remove a connection you find here.
Inputs
app_idstringrequired- The Butterbase app ID whose integration connections to list.
user_idstring- The end user whose connections to list. Butterbase's docs do not explicitly document a user-scoping parameter for this endpoint, but sibling endpoints in the Integrations API (connect, execute) require a userId field when authenticating with an API key rather than a JWT. Since this connector always authenticates with a platform API key, pass the end user's ID here so results are scoped to that user.
butterbase_integration_tools_listList the tools exposed by an end user's currently connected third-party integrations for a Butterbase app.Read-onlyList Integration Tools
List the tools exposed by an end user's currently connected third-party integrations for a Butterbase app. Returns the available tool definitions the user's connected accounts expose (exact response fields are not published in Butterbase's docs). Use butterbase_integration_tools_list to discover a toolName and its expected params, then call butterbase_integration_tool_execute to run it.
Inputs
app_idstringrequired- The Butterbase app ID whose connected-integration tools to list.
user_idstring- The end user whose connected integrations to list tools for. Butterbase's docs do not explicitly document a user-scoping parameter for this endpoint, but sibling endpoints in the Integrations API (connect, execute) require a userId field when authenticating with an API key rather than a JWT. Since this connector always authenticates with a platform API key, pass the end user's ID here if your app has more than one end user.
butterbase_integrations_available_listList or search the catalog of third-party integration toolkits (e.g.Read-onlyList Available Integrations
List or search the catalog of third-party integration toolkits (e.g. Gmail, Slack, Notion) that can be connected to a Butterbase app. Returns an array of toolkit entries, each with its slug, display name, and whether it is a curated (featured) toolkit. Use butterbase_integrations_available_list to browse or search the full catalog; use butterbase_integrations_config_list to see which toolkits are already enabled for this app.
Inputs
app_idstringrequired- The Butterbase app ID to list the integration catalog for, as shown in the app's dashboard URL or returned by the app-creation API.
searchstring- Search term to filter the integration catalog by toolkit name or slug. Omit to return the full catalog.
butterbase_integrations_config_listList the third-party integration toolkits currently enabled for a Butterbase app.Read-onlyList Enabled Integrations
List the third-party integration toolkits currently enabled for a Butterbase app. Returns the app's enabled toolkit configurations; exact response fields are not published in Butterbase's docs. Use butterbase_integrations_config_list to check what's already connected before calling butterbase_integration_configure to enable a new toolkit.
Inputs
app_idstringrequired- The Butterbase app ID to list enabled integrations for, as shown in the app's dashboard URL or returned by the app-creation API.
butterbase_kv_audit_recent_getList the most recent key-value store error events (4xx/5xx responses) for an app, for debugging denied or failed KV access.Read-onlyGet Recent KV Audit Events
List the most recent key-value store error events (4xx/5xx responses) for an app, for debugging denied or failed KV access. Returns a list of entries, each with the timestamp, HTTP method, path, status code, error code, and the key involved (when applicable). Use butterbase_kv_audit_recent_get when a caller reports unexpected KV access failures, to see whether requests are being rejected and why -- for example due to a missing or misconfigured expose rule. Use butterbase_kv_expose_rules_list to check the rules that might be causing a denial.
Inputs
app_idstringrequired- The Butterbase application ID whose recent KV error events should be listed.
limitinteger- Maximum number of recent error events to return. Defaults to 50; the API caps this at 200.default
50
butterbase_kv_existsCheck whether a key currently exists in a Butterbase app's key-value store.Read-onlyCheck KV Key Exists
Check whether a key currently exists in a Butterbase app's key-value store. Returns a boolean indicating whether the key is set. Use this as a lightweight presence check before reading or writing a key. Use butterbase_kv_get instead if you need the key's actual value.
Inputs
app_idstringrequired- The unique identifier of the Butterbase app whose key-value store should be checked.
keystringrequired- The exact key to check for existence.
butterbase_kv_expose_rules_listList every key-value expose rule configured for an app -- the glob-style key patterns that grant end-user JWTs read and/or write access, in the order they are evaluated.Read-onlyList KV Expose Rules
List every key-value expose rule configured for an app -- the glob-style key patterns that grant end-user JWTs read and/or write access, in the order they are evaluated. Returns an array of rules, each with its pattern, read role, write role, and evaluation order. Use butterbase_kv_expose_rules_list to review or audit which key patterns end users can currently reach. Use butterbase_kv_expose_rule_set to add or change a rule, and butterbase_kv_expose_rule_delete to remove one.
Inputs
app_idstringrequired- The Butterbase application ID whose key-value expose rules should be listed.
butterbase_kv_getRead the value stored at a key in a Butterbase app's key-value store.Read-onlyGet KV Value
Read the value stored at a key in a Butterbase app's key-value store. Returns the stored value as JSON; the request fails with a 404 error if the key does not exist. Use this to fetch a single KV entry by its exact key. Use butterbase_kv_exists instead if you only need to check whether the key is set, without reading its value.
Inputs
app_idstringrequired- The unique identifier of the Butterbase app whose key-value store should be read.
keystringrequired- The exact key to read from the key-value store.
touchboolean- If true, may refresh the key's time-to-live as a side effect of this read. Butterbase's docs do not detail the exact TTL behavior this triggers.
butterbase_kv_scanScan and list keys in a Butterbase app's key-value store, optionally filtered by a prefix, with cursor-based pagination.Read-onlyScan KV Keys
Scan and list keys in a Butterbase app's key-value store, optionally filtered by a prefix, with cursor-based pagination. Returns an array of matching key names plus a cursor to pass into the next call (null when there are no more results). Use butterbase_kv_scan to browse or enumerate keys by prefix. Use butterbase_kv_stats_get for aggregate usage numbers instead of individual keys.
Inputs
app_idstringrequired- The Butterbase application ID that owns this key-value store.
cursorstring- Opaque pagination cursor from a previous scan response's cursor field. Leave blank for the first page.
limitinteger- Maximum number of keys to return in this page. Butterbase applies its own default page size if omitted.
prefixstring- Only return keys starting with this prefix. Leave blank to scan all keys.
butterbase_kv_stats_getGet storage usage statistics for a Butterbase app's key-value store.Read-onlyGet KV Store Stats
Get storage usage statistics for a Butterbase app's key-value store. Returns totals such as key count, bytes used, operations per second, and the app's configured KV limits. Use butterbase_kv_stats_get to check overall KV usage. Use butterbase_kv_scan to list or search the individual keys instead.
Inputs
app_idstringrequired- The Butterbase application ID that owns this key-value store.
butterbase_kv_ttl_getGet the remaining time-to-live (TTL) for a key in a Butterbase app's key-value store.Read-onlyGet KV Key TTL
Get the remaining time-to-live (TTL) for a key in a Butterbase app's key-value store. Returns the number of seconds until the key expires, or null if the key has no expiration set. Use this to check how much longer a KV entry will exist before it is automatically removed. Use butterbase_kv_get if you also need the key's current value.
Inputs
app_idstringrequired- The unique identifier of the Butterbase app whose key-value store should be queried.
keystringrequired- The exact key to check the time-to-live for.
butterbase_mcp_servers_listList the MCP servers registered as external tool sources for an app's agents.Read-onlyList MCP Servers
List the MCP servers registered as external tool sources for an app's agents. Returns an array of MCP server records, each with its id, name, URL, and configured auth. Use butterbase_mcp_servers_list to see what's already registered before calling butterbase_mcp_server_register or butterbase_mcp_server_delete.
Inputs
app_idstringrequired- The id of the Butterbase app whose registered MCP servers you want to list.
butterbase_meeting_bot_getGet a meeting bot's current status and its recording and transcript URLs.Read-onlyGet Meeting Bot
Get a meeting bot's current status and its recording and transcript URLs. Returns the bot's id, lifecycle status (joining, waiting_room, in_call, recording, ended, done, or fatal), start/completion times, duration, bot name, metadata, and short-lived recording/transcript URLs once available. Use butterbase_meeting_bot_get to poll a bot dispatched by butterbase_meeting_bot_create until it reaches a terminal status, and fetch the URLs promptly since they expire quickly.
Inputs
app_idstringrequired- The unique identifier of the Butterbase app the meeting bot was dispatched under.
bot_idstringrequired- The unique identifier of the meeting bot to check, as returned by butterbase_meeting_bot_create or butterbase_meeting_bots_list.
butterbase_meeting_bots_listList meeting bots dispatched for a Butterbase app, optionally filtered by lifecycle status.Read-onlyList Meeting Bots
List meeting bots dispatched for a Butterbase app, optionally filtered by lifecycle status. Returns a page of bot records plus a cursor for the next page (nextCursor is null once there are no more). Use butterbase_meeting_bots_list to browse recent bots or find one by status; use butterbase_meeting_bot_get for full details on one specific bot.
Inputs
app_idstringrequired- The unique identifier of the Butterbase app whose meeting bots should be listed.
cursorstring- Pagination cursor from a previous response's nextCursor field. Pass it back here to fetch the next page. Omit for the first page.
limitinteger- Maximum number of bots to return in this page of results. Between 1 and 100; defaults to 20.default
20 statusstring- Filter results to bots currently in this lifecycle phase, e.g. joining, in_call, recording, ended, done, or fatal. Leave blank to include all statuses.
butterbase_meeting_cost_estimateEstimate the USD cost of a meeting-bot session before dispatching one, based on its expected duration.Read-onlyEstimate Meeting Bot Cost
Estimate the USD cost of a meeting-bot session before dispatching one, based on its expected duration. Returns the estimated cost in US dollars for the given duration and settings. Use butterbase_meeting_cost_estimate before butterbase_meeting_bot_create to check the price of a planned recording, especially for longer calls.
Inputs
app_idstringrequired- The unique identifier of the Butterbase app the estimate is for.
durationMinutesintegerrequired- Expected length of the meeting-bot session in minutes, from 1 to 1440 (24 hours).
transcriptboolean- Whether the estimate should include transcription cost. Defaults to true.default
true
butterbase_meeting_usage_logs_getGet recent Butterbase meeting-bot usage and billing log rows for an app.Read-onlyGet Meeting Usage Logs
Get recent Butterbase meeting-bot usage and billing log rows for an app. Returns up to the last 100 usage rows, each with its id, billed dimension (recording or transcription), seconds used, USD amount charged, and creation time. Use butterbase_meeting_usage_logs_get to review or reconcile meeting-bot billing after the fact; use butterbase_meeting_cost_estimate beforehand to predict cost instead.
Inputs
app_idstringrequired- The unique identifier of the Butterbase app whose meeting-bot usage logs should be retrieved.
butterbase_meetings_status_getCheck whether the Butterbase meeting-bot provider is currently available.Read-onlyGet Meeting Provider Status
Check whether the Butterbase meeting-bot provider is currently available. This is an unscoped public health check that needs no app id and no credentials. Returns a single boolean flag indicating availability. Use butterbase_meetings_status_get as a lightweight pre-flight check before dispatching meeting bots at scale, independent of any specific app.
Inputs
This tool takes no inputs.
butterbase_migrations_listList the database migrations that have been applied to a Butterbase app.Read-onlyList Migrations
List the database migrations that have been applied to a Butterbase app. Returns an array of migration records for the app; Butterbase's docs do not publish the exact per-migration fields, but each typically carries an id, a name, and when it was applied. Use butterbase_migrations_list to review migration history. Use butterbase_schema_apply to apply a new migration, and butterbase_schema_get to see the schema's current state.
Inputs
app_idstringrequired- The Butterbase app's unique ID whose migration history should be listed.
butterbase_people_email_lookup_getPoll a previously queued work-email lookup by its lookup ID to check whether it has resolved.Read-onlyGet Work Email Lookup Result
Poll a previously queued work-email lookup by its lookup ID to check whether it has resolved. Returns a status of pending, resolved, failed, or expired, the resolved email address (or null until resolved), and the credits consumed. Use this after calling butterbase_people_profile_email_lookup_start; poll periodically until the status is no longer pending.
Inputs
app_idstringrequired- The Butterbase app ID the lookup was started under, as shown in the app's dashboard URL or returned by the app-creation API.
lookup_idstringrequired- The UUID of the email lookup job, as returned by butterbase_people_profile_email_lookup_start.
butterbase_people_profile_getRetrieve or enrich a person's full profile from Butterbase's People database using their LinkedIn profile URL; results are cached for 30 days by default.Read-onlyGet Person Profile
Retrieve or enrich a person's full profile from Butterbase's People database using their LinkedIn profile URL; results are cached for 30 days by default. Returns identity fields (name, headline, occupation, summary, location), work experience, and education history, plus a status flag and whether the result was served from cache. Use butterbase_people_profile_get when you already know someone's LinkedIn URL; use butterbase_people_search_person first if you need to find that URL.
Inputs
app_idstringrequired- The Butterbase app ID to look up the profile under, as shown in the app's dashboard URL or returned by the app-creation API.
linkedinProfileUrlstringrequired- The person's LinkedIn profile URL. Butterbase normalizes the URL server-side, so minor formatting differences (trailing slash, query params) are tolerated.
liveFetchstring- Set to 'force' to skip the 30-day cache and make a live provider call for the freshest data. Omit to use the cached result when available.one of
force
butterbase_people_search_companySearch Butterbase's People database for companies using a free-form natural-language query plus structured filters on industry, country, and maximum employee count.Read-onlySearch Companies
Search Butterbase's People database for companies using a free-form natural-language query plus structured filters on industry, country, and maximum employee count. Returns a page of matching companies (each with a LinkedIn company URL, name, industry, country, and employee count), a pagination cursor for the next page, and the total matching result count. Use butterbase_people_search_company to find organizations matching criteria; use butterbase_people_search_person to find individual people instead.
Inputs
app_idstringrequired- The Butterbase app ID to search within, as shown in the app's dashboard URL or returned by the app-creation API.
countrystring- Filter to companies headquartered in this country.
employeeCountMaxinteger- Filter to companies with at most this many employees.
industrystring- Filter to companies operating in this industry, e.g. 'Financial Services'.
nextTokenstring- Pagination cursor from a previous response's nextPage value. Pass it back to fetch the next page of results; omit for the first page.
pageSizeinteger- Maximum number of results to return in this page, from 1 to 100. If omitted, the API's default page size is used.
querystring- Free-form natural-language description of the companies you're looking for, e.g. 'seed-stage climate tech startups'. Combines with any other filters supplied.
butterbase_people_search_personSearch Butterbase's People database for individual profiles using a free-form natural-language query plus structured filters on current or past role, company, industry, location, and education.Read-onlySearch People
Search Butterbase's People database for individual profiles using a free-form natural-language query plus structured filters on current or past role, company, industry, location, and education. Returns a page of matching results (each with a LinkedIn profile URL, a nested profile summary, and last-updated time), a pagination cursor for the next page, and the total matching result count. Use butterbase_people_search_person to find people matching criteria; use butterbase_people_profile_get once you have a specific LinkedIn URL to fetch or enrich that person's full profile.
Inputs
app_idstringrequired- The Butterbase app ID to search within, as shown in the app's dashboard URL or returned by the app-creation API.
citystring- Filter to people located in this city.
countrystring- Filter to people located in this country.
currentCompanyIndustrystring- Filter to people whose current employer operates in this industry, e.g. 'Financial Services'.
currentCompanyNamestring- Filter to people whose current employer's name matches this value.
currentRoleTitlestring- Filter to people whose current job title matches this value, e.g. 'VP of Engineering'.
educationDegreeNamestring- Filter to people who earned a degree matching this name, e.g. 'MBA'.
educationFieldOfStudystring- Filter to people who studied a field matching this value, e.g. 'Computer Science'.
educationSchoolNamestring- Filter to people who attended a school or university matching this name.
nextTokenstring- Pagination cursor from a previous response's nextPage value. Pass it back to fetch the next page of results; omit for the first page.
pageSizeinteger- Maximum number of results to return in this page, from 1 to 100. If omitted, the API's default page size is used.
pastRoleTitlestring- Filter to people who previously held a job title matching this value, e.g. 'Product Manager'.
querystring- Free-form natural-language description of the person you're looking for, e.g. 'senior backend engineers at fintech startups in Europe'. Combines with any other filters supplied.
regionstring- Filter to people located in this region or state/province.
butterbase_public_models_listList Butterbase's public catalog of AI models with per-model pricing and context-window size.Read-onlyList Public Models
List Butterbase's public catalog of AI models with per-model pricing and context-window size. Returns an array of models, each with an id, display name, input and output price per million tokens, and context window size. Use butterbase_public_models_list to compare models and estimate cost before picking one. Use butterbase_gateway_models_list to see only the models your own API key is allowed to call.
Inputs
This tool takes no inputs.
butterbase_public_run_events_listFetch every event recorded for a public agent run as a single JSON array, instead of connecting to the run's live event stream.Read-onlyList Public Run Events
Fetch every event recorded for a public agent run as a single JSON array, instead of connecting to the run's live event stream. Returns an array of event objects covering the run's lifecycle — run_start, node_start, node_end, tool_call_start, tool_call_end, llm_token_usage, run_paused, run_cancelled, run_failed, and run_end. Use butterbase_public_run_events_list to review a public run's full event history. Use butterbase_public_run_get instead for just the run's current summary state. Butterbase normally authorizes this route with the app's public anon key rather than the platform API key; this connector calls it with your configured platform API key instead. CONFIRMED via a dedicated live investigation: the underlying Butterbase endpoint works correctly and returns a genuine success when called with a valid end-user access token (obtained via butterbase_auth_login) -- this was previously only ever tested with the wrong credential type (this connector's platform key), which always 401s. HOWEVER, this connector has no way to actually supply that end-user token: Scalekit's execution engine controls the Authorization header for a BEARER connection server-side and rejects a client-supplied Authorization header override outright (confirmed via direct SDK-level testing -- a custom header is rejected with its own 401 before ever reaching Butterbase). This tool will therefore always fail via the standard execution path on this connector, by platform design, not due to a fixable tool-JSON defect -- it would need a future Scalekit auth-strategy feature (e.g. a per-call token override) to ever work through this connector.
Inputs
app_idstringrequired- The id of the Butterbase app the public run belongs to.
idstringrequired- The id of the public run whose events you want to fetch.
butterbase_public_run_getFetch the current state of a public agent run, started via the app's public anon key.Read-onlyGet Public Run
Fetch the current state of a public agent run, started via the app's public anon key. Returns the run object, including its status and result once the run finishes. Use butterbase_public_run_get to poll a run started by butterbase_public_agent_run_create. Use butterbase_agent_run_get instead for a run started with platform authentication. Butterbase normally authorizes this route with the app's public anon key rather than the platform API key; this connector calls it with your configured platform API key instead. CONFIRMED via a dedicated live investigation: the underlying Butterbase endpoint works correctly and returns a genuine success when called with a valid end-user access token (obtained via butterbase_auth_login) -- this was previously only ever tested with the wrong credential type (this connector's platform key), which always 401s. HOWEVER, this connector has no way to actually supply that end-user token: Scalekit's execution engine controls the Authorization header for a BEARER connection server-side and rejects a client-supplied Authorization header override outright (confirmed via direct SDK-level testing -- a custom header is rejected with its own 401 before ever reaching Butterbase). This tool will therefore always fail via the standard execution path on this connector, by platform design, not due to a fixable tool-JSON defect -- it would need a future Scalekit auth-strategy feature (e.g. a per-call token override) to ever work through this connector.
Inputs
app_idstringrequired- The id of the Butterbase app the public run belongs to.
idstringrequired- The id of the public run to fetch, as returned by butterbase_public_agent_run_create.
butterbase_rag_collection_getGet a single RAG collection's configuration plus its document and chunk counts.Read-onlyGet RAG Collection
Get a single RAG collection's configuration plus its document and chunk counts. Returns the collection's name, description, access mode, chunk size, chunk overlap, timestamps, document count, and chunk count. Use butterbase_rag_collection_get to check one collection's size and settings. Use butterbase_rag_collections_list to browse all collections in the app.
Inputs
app_idstringrequired- The Butterbase app ID that owns this collection. Found in the app's dashboard URL or via Butterbase's apps listing.
namestringrequired- The name of the RAG collection to fetch, exactly as it was created (lowercase letters, numbers, hyphens, and underscores).
butterbase_rag_collections_listList all RAG document collections defined in a Butterbase app.Read-onlyList RAG Collections
List all RAG document collections defined in a Butterbase app. Returns an array of collection objects, each with its name, description, access mode, chunk size, chunk overlap, and creation/update timestamps. Use butterbase_rag_collections_list to browse existing collections. Use butterbase_rag_collection_get for one collection's full details, including its document and chunk counts.
Inputs
app_idstringrequired- The Butterbase app ID whose collections you want to list. Found in the app's dashboard URL or via Butterbase's apps listing.
butterbase_rag_document_getGet a single RAG document's ingestion status and metadata by its document id.Read-onlyGet RAG Document
Get a single RAG document's ingestion status and metadata by its document id. Returns the document's id, collection id, filename, status (pending, processing, ready, or failed), chunk count, metadata, any error message, and timestamps. Use butterbase_rag_document_get to poll a document after butterbase_rag_document_ingest until its status is ready or failed. Use butterbase_rag_documents_list to see all documents in a collection.
Inputs
app_idstringrequired- The Butterbase app ID that owns this collection. Found in the app's dashboard URL or via Butterbase's apps listing.
document_idstringrequired- The id of the document to fetch, as returned by butterbase_rag_document_ingest or butterbase_rag_documents_list.
namestringrequired- The name of the RAG collection that contains this document, exactly as it was created.
butterbase_rag_documents_listList all documents that have been ingested, or are being ingested, into a RAG collection.Read-onlyList RAG Documents
List all documents that have been ingested, or are being ingested, into a RAG collection. Returns an array of document objects, each with its id, filename, ingestion status, chunk count, metadata, and timestamps. Use butterbase_rag_documents_list to see every document in a collection. Use butterbase_rag_document_get to check one document's ingestion status in detail.
Inputs
app_idstringrequired- The Butterbase app ID that owns this collection. Found in the app's dashboard URL or via Butterbase's apps listing.
namestringrequired- The name of the RAG collection whose documents you want to list, exactly as it was created.
butterbase_rag_queryRun a semantic search over a RAG collection's ingested documents, optionally synthesizing an AI-generated answer from the matched chunks.Read-onlyQuery RAG Collection
Run a semantic search over a RAG collection's ingested documents, optionally synthesizing an AI-generated answer from the matched chunks. Returns matching chunks with their text, similarity score, source document id, and metadata; when synthesis is requested, also returns a generated answer and the model used. Use butterbase_rag_query to retrieve relevant context or a synthesized answer for a user's question. Use butterbase_rag_document_get first if you need to confirm a document has finished ingesting before querying.
Inputs
app_idstringrequired- The Butterbase app ID that owns this collection. Found in the app's dashboard URL or via Butterbase's apps listing.
namestringrequired- The name of the RAG collection to search, exactly as it was created.
querystringrequired- The natural-language search query to run against the collection's ingested chunks.
filterobject- Optional metadata key/value filter to restrict which documents' chunks are searched, matching values previously attached via butterbase_rag_document_ingest's metadata field.
modelstring- Model to use for answer synthesis, e.g. anthropic/claude-haiku-4.5. Only used when synthesize is true. If omitted, Butterbase auto-selects a model. CONFIRMED via live testing: this tool's own prior placeholder ("anthropic/claude-haiku-4-5", hyphenated) causes a synthesize=true call to fail with a raw HTTP 500 -- the working id uses a period before the minor version instead ("anthropic/claude-haiku-4.5"). Note Butterbase also returns a 500 rather than a clean 4xx for an unrecognized model id on this endpoint -- an upstream API quirk, not something this tool can guard against client-side.
synthesizeboolean- When true, also generate an AI-synthesized natural-language answer from the matched chunks instead of returning only raw chunks. Defaults to false.default
false thresholdnumber- Minimum cosine similarity score (0 to 1) a chunk must meet to be included in the results. If omitted, no minimum is enforced.
topKnumber- Maximum number of matching chunks to return. Defaults to 5 if omitted.default
5
butterbase_regions_listList the regions available for creating new Butterbase apps.Read-onlyList Regions
List the regions available for creating new Butterbase apps. Returns an array of region identifier strings (e.g. us-east-1, us-west-2) that Butterbase currently supports. Use butterbase_regions_list before butterbase_app_create or butterbase_app_move to pick a valid region value.
Inputs
This tool takes no inputs.
butterbase_repo_blob_getGet a presigned download URL for one app repo blob, looked up by its SHA-256 hash.Read-onlyGet Repo Blob Download URL
Get a presigned download URL for one app repo blob, looked up by its SHA-256 hash. Returns a presigned URL and its expiry (field names inferred by analogy with Butterbase's Storage API presigned-URL responses; not shown verbatim in the repo docs). Use butterbase_repo_blob_get to download a single known blob. Use butterbase_repo_blobs_batch_presign to get presigned URLs for many blobs in one call.
Inputs
app_idstringrequired- The id of the app whose repo the blob belongs to.
sha256stringrequired- The SHA-256 hash (64 lowercase hex characters) identifying the blob to download, as it appears in a repo snapshot manifest.
butterbase_repo_snapshot_getGet a specific app repo snapshot's manifest by its snapshot id.Read-onlyGet Repo Snapshot
Get a specific app repo snapshot's manifest by its snapshot id. Returns the manifest object for that snapshot (exact fields are not published in Butterbase's docs, but it lists each tracked file's path, SHA-256 hash, and size). Use butterbase_repo_snapshot_get to fetch one specific snapshot by id. Use butterbase_repo_snapshot_latest_get for the current one, or butterbase_repo_snapshots_list to find snapshot ids to look up.
Inputs
app_idstringrequired- The id of the app whose repo the snapshot belongs to.
snapshot_idstringrequired- The id of the specific snapshot to fetch, as returned by butterbase_repo_snapshots_list or butterbase_repo_snapshot_commit.
butterbase_repo_snapshot_latest_getGet the manifest of an app's current (latest) repo snapshot.Read-onlyGet Latest Repo Snapshot
Get the manifest of an app's current (latest) repo snapshot. Returns the manifest object for the most recent snapshot (exact fields are not published in Butterbase's docs, but it lists each tracked file's path, SHA-256 hash, and size). Use butterbase_repo_snapshot_latest_get to see what's currently committed. Use butterbase_repo_snapshot_get for a specific historical snapshot by id, or butterbase_repo_snapshots_list to browse the full history.
Inputs
app_idstringrequired- The id of the app whose latest repo snapshot to fetch.
butterbase_repo_snapshots_listList the snapshot history for an app's repo.Read-onlyList Repo Snapshots
List the snapshot history for an app's repo. Returns an array of snapshot records for the app (exact fields are not published in Butterbase's docs, but each typically includes a snapshot id, commit message, and timestamp). Use butterbase_repo_snapshots_list to browse an app's snapshot history. Use butterbase_repo_snapshot_get to fetch one specific snapshot's manifest by id, or butterbase_repo_snapshot_latest_get for the current one.
Inputs
app_idstringrequired- The id of the app whose repo snapshot history to list.
butterbase_schema_getRead an app's current declarative database schema from Butterbase, describing its tables and columns.Read-onlyGet App Schema
Read an app's current declarative database schema from Butterbase, describing its tables and columns. Returns the app's schema definition (Butterbase's docs do not publish which exact fields are included, such as whether relationships and constraints are shown). Use butterbase_schema_get to inspect an app's data model before writing rows, applying a migration, or confirming a table or column name.
Inputs
app_idstringrequired- The Butterbase application ID whose database schema you want to read, as returned when the app was created or from butterbase_apps_list. Example: app_abc123.
butterbase_storage_download_url_getGet a presigned URL for downloading an existing file from a Butterbase app's storage.Read-onlyGet Storage Download URL
Get a presigned URL for downloading an existing file from a Butterbase app's storage. Returns a short-lived download URL, the file's original filename, and the URL's expiry in seconds (1 hour by default). Use this to obtain a temporary link for a specific file once you have its object ID; use butterbase_storage_objects_list first to find the object ID of the file you want.
Inputs
app_idstringrequired- The unique identifier of the Butterbase app that owns the file.
object_idstringrequired- The unique identifier of the stored file to generate a download URL for. Get this from butterbase_storage_objects_list or from the objectId returned by butterbase_storage_upload_url_create.
butterbase_storage_objects_listList all files stored in a Butterbase app's storage.Read-onlyList Storage Objects
List all files stored in a Butterbase app's storage. This endpoint has no documented pagination or filtering and returns the full set of objects for the app. Returns an array of file objects, each with its id, filename, content type, size in bytes, and creation time. Use this to browse or discover the files stored for an app, then use butterbase_storage_download_url_get with a file's id to get a download link for it.
Inputs
app_idstringrequired- The unique identifier of the Butterbase app whose stored files should be listed.
butterbase_substrate_action_getGet a single Substrate action from the proposal/approval ledger by its ID.Read-onlyGet Substrate Action
Get a single Substrate action from the proposal/approval ledger by its ID. Returns the action's capability, payload, verdict, status, and any capability-specific result. Use butterbase_substrate_action_get to check on one action's outcome after proposing it with butterbase_substrate_action_propose, or after finding its ID via butterbase_substrate_actions_list. Requires a Butterbase Substrate-scoped API key (bb_sub_...), not the general platform key.
Inputs
action_idstringrequired- The unique identifier of the Substrate action to fetch, as returned by butterbase_substrate_action_propose or a list of actions.
butterbase_substrate_actions_listList actions in the Substrate proposal/approval ledger, optionally filtered by status, capability, source app, or source attention rule.Read-onlyList Substrate Actions
List actions in the Substrate proposal/approval ledger, optionally filtered by status, capability, source app, or source attention rule. Returns an array of action records with each action's id, capability, payload, verdict, and status, newest first, with a before-timestamp cursor for paging further back. Use butterbase_substrate_actions_list to browse or audit the ledger. Use butterbase_substrate_action_get to fetch one specific action by ID. Requires a Butterbase Substrate-scoped API key (bb_sub_...), not the general platform key.
Inputs
beforestring- Only return actions proposed before this ISO 8601 timestamp. Use the earliest updated_at/created_at value from a previous page to page further back in time (keyset pagination). Omit to start from now.
capabilitystring- Filter results to actions proposed with exactly this capability, e.g. record_decision or upsert_entity. Omit to return actions of every capability.
limitinteger- Maximum number of actions to return, from 1 to 500. Defaults to 100 if omitted.default
100 source_app_idstring- Filter results to actions originally proposed by this Butterbase app (via an installed integration). Omit to include actions from every source.
source_rule_idstring- Filter results to actions that were fired by this Substrate attention rule. Omit to include actions from every source.
statusstring- Filter results to actions in exactly this status. Omit to return actions in every status.one of
proposedexecutedrejected
butterbase_substrate_attention_rule_firings_listList the past firings recorded for one Substrate attention rule — each time its condition matched and it proposed an action.Read-onlyList Attention Rule Firings
List the past firings recorded for one Substrate attention rule — each time its condition matched and it proposed an action. Returns an array of firing records for the rule. Butterbase's docs do not publish the exact per-firing fields or this endpoint's query parameters, so the optional limit and before filters below follow the same limit-plus-before keyset pagination convention used by other Substrate list endpoints, not a shape confirmed for this specific endpoint. Use butterbase_substrate_attention_rule_firings_list to audit or debug when and why a rule fired; each firing's action_id can be looked up in the Substrate actions ledger for full details. Requires a Butterbase Substrate-scoped API key (bb_sub_...) — a standard platform API key is rejected with a 403 on all Substrate endpoints.
Inputs
rule_idstringrequired- The unique id of the attention rule whose past firings should be listed, as returned by butterbase_substrate_attention_rule_create or a prior list call.
beforestring- Keyset pagination cursor: only return firings recorded before this ISO 8601 timestamp. Not explicitly documented for this endpoint; inferred from the same before-cursor pattern used elsewhere in the Substrate API (e.g. the actions ledger and memory/list). Leave unset to get the most recent firings first.
limitinteger- Maximum number of firing records to return. Not explicitly documented for this endpoint; other Substrate list endpoints cap this between 1 and 500 with a server-side default around 50-100. Leave unset to use Butterbase's default page size.
butterbase_substrate_attention_rule_getFetch a single Substrate attention rule by its id.Read-onlyGet Substrate Attention Rule
Fetch a single Substrate attention rule by its id. Returns the rule's id, name, description, cron schedule, condition mode and predicate, action capability and payload template, enabled state, and daily fire cap. Use butterbase_substrate_attention_rule_get when you already have a rule id. Use butterbase_substrate_attention_rules_list to find that id first. This endpoint requires a Butterbase Substrate-scoped API key (bb_sub_...) — a general platform key (bb_sk_...) is rejected with a 403.
Inputs
rule_idstringrequired- The unique id of the Substrate attention rule to fetch.
butterbase_substrate_attention_rules_listList the attention rules configured on your Butterbase Substrate account — automations that run on a cron schedule, evaluate a condition, and propose an action when it fires.Read-onlyList Substrate Attention Rules
List the attention rules configured on your Butterbase Substrate account — automations that run on a cron schedule, evaluate a condition, and propose an action when it fires. Returns an array of rule records, each with its id, name, description, cron schedule, condition mode and predicate, action capability and payload template, enabled state, and daily fire cap. Use butterbase_substrate_attention_rules_list to review configured rules. Use butterbase_substrate_attention_rule_get to fetch one rule's full details by id. This endpoint requires a Butterbase Substrate-scoped API key (bb_sub_...) — a general platform key (bb_sk_...) is rejected with a 403.
Inputs
This tool takes no inputs.
butterbase_substrate_entities_listList entities tracked in your Butterbase Substrate memory (people, companies, funds, workspaces, teams, projects, events, or agents), optionally filtered by type or a display-name search.Read-onlyList Substrate Entities
List entities tracked in your Butterbase Substrate memory (people, companies, funds, workspaces, teams, projects, events, or agents), optionally filtered by type or a display-name search. Returns an array of entity records, each with its id, type, display name, and attributes; pass count=true to also get a total count. Use butterbase_substrate_entities_list to browse or filter entities. Use butterbase_substrate_entity_get to fetch one entity's full details by id. This endpoint requires a Butterbase Substrate-scoped API key (bb_sub_...) — a general platform key (bb_sk_...) is rejected with a 403.
Inputs
countboolean- When true, intended to include a total matching-entity count alongside the results. CONFIRMED via live testing: this currently has no observable effect -- the response is always exactly {"entities": [...]} with no separate count/total field, across every combination tested. Likely a dead/no-op parameter upstream, or the count is only added under conditions not yet identified.default
false limitinteger- Maximum number of entities to return, from 1 to 200. Defaults to 50 when omitted.default
50 qstring- Case-insensitive search term matched against each entity's display name.
typestring- Restrict results to entities of this type.one of
personcompanyfundworkspaceteamprojecteventagentself
butterbase_substrate_entity_getFetch a single entity from your Butterbase Substrate memory by its id.Read-onlyGet Substrate Entity
Fetch a single entity from your Butterbase Substrate memory by its id. Returns the entity's id, type, display name, and its full attributes object. Use butterbase_substrate_entity_get when you already have an entity id. Use butterbase_substrate_entities_list to browse or search for that id first. This endpoint requires a Butterbase Substrate-scoped API key (bb_sub_...) — a general platform key (bb_sk_...) is rejected with a 403.
Inputs
entity_idstringrequired- The unique id of the Substrate entity to fetch.
butterbase_substrate_memory_listBrowse Substrate memory items — decisions, commitments, learnings, and source artifacts — in reverse-chronological order, using structural filters instead of a text search.Read-onlyBrowse Substrate Memory
Browse Substrate memory items — decisions, commitments, learnings, and source artifacts — in reverse-chronological order, using structural filters instead of a text search. Returns an array of items, each with its id, kind, title, body text, status, supersession info, and update time, plus a next_before cursor to fetch the next page (null when there are no more pages). Use butterbase_substrate_memory_list to page through memory by recency, restrict to one artifact's extracted items, or exclude superseded/expired items. Use butterbase_substrate_memory_search for a relevance-ranked text query instead. This endpoint requires a Butterbase Substrate-scoped API key (bb_sub_...) — a general platform key (bb_sk_...) is rejected with a 403.
Inputs
beforestring- Keyset pagination cursor: an ISO 8601 timestamp. Returns items updated before this time. Pass the previous response's next_before to get the next page.
kindsstring- Comma-separated subset of item kinds to include: decisions, commitments, learnings, source_artifacts. Leave unset to include all kinds.
limitinteger- Maximum number of items to return, from 1 to 100. Defaults to 25 when omitted.default
25 source_artifact_idstring- Restrict results to the decisions, commitments, and learnings extracted from this one source artifact.
supersededboolean- Filter by supersession state: false excludes superseded decisions and expired commitments; true includes only those; leave unset to include both.
butterbase_substrate_memory_searchRun a relevance-ranked full-text search across your Butterbase Substrate memory — decisions, commitments, learnings, and source artifacts — for a query string.Read-onlySearch Substrate Memory
Run a relevance-ranked full-text search across your Butterbase Substrate memory — decisions, commitments, learnings, and source artifacts — for a query string. Returns an array of matching items, each with its id, kind, title, body text, relevance rank, status, and update time; omitting the query returns the most recently updated items instead, with rank set to null. Use butterbase_substrate_memory_search for a relevance-ranked text query. Use butterbase_substrate_memory_list to browse chronologically with structural filters instead of a search term. This endpoint requires a Butterbase Substrate-scoped API key (bb_sub_...) — a general platform key (bb_sk_...) is rejected with a 403.
Inputs
kindsstring- Comma-separated subset of item kinds to search: decisions, commitments, learnings, source_artifacts. Leave unset to search all kinds.
limitinteger- Maximum number of results to return, from 1 to 200. Defaults to 20 when omitted.default
20 matchstring- How multi-word queries are matched: and (all terms must appear), or (any term may appear), or phrase (terms must appear together, in order).one of
andorphrasedefaultand qstring- Full-text search query. Omit or pass * to list the most recently updated items instead of searching.
butterbase_substrate_outbox_targets_listList the outbound webhook targets currently registered for your Substrate account, one per capability.Read-onlyList Outbox Targets
List the outbound webhook targets currently registered for your Substrate account, one per capability. Returns an array of target records. Butterbase's docs do not detail the exact fields returned per target beyond what was used to register it (the webhook_url and, if set, the source_app_id scope); the signing_secret itself is not expected to be echoed back. Use butterbase_substrate_outbox_targets_list to check which capabilities already have a webhook configured before calling butterbase_substrate_outbox_target_set to add or replace one. Requires a Butterbase Substrate-scoped API key (bb_sub_...) — a standard platform API key is rejected with a 403 on all Substrate endpoints.
Inputs
This tool takes no inputs.
butterbase_substrate_settings_getGet the current user's Substrate settings, including whether yolo mode (auto-approve all proposed actions) is enabled.Read-onlyGet Substrate Settings
Get the current user's Substrate settings, including whether yolo mode (auto-approve all proposed actions) is enabled. Returns the user's Substrate toggle settings as a JSON object. Use butterbase_substrate_settings_get to check current settings before changing yolo mode with butterbase_substrate_yolo_mode_set. Requires a Butterbase Substrate-scoped API key (bb_sub_...), not the general platform key.
Inputs
This tool takes no inputs.
butterbase_substrate_snapshots_getGet daily rollup snapshots of Substrate activity, the same data attention rules use for their snapshot_predicate conditions.Read-onlyGet Substrate Snapshots
Get daily rollup snapshots of Substrate activity, the same data attention rules use for their snapshot_predicate conditions. Returns an array of snapshot records, each with a snapshot_date, entity_count, and decision_count (Butterbase's docs do not publish further fields). Use butterbase_substrate_snapshots_get to review recent daily activity trends or to sanity-check a snapshot_predicate condition before creating an attention rule with butterbase_substrate_attention_rule_create. This endpoint requires a Butterbase Substrate-scoped API key (bb_sub_...) — a general platform key (bb_sk_...) is rejected with a 403.
Inputs
daysinteger- Number of most-recent historical days of snapshots to return. Leave unset to use Butterbase's default range.
butterbase_substrate_source_artifact_getFetch a single Substrate source artifact by its id, including its full content rather than the summary shown in list results.Read-onlyGet Substrate Source Artifact
Fetch a single Substrate source artifact by its id, including its full content rather than the summary shown in list results. Returns the artifact's id, kind, external system and id, title, summary, full content, url, linked entity ids and project tags, attributes, source app, and timestamps. Use butterbase_substrate_source_artifact_get when you already have an artifact id and need its full text. Use butterbase_substrate_source_artifacts_list or butterbase_substrate_memory_search to find that id first. This endpoint requires a Butterbase Substrate-scoped API key (bb_sub_...) — a general platform key (bb_sk_...) is rejected with a 403.
Inputs
artifact_idstringrequired- The unique id of the Substrate source artifact to fetch.
butterbase_substrate_source_artifacts_listList or full-text-search source artifacts in your Butterbase Substrate memory — ingested content such as meeting transcripts and documents, typically synced in from connected apps.Read-onlyList Substrate Source Artifacts
List or full-text-search source artifacts in your Butterbase Substrate memory — ingested content such as meeting transcripts and documents, typically synced in from connected apps. Returns an array of artifact summaries, each with its id, kind, external system and id, title, summary, url, linked entity ids and project tags, attributes, source app, and timestamps. Use butterbase_substrate_source_artifacts_list to browse artifact summaries or run a keyword search. Use butterbase_substrate_source_artifact_get to fetch one artifact's full content by id. This endpoint requires a Butterbase Substrate-scoped API key (bb_sub_...) — a general platform key (bb_sk_...) is rejected with a 403.
Inputs
countboolean- When true, intended to include a total matching-artifact count alongside the results. CONFIRMED via live testing: this currently has no observable effect -- the response is always exactly {"source_artifacts": [...]} with no separate count/total field, tried as both a boolean and a literal "true" string, including against a limit that truncates real results. Likely a dead/no-op parameter upstream (same behavior confirmed on butterbase_substrate_entities_list's identical count field).default
false kindstring- Restrict results to artifacts of this kind, e.g. meeting_transcript.
limitinteger- Maximum number of artifacts to return, from 1 to 200. Defaults to 50 when omitted.default
50 qstring- Full-text search term matched against each artifact's title, summary, and content.
butterbase_table_row_getRetrieve a single row from a Butterbase app table by its primary key, with optional column selection, extra PostgREST-style filters, sort order, and limit/offset.Read-onlyGet Table Row
Retrieve a single row from a Butterbase app table by its primary key, with optional column selection, extra PostgREST-style filters, sort order, and limit/offset. Returns the matching row's column values (Butterbase's docs do not publish the exact response shape for this endpoint). Use butterbase_table_row_get when you already know the row's id; use butterbase_table_rows_list to search or browse across a table.
Inputs
app_idstringrequired- The Butterbase application ID that owns the table, as returned when the app was created or from butterbase_apps_list. Example: app_abc123.
idstringrequired- The primary key value of the row to retrieve, matching whatever type the table's primary key column uses (e.g. an integer id or a UUID). Example: 42.
tablestringrequired- The name of the table to read from, exactly as defined in the app's schema (see butterbase_schema_get). Example: posts.
filtersobject- Optional extra PostgREST-style filters that the row must also satisfy, as a JSON object mapping any column name to an 'operator.value' string. Supported operators: eq, neq, gt, gte, lt, lte, like, ilike, is, in, and fts (full-text search). Example: {"status": "eq.published"}. KNOWN PLATFORM LIMITATION: this field is currently NOT forwarded to the API (Scalekit's query-parameter mapping only supports a fixed set of named parameters, not arbitrary column names) -- setting it has no effect. Use select/order/limit/offset instead, or filter results client-side.
limitinteger- Optional maximum number of rows to return. Rarely needed for a single-row lookup by id, but accepted by the underlying endpoint. Example: 1.
offsetinteger- Optional number of matching rows to skip before returning results. Rarely needed for a single-row lookup by id, but accepted by the underlying endpoint. Example: 0.
orderstring- Optional sort order to apply, as 'column.direction'. Rarely needed for a single-row lookup by id, but accepted by the underlying endpoint. Example: created_at.desc.
selectstring- Optional comma-separated list of column names to include in the response, limiting the row to just those columns. Example: id,title,created_at. Leave blank to return all columns. CONFIRMED via live testing: this field is correctly forwarded to the API (verified via a raw query-string check) but the single-row-by-id endpoint currently ignores it and always returns every column regardless -- unlike butterbase_table_rows_list, whose identical select support genuinely works. This is an upstream Butterbase endpoint limitation, not a tool defect.
butterbase_table_rows_listList rows from a table in a Butterbase app, with optional PostgREST-style column filters, sort order, column selection, and offset-based pagination.Read-onlyList Table Rows
List rows from a table in a Butterbase app, with optional PostgREST-style column filters, sort order, column selection, and offset-based pagination. Returns the matching rows (Butterbase's docs do not publish the exact response envelope for this endpoint, so expect either a bare array or an array wrapped with metadata). Use butterbase_table_rows_list to browse or query many rows at once; use butterbase_table_row_get to fetch one specific row by its primary key.
Inputs
app_idstringrequired- The Butterbase application ID that owns the table, as returned when the app was created or from butterbase_apps_list. Example: app_abc123.
tablestringrequired- The name of the table to list rows from, exactly as defined in the app's schema (see butterbase_schema_get). Example: posts.
filtersobject- Optional PostgREST-style filters to narrow the rows returned, as a JSON object mapping any column name to an 'operator.value' string. Supported operators: eq, neq, gt, gte, lt, lte, like, ilike, is, in, and fts (full-text search). Example: {"status": "eq.published", "age": "gte.18"}. KNOWN PLATFORM LIMITATION: this field is currently NOT forwarded to the API (Scalekit's query-parameter mapping only supports a fixed set of named parameters, not arbitrary column names) -- setting it has no effect. Use select/order/limit/offset instead, or filter results client-side.
limitinteger- Optional maximum number of rows to return. Example: 20.
offsetinteger- Optional number of matching rows to skip before returning results, for pagination. Example: 40 skips the first 40 rows.
orderstring- Optional sort order for the returned rows, as 'column.direction', comma-separated for multiple columns. Example: created_at.desc or name.asc,created_at.desc.
selectstring- Optional comma-separated list of column names to include in the response, limiting each row to just those columns. Example: id,title,created_at. Leave blank to return all columns.
butterbase_template_getGet full details of one public Butterbase app template.Read-onlyGet Template
Get full details of one public Butterbase app template. Returns the template's detail object as published by Butterbase (its description and configuration; exact fields are not documented). Use butterbase_template_get after finding a template with butterbase_templates_list. Use butterbase_template_clone instead to create a new app from it.
Inputs
app_idstringrequired- The template's app ID, i.e. the app_id of the public app that serves as this template (as returned by butterbase_templates_list).
butterbase_templates_listDiscover public Butterbase app templates, optionally filtered by search text or region and sorted.Read-onlyList Templates
Discover public Butterbase app templates, optionally filtered by search text or region and sorted. Returns a page of template items alongside the total matching count, limit, and offset used. Use butterbase_templates_list to browse or search templates before cloning one. Use butterbase_template_get instead to fetch full details for one specific template you already know the ID of.
Inputs
limitinteger- Maximum number of templates to return in this page of results. Defaults to 20 if omitted.default
20 offsetinteger- Number of matching templates to skip before returning results, for paging through the list. Defaults to 0.default
0 qstring- Free-text search query matched against template name/description. If omitted, all public templates are returned (subject to other filters).
regionstring- Restrict results to templates whose source app lives in this region. Use a region identifier from butterbase_regions_list, e.g. us-east-1.
sortstring- Sort order for the returned templates. The exact set of accepted sort keys is not published in Butterbase's docs; common values like 'popular' or 'newest' are a reasonable starting point.
butterbase_video_generation_getPoll the status of a Butterbase AI video-generation job by its job id.Read-onlyGet Video Generation Job
Poll the status of a Butterbase AI video-generation job by its job id. Returns the job's status (pending, in_progress, completed, failed, cancelled, or expired) and, once the job is terminal, an array of content URLs for the generated video. Use butterbase_video_generation_get after butterbase_video_generation_create to check whether a video job has finished.
Inputs
app_idstringrequired- The id of the Butterbase app the video-generation job was submitted under.
job_idstringrequired- The id of the video-generation job to check, as returned by butterbase_video_generation_create.
butterbase_agent_createCreate a new agent in a Butterbase app from a tool-calling graph specification.WriteCreate Agent
Create a new agent in a Butterbase app from a tool-calling graph specification. Returns the created agent's name, model, visibility, and creation timestamp; Butterbase's docs don't publish the full response shape. Use butterbase_agent_create to define a brand-new agent. Use butterbase_agent_validate first to check a graph_spec before saving it, and butterbase_agent_update to change an agent afterward.
Inputs
app_idstringrequired- The Butterbase app's unique ID to create the agent in.
default_modelstringrequired- The model this agent's llm nodes use by default, in Butterbase's provider/model id format (e.g. anthropic/claude-haiku-4-5). Individual llm nodes in graph_spec can override this per node.
graph_specobjectrequired- The agent's tool-calling graph specification. FULLY CONFIRMED live via butterbase_agent_validate and an end-to-end agent run (Butterbase's docs previously described a different, incorrect shape). The object requires: spec_version (string, e.g. "1"), entry (the starting node id), nodes (an OBJECT keyed by node id — each llm node needs type:"llm", model, system_prompt, input_template, and output_key (the state key its output is written to); each end node needs type:"end" and output_template), edges (a top-level ARRAY of {"from": "<node_id>", "to": "<node_id>"} objects connecting the nodes — node linking is NOT a per-node field), tools (object: {"builtin": [], "mcp_servers": [], "functions": []}), and limits (object with 5 required numeric fields: max_steps, max_tool_calls, max_parallel_tools, timeout_seconds, human_timeout_seconds). Node prompts and templates can reference shared run state via {{ state.key }} templating. Example (validated live, ran to completion): {"spec_version": "1", "entry": "start", "nodes": {"start": {"type": "llm", "model": "anthropic/claude-haiku-4-5", "system_prompt": "You are a helpful assistant.", "input_template": "{{ state.user_question }}", "output_key": "answer"}, "done": {"type": "end", "output_template": "{{ state.answer }}"}}, "edges": [{"from": "start", "to": "done"}], "tools": {"builtin": [], "mcp_servers": [], "functions": []}, "limits": {"max_steps": 10, "max_tool_calls": 10, "max_parallel_tools": 1, "timeout_seconds": 60, "human_timeout_seconds": 3600}} ADDITIONAL CONFIRMED FACTS (from a dedicated live investigation): graph_spec.nodes[id].type actually has THREE valid values, not two -- "llm", "tool", and "end" (confirmed via agent_validate's own invalid_union_discriminator error). A "tool" node calls exactly one tool deterministically as its own graph step (distinct from an "llm" node, where the model decides whether/when to call from its available tools list); it needs {"type": "tool", "tool_ref": <tool reference, see below>, "args_template": <object, may use {{ state.* }} templating>, "output_key": "<string>"}. Separately: an "llm" node's per-node "tools" array entries, and a "tool" node's "tool_ref", are NOT plain strings -- they are a discriminated union keyed by "source": {"source": "builtin", "name": "<string>"} for a builtin tool (confirmed real names: delete_row, update_row -- validate does not check tool-name existence, only the runtime does, failing fast with a clean "unknown builtin tool" error if wrong), {"source": "mcp", "server_id": "<string>", "name": "<string>"} for an MCP tool, or {"source": "function", "name": "<string>"} for a Butterbase function. This is a completely separate shape from the top-level graph_spec.tools.{builtin, mcp_servers, functions} registration object, which remains flat string arrays as originally documented -- that object registers what the agent may use overall, while each node's own tools/tool_ref field is where a specific tool is actually referenced and invoked. Confirmed end-to-end: a "tool" node targeting {"source": "builtin", "name": "delete_row"} successfully deleted a real row and produced a full run_start -> node_start -> tool_call_start -> tool_call_end -> node_end -> run_end event trace.
namestringrequired- A unique, URL-safe name for the agent within this app. Used as the {name} path segment in every other agent and run endpoint, so pick something stable.
safety_acknowledgedbooleanrequired- Confirms you've reviewed this agent's graph_spec for tool calls that can take real-world action (e.g. sending email, modifying data) and accept the associated risk. Butterbase requires this to be true before it will create the agent.
visibilitystringrequired- Whether this agent can be run anonymously through its /public/agents/{name}/runs endpoint (public), only via authenticated calls made with your platform API key (private), or only by a signed-in end-user session (authenticated) -- CONFIRMED via live testing as a valid, accepted third value not previously documented here.one of
publicprivateauthenticated daily_budget_usdnumber- Caps this agent's total spend per day in US dollars; Butterbase stops starting new runs once the cap is hit for the day. Omit for no daily budget cap.
descriptionstring- A free-text description of what the agent does, for your own reference; not shown to end users.
display_namestring- A human-friendly label for the agent shown in the Butterbase dashboard. Falls back to name if omitted.
max_concurrent_runsinteger- Caps how many runs of this agent can be in progress at the same time across all users. Omit for no concurrency limit.
max_runs_per_user_per_hourinteger- Caps how many runs a single end user can start against this agent per hour, for authenticated per-user rate limiting. Omit for no per-user limit.
butterbase_agent_run_cancelCancel a queued or in-progress run of a Butterbase agent.WriteCancel Agent Run
Cancel a queued or in-progress run of a Butterbase agent. Returns the run's updated status. Use butterbase_agent_run_cancel to stop a run that's no longer needed. Use butterbase_agent_run_get afterward to confirm it stopped.
- Idempotent
Inputs
app_idstringrequired- The Butterbase app's unique ID the agent belongs to.
namestringrequired- The unique name of the agent the run belongs to.
run_idstringrequired- The id of the run to cancel, as returned by butterbase_agent_run_create or a prior butterbase_agent_runs_list call.
butterbase_agent_run_createStart an authenticated run of a Butterbase agent with a JSON input payload.WriteStart Agent Run
Start an authenticated run of a Butterbase agent with a JSON input payload. Returns the new run's id and initial status. Use butterbase_agent_run_create to kick off a run using your platform API key. Use butterbase_agent_runs_list and butterbase_agent_run_get to track it afterward.
- Idempotent
Inputs
app_idstringrequired- The Butterbase app's unique ID the agent belongs to.
inputobjectrequired- The run's input payload, made available to the agent's graph_spec via `{{ state.* }}` templating; the keys it should contain depend on how the agent's graph is written. Example: {"user_question": "What's my order status?"}. Butterbase treats this exact request body as an idempotency key: resubmitting the identical input to this agent returns the existing run with HTTP 200 instead of starting a duplicate, while sending different input against that same key returns a 409 Conflict.
namestringrequired- The unique name of the agent to run.
butterbase_agent_run_resumeResume a paused Butterbase agent run with a human-in-the-loop approval decision.WriteResume Agent Run
Resume a paused Butterbase agent run with a human-in-the-loop approval decision. Returns the run object after processing your decision. Use butterbase_agent_run_resume when a run's events include a run_paused event carrying an approval_token that needs a decision. Use butterbase_agent_run_cancel instead if you want to stop the run rather than approve or reject its next step.
Inputs
app_idstringrequired- The Butterbase app's unique ID the agent belongs to.
approval_tokenstringrequired- The one-time approval token carried by the run's run_paused event, identifying the specific tool call awaiting a human decision.
approvedbooleanrequired- Whether to approve (true) or reject (false) the tool call the run paused on. Approving lets the run continue and execute it; rejecting stops that step from running.
namestringrequired- The unique name of the agent the run belongs to.
run_idstringrequired- The id of the paused run to resume.
butterbase_agent_updateUpdate an existing Butterbase agent's status, graph_spec, visibility, model, or run limits without recreating it.WriteUpdate Agent
Update an existing Butterbase agent's status, graph_spec, visibility, model, or run limits without recreating it. Returns the agent object with your changes applied. Use butterbase_agent_update to change part of an agent's configuration. Use butterbase_agent_validate first to check a new graph_spec before saving it here, and butterbase_agent_create to make a brand-new agent instead.
- Idempotent
Inputs
app_idstringrequired- The Butterbase app's unique ID the agent belongs to.
namestringrequired- The unique name of the agent to update.
daily_budget_usdnumber- New cap on this agent's total spend per day in US dollars. Omit to leave unchanged.
default_modelstring- New default model id for the agent's llm nodes, in Butterbase's provider/model id format. Individual llm nodes in graph_spec can still override this per node.
descriptionstring- New free-text description of what the agent does, for your own reference.
display_namestring- New human-friendly label for the agent shown in the Butterbase dashboard.
graph_specobject- The agent's tool-calling graph specification. FULLY CONFIRMED live via butterbase_agent_validate and an end-to-end agent run (Butterbase's docs previously described a different, incorrect shape). The object requires: spec_version (string, e.g. "1"), entry (the starting node id), nodes (an OBJECT keyed by node id — each llm node needs type:"llm", model, system_prompt, input_template, and output_key (the state key its output is written to); each end node needs type:"end" and output_template), edges (a top-level ARRAY of {"from": "<node_id>", "to": "<node_id>"} objects connecting the nodes — node linking is NOT a per-node field), tools (object: {"builtin": [], "mcp_servers": [], "functions": []}), and limits (object with 5 required numeric fields: max_steps, max_tool_calls, max_parallel_tools, timeout_seconds, human_timeout_seconds). Node prompts and templates can reference shared run state via {{ state.key }} templating. Example (validated live, ran to completion): {"spec_version": "1", "entry": "start", "nodes": {"start": {"type": "llm", "model": "anthropic/claude-haiku-4-5", "system_prompt": "You are a helpful assistant.", "input_template": "{{ state.user_question }}", "output_key": "answer"}, "done": {"type": "end", "output_template": "{{ state.answer }}"}}, "edges": [{"from": "start", "to": "done"}], "tools": {"builtin": [], "mcp_servers": [], "functions": []}, "limits": {"max_steps": 10, "max_tool_calls": 10, "max_parallel_tools": 1, "timeout_seconds": 60, "human_timeout_seconds": 3600}} ADDITIONAL CONFIRMED FACTS (from a dedicated live investigation): graph_spec.nodes[id].type actually has THREE valid values, not two -- "llm", "tool", and "end" (confirmed via agent_validate's own invalid_union_discriminator error). A "tool" node calls exactly one tool deterministically as its own graph step (distinct from an "llm" node, where the model decides whether/when to call from its available tools list); it needs {"type": "tool", "tool_ref": <tool reference, see below>, "args_template": <object, may use {{ state.* }} templating>, "output_key": "<string>"}. Separately: an "llm" node's per-node "tools" array entries, and a "tool" node's "tool_ref", are NOT plain strings -- they are a discriminated union keyed by "source": {"source": "builtin", "name": "<string>"} for a builtin tool (confirmed real names: delete_row, update_row -- validate does not check tool-name existence, only the runtime does, failing fast with a clean "unknown builtin tool" error if wrong), {"source": "mcp", "server_id": "<string>", "name": "<string>"} for an MCP tool, or {"source": "function", "name": "<string>"} for a Butterbase function. This is a completely separate shape from the top-level graph_spec.tools.{builtin, mcp_servers, functions} registration object, which remains flat string arrays as originally documented -- that object registers what the agent may use overall, while each node's own tools/tool_ref field is where a specific tool is actually referenced and invoked. Confirmed end-to-end: a "tool" node targeting {"source": "builtin", "name": "delete_row"} successfully deleted a real row and produced a full run_start -> node_start -> tool_call_start -> tool_call_end -> node_end -> run_end event trace.
max_concurrent_runsinteger- New cap on how many runs of this agent can be in progress at the same time. Omit to leave unchanged.
max_runs_per_user_per_hourinteger- New cap on how many runs a single end user can start against this agent per hour. Omit to leave unchanged.
statusstring- New lifecycle status to set on the agent, such as pausing it so it stops accepting new runs. Butterbase's docs don't publish the full set of valid status values — use one you've seen returned by butterbase_agent_get or your dashboard for this agent.
visibilitystring- New visibility for the agent: public to allow anonymous runs through /public/agents/{name}/runs, private to require your platform API key for every run, or authenticated to require a valid end-user session (login/signup) rather than either of those -- CONFIRMED via live testing as a valid, accepted third value not previously documented here.one of
publicprivateauthenticated
butterbase_agent_validateValidate a candidate graph_spec for an existing Butterbase agent without saving it.WriteValidate Agent Graph
Validate a candidate graph_spec for an existing Butterbase agent without saving it. Returns whether the graph is valid, plus a list of issues (each with a path and message) when it isn't. Use butterbase_agent_validate to check a new or edited graph before committing it with butterbase_agent_create or butterbase_agent_update.
- Idempotent
Inputs
app_idstringrequired- The Butterbase app's unique ID the agent belongs to.
graph_specobjectrequired- The agent's tool-calling graph specification. FULLY CONFIRMED live via butterbase_agent_validate and an end-to-end agent run (Butterbase's docs previously described a different, incorrect shape). The object requires: spec_version (string, e.g. "1"), entry (the starting node id), nodes (an OBJECT keyed by node id — each llm node needs type:"llm", model, system_prompt, input_template, and output_key (the state key its output is written to); each end node needs type:"end" and output_template), edges (a top-level ARRAY of {"from": "<node_id>", "to": "<node_id>"} objects connecting the nodes — node linking is NOT a per-node field), tools (object: {"builtin": [], "mcp_servers": [], "functions": []}), and limits (object with 5 required numeric fields: max_steps, max_tool_calls, max_parallel_tools, timeout_seconds, human_timeout_seconds). Node prompts and templates can reference shared run state via {{ state.key }} templating. Example (validated live, ran to completion): {"spec_version": "1", "entry": "start", "nodes": {"start": {"type": "llm", "model": "anthropic/claude-haiku-4-5", "system_prompt": "You are a helpful assistant.", "input_template": "{{ state.user_question }}", "output_key": "answer"}, "done": {"type": "end", "output_template": "{{ state.answer }}"}}, "edges": [{"from": "start", "to": "done"}], "tools": {"builtin": [], "mcp_servers": [], "functions": []}, "limits": {"max_steps": 10, "max_tool_calls": 10, "max_parallel_tools": 1, "timeout_seconds": 60, "human_timeout_seconds": 3600}} ADDITIONAL CONFIRMED FACTS (from a dedicated live investigation): graph_spec.nodes[id].type actually has THREE valid values, not two -- "llm", "tool", and "end" (confirmed via agent_validate's own invalid_union_discriminator error). A "tool" node calls exactly one tool deterministically as its own graph step (distinct from an "llm" node, where the model decides whether/when to call from its available tools list); it needs {"type": "tool", "tool_ref": <tool reference, see below>, "args_template": <object, may use {{ state.* }} templating>, "output_key": "<string>"}. Separately: an "llm" node's per-node "tools" array entries, and a "tool" node's "tool_ref", are NOT plain strings -- they are a discriminated union keyed by "source": {"source": "builtin", "name": "<string>"} for a builtin tool (confirmed real names: delete_row, update_row -- validate does not check tool-name existence, only the runtime does, failing fast with a clean "unknown builtin tool" error if wrong), {"source": "mcp", "server_id": "<string>", "name": "<string>"} for an MCP tool, or {"source": "function", "name": "<string>"} for a Butterbase function. This is a completely separate shape from the top-level graph_spec.tools.{builtin, mcp_servers, functions} registration object, which remains flat string arrays as originally documented -- that object registers what the agent may use overall, while each node's own tools/tool_ref field is where a specific tool is actually referenced and invoked. Confirmed end-to-end: a "tool" node targeting {"source": "builtin", "name": "delete_row"} successfully deleted a real row and produced a full run_start -> node_start -> tool_call_start -> tool_call_end -> node_end -> run_end event trace.
namestringrequired- The unique name of the agent to validate the graph against.
butterbase_ai_config_updateUpdate an app's AI gateway configuration in Butterbase, such as its default model, its per-request token limit, or its list of allowed models.WriteUpdate AI Config
Update an app's AI gateway configuration in Butterbase, such as its default model, its per-request token limit, or its list of allowed models. Returns the updated config object with the app's default model, maximum tokens per request, and allowed models. Use butterbase_ai_config_update to change an app's AI settings; any field left blank is unchanged. Use butterbase_ai_config_get first to see the current configuration.
- Idempotent
Inputs
app_idstringrequired- The id of the Butterbase app whose AI configuration to update.
allowed_modelsarray- The full list of model ids this app is allowed to use. Replaces the app's current allow-list. Example: ["openai/gpt-4.1", "anthropic/claude-haiku-4-5"].
default_modelstring- Model id to use by default for this app's AI requests when no model is specified, e.g. anthropic/claude-haiku-4-5.
max_tokens_per_requestinteger- Maximum number of tokens allowed in a single AI request for this app.
butterbase_api_key_createCreate a personal Butterbase AI gateway API key with a name and a set of access scopes.WriteCreate Gateway API Key
Create a personal Butterbase AI gateway API key with a name and a set of access scopes. Returns the created key's details, including its id, name, scopes, and the key value itself (shown only once). Use butterbase_api_key_create to mint a new gateway key for calling butterbase_gateway_models_list or the AI gateway's chat and embeddings endpoints. This endpoint authenticates with a Butterbase platform user session token (JWT) rather than the general platform API key configured for this connector, so it returns 401 if only a service key is available.
Inputs
namestringrequired- A label for the new API key, to help you identify it later.
scopesarrayrequired- Array of access scopes to grant the key, e.g. "ai:gateway" for gateway endpoints only. CONFIRMED via live testing: "*" is a RESERVED_SCOPE and the API rejects it with a 400 -- despite what this endpoint's own docs suggest, there is no known wildcard/full-access scope value; use a specific scope like "ai:gateway" instead.
butterbase_app_access_mode_updateToggle a Butterbase app's access mode between public and authenticated.WriteUpdate App Access Mode
Toggle a Butterbase app's access mode between public and authenticated. Returns the app's updated access-mode configuration. Use butterbase_app_access_mode_update for a plain mode toggle. Use butterbase_app_secure instead when switching to authenticated mode should also scaffold default row-level-security policies.
Inputs
access_modestringrequired- The access mode to set for the app's data API. 'public' allows unauthenticated (butterbase_anon) access; 'authenticated' requires a valid end-user session (butterbase_user) or platform key for every request.one of
publicauthenticated app_idstringrequired- The ID of the app to update.
butterbase_app_createCreate a new Butterbase app (project), optionally in a specific region.WriteCreate App
Create a new Butterbase app (project), optionally in a specific region. Returns the new app's app_id, its dedicated API base URL, and the region it was created in. Use butterbase_app_create to provision a fresh backend from scratch. Use butterbase_template_clone instead to start a new app from an existing public template.
Inputs
namestringrequired- A human-readable name for the new app. This becomes the app's display name in the Butterbase dashboard and does not need to be globally unique.
regionstring- The region to create the app's infrastructure in. Must be one of the region identifiers returned by butterbase_regions_list (e.g. us-east-1). If omitted, Butterbase assigns a default region.
butterbase_app_moveMove an existing Butterbase app to a different region.WriteMove App
Move an existing Butterbase app to a different region. Returns a migration_id and a queued status for tracking the region-move job. Use butterbase_app_move to relocate an app's infrastructure and data; poll butterbase_app_migration_status_get with the returned migration_id to check when the move finishes.
Inputs
app_idstringrequired- The ID of the app to move, as returned by butterbase_app_create or butterbase_apps_list.
dest_regionstringrequired- The destination region to move the app to. Must be one of the region identifiers returned by butterbase_regions_list (e.g. us-west-2) and should differ from the app's current region.
butterbase_app_secureSwitch a Butterbase app to authenticated mode and optionally scaffold default row-level-security policies for its tables in one step.WriteSecure App
Switch a Butterbase app to authenticated mode and optionally scaffold default row-level-security policies for its tables in one step. Returns a confirmation of the updated access mode and any RLS policies that were created. Use butterbase_app_secure to lock down an app and set up per-user row access together. Use butterbase_app_access_mode_update instead for a plain access-mode toggle with no policy changes.
Inputs
app_idstringrequired- The ID of the app to secure.
tablesarray- Tables to scaffold default row-level-security policies for. Each entry names a table plus the column that stores the owning user's ID, and optionally a boolean column marking rows as publicly readable. Example: [{"table_name": "posts", "user_column": "owner_id", "public_read_column": "is_public"}]. Leave blank to switch to authenticated mode without creating any policies.
butterbase_app_visibility_updateUpdate a Butterbase app's public/private visibility and whether it is listed in the public template gallery.WriteUpdate App Visibility
Update a Butterbase app's public/private visibility and whether it is listed in the public template gallery. Returns the app's updated visibility configuration. Use butterbase_app_visibility_update to control who can see or clone an app. Use butterbase_app_access_mode_update instead to control whether its data API requires end-user authentication.
Inputs
app_idstringrequired- The ID of the app to update.
visibilitystringrequired- The visibility to set for the app. 'public' allows the app to be viewed and, if listed, cloned by others; 'private' restricts it to the owning account.one of
publicprivate listedboolean- Whether the app should be listed in Butterbase's public template gallery. Only meaningful when visibility is 'public'; ignored otherwise.
butterbase_auth_config_cors_updateUpdate the list of origins allowed to call a Butterbase app's auth endpoints from a browser (CORS), replacing the current list entirely.WriteUpdate CORS Config
Update the list of origins allowed to call a Butterbase app's auth endpoints from a browser (CORS), replacing the current list entirely. Returns the app's updated auth configuration. Use butterbase_auth_config_cors_update to add or remove allowed frontend origins. Use butterbase_auth_config_jwt_update instead to change token lifetimes.
- Idempotent
Inputs
allowed_originsarrayrequired- The full list of origins allowed to make browser requests to this app's auth endpoints, replacing whatever is currently configured. Each entry should be a scheme+host(+port) origin, e.g. https://app.example.com.
app_idstringrequired- The unique ID of the Butterbase app to update the CORS configuration for.
butterbase_auth_config_jwt_updateUpdate how long a Butterbase app's issued access and refresh tokens stay valid before expiring.WriteUpdate JWT Config
Update how long a Butterbase app's issued access and refresh tokens stay valid before expiring. Returns the app's updated auth configuration. Use butterbase_auth_config_jwt_update to shorten or lengthen token lifetimes. Use butterbase_auth_config_cors_update instead to change allowed browser origins. CONFIRMED via live testing: the wire fields are accessTokenTtl (a duration string like "30m") and refreshTokenTtlDays (an integer number of days) -- earlier field names/types (accessTokenTtlSeconds/refreshTokenTtlSeconds as plain integers) were silently ignored by the API and are no longer used.
- Idempotent
Inputs
app_idstringrequired- The unique ID of the Butterbase app to update token lifetime settings for.
access_token_ttlstring- How long a newly issued access token stays valid before it must be refreshed, as a duration string (e.g. "30m", "1h", "15m"). CONFIRMED via live testing: the real wire field is accessTokenTtl taking a duration string -- NOT a plain integer of seconds as earlier assumed. Omit to leave the current value unchanged.
refresh_token_ttl_daysinteger- How many days a newly issued refresh token stays valid. CONFIRMED via live testing: the real wire field is refreshTokenTtlDays taking an integer number of days -- NOT seconds as earlier assumed. Omit to leave the current value unchanged.
butterbase_auth_config_pausePause or resume all authentication activity for a Butterbase app, blocking every sign-up, login, magic-link, and token request while paused.WritePause Auth
Pause or resume all authentication activity for a Butterbase app, blocking every sign-up, login, magic-link, and token request while paused. Returns a confirmation of the app's updated pause state (exact response fields are not published in Butterbase's docs). Use this to immediately halt auth traffic during an incident or maintenance window, then call it again with paused set to false to resume normal operation.
- Idempotent
Inputs
app_idstringrequired- The unique identifier of the Butterbase app whose authentication should be paused or resumed.
pausedbooleanrequired- Whether to pause (true) or resume (false) authentication for this app. When paused, all sign-up, login, magic-link, and token-refresh requests are rejected.
reasonstring- Optional free-text note explaining why authentication is being paused or resumed, for audit purposes.
butterbase_auth_forgot_passwordRequest a password-reset code for an end-user's email on a Butterbase app.WriteRequest Password Reset
Request a password-reset code for an end-user's email on a Butterbase app. Returns a confirmation message; Butterbase's docs do not distinguish the response for registered vs. unregistered emails. Use butterbase_auth_forgot_password to start a password-reset flow, then use the resulting code with butterbase_auth_reset_password to set a new password.
Inputs
app_idstringrequired- The Butterbase app's unique ID the end-user belongs to.
emailstringrequired- The end-user's email address to send the password-reset code to.
butterbase_auth_loginSign in an existing end-user with their email and password.WriteLog In End User
Sign in an existing end-user with their email and password. Returns an access token, a refresh token, and the user's profile (id, email, verification status, display name, avatar URL). Use butterbase_auth_login for password-based sign-in. Use butterbase_auth_signup to create a new account first, or butterbase_auth_magic_link_request/butterbase_auth_magic_link_verify for passwordless sign-in.
Inputs
app_idstringrequired- The Butterbase app's unique ID to sign the end-user into.
emailstringrequired- The end-user's email address used to sign in.
passwordstringrequired- The end-user's current account password.
butterbase_auth_logoutEnd an end-user's current session for a Butterbase app.WriteLog Out End User
End an end-user's current session for a Butterbase app. Returns a confirmation that the session was ended. Use butterbase_auth_logout to invalidate an end-user's active access token, for example after a sign-out action in your app. CONFIRMED via a dedicated live investigation: the underlying Butterbase endpoint works correctly and returns a genuine success when called with a valid end-user access token (obtained via butterbase_auth_login) -- this was previously only ever tested with the wrong credential type (this connector's platform key), which always 401s. HOWEVER, this connector has no way to actually supply that end-user token: Scalekit's execution engine controls the Authorization header for a BEARER connection server-side and rejects a client-supplied Authorization header override outright (confirmed via direct SDK-level testing -- a custom header is rejected with its own 401 before ever reaching Butterbase). This tool will therefore always fail via the standard execution path on this connector, by platform design, not due to a fixable tool-JSON defect -- it would need a future Scalekit auth-strategy feature (e.g. a per-call token override) to ever work through this connector.
Inputs
access_tokenstringrequired- The end-user's current access token to invalidate. Butterbase's docs describe this endpoint as requiring the token as a Bearer Authorization header; this tool sends it as a JSON body field instead, since this connection's Authorization header already carries the platform API key.
app_idstringrequired- The Butterbase app's unique ID the session belongs to.
butterbase_auth_magic_link_requestSend a one-time sign-in code to an end-user's email for a Butterbase app.WriteRequest Magic Link
Send a one-time sign-in code to an end-user's email for a Butterbase app. Returns a generic confirmation message that is identical whether or not the email is registered, to prevent account enumeration. Use butterbase_auth_magic_link_request to start passwordless sign-in, then call butterbase_auth_magic_link_verify with the code the user receives.
Inputs
app_idstringrequired- The Butterbase app's unique ID to send the magic-link code for.
emailstringrequired- The end-user's email address to send the one-time sign-in code to.
butterbase_auth_magic_link_verifyVerify a magic-link sign-in code and issue session tokens for an end-user.WriteVerify Magic Link
Verify a magic-link sign-in code and issue session tokens for an end-user. Returns an access token, a refresh token, and the user's profile; verifying a code for the first time also creates the user account automatically. Use butterbase_auth_magic_link_verify after butterbase_auth_magic_link_request has emailed the user a code. The code expires 15 minutes after it was sent.
Inputs
app_idstringrequired- The Butterbase app's unique ID the magic-link code was requested for.
codestringrequired- The 6-digit one-time sign-in code sent to the user's email. Expires 15 minutes after it was requested.
emailstringrequired- The email address the magic-link code was sent to.
butterbase_auth_oauth_config_createRegister a social-login (OAuth) provider configuration for a Butterbase app, so end-users can sign in with that provider.WriteCreate OAuth Provider Config
Register a social-login (OAuth) provider configuration for a Butterbase app, so end-users can sign in with that provider. Returns the created provider configuration, including the provider name, client ID, redirect URIs, and any extra provider metadata. Use butterbase_auth_oauth_config_create to add a new social-login provider. Use butterbase_auth_oauth_config_update to change an existing one instead of creating a duplicate.
Inputs
app_idstringrequired- The unique ID of the Butterbase app to configure the provider for.
client_idstringrequired- The OAuth client ID issued by the provider for your application.
client_secretstringrequired- The OAuth client secret issued by the provider for your application. Stored by Butterbase and not returned in plain text on later reads.
providerstringrequired- The OAuth provider identifier to configure. Butterbase ships built-in support for google, github, discord, facebook, linkedin, microsoft, apple, and x, and also accepts a custom provider identifier for other OpenID-compatible providers your app already defines.
redirect_urisarrayrequired- The list of redirect (callback) URIs Butterbase is allowed to send this provider's authorization response to. Must match what's registered in the provider's developer console.
provider_metadataobject- Extra provider-specific configuration some providers need beyond client_id/client_secret. For example, Apple's Sign in with Apple requires teamId, keyId, and privateKey here. Omit for providers that don't need extra configuration.
butterbase_auth_oauth_config_updateUpdate the configuration for one social-login (OAuth) provider on a Butterbase app.WriteUpdate OAuth Provider Config
Update the configuration for one social-login (OAuth) provider on a Butterbase app. Only the fields you supply are changed; anything omitted keeps its current value. Returns the updated provider configuration object. Use butterbase_auth_oauth_config_update to rotate a client secret or change redirect URIs. Use butterbase_auth_oauth_config_create instead to add a brand-new provider.
- Idempotent
Inputs
app_idstringrequired- The unique ID of the Butterbase app the provider is configured on.
providerstringrequired- The OAuth provider identifier to update, e.g. one of google, github, discord, facebook, linkedin, microsoft, apple, x, or a custom provider identifier.
client_idstring- New OAuth client ID for this provider. Omit to leave the current client ID unchanged.
client_secretstring- New OAuth client secret for this provider. Omit to leave the current client secret unchanged.
provider_metadataobject- New provider-specific metadata (e.g. Apple's teamId, keyId, privateKey), replacing the current metadata entirely. Omit to leave the current metadata unchanged.
redirect_urisarray- New list of redirect (callback) URIs for this provider, replacing the current list entirely. Omit to leave the current redirect URIs unchanged.
butterbase_auth_refreshExchange an end-user's refresh token for a new access token.WriteRefresh Access Token
Exchange an end-user's refresh token for a new access token. Returns a new access token for continuing the user's session. Use butterbase_auth_refresh when a previously issued end-user access token has expired, instead of asking the user to sign in again.
Inputs
app_idstringrequired- The Butterbase app's unique ID the refresh token was issued for.
refresh_tokenstringrequired- The end-user's refresh token, previously issued by signup, login, or magic-link verification. Butterbase's docs do not confirm whether this is expected as a request body field or an Authorization header for this endpoint; this tool sends it as a JSON body field since this connection's Authorization header already carries the platform API key.
butterbase_auth_reset_passwordReset an end-user's password in a Butterbase app using the reset code that was emailed to them.WriteReset Password
Reset an end-user's password in a Butterbase app using the reset code that was emailed to them. Returns a success confirmation once the password has been updated. Use butterbase_auth_reset_password to complete a reset after the user has already requested a reset code. Use butterbase_auth_me_get afterward to confirm the account is reachable with the new credentials.
Inputs
app_idstringrequired- The unique ID of the Butterbase app the end-user account belongs to.
codestringrequired- The password-reset code Butterbase emailed to the user after they requested a reset. Codes are short-lived and single-use.
emailstringrequired- The email address of the end-user account whose password is being reset. Confirmed required by the live API (not previously documented).
passwordstringrequired- The new password to set for the account. Must be at least 8 characters and include an uppercase letter, a lowercase letter, a number, and a special character.
butterbase_auth_signupRegister a new end-user with an email and password for a Butterbase app.WriteSign Up End User
Register a new end-user with an email and password for a Butterbase app. Returns an access token, a refresh token, and the new user's profile (id, email, verification status, display name, avatar URL). Use butterbase_auth_signup to create a brand-new end-user account. Use butterbase_auth_login for an existing user, or butterbase_auth_magic_link_request to sign a user in without a password.
Inputs
app_idstringrequired- The Butterbase app's unique ID to register the new end-user under.
emailstringrequired- The new end-user's email address, used as their unique sign-in identifier.
passwordstringrequired- The new end-user's password. Must be at least 8 characters and include an uppercase letter, a lowercase letter, a number, and a special character.
display_namestring- An optional display name to store on the new user's profile.
butterbase_auth_verify_emailVerify an end-user's email address using the verification code they were sent.WriteVerify Email Address
Verify an end-user's email address using the verification code they were sent. Returns a confirmation that the email address has been verified. Use butterbase_auth_verify_email after a user signs up, to mark their email address as verified.
Inputs
app_idstringrequired- The Butterbase app's unique ID the end-user belongs to.
codestringrequired- The email verification code sent to the end-user, typically after signup.
emailstringrequired- The email address of the end-user account being verified. Confirmed required by the live API (not previously documented).
butterbase_billing_checkout_createStart a checkout session to upgrade the Butterbase platform account's plan.WriteStart Billing Checkout
Start a checkout session to upgrade the Butterbase platform account's plan. Returns the checkout session details, including a URL to redirect the account owner to so they can complete the upgrade. Use butterbase_billing_checkout_create to begin a plan upgrade. Use butterbase_billing_portal_create to open the account's existing self-serve billing portal instead. CONFIRMED via live testing: the underlying endpoint requires a plan_id (wire name planId) in the request body and rejects requests without it -- Butterbase's public docs do not document this field.
Inputs
plan_idstringrequired- The ID of the plan to check out for the platform account upgrade. CONFIRMED via live testing: the underlying endpoint requires this field (wire name planId) and rejects requests without it -- Butterbase's docs do not publish this requirement.
butterbase_billing_connect_onboardStart Stripe Connect onboarding for a Butterbase app so it can accept and process payments from its own end users.WriteStart Stripe Connect Onboarding
Start Stripe Connect onboarding for a Butterbase app so it can accept and process payments from its own end users. Returns onboarding session details, including a URL to redirect the app owner to so they can complete Stripe's onboarding flow. Use butterbase_billing_connect_onboard to begin or resume onboarding for an app. Use butterbase_billing_connect_status_get to check whether onboarding is already complete instead. Butterbase's docs don't publish a request body for this endpoint, so only the app ID is required.
Inputs
app_idstringrequired- The Butterbase app ID to start Stripe Connect onboarding for, found in the app's dashboard URL or settings.
butterbase_billing_plan_createCreate a subscription plan that a Butterbase app's end users can subscribe to.WriteCreate Subscription Plan
Create a subscription plan that a Butterbase app's end users can subscribe to. Returns the created plan object, including its assigned ID, name, price, billing interval, and feature list. Use butterbase_billing_plan_create to add a new subscription tier for an app's monetization. Requires the app to already exist — create it first with butterbase_app_create if you haven't.
Inputs
app_idstringrequired- The Butterbase app ID to create the plan under, found in the app's dashboard URL or settings.
featuresarrayrequired- A list of feature strings describing what this plan includes, shown to end users on a pricing page.
intervalstringrequired- The billing interval this plan recurs on, such as "month" or "year". Butterbase's docs show "month" as the example value but don't enumerate every accepted interval, so pass the value the account's Stripe-based billing setup expects.
namestringrequired- The subscription plan's display name, shown to end users when they choose a plan.
price_centsintegerrequired- The plan's recurring price in cents (integer), in the account's billing currency. For example, 999 for $9.99 per billing interval.
butterbase_billing_plan_updateUpdate an existing subscription plan for a Butterbase app, replacing its name, price, billing interval, and feature list.WriteUpdate Subscription Plan
Update an existing subscription plan for a Butterbase app, replacing its name, price, billing interval, and feature list. Returns the updated plan object with its id, name, price, interval, and features. Use butterbase_billing_plan_update to change a plan's details after finding its plan_id with butterbase_billing_plans_list. Butterbase's docs page doesn't show a distinct example for this endpoint's request body; it's presumed to require the same full payload as creating a plan, and it's unconfirmed whether partial updates are supported, so this tool always resends every field.
- Idempotent
Inputs
app_idstringrequired- The unique ID of the Butterbase app that owns the plan being updated.
featuresarrayrequired- The list of feature strings included in this plan, e.g. ["Unlimited projects", "Priority support"]. Required because Butterbase's update endpoint is presumed to need the full plan payload, not a partial patch.
intervalstringrequired- The billing interval for this plan, e.g. "month" or "year". Required because Butterbase's update endpoint is presumed to need the full plan payload, not a partial patch.
namestringrequired- The plan's display name shown to end users, e.g. "Pro" or "Team". Required because Butterbase's update endpoint is presumed to need the full plan payload, not a partial patch.
plan_idstringrequired- The unique ID of the subscription plan to update. Look this up from a prior call to butterbase_billing_plans_list.
price_centsintegerrequired- The plan's price in cents as an integer, e.g. 1900 for $19.00. Required because Butterbase's update endpoint is presumed to need the full plan payload, not a partial patch.
butterbase_billing_portal_createOpen the Butterbase platform account's billing portal, where the account owner can manage payment methods, view invoices, and change plans.WriteOpen Billing Portal
Open the Butterbase platform account's billing portal, where the account owner can manage payment methods, view invoices, and change plans. Returns the portal session details, including a URL to redirect the account owner to. Use butterbase_billing_portal_create to send an account owner to self-serve billing management. Use butterbase_billing_checkout_create to start a specific plan upgrade instead. Butterbase's docs don't publish a request body for this endpoint, so no input is sent.
Inputs
This tool takes no inputs.
butterbase_billing_product_createCreate a one-time-purchase product for a Butterbase app's end users, such as a credits pack or a premium add-on.WriteCreate Product
Create a one-time-purchase product for a Butterbase app's end users, such as a credits pack or a premium add-on. Returns the created product object with its id, name, price, description, and metadata. Use butterbase_billing_product_create to add a new purchasable product. Use butterbase_billing_products_list to see existing products, or butterbase_billing_product_update to change one afterward.
Inputs
app_idstringrequired- The unique ID of the Butterbase app the product belongs to.
descriptionstringrequired- A short description of what the end user gets when they purchase this product, e.g. "500 in-app credits, added instantly on purchase."
namestringrequired- The product's display name shown to end users, e.g. "500 Credits" or "Pro Add-on".
price_centsintegerrequired- The product's price in cents as an integer, e.g. 999 for $9.99.
metadataobject- Optional custom key/value pairs to attach to the product, e.g. {"sku": "credits-500"}. Not returned in a specific documented shape by Butterbase -- pass any flat JSON object of your own metadata.
butterbase_billing_product_updateUpdate an existing one-time-purchase product for a Butterbase app, replacing its name, price, description, and metadata.WriteUpdate Product
Update an existing one-time-purchase product for a Butterbase app, replacing its name, price, description, and metadata. Returns the updated product object with its id, name, price, description, and metadata. Use butterbase_billing_product_update to change a product's details after finding its product_id with butterbase_billing_products_list. Butterbase's docs page doesn't show a distinct example for this endpoint's request body; it's presumed to require the same full payload as creating a product, and it's unconfirmed whether partial updates are supported, so this tool always resends the core fields.
- Idempotent
Inputs
app_idstringrequired- The unique ID of the Butterbase app that owns the product being updated.
descriptionstringrequired- A short description of what the end user gets when they purchase this product, e.g. "500 in-app credits, added instantly on purchase." Required because Butterbase's update endpoint is presumed to need the same full payload as creating a product.
namestringrequired- The product's display name shown to end users, e.g. "500 Credits" or "Pro Add-on". Required because Butterbase's update endpoint is presumed to need the same full payload as creating a product.
price_centsintegerrequired- The product's price in cents as an integer, e.g. 999 for $9.99. Required because Butterbase's update endpoint is presumed to need the same full payload as creating a product.
product_idstringrequired- The unique ID of the product to update. Look this up from a prior call to butterbase_billing_products_list.
metadataobject- Optional custom key/value pairs to attach to the product, e.g. {"sku": "credits-500"}. Pass any flat JSON object of your own metadata; omit to leave metadata unset.
butterbase_billing_purchasePurchase one of a Butterbase app's one-time-purchase products for the current end user.WritePurchase Product
Purchase one of a Butterbase app's one-time-purchase products for the current end user. Returns a purchase confirmation with order details for the completed purchase. Use butterbase_billing_purchase to buy a product found with butterbase_billing_products_list. Use butterbase_billing_orders_list afterward to see the resulting order in the current end user's order history. Butterbase's docs page doesn't publish the exact request body for this endpoint; product_id (sent as productId) is this tool's best-effort inference from the product identifiers used elsewhere in the Billing API, and is not confirmed against Butterbase's own documentation.
Inputs
app_idstringrequired- The unique ID of the Butterbase app the product belongs to.
product_idstringrequired- The ID of the product to purchase for the current end user, from butterbase_billing_products_list. This field name is a best-effort inference -- Butterbase's docs do not show the exact request body for this endpoint.
butterbase_billing_subscribeStart a subscription for the current end user to one of a Butterbase app's subscription plans.WriteStart Subscription
Start a subscription for the current end user to one of a Butterbase app's subscription plans. Returns the subscription session or confirmation returned by Butterbase for the new subscription. Use butterbase_billing_subscribe to enroll the current end user in a plan found with butterbase_billing_plans_list. Use butterbase_billing_subscription_get afterward to confirm the subscription is active, or butterbase_billing_cancel to end it later. Butterbase's docs page doesn't publish the exact request body for this endpoint; plan_id (sent as planId) is this tool's best-effort inference from the plan identifiers used elsewhere in the Billing API, and is not confirmed against Butterbase's own documentation.
Inputs
app_idstringrequired- The unique ID of the Butterbase app the plan belongs to.
plan_idstringrequired- The ID of the subscription plan to subscribe the current end user to, from butterbase_billing_plans_list. This field name is a best-effort inference -- Butterbase's docs do not show the exact request body for this endpoint.
butterbase_chat_completions_createCreate an OpenAI-compatible chat completion using the AI models available to one Butterbase app.WriteCreate Chat Completion
Create an OpenAI-compatible chat completion using the AI models available to one Butterbase app. Returns a single OpenAI-shaped completion object with the model's reply and token usage; streaming responses are not supported through this tool, so the request always executes and returns as a single non-streaming JSON response. Use butterbase_chat_completions_create to bill usage against a specific app. Use butterbase_gateway_chat_completions_create for a personal gateway key that isn't tied to an app.
Inputs
app_idstringrequired- The Butterbase app ID to bill this completion's usage against.
messagesarrayrequired- The conversation so far, as an array of messages each with a role (system, user, or assistant) and text content. Example: [{"role": "user", "content": "What is the capital of France?"}].
modelstringrequired- The AI model identifier to use, e.g. openai/gpt-4o-mini or anthropic/claude-haiku-4-5. See butterbase_ai_models_list for the models allowed for this app.
max_tokensinteger- The maximum number of tokens to generate in the completion. Omit to let the model use its default limit.
temperaturenumber- Sampling temperature between 0 and 2. Lower values (e.g. 0.2) make output more deterministic; higher values (e.g. 1.2) make it more random. Omit to use the model's default.
butterbase_clone_job_retryRetry a template clone job that previously failed, using its clone job id.WriteRetry Clone Job
Retry a template clone job that previously failed, using its clone job id. Returns the clone job's updated status after the retry has been queued. Use butterbase_clone_job_retry after butterbase_clone_job_get shows a failed job. Poll butterbase_clone_job_get again afterward to track the retry.
Inputs
job_idstringrequired- The id of the failed clone job to retry, as returned by butterbase_template_clone or a prior butterbase_clone_job_get check.
butterbase_custom_domain_createRegister a custom domain for a frontend deployment.WriteAdd Custom Domain
Register a custom domain for a frontend deployment. Returns a domain object (id, hostname, verification status, SSL status) plus the CNAME target to point DNS at and setup instructions. Use butterbase_custom_domain_create to add a new domain to an app, then configure the returned CNAME record with your DNS provider and check butterbase_custom_domains_list to confirm it registered.
Inputs
app_idstringrequired- The Butterbase app to register the custom domain for, exactly as shown in the Butterbase dashboard or returned when the app was created.
hostnamestringrequired- The exact custom domain name to register for the app's frontend deployment, e.g. app.example.com.
butterbase_custom_domain_verifyRe-trigger verification for a custom domain registered to a Butterbase app.WriteVerify Custom Domain
Re-trigger verification for a custom domain registered to a Butterbase app. Returns the domain's verification and SSL status once Cloudflare re-checks the DNS configuration. Use butterbase_custom_domain_verify after updating a domain's DNS records or when butterbase_custom_domain_status_get still shows a pending status; register the domain first with butterbase_custom_domain_create.
Inputs
app_idstringrequired- The unique identifier of the Butterbase app the custom domain is registered to.
idstringrequired- The unique identifier of the custom domain to re-verify, as returned when the domain was registered.
butterbase_embeddings_createGenerate text embedding vectors using the AI models available to one Butterbase app.WriteCreate Embeddings
Generate text embedding vectors using the AI models available to one Butterbase app. Returns a JSON object containing the embedding vector(s) for the given input text. Use butterbase_embeddings_create to bill usage against a specific app. Use butterbase_gateway_embeddings_create for a personal gateway key that isn't tied to an app.
Inputs
app_idstringrequired- The Butterbase app ID to bill this embeddings call's usage against.
inputstringrequired- The text to embed. Provide a single string, or an array of strings to embed several pieces of text in one call.
modelstringrequired- The embedding model identifier to use, e.g. openai/text-embedding-3-small (1536 dimensions), openai/text-embedding-3-large (3072 dimensions), or openai/text-embedding-ada-002 (1536 dimensions).
encoding_formatstring- The format to return the embedding vectors in: float (a JSON array of numbers) or base64 (a base64-encoded string). Defaults to float if omitted.one of
floatbase64
butterbase_frontend_deployment_createCreate a new frontend deployment for a Butterbase app and get a presigned URL to upload its build.WriteCreate Frontend Deployment
Create a new frontend deployment for a Butterbase app and get a presigned URL to upload its build. Returns the new deployment's id, a short-lived presigned uploadUrl, the URL's expiry in seconds, and the maximum allowed upload size in bytes. Use butterbase_frontend_deployment_create to start deploying a static site or SPA build. Uploading the build itself is a separate raw-binary PUT of a zip file straight to the returned uploadUrl and is not part of this tool; do that afterward with your own HTTP client, then start the build via the deployment's start endpoint.
Inputs
app_idstringrequired- The unique identifier of the Butterbase app to create the frontend deployment for.
frameworkstringrequired- The frontend framework/build type of the deployment being created, one of react-vite, nextjs-static, static, or other.one of
react-vitenextjs-staticstaticother
butterbase_frontend_deployment_startStart the build and publish process for a frontend deployment whose zip file has already been uploaded to its presigned upload URL.WriteStart Frontend Deployment
Start the build and publish process for a frontend deployment whose zip file has already been uploaded to its presigned upload URL. Returns the deployment's updated status once the build begins; Butterbase's docs do not publish the exact response fields for this endpoint. Use butterbase_frontend_deployment_start right after the zip upload to the presigned URL finishes. Use butterbase_frontend_deployment_get or butterbase_frontend_deployment_sync afterward to track progress toward READY or ERROR. Requires an existing deployment id whose zip has already been uploaded to the presigned URL returned when the deployment was created.
Inputs
app_idstringrequired- The Butterbase app that owns the frontend deployment, exactly as shown in the Butterbase dashboard or returned when the app was created.
idstringrequired- The unique identifier of the frontend deployment to start building, as returned when the deployment record was created (POST /v1/{app_id}/frontend/deployments).
butterbase_frontend_deployment_syncForce a refresh of a frontend deployment's status.WriteSync Frontend Deployment Status
Force a refresh of a frontend deployment's status. Returns the deployment's refreshed status; exact response fields are not published in Butterbase's docs. Use butterbase_frontend_deployment_sync when a deployment appears stuck in BUILDING or UPLOADING and you want an immediate status check instead of waiting for Butterbase's normal async update. Use butterbase_frontend_deployment_get for a plain read without forcing a refresh.
Inputs
app_idstringrequired- The Butterbase app that owns the frontend deployment, exactly as shown in the Butterbase dashboard or returned when the app was created.
idstringrequired- The unique identifier of the frontend deployment whose status to force-refresh.
butterbase_frontend_env_updateSet or update a frontend deployment's environment variables.WriteReplace Frontend Environment Variables
Set or update a frontend deployment's environment variables. Butterbase encrypts every value at rest and never returns it via the API -- only variable key names are returned, and only by butterbase_frontend_env_get; the exact response shape for this endpoint isn't published in Butterbase's docs. Use butterbase_frontend_env_update to set build-time environment variables (e.g. VITE_API_URL, NEXT_PUBLIC_API_KEY) a deployment should use. CORRECTED via live testing: despite this being a PUT endpoint, the underlying API does NOT fully replace the variable set -- omitted keys are NOT removed, they are merged/kept as-is. There is currently no confirmed working way to delete an existing key through this endpoint (an empty object is rejected with a 400, and a null value causes a 500) -- if you need to remove a variable, contact Butterbase support or use their dashboard. Use butterbase_frontend_env_get beforehand if you need to see which keys are already set, since their values are never shown.
- Idempotent
Inputs
app_idstringrequired- The Butterbase app whose frontend deployment environment variables to replace, exactly as shown in the Butterbase dashboard or returned when the app was created.
env_varsobjectrequired- Flat JSON object mapping environment variable names to their string values. Each key sets or updates one environment variable for the app's frontend deployment build. CORRECTED via live testing: keys you leave out are NOT removed (this is a merge, not a full replace, despite the PUT method) -- there is no confirmed way to delete a key via this endpoint. Example: {"VITE_API_URL": "https://api.butterbase.ai/v1/app_abc123", "NEXT_PUBLIC_API_KEY": "pk_test_123"}.
butterbase_function_deployDeploy a new serverless function to an app, or redeploy an existing one under the same name with new code or settings.WriteDeploy Function
Deploy a new serverless function to an app, or redeploy an existing one under the same name with new code or settings. Returns the deployed function's stored configuration, including its triggers, resource limits, and agent-tool settings. Use butterbase_function_deploy to publish a function's source code. Use butterbase_functions_list to check whether a name is already taken, butterbase_function_get to inspect a deployed function's current settings and metrics, and butterbase_function_invoke to test it once deployed.
Inputs
app_idstringrequired- The Butterbase application ID to deploy this function to.
codestringrequired- The function's full source code, including a default export handler that Butterbase invokes on each trigger event.
namestringrequired- A unique name for this function within the app, 1-100 characters. Deploying again with the same name updates that function's code and settings in place.
agent_toolboolean- Whether to expose this function as a tool an AI agent can call.default
false agent_tool_descriptionstring- A description of this function shown to the LLM when it decides whether to call it as a tool, up to 500 characters. Only used when agent_tool is true.
agent_tool_exposed_tostring- Who may invoke this function as an agent tool: developer_only restricts it to the app's own developers/API keys, while end_user also allows the app's end users to trigger it through an agent. Only used when agent_tool is true. Defaults to developer_only.one of
developer_onlyend_userdefaultdeveloper_only agent_tool_modestring- Controls whether an agent calling this function as a tool may only read data (read_only) or may also make changes (read_write). Only used when agent_tool is true. Defaults to read_only.one of
read_onlyread_writedefaultread_only allow_service_key_impersonationboolean- Whether the function accepts the X-Butterbase-As-User header, which lets a caller using a platform API key impersonate a specific end user for this invocation. Defaults to true.default
true descriptionstring- A short human-readable description of what this function does, shown in the Butterbase dashboard.
env_varsobject- Environment variables to set on the function, as a flat object of key/value string pairs. Values are stored encrypted and injected into the function's runtime environment. Example: {"API_KEY": "sk_live_..."}.
memory_limit_mbinteger- Memory limit for the function in megabytes, between 64 and 1024. Defaults to 128 if omitted.default
128 timeout_msinteger- Maximum execution time for the function in milliseconds, up to 300000 (5 minutes). Defaults to 30000 (30 seconds) if omitted.default
30000 triggersarray- Trigger configurations controlling how this function gets invoked. Each trigger needs a type -- http, cron, s3_upload, webhook, or websocket -- plus the settings that type needs: an http trigger can specify a method, path, and whether auth is required (defaults to required; use none for a public route); a cron trigger needs a schedule and an optional timezone (UTC by default); an s3_upload trigger fires when an object lands in a bucket, with an optional key prefix and content-type filter; a webhook trigger generates a signed URL and can require a shared secret or restrict allowed sources; a websocket trigger takes no extra settings. If omitted, the function gets a single default HTTP trigger. Example: [{"type": "http", "method": "POST", "auth": "required"}].
butterbase_function_env_updateUpdate a Butterbase serverless function's encrypted environment variables, merging the given key/value pairs into its existing set rather than replacing it.WriteUpdate Function Environment Variables
Update a Butterbase serverless function's encrypted environment variables, merging the given key/value pairs into its existing set rather than replacing it. Returns the function's full, updated set of environment variable keys. Use butterbase_function_env_update to add or change one or more variables, or to remove a variable by setting its value to null. Use butterbase_function_deploy to redeploy the function's code or reset its entire environment instead.
- Idempotent
Inputs
app_idstringrequired- The Butterbase app ID that owns the function, found in the app's dashboard URL or settings.
env_varsobjectrequired- A JSON object of environment variable key/value pairs to merge into the function's existing environment. Values must be strings, except to delete an existing key: set its value to null and it is removed instead of merged. Example: {"API_KEY": "sk_live_123", "OLD_KEY": null} sets API_KEY and deletes OLD_KEY, while leaving every other existing variable untouched.
namestringrequired- The unique name of the deployed function whose environment variables you want to change.
butterbase_function_invokeTest-invoke a deployed serverless function directly, without going through its normal trigger (e.g.WriteInvoke Function
Test-invoke a deployed serverless function directly, without going through its normal trigger (e.g. its HTTP route or schedule). Returns whatever the function's own handler code returns for that invocation. Use butterbase_function_invoke to try out a function after deploying it, or to debug its behavior with a specific payload. Use butterbase_function_get to check the function's recent error rate and average duration instead of invoking it again.
Inputs
app_idstringrequired- The Butterbase application ID the function belongs to.
namestringrequired- The exact name of the deployed function to invoke.
payloadobject- Arbitrary JSON payload sent as the request body of the test invocation, forwarded to the function's handler as its invocation input. Butterbase's docs don't publish a fixed schema for this -- send whatever shape your function's own handler code expects to receive. Leave blank to invoke with an empty body.
butterbase_function_settings_updateToggle a Butterbase serverless function's runtime settings without redeploying its code.WriteUpdate Function Settings
Toggle a Butterbase serverless function's runtime settings without redeploying its code. Returns the function's updated settings; the function's runtime cache is invalidated so the new setting takes effect on the next invocation. Use butterbase_function_settings_update to flip a runtime toggle only. Use butterbase_function_deploy to redeploy code or change trigger, timeout, or memory configuration instead.
- Idempotent
Inputs
app_idstringrequired- The Butterbase app ID that owns the function, found in the app's dashboard URL or settings.
namestringrequired- The unique name of the deployed function whose settings you want to change.
allow_service_key_impersonationboolean- Whether this function accepts the X-Butterbase-As-User impersonation header when invoked with the platform service key, letting a backend call act on behalf of a specific end user. Set to true to allow it, false to block it. Omit to leave the current setting unchanged.
butterbase_gateway_chat_completions_createCreate an OpenAI-compatible chat completion using a personal Butterbase AI gateway API key, independent of any specific app.WriteCreate Gateway Chat Completion
Create an OpenAI-compatible chat completion using a personal Butterbase AI gateway API key, independent of any specific app. Returns a single OpenAI-shaped completion object with the model's reply and token usage; streaming responses are not supported through this tool, so the request always executes and returns as a single non-streaming JSON response. Use butterbase_gateway_chat_completions_create for personal, gateway-key usage. Use butterbase_chat_completions_create to bill usage against a specific app.
Inputs
messagesarrayrequired- The conversation so far, as an array of messages each with a role (system, user, or assistant) and text content. Example: [{"role": "user", "content": "What is the capital of France?"}].
modelstringrequired- The AI model identifier to use, e.g. openai/gpt-4o-mini or anthropic/claude-haiku-4-5.
max_tokensinteger- The maximum number of tokens to generate in the completion. Omit to let the model use its default limit.
temperaturenumber- Sampling temperature between 0 and 2. Lower values (e.g. 0.2) make output more deterministic; higher values (e.g. 1.2) make it more random. Omit to use the model's default.
butterbase_gateway_embeddings_createGenerate text embedding vectors using a personal Butterbase AI gateway API key, independent of any specific app.WriteCreate Gateway Embeddings
Generate text embedding vectors using a personal Butterbase AI gateway API key, independent of any specific app. Returns a JSON object containing the embedding vector(s) for the given input text. Use butterbase_gateway_embeddings_create for personal, gateway-key usage. Use butterbase_embeddings_create to bill usage against a specific app.
Inputs
inputstringrequired- The text to embed. Provide a single string, or an array of strings to embed several pieces of text in one call.
modelstringrequired- The embedding model identifier to use, e.g. openai/text-embedding-3-small (1536 dimensions), openai/text-embedding-3-large (3072 dimensions), or openai/text-embedding-ada-002 (1536 dimensions).
encoding_formatstring- The format to return the embedding vectors in: float (a JSON array of numbers) or base64 (a base64-encoded string). Defaults to float if omitted.one of
floatbase64
butterbase_image_generation_createSubmit an asynchronous AI image-generation job for a Butterbase app.WriteCreate Image Generation Job
Submit an asynchronous AI image-generation job for a Butterbase app. Returns a job object with a job_id, a pending status, and a polling_url. Use butterbase_image_generation_create to start generating one or more images from a text prompt, then poll butterbase_image_generation_get with the returned job_id until the job completes.
Inputs
app_idstringrequired- The id of the Butterbase app to submit the image-generation job under.
modelstringrequired- Model id to use for image generation, in provider/model form, e.g. openai/gpt-image-1.
promptstringrequired- Text prompt describing the image to generate.
aspect_ratiostring- Aspect ratio of the generated image(s), e.g. 1:1 or 16:9. Supported values depend on the chosen model.
input_imagesarray- Array of image URLs to use as reference images, if the chosen model supports image-to-image generation or editing.
maskstring- URL of a mask image marking the region to edit, for models that support inpainting.
ninteger- Number of images to generate for this job. Supported values depend on the chosen model.
negative_promptstring- Text describing elements to avoid in the generated image(s), for models that support negative prompting.
providerobject- Provider-specific settings passed through to the underlying image model as-is. The exact fields accepted vary by model and are not published in Butterbase's docs; check the chosen provider's own documentation for supported keys.
seedinteger- Random seed for reproducible generation. Same seed and inputs should produce similar output.
sizestring- Output image dimensions, e.g. 1024x1024. Supported values depend on the chosen model.
butterbase_integration_configureEnable a third-party integration toolkit (e.g.WriteEnable Integration
Enable a third-party integration toolkit (e.g. Gmail, Slack, Notion) for a Butterbase app, optionally giving it a display name and restricting it to specific OAuth scopes. Returns the toolkit's configuration once enabled; exact response fields are not published in Butterbase's docs. Use butterbase_integration_configure to turn on a toolkit found via butterbase_integrations_available_list; use butterbase_integration_configure_delete to turn it back off.
Inputs
app_idstringrequired- The Butterbase app ID to enable the toolkit for, as shown in the app's dashboard URL or returned by the app-creation API.
toolkitstringrequired- The slug of the integration toolkit to enable, as returned by butterbase_integrations_available_list (e.g. 'gmail', 'slack', 'notion').
displayNamestring- A human-readable name to show for this toolkit in the app's dashboard. If omitted, the toolkit's default catalog name is used.
scopesarray- Array of OAuth scope strings to restrict this toolkit's connections to. If omitted, the toolkit's default scopes are used.
butterbase_integration_connectGenerate an OAuth authorization URL that lets an end user connect a third-party integration account (e.g.WriteConnect Integration
Generate an OAuth authorization URL that lets an end user connect a third-party integration account (e.g. Gmail, Slack, Notion) to a Butterbase app. Returns an authUrl to send the user to and a connectionRequestId for tracking the pending connection. Use butterbase_integration_connect to start a new connection. Use butterbase_integration_connections_list to see accounts already connected. Prerequisite: the toolkit must already be enabled for the app (via the Butterbase dashboard or the integrations configure endpoint) before a user can connect an account for it.
Inputs
app_idstringrequired- The Butterbase app ID that owns the integration connection. Found in the app's settings in the Butterbase dashboard.
redirect_urlstringrequired- The URL to redirect the end user to once they complete (or cancel) the OAuth flow at the third-party provider.
toolkitstringrequired- The slug of the integration toolkit to connect, e.g. gmail, slack, or notion. Must already be enabled for the app.
user_idstringrequired- The identifier of the end user who is connecting the account. Required because this connector authenticates with a Butterbase platform API key rather than an end-user JWT, and the API can only infer the user automatically on JWT-authenticated requests.
butterbase_integration_tool_executeExecute a specific tool exposed by one of an end user's connected third-party integrations (e.g.WriteExecute Integration Tool
Execute a specific tool exposed by one of an end user's connected third-party integrations (e.g. send a Slack message, create a Gmail draft) through a Butterbase app. Returns {"successful": true, "data": {...}} on success, or an error object with a code, message, and remediation hint on failure. Use butterbase_integration_tools_list first to find the exact toolName and its expected params, then call butterbase_integration_tool_execute to run it.
Inputs
app_idstringrequired- The Butterbase app ID whose connected integration to execute a tool through.
paramsobjectrequired- The parameters the tool expects, as a JSON object whose shape depends on which integration tool is being run. Check butterbase_integration_tools_list for the exact fields a given tool accepts. Example: {"to": "jane@example.com", "subject": "Hi", "body": "Hello there"}.
tool_namestringrequired- The identifier of the integration tool to run, as listed by butterbase_integration_tools_list, e.g. GMAIL_SEND_EMAIL.
user_idstringrequired- The identifier of the end user whose connected account should be used to execute the tool. Required because this connector authenticates with a Butterbase platform API key rather than an end-user JWT, and the API can only infer the user automatically on JWT-authenticated requests.
butterbase_kv_batchPerform up to 100 get, set, or delete operations against a Butterbase app's key-value store in a single request.WriteBatch KV Operations
Perform up to 100 get, set, or delete operations against a Butterbase app's key-value store in a single request. Returns an array of per-operation results in the same order as the submitted operations. Use butterbase_kv_batch to read or write many keys efficiently in one call. Use butterbase_kv_set or butterbase_kv_delete for a single key at a time.
Inputs
app_idstringrequired- The Butterbase application ID that owns this key-value store.
opsarrayrequired- The batch of key-value operations to run, in order, up to 100 total. Each item needs an op (get, set, or del) and a key; set operations also need a value. Example: [{"op": "set", "key": "a", "value": 1}, {"op": "get", "key": "b"}, {"op": "del", "key": "c"}]
butterbase_kv_casCompare-and-swap the value at a key in a Butterbase app's key-value store: update it to a new value only if it currently matches an expected value.WriteCompare-And-Swap KV Value
Compare-and-swap the value at a key in a Butterbase app's key-value store: update it to a new value only if it currently matches an expected value. Returns a swapped flag indicating whether the update was applied. Use butterbase_kv_cas for optimistic concurrency control. Use butterbase_kv_set to write unconditionally, or butterbase_kv_setnx to write only when the key is absent.
- Idempotent
Inputs
app_idstringrequired- The Butterbase application ID that owns this key-value store.
expectedstringrequired- The value the key is expected to currently hold. Pass JSON null to require that the key does not currently exist. Can be a string, number, boolean, object, array, or null.
keystringrequired- The key-value store key to compare and conditionally update.
nextstringrequired- The new value to store if the current value matches 'expected'. Can be a string, number, boolean, object, or array.
butterbase_kv_decrAtomically decrement the numeric value stored at a key in a Butterbase app's key-value store, by 1 or by a given amount.WriteDecrement KV Counter
Atomically decrement the numeric value stored at a key in a Butterbase app's key-value store, by 1 or by a given amount. Returns the counter's new integer value after the decrement. Use butterbase_kv_decr to subtract from a counter. Use butterbase_kv_incr to add to it, or butterbase_kv_set to overwrite the value directly.
Inputs
app_idstringrequired- The Butterbase application ID that owns this key-value store.
keystringrequired- The key-value store key holding the numeric counter to decrement.
byinteger- The amount to subtract from the counter. Defaults to 1 if omitted.default
1
butterbase_kv_expireSet or clear the time-to-live on a key in a Butterbase app's key-value store, without changing its stored value.WriteSet KV Key TTL
Set or clear the time-to-live on a key in a Butterbase app's key-value store, without changing its stored value. Returns an applied flag indicating whether the TTL change took effect. Use butterbase_kv_expire to change or remove a key's expiration on its own. Use butterbase_kv_set to change both the value and TTL together.
Inputs
app_idstringrequired- The Butterbase application ID that owns this key-value store.
keystringrequired- The key-value store key whose TTL should be set or cleared.
ttlintegerrequired- The new time-to-live in seconds. Pass JSON null to remove the key's expiration entirely so it never expires.
butterbase_kv_expose_rule_setCreate or update a key-value expose rule that grants end-user JWTs read and/or write access to keys matching a glob-style pattern, optionally using JWT-claim substitution such as {user.id} in the pattern.WriteSet KV Expose Rule
Create or update a key-value expose rule that grants end-user JWTs read and/or write access to keys matching a glob-style pattern, optionally using JWT-claim substitution such as {user.id} in the pattern. Returns no content on success; fails with a conflict error if the pattern collides with another rule's precedence. Use butterbase_kv_expose_rule_set to add a new pattern or change an existing one's access roles. Use butterbase_kv_expose_rules_list to see current rules first, and butterbase_kv_expose_rule_delete to remove one.
- Idempotent
Inputs
app_idstringrequired- The Butterbase application ID the key pattern belongs to.
patternstringrequired- The glob-style key pattern this rule applies to, e.g. session/{user.id}/* or public/*. Supports JWT-claim substitution like {user.id}, which Butterbase resolves against the caller's JWT at request time. The pattern is sent as a URL path segment and is percent-encoded automatically.
readstringrequired- Which role is allowed to read keys matching this pattern. `public` allows anonymous access, `authed` allows any signed-in end user, `owner` restricts access to the user whose JWT claim matches the pattern's placeholder (e.g. {user.id}), and `deny` blocks read access entirely.one of
publicauthedownerdeny writestringrequired- Which role is allowed to write keys matching this pattern. `public` allows anonymous writes, `authed` allows any signed-in end user, `owner` restricts writes to the user whose JWT claim matches the pattern's placeholder (e.g. {user.id}), and `deny` blocks write access entirely.one of
publicauthedownerdeny
butterbase_kv_incrAtomically increment the numeric value stored at a key in a Butterbase app's key-value store, by 1 or by a given amount.WriteIncrement KV Counter
Atomically increment the numeric value stored at a key in a Butterbase app's key-value store, by 1 or by a given amount. Returns the counter's new integer value after the increment. Use butterbase_kv_incr to add to a counter. Use butterbase_kv_decr to subtract from it, or butterbase_kv_set to overwrite the value directly.
Inputs
app_idstringrequired- The Butterbase application ID that owns this key-value store.
keystringrequired- The key-value store key holding the numeric counter to increment.
byinteger- The amount to add to the counter. Defaults to 1 if omitted.default
1
butterbase_kv_setCreate or overwrite the value stored at a key in a Butterbase app's key-value store, optionally setting a time-to-live.WriteSet KV Value
Create or overwrite the value stored at a key in a Butterbase app's key-value store, optionally setting a time-to-live. Returns no content on success (HTTP 204). Use butterbase_kv_set to write a key unconditionally. Use butterbase_kv_setnx to write only when the key is absent, or butterbase_kv_cas to write only when the current value matches an expected one.
- Idempotent
Inputs
app_idstringrequired- The Butterbase application ID that owns this key-value store.
keystringrequired- The key-value store key to write.
valuestringrequired- The JSON value to store at this key. Can be a string, number, boolean, object, or array. Example: {"theme": "dark", "notifications": true}
ephemeralboolean- Marks the key as ephemeral when true. Butterbase's docs do not fully spell out the resulting behavior, so leave this unset unless you specifically need it.
ttlinteger- Time-to-live for the key in seconds. Pass null for no explicit expiration; if the field is omitted entirely, Butterbase applies its own default (30 days).
butterbase_kv_setnxSet a key's value in a Butterbase app's key-value store only if the key does not already exist.WriteSet KV Value If Not Exists
Set a key's value in a Butterbase app's key-value store only if the key does not already exist. Returns a wrote flag: true (HTTP 201) if the key was created, or false (HTTP 200) if it already existed and nothing changed. Use butterbase_kv_setnx to avoid overwriting an existing key. Use butterbase_kv_set to write unconditionally, or butterbase_kv_cas to update only when the current value matches an expected one.
- Idempotent
Inputs
app_idstringrequired- The Butterbase application ID that owns this key-value store.
keystringrequired- The key-value store key to write, only if it does not already exist.
valuestringrequired- The JSON value to store at this key if it doesn't already exist. Can be a string, number, boolean, object, or array. Example: {"owner": "worker-3"}
ephemeralboolean- Marks the key as ephemeral when true, if it is created. Butterbase's docs do not fully spell out the resulting behavior, so leave this unset unless you specifically need it.
ttlinteger- Time-to-live for the key in seconds, applied only if the key is created. Pass null for no explicit expiration; if omitted, Butterbase applies its own default (30 days).
butterbase_mcp_server_probeRe-probe a registered MCP server to refresh the list of tools it currently advertises.WriteProbe MCP Server
Re-probe a registered MCP server to refresh the list of tools it currently advertises. Returns the server's current tool catalog as reported live by the probe (exact per-tool fields are not published in Butterbase's docs). Use this after registering a new MCP server, or whenever its upstream tools may have changed, so agents pick up the latest catalog without deleting and re-registering the server.
Inputs
app_idstringrequired- The unique identifier of the Butterbase app the MCP server is registered under.
idstringrequired- The unique identifier of the registered MCP server to re-probe, as returned when the server was registered.
butterbase_mcp_server_registerRegister an MCP server as a new external tool source that an app's agents can call from their graph_spec.WriteRegister MCP Server
Register an MCP server as a new external tool source that an app's agents can call from their graph_spec. Returns the created MCP server record, including the id Butterbase assigns it. Use butterbase_mcp_server_register to connect a new MCP server. Use butterbase_mcp_servers_list to see what's already registered, or butterbase_mcp_server_delete to remove one.
Inputs
app_idstringrequired- The id of the Butterbase app to register the MCP server under.
authobjectrequired- How Butterbase should authenticate to this MCP server. Provide an object naming the auth scheme plus its credential; the documented scheme is a bearer token, given as a type field set to bearer alongside a token field holding the credential the MCP server expects. Example: {"type": "bearer", "token": "mcp_live_9f2a1c3e"}
namestringrequired- A label for this MCP server registration, used to identify it in the app's agent tooling and graph_spec references.
transportstringrequired- The MCP transport protocol this server uses. CONFIRMED required by the live API (not previously documented) — one of http, sse, or streamable_http.one of
httpssestreamable_http urlstringrequired- The MCP server's base URL that Butterbase should connect to in order to discover and call its advertised tools.
butterbase_meeting_bot_createDispatch a Butterbase notetaker bot to join and record a Zoom, Google Meet, Teams, or Webex meeting, with optional recording and transcription.WriteCreate Meeting Bot
Dispatch a Butterbase notetaker bot to join and record a Zoom, Google Meet, Teams, or Webex meeting, with optional recording and transcription. Returns the new bot's id, its initial lifecycle status, and (once available) start/completion times, duration, recording and transcript URLs, bot name, and metadata. Use butterbase_meeting_bot_create to start capturing a call; poll butterbase_meeting_bot_get afterward for status updates, or call butterbase_meeting_bot_stop to make the bot leave early.
Inputs
app_idstringrequired- The unique identifier of the Butterbase app dispatching the meeting bot.
meetingUrlstringrequired- The full join URL of the video meeting the bot should enter (Zoom, Google Meet, Microsoft Teams, or Webex).
automaticLeaveobject- Optional timeout thresholds (in seconds, each up to 86400) that make the bot leave the call automatically: waitingRoomTimeoutSec (stuck in a waiting room), noOneJoinedTimeoutSec (no one ever joined), everyoneLeftTimeoutSec (everyone else left), and inCallNotRecordingTimeoutSec (in the call but not recording). Leave unset to use Butterbase's defaults. Example: {"waitingRoomTimeoutSec": 600, "noOneJoinedTimeoutSec": 300, "everyoneLeftTimeoutSec": 60, "inCallNotRecordingTimeoutSec": 1800}.
botNamestring- The display name the bot uses inside the meeting, 1-64 characters. Defaults to 'Butterbase Notetaker'.default
Butterbase Notetaker metadataobject- Arbitrary string-to-string key/value pairs to attach to this bot session for your own bookkeeping, e.g. correlating the bot with an internal meeting record. Defaults to an empty object.
recordingstring- How the bot should record the meeting: 'mp4' for full video, 'audio_only' for audio only, or false to disable recording entirely. Defaults to 'mp4'.one of
mp4audio_onlyfalsedefaultmp4 transcriptboolean- Whether the bot should generate a transcript of the meeting. Defaults to true.default
true
butterbase_meeting_webhook_configureConfigure or rotate the webhook forwarding URL and signing secret Butterbase uses to deliver meeting-bot events (bot.done, transcript.done, recording.done, and related events) to your endpoint.WriteConfigure Meeting Webhook
Configure or rotate the webhook forwarding URL and signing secret Butterbase uses to deliver meeting-bot events (bot.done, transcript.done, recording.done, and related events) to your endpoint. Returns the app's current webhook configuration (ok, app_id, forward_url); the response's secret field is populated only the first time a signing secret is created, or when rotate_secret is set to true on this call - every other call returns secret as null. Use butterbase_meeting_webhook_configure to point event delivery at a new URL, or set rotate_secret to true to mint a fresh signing secret; rotating immediately invalidates the previous secret, so update your signature verification right away.
- Idempotent
Inputs
app_idstringrequired- The unique identifier of the Butterbase app whose meeting-bot webhook should be configured.
forward_urlstringrequired- The HTTPS URL Butterbase should POST meeting-bot event payloads to.
rotate_secretboolean- When true, mints a brand-new webhook signing secret and returns it once in this response's secret field. Every other call - including one that only changes forward_url - returns secret as null, since Butterbase never re-displays a previously issued secret. Rotating also immediately invalidates the old secret, so requests signed with it stop verifying right away. Defaults to false.default
false
butterbase_people_profile_email_lookup_startQueue an asynchronous lookup of a person's work email address from their LinkedIn profile URL.WriteStart Work Email Lookup
Queue an asynchronous lookup of a person's work email address from their LinkedIn profile URL. Returns a lookup ID (UUID) and a 'pending' status, plus the credits consumed to queue the job. Use this when you need a person's work email but only have their LinkedIn profile URL; poll butterbase_people_email_lookup_get with the returned lookup ID to retrieve the resolved email once processing completes.
Inputs
app_idstringrequired- The Butterbase app ID to run the lookup under, as shown in the app's dashboard URL or returned by the app-creation API.
linkedinProfileUrlstringrequired- The LinkedIn profile URL of the person whose work email should be looked up.
butterbase_public_agent_run_createStart an anonymous run of a public Butterbase agent, without requiring the end user to sign in.WriteStart Public Agent Run
Start an anonymous run of a public Butterbase agent, without requiring the end user to sign in. Returns the new run's id and initial status. Use butterbase_public_agent_run_create for a public-facing agent (for example, one embedded in a website widget) that visitors can invoke without authentication. Use butterbase_agent_run_create instead to start a run against a private agent using platform authentication. Butterbase normally authorizes this route with the app's public anon key rather than the platform API key; this connector calls it with your configured platform API key instead. CONFIRMED via a dedicated live investigation: the underlying Butterbase endpoint works correctly and returns a genuine success when called with a valid end-user access token (obtained via butterbase_auth_login) -- this was previously only ever tested with the wrong credential type (this connector's platform key), which always 401s. HOWEVER, this connector has no way to actually supply that end-user token: Scalekit's execution engine controls the Authorization header for a BEARER connection server-side and rejects a client-supplied Authorization header override outright (confirmed via direct SDK-level testing -- a custom header is rejected with its own 401 before ever reaching Butterbase). This tool will therefore always fail via the standard execution path on this connector, by platform design, not due to a fixable tool-JSON defect -- it would need a future Scalekit auth-strategy feature (e.g. a per-call token override) to ever work through this connector.
Inputs
app_idstringrequired- The id of the Butterbase app the public agent belongs to.
inputobjectrequired- The run's input state, given as a JSON object whose keys match whatever the agent's graph_spec templates via `{{ state.key }}` placeholders (for example, a visitor's message or form fields). The shape is defined by each agent, not by a fixed Butterbase schema. Example: {"message": "Hi, I need help resetting my password."}
namestringrequired- The unique name of the public agent to run.
butterbase_public_run_cancelCancel a queued or in-progress public agent run.WriteCancel Public Run
Cancel a queued or in-progress public agent run. Returns the run's updated status once cancellation has been requested. Use butterbase_public_run_cancel to stop a run started by butterbase_public_agent_run_create. Use butterbase_agent_run_cancel instead for a run started with platform authentication. Butterbase normally authorizes this route with the app's public anon key rather than the platform API key; this connector calls it with your configured platform API key instead. CONFIRMED via a dedicated live investigation: the underlying Butterbase endpoint works correctly and returns a genuine success when called with a valid end-user access token (obtained via butterbase_auth_login) -- this was previously only ever tested with the wrong credential type (this connector's platform key), which always 401s. HOWEVER, this connector has no way to actually supply that end-user token: Scalekit's execution engine controls the Authorization header for a BEARER connection server-side and rejects a client-supplied Authorization header override outright (confirmed via direct SDK-level testing -- a custom header is rejected with its own 401 before ever reaching Butterbase). This tool will therefore always fail via the standard execution path on this connector, by platform design, not due to a fixable tool-JSON defect -- it would need a future Scalekit auth-strategy feature (e.g. a per-call token override) to ever work through this connector.
Inputs
app_idstringrequired- The id of the Butterbase app the public run belongs to.
idstringrequired- The id of the public run to cancel, as returned by butterbase_public_agent_run_create.
butterbase_public_run_resumeResume a paused public agent run by submitting a human-in-the-loop approval decision.WriteResume Public Run
Resume a paused public agent run by submitting a human-in-the-loop approval decision. Returns the updated run object after the run resumes. Use butterbase_public_run_resume when a public run's run_paused event carries an approval_token awaiting a decision. Use butterbase_agent_run_resume instead for a run started with platform authentication. Butterbase normally authorizes this route with the app's public anon key rather than the platform API key; this connector calls it with your configured platform API key instead. CONFIRMED via a dedicated live investigation: the underlying Butterbase endpoint works correctly and returns a genuine success when called with a valid end-user access token (obtained via butterbase_auth_login) -- this was previously only ever tested with the wrong credential type (this connector's platform key), which always 401s. HOWEVER, this connector has no way to actually supply that end-user token: Scalekit's execution engine controls the Authorization header for a BEARER connection server-side and rejects a client-supplied Authorization header override outright (confirmed via direct SDK-level testing -- a custom header is rejected with its own 401 before ever reaching Butterbase). This tool will therefore always fail via the standard execution path on this connector, by platform design, not due to a fixable tool-JSON defect -- it would need a future Scalekit auth-strategy feature (e.g. a per-call token override) to ever work through this connector. Separately and additionally: even setting the credential problem aside, this tool's happy path (actually resuming a genuinely paused run) remains unverified -- Butterbase's docs do not document how to configure an agent graph node that triggers a human-in-the-loop pause (e.g. a builtin tool requiring approval), so no real run_paused/approval_token has ever been produced to test against, across multiple rounds of testing. The tool's schema (approval_token + approved boolean) matches what IS documented for this flow; only the end-to-end happy path is unverified.
Inputs
app_idstringrequired- The id of the Butterbase app the public run belongs to.
approval_tokenstringrequired- The approval token carried in the run's run_paused event, identifying which pending tool-call approval this decision resolves.
approvedbooleanrequired- Whether to approve (true) or reject (false) the paused tool call, allowing or blocking the run from continuing with it.
idstringrequired- The id of the paused public run to resume.
butterbase_public_run_stream_token_createMint a one-time token that authorizes a live connection to a public agent run's event stream (SSE or WebSocket).WriteCreate Run Stream Token
Mint a one-time token that authorizes a live connection to a public agent run's event stream (SSE or WebSocket). Returns a short-lived token string to pass as a `token` query parameter when opening the run's streaming events or WebSocket endpoint. Use butterbase_public_run_stream_token_create right before opening a live connection to a run's events. Use butterbase_public_run_events_list instead if a single JSON snapshot of the events so far is enough. Butterbase normally authorizes this route with the app's public anon key rather than the platform API key; this connector calls it with your configured platform API key instead. CONFIRMED via a dedicated live investigation: the underlying Butterbase endpoint works correctly and returns a genuine success when called with a valid end-user access token (obtained via butterbase_auth_login) -- this was previously only ever tested with the wrong credential type (this connector's platform key), which always 401s. HOWEVER, this connector has no way to actually supply that end-user token: Scalekit's execution engine controls the Authorization header for a BEARER connection server-side and rejects a client-supplied Authorization header override outright (confirmed via direct SDK-level testing -- a custom header is rejected with its own 401 before ever reaching Butterbase). This tool will therefore always fail via the standard execution path on this connector, by platform design, not due to a fixable tool-JSON defect -- it would need a future Scalekit auth-strategy feature (e.g. a per-call token override) to ever work through this connector.
Inputs
app_idstringrequired- The id of the Butterbase app the public run belongs to.
idstringrequired- The id of the public run to open a live event stream for.
butterbase_rag_collection_createCreate a new RAG document collection in a Butterbase app, configuring its access mode and chunking strategy.WriteCreate RAG Collection
Create a new RAG document collection in a Butterbase app, configuring its access mode and chunking strategy. Returns the created collection with its name, description, access mode, chunk size, chunk overlap, and creation/update timestamps. Use butterbase_rag_collection_create to set up a collection before ingesting documents into it with butterbase_rag_document_ingest. Use butterbase_rag_collections_list to see collections that already exist.
Inputs
app_idstringrequired- The Butterbase app ID that will own this collection. Found in the app's dashboard URL or via Butterbase's apps listing.
namestringrequired- Name of the new collection. Must use only lowercase letters, numbers, hyphens, and underscores, and must be unique within the app.
accessModestring- Who can access this collection: private (only this app's service key), shared, or custom. Defaults to private if omitted.one of
privatesharedcustomdefaultprivate chunkOverlapnumber- Number of characters of overlap between consecutive chunks, to preserve context across chunk boundaries. Defaults to 64 if omitted.default
64 chunkSizenumber- Number of characters per text chunk when documents are split for embedding. Defaults to 512 if omitted.default
512 descriptionstring- Optional human-readable description of what this collection contains.
butterbase_rag_document_ingestEnqueue a document for asynchronous ingestion into a RAG collection, from raw text or from a file already uploaded to Butterbase storage.WriteIngest RAG Document
Enqueue a document for asynchronous ingestion into a RAG collection, from raw text or from a file already uploaded to Butterbase storage. Returns a document id and a pending ingestion status immediately (202 Accepted); the document is not searchable until ingestion finishes. Use butterbase_rag_document_ingest to add a document, then poll butterbase_rag_document_get until its status is ready or failed. Provide exactly one of the raw text or a storage object id — never both, and never neither.
Inputs
app_idstringrequired- The Butterbase app ID that owns the target collection. Found in the app's dashboard URL or via Butterbase's apps listing.
namestringrequired- The name of the RAG collection to ingest this document into, exactly as it was created.
filenamestring- Optional display filename for the ingested document, overriding any name derived from the source.
metadataobject- Optional metadata object stored alongside the document, returned with query results and usable as a metadata filter in butterbase_rag_query.
storage_object_idstring- ID of a file already uploaded to Butterbase's separate storage API. Required when text is not provided; provide only one of the two, never both. There is no raw file-upload option on this endpoint — upload the file via Butterbase's storage API first to obtain this id.
textstring- Raw text content to ingest as a document. Required when storage_object_id is not provided; provide only one of the two, never both.
butterbase_repo_blobs_batch_presignGet presigned download URLs for multiple app repo blobs in one call, given their SHA-256 hashes.WriteBatch Presign Repo Blobs
Get presigned download URLs for multiple app repo blobs in one call, given their SHA-256 hashes. Returns presigned download URLs for the requested blobs (exact response shape is not published in Butterbase's docs, but each entry pairs a hash with its presigned URL). Use butterbase_repo_blobs_batch_presign to fetch many blob URLs at once. Use butterbase_repo_blob_get when you only need one.
Inputs
app_idstringrequired- The id of the app whose repo the blobs belong to.
shasarrayrequired- List of SHA-256 hashes (64 lowercase hex characters each) identifying the blobs to presign, as they appear in a repo snapshot manifest.
butterbase_repo_snapshot_commitFinalize and commit a previously prepared app repo snapshot using its full manifest.WriteCommit Repo Snapshot
Finalize and commit a previously prepared app repo snapshot using its full manifest. Returns the committed snapshot record (exact fields are not published in Butterbase's docs, but it typically includes a snapshot id and its manifest). Use butterbase_repo_snapshot_commit after butterbase_repo_snapshot_prepare has validated the manifest and you have uploaded any changed blobs to their presigned URLs.
Inputs
app_idstringrequired- The id of the app whose repo this snapshot belongs to.
manifestobjectrequired- The full file manifest to commit as the app's new repo snapshot, matching the shape validated by butterbase_repo_snapshot_prepare: an object listing every tracked file's path, SHA-256 hash, and size.
butterbase_repo_snapshot_prepareValidate a file manifest for a new app repo snapshot and get presigned upload URLs for any blobs that changed.WritePrepare Repo Snapshot
Validate a file manifest for a new app repo snapshot and get presigned upload URLs for any blobs that changed. Returns a validation result plus presigned upload URLs for changed blobs (exact response fields are not published in Butterbase's docs). Use butterbase_repo_snapshot_prepare before butterbase_repo_snapshot_commit: upload each changed blob to its presigned URL first, then commit the resulting manifest.
Inputs
app_idstringrequired- The id of the app whose repo this snapshot belongs to.
filesarrayrequired- The full list of files in the app's repo manifest. Each entry needs the file's repo-relative path, the SHA-256 hash of its contents, and its size in bytes. Butterbase compares these hashes against the current snapshot to work out which blobs actually changed and need uploading.
messagestring- Optional commit-style message describing this snapshot, shown later in the app's repo history.
butterbase_schema_applyApply a database schema migration to a Butterbase app, or preview it first with a dry run.WriteApply Schema Migration
Apply a database schema migration to a Butterbase app, or preview it first with a dry run. Returns the result of the migration attempt; Butterbase's docs do not publish an exact response shape, and a dry run returns a preview instead of applying changes. Use butterbase_schema_apply to change an app's tables and columns. Use butterbase_schema_get to read the current schema first, and butterbase_migrations_list to confirm which migrations have already applied. CONFIRMED via live testing: the request body wraps the schema under a "schema" key (not "migration" as earlier assumed) — this tool sends it correctly now. Also confirmed: this is a full declarative sync of the table set; omitting an existing table from a subsequent apply call will trigger a destructive-change rejection unless a top-level "_drop": ["table_name", ...] array explicitly authorizes removing it. CONFIRMED primary key shape (deep-coverage testing): mark a column as the primary key with a column-level, camelCase, boolean flag -- {"columns": {"id": {"type": "uuid", "primaryKey": true}}} -- table-level "primary_key"/"primaryKey" fields are silently accepted but do NOT produce a working primary key (subsequent butterbase_table_row_get/update calls then fail with "Table has no primary key").
Inputs
app_idstringrequired- The Butterbase app's unique ID whose database schema should be migrated.
migrationobjectrequired- The schema migration definition to apply, in the shape Butterbase's schema tooling expects for the app (for example, creating a table, adding a column, or changing a column's type). Butterbase's public docs do not publish an exact JSON shape for this field, so build it the same way the app's schema editor or CLI would generate it. Example: {"tables": [{"name": "posts", "columns": [{"name": "title", "type": "text"}]}]} To set a working primary key, use the column-level camelCase boolean shape confirmed by testing: {"tables": [{"name": "posts", "columns": {"id": {"type": "uuid", "primaryKey": true}, "title": {"type": "text"}}}]}
dry_runboolean- When true, previews the migration without applying it to the database.default
false
butterbase_storage_config_updateUpdate an app's storage configuration in Butterbase, such as enabling app-wide public-read access to stored files.WriteUpdate Storage Config
Update an app's storage configuration in Butterbase, such as enabling app-wide public-read access to stored files. Returns a confirmation message plus the app's updated storage configuration, including its max file size, allowed content types, and whether public-read access is enabled. Use this to toggle public-read access for all files in an app at once. To make only a single file public instead, use the public flag on butterbase_storage_upload_url_create. CONFIRMED via live testing: maxFileSizeMb and storageLimitBytes are also real, working settings on this endpoint (not previously exposed here) -- both are now supported as inputs.
- Idempotent
Inputs
app_idstringrequired- The unique identifier of the Butterbase app whose storage configuration should be updated.
maxFileSizeMbinteger- The maximum size, in megabytes, allowed for a single uploaded file in this app's storage. CONFIRMED via live testing: the API accepts and applies this field. Omit to leave the current limit unchanged.
publicReadEnabledboolean- Whether any authenticated user of the app can download any file in storage, regardless of who uploaded it. Uploads and deletes remain scoped to their owning user either way.
storageLimitBytesinteger- The total storage quota, in bytes, allowed for this app across all uploaded files. CONFIRMED via live testing: the API accepts and applies this field. Omit to leave the current limit unchanged.
butterbase_storage_upload_url_createRequest a presigned URL for uploading a new file to a Butterbase app's storage.WriteCreate Storage Upload URL
Request a presigned URL for uploading a new file to a Butterbase app's storage. Returns a short-lived upload URL, the assigned object key and object ID, and the URL's expiry in seconds. This tool only creates the upload URL — the caller must separately send the file bytes with a raw PUT request to that URL (using the same content type), which is not part of this tool. Use this to start uploading a file to Butterbase Storage; after the PUT to the returned URL succeeds, use butterbase_storage_objects_list or butterbase_storage_download_url_get to reference the stored file.
Inputs
app_idstringrequired- The unique identifier of the Butterbase app to upload the file into.
contentTypestringrequired- The MIME type of the file being uploaded. This must match the Content-Type header used on the follow-up PUT to the presigned upload URL.
filenamestringrequired- The original filename of the file being uploaded, including its extension.
sizeBytesintegerrequired- The exact size of the file in bytes. Uploads are subject to the app's configured max file size (10 MB by default).
publicboolean- If true, marks the uploaded file as downloadable by any authenticated user of the app, not just the uploader. Defaults to false (private to the uploader) if omitted.default
false
butterbase_substrate_action_approveApprove a pending Substrate action so it executes.WriteApprove Substrate Action
Approve a pending Substrate action so it executes. Returns the updated action record showing its new status; if the action is not currently in proposed status, the request fails with a 409 wrong_status error. Use butterbase_substrate_action_approve after butterbase_substrate_actions_list or butterbase_substrate_action_get shows an action with status proposed and requires_approval true. Requires a Butterbase Substrate-scoped API key (bb_sub_...), not the general platform key.
Inputs
action_idstringrequired- The unique identifier of the pending Substrate action to approve.
reasonstring- An optional free-text note explaining why the action is being approved. Butterbase's docs show this as an example field on the request but do not state whether it is strictly required, so it is treated as optional here.
butterbase_substrate_action_proposePropose a Substrate action, such as recording a decision, commitment, learning, or principle, or creating, updating, merging, or deleting an entity, for auto-execution or manual approval.WritePropose Substrate Action
Propose a Substrate action, such as recording a decision, commitment, learning, or principle, or creating, updating, merging, or deleting an entity, for auto-execution or manual approval. Returns the new action's id, an approval verdict (auto_approved, auto_approved_yolo, requires_approval, or rejected), and, once executed, the capability-specific result. Use butterbase_substrate_action_propose to write to the Substrate memory ledger; if the verdict is requires_approval, follow up with butterbase_substrate_action_approve or butterbase_substrate_action_reject. Requires a Butterbase Substrate-scoped API key (bb_sub_...), not the general platform key.
Inputs
capabilitystringrequired- The Substrate capability this action proposes. Determines both what fields the payload must contain and the action's default approval policy. One of: record_decision, record_commitment, record_learning, record_principle, supersede_decision, retire_principle, upsert_entity, update_entity, patch_entity, merge_entities, delete_entity, upsert_source_artifact, revert_action, bulk_revert_actions, send_email_draft.one of
record_decisionrecord_commitmentrecord_learningrecord_principlesupersede_decisionretire_principleupsert_entityupdate_entitypatch_entitymerge_entitiesdelete_entityupsert_source_artifactrevert_actionbulk_revert_actionssend_email_draft payloadobjectrequired- A JSON object whose fields depend entirely on the chosen capability. For example, record_decision needs a title and a kind; upsert_entity needs a type and display_name; patch_entity needs an id and a JSON merge-patch of the fields to change; send_email_draft needs to, subject, and body; delete_entity needs an id and a reason (CONFIRMED required via live testing, not previously documented here); record_principle needs applies_to and constraint_spec (CONFIRMED required via live testing, not previously documented here). Consult Butterbase's Substrate API capability-payload reference for the exact required and optional fields for your chosen capability.
idempotency_keystring- An optional client-chosen string that makes repeated proposals with the same intent idempotent. Reusing the same key returns the original action's verdict and result without re-executing it, with the response's replay field set to true; the key is remembered indefinitely (no stated expiry) per Substrate user.
butterbase_substrate_action_rejectReject a pending Substrate action so it will not execute.WriteReject Substrate Action
Reject a pending Substrate action so it will not execute. Returns the updated action record showing its new status; if the action is not currently in proposed status, the request fails with a 409 wrong_status error. Use butterbase_substrate_action_reject to decline an action that butterbase_substrate_actions_list or butterbase_substrate_action_get shows as status proposed and requires_approval true. Requires a Butterbase Substrate-scoped API key (bb_sub_...), not the general platform key.
Inputs
action_idstringrequired- The unique identifier of the pending Substrate action to reject.
reasonstringrequired- An optional free-text note explaining why the action is being rejected. Butterbase's docs show this as an example field on the request but do not state whether it is strictly required, so it is treated as optional here.
butterbase_substrate_attention_rule_createCreate a new Substrate attention rule that evaluates a condition on a cron schedule and, when it matches, proposes an action through the Substrate actions ledger.WriteCreate Attention Rule
Create a new Substrate attention rule that evaluates a condition on a cron schedule and, when it matches, proposes an action through the Substrate actions ledger. Returns the created rule record, including its rule_id, schedule, and whether it starts enabled. Use butterbase_substrate_attention_rule_create to set up ongoing monitoring, such as a weekly digest email or an alert when a snapshot metric crosses a threshold. Use butterbase_substrate_attention_rule_preview first to dry-run the same rule body against current data before saving it. Requires a Butterbase Substrate-scoped API key (bb_sub_...) — a standard platform API key is rejected with a 403 on all Substrate endpoints.
Inputs
action_capabilitystringrequired- Which Substrate capability to propose (through the actions ledger) when the rule's condition matches. Must be one of the capability names Substrate accepts on POST /v1/me/substrate/actions/propose. Capabilities such as send_email_draft, record_principle, supersede_decision, retire_principle, merge_entities, delete_entity, and bulk_revert_actions require an explicit approval before they execute; the rest normally auto-execute.one of
record_decisionrecord_commitmentrecord_learningrecord_principlesupersede_decisionretire_principleupsert_entityupdate_entitypatch_entitymerge_entitiesdelete_entityupsert_source_artifactrevert_actionbulk_revert_actionssend_email_draft action_payload_templateobjectrequired- Template for the payload sent to action_capability when the rule fires. Supports {{var}} placeholder interpolation using fields from the matched data at fire time (e.g. {{entity_count}}). Its shape must match what action_capability expects, e.g. {"to": "...", "subject": "...", "body": "..."} for send_email_draft.
conditionobjectrequired- The rule's trigger condition, expressed as a JSON-Logic predicate object evaluated against the data selected by condition_mode. Example: {">": [{"var": "entity_count"}, 0]} matches when entity_count is greater than 0.
condition_modestringrequired- Which data source the condition is evaluated against. 'snapshot_predicate' checks fields from Butterbase's daily rollup snapshots (e.g. entity_count, decision_count). 'row_query' evaluates the condition against live Substrate data instead of a snapshot.one of
snapshot_predicaterow_query namestringrequired- Display name for the attention rule, shown in the Butterbase dashboard and used to recognize it in the actions ledger.
trigger_cronstringrequired- 5-field cron expression (minute hour day-of-month month day-of-week), evaluated in UTC, controlling how often Butterbase checks this rule's condition. Example: '0 9 * * 1' runs every Monday at 09:00 UTC.
descriptionstring- Free-text explanation of what the rule watches for and why. Shown alongside the rule in the dashboard; it does not affect evaluation.
enabledboolean- Whether the rule is active immediately after creation. Set to false to save it without evaluating it yet. Defaults to true.default
true max_fires_per_dayinteger- Maximum number of times this rule is allowed to fire (propose an action) within a single day, to guard against runaway repeated firings. Leave unset for no daily cap.
butterbase_substrate_attention_rule_disableDisable an active Substrate attention rule so it stops evaluating its condition and firing, without deleting its definition.WriteDisable Attention Rule
Disable an active Substrate attention rule so it stops evaluating its condition and firing, without deleting its definition. Returns the updated rule record with its enabled flag set to false. Use butterbase_substrate_attention_rule_disable to pause a rule temporarily. Use butterbase_substrate_attention_rule_delete instead to remove it permanently, or butterbase_substrate_attention_rule_enable to resume it later. Requires a Butterbase Substrate-scoped API key (bb_sub_...) — a standard platform API key is rejected with a 403 on all Substrate endpoints.
Inputs
rule_idstringrequired- The unique id of the attention rule to disable, as returned by butterbase_substrate_attention_rule_create or a prior list call.
butterbase_substrate_attention_rule_enableEnable a disabled Substrate attention rule so it resumes evaluating its condition on its cron schedule.WriteEnable Attention Rule
Enable a disabled Substrate attention rule so it resumes evaluating its condition on its cron schedule. Returns the updated rule record with its enabled flag set to true. Use butterbase_substrate_attention_rule_enable to resume a rule paused earlier with butterbase_substrate_attention_rule_disable, without redefining it. Use butterbase_substrate_attention_rule_update instead if you also need to change the rule's condition, schedule, or action. Requires a Butterbase Substrate-scoped API key (bb_sub_...) — a standard platform API key is rejected with a 403 on all Substrate endpoints.
Inputs
rule_idstringrequired- The unique id of the attention rule to enable, as returned by butterbase_substrate_attention_rule_create or a prior list call.
butterbase_substrate_attention_rule_previewDry-run a Substrate attention rule's definition against current data without saving the rule or firing any real actions.WritePreview Attention Rule
Dry-run a Substrate attention rule's definition against current data without saving the rule or firing any real actions. Returns bindings_count (how many data bindings matched the condition), sample_proposals (a small sample of what would have been proposed, including whether each would require approval), and skip_reason (set if the rule would not have fired). Use butterbase_substrate_attention_rule_preview before butterbase_substrate_attention_rule_create or butterbase_substrate_attention_rule_update to check a rule's condition and payload template behave as expected before persisting it. Requires a Butterbase Substrate-scoped API key (bb_sub_...) — a standard platform API key is rejected with a 403 on all Substrate endpoints.
Inputs
action_capabilitystringrequired- Which Substrate capability would be proposed if this rule matched. Must be one of the capability names Substrate accepts on POST /v1/me/substrate/actions/propose.one of
record_decisionrecord_commitmentrecord_learningrecord_principlesupersede_decisionretire_principleupsert_entityupdate_entitypatch_entitymerge_entitiesdelete_entityupsert_source_artifactrevert_actionbulk_revert_actionssend_email_draft action_payload_templateobjectrequired- Template for the payload that would be sent to action_capability if the rule fired. Supports {{var}} placeholder interpolation using fields from the matched data (e.g. {{entity_count}}). Its rendered form for each match is returned in sample_proposals.
conditionobjectrequired- The condition to test, expressed as a JSON-Logic predicate object evaluated against the data selected by condition_mode. Example: {">": [{"var": "entity_count"}, 0]} matches when entity_count is greater than 0.
condition_modestringrequired- Which data source the condition is evaluated against for this preview. 'snapshot_predicate' checks fields from Butterbase's daily rollup snapshots (e.g. entity_count, decision_count). 'row_query' evaluates the condition against live Substrate data instead of a snapshot.one of
snapshot_predicaterow_query trigger_cronstringrequired- 5-field cron expression (minute hour day-of-month month day-of-week), evaluated in UTC. Included for schema parity with the saved rule; the preview evaluates the condition against current data immediately regardless of this schedule.
descriptionstring- Free-text explanation of what the rule watches for and why. Optional; not used in evaluation.
enabledboolean- Included for schema parity with the saved rule body. Has no effect on the preview itself, which always evaluates the condition regardless of this value.default
true max_fires_per_dayinteger- Included for schema parity with the saved rule body. Has no effect on the preview itself.
namestring- Display name for the rule being previewed. Optional for a preview since the rule is never saved.
butterbase_substrate_attention_rule_updateReplace an existing Substrate attention rule's schedule, condition, and action with a new definition.WriteUpdate Attention Rule
Replace an existing Substrate attention rule's schedule, condition, and action with a new definition. Returns the updated rule record. Use butterbase_substrate_attention_rule_update to change what a rule watches for or does. Use butterbase_substrate_attention_rule_enable or butterbase_substrate_attention_rule_disable instead if you only need to toggle it on or off without changing its definition. Requires a Butterbase Substrate-scoped API key (bb_sub_...) — a standard platform API key is rejected with a 403 on all Substrate endpoints.
- Idempotent
Inputs
action_capabilitystringrequired- Which Substrate capability to propose (through the actions ledger) when the rule's condition matches. Must be one of the capability names Substrate accepts on POST /v1/me/substrate/actions/propose. Capabilities such as send_email_draft, record_principle, supersede_decision, retire_principle, merge_entities, delete_entity, and bulk_revert_actions require an explicit approval before they execute; the rest normally auto-execute.one of
record_decisionrecord_commitmentrecord_learningrecord_principlesupersede_decisionretire_principleupsert_entityupdate_entitypatch_entitymerge_entitiesdelete_entityupsert_source_artifactrevert_actionbulk_revert_actionssend_email_draft action_payload_templateobjectrequired- Template for the payload sent to action_capability when the rule fires. Supports {{var}} placeholder interpolation using fields from the matched data at fire time (e.g. {{entity_count}}). Its shape must match what action_capability expects, e.g. {"to": "...", "subject": "...", "body": "..."} for send_email_draft.
conditionobjectrequired- The rule's trigger condition, expressed as a JSON-Logic predicate object evaluated against the data selected by condition_mode. Example: {">": [{"var": "entity_count"}, 0]} matches when entity_count is greater than 0.
condition_modestringrequired- Which data source the condition is evaluated against. 'snapshot_predicate' checks fields from Butterbase's daily rollup snapshots (e.g. entity_count, decision_count). 'row_query' evaluates the condition against live Substrate data instead of a snapshot.one of
snapshot_predicaterow_query namestringrequired- Display name for the attention rule, shown in the Butterbase dashboard and used to recognize it in the actions ledger.
rule_idstringrequired- The unique id of the attention rule to update, as returned by butterbase_substrate_attention_rule_create or a prior list call.
trigger_cronstringrequired- 5-field cron expression (minute hour day-of-month month day-of-week), evaluated in UTC, controlling how often Butterbase checks this rule's condition. Example: '0 9 * * 1' runs every Monday at 09:00 UTC.
descriptionstring- Free-text explanation of what the rule watches for and why. Shown alongside the rule in the dashboard; it does not affect evaluation.
enabledboolean- Whether the rule is active after this update. Defaults to true.default
true max_fires_per_dayinteger- Maximum number of times this rule is allowed to fire (propose an action) within a single day, to guard against runaway repeated firings. Leave unset for no daily cap.
butterbase_substrate_entity_updateUpdate fields on a Substrate entity by its id — change its display name, primary email, or attributes via a partial (RFC 7396 JSON merge-patch) update.WriteUpdate Substrate Entity
Update fields on a Substrate entity by its id — change its display name, primary email, or attributes via a partial (RFC 7396 JSON merge-patch) update. Butterbase routes this through its internal action-proposal flow rather than writing directly. Returns the resulting action record, including its action_id and verdict (whether the update auto-applied or still needs approval). Use butterbase_substrate_entity_update to make a partial edit to one entity's fields. Use butterbase_substrate_entity_get first to see its current attributes and updated_at timestamp. This endpoint requires a Butterbase Substrate-scoped API key (bb_sub_...) — a general platform key (bb_sk_...) is rejected with a 403. KNOWN ISSUE: a live test against a real entity id returned a framework-level "Route PATCH: ... not found" 404, suggesting this direct PATCH endpoint may not actually exist and updates may need to go through butterbase_substrate_action_propose with capability patch_entity instead — unconfirmed, flagged for follow-up.
- Idempotent
Inputs
entity_idstringrequired- The unique id of the Substrate entity to update.
attrs_patchobject- A JSON merge-patch (RFC 7396) applied on top of the entity's existing attributes object: each key you include sets that attribute to the given value, and setting a key's value to null removes that attribute. Keys you leave out are untouched.
display_namestring- New display name for the entity. Leave unset to keep the current name.
if_updated_atstring- Optimistic-concurrency guard: an ISO 8601 timestamp that must match the entity's current updated_at for the patch to apply. Leave unset to skip this check.
primary_emailstring- New primary email address for the entity. Leave unset to keep the current value.
butterbase_substrate_outbox_target_setRegister or replace the outbound webhook target for a Substrate capability, so Butterbase POSTs a notification whenever an action for that capability executes.WriteSet Outbox Target
Register or replace the outbound webhook target for a Substrate capability, so Butterbase POSTs a notification whenever an action for that capability executes. Returns the saved target configuration for the capability. Use butterbase_substrate_outbox_target_set to add a new webhook for a capability or update an existing one's URL, signing secret, or app scope. Use butterbase_substrate_outbox_target_delete instead to remove a capability's target entirely. Requires a Butterbase Substrate-scoped API key (bb_sub_...) — a standard platform API key is rejected with a 403 on all Substrate endpoints.
- Idempotent
Inputs
capabilitystringrequired- Which Substrate capability this webhook target delivers notifications for. When an action for this capability executes, Butterbase POSTs its details to webhook_url. Must be one of the capability names Substrate accepts on POST /v1/me/substrate/actions/propose.one of
record_decisionrecord_commitmentrecord_learningrecord_principlesupersede_decisionretire_principleupsert_entityupdate_entitypatch_entitymerge_entitiesdelete_entityupsert_source_artifactrevert_actionbulk_revert_actionssend_email_draft signing_secretstringrequired- A secret string, at least 8 characters long, used to sign each webhook delivery with HMAC-SHA-256. Verify incoming deliveries by comparing this signature against the X-Butterbase-Signature header (format sha256=<hex>) computed over the raw request body.
webhook_urlstringrequired- The HTTPS URL Butterbase POSTs to whenever an action for this capability executes. The delivered body includes action_id, capability, payload, and executed_at, and is signed with signing_secret.
source_app_idstring- Restrict this webhook target to only fire for actions attributed to one Butterbase app (its source_app_id). Leave unset to receive this capability's webhooks for actions from any app.
butterbase_substrate_yolo_mode_setToggle Substrate yolo mode for the current user, which auto-approves all proposed Substrate actions instead of holding approval-required ones for review.WriteSet Substrate Yolo Mode
Toggle Substrate yolo mode for the current user, which auto-approves all proposed Substrate actions instead of holding approval-required ones for review. Returns the updated Substrate settings reflecting the new yolo mode state. Use butterbase_substrate_yolo_mode_set to turn yolo mode on for hands-off automation or off to require approval again; check the current state first with butterbase_substrate_settings_get. Requires a Butterbase Substrate-scoped API key (bb_sub_...), not the general platform key.
- Idempotent
Inputs
yolo_modebooleanrequired- Whether Substrate yolo mode should be enabled. When true, every proposed action auto-executes immediately, including capabilities that would normally require manual approval; when false, approval-required capabilities go back to waiting for an explicit approve/reject call.
butterbase_suggestion_submitSubmit product feedback or a feature suggestion to the Butterbase team, categorized by type and severity.WriteSubmit Suggestion
Submit product feedback or a feature suggestion to the Butterbase team, categorized by type and severity. Returns a confirmation that the suggestion was received (Butterbase's docs do not publish the exact response shape for this endpoint). Use butterbase_suggestion_submit to report a bug, request a feature, or propose an improvement directly to Butterbase.
Inputs
categorystringrequired- The type of feedback being submitted. CONFIRMED live enum: bug_report, feature_request, improvement, or documentation.one of
bug_reportfeature_requestimprovementdocumentation descriptionstringrequired- A clear description of the feedback, bug, or suggestion being submitted.
affected_toolstring- Optional name of the specific Butterbase feature or API this feedback concerns, e.g. Data API, Storage, or Dashboard.
proposed_solutionstring- Optional suggested fix or improvement for the issue described.
severitystring- Optional severity or urgency level for the feedback, e.g. low, medium, high, or critical. Leave blank if not applicable.
sourcestring- Optional origin of this feedback, e.g. dashboard, api, or support-ticket.
butterbase_table_row_createCreate a new row in a Butterbase app table by supplying a JSON object of column names and values that match the table's schema.WriteCreate Table Row
Create a new row in a Butterbase app table by supplying a JSON object of column names and values that match the table's schema. Returns the created row (Butterbase's docs show only a request body example for this endpoint, not the response shape). Use butterbase_table_row_create to insert a brand-new row; use butterbase_table_row_update to change columns on a row that already exists.
Inputs
app_idstringrequired- The Butterbase application ID that owns the table, as returned when the app was created or from butterbase_apps_list. Example: app_abc123.
rowobjectrequired- A JSON object of column name/value pairs for the new row, matching the columns defined in the table's schema. Example: {"title": "Hello World", "body": "My first post", "published": true}.
tablestringrequired- The name of the table to insert the new row into, exactly as defined in the app's schema (see butterbase_schema_get). Example: posts.
butterbase_table_row_updateUpdate one or more columns of an existing row in a Butterbase app table by its primary key, sending only the columns that should change.WriteUpdate Table Row
Update one or more columns of an existing row in a Butterbase app table by its primary key, sending only the columns that should change. Returns the updated row (Butterbase's docs do not publish the exact response shape for this endpoint). Use butterbase_table_row_update for a partial change to a row that already exists; use butterbase_table_row_create to insert a new one.
- Idempotent
Inputs
app_idstringrequired- The Butterbase application ID that owns the table, as returned when the app was created or from butterbase_apps_list. Example: app_abc123.
idstringrequired- The primary key value of the row to update, matching whatever type the table's primary key column uses (e.g. an integer id or a UUID). Example: 42.
rowobjectrequired- A JSON object of the column name/value pairs to change on the row. Only the columns you include are updated; any column left out keeps its current value. Example: {"published": false}.
tablestringrequired- The name of the table containing the row to update, exactly as defined in the app's schema (see butterbase_schema_get). Example: posts.
butterbase_template_cloneClone a public Butterbase template into a new app, optionally naming it and choosing a region.WriteClone Template
Clone a public Butterbase template into a new app, optionally naming it and choosing a region. Returns a clone job id and a pending status; the new app is not ready until the job completes. Use butterbase_template_clone to start a clone from a discovered template. Use butterbase_clone_job_get to check its progress, and butterbase_clone_job_retry if the job fails.
Inputs
source_app_idstringrequired- The app id of the public template to clone. This is the template app's own app_id, discoverable via Butterbase's template listing endpoints.
namestring- Name for the new app created from the template. If omitted, Butterbase assigns a default name based on the template.
regionstring- Region to create the cloned app in, using one of Butterbase's supported region codes (see butterbase_regions_list). If omitted, Butterbase picks a default region.
butterbase_video_generation_createSubmit an asynchronous AI video-generation job for a Butterbase app.WriteCreate Video Generation Job
Submit an asynchronous AI video-generation job for a Butterbase app. Returns a job object with a job_id, a pending status, and a polling_url. Use butterbase_video_generation_create to start generating a video from a text prompt, then poll butterbase_video_generation_get with the returned job_id until the job completes.
Inputs
app_idstringrequired- The id of the Butterbase app to submit the video-generation job under.
modelstringrequired- Model id to use for video generation, in provider/model form, e.g. google/veo-3.
promptstringrequired- Text prompt describing the video to generate.
aspect_ratiostring- Aspect ratio of the generated video, e.g. 16:9 or 9:16. Supported values depend on the chosen model.
durationnumber- Length of the generated video in seconds. Supported values depend on the chosen model.
generate_audioboolean- Whether the model should also generate an audio track for the video.
input_imagesarray- Array of image URLs to use as reference or starting frames for the video, if the chosen model supports image-to-video.
resolutionstring- Output resolution of the generated video, e.g. 720p or 1080p. Supported values depend on the chosen model.
seedinteger- Random seed for reproducible generation. Same seed and inputs should produce similar output.
butterbase_agent_deleteSoft-delete a Butterbase agent by name, removing it from the app.DestructiveDelete Agent
Soft-delete a Butterbase agent by name, removing it from the app. Returns no response body on success. Use butterbase_agent_delete once an agent is no longer needed. Use butterbase_agent_update to pause it instead if you might want it back.
- Idempotent
Inputs
app_idstringrequired- The Butterbase app's unique ID the agent belongs to.
namestringrequired- The unique name of the agent to delete.
butterbase_app_deletePermanently delete a Butterbase application, along with its database, auth users, storage files, and every other app-scoped resource.DestructiveDelete App
Permanently delete a Butterbase application, along with its database, auth users, storage files, and every other app-scoped resource. Returns a confirmation of the deletion (Butterbase's docs do not publish the exact response shape for this endpoint). Use butterbase_app_delete only when you intend to remove the entire app; this action is irreversible and cannot be undone.
- Idempotent
Inputs
app_idstringrequired- The Butterbase application ID to permanently delete, as returned when the app was created or from butterbase_apps_list. Example: app_abc123.
butterbase_auth_oauth_config_deleteRemove a social-login (OAuth) provider configuration from a Butterbase app.DestructiveDelete OAuth Provider Config
Remove a social-login (OAuth) provider configuration from a Butterbase app. End-users will no longer be able to sign in through that provider. Returns a success confirmation once the configuration is removed. Use butterbase_auth_oauth_config_delete to fully remove a provider. Use butterbase_auth_oauth_config_update instead if you just need to change its credentials.
- Idempotent
Inputs
app_idstringrequired- The unique ID of the Butterbase app the provider is configured on.
providerstringrequired- The OAuth provider identifier to remove, e.g. one of google, github, discord, facebook, linkedin, microsoft, apple, x, or a custom provider identifier.
butterbase_billing_cancelCancel the current end user's subscription for a Butterbase app, ending it at the end of the current billing period.DestructiveCancel Subscription
Cancel the current end user's subscription for a Butterbase app, ending it at the end of the current billing period. Returns a cancellation confirmation for the subscription. Use butterbase_billing_cancel to stop a subscription's automatic renewal. Use butterbase_billing_subscription_get first to confirm which subscription is active, or butterbase_billing_subscribe to start a new one afterward.
Inputs
app_idstringrequired- The unique ID of the Butterbase app whose current end user's subscription you want to cancel.
butterbase_custom_domain_deleteRemove a custom domain registration from a Butterbase app.DestructiveDelete Custom Domain
Remove a custom domain registration from a Butterbase app. This detaches the domain from the app's deployment and cannot be undone. Returns a confirmation; Butterbase's docs do not show an explicit response body for this endpoint, so it may return an empty response. Use butterbase_custom_domain_delete to permanently remove a domain you no longer want to serve traffic on; find its ID first from the app's list of registered custom domains.
- Idempotent
Inputs
app_idstringrequired- The unique identifier of the Butterbase app the custom domain is registered to.
idstringrequired- The unique identifier of the custom domain to remove.
butterbase_frontend_deployment_cancelCancel an in-progress frontend deployment.DestructiveCancel Frontend Deployment
Cancel an in-progress frontend deployment. Returns the deployment's updated status, expected to move to CANCELED; exact response fields are not published in Butterbase's docs. Use butterbase_frontend_deployment_cancel to abort a deployment that's stuck or was started by mistake while it's still WAITING, UPLOADING, or BUILDING. Use butterbase_frontend_deployment_delete afterward if you also want to remove the deployment record entirely.
Inputs
app_idstringrequired- The Butterbase app that owns the frontend deployment, exactly as shown in the Butterbase dashboard or returned when the app was created.
idstringrequired- The unique identifier of the in-progress frontend deployment to cancel.
butterbase_frontend_deployment_deleteRemove a frontend deployment record.DestructiveDelete Frontend Deployment
Remove a frontend deployment record. Butterbase's docs don't publish a response body for this endpoint; expect an empty success response. Use butterbase_frontend_deployment_delete to clean up a deployment record you no longer need, such as a failed or canceled one. Use butterbase_frontend_deployment_cancel first if the deployment is still actively building.
- Idempotent
Inputs
app_idstringrequired- The Butterbase app that owns the frontend deployment, exactly as shown in the Butterbase dashboard or returned when the app was created.
idstringrequired- The unique identifier of the frontend deployment record to delete.
butterbase_function_deletePermanently delete a deployed serverless function, including its code, triggers, and stored environment variables.DestructiveDelete Function
Permanently delete a deployed serverless function, including its code, triggers, and stored environment variables. Returns a confirmation once removed (Butterbase's docs don't publish the exact response shape). Use butterbase_function_delete to remove a function that is no longer needed. Use butterbase_functions_list or butterbase_function_get first to confirm the exact function name before deleting.
- Idempotent
Inputs
app_idstringrequired- The Butterbase application ID the function belongs to.
namestringrequired- The exact name of the deployed function to permanently delete.
butterbase_integration_configure_deleteDisable a previously enabled third-party integration toolkit for a Butterbase app, removing its configuration.DestructiveDisable Integration
Disable a previously enabled third-party integration toolkit for a Butterbase app, removing its configuration. Returns a confirmation; exact response fields are not published in Butterbase's docs. Use butterbase_integration_configure_delete to turn off a toolkit that was enabled via butterbase_integration_configure. Any tool execution against this toolkit will fail until it is re-enabled.
- Idempotent
Inputs
app_idstringrequired- The Butterbase app ID the toolkit is configured under, as shown in the app's dashboard URL or returned by the app-creation API.
toolkitstringrequired- The slug of the integration toolkit to disable, matching how it was enabled via butterbase_integration_configure.
butterbase_integration_connection_deleteDisconnect one of an end user's connected third-party integration accounts from a Butterbase app.DestructiveDisconnect Integration
Disconnect one of an end user's connected third-party integration accounts from a Butterbase app. Returns a confirmation of the disconnection (exact response fields are not published in Butterbase's docs). Use butterbase_integration_connections_list first to find the connection id, then call butterbase_integration_connection_delete to revoke it.
- Idempotent
Inputs
app_idstringrequired- The Butterbase app ID that owns the connection.
connection_idstringrequired- The ID of the connected integration account to disconnect, as returned by butterbase_integration_connections_list.
user_idstring- The end user who owns the connection. Butterbase's docs do not explicitly document a user-scoping parameter for this endpoint, but sibling endpoints in the Integrations API (connect, execute) require a userId field when authenticating with an API key rather than a JWT. Since this connector always authenticates with a platform API key, pass the end user's ID here if your app has more than one end user.
butterbase_kv_deleteDelete a single key from a Butterbase app's key-value store.DestructiveDelete KV Key
Delete a single key from a Butterbase app's key-value store. Returns a deleted count (0, 1, or 2) indicating whether the key existed and was removed. Use butterbase_kv_delete to remove one key by name. Use butterbase_kv_batch to delete (or get/set) many keys in a single request.
- Idempotent
Inputs
app_idstringrequired- The Butterbase application ID that owns this key-value store.
keystringrequired- The key-value store key to delete.
butterbase_kv_expose_rule_deleteRemove a key-value expose rule so its key pattern is no longer reachable by end-user JWTs.DestructiveDelete KV Expose Rule
Remove a key-value expose rule so its key pattern is no longer reachable by end-user JWTs. Returns whether a matching rule was actually found and deleted. Use butterbase_kv_expose_rule_delete to revoke end-user access to a specific key pattern. Use butterbase_kv_expose_rules_list first to find the exact pattern, and butterbase_kv_expose_rule_set to change a rule's roles instead of removing it.
- Idempotent
Inputs
app_idstringrequired- The Butterbase application ID the expose rule belongs to.
patternstringrequired- The exact glob-style key pattern of the expose rule to remove, e.g. session/{user.id}/*. This must match the pattern as it was created; it is sent as a URL path segment and is percent-encoded automatically.
butterbase_kv_flushDelete every key in an app's key-value store in a single irreversible operation, optionally also wiping its configured expose rules.DestructiveFlush KV Store
Delete every key in an app's key-value store in a single irreversible operation, optionally also wiping its configured expose rules. Returns the number of keys that were deleted. Use butterbase_kv_flush only to wipe an app's entire KV store at once, such as before decommissioning an app or resetting a development environment -- not to remove a single key or a single expose rule. Requires the confirm field to be set to true, and only works with a Butterbase function key or platform-level API key -- end-user tokens cannot call this endpoint.
Inputs
app_idstringrequired- The Butterbase application ID that owns the key-value store to flush.
confirmbooleanrequired- Explicit confirmation that you intend to permanently delete every key in this app's KV store. Must be set to true or the request is rejected -- there is no other safeguard against accidental data loss.
include_configboolean- Whether to also delete the app's configured KV expose rules (the glob patterns that grant end-user JWTs access to specific keys) as part of the flush. Defaults to false, which flushes only key/value data and leaves expose rules intact.default
false
butterbase_mcp_server_deleteRemove a registered MCP server so it's no longer available as a tool source for the app's agents.DestructiveDelete MCP Server
Remove a registered MCP server so it's no longer available as a tool source for the app's agents. Returns no content on success. Use butterbase_mcp_server_delete to permanently unregister an MCP server found via butterbase_mcp_servers_list.
- Idempotent
Inputs
app_idstringrequired- The id of the Butterbase app the MCP server is registered under.
idstringrequired- The id of the MCP server registration to remove, as returned by butterbase_mcp_server_register or butterbase_mcp_servers_list.
butterbase_meeting_bot_stopForce a meeting bot to immediately leave its call.DestructiveStop Meeting Bot
Force a meeting bot to immediately leave its call. Returns no content; the bot's status transitions to ended shortly after the call is made. Use butterbase_meeting_bot_stop to end a recording early. Calling it again on an already-stopped bot is safe and has no further effect.
- Idempotent
Inputs
app_idstringrequired- The unique identifier of the Butterbase app the meeting bot was dispatched under.
bot_idstringrequired- The unique identifier of the meeting bot to stop, as returned by butterbase_meeting_bot_create or butterbase_meeting_bots_list.
butterbase_rag_collection_deletePermanently delete a RAG collection along with all of its documents, text chunks, and embeddings.DestructiveDelete RAG Collection
Permanently delete a RAG collection along with all of its documents, text chunks, and embeddings. Returns no content on success. Use butterbase_rag_collection_delete only when you want to remove an entire collection — this cannot be undone. Use butterbase_rag_document_delete to remove a single document instead of the whole collection.
- Idempotent
Inputs
app_idstringrequired- The Butterbase app ID that owns this collection. Found in the app's dashboard URL or via Butterbase's apps listing.
namestringrequired- The name of the RAG collection to permanently delete, exactly as it was created.
butterbase_rag_document_deleteDelete a single document and all of its vector chunks from a RAG collection.DestructiveDelete RAG Document
Delete a single document and all of its vector chunks from a RAG collection. Returns no content on success. Use butterbase_rag_document_delete to remove one document while keeping the rest of the collection intact. Use butterbase_rag_collection_delete to remove an entire collection instead of a single document.
- Idempotent
Inputs
app_idstringrequired- The Butterbase app ID that owns this collection. Found in the app's dashboard URL or via Butterbase's apps listing.
document_idstringrequired- The id of the document to permanently delete, as returned by butterbase_rag_document_ingest or butterbase_rag_documents_list.
namestringrequired- The name of the RAG collection that contains this document, exactly as it was created.
butterbase_repo_deletePermanently wipe an app's entire repo (its versioned file-manifest/snapshot history) in Butterbase.DestructiveDelete App Repo
Permanently wipe an app's entire repo (its versioned file-manifest/snapshot history) in Butterbase. Returns a confirmation response (Butterbase's docs do not publish the exact response fields for this endpoint). Use butterbase_repo_delete only to erase all snapshot/version history for the app; the app itself and its database, auth, and storage data are unaffected, and the action cannot be undone.
- Idempotent
Inputs
app_idstringrequired- The Butterbase application ID whose entire repo (versioned snapshot history) will be permanently wiped. Example: app_abc123.
butterbase_storage_object_deleteDelete a file from a Butterbase app's storage.DestructiveDelete Storage Object
Delete a file from a Butterbase app's storage. This permanently removes the file and cannot be undone. Returns a confirmation; Butterbase's docs do not show an explicit response body for this endpoint, so it may return an empty response. Use this to permanently remove a specific file once you have its object ID; use butterbase_storage_objects_list first to find the object ID of the file to delete.
- Idempotent
Inputs
app_idstringrequired- The unique identifier of the Butterbase app that owns the file.
object_idstringrequired- The unique identifier of the stored file to permanently delete. Get this from butterbase_storage_objects_list.
butterbase_substrate_attention_rule_deletePermanently delete a Substrate attention rule.DestructiveDelete Attention Rule
Permanently delete a Substrate attention rule. This cannot be undone and stops the rule from ever firing again. Returns a confirmation; Butterbase's docs do not show an explicit response body for this endpoint, so it may return an empty response. Use butterbase_substrate_attention_rule_disable instead if you just want to pause a rule without losing its definition. Requires a Butterbase Substrate-scoped API key (bb_sub_...) — a standard platform API key is rejected with a 403 on all Substrate endpoints.
- Idempotent
Inputs
rule_idstringrequired- The unique id of the attention rule to permanently delete, as returned by butterbase_substrate_attention_rule_create or a prior list call.
butterbase_substrate_outbox_target_deleteRemove the outbound webhook target registered for a Substrate capability.DestructiveDelete Outbox Target
Remove the outbound webhook target registered for a Substrate capability. Butterbase stops sending webhook notifications for that capability's actions once removed. Returns a confirmation; Butterbase's docs do not show an explicit response body for this endpoint, so it may return an empty response. Use butterbase_substrate_outbox_target_delete to stop notifications for a capability. Call butterbase_substrate_outbox_target_set again instead if you only need to point the target at a new URL or secret. Requires a Butterbase Substrate-scoped API key (bb_sub_...) — a standard platform API key is rejected with a 403 on all Substrate endpoints.
- Idempotent
Inputs
capabilitystringrequired- Which Substrate capability's webhook target to remove. Must be one of the capability names Substrate accepts on POST /v1/me/substrate/actions/propose.one of
record_decisionrecord_commitmentrecord_learningrecord_principlesupersede_decisionretire_principleupsert_entityupdate_entitypatch_entitymerge_entitiesdelete_entityupsert_source_artifactrevert_actionbulk_revert_actionssend_email_draft
butterbase_table_row_deleteDelete a single row from a Butterbase app table by its primary key.DestructiveDelete Table Row
Delete a single row from a Butterbase app table by its primary key. Returns a confirmation of the deletion (Butterbase's docs do not confirm whether the response body is empty or a JSON object). Use butterbase_table_row_delete to permanently remove one row; this action cannot be undone.
- Idempotent
Inputs
app_idstringrequired- The Butterbase application ID that owns the table, as returned when the app was created or from butterbase_apps_list. Example: app_abc123.
idstringrequired- The primary key value of the row to delete, matching whatever type the table's primary key column uses (e.g. an integer id or a UUID). Example: 42.
tablestringrequired- The name of the table containing the row to delete, exactly as defined in the app's schema (see butterbase_schema_get). Example: posts.
No tools match.