この概要には、APIキーのトークンで使えるすべてのエンドポイントを記載しています。すべてのパスは https://dock.at-harbor.com で始まります。各エンドポイントの正確なフィールドは、https://dock.at-harbor.com/openapi.yaml のOpenAPI仕様にあります。
#認証と公開エンドポイント
| メソッドとパス | 認証 | 用途 |
| POST /v1/token | なし(本文にキーIDとシークレット) | APIキーをアクセストークンに交換する |
|---|
| GET /v1/plans | なし | プランと料金 |
|---|
| GET /v1/pages/available?handle=… | なし | ハンドルが空いているか確認する |
#ページ
| メソッドとパス | スコープ | 用途 |
| GET /v1/pages | read:pages | ワークスペースのすべてのページ(ID、ハンドル、タイトル、ステータス、公開中のバージョン、公開設定、URL) |
|---|
| POST /v1/pages | write:pages | ページを作成します。必須:handle(2〜64文字、英字、数字、ハイフン)とtemplate_key。任意:title、domain_id、theme_config |
|---|
| GET /v1/pages/{id} | read:pages | 1つのページ。has_unpublished_changes(下書きが公開済みのバージョンと異なる場合はtrue)も含みます |
|---|
| PATCH /v1/pages/{id} | write:pages | title、handle、discoverable(ディレクトリへの掲載)を変更します |
|---|
| PATCH /v1/pages/{id}/visibility | write:pages | public、private、password(passwordは4〜72文字)。すぐに反映されます |
|---|
| POST /v1/pages/{id}/publish | write:pages | 下書きを公開します。レスポンスに新しいバージョンが含まれます |
|---|
| GET /v1/pages/{id}/versions | read:pages | 公開済みのバージョン |
|---|
| GET /v1/pages/{id}/versions/{version} | read:pages | 1つのバージョン |
|---|
| POST /v1/pages/{id}/versions/{version}/restore | write:pages | バージョンを下書きに戻します。currentはすべての下書きの変更を破棄します |
|---|
| GET /v1/pages/{id}/seo | read:pages | SEOと共有用テキスト |
|---|
| PATCH /v1/pages/{id}/seo | write:pages | seo_title、seo_description、og_title、og_description、og_image_asset_id、canonical_url、noindex |
|---|
| POST /v1/pages/{id}/invite-link | write:pages | 公開済みの非公開ページの招待リンク。daysは1〜30、既定は7。それ以外の場合は409 page_not_privateまたはpage_not_published |
|---|
| POST /v1/pages/{id}/invite-link/revoke | write:pages | 招待リンクを取り消します |
|---|
| POST /v1/pages/{id}/uploads | write:assets | ページ用のファイルをアップロードします |
#下書き
| メソッドとパス | スコープ | 用途 |
| GET /v1/pages/{id}/draft | read:pages | 現在の下書き:template_key、config、theme_config、custom_css、seo、画像の割り当て、リンク |
|---|
| PATCH /v1/pages/{id}/draft | write:pages | 次のうち少なくとも1つ:config(JSONで最大64 KB、各テキストは最大5,000文字)、theme_config、custom_css(最大50,000文字かつ65,535バイト)、seo、template_key、template_asset_bindings |
|---|
| GET /v1/pages/{id}/draft/validate | read:pages | 下書きを公開できるか確認します |
#ブロック
| メソッドとパス | スコープ | 用途 |
| GET /v1/pages/{id}/blocks | read:pages | ページのブロック |
|---|
| POST /v1/pages/{id}/blocks | write:pages | ブロックを作成します。必須:typeとconfig |
|---|
| PATCH /v1/pages/{id}/blocks/{blockId} | write:pages | ブロックを編集します |
|---|
| DELETE /v1/pages/{id}/blocks/{blockId} | write:pages | ブロックを削除します |
|---|
| POST /v1/pages/{id}/blocks/reorder | write:pages | 順序を設定します |
|---|
| GET /v1/blocks/schemas | read:pages | すべてのブロックの種類とそのconfigのスキーマ |
作成できる種類:text、image、embed、spacer、social_links、form、integration、donation、modal、heading、notice、coupon、contact、opening_hours、tour、file、vcard、countdown、gallery。リンクブロックは固定で、このエンドポイントでは作成しません。プランにないブロックの種類は、APIが403 block_type_requires_planで拒否します。ブロックのconfigはJSONで最大128 KB、その中の各テキストは最大10,000文字です。情報モーダルでは、modal_body_htmlは最大50,000文字かつ65,535バイトまでです。
#リンク
| メソッドとパス | スコープ | 用途 |
| GET /v1/pages/{id}/links | read:links | ページのリンク |
|---|
| POST /v1/pages/{id}/links | write:links | リンクを作成します。必須:title(1〜200)とtarget_url_template(8〜2048) |
|---|
| GET /v1/pages/{id}/links/{linkId} | read:links | 1つのリンク |
|---|
| PATCH /v1/pages/{id}/links/{linkId} | write:links | リンクを編集します |
|---|
| DELETE /v1/pages/{id}/links/{linkId} | write:links | リンクを削除します |
|---|
| POST /v1/pages/{id}/links/reorder | write:links | 順序を設定します:{"order":[IDs]} |
作成と編集時の任意のフィールド:enabled、geo(モードallowlistまたはdenylistとcountriesによる国のルール)、device(デバイスごとの別々のリンク先)、starts_atとends_at(スケジュール)、protection_tier(ボット対策)、age_restriction。スケジュール、国、デバイスのルールはCreator Pro以上で使えます。並べ替えでは、先頭に移動するIDだけを送れば十分です。その他のリンクは以前の順序のまま後に続きます。ページに属さないIDは、APIが422 validation_failedで拒否し、details.missing_link_idsにそれらが一覧表示されます。
#短縮リンク
| メソッドとパス | スコープ | 用途 |
| GET /v1/short-links | read:short_links | limit、offset、sort、検索qを指定できる短縮リンク。レスポンスにtotalが含まれます |
|---|
| POST /v1/short-links | write:short_links | 作成します。必須:target_url(httpまたはhttps、8〜2048)。任意:title(最大120)とcustom_slug(3〜32、小文字の英字、数字、ハイフン) |
|---|
| GET /v1/short-links/{id} | read:short_links | 1つの短縮リンク |
|---|
| PATCH /v1/short-links/{id} | write:short_links | target_urlまたはtitleを変更します |
|---|
| DELETE /v1/short-links/{id} | write:short_links | 短縮リンクを削除します |
プランの短縮リンクの上限に達している場合、APIは402 plan_limit_reachedを返します。
#アセット
| メソッドとパス | スコープ | 用途 |
| GET /v1/assets | read:assets | ワークスペースのアセット |
|---|
| POST /v1/assets | write:assets | ファイルをアップロードします(multipart/form-data、フィールドfile。任意:page_id、kind、title、alt_text) |
|---|
| DELETE /v1/assets/{assetId} | write:assets | アセットを削除します |
#フォーム
| メソッドとパス | スコープ | 用途 |
| GET /v1/forms | read:forms | フォーム |
|---|
| POST /v1/forms | write:forms | フォームを作成します。必須:nameとfields(1〜100個のフィールド) |
|---|
| GET /v1/forms/{id} | read:forms | 1つのフォーム |
|---|
| PATCH /v1/forms/{id} | write:forms | フォームを編集します |
|---|
| DELETE /v1/forms/{id} | write:forms | フォームを削除します |
|---|
| GET /v1/forms/{id}/summary | read:forms | 概要 |
|---|
| GET /v1/forms/{id}/submissions | read:forms | 新しい順の送信内容(limit 1〜500、既定100。次のページはcursor = next_cursorで) |
|---|
| GET /v1/forms/{id}/submissions/export | read:forms | すべての送信内容を新しい順にCSVファイルで、プランのエクスポート上限まで(Creator Pro以上)。X-Export-Truncatedヘッダーで切り詰められたかどうかが分かります |
| メソッドとパス | スコープ | 用途 |
| GET /v1/stats/pages/{id}/summary | read:stats | ページの主要な数値 |
|---|
| GET /v1/stats/pages/{id}/timeseries | read:stats | ページの時系列 |
|---|
| GET /v1/stats/pages/{id}/compare | read:stats | 前の期間との比較 |
|---|
| GET /v1/stats/pages/{id}/links | read:stats | リンクごとのクリック数 |
|---|
| GET /v1/stats/pages/{id}/widgets | read:stats | ウィジェットのクリック数 |
|---|
| GET /v1/stats/pages/{id}/conversions/breakdown | read:stats | ページのコンバージョン |
|---|
| GET /v1/stats/workspaces/me/summary | read:stats | すべてのページの主要な数値 |
|---|
| GET /v1/stats/workspaces/me/timeseries | read:stats | すべてのページの時系列 |
|---|
| GET /v1/stats/workspaces/me/compare | read:stats | 前の期間との比較 |
|---|
| GET /v1/stats/workspaces/me/top-pages | read:stats | 上位のページ |
|---|
| GET /v1/stats/workspaces/me/conversions/breakdown | read:stats | ワークスペースのコンバージョン |
|---|
| GET /v1/stats/workspaces/me/donations | read:donations | 応援の支払いの合計 |
期間は、ページネーションで説明したとおり、periodまたはfromとtoで指定します。さかのぼれる期間はプランによって異なり、Creator ProとAgencyでは365日、Enterpriseでは730日です。それより古い期間はこの上限まで短縮されます。
#プッシュ(読み取りのみ)
| メソッドとパス | スコープ | 用途 |
| GET /v1/push/history | read:stats | プッシュ履歴(limit、offset) |
|---|
| GET /v1/push/usage | read:stats | 週間上限の使用状況 |
プッシュ通知の送信とプッシュルールの管理は、ダッシュボードでのみ行えます。
#ワークスペース、テンプレート、ドメイン
| メソッドとパス | スコープ | 用途 |
| GET /v1/workspaces/me/entitlements | read:workspaces | プランの機能と上限 |
|---|
| GET /v1/workspaces/me/usage | read:workspaces | 現在の使用状況 |
|---|
| GET /v1/workspaces/me/usage/metering | read:workspaces | 使用状況の履歴 |
|---|
| GET /v1/workspaces/me/members | read:workspaces | メンバー一覧 |
|---|
| GET /v1/workspaces/me/settings | read:workspaces | ワークスペース設定 |
|---|
| GET /v1/workspaces/me/callback-secrets | read:workspaces | コールバックシークレット(平文のシークレットを除く) |
|---|
| GET /v1/workspaces/me/callback-secrets/{id} | read:workspaces | 1つのコールバックシークレット(平文のシークレットを除く) |
|---|
| GET /v1/templates | read:workspaces | すべてのテンプレート |
|---|
| GET /v1/templates/available | read:workspaces | 有効なtemplate_keyの値を持つ組み込みテンプレートと有効なワークスペーステンプレート。ワークスペーステンプレートのキーはws:<key>、typeはworkspaceです |
|---|
| GET /v1/templates/{key} | read:workspaces | 1つのテンプレート |
|---|
| GET /v1/workspaces/me/templates | read:workspaces | 独自のワークスペーステンプレート |
|---|
| GET /v1/workspaces/me/templates/{id} | read:workspaces | 1つのワークスペーステンプレート |
|---|
| POST, PATCH, DELETE /v1/workspaces/me/templates[/{id}] | write:templates | ワークスペーステンプレートの作成、編集、削除。htmlは最大60,000バイト(超えるとdetails.reason maxBytes付きの422 validation_failed)、asset_slotsは最大32個 |
|---|
| GET /v1/domains | read:workspaces | 独自ドメイン |
|---|
| GET /v1/domains/available | read:workspaces | ページに使えるドメイン |
#APIキーでは使えないもの
Webhook、連携、プッシュ通知の送信、ドメインの管理、メンバー、請求、ページの削除は、ダッシュボードでのみ使えます。コールバックシークレットも作成と管理はダッシュボードでのみ行え、一覧表示と読み取り(平文のシークレットを除く)はread:workspacesで行えます。完全な一覧はスコープの詳細にあります。外部からのデータ(売上と独自のライブデータ)は、コールバックで説明している専用のエンドポイントに、別のシークレットを使って送信します。