The Builder.io connector lets your AI agent act in each user's Builder.io account. Each user connects their own Builder.io access token once, and Scalekit sends it with every call, so your agent never handles credentials. It comes with 22 tools.
- Tools
- 22
- What they doRead · write · destructive
- 10 · 8 · 410 read8 write4 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 Builder.io connection
In AgentKit > Connections, create a Builder.io 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 = 'builderio'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Builder.io:', 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: 'builderio_assets_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 = "builderio"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Builder.io:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="builderio_assets_list",connection_name=connection_name,identifier=identifier,)print(result)Terminal window python quickstart.pyEach user opens the link once and enters their Builder.io credentials there. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_toolbuilderio_assets_listList media assets in the Builder space through the Admin API, with paging, sorting, and folder filtering.Read-onlyList Assets
List media assets in the Builder space through the Admin API, with paging, sorting, and folder filtering. Returns each asset's id, name, type, url, size, dimensions, and folders. Use this to find uploaded images and files. Use builderio_asset_delete to remove one.
Inputs
folder_idstring- ID of an asset folder to list. Assets from all folders are returned when omitted.
limitinteger- Maximum number of assets to return.
offsetinteger- Number of assets to skip, for paging.
queryobject- Filter as a MongoDB-style JSON object over asset fields. Example: {"type": "image/png"}.
sortobject- Sort order as a JSON object mapping a field to 1 for ascending or -1 for descending. Example: {"createdDate": -1}.
builderio_content_getRetrieve one published content entry from a Builder model by its entry ID through the Content API.Read-onlyGet Content Entry
Retrieve one published content entry from a Builder model by its entry ID through the Content API. Returns a results array holding the matching entry (id, name, data, metadata, lastUpdated), or an empty array when no published entry has that ID. Use this when you already have the entry ID. Use builderio_content_list to browse, or builderio_content_get_by_url to look up a page by URL path.
Inputs
api_keystringrequired- Public API Key of the Builder space to read from. The Content API requires it as the apiKey query parameter.
entry_idstringrequired- ID of the content entry to retrieve.
modelstringrequired- Model name (the model's API name, not its display name), for example page, section, or a custom data model such as blog-post.
enrichboolean- When true, resolves references and symbols inside the entry so linked content is included.
fieldsstring- Comma-separated list of fields to return, for example id,name,data. All fields are returned when omitted.
builderio_content_get_by_urlRetrieve the published content entry that Builder serves for a URL path, using the Content API targeting rules.Read-onlyGet Content Entry by URL
Retrieve the published content entry that Builder serves for a URL path, using the Content API targeting rules. Returns a results array holding the best matching entry (id, name, data, metadata, lastUpdated), or an empty array when nothing targets that path. Use this to resolve a page by its URL path. Use builderio_content_get when you have the entry ID.
Inputs
api_keystringrequired- Public API Key of the Builder space to read from. The Content API requires it as the apiKey query parameter.
modelstringrequired- Model name (the model's API name, not its display name), for example page, section, or a custom data model such as blog-post.
url_pathstringrequired- URL path to match against the targeting rules of published entries, starting with a slash, for example /pricing.
enrichboolean- When true, resolves references and symbols inside the entry so linked content is included.
fieldsstring- Comma-separated list of fields to return, for example id,name,data. All fields are returned when omitted.
builderio_content_listList published content entries of a Builder model through the Content API, with paging and field selection.Read-onlyList Content Entries
List published content entries of a Builder model through the Content API, with paging and field selection. Returns a results array of entries (id, name, data, metadata, lastUpdated), plus totalCount when requested. Only published entries are returned, and Builder targeting rules can narrow the results. Use this to browse a model. Use builderio_content_get for one entry by ID, or builderio_content_get_by_url for a page by URL path.
Inputs
api_keystringrequired- Public API Key of the Builder space to read from. The Content API requires it as the apiKey query parameter.
modelstringrequired- Model name (the model's API name, not its display name), for example page, section, or a custom data model such as blog-post.
enrichboolean- When true, resolves references and symbols inside each entry so linked content is included in the response.
exclude_expiredboolean- When true, entries whose scheduled end date has passed are left out.
fetch_total_countboolean- When true, the response includes a totalCount key with the number of matching entries.
fieldsstring- Comma-separated list of fields to return, for example id,name,data.title. All fields are returned when omitted.
limitinteger- Maximum number of entries to return per request. The server default is 30 and the maximum is 100.default
30 offsetinteger- Number of entries to skip, for paging through a large model.default
0 omitstring- Comma-separated list of fields to leave out of each entry, for example data.blocks. Applied after fields when both are given.
builderio_folder_getRetrieve one content folder of the Builder space by ID through the Admin API.Read-onlyGet Folder
Retrieve one content folder of the Builder space by ID through the Admin API. Returns the folder's id, name, description, archived flag, entry IDs, and parent folder. Use this when you have the folder ID. Use builderio_folders_list to browse.
Inputs
folder_idstringrequired- ID of the content folder.
builderio_folders_listList all content folders in the Builder space through the Admin API.Read-onlyList Folders
List all content folders in the Builder space through the Admin API. Returns each folder's id, name, description, archived flag, entry IDs, and parent folder. Use this to find folder IDs. Use builderio_folder_get for one folder.
Inputs
This tool takes no inputs.
builderio_model_getRetrieve one model of the Builder space by ID through the Admin API.Read-onlyGet Model
Retrieve one model of the Builder space by ID through the Admin API. Returns the model's id, name, kind, path prefix, visibility flags, and field definitions. Use this to inspect a model's schema. Use builderio_models_list when you do not know the ID.
Inputs
model_idstringrequired- ID of the model to retrieve.
builderio_models_listList every model in the Builder space through the Admin API.Read-onlyList Models
List every model in the Builder space through the Admin API. Returns each model's id, name, kind, path prefix, visibility flags, and field definitions. Use this to find model names for content tools. Use builderio_model_get for one model.
Inputs
This tool takes no inputs.
builderio_settings_getRetrieve the settings of the Builder space through the Admin API.Read-onlyGet Space Settings
Retrieve the settings of the Builder space through the Admin API. Returns the space settings as a JSON object, including its name and configuration. Use this to read space-level configuration. Use builderio_models_list to see its content types.
Inputs
This tool takes no inputs.
builderio_users_listList the users who have access to the Builder space through the Admin API.Read-onlyList Space Users
List the users who have access to the Builder space through the Admin API. Returns each user's id, name, email, role, and last active time. Use this to look up teammates, for example before assigning work. It does not change membership.
Inputs
This tool takes no inputs.
builderio_asset_folder_createCreate a folder for media assets in the Builder space through the Admin API.WriteCreate Asset Folder
Create a folder for media assets in the Builder space through the Admin API. Returns the created asset folder's id, name, and parent folder. Use this to organize uploaded files. Use builderio_folder_create instead for content entry folders.
Inputs
namestringrequired- Name of the asset folder.
parent_folderstring- ID of the parent asset folder, to nest the new folder.
builderio_entry_createCreate a new content entry in a Builder model through the Write API.WriteCreate Content Entry
Create a new content entry in a Builder model through the Write API. Returns the created entry with its id, name, and data. Use this to add a new entry. Use builderio_entry_update to change an existing one. Every call creates a new entry.
Inputs
dataobjectrequired- Entry data as a JSON object of field names to values. Include a blocks array only for Page or Section models, and omit it for Data models.
modelstringrequired- Model name (the model's API name, not its display name), for example page, section, or a custom data model such as blog-post.
namestring- Display name of the entry as shown in the Builder content list.
publishedstring- Publish status of the new entry: draft, published, or archived.one of
draftpublishedarchived queryarray- Targeting rules for the entry as a list of objects, each with property, operator, and value. Example: [{"property": "urlPath", "operator": "is", "value": "/pricing"}].
trigger_webhooksboolean- Set to false to stop Builder from firing webhooks for this write. When omitted, webhooks fire as usual.
builderio_entry_replaceCreate or fully replace a content entry at a given ID in a Builder model through the Write API.WriteReplace Content Entry
Create or fully replace a content entry at a given ID in a Builder model through the Write API. Returns the stored entry id and data. Use this only with the complete entry data, because fields you leave out are deleted. Use builderio_entry_update for partial changes.
- Idempotent
Inputs
dataobjectrequired- Entry data as a JSON object of field names to values. Send the complete entry, since any field you omit is removed.
entry_idstringrequired- ID of the content entry to replace.
modelstringrequired- Model name (the model's API name, not its display name), for example page, section, or a custom data model such as blog-post.
trigger_webhooksboolean- Set to false to stop Builder from firing webhooks for this write. When omitted, webhooks fire as usual.
builderio_entry_updatePartially update a content entry in a Builder model through the Write API, changing only the data fields you send.WriteUpdate Content Entry
Partially update a content entry in a Builder model through the Write API, changing only the data fields you send. Returns the updated entry with its name, id, and data. Use this to change some fields. Use builderio_entry_replace to overwrite the whole entry, where omitted fields are deleted.
- Idempotent
Inputs
dataobjectrequired- Entry data as a JSON object of field names to values. Only the fields you include are changed.
entry_idstringrequired- ID of the content entry to update.
modelstringrequired- Model name (the model's API name, not its display name), for example page, section, or a custom data model such as blog-post.
trigger_webhooksboolean- Set to false to stop Builder from firing webhooks for this write. When omitted, webhooks fire as usual.
builderio_folder_createCreate a content folder in the Builder space through the Admin API.WriteCreate Folder
Create a content folder in the Builder space through the Admin API. Returns the created folder with its id, name, description, entry IDs, and parent folder. Use this to organize entries. Use builderio_folder_update to change an existing folder.
Inputs
namestringrequired- Name of the folder.
descriptionstring- Free-text description of the folder.
entriesarray- IDs of the content entries that belong to the folder.
parent_folderstring- ID of the parent folder, to nest this folder inside another one.
builderio_folder_updateUpdate a content folder in the Builder space through the Admin API, changing only the fields you send.WriteUpdate Folder
Update a content folder in the Builder space through the Admin API, changing only the fields you send. Returns the updated folder with its id, name, description, archived flag, entry IDs, and parent folder. Use this to rename, move, archive, or change the entries of a folder. Use builderio_folder_create to add a new folder.
- Idempotent
Inputs
folder_idstringrequired- ID of the content folder.
archivedboolean- Set to true to archive the folder, or false to restore it.
descriptionstring- Free-text description of the folder.
entriesarray- IDs of the content entries that belong to the folder.
namestring- Name of the folder.
parent_folderstring- ID of the parent folder, to nest this folder inside another one.
builderio_model_createCreate a new model in the Builder space through the Admin API.WriteCreate Model
Create a new model in the Builder space through the Admin API. Returns the created model with its id, name, kind, and field definitions. Use this to define a new content type. Use builderio_model_update to change an existing model.
Inputs
model_definitionobjectrequired- Model definition as a JSON object. It needs a name and a kind (data, page, component, or section) and usually a fields array describing each field's name and type. Example: {"name": "blog-post", "kind": "data", "fields": [{"name": "title", "type": "text", "required": true}]}.
builderio_model_updateUpdate an existing model in the Builder space through the Admin API.WriteUpdate Model
Update an existing model in the Builder space through the Admin API. Returns the updated model with its id, name, kind, and field definitions. Use this to change a model's settings or fields. Use builderio_model_create to add a new model.
- Idempotent
Inputs
model_changesobjectrequired- Model properties to change, as a JSON object. Example: {"helperText": "Blog posts for the marketing site", "fields": [{"name": "title", "type": "text"}]}.
model_idstringrequired- ID of the model to update.
builderio_asset_deleteDelete a media asset from the Builder space through the Admin API.DestructiveDelete Asset
Delete a media asset from the Builder space through the Admin API. Returns true when the asset is removed. Use this only when the file is no longer referenced by any content. Use builderio_assets_list to find the asset ID.
- Idempotent
Inputs
asset_idstringrequired- ID of the asset to delete.
builderio_entry_deletePermanently delete a content entry from a Builder model through the Write API.DestructiveDelete Content Entry
Permanently delete a content entry from a Builder model through the Write API. Returns a message of Success when the entry is removed. Use this only when the entry should be gone for good. Set the publish status to archived with update or create tools to retire an entry without deleting it.
- Idempotent
Inputs
entry_idstringrequired- ID of the content entry to delete.
modelstringrequired- Model name (the model's API name, not its display name), for example page, section, or a custom data model such as blog-post.
trigger_webhooksboolean- Set to false to stop Builder from firing webhooks for this write. When omitted, webhooks fire as usual.
builderio_folder_deleteDelete a content folder from the Builder space through the Admin API.DestructiveDelete Folder
Delete a content folder from the Builder space through the Admin API. Returns true when the folder is removed. Use this only when the folder is no longer needed. Use builderio_folder_update with archived set to true to retire it instead.
- Idempotent
Inputs
folder_idstringrequired- ID of the content folder.
builderio_model_deleteDelete a model from the Builder space through the Admin API.DestructiveDelete Model
Delete a model from the Builder space through the Admin API. Returns the deleted model's id, name, and kind. Use this only when the whole content type should be removed, because its entries are affected too.
- Idempotent
Inputs
model_idstringrequired- ID of the model to delete.
No tools match.