The Base44 SDK provides a JavaScript interface for building apps on the Base44 platform.
You can use it in two ways:
- Inside Base44 apps: When Base44 generates your app, the SDK is already set up and ready to use.
- External apps: Use the SDK to build your own frontend or backend that uses Base44 as a backend service.
Install the SDK via npm:
npm install @base44/sdkNote: In Base44-generated apps, the SDK is already installed for you.
The SDK provides access to Base44's functionality through the following modules:
agents: Interact with AI agents and manage conversations.app-logs: Access and query app logs.auth: Manage user authentication, registration, and session handling.connectors: Manage OAuth connections and access tokens for third-party services.entities: Work with your app's data entities using CRUD operations.functions: Execute backend functions.integrations: Pre-built integrations for external services.
How you get started depends on your context:
In Base44-generated apps, the client is pre-configured. Just import and use it:
import { base44 } from "@/api/base44Client";
// Create a new task
const newTask = await base44.entities.Task.create({
title: "Complete project documentation",
status: "pending",
dueDate: "2024-12-31",
});
// Update the task
await base44.entities.Task.update(newTask.id, {
status: "in-progress",
});
// List all tasks
const tasks = await base44.entities.Task.list();When using Base44 as a backend for your own app, create and configure the client yourself:
import { createClient } from '@base44/sdk';
// Create a client for your Base44 app
const base44 = createClient({
appId: 'your-app-id' // Find this in the Base44 editor URL
});
// Read public data (anonymous access)
const products = await base44.entities.Products.list();
// Authenticate a user (token is automatically set)
await base44.auth.loginViaEmailPassword('user@example.com', 'password');
// Now operations use the authenticated user's permissions
const userOrders = await base44.entities.Orders.list();For backend code that needs admin-level access, use the service role. Service role is only available in Base44-hosted backend functions:
import { createClientFromRequest } from 'npm:@base44/sdk';
Deno.serve(async (req) => {
const base44 = createClientFromRequest(req);
// Access all data with admin-level permissions
const allOrders = await base44.asServiceRole.entities.Orders.list();
return Response.json({ orders: allOrders });
});For complete documentation, guides, and API reference, visit the Base44 SDK Documentation.
Build the SDK from source:
npm install
npm run buildRun the test suite:
# Run all tests
npm test
# Run unit tests only
npm run test:unit
# Run with coverage
npm run test:coverageFor E2E tests, create a tests/.env file with:
BASE44_APP_ID=your_app_id
BASE44_AUTH_TOKEN=your_auth_token
Generate API documentation locally:
# Process and preview locally
npm run create-docs
cd docs
mintlify dev