Build with AICre8
Create projects, generate code with AI, clone existing websites, deploy live sites, and manage files — all programmatically. Use our REST API directly or connect via MCP server for AI agents like Claude Desktop and Cursor.
AI Code Generation
Send a prompt, get a full website. The AI writes files, installs packages, and runs the dev server automatically.
Website Cloning
Say "Build a site like example.com" and AICre8 scrapes the reference site — extracting colors, fonts, layout, and content — then rebuilds it.
Live Deploy
Deploy to a branded URL instantly. Binary files, images, and assets all handled. Delta uploads for fast incremental deploys.
Quick Start
Get started in 3 steps:
- Get an API key — Go to Settings and create an API key in the API Keys section.
- Make your first request — List your projects:
curl https://aicre8.dev/api/v1/projects \
-H "Authorization: Bearer ak_live_your_key_here"- Create and generate — Create a project and send a prompt:
# Create a project
curl -X POST https://aicre8.dev/api/v1/projects \
-H "Authorization: Bearer ak_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"name": "My Landing Page"}'
# Generate code (returns SSE stream)
curl -X POST https://aicre8.dev/api/v1/projects/PROJECT_ID/generate \
-H "Authorization: Bearer ak_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"prompt": "Build a modern landing page for a coffee shop"}'Authentication
All API requests require a Bearer token. API keys start with ak_live_ and are scoped to your account.
Authorization: Bearer ak_live_your_key_hereManaging API Keys
/api/v1/keysCreate a new API key (max 5 per account). Requires session auth — call from the browser.
{ "name": "My CI Key" }{
"id": "uuid",
"key": "ak_live_abc123...",
"name": "My CI Key",
"prefix": "ak_live_abc1",
"created_at": "2026-03-11T..."
}/api/v1/keysList your active API keys (session auth required).
{
"keys": [
{ "id": "uuid", "name": "My CI Key", "prefix": "ak_live_abc1", "created_at": "...", "last_used_at": "..." }
]
}/api/v1/keys/:keyIdRevoke an API key permanently (session auth required).
Rate Limits
API keys are rate limited to 100 requests per minute. If you exceed the limit, you'll receive a 429 response.
API Endpoints
Base URL: https://aicre8.dev/api/v1
All endpoints return JSON. Errors include an error field with a human-readable message.
Projects
/api/v1/projectsList all your projects.
{
"projects": [
{
"id": "uuid",
"url_id": "my-project-abc",
"name": "My Landing Page",
"created_at": "2026-03-11T...",
"preview_url": "https://my-project-abc.aicre8.app",
"has_sandbox": true
}
]
}/api/v1/projectsCreate a new project.
{
"name": "My Landing Page", // optional, default: "API Project"
"access_type": "Private" // "Public" | "Private" | "Link"
}{
"id": "uuid",
"url_id": "my-landing-page-x4k",
"name": "My Landing Page",
"created_at": "2026-03-11T...",
"preview_url": null,
"access_type": "Private"
}Code Generation
/api/v1/projects/:id/generateGenerate code using AI. Sends a prompt and returns an SSE stream of the AI response. Supports web scraping — include a URL in your prompt (e.g. 'Build a site like example.com') and AICre8 will scrape the reference site for colors, fonts, and content. Deducts 1 credit per call.
{
"prompt": "Build a site like https://example.com with a dark theme",
"chat_mode": "build" // "build" (default) or "discuss"
}SSE stream (text/event-stream)
Each event contains AI-generated code actions.Files
/api/v1/projects/:id/files/:pathRead a file from the project sandbox. Requires an active sandbox (send a generate request first).
{
"path": "src/App.tsx",
"content": "import React from 'react'...",
"encoding": "utf-8"
}/api/v1/projects/:id/files/:pathWrite a file to the project sandbox. Creates parent directories automatically.
{
"content": "export default function App() { ... }",
"encoding": "utf-8" // or "base64" for binary files
}{ "path": "src/App.tsx", "written": true }Shell Commands
/api/v1/projects/:id/runExecute a shell command in the project sandbox.
{
"command": "npm install tailwindcss",
"cwd": "/home/user/project", // optional
"timeout_ms": 120000 // optional, max 300000
}{
"exit_code": 0,
"stdout": "added 1 package...",
"stderr": ""
}Deploy
/api/v1/projects/:id/deployDeploy a project to a live URL. Pass a map of file paths to file contents. Binary files use __b64__ prefix.
{
"files": {
"index.html": "<!DOCTYPE html>...",
"style.css": "body { margin: 0; }",
"logo.png": "__b64__iVBORw0KGgo..."
}
}{
"deploy_id": "netlify-deploy-id",
"site_id": "netlify-site-id",
"url": "https://my-project-abc.aicre8.app",
"status": "ready",
"files_uploaded": 3,
"files_total": 3
}MCP Server for AI Agents
Connect AICre8 to AI coding agents like Claude Desktop, Cursor, or any MCP-compatible client. The MCP server wraps the REST API so AI agents can create, edit, and deploy projects conversationally.
Setup for Claude Desktop
Add to your Claude Desktop config file (~/Library/Application Support/Claude/claude_desktop_config.json on Mac):
{
"mcpServers": {
"aicre8": {
"command": "npx",
"args": ["@aicre8/mcp-server"],
"env": {
"AICRE8_API_KEY": "ak_live_your_key_here"
}
}
}
}Setup for Cursor
Add to your Cursor MCP settings (.cursor/mcp.json in your project or global config):
{
"mcpServers": {
"aicre8": {
"command": "npx",
"args": ["@aicre8/mcp-server"],
"env": {
"AICRE8_API_KEY": "ak_live_your_key_here"
}
}
}
}Setup for Claude Code
claude mcp add aicre8 -- npx @aicre8/mcp-serverThen set AICRE8_API_KEY in your environment.
Available Tools
list_projectsList all your AICre8 projectscreate_projectCreate a new project with a name and access typegenerate_codeSend a prompt to generate or modify code — supports web scraping and site cloningread_fileRead a file from the project sandboxwrite_fileWrite or update a file in the project sandboxrun_commandExecute a shell command in the project sandboxdeploy_projectDeploy the project to a live branded URLExample Conversation
You: Create a project and build a site like https://openquote.net but with a dark theme
Claude: I'll create the project, scrape the reference site for branding and content, then generate a matching dark-themed site.
→ Calls create_project, then generate_code — AICre8 scrapes the URL, extracts brand colors (#153f6f, #ff0033), fonts, and content, then builds matching components
You: Deploy it
Claude: Deployed! Your site is live at https://openquote-clone-x4k.aicre8.app
Examples
Create and Deploy a Project (Node.js)
const API_KEY = process.env.AICRE8_API_KEY;
const BASE = 'https://aicre8.dev/api/v1';
const headers = {
'Authorization': `Bearer ${API_KEY}`,
'Content-Type': 'application/json',
};
// 1. Create project
const project = await fetch(`${BASE}/projects`, {
method: 'POST',
headers,
body: JSON.stringify({ name: 'My API Project' }),
}).then(r => r.json());
console.log('Project:', project.url_id);
// 2. Generate code
const gen = await fetch(`${BASE}/projects/${project.url_id}/generate`, {
method: 'POST',
headers,
body: JSON.stringify({
prompt: 'Build a landing page for a fitness app with a dark theme',
}),
});
// SSE stream — read to completion
const reader = gen.body.getReader();
const decoder = new TextDecoder();
while (true) {
const { done, value } = await reader.read();
if (done) break;
process.stdout.write(decoder.decode(value));
}
// 3. Deploy
const deploy = await fetch(`${BASE}/projects/${project.url_id}/deploy`, {
method: 'POST',
headers,
body: JSON.stringify({
files: {
'index.html': '<!DOCTYPE html><html>...</html>',
'style.css': 'body { background: #111; color: white; }',
},
}),
}).then(r => r.json());
console.log('Live at:', deploy.url);Read and Modify Files (Python)
import requests
API_KEY = "ak_live_your_key_here"
BASE = "https://aicre8.dev/api/v1"
headers = {"Authorization": f"Bearer {API_KEY}"}
project_id = "my-project-abc"
# Read a file
resp = requests.get(f"{BASE}/projects/{project_id}/files/src/App.tsx", headers=headers)
print(resp.json()["content"])
# Write a file
requests.put(
f"{BASE}/projects/{project_id}/files/src/App.tsx",
headers={**headers, "Content-Type": "application/json"},
json={"content": "export default function App() { return <h1>Hello</h1> }"}
)
# Run a command
result = requests.post(
f"{BASE}/projects/{project_id}/run",
headers={**headers, "Content-Type": "application/json"},
json={"command": "npm run build"}
)
print(result.json()["stdout"])Error Codes
| Status | Meaning | Common Cause |
|---|---|---|
400 | Bad Request | Missing required fields or invalid JSON |
401 | Unauthorized | Missing or invalid API key |
402 | Payment Required | No credits remaining |
403 | Forbidden | Project belongs to another user, or project limit reached |
404 | Not Found | Project ID does not exist |
405 | Method Not Allowed | Wrong HTTP method for endpoint |
408 | Timeout | Deploy or command timed out |
409 | Conflict | No active sandbox, or deploy already in progress |
429 | Rate Limited | Exceeded 100 requests per minute |
500 | Server Error | Internal error — retry or contact support |