返回顶部
e

ezyhostEzyHost管理

Deploy, manage, and monitor static websites via the EzyHost API. Upload files, build with AI, track analytics, manage custom domains, QR codes, email capture, and team collaboration.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.3
安全检测
已通过
770
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

ezyhost

EzyHost — Agent Skill

This document describes how AI agents can interact with EzyHost programmatically.
For human users, visit ezyhost.io.

Base URL

CODEBLOCK0

Authentication

All API requests require an API key passed as a header:

CODEBLOCK1

The key is loaded from the EZYHOST_API_KEY environment variable. Generate your API key at https://ezyhost.io/dashboard/api-keys.

Note: API access requires the Pro plan or higher.



Endpoints

Projects

List Projects

GET /api/projects
Returns INLINECODE2

Create Project

POST /api/projects
Content-Type: application/json
Body: { "name": "my-site", "subdomain": "my-site" }
Returns INLINECODE3

The subdomain must be 3+ characters, lowercase alphanumeric with hyphens. Returns 409 SUBDOMAIN_TAKEN if already in use. Your site will be live at https://{subdomain}.ezyhost.site.

Optional fields: displayMode ("standard" | "presentation"), hideFromSearch (boolean), password (string).

Check Subdomain Availability

GET /api/projects/check-subdomain/:subdomain
Returns { available: true/false, subdomain }. Use this to validate before creating.

Get Project

GET /api/projects/:id
Returns INLINECODE10

Update Project

CODEBLOCK6

Delete Project

DELETE /api/projects/:id
Deletes the project and all associated files from storage. This cannot be undone.

File Upload

Upload Files (ZIP or individual)

POST /api/upload/:projectId
Content-Type: multipart/form-data
Body: files (multipart)
Returns INLINECODE11

Supports .zip archives (auto-extracted) and individual files. All uploaded files go through malware scanning (ClamAV + magic byte validation).

Supported file types: HTML, CSS, JS, JSON, XML, SVG, images (PNG, JPG, GIF, WebP, AVIF, ICO), PDFs, presentations (PPTX), documents (DOCX, XLSX), audio (MP3, WAV, OGG, FLAC, AAC), video (MP4, WebM, MOV), fonts (WOFF, WOFF2, TTF, OTF, EOT), archives (ZIP), 3D models (GLB, GLTF, OBJ), and any other static asset.

Blocked file types: Executables (.exe, .dll, .bat, .sh, .php, .asp, .jar) and SVGs containing scripts or event handlers are rejected.

Delete a File

CODEBLOCK9

Bulk Delete Files

CODEBLOCK10

Rename a File

PATCH /api/upload/:projectId/files/:fileId
Content-Type: application/json
Body: { "newPath": "assets/renamed-file.png" }

GitHub Import

Import from GitHub

POST /api/github/:projectId
Content-Type: application/json
Body: { "owner": "username", "repo": "repo-name", "branch": "main", "subfolder": "dist" }
Returns INLINECODE13

Imports files from a public GitHub repository. The branch defaults to "main" and automatically falls back to "master" if not found. The optional subfolder field lets you import only a subdirectory (e.g. "dist", "build").

Requires Pro plan or higher.



Version Rollback

List Versions

GET /api/versions/:projectId
Returns INLINECODE16

Create Version Snapshot

POST /api/versions/:projectId
Content-Type: application/json
Body: { "label": "v1.0" }
Snapshots the current state of all project files. Requires Pro plan or higher.

Rollback to Version

POST /api/versions/:projectId/rollback/:version
Restores all files to the state captured in the specified version number.

SEO

Get SEO Report

GET /api/seo/:projectId
Returns INLINECODE17

Requires Pro plan or higher.

Run SEO Analysis

POST /api/seo/:projectId/analyze
Triggers a fresh SEO scan and returns updated suggestions.

Resolve a Suggestion

CODEBLOCK18

AI Auto-Fix SEO Issues

POST /api/seo/:projectId/ai-fix
Content-Type: application/json
Body: { "suggestionIds": ["id1", "id2"] }
Uses AI to automatically fix SEO issues in your HTML files. Counts against AI generation limits.

Analytics

Get Analytics

GET /api/analytics/:projectId?period=7d
Periods: 24h, 7d, 30d, INLINECODE21

Basic analytics (all plans):
Returns INLINECODE22

Advanced analytics (Pro+ plans):
Additionally returns INLINECODE23

Free plan users receive isAdvanced: false and advanced fields are empty.

Track Event (public, no auth required)

POST /api/analytics/track
Content-Type: application/json
Body: { "projectId": "...", "path": "/page", "referrer": "..." }

QR Codes

Generate QR Code

POST /api/qrcode/:projectId
Returns INLINECODE25

Generates a QR code pointing to the project's live URL (subdomain or custom domain). Returns a base64 data URL. Available on all paid plans.

Get QR Code

GET /api/qrcode/:projectId
Returns { qrCodeUrl: "data:image/..." | null }

Email Capture

Toggle Email Capture on Project

PATCH /api/emails/:projectId/toggle
Returns { emailCapture: true/false }. Requires Business plan.

When enabled, visitors to the hosted site see a popup email collection form after 5 seconds.

Submit Email (public, no auth)

POST /api/emails/submit
Content-Type: application/json
Body: { "email": "visitor@example.com", "projectId": "...", "source": "modal" }
Source options: modal, inline, api. Only works if the project has email capture enabled and the project owner has a Business plan.

Get Captured Emails

GET /api/emails/:projectId?page=1&limit=50
Returns INLINECODE31

Requires Business plan.

Export Emails as CSV

GET /api/emails/:projectId/export
Returns a CSV file download. Requires Business plan.

Delete a Captured Email

DELETE /api/emails/:projectId/:emailId

Teams

List Teams

GET /api/teams
Returns INLINECODE32

Create Team

POST /api/teams
Content-Type: application/json
Body: { "name": "My Team" }
Requires Business plan.

Add Team Member

POST /api/teams/:teamId/members
Content-Type: application/json
Body: { "email": "user@example.com", "role": "editor" }
Roles: editor, viewer.

Update Member Role

CODEBLOCK32

Remove Team Member

CODEBLOCK33

Leave Team

CODEBLOCK34

Delete Team

DELETE /api/teams/:teamId

Domains

Add Custom Domain

POST /api/domains/:projectId
Content-Type: application/json
Body: { "domain": "example.com" }
Returns { dnsInstructions: { type, name, value } } — DNS records you need to create.

Requires Pro plan or higher.

Verify Domain DNS

GET /api/domains/:projectId/verify
Returns { verified: true/false, dnsInstructions }. Call this after setting up DNS records.

Remove Domain

DELETE /api/domains/:projectId

AI Builder

Chat (generate/edit websites via AI)

POST /api/aibuilder/chat
Content-Type: application/json
Body: { "message": "build a portfolio site", "history": [], "currentFiles": [] }
Returns SSE stream with events:
  • - status — progress updates ("Generating HTML...")
  • INLINECODE38 — percentage (0-100)
  • INLINECODE39 — { files: [{ filename, content }] } — the generated files
  • INLINECODE41 — { message } on failure

Counts against per-plan AI generation limits. Only one AI generation can run at a time per user.

Deploy AI-Generated Files

CODEBLOCK40

Download as ZIP

POST /api/aibuilder/download-zip
Content-Type: application/json
Body: { "files": [{ "filename": "index.html", "content": "..." }] }
Returns a ZIP file download.

Templates

CODEBLOCK42

Template body: { "name": "My Template", "description": "...", "messages": [...], "files": [...] }



API Keys

Get Current Key

GET /api/apikey
Returns { hasKey: true/false, apiKey: "ag_••••..." } — key is partially masked.

Generate New Key

POST /api/apikey/generate
Returns { apiKey: "ag_..." } — full key shown only once. Store it securely. Revokes any previous key.

Requires Pro plan or higher.

Revoke Key

DELETE /api/apikey

Plans (Public)

Get All Plans

GET /api/plans
No authentication required. Returns { plans: [{ plan, name, priceMonthly, maxProjects, maxStorageMB, ... }] } with all feature flags and limits for each plan.

Billing

Get Billing Info

GET /api/billing
Returns { plan, subscription, aiCredits, usage }.

Get AI Usage

GET /api/billing/ai-usage
Returns { used, limit, remaining, resetsAt }.

Plan Limits

FeatureFreePro ($9/mo)Business ($29/mo)
Projects215Unlimited
Storage
50 MB | 2 GB | 20 GB | | Max file size | 10 MB | 100 MB | 500 MB | | Custom domains | — | 3 | Unlimited | | API access | — | ✅ | ✅ | | GitHub import | — | ✅ | ✅ | | Version rollback | — | Up to 5 | Up to 30 | | Password protection | — | ✅ | ✅ | | Remove branding | — | ✅ | ✅ | | SEO tools | — | ✅ | ✅ | | Advanced analytics | — | ✅ | ✅ | | QR codes | ✅ | ✅ | ✅ | | Hide from search | — | ✅ | ✅ | | Email capture | — | — | ✅ | | Team members | — | — | Up to 5 | | Priority support | — | — | ✅ | | AI generations | 3/mo | 10/mo | 30/mo | | AI templates | 1 | 10 | Unlimited | | Presentation mode | — | ✅ | ✅ | | Basic analytics | ✅ | ✅ | ✅ |

Hosted Site URLs

Sites are served at:

  • - Free subdomain: INLINECODE49
  • Custom domain: https://{your-domain.com} (Pro+ plans)

All sites include HTTPS, CDN caching, automatic file browser for non-HTML projects, and optional presentation mode for PDF/PPTX files.

Injected features on served sites:

  • - Branding badge: "Hosted on ezyhost" badge shown on free plan sites. Removable on paid plans via removeBranding project setting.
  • Email capture popup: When enabled (Business plan), visitors see a subscribe popup after 5 seconds. Dismissible and stored in sessionStorage.
  • Analytics tracking: Pageviews are automatically tracked for HTML files.



Error Responses

All errors return JSON:
CODEBLOCK49

Plan limit errors include "upgrade": true to indicate a higher plan is needed:
CODEBLOCK50

Subdomain conflicts:
CODEBLOCK51

Common HTTP status codes:

  • - 400 — Bad request / validation error
  • INLINECODE54 — Not authenticated
  • INLINECODE55 — Plan limit reached or feature disabled
  • INLINECODE56 — Resource not found
  • INLINECODE57 — Conflict (subdomain taken)
  • INLINECODE58 — Rate limited
  • INLINECODE59 — Server error



Rate Limits

  • - General API: 300 requests per 15 minutes per API key
  • Upload: 2 requests per second
  • Analytics tracking: 60 writes per minute per IP
  • Email capture submit: 10 per minute per IP
  • AI Builder: Subject to per-plan generation limits (1 concurrent request max)

Example: Deploy a Static Site

CODEBLOCK52

Your site is now live at INLINECODE60

Example: Import from GitHub

CODEBLOCK53

Example: AI-Generate and Deploy

CODEBLOCK54

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 ezyhost-1776420028 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 ezyhost-1776420028 技能

通过命令行安装

skillhub install ezyhost-1776420028

下载

⬇ 下载 ezyhost v1.0.3(免费)

文件大小: 5.81 KB | 发布时间: 2026-4-17 20:09

v1.0.3 最新 2026-4-17 20:09
**Expanded features for team collaboration, versioning, email capture, QR codes, advanced analytics, and GitHub import.**

- Added support for team management and collaboration features (requires Business plan).
- Introduced project versioning and rollback for safer updates (requires Pro plan or higher).
- New endpoints for QR code generation and retrieval for project URLs (all paid plans).
- Email capture capabilities added, including popup forms and export options (Business plan).
- GitHub import integration enables pulling files directly from public repositories (Pro+ plans).
- Analytics now includes advanced visitor details and device/browser insights (Pro+ plans).
- Subdomain availability check endpoint added for improved project creation flow.
- Skill documentation reorganized, expanded, and updated for clarity and feature completeness.
- API access requirement updated to Pro plan or higher.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部