用 Make、n8n 和 Zapier 发布网站:Hostilo REST API
任何能发送 HTTP 请求的工具,现在都可以在 Hostilo 上创建、更新和恢复网站。REST API 拥有与 Claude 和 ChatGPT 的 MCP 连接器相同的 10 个操作,每个操作都有独立地址,公开文件 openapi.json 描述了整个接口。下面是四个具体用法,以及两个可直接导入的场景:一个用于 n8n,一个用于 Make。
API 能做什么
| 操作 | 方法 | 用途 |
|---|---|---|
list_sites | GET | 列出你的网站及其 id |
get_site | GET | 网站的完整 HTML(最大 5 MB) |
create_site | POST | 新网站:空白、带 HTML、带文件或基于模板 |
update_site | POST | 更新网站 HTML,可用 id 或名称 |
publish_files | POST | 多文件网站:index.html、CSS、JS、图片 |
import_zip | POST | 从 ZIP 文件导入整个项目 |
list_templates | GET | Hostilo 现成模板 |
list_versions | GET | 网站已保存的版本 |
restore_version | POST | 恢复到指定版本 |
get_site_stats | GET | 浏览量和访客 |
每个操作的地址是 https://hostilo.app/api/v1/<操作>。请求和响应均为 JSON。
密钥、限制和套餐
- 密钥:控制面板 → API 与工具 → 生成密钥。密钥以
hk_开头,放在请求头Authorization: Bearer hk_...中。它能访问你的所有网站,请像密码一样保管:放在 Make、n8n 或 Zapier 的凭据里,不要写进场景本身。生成新密钥后,旧密钥立即失效。 - 频率限制:每个密钥每分钟 60 次请求。响应头
X-RateLimit-Remaining显示剩余次数。超出后返回状态码 429,并带有以秒为单位的Retry-After响应头。 - 大小:每个网站的 HTML 最大 5 MB。图片请用
publish_files作为单独文件上传。 - 错误:返回
{"error": "..."},状态码为 400、401、403 或 429。错误信息为波兰语,请根据状态码判断。 - 套餐:免费版同样可以使用 API(最多 5 个网站,统计数据保留 7 天)。不过免费账户需要隔一段时间登录一次控制面板,API 调用不算登录。如果你的自动化要在无人值守的情况下运行几个月,请选择 PRO,每年 29 美元(不含税):没有这条规则,可建 20 个网站,支持自定义域名,统计最长 365 天。详见 免费版与 PRO 对比。
第一个请求
curl -X POST https://hostilo.app/api/v1/create_site \
-H "Authorization: Bearer hk_..." \
-H "Content-Type: application/json" \
-d '{"site_name": "prices-2026", "html": "<!DOCTYPE html><html>...</html>"}'
响应:
{"success": true, "message": "Strona utworzona.", "site_id": 124, "url": "https://prices-2026.hostilo.page"}
网站名称为 3 到 30 个字符:小写字母、数字和连字符,由它生成地址 名称.hostilo.page。
用法 1:表格或表单变成网站
有人提交了表单,或者你在 Google 表格里新增一行,片刻之后 名称.hostilo.page 上就出现一个完整的页面。第一次运行创建网站,之后每次运行替换内容。两个现成场景都是这样工作的:
场景发送 update_site,site_id 填网站名称。
如果网站还不存在,API 返回状态码 400 和信息 “Strona nie istnieje…”(网站不存在)。这时场景用同样的 HTML 调用 create_site。
处理下一行时网站已存在,流程在 update_site 结束。上一版本进入历史记录。
POST https://hostilo.app/api/v1/update_site
{"site_id": "prices-2026", "html": "<!DOCTYPE html><html>...</html>"}
n8n
下载 n8n-hostilo-publish.json,在 n8n 中选择 Import from File(或把文件内容粘贴到空白 workflow)。你会得到五个节点:Webhook → Build HTML → update_site → 条件 → create_site。在两个 Hostilo 节点中创建同一个 Header Auth 凭据:名称 Authorization,值 Bearer hk_...。点击 Test workflow 并发送:
curl -X POST "<Webhook test URL>" \
-H "Content-Type: application/json" \
-d '{"site":"prices-2026","title":"2026 价目表","text":"理发:60 元"}'
也可以用 Google Sheets Trigger 节点代替 webhook,列名为 site、title 和 text。如果数据中有 html 字段,场景会原样发布,所以你可以在前面接一个 AI 模型节点来生成整个页面。
Make
下载 make-hostilo-publish.json,新建场景,在三点菜单中选择 Import Blueprint。模块依次为:Google Sheets Watch Rows(A 列:网站名称,B 列:标题,C 列:正文)→ JSON Transform to JSON → HTTP Make an API Key Auth request(update_site)→ 同一模块(create_site,带“网站尚不存在”过滤器)。导入后选择你的表格并添加密钥:Credentials → Add,Key 填 Bearer hk_...,API Key placement 选 In the header,参数名 Authorization。两个 HTTP 模块选择同一个密钥。
为什么要用 Transform to JSON
含有大量引号和换行的 HTML 直接放进请求体会破坏 JSON。Transform to JSON 会把它转成合法的字符串,API 收到的内容和表格中完全一致。
Zapier
Zapier 不支持从文件导入场景,一个步骤就够了:Webhooks by Zapier → Custom Request,方法 POST,URL https://hostilo.app/api/v1/update_site,请求头 Authorization: Bearer hk_... 和 Content-Type: application/json,Data 中填上面的 JSON。最简单的做法是先在控制面板里建好网站,让 Zap 只负责更新。
用法 2:每个新产品都有自己的页面
目录里新增一个产品,场景就为它创建一个页面,例如 spf50-cream.hostilo.page,包含介绍、价格和下单按钮。只需一次 create_site 调用,名称取自产品编号。如果页面需要单独的样式表、脚本和照片,请用 publish_files:
POST https://hostilo.app/api/v1/publish_files
{
"site_id": "spf50-cream",
"files": [
{"path": "index.html", "content": "<!DOCTYPE html><html>...</html>"},
{"path": "style.css", "content": "body { font-family: sans-serif }"},
{"path": "photo.jpg", "content": "/9j/4AAQ...", "encoding": "base64"}
]
}
index.html 成为页面,其他文件放入 assets/ 文件夹,Hostilo 会自动修正 HTML 中的链接。你也可以从现成设计开始:list_templates 返回模板列表,create_site 加上 template 字段即可基于模板建站。注意网站数量限制:免费版 5 个,PRO 20 个。产品很多时,用一个产品列表页并通过 update_site 刷新会更合适。
用法 3:自动刷新的页面
来自表格的价目表、课程表、可预约时段、联赛成绩。场景每小时或每天早上运行一次(n8n 用 Schedule Trigger 节点,Make 用场景的定时设置),获取数据、生成 HTML 并发送 update_site。Hostilo 保留最近 10 个版本,数据源出了问题时,一次调用即可回退:
GET https://hostilo.app/api/v1/list_versions?site_id=prices-2026
POST https://hostilo.app/api/v1/restore_version
{"site_id": "prices-2026", "version_id": "1760601600"}
恢复时当前版本也会进入历史记录,所以这一步同样可以撤销。每周一次,同一个场景还可以获取统计数据,把浏览量写入表格或发送到 Slack:
GET https://hostilo.app/api/v1/get_site_stats?site_id=prices-2026&days=7
免费版显示 7 天;PRO 最长 365 天,并按国家、来源和设备细分。
用法 4:会发布网站的自定义 GPT
在 ChatGPT 中创建一个 GPT,然后进入 Configure → Actions → Create new action → Import from URL,填入 https://hostilo.app/openapi.json。Authentication 选 API Key,Auth Type 选 Bearer,粘贴你的密钥。隐私政策填 https://hostilo.app/privacy。GPT 会获得全部 10 个操作及说明,当你写下“把这个页面发布为 corner-cafe”时,它会自己选择正确的操作。
两点提示。GPT Actions 接受的响应约 100 KB 以内,非常大的页面可能无法通过 get_site 返回。如果你只是自己使用 ChatGPT、Claude 或 Perplexity,MCP 连接器更简单:用 Hostilo 账户登录即可,无需复制密钥。
面向代理公司和自动化从业者
一个场景可以服务多个客户网站,因为网站名称只是表格或 CRM 中的一个字段。客户在表格里加上促销信息,页面就会自动更新,而你通过同一个 API 获得版本历史和月度报告所需的统计数据。旧集成使用的 /api.php?action= 地址继续可用。完整参考:REST 文档。
常见问题
REST API 需要额外付费吗?
不需要。免费版和 PRO 都可以使用,限制同为每分钟 60 次请求。套餐决定网站数量、统计时间范围,以及账户是否需要定期登录。
REST API 和 MCP 连接器有什么区别?
操作完全相同。MCP 连接器面向 AI 应用(Claude、ChatGPT、Perplexity、Cursor),在其中用 Hostilo 账户登录。使用 hk_ 密钥的 REST 面向自动化工具、脚本和自定义 GPT。
密钥放在场景里安全吗?
请把它保存在工具的凭据中(n8n:Header Auth,Make:Credentials),不要填在节点字段里。现成文件中不包含密钥。如果泄露,在控制面板生成新密钥,旧密钥会立即失效。
每分钟超过 60 次请求会怎样?
API 返回状态码 429 和 Retry-After 响应头。在 n8n 的 HTTP Request 节点中开启 Retry On Fail 或 Batching;在 Make 中在调用之间加一个 Sleep 模块。


