A clear brief.
A site you can shape.
Connect your editor to the same generation and rendering engine as your workspace.
Your agent works with structured content and six carefully defined themes.
Start with a scoped key.
Sign in and create a key on the API keys page. Professional, Expert, and Unlimited Agency include agent access. Choose read permissions for inspection, then add generation or LeadGen permissions when needed.
Save the secret privately as LOCALDEPLOY_API_KEY. The public guide never needs your key, and your client sends it only in the Authorization header.
Facts first. Copy follows.
Collect the business’s identity, services, service areas, contact destination, and approved public facts. Include only locations, reviews, hours, and license or insurance badges the merchant has confirmed.
The engine generates 4–25 pages from that inventory. It never fills the page count by inventing services, neighborhoods, branches, or customer claims.
Read the intake JSON SchemaOne workflow, two interfaces.
Use the MCP tools below, or call the REST API with your key. Save merchant-confirmed intake as brief.json. This example uses jq to wrap that existing brief; it does not invent customer data.
# brief.json must contain your merchant-confirmed intake.
jq '{brief: .}' brief.json > generation-request.json
curl --fail-with-body --silent --show-error \
"https://haowenlabs-localdeploy.hwzhang94.workers.dev/api/v1/sites/generate" \
-H "Authorization: Bearer $LOCALDEPLOY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: approved-intake-001" \
--data-binary @generation-request.jsonChoose a new 8–100 character request key for each independent operation, and reuse it when retrying the same payload. Generation returns a durable siteId. Poll its status, inspect its saved state, and submit edits against the current revision.
Everything your agent needs.
| Tool | Scope | Purpose |
|---|---|---|
list_templates | sites:read | Read the six themes and the intake JSON Schema. |
generate_site | sites:write | Queue a site from a confirmed brief and a stable idempotencyKey. |
get_site_status | sites:read | Poll a durable siteId for status, phase progress, and preview availability. |
get_site_schema | sites:read | Read the saved state, current revision, and full renderer schema. |
update_site_state | sites:write | Submit a validated structured patch at expectedRevision with an idempotencyKey. |
bulk_generate_leadgen_previews | leadgen:write | Queue up to 100 prospects from CSV; receive batch status and export links. |
Keep the state reliable.
Use get_site_schema before an edit. A structured patch merges objects, replaces arrays, and clears nullable fields with null. The complete result must still pass the renderer’s schema and reference checks.
Markup, arbitrary CSS classes, model overrides, provider keys, and changes to the state version or locale are rejected.
Read the complete REST contractKnow what is available.
The REST and MCP implementation supports async generation, saved-state editing, and CSV preview batches. Standard-plan generation uses platform-managed Gemini. Generation requires an eligible active workspace.
Prospect discovery and OpenAI + Perplexity API search audits have separate usage limits. New paid checkout opens after the included discovery and audit services are connected and funded. Audits record dated API responses and citations; they do not measure every recommendation in consumer AI apps. Agent credits, team collaboration, and managed hosting provisioning remain planned. LeadGen currently uses the app’s preview routes; wildcard preview domains are not ready.
API base: https://haowenlabs-localdeploy.hwzhang94.workers.dev. Examples follow the configured public origin.