Schema Source from Tabstack logo

Schema Source from Tabstack

認証する

Schema Source from Tabstackは、URLをJSON Schema、Zod、Pydanticに変換する開発者向けツールです。ブラウザ表示とJSON APIに対応し、初回抽出後はキャッシュ結果を再利用できます。

Schema Source from Tabstack preview

概要

Schema Source from Tabstackは、URLを構造化スキーマに変換するWebベースのジェネレーターです。手書きのモデルではなく、ページの内容やレイアウトから導出した JSON Schema、Zod schema、または Pydantic の出力を必要とする開発者向けに位置づけられています。

この製品は、同じスキーマページをHTMLとJSONの両方のエンドポイントとして公開します。ドキュメントでは、`/get/` を使ったシンプルなワークフローが示されており、最初のリクエストで抽出を行い、その後のリクエストではキャッシュされた結果を再利用するため、繰り返しの参照やAPI駆動の利用に適しています。

主な機能

任意のURLからのスキーマ生成

`/get/` パスを通じて、任意のURLからスキーマを生成します。ホームページには Reddit、Techmeme、Zillow、Product Hunt、Amazon などのサンプル対象が表示されています。

1つのエンドポイントからHTMLとJSONを配信

各スキーマページは、コンテンツネゴシエーションまたは `?format=json` を使ってJSONとして取得できます。そのため、同じエンドポイントをブラウザ表示とAPI利用の両方に使えます。

キャッシュされたスキーマ応答

ドキュメントでは、最初の抽出後はキャッシュされたレスポンスからスキーマ出力を利用できるため、後続のリクエストで上流の抽出処理を繰り返す必要がないことが示されています。

複数のスキーマ形式

生成されたページは、JSON Schema、Zod、Pydantic を含む複数の出力形式を公開するため、同じ抽出結果を異なるスタックで再利用できます。

APIに適したワークフロー

ドキュメントには `curl` と `fetch` を使ったクライアントリクエスト例があり、スクリプトやアプリケーションへの組み込みがしやすくなっています。

対応ページ上でのパターン検出

URLが学習済みパターンに一致しない場合、レスポンスには `pattern: null` が含まれ、抽出結果が既知のサイトテンプレートにマッピングされなかったことを示します。

主なユースケース

  • ページをスキーマに変換する

    公開URLのスキーマ表現が必要で、ページ構造を手作業でモデル化したくない場合にこのサービスを使います。

  • スキーマ取得を自動化する

    機械可読なスキーマ出力をプログラムから取得したいときに、スクリプトやバックエンドサービスでJSONエンドポイントを使います。

  • アプリケーションのスキーマのたたき台にする

    ZodやPydanticに依存するコードベースで、バリデーションや型付きデータモデルの出発点として生成結果を使います。

  • 抽出済みスキーマを再利用する

    頻繁に問い合わせるURLではキャッシュ結果を再利用し、毎回抽出を再実行する必要を減らします。

Pros and Cons

Pros

  • JSON Schema、Zod、Pydanticという3つの一般的なスキーマ形式をサポートしています。
  • 固定されたソースセットだけでなく、任意のURLに対応します。
  • リクエストヘッダーやクエリ文字列に応じて、ブラウザまたはJSON APIとして利用できます。
  • 最初の抽出後はキャッシュされた結果を返すため、繰り返しアクセスに向いています。
  • `curl` と JavaScript の fetch 構文の両方で具体的なリクエスト例が示されています。

Cons

  • 新しいURLに対する最初のリクエストは、結果がキャッシュされる前に抽出が同期的に行われるため、数秒かかる場合があります。
  • ドキュメントでは、一部のURLが学習済みパターンに一致しない可能性が示されており、その場合 `pattern` は `null` になります。

FAQ

Webページの代わりにJSONを取得できますか?

はい。ドキュメントでは、各スキーマページはJSONエンドポイントでもあると示されています。同じ`/get/` URLに `Accept: application/json` を指定するか、`?format=json` を追加するとJSONを強制できます。

送信するURLをURLエンコードする必要がありますか?

いいえ。ドキュメントでは、URLをURLエンコードする必要はないと説明されていますが、エンコード済みのURLも利用できます。サーバーはパスをデコードし、デコードに失敗した場合は生の文字列にフォールバックします。

URLを初めてリクエストするとどうなりますか?

URLに対する最初のリクエストでは、抽出が同期的に実行されるため、数秒かかる場合があります。その後はキャッシュから結果が返されます。

どのようなスキーマ出力がサポートされていますか?

ドキュメントでは、サポートされる出力として JSON Schema、Zod schema、Pydantic model が挙げられています。製品ページでも、生成されたスキーマページ上にこれらの出力タブが表示されます。

レート制限はありますか?

ドキュメントでは、`/get/*` に対してIPごとに1分あたり60リクエストのレート制限があると記載されています。レスポンスには `RateLimit-Limit` と `RateLimit-Remaining` ヘッダーが含まれ、429レスポンスには `Retry-After` が含まれます。

Quick Facts

カテゴリ
開発者向けツール
主な出力形式
JSON Schema、Zod、Pydantic
アクセス方法
同じホスト上のWeb UIとJSON API
ドキュメントのワークフロー
`/get/<url>` をリクエスト; 初回は抽出、以後はキャッシュを使用
レート制限
`/get/*` でIPごとに1分あたり60リクエスト
ソースURL
schema.tabstack.ai