メインコンテンツまでスキップ

REST

API 経由で接続に従って Platform API トークンを作成します。公開 REST のベース URL は https://reconstruct.dev/api/v1/platform です。以下のルートは、この URL からの相対パスです。

GET /capture-options でプラットフォームの種類と環境を取得し、ID をハードコードしないでください。カタログのプラットフォームオプションでは、view がプラットフォームの種類(desktop/mobile)、implementation が環境を表します。デスクトップは web、web-extension、macos、windows、linux、モバイルは web、ios、android に対応します。データを要求する前に各オプションの captured フラグを確認してください。MCP ではこれらのフィールドは platform と environment で、MCP ページの view は保存済みデバイスプロファイルの正確なキーです。MCP の選択を参照してください。

すべてのリクエストに Authorization: Bearer <token> を付けます。カタログのエンドポイントは次のとおりです。

メソッドとパス用途
GET /catalogs?pageSize=10&pageToken=...カタログを一覧表示します。pageSize と pageToken は任意です。
GET /capture-optionsプラットフォームの種類の ID、ラベル、環境オプション、既定値、送信用の requestPlatforms など、対応するオプション。認証・使用量計測はなく、キャプチャー内容は含みません。
GET /catalogs/{catalogId}?version=...公開済みカタログの画面、プラットフォーム、言語、バージョンを読み取ります。
GET /catalogs/{catalogId}/insights?locale=en&view=desktop&implementation=web公開済みバージョンから、技術、レンダリング、フォントファミリー、テキストスタイル、メディアアセット、カラーテーマを読み取ります。

JSON 応答のフィールド名は camelCase です。GET /catalogs は catalogs を返し、続きがある場合は nextPageToken も返します。次のリクエストでそのトークンを pageToken として渡します。カタログ詳細には catalogId、name、kind、description が含まれます。

locale、view、implementation は任意です。view は desktop または mobile、implementation は web、web-extension、windows、macos、linux、ios、android を受け付けます。カタログ詳細は利用可能な組み合わせを platforms[] に返し、各画面は implementation を持ちます。技術、タイポグラフィー、メディアは、この組み合わせと言語の範囲に限定されます。ビュー単位の検出がない場合、technologyInventory: true はバージョン単位の技術一覧を示します。エミュレートした iPhone 上の Web キャプチャーも mobile + web です。古いキャプチャーにページ詳細がない場合、応答はバージョン単位のフォント・アセット一覧を使い、pageCount: 0 を返します。アセットのリンクは元の参照先を維持します。保存済みリソースは、後述のファイル操作で読み取れます。

カタログのフィルターとバージョン​

ListCatalogs は query、sort(newest、name-asc、name-desc、screens、versions)、screens(with/without)、versions(single/multiple)、および繰り返し指定する platforms、technologies、renderings、categories、languages を受け付けます。プラットフォームのフィルター ID はビューと実装を組み合わせたもので、例は desktop:web です。応答の filters にある ID を使用してください。同一フィルター内の選択肢は OR、異なるフィルター同士は AND で結合されます。nextPageToken で続きを取得する際は、フィルターと並べ替えを変更しないでください。

GetCatalog、GetCatalogInsights、GetCatalogFile は任意の version を受け付けます。空の場合は最新の公開済みキャプチャーを選びます。カタログ詳細は選択された version とすべての公開済み versions[] を返し、latestVersion と latestCapturedAt は引き続き最新のキャプチャーを示します。データの整合性を保つため、続くインサイトとファイルの呼び出しにも選択したバージョンを渡します。下書きや不明なバージョンは 404 を返します。

インサイトは section も受け付けます。値は tech stack、typography、colors、themes、assets で、省略するとすべてを返します。colorThemes[] は名前付きパレットを含みます。platforms[].captured は利用可能なプラットフォームオプションを示します。detectedLocales[] は検出された言語、locales[] はキャプチャー済みの言語を含みます。

コンポーネントの測定値​

componentSizing[] はキャプチャーした測定値をコンポーネントの意味的な種類ごとにまとめます。Components タブでコンポーネントを開くと、スクリーンショット、取得した寸法、パディング、角丸、境界線、影、操作状態を確認できます。汎用コンテナーはコンポーネントの測定対象から除外されます。

dimensionContexts[] は帰属情報を追加します。コンポーネントの種類、CSS プロパティー、元の値/短縮記法、総数、最大 3 件の参照サンプルを含みます。サンプルはページ、ビュー、キャプチャー相対パス、元の要素の ID/タグ/ラベル、判明している親、最大 3 個の直接の子を識別します(childCount は子の総数です)。これらはそのページ/ビュー/バージョン固有の未加工のキャプチャー ID で、番号を付け直した MCP レイヤー ID ではありません。サンプルのビューは保存された正確なキー(例:laptop)で、カタログのフィルタービューは desktop または mobile です。欠落する ID は -1 です。件数はキャプチャーされた要素だけを対象とし、件数も例の一覧もサイト全体の網羅を保証しません。

カタログは各コンポーネントの詳細に測定値を表示します。パディングは要素の内側、マージンは周囲の余白であり、必ずしも隣の要素との距離ではありません。ギャップはコンテナーに属します。一覧の子要素は例であり、測定された隣接ペアではありません。サイズはコンポーネント自体を表します。元の単位と短縮記法を維持してください。別の MCP ツール get_spacing と get_sizingは、1 ページ/ビューのページ分割された文脈または要約を提供します。

Fonts タブでは元のフォントファイルを ZIP でダウンロードできます。サイズと言語使用状況の JSON ダウンロードは textStyles[] と fonts[].locales から派生したもので、クライアントが生成するファイルであり、追加の @export エンドポイントではありません。検出された言語(detectedLocales)は、その言語のスクリーンショットがキャプチャーされていることを保証しません。

保存済みファイルとエクスポート​

GET /catalogs/{catalogId}/files/{path} は JSON の BinaryFileResponse を返します。data は base64 で、contentType は復号後のバイト列の形式を示します。パスは screens[] の imagePath、fullPagePath、sectionPaths[]、videoPath、interactionVideoPath から取得します。不完全なキャプチャーには画面の captureLimited フラグが付きます。

同じルートは、保存済みの原本に対して @asset/{hash}、@font/{hash}、@model/{hash} を受け付けます。ハッシュは、元の参照 URL またはデータ URL を UTF-8 にしたものの SHA-256 を小文字の 16 進数で表したものです。また、ZIP エクスポート用に @export/assets、@export/fonts、@export/colors、@export/screenshots、@export/components、@export/languages、@export/technologies、@export/spacing-sizing を受け付けます。余白/サイズのアーカイブには、選択したバージョン、ページ数、集計した dimensions、componentSizing、文脈付きの dimensionContexts を含む spacing-sizing.json が入っています。選択したキャプチャーのファイルとエクスポートには version を指定します。通常のキャプチャー JSON ファイルは、この操作では公開されません。

呼び出し元の操作​

メソッドとパス用途
POST /requestsurl と subject を指定した requestType: PRODUCT_REQUEST_TYPE_ADD、または catalogId を指定した requestType: PRODUCT_REQUEST_TYPE_UPDATE を送信します。
GET /requests, GET /requests/{requestId}呼び出し元の申請をページ分割して取得し、判断結果、安全性検査、キャプチャーの進行状況を確認します。
GET /me/appearance, PUT /me/appearanceニックネームを読み取り/更新します。
GET /me/avatar, PUT /me/avatar, DELETE /me/avatarアバターを読み取り、アップロード(base64 の data)、または削除します。
GET /tokens, POST /tokens, DELETE /tokens/{id}個人トークンを管理します。作成時には name、scopes(api、mcp)、expiresInDays(1~365)を受け付けます。シークレットが返されるのは一度だけです。
GET /me/profile, PUT /me/profileアカウントのプロフィール(profile オブジェクト)を読み取り/更新します。
GET /me/credentials, GET /me/sessions, DELETE /me/sessions/{id}認証情報とセッションを確認し、セッションを終了します。

アカウント、外観、アバター、トークン管理の操作には、サインインしたユーザーのセッショントークンが必要です。個人 API トークンでは認可されません。カタログとリクエストは api スコープを持つ個人トークンを受け付けます。ストリーミングの WatchCatalogs と WatchRequests は gRPC/gRPC-Web で利用でき、REST ルートはありません。

例​

製品の申請には、同じベース URL の下の POST /requests、GET /requests、GET /requests/{request_id} を使います。requestType: PRODUCT_REQUEST_TYPE_ADD では作成に url と subject が必要で、catalogId は任意です。PRODUCT_REQUEST_TYPE_UPDATE では既存の catalogId を指定し、サーバーが名前と参照元 URL を解決します。申請は保存され、所有者だけがアクセスできます。キャプチャー前に審査され、理由を付けて承認または却下できます。危険と判明しているサイトは自動却下されます。REST と gRPC は同じ申請操作を公開します。

正規化されたインターフェースデータ​

Scene データ形式は、状態、リソース、根拠など、プラットフォームに依存しないインターフェースの成果物を定義します。現在の正規化エクスポートは MCP の get_interface_scene から取得します。このカタログ API に個別の Scene 操作は定義されていません。