App Builder API
Create and manage app builder projects, pages, and components.
Endpoints
/api/v1/appBuilder/listProjectsList all app builder projects. Returns array with id, name, description, linkedBaseId, page count, component count.
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/listProjects \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{}'/api/v1/appBuilder/getProjectGet a project with its pages, components, linkedBase, and triggers
Parameters
id | stringrequired | Project ID from listProjects |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/getProject \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"id": "example"
}'/api/v1/appBuilder/createProjectCreate a new app builder project
Parameters
name | stringrequired | Project name |
description | string | Optional project description |
color | string | Hex color code (default: #3B82F6) |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/createProject \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"name": "example",
"description": "example",
"color": "example"
}'/api/v1/appBuilder/updateProjectUpdate project settings including branding and dependencies
Parameters
id | stringrequired | Project ID from listProjects |
name | string | New project name |
description | string | New description |
color | string | New hex color code |
logo | string | URL to logo image (recommended: 200x50px PNG or SVG) |
favicon | string | URL to favicon image (recommended: 32x32px PNG or ICO) |
dependencies | object | NPM packages to bundle. Example: {"framer-motion": "^10.0.0", "chart.js": "^4.4.0"}. Packages are installed via Bun and bundled by Vite for production. Tailwind CSS is included by default. |
aiKnowledge | string | AI project knowledge - persistent instructions for AI including project goals, coding style, and constraints |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/updateProject \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"id": "example",
"name": "example",
"description": "example"
}'/api/v1/appBuilder/updateProjectAuthUpdate project authentication settings
Parameters
id | stringrequired | Project ID |
authEnabled | boolean | Enable authentication for this app |
authAllowSignup | boolean | Allow new users to sign up |
authRequireEmail | boolean | Require email verification |
authAllowSocial | boolean | Allow social login (Google, GitHub) |
authCustomFields | array | Custom signup form fields - added after email/password/name |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/updateProjectAuth \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"id": "example",
"authEnabled": true,
"authAllowSignup": true
}'/api/v1/appBuilder/listEnvVarsList environment variables for a project
Parameters
projectId | stringrequired | Project ID |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/listEnvVars \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"projectId": "example"
}'/api/v1/appBuilder/createEnvVarCreate a new environment variable
Parameters
projectId | stringrequired | Project ID |
name | stringrequired | Variable name (e.g., OPENAI_API_KEY) |
value | stringrequired | Variable value |
description | string | Optional description |
isSecret | boolean | If true, value is masked in UI |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/createEnvVar \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"projectId": "example",
"name": "example",
"value": "example"
}'/api/v1/appBuilder/updateEnvVarUpdate an environment variable
Parameters
id | stringrequired | Environment variable ID |
value | string | New value (only if changing) |
description | string | New description |
isSecret | boolean | Update secret flag |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/updateEnvVar \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"id": "example",
"value": "example",
"description": "example"
}'/api/v1/appBuilder/deleteEnvVarDelete an environment variable
Parameters
id | stringrequired | Environment variable ID to delete |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/deleteEnvVar \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"id": "example"
}'/api/v1/appBuilder/updateCustomDomainUpdate custom domain settings
Parameters
id | stringrequired | Project ID |
customDomain | string | Custom domain (e.g., myapp.com) |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/updateCustomDomain \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"id": "example",
"customDomain": "example"
}'/api/v1/appBuilder/getAppUsersGet users who signed up to this published app
Parameters
projectId | stringrequired | Project ID |
limit | number | |
offset | number |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/getAppUsers \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"projectId": "example",
"limit": 0,
"offset": 0
}'/api/v1/appBuilder/deleteAppUserDelete a user from this published app
Parameters
projectId | stringrequired | Project ID |
userId | stringrequired | App user ID to delete |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/deleteAppUser \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"projectId": "example",
"userId": "example"
}'/api/v1/appBuilder/createAppUserManually create a user for this published app
Parameters
projectId | stringrequired | Project ID |
email | stringrequired | User email |
name | string | User name |
password | stringrequired | User password (min 8 chars) |
role | string | User role |
sendWelcomeEmail | boolean | Send welcome email with credentials |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/createAppUser \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"projectId": "example",
"email": "example",
"name": "example"
}'/api/v1/appBuilder/resetAppUserPasswordReset password for an app user
Parameters
projectId | stringrequired | Project ID |
userId | stringrequired | App user ID |
newPassword | stringrequired | New password (min 8 chars) |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/resetAppUserPassword \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"projectId": "example",
"userId": "example",
"newPassword": "example"
}'/api/v1/appBuilder/updateAppUserRoleUpdate role for an app user
Parameters
projectId | stringrequired | Project ID |
userId | stringrequired | App user ID |
role | stringrequired | New role |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/updateAppUserRole \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"projectId": "example",
"userId": "example",
"role": "example"
}'/api/v1/appBuilder/deleteProjectDelete a project, its linked Base, and all pages/components
Parameters
id | stringrequired | Project ID to delete |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/deleteProject \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"id": "example"
}'/api/v1/appBuilder/createPageCreate a new page in a project
Parameters
projectId | stringrequired | Project ID from listProjects |
name | stringrequired | Page name (e.g., "About", "Contact") |
path | stringrequired | URL path (e.g., "/about", "/contact") |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/createPage \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"projectId": "example",
"name": "example",
"path": "example"
}'/api/v1/appBuilder/createComponentCreate a new component in a project
Parameters
projectId | stringrequired | Project ID from listProjects |
name | stringrequired | Component name |
description | string | Optional component description |
type | string | Component type: "custom", "layout", "ui", or "data" |
isGlobal | boolean | Whether component is globally accessible |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/createComponent \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"projectId": "example",
"name": "example",
"description": "example"
}'/api/v1/appBuilder/listPagesList all pages in a project
Parameters
projectId | stringrequired | Project ID from listProjects |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/listPages \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"projectId": "example"
}'/api/v1/appBuilder/getPageGet page details including content
Parameters
id | stringrequired | Page ID from listPages |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/getPage \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"id": "example"
}'/api/v1/appBuilder/readPageRead page content with line numbers. Use offset/limit to read specific sections of large files.
Parameters
id | stringrequired | Page ID from listPages |
offset | number | Line number to start from (1-indexed). If not specified, starts from line 1. |
limit | number | Number of lines to read. If not specified, reads entire file. |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/readPage \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"id": "example",
"offset": 0,
"limit": 0
}'/api/v1/appBuilder/readComponentRead component content with line numbers. Use offset/limit for large files.
Parameters
id | stringrequired | Component ID from listComponents |
offset | number | Line number to start from (1-indexed) |
limit | number | Number of lines to read |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/readComponent \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"id": "example",
"offset": 0,
"limit": 0
}'/api/v1/appBuilder/updatePageUpdate page properties and content
Parameters
id | stringrequired | Page ID from listPages |
name | string | New page name |
path | string | New URL path |
content | string | Page content (React component code or JSON) |
layout | string | Layout template name |
isHomePage | boolean | Set as home page |
sortOrder | number | Sort order for navigation |
title | string | Page title for SEO |
description | string | Page description for SEO |
isProtected | boolean | Require authentication to access |
requiredRole | string | Required role to access (null = any authenticated user) |
redirectIfUnauth | string | Redirect path for unauthenticated users |
commitMessage | string | Custom git commit message. If not provided, auto-generated based on action |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/updatePage \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"id": "example",
"name": "example",
"path": "example"
}'/api/v1/appBuilder/editPageEdit page content by replacing specific text. The oldString must match exactly (including whitespace/indentation). If not unique, either provide more surrounding context or use replaceAll=true.
Parameters
id | stringrequired | Page ID from listPages |
oldString | stringrequired | The exact text to find and replace. Must be unique in the file unless using replaceAll. |
newString | stringrequired | The replacement text (must be different from oldString) |
replaceAll | boolean | Replace all occurrences. If false (default), oldString must be unique in the file. |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/editPage \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"id": "example",
"oldString": "example",
"newString": "example"
}'/api/v1/appBuilder/searchPageSearch page content for specific text/patterns. Returns matching lines with context. More efficient than getPage for finding specific code.
Parameters
id | stringrequired | Page ID from listPages |
pattern | stringrequired | Text or regex pattern to search for |
contextLines | number | Number of lines to show before and after each match (default: 3) |
maxMatches | number | Maximum number of matches to return (default: 5) |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/searchPage \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"id": "example",
"pattern": "example",
"contextLines": 0
}'/api/v1/appBuilder/deletePageDelete a page from the project
Parameters
id | stringrequired | Page ID to delete |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/deletePage \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"id": "example"
}'/api/v1/appBuilder/listComponentsList all components in a project
Parameters
projectId | stringrequired | Project ID from listProjects |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/listComponents \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"projectId": "example"
}'/api/v1/appBuilder/getComponentGet component details including content
Parameters
id | stringrequired | Component ID from listComponents |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/getComponent \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"id": "example"
}'/api/v1/appBuilder/updateComponentUpdate component properties and code
Parameters
id | stringrequired | Component ID from listComponents |
name | string | New component name |
description | string | Component description |
content | string | Component code (React/TSX) |
type | string | Component type |
isGlobal | boolean | Whether globally accessible |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/updateComponent \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"id": "example",
"name": "example",
"description": "example"
}'/api/v1/appBuilder/editComponentEdit component content by replacing specific text. The oldString must match exactly (including whitespace/indentation). If not unique, provide more context or use replaceAll=true.
Parameters
id | stringrequired | Component ID from listComponents |
oldString | stringrequired | The exact text to find and replace. Must be unique unless using replaceAll. |
newString | stringrequired | The replacement text (must be different from oldString) |
replaceAll | boolean | Replace all occurrences. If false (default), oldString must be unique. |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/editComponent \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"id": "example",
"oldString": "example",
"newString": "example"
}'/api/v1/appBuilder/searchComponentSearch component content for specific text/patterns. Returns matching lines with context.
Parameters
id | stringrequired | Component ID from listComponents |
pattern | stringrequired | Text or regex pattern to search for |
contextLines | number | Lines to show before/after match |
maxMatches | number | Maximum matches to return |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/searchComponent \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"id": "example",
"pattern": "example",
"contextLines": 0
}'/api/v1/appBuilder/deleteComponentDelete a component from the project
Parameters
id | stringrequired | Component ID to delete |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/deleteComponent \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"id": "example"
}'/api/v1/appBuilder/listTriggersList all triggers (event-flow mappings) in a project
Parameters
projectId | stringrequired | Project ID from listProjects |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/listTriggers \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"projectId": "example"
}'/api/v1/appBuilder/createTriggerCreate a trigger to execute a flow when an event occurs
Parameters
projectId | stringrequired | Project ID from listProjects |
event | stringrequired | Event type |
flowId | stringrequired | Flow ID to execute when event fires |
targetPageId | string | Page ID for page-specific events |
targetElementId | string | Element ID for element-specific events (button clicks, form submits) |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/createTrigger \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"projectId": "example",
"event": "example",
"flowId": "example"
}'/api/v1/appBuilder/updateTriggerUpdate trigger settings
Parameters
id | stringrequired | Trigger ID from listTriggers |
flowId | string | New Flow ID |
isActive | boolean | Enable/disable trigger |
orderIndex | number | Execution order |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/updateTrigger \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"id": "example",
"flowId": "example",
"isActive": true
}'/api/v1/appBuilder/deleteTriggerDelete a trigger
Parameters
id | stringrequired | Trigger ID to delete |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/deleteTrigger \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"id": "example"
}'/api/v1/appBuilder/publishPublish an app to production. Builds all pages and uploads to R2 for serving.
Parameters
id | stringrequired | Project ID to publish |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/publish \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"id": "example"
}'/api/v1/appBuilder/unpublishUnpublish an app (keeps files in R2 but marks as unpublished)
Parameters
id | stringrequired | Project ID to unpublish |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/unpublish \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"id": "example"
}'/api/v1/appBuilder/verifyCustomDomainVerify custom domain ownership via DNS TXT record lookup
Parameters
id | stringrequired | Project ID |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/verifyCustomDomain \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"id": "example"
}'/api/v1/appBuilder/getCodeGuideGet coding guide for writing App Builder pages. Call this BEFORE writing any page code to understand available globals and patterns.
Parameters
topic | string | Topic: "all", "sdk", "globals", "hooks", "navigation", "libraries", "styling", "components", "examples", "errors" |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/getCodeGuide \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"topic": "example"
}'/api/v1/appBuilder/getStripeConnectionGet Stripe connection status for a project
Parameters
projectId | stringrequired | Project ID |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/getStripeConnection \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"projectId": "example"
}'/api/v1/appBuilder/updateStripeConnectionSave Stripe API key and/or webhook secret for test or live mode
Parameters
projectId | stringrequired | Project ID |
mode | stringrequired | Which mode to update |
secretKey | string | Stripe Secret Key (sk_test_xxx or sk_live_xxx) |
webhookSecret | string | Stripe Webhook Secret (whsec_xxx) |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/updateStripeConnection \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"projectId": "example",
"mode": "example",
"secretKey": "example"
}'/api/v1/appBuilder/toggleStripeModeSwitch between test and live Stripe mode
Parameters
projectId | stringrequired | Project ID |
mode | stringrequired | Mode to switch to |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/toggleStripeMode \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"projectId": "example",
"mode": "example"
}'/api/v1/appBuilder/syncStripeProductsSync products and prices from Stripe account
Parameters
projectId | stringrequired | Project ID |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/syncStripeProducts \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"projectId": "example"
}'/api/v1/appBuilder/listStripeProductsList synced Stripe products
Parameters
projectId | stringrequired | Project ID |
mode | string | Filter by mode (default: current mode) |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/listStripeProducts \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"projectId": "example",
"mode": "example"
}'/api/v1/appBuilder/disconnectStripeRemove Stripe connection for test or live mode
Parameters
projectId | stringrequired | Project ID |
mode | stringrequired | Which mode to disconnect |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/disconnectStripe \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"projectId": "example",
"mode": "example"
}'/api/v1/appBuilder/createStripeProductCreate a new product with price in Stripe
Parameters
projectId | stringrequired | Project ID |
name | stringrequired | Product name |
description | string | Product description |
amount | integerrequired | Price amount in cents (e.g., 999 = $9.99) |
currency | string | Currency code (default: usd) |
interval | string | Billing interval for subscriptions |
intervalCount | integer | Number of intervals between billings |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/createStripeProduct \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"projectId": "example",
"name": "example",
"description": "example"
}'/api/v1/appBuilder/getGitConnectionGet Git connection status. Param "projectId". Returns: connected, repoOwner, repoName, branch, lastCommitSha, AI permission flags.
Parameters
projectId | stringrequired |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/getGitConnection \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"projectId": "example"
}'/api/v1/appBuilder/connectGitHubConnect a GitHub repository. Params: projectId (required), repoOwner (GitHub username or org), repoName (repo name), OR createNew (true) with newRepoName to create a new repo.
Parameters
projectId | stringrequired | |
repoOwner | string | |
repoName | string | |
createNew | boolean | |
newRepoName | string |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/connectGitHub \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"projectId": "example",
"repoOwner": "example",
"repoName": "example"
}'/api/v1/appBuilder/disconnectGitHubDisconnect GitHub from project. Param "projectId". Clears all Git settings and token.
Parameters
projectId | stringrequired |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/disconnectGitHub \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"projectId": "example"
}'/api/v1/appBuilder/updateGitPermissionsUpdate AI Git permissions. Params: projectId (required), plus any of: - allowAiCommit: boolean - Allow AI to commit changes - allowAiPull: boolean - Allow AI to pull from remote - allowAiPush: boolean - Allow AI to push to remote - allowAiCreateBranch: boolean - Allow AI to create branches/repos
Parameters
projectId | stringrequired | |
allowAiCommit | boolean | |
allowAiPull | boolean | |
allowAiPush | boolean | |
allowAiCreateBranch | boolean |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/updateGitPermissions \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"projectId": "example",
"allowAiCommit": true,
"allowAiPull": true
}'/api/v1/appBuilder/listGitHubReposList user GitHub repos for selection. Param "projectId". Returns array of {fullName, name, owner, private, defaultBranch}.
Parameters
projectId | stringrequired |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/listGitHubRepos \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"projectId": "example"
}'/api/v1/appBuilder/gitPullPull latest changes from GitHub remote
Parameters
projectId | stringrequired |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/gitPull \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"projectId": "example"
}'/api/v1/appBuilder/gitPushPush commits to GitHub remote
Parameters
projectId | stringrequired |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/gitPush \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"projectId": "example"
}'/api/v1/appBuilder/gitCommitCreate a new commit with current source files
Parameters
projectId | stringrequired | |
message | stringrequired | Commit message |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/gitCommit \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"projectId": "example",
"message": "example"
}'/api/v1/appBuilder/gitCreateBranchCreate a new branch from current HEAD
Parameters
projectId | stringrequired | |
name | stringrequired | New branch name |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/gitCreateBranch \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"projectId": "example",
"name": "example"
}'/api/v1/appBuilder/gitSwitchBranchSwitch to an existing branch
Parameters
projectId | stringrequired | |
name | stringrequired | Branch name to switch to |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/gitSwitchBranch \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"projectId": "example",
"name": "example"
}'/api/v1/appBuilder/gitMergeMerge one branch into another
Parameters
projectId | stringrequired | |
from | stringrequired | Source branch to merge from |
to | stringrequired | Target branch to merge into |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/gitMerge \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"projectId": "example",
"from": "example",
"to": "example"
}'/api/v1/appBuilder/gitListCommitsGet commit history
Parameters
projectId | stringrequired | |
limit | number | Maximum number of commits to return |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/gitListCommits \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"projectId": "example",
"limit": 0
}'/api/v1/appBuilder/gitRollbackRestore project to a previous commit
Parameters
projectId | stringrequired | |
sha | stringrequired | Commit SHA to rollback to |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/gitRollback \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"projectId": "example",
"sha": "example"
}'/api/v1/appBuilder/gitStatusGet current Git status
Parameters
projectId | stringrequired |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/gitStatus \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"projectId": "example"
}'/api/v1/appBuilder/gitCreateRepoCreate a new GitHub repository
Parameters
projectId | stringrequired | |
name | stringrequired | Repository name |
isPrivate | boolean | Whether the repo should be private |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/gitCreateRepo \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"projectId": "example",
"name": "example",
"isPrivate": true
}'/api/v1/appBuilder/gitListBranchesList all branches in the repository
Parameters
projectId | stringrequired |
Example Request
curl -X POST https://app.serenitiesai.com/api/v1/appBuilder/gitListBranches \
-H "Authorization: Bearer mk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"projectId": "example"
}'