InstaWP Demo API

Create WordPress demo sites with custom themes via API

Create Demo
Recent Jobs
API Docs

Create Demo Site

Async mode — submits job and polls for completion. Takes ~30-60 seconds.

Recent Jobs

Enter API key and click Refresh

API Reference

Base URL: https://demo-api.agents.instawp.net
Auth:    X-API-Key header

POST /api/demo          — Create demo site (async)
POST /api/demo/sync     — Create demo site (sync, blocks until done)
GET  /api/demo/:jobId   — Check job status
GET  /api/demo           — List recent jobs
GET  /health             — Health check

Request body (POST):
{
  "theme_url": "https://..../theme.zip",   // required
  "snapshot_slug": "master-snapshot-gpt",   // optional (default: master-snapshot-gpt)
  "plan_id": 8,                             // optional (default: 8 = Starter)
  "site_name": "my-demo",                  // optional
  "theme_slug": "my-theme"                 // optional (auto-detected from ZIP)
}

Async response (202):
{
  "success": true,
  "job_id": "uuid",
  "status_url": "/api/demo/uuid"
}

Completed job response:
{
  "success": true,
  "job": {
    "id": "uuid",
    "status": "completed",
    "data": {
      "site_id": 12345,
      "site_url": "https://abc123.instawp.site",
      "wp_admin_url": "https://abc123.instawp.site/wp-admin/",
      "theme_slug": "my-theme"
    }
  }
}

Sync response (200):
{
  "success": true,
  "data": {
    "site_id": 12345,
    "site_url": "https://abc123.instawp.site",
    "wp_admin_url": "https://abc123.instawp.site/wp-admin/",
    "theme_slug": "my-theme"
  }
}

cURL Examples:

# Async
curl -X POST https://demo-api.agents.instawp.net/api/demo \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"theme_url":"https://example.com/theme.zip"}'

# Sync (waits up to 3 min)
curl -X POST https://demo-api.agents.instawp.net/api/demo/sync \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"theme_url":"https://example.com/theme.zip"}'