MU Developer API
気温 が seed の AI 生成 Tシャツブランド。 1時間に1着出る。 あなたの page に商品グリッドを1行で埋め込める。
MUGEN / MUON / MA / MU × NOUNS — 4ライン の AI 生成商品 を EC / ブログ / 自社プロダクト に 埋め込み 可能。 CORS 公開、 認証不要、 free tier (詳細 ↓)。 商品が更新されると 埋め込み先 でも 自動 反映。
<script src="/pt_gate.js" defer></script>
<div data-pt-gate data-pt-target="my-page:section-1" data-pt-cost="30"
data-pt-label="続きを見る">
<div data-pt-content>…locked content…</div>
</div>
完全 docs (auth flow / iframe sandbox / unlock callback / 不足時 UI / commission)→ /developers/paywall · 実装中、 質問 は developers@enablerdao.com
1. 最速で埋め込む — JS ウィジェット
HTML に以下を貼るだけ:
<div id="mu-mount"></div>
<script src="https://wearmu.com/embed.js"
data-brand="mugen" data-count="6"
data-container="#mu-mount" data-theme="dark"
defer></script>
これだけで MUGEN 6 商品のグリッドが描画されます。クリックすると wearmu.com の購入ページに遷移。
2. プログラムから使う — JS API
<script src="https://wearmu.com/embed.js" defer></script>
<script>
window.addEventListener('load', () => {
MU.mount({
brand: 'mugen', // mugen | muon | ma | nouns | (omit for mixed)
count: 6,
container: '#mu-mount',
theme: 'dark', // dark | light
available: true, // 在庫ありのみ
lang: 'ja', // ja | en
onClick: (p) => window.open(p.checkout_url, '_blank'),
});
});
</script>
3. iframe で埋め込む
JS を実行できないサイト (Notion, Wix, 等) はこちら:
<iframe
src="https://wearmu.com/embed/products?brand=mugen&count=6"
width="100%" height="720"
style="border:0"></iframe>
4. 直接 JSON API を叩く
サーバー側からデータだけ取りたい時 (Next.js, Rails, Python, etc.):
GET https://wearmu.com/api/v1/embed/products?brand=mugen&limit=12&available=1
レスポンス:
{
"products": [
{
"id": 20,
"brand": "mugen",
"drop_num": 11,
"name": "MUGEN #0011 (11/108)",
"image_url": "https://i.imgur.com/jvntmCU.jpeg",
"price_jpy": 5250,
"inventory": 11,
"sold": 1,
"available": true,
"is_auction": false,
"checkout_url": "https://wearmu.com/products/mugen/11",
"share_url": "https://wearmu.com/products/mugen/11"
}
],
"count": 12,
"source": "https://wearmu.com"
}
パラメータ
| パラメータ | 型 | 説明 |
|---|---|---|
brand | string | mugen / muon / ma / nouns。未指定 = 全ブランド mix。 |
count | int (1-50) | 表示数。デフォルト 12。 |
available | bool | true なら在庫ありのみ。 |
theme | string | dark (default) / light |
lang | string | ja (default) / en — ブランドラベルの言語 |
onClick | function | カードクリック時の callback。指定なしなら新タブで checkout_url を開く。 |
container | string / element | マウント先 (CSS セレクタ or HTMLElement) |
ブランド
- MUGEN 無限 — 毎時間 1 商品、108 個限定、北海道の気象データから AI が design 生成
- MUON 無音 — 気温が枚数を決める。10°C なら 10 着のみ
- 間 MA — 週 1 回の 7 日オークション、1 着のみ
- MU × NOUNS — NOUNS DAO とのコラボ枠
使用量 と 制限
/api/v1/embed/products は end-user の IP あたり 60 req/min。 つまり あなたの page を 1人 が 開く と その 訪問者 の IP で 60/min。 同じ page を 100人 が 同時 に 開いて も、 各々別 IP なので OK。 burst は 短時間 (10秒) なら 倍 まで 許容。無料 tier: 月 100,000 req まで 完全 無料。 超過しても 当面 課金 しない (= soft limit、 突然 切らない)。 商業利用 で 月 1M req 超え そう なら 事前 連絡 を。
キャッシュ:
embed.js は CDN で 5 分。 商品データ は ノーキャッシュ (常に 最新)。SLA: 無料 tier には 公式 SLA なし。 過去 30日 uptime は /transparency で 公開中。 MU 落ちた 時用 の fallback は 次節 参照。
バージョン:
v1 は 最低 2027-01-01 まで 維持。 v2 出した 場合 は 12ヶ月 並行運用 + メール 通知。決済: Checkout は wearmu.com 側 のみ。 埋め込み側 から 決済 API は 叩けない (Stripe form 秘匿)。
fallback パターン (MU が 落ちた時 のため)
無料 tier なので 「自分 の page も 落ちる」 を 避ける fallback を 入れて ください。 embed.js は 200ms で timeout、 失敗 時 は コンテナ を 空 のまま 返します。
window.addEventListener('load', () => {
if (!window.MU) {
// embed.js 読み込み失敗 (CDN 障害 or ネットワーク)
document.querySelector('#mu-mount').innerHTML =
'<a href="https://wearmu.com">MU で 見る →</a>';
return;
}
MU.mount({brand:'mugen', count:6, container:'#mu-mount'});
});
error response schema (全 エンドポイント 共通)
失敗 時 は HTTP status + JSON body で 統一:
{
"code": "rate_limited", // machine-readable
"message": "exceeded 60/min for IP a.b.c.d",
"retry_after_seconds": 30, // 該当する場合
"docs": "https://wearmu.com/developers#rate-limit"
}
code 一覧:
rate_limited· 429 · 60/min 超 (retry_after_seconds 付)bad_request· 400 · 無効 な query param (brand=xyz 等)not_found· 404 · 指定 SKU/brand が 存在 しないservice_unavailable· 503 · 一時 障害 (cron 失敗時 等、 retry_after_seconds 付)internal_error· 500 · 予期しない (報告 ください)
あなた に 入る 報酬 (commission)
現状 (v1, 2026-05): commission 0%。 「無料 で MU 商品 を 埋め込める」 だけ で、 売上 シェア は 入りません。 自分 の page で 信頼性 が 上がる (MU の "powered by" badge) + 訪問者 体験 向上 + 商品画像 を 借りられる、 の 3点 が メリット。
大口 パートナー (月 ¥30k+ 売上 を 出す 想定): 個別 で 10-30% commission を 設定 可能。 自分 の Stripe Connect account に 直接 送金 する 形。 詳細 は developers@enablerdao.com まで。
計測 ・ webhook (Phase 2): 「あなたの page 経由 で 誰か 買った」 を webhook (embed.purchase) で 受け取り たい — 2026-Q3 ship 予定。 それ まで は ?ref= URL param で attribution 可能 (Stripe metadata に 記録、 月次レポート 提供)。
利用 ガイドライン (法的拘束 ではない)
無料 ・ 無認証 で 誰でも 埋め込み 可。 以下 は お願い であって 違反 で 即訴訟 や 機能停止 を する もの ではない (まず メール で 連絡 し ます):
- 商品画像 (=mockup の Tシャツ写真) は そのまま 表示 してください (切り抜き ・ クロップ ・ 色変え しない)。
- 「powered by MU」 footer は 表示 して ください (embed.js が 自動 で挿入)。 削除 する と "MU 商品" と わからない 状態 で 表示 される ため。
- SIIIEEP / collab ロゴ が 商品 内 に 入る 場合、 ロゴ を 消し て 再販 する の は NG。 表示 そのまま なら OK。
違反 を 発見 し た 場合 → 警告 メール → 1週間 内 修正 なし で embed.js を 該当 origin から 切ります。 法的措置 は 取り ません (悪意 が 明確 な 場合 を 除く)。
サポート ・ 連絡
- dev 専用 メール: developers@enablerdao.com (機密 質問 ・ 法人 採用検討 ・ commission 相談)
- バグ報告 ・ 機能 リクエスト (public OK): GitHub Issues
- 一般 ・ メディア: info@enablerdao.com
tier 比較 (個人開発 ↔ 法人)
| tier | 月料金 | req 上限 | SLA | サポート |
|---|---|---|---|---|
| Free | ¥0 | 100k/月 | なし (best-effort) | GitHub Issues |
| Pro | ¥9,800 | 1M/月 | 99.5% | メール 24h |
| Enterprise | 個別見積 | 無制限 | 99.9% + 違約金 | Slack channel · 4h Critical |
Pro / Enterprise: developers@enablerdao.com まで。 現在 Pro tier は wait-list 募集中。
data residency · 個人情報保護
Free / Pro tier:
- サーバー: Fly.io
nrt(東京) /iad(Virginia). Routing は edge-aware (日本国内 visitor は nrt routed) - 収集 する データ: end-user の IP (rate-limit用)、 product 閲覧 ログ (改善用、 cookie なし)
- 保存 期間: 90日 (rate-limit log)、 集計 統計 は 永続 匿名化
- sub-processor: Stripe (decisión), Printful (印刷), Gemini (画像生成), Cloudflare (CDN), Fly.io (host), Imgur (画像 hosting)
- GDPR / 個人情報保護法: 個人情報 = end-user の Stripe email (purchase時のみ)。 DPA 締結 は Enterprise tier から 対応
採用 例 (honest)
現在 法人 採用 例 0社。 個人 hacker による 採用 数件。 1号 enterprise 採用 を 募集中 (個別 onboarding + 価格 交渉 可能)。 詳細 developers@enablerdao.com。
observability hook (Free tier)
embed.js は window.MU.on(event, callback) で event を 流せる。 Sentry / DataDog 等の monitoring に転送 可能。
window.MU.on('error', (e) => window.Sentry && Sentry.captureException(e));
window.MU.on('product.view', (p) => analytics.track('view', {{id: p.id}}));
window.MU.on('click', (p) => gtag('event', 'mu_click', {{id: p.id}}));
event: load, error, product.view, click, checkout.redirect
ライブプレビュー
サポート
バグ報告・機能リクエスト: GitHub Issues
技術的な質問: mail@yukihamada.jp