API ReferencePOST /v1/sites

POST /v1/sites

Create a new site. Warpweb researches the business, generates copy and design, and deploys to a free subdomain. Returns immediately with a site_id; the actual build runs asynchronously and typically completes in 60-120 seconds.

Cost: 150 credits ($1.50). Charged on successful deploy. Failed builds don’t deduct.

Request

curl -X POST https://api.warpweb.ai/v1/sites \
  -H "Authorization: Bearer wpwb_sk_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "business_name": "Brookside Plumbing",
    "business_location": "Austin, TX",
    "business_type": "Residential plumbing services",
    "contact_email": "owner@brooksideplumbing.com"
  }'

Body

FieldTypeRequiredDescription
business_namestringyesThe business as customers know it. Used for branding and copy.
business_locationstringyesCity + state/region. Drives local SEO, “areas we serve” content, and example testimonials.
business_typestringyesFree-text description of what the business does. The more specific, the better the generated copy.
contact_emailstringyesWhere the contact form delivers if no webhook is configured. Used for the operator notification on first deploy.
template_hintstringnoOptional design hint: professional, playful, bold, minimal, classic. Default: auto-selected from business type.
metadataobjectnoArbitrary JSON you can attach to the site for your own tracking. Returned on GET /v1/sites/:id. Max 4KB.

Response

{
  "site_id": "site_8f3c2a1b-5d47-4c9e-b820-1f8a3e7d9c4f",
  "status": "building",
  "created_at": "2026-05-17T14:23:11Z"
}
FieldDescription
site_idOpaque identifier. Use this for all subsequent calls.
statusAlways building on initial response. Poll GET /v1/sites/:id for progress.
created_atISO 8601 UTC.

Lifecycle

  1. building — research + design + copy generation in progress.
  2. deploying — content generated, Cloudflare Pages deploy in flight.
  3. livedeployed_url is now reachable.
  4. failed — build error. The response includes failed_reason. No credits charged.

If you’ve configured a revision-status webhook, you’ll receive a site.build_complete event when the site goes live instead of polling.

Errors

StatusErrorCause
400missing_required_fieldbusiness_name, business_location, business_type, or contact_email is missing.
402insufficient_creditsAccount balance below the build cost. Top up at app.warpweb.ai/billing.
422unprocessable_businessBusiness description was flagged as low-information, adult content, or otherwise unbuildable. Returns suggested edits.
429rate_limitedSee Authentication → Rate limits.