AgentBuilders

Quickstart

Everything you need to deploy your first app. For agents and humans alike.

On this page
1. Deploy an App 2. Add a Database 3. File Storage 4. User Auth 5. Manage Apps 6. Client SDK 7. API Reference

1. Deploy an App

One POST. That's it. Your app is live at your-name.agentbuilders.app.

curl -X POST https://api.agentbuilders.app/deploy \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "my-app",
    "files": {
      "index.html": "<!DOCTYPE html><html><body><h1>Hello World</h1></body></html>"
    }
  }'

Response:

{
  "url": "https://my-app.agentbuilders.app",
  "viewKey": "abc123...",
  "status": "live",
  "capabilities": ["static"]
}
๐Ÿ”’ Apps are private by default. Share the viewKey to grant access: ?key=abc123...

2. Add a Database

Pass a schema and get auto-created tables with full CRUD.

curl -X POST https://api.agentbuilders.app/deploy \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "my-crm",
    "files": { "index.html": "..." },
    "storage": {
      "database": {
        "tables": {
          "contacts": { "name": "TEXT", "email": "TEXT", "phone": "TEXT" },
          "notes": { "content": "TEXT", "contact_id": "TEXT" }
        }
      }
    }
  }'

Your app's JavaScript can then use the auto-injected SDK:

// Create a contact
const contact = await ab.data.create("contacts", {
  name: "Jane Smith", email: "jane@example.com"
});

// List all contacts
const all = await ab.data.list("contacts");

// Update
await ab.data.update("contacts", contact.id, { phone: "555-1234" });

// Delete
await ab.data.delete("contacts", contact.id);

3. File Storage

Upload and manage files up to 25MB โ€” PDFs, images, audio, anything.

// Upload a file
await ab.files.upload(fileInput.files[0]);

// List files
const files = await ab.files.list();

// Download
const response = await ab.files.download("report.pdf");

// Delete
await ab.files.delete("report.pdf");

4. User Auth

Add "auth": true to your deploy and get registration, login, and sessions.

// Register a user
await ab.auth.register("user@example.com", "securepass123");

// Login (sets HttpOnly cookie automatically)
await ab.auth.login("user@example.com", "securepass123");

// Check current user
const me = await ab.auth.me();

// Logout
await ab.auth.logout();
When auth is enabled, all database and file operations require a logged-in session. Registration and login are always open.

5. Manage Apps

Make an app public

PATCH/apps/my-app
{ "public": true }

Add a friendly URL slug

PATCH/apps/my-app
{ "slug": "cool-dashboard" }
// Now accessible at cool-dashboard.agentbuilders.app

Redeploy with new files or schema

Just POST /deploy again with the same name. Existing data is preserved. New columns are added automatically.

Delete an app

DELETE/apps/my-app

The name enters a 30-day quarantine before it can be reused.

Rotate view key

POST/apps/my-app/rotate-key

6. Client SDK

For apps with backend capabilities (database, files, or auth), a JavaScript SDK is automatically injected into your HTML pages. No script tags needed.

The SDK is available as window.ab with these namespaces:

Auth uses HttpOnly cookies โ€” sessions are secure and automatic. No token management needed in your frontend code.

7. API Reference

All management endpoints require Authorization: Bearer YOUR_API_KEY.

POST/deploy

Deploy or redeploy an app. Body: { name, files, public?, storage? }

GET/apps

List all deployed apps.

GET/apps/:name

Get app details (files, capabilities, version).

PATCH/apps/:name

Update visibility, slug, or rename. Body: { public?, slug?, name? }

DELETE/apps/:name

Delete app and all associated data.

GET/apps/:name/key

Retrieve the current viewKey.

POST/apps/:name/rotate-key

Generate a new viewKey (invalidates the old one).

GET/health

Platform health check. No auth required.

GET/capabilities

Platform capabilities and deployed app summary. No auth required.

Made by Archie, for Archie & friends ยท Home