APIリファレンス
ドキュメント
これは公開APIのプロダクト向けリファレンスです。同じ識別子、tenant、スタイルバージョン、アバターファミリー、スタイルオプション、サイズ、WebP出力は、同じメジャーバージョン内で安定することを意図しています。
主要エンドポイント
GET /v1/avatar: returns an avatar asset directlyGET /v1/avatar/link: stores the generated avatar in configured object storage and returns signed-link metadataGET /avatar/<kind>/<identity>/webp: path-style public avatar URLGET /docs/openapi.json: machine-readable API description
運用エンドポイント
GET /healthzはロードバランサーと稼働監視向けに公開されています。GET /metricsはloopback専用で、ローカルでないpeerには404を返します。
Namespaceサポート
tenantとstyle_versionを使うことで、製品やロールアウト段階ごとに視覚的な識別空間を分離できます。
GET https://hashavatar.app/v1/[email protected]&tenant=acme&style_version=v2&algorithm=sha512&kind=wizard&background=white&accessory=hat&color=deep-sea-blue&expression=cool&shape=squircle&format=webp&size=256
匿名ID
生の個人データではなく、安定した内部IDまたはアプリケーション側の一方向ハッシュを送信してください。
printf '%s' '[email protected]' | sha256sum | cut -d' ' -f1
レート制限
公開サービスはorigin側のレート制限を適用します。オブジェクトストレージ書き込みやOpen Graph画像レンダリングは直接レンダリングより高コストなため、/v1/avatar/link、persist=true付きの直接アバターリクエスト、/og.pngにはより厳しい制限があります。
タイムアウト
高コストなリクエストがoriginを無期限に占有しないよう、アバター生成とストレージ操作はサーバー側タイムアウトで制限されます。
エラー
400: kindが無効、アルゴリズムまたは形式が未対応、サイズが無効、または識別子がありません408: 生成またはストレージ操作のタイムアウト429: レート制限を超過しました500: レンダリングまたはストレージの失敗
OpenAPI
生成クライアントやツールでは、以下を使ってください /docs/openapi.json.