REST API
POST /api/publish にJSONを送るだけでサイトを公開できます。
最小の例(匿名公開)
curl -X POST https://publee.app/api/publish \
-H "Content-Type: application/json" \
-d '{
"title": "My Page",
"visibility": "public",
"html": "<!doctype html><html><head><title>My Page</title></head><body>Hello</body></html>"
}'
レスポンス(201):
{
"site": {
"id": "site_xxxx",
"slug": "my-page-a1b2c3",
"url": "https://my-page-a1b2c3.publee.site/",
"visibility": "public",
"fileCount": 1
},
"claimToken": "...",
"claimUrl": "https://publee.app/claim?token=..."
}
claimToken / claimUrl は 匿名公開のときだけ 含まれます。ログイン後に claimUrl を開くと、そのサイトをアカウントに引き継いで保持期間を延長できます(認証済みの公開ではこのフィールドはなく、site のみ返ります)。
認証(APIトークン)
トークンページで発行した publee_live_ トークンを Authorization ヘッダに載せると、アカウントに紐づいた公開になります。
curl -X POST https://publee.app/api/publish \
-H "Authorization: Bearer publee_live_xxxxx" \
-H "Content-Type: application/json" \
-d @payload.json
リクエストボディ
| フィールド | 型 | 説明 |
|---|---|---|
title |
string | サイト名(省略時はHTMLの<title>または"Untitled site") |
description |
string | サイトの説明(省略可、最大500文字。管理画面に表示) |
slug |
string | 公開URLのサブドメイン(https://<slug>.publee.site)。3〜63文字の英小文字・数字・ハイフン。Pro プラン以上(登録なし・Free は自動発行) |
html |
string | 単一HTMLのショートカット。filesと排他 |
files |
array | {path, content または contentBase64, mimeType?} の配列。index.htmlが無くてもルート直下にHTMLが1つなら自動でトップページになります |
visibility |
string | password(デフォルト) / public / private / members / workspace。登録なしは password / public のみ。private は Pro 以上、members / workspace は Team |
password |
string | visibility=password のとき必須(6文字以上) |
spaMode |
boolean | 未マッチのパスをindex.htmlにフォールバック |
noindex |
boolean | 検索エンジン除外(デフォルト true)。false にできるのは Pro プラン以上 |
showBranding |
boolean | false でPubleeフッターを非表示(Pro プラン以上) |
memberEmails |
string[] | visibility=members のときの許可リスト(最大100件) |
overwrite |
boolean | true にすると slug で指定した自分の既存サイトのファイルを差し替えます(URLは変わりません。要Bearerトークン) |
複数ファイルの例
curl -X POST https://publee.app/api/publish \
-H "Content-Type: application/json" \
-d '{
"title": "Docs Site",
"visibility": "password",
"password": "s3cret-pass",
"files": [
{"path": "index.html", "content": "<!doctype html>..."},
{"path": "style.css", "content": "body { ... }"},
{"path": "img/logo.png", "contentBase64": "iVBORw0KGgo..."}
]
}'
既存サイトの更新(同じURLで差し替え)
curl -X POST https://publee.app/api/publish \
-H "Authorization: Bearer publee_live_..." \
-H "Content-Type: application/json" \
-d '{
"slug": "my-page",
"overwrite": true,
"html": "<!doctype html><html>...更新後のHTML...</html>"
}'
公開範囲やパスワードなどの設定は変わりません(サイト管理画面の共有設定から変更できます)。
エラー
| ステータス | 意味 |
|---|---|
400 |
入力エラー(error フィールドに日本語の理由。プラン外の機能指定もここ) |
401 |
APIトークンが無効 |
415 |
Content-Type: application/json がない |
429 |
レート制限。時間を置いて再試行してください |