- Brand
- Base44
- Category
- Developer Tools
- Primary Subcategory
- AI App & Website Builders
Integration details
Description
Build fully functional apps and websites with AI in minutes. No code, just your words. Base44 turns a single sentence into a real product. Describe what you want and watch it get built in minutes. Edit, design, and add features from chat, connect tools in one click, add smart agents, schedule tasks on autopilot, and track analytics If you can describe it, you can build it with Base44.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- AI App & Website Builders
- Secondary Subcategories
- None listed
- Brand
- Base44
- Access
- Account required
- First tracked
- 2026-07-12
- Tool count
- 29
- Market
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
Your Plugin is no longer discoverable
We previously found Base44 discoverable in ChatGPT, but ChatGPT is no longer surfacing it.Add your email below and we’ll let you know when your Plugin becomes discoverable again, and send you alerts about it.
No spam. Unsubscribe any time.
What discovery looks like

Competing in ChatGPT AI App & Website Builders
View Category29 tools agents can invoke
Change an existing Base44 app through Base44's AI builder: editPrompt is the change in the user's words, and the builder plans and implements it in the background, which takes a few minutes and uses the user's credits. The response includes editorUrl, where the user can follow the change; get_app_status reports when it is 'ready' or 'error'. This is one of two ways to change an app. The other is editing its code directly with read_file, edit_file, write_file and run_command: exact, immediate, no builder credits, and no call to this tool. The builder fits a change that still needs designing; the code tools fit a change you can make exactly, such as a specific edit or code already in this conversation. Only Base44 builder apps can be edited — Base44 agents are not buildable apps and are rejected.
edit_base44_app
The user's Base44 apps with a live preview, opened by the user from ChatGPT's sidebar or a conversation's side panel, not called by the model. Shows the most recently updated app first.
open_app_preview_panel
Execute an allowlisted Base44 platform API operation by endpoint. First use list_api_catalog to find the operation and describe_api for its parameters and request-body schema, then call it here. The endpoint (verb + path) uniquely identifies the operation; parameters and body are passed through to the real API route. Read base44_readme once per conversation before using this.
execute_api
Connect (or change the scopes of) a third-party OAuth connector (e.g. 'googlecalendar', 'slack') for a Base44 app. This SETS the connector to EXACTLY the scopes you pass — it REPLACES the current scopes (declarative/idempotent), it does not merge. IMPORTANT: ALWAYS call list_connectors FIRST to read the connector's current scopes, then pass the COMPLETE desired set (the existing scopes you want to keep PLUS any new ones) — any scope you omit is removed and the user is re-prompted to consent. If the requested scopes differ from what's authorized, returns a URL the USER must open in a browser to grant access (you cannot complete OAuth consent yourself) — tell them to open it, then call list_connectors to verify and read the granted scopes (the provider may grant fewer than requested). If the connection already has exactly these scopes, it reports already-connected and nothing changes. Discover valid integration_type values and any required connection_config via list_connectors first. Requires the 'apps:write' scope (part of the default scope set) — a session granted only 'apps:read'/'sandbox:write' must re-authenticate with 'apps:write' to use this tool.
initiate_connector_connection
Create a new Base44 app, in one of two ways. 1. Builder AI path — when the app has to be designed: the user describes what they want, maybe with references (screenshots, mockups, a spec). appPrompt is the user's own words, unedited (the builder expands them itself), with the references as attachments. Base44's AI plans and builds the app in the background, which takes a few minutes. The response includes editorUrl, where the user can follow the build; get_app_status reports when it is 'ready' or 'error'. 2. File path — when the app already exists as code or a site: an HTML file, an exported site, or code from this conversation. Port it yourself, so it stays exactly as given and no builder credits are spent: leave out appPrompt and pass a name. You get Base44's empty starter template at once (routing, sign-in, and the data client; no pages, no data, no build), and build it with the code tools (write_file, edit_file, read_file, run_command). There are two ways to bring an existing site into the blank app; choose the one that fits the request. Read the app's AGENTS.md first: it describes the app's template and where its files go. Drop: host the site as it is, as static files the app serves. In the TanStack template, put them in public/, where index.html serves / and other files keep their paths, and keep src/routes/index.jsx, since the editor shows the preview only while the app has a page route. In the Vite template, the site's index.html replaces the root index.html and its other files go in public/. Its HTML stays as it is, and its own scripts call Base44 directly with fetch: the SDK is a thin client over the app's REST API at /api/apps/{appId}/…, with JSON bodies, an X-App-Id header on every request, and Authorization: Bearer <token> for a signed-in user. After sign-in Base44 returns to the page with ?access_token=<token>; the page saves it to localStorage.base44_access_token, removes it from the URL, and reads it from there. For example, creating a record: ```js const token = localStorage.getItem("base44_access_token"); await fetch(`/api/apps/${appId}/entities/${entityName}`, { method: "POST", headers: { "X-App-Id": appId, "Content-Type": "application/json", ...(token && { Authorization: `Bearer ${token}` }), }, body: JSON.stringify(record), }); ``` Every other Base44 API (integrations, backend functions, the current user, sign-in) follows the same pattern under the same base path. File uploads send FormData instead of JSON, and realtime subscriptions need the SDK. Smart integration: rebuild the site within the template. Read the app's AGENTS.md, make the site's pages the app's pages, and back whatever it only fakes or hard-codes with real Base44 data and logic; keep its content and look. A dropped site can move to smart integration at any point, whenever the user's intent calls for it. Call create_checkpoint when you finish. If the code tools answer that the workspace plan does not include them, continue on the builder AI path with edit_base44_app.
create_base44_app
Define a new entity type with its field structure. This creates the schema only — to add data records, use create_entities. Always check existing schemas with list_entity_schemas first. ## Row-Level Security (RLS) Entity schemas can include RLS rules under the 'rls' field to restrict record access based on user identity. RLS rules are defined per operation: create, read, update, delete. Template variables: {{user.id}}, {{user.email}}, {{user.role}}, {{user.data.<field>}}. Rule types: 1. user_condition — exact equality check on user attributes (no MongoDB operators). E.g. {"user_condition": {"role": "admin"}} 2. Entity-user field comparison — MongoDB query syntax. Custom fields MUST use "data." prefix (e.g. "data.user_id": "{{user.id}}"). Built-in fields (id, created_by_id, created_date, updated_date) are at root level. Combine with $and/$or/$in/$nin. Rules must reference user template variables, never static values. Example: {"rls": {"read": {"created_by_id": "{{user.id}}"}, "update": {"$or": [{"created_by_id": "{{user.id}}"}, {"user_condition": {"role": "admin"}}]}}}
create_entity_schema
Add one or more data records to an existing entity (max 100 per call). This adds data only — it does not modify the app's code, UI, or schema. The built-in 'User' entity cannot be created through this tool. Use list_entity_schemas first to check required fields.
create_entities
Change a Base44 app directly, without the builder AI, by editing its code: one or more exact old_text→new_text edits to an existing file. Each old_text must be unique unless replace_all is set. All edits apply atomically (all-or-nothing) and a unified diff is returned. Use dry_run=true to preview the diff without writing. Changes auto-commit; only create_checkpoint makes them restorable from the builder's version history. If the app has no running sandbox, one is created transparently from the last commit (the first call on a cold app takes longer).
edit_file
Discover what the Base44 platform API can do — Google Ads campaigns, budgets and billing, product analytics, deployments, app checkpoints, published URLs, secrets, social content, and chat, among others. These operations have no dedicated tool of their own, so call this whenever a request touches a Base44 capability you have no specific tool for, before deciding how to handle it. Small areas arrive listed in full; a larger one arrives as an operationCount and a sample of its summaries, so call this again with its 'area' to get every operation in it with a one-line summary. Then pass the endpoints you want to describe_api for full parameters and schemas. An area list is complete unless 'truncated' is true. Read base44_readme once per conversation before using this.
list_api_catalog
Get the live preview URL for a Base44 app. Only returns a URL when the app build status is 'ready'. Returns null if the app is still building or has no sandbox.
get_app_preview_url
Check the build status of a Base44 app. Returns one of: 'ready', 'processing', or 'error'. Use this to poll after calling create_base44_app or edit_base44_app. Poll every 30 seconds until the status is 'ready' or 'error'. When 'ready' comes with waitingForUserInput set, the build is paused on a request (waitingToolCall) that the user must answer in the Base44 Editor before it continues.
get_app_status
Returns the full contract — path/query parameters, JSON request-body schema with field descriptions and examples, and the success-response schema — for up to 10 operations chosen from list_api_catalog. Pass endpoints exactly as the catalog returned them. Unknown ones come back in an 'unknown' list instead of failing the call, and any that did not fit the response budget come back in 'omitted' — re-request those in a smaller batch. Use the returned schemas to build a correct execute_api call, and responseSchema to know what you get back before calling. A null responseSchema means the shape isn't declared, not that it's empty.
describe_api
Import a design into Base44 from a publicly fetchable URL. The file is a self-contained HTML bundle with all images, fonts, and styles inlined. Base44 starts building an editable app from it and returns the Base44 Editor URL immediately so the user can watch progress.
import-claude-design-from-url
List the OAuth connectors (third-party integrations like Google Calendar or Slack) available to a Base44 app, and which are already connected. Call with no integration_types to get the full catalog — each entry has the connector's name, description, whether it's connected, and (if connected) its status and granted scopes. Pass integration_types to get full detail for specific connectors, including the connection_config_fields needed before connecting. Use this to discover what can be connected AND to verify a connection succeeded after the user authorizes.
list_connectors
List the data models (entity schemas) defined in your app, including field names, types, and constraints.
list_entity_schemas
List directory entries for orientation, optionally recursive with a depth cap. If the app has no running sandbox, one is created transparently from the last commit (the first call on a cold app takes longer).
list_directory
List all apps owned by the authenticated user. Always returns both app names and their IDs. Optionally filter by name.
list_user_apps
Retrieve entity records using filters, sorting, pagination, and field selection. Supports all entities including the built-in 'User' entity. Use list_entity_schemas first to see available entities and fields.
query_entities
Read file contents, optionally a line range (offset/limit) for token efficiency. Per-file errors are reported individually rather than failing the whole call. If the app has no running sandbox, one is created transparently from the last commit (the first call on a cold app takes longer).
read_file
Execute a bash command inside the app's sandbox (working dir defaults to the app root). Each call is a fresh shell — `cd` does not persist; use the `cwd` param or chain commands. Output is capped (~1 MB) and the timeout is clamped (default 120s, max 600s). Note: shell access can read any files in the sandbox, including any secrets stored there. Changes auto-commit, but a commit is not a checkpoint: only checkpoints appear in the builder's version history, and a Restore or Revert there rolls the app back to the last checkpoint and discards everything written after it. Call create_checkpoint when you finish a unit of work and before you stop. If the app has no running sandbox, one is created transparently from the last commit (the first call on a cold app takes longer).
run_command
Save a restore point in the builder's version history, with an optional name. Pending changes are committed first so it captures the latest code. Files you write or edit are committed but not checkpointed, so this is the only thing that makes your work restorable: a Restore or Revert in the builder rolls the app back to the last checkpoint and everything after it is lost. Call it when you finish a unit of work and always before you stop; a short name saying what changed helps the user pick the right version.
create_checkpoint
Search the app's files for a pattern (ripgrep when available, grep otherwise). Returns matching lines with file/line, capped by max_results with a truncated flag. If the app has no running sandbox, one is created transparently from the last commit (the first call on a cold app takes longer).
grep
Show the live preview of a Base44 app in the conversation, the running app the user can click through and open fullscreen. Use it after building or changing an app with the code tools (write_file, edit_file, run_command), which show nothing to the user on their own. create_base44_app and edit_base44_app already show it. Read-only: builds and changes nothing.
show_app_preview
Call this first, before any other Base44 tool, once per conversation, including for simple lookups. Explains which tool fits which job, the two ways to create and change an app (Base44's AI builder, or editing the files), and the step-by-step loop for driving the builder AI: how to send a change, how to poll on every host, how to read the AI's reply and act on a paused turn, and how to preview and deploy. Do not call it again for follow-ups in the same conversation.
base44_readme
Update the field definitions, types, or constraints of an existing entity. To modify data records, use update_entities. Always check existing schemas with list_entity_schemas first. This also writes the entity's definition into the app's source code (base44/entities/<Name>.jsonc), so the change is durable. IMPORTANT: Security rules are automatically preserved when omitted from your update: - Entity-level RLS (the top-level 'rls' field) is preserved if you omit it. - Field-level security (per-field 'rls' inside properties) is preserved for each field that omits it. To intentionally modify or remove security rules, include them explicitly (use an empty object like 'rls': {} to clear). ## Row-Level Security (RLS) Entity schemas can include RLS rules under the 'rls' field to restrict record access based on user identity. RLS rules are defined per operation: create, read, update, delete. Template variables: {{user.id}}, {{user.email}}, {{user.role}}, {{user.data.<field>}}. Rule types: 1. user_condition — exact equality check on user attributes (no MongoDB operators). E.g. {"user_condition": {"role": "admin"}} 2. Entity-user field comparison — MongoDB query syntax. Custom fields MUST use "data." prefix (e.g. "data.user_id": "{{user.id}}"). Built-in fields (id, created_by_id, created_date, updated_date) are at root level. Combine with $and/$or/$in/$nin. Rules must reference user template variables, never static values. Example: {"rls": {"read": {"created_by_id": "{{user.id}}"}, "update": {"$or": [{"created_by_id": "{{user.id}}"}, {"user_condition": {"role": "admin"}}]}}}
update_entity_schema
Update entity records matching a query using MongoDB update operators. Does not require individual record IDs — use a query filter to match records and apply operators to all matches (up to 500 per call). IMPORTANT: The 'data' field MUST use update operators — bare field assignment like {"status": "active"} is not accepted; use {"$set": {"status": "active"}} instead. The built-in 'User' entity cannot be updated through this tool. If the response contains has_more=true, more records matched than the batch limit — call again with an adjusted query that excludes already-updated records (e.g. filter on the old value) to avoid an infinite loop. Supported operators: $set, $rename, $unset, $inc, $mul, $min, $max, $currentDate, $addToSet, $push, $pull. Examples: query={"status": "pending"}, data={"$set": {"status": "active"}} to update matching records; query={"category": "legacy"}, data={"$rename": {"oldField": "newField"}} to rename a field on matching records.
update_entities
Add a file to a Base44 app's media library (the Assets the user sees in the editor) and get back its public URL. Use it for assets the app shows or links to: images, logos, icons, video, audio, PDFs and other documents, 3D models. The app's code or data then points at the URL (an <img src>, a CSS url(), a record field). Not for the app's source code: the files the app is built from (components, pages, CSS, HTML, JSON config, entity schemas) go in with write_file, which commits them to the code. An asset is not part of the code and is not versioned with checkpoints; it stays in the library, and live at its URL, until deleted. Accepted types: 3g2, 3gp, avi, csv, docx, fbx, gif, glb, gltf, ico, jpeg, jpg, json, m4v, md, mkv, mov, mp3, mp4, mtl, obj, ogv, pdf, png, pptx, svg, txt, wav, webm, webp, wmv, xlsx, zip.
upload_app_asset
Change a Base44 app directly, without the builder AI, by writing a file in its code. Creates a new file, or overwrites an existing one only when overwrite=true (never silently clobbers). Prefer edit_file for changes to existing files. Writes text into the app's source code only: for an image, video, PDF or other asset the app shows or links to, use upload_app_asset and reference the returned URL in the code. Changes auto-commit; only create_checkpoint makes them restorable from the builder's version history. If the app has no running sandbox, one is created transparently from the last commit (the first call on a cold app takes longer).
write_file
List main and active branches of a Base44 app, with names, IDs, and status. Use the returned ID as branchId/branch_id in subsequent MCP calls, or the name with CLI --branch. Main has a null ID: omit branchId/branch_id to target main. Ask the user when the intended branch is unclear.
Base44 ChatGPT Plugin FAQ
How the directory, categories and Discoverability Score work.
Read the methodologyHow do I improve Base44's ChatGPT Plugin discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
What are Base44 alternatives on ChatGPT?
As of 2026-11-02, Base44 competes with Adalo, Akwadra, Alpy, Apiway — AI Workspace, AppDeploy, appdesigns, Bilt, Blink and 34 more in ChatGPT AI App & Website Builders, ranked by public Discoverability Score.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.