よくあるご質問

BrewMyPDF に何ができて、いくらかかり、どこで止まるのかを短くまとめました。以下の上限は動いているコードから読み出しているので、サービスが実際に適用している値です。

はじめる前に

BrewMyPDF とは何ですか。
テンプレートを一度作っておき、そこへデータを送ると PDF が返ってきます。見た目はビジュアルエディタで作り、あとはご自身のコードから REST API で呼び出します — AI アシスタントに MCP 経由で呼ばせることもできます。データを変えて何度も作るドキュメント、つまり請求書・領収書・証明書・レポート・ラベルのために作られています。
無料ではどこまで使えますか。
Free プランでは、月に 50 通の PDF と 3 件の保存テンプレートをご利用いただけます。カードの登録は不要です。それ以外 — エディタ・API・MCP・バッチ — は有料プランとまったく同じように動きます。Free には 1 日 10 通の上限もあります。暴走したスクリプトが、ひと月ぶんを午後のうちに使い切ってしまわないようにするためです。
登録せずに試せますか。
残念ながらアカウントが必要です。エディタ・保存したテンプレート・API はすべてサインインの内側にあるため、匿名で試せる場所はありません。登録は無料でカードも不要ですし、Free プランでテンプレートを作って最後まで生成するには十分なので、試すのにかかるのはメールアドレスだけです。

作成とエディタ

どの用紙サイズが使えますか。
A4 794×1123 · A5 559×794 · LETTER 816×1056 · LEGAL 816×1344(幅 × 高さ、ピクセル、縦置き)です。横置きにすると 2 つが入れ替わります。サイズが 96 DPI のピクセルなのは、エディタがピクセルのキャンバスだからです — ページはどこで開いても同じ大きさなので、置いたとおりに印刷されます。
余白・ヘッダー・フッターはどこで変えますか。
右側パネルのページの節です。何を選んでいても常にそこにあります。これらの設定が 1 つの要素ではなく、すべてのページに関わるものだからです。余白・ヘッダー・フッター・用紙サイズ・向きが、すべてここに入っています。ヘッダーとフッターは全ページで繰り返され、本文はそのあいだを流れます。
表には何行まで入れられますか。
1 回のレンダリングで描ける行は、合計で 2,000 行までです。表 1 つは単体で 500 行で止まり、繰り返し表はすべてこの 2,000 を分け合います — 先に尽きたほうの上限で行が落ちます。ですから 500 行の表を 4 個まるごと使うと予算をすべて使い切り、そのあとの表は 1 行も描かれません。改ページを伴う繰り返しブロックは 100 という別の予算で、行の予算を削りません。予算を超えた行は落とされ、ジョブに切り詰めの警告が記録されます — すべて収まったと決めつけず、ジョブの警告をご確認ください。ドキュメントあたり 20,000 要素という別の上限は、ふるまいが異なります: 超えると縮めるのではなく、レンダリングがそのまま失敗します。列が非常に多い行は、2,000 行よりずっと手前でその上限に届きます。
画像に容量の上限はありますか。
テンプレートに置く画像は 320KB までです。ページの背景に使う PDF や PNG は 2MB までです。大きいファイルはレンダリング時ではなくアップロード時に拒否するので、本番ではなく編集中に気づけます。
テンプレート 1 つはどこまで大きくできますか。
保存するテンプレートは、ドキュメント JSON で 1MB までです — 置いた画像もこれに含まれます。エディタは画像を別に保存せず、base64 としてドキュメントに埋め込むからです。base64 は元のファイルより 3 分の 1 ほど大きくなるので、320KB 近い画像が 2 枚あるだけで予算のかなりの部分を占めます。含まれないのは、レンダリング時にお送りいただくデータです。足りなくなった場合は、画像を減らすか小さくするか、繰り返す内容を繰り返しセクションに移してください。
作業は自動で保存されますか。
いいえ — 保存ボタンを押すまで、何も保存されません。これは意図した設計です。保存のたびに直前の状態がバージョンとして残るため、自動保存にすると、戻る価値のあるバージョンが何百もの自動保存に埋もれてしまいます。代償は本物なので、そのつもりでお使いください: 保存していない状態でタブを閉じると、その変更は失われます。

API と MCP

認証はどうしますか。
コンソールで API キーを作り、`Authorization: Bearer <api_key>` として送ってください。キーは作成時に一度だけ表示されます — こちらはハッシュしか保存しないため、もう一度お見せすることはできません。なくされた場合は削除して、新しく作ってください。MCP も同じキーを使います。
レート制限はありますか。
あります。3 つの軸で見ます: API キーごとに 1 分あたり 120 リクエスト、アカウントごとに 300、送信元 IP ごとに 300 です。超えると HTTP 429 が返り、`retry-after` ヘッダーがどれだけ待てばよいかを伝えます。これは月間クォータとは別のものです — 429 は待てば解けますが、使い切ったクォータは待っても解けません。
リクエストはどこまで大きくできますか。
10MB までです。それを超えると、処理される前に HTTP 413 が返ります。データが本当にその大きさになる場合、たいていは分割すべきバッチか、リクエストごとに埋め込むのではなく一度アセットとしてアップロードしてテンプレートから参照すべき画像です。
1 回の呼び出しで複数の PDF を作れますか。
作れます。1 つのバッチで、別々の PDF として 50 件まで、1 つの PDF に結合する場合は 20 件までです。バッチ全体は、どれかが始まる前に残りのクォータと突き合わせて確認します — 収まらない場合は 1 件も動かないので、再試行も返金も扱いに困る「途中まで終わったバッチ」が生じることはありません。
同期と非同期は、どう使い分けますか。
同期は、ドキュメントを 1 つ作って同じリクエストでバイト列を受け取りたいときにお使いください — 会計時の領収書、予約後のチケットなどです。非同期は、ドキュメントが重いとき、バッチを送るとき、呼び出し側が待てないときです: ジョブ ID がすぐに返るので、それを確認しに行くか、終わったときに webhook を受け取ります。

お支払いと解約

上限に達すると、どうなりますか。
クォータが戻るかプランを上げるまで、新しいレンダリングをお断りします。すでに作られたものに手を加えたり隠したりはしません。断り方は、黙って空の PDF を返すのではなくエラーなので、連携しているシステムが違いを判別できます。現在の使用量は購読ページにあり、API からも取得できるので、壁にぶつかって気づくのではなく、近づいていく様子を見ていられます。
解約はどうしますか。
購読ページを開き、「サブスクリプションを管理」から決済事業者のポータルへお進みください。解約すると次回の請求が止まります。すでにお支払いいただいた期間の終わりまでは有料プランのままで、そのあと Free になります。テンプレートは残ります — Free のアカウントも、Free の上限のもとでそのまま使えます。
返金はできますか。
できます。お支払いから 15 日以内で、そのお支払い以降にサービスをご利用でない場合に限ります。「ご利用」とは、そのあとにファイルを 1 つでも生成したか、テンプレートを 1 つでも作成したことを指します — あとから削除しても、利用したことに変わりはありません。対象となる返金額は、お支払い額から決済事業者の手数料を差し引いた額で、10 営業日以内に元のお支払い方法へお戻しします。お問い合わせフォームからご連絡ください。

出力とデータ

出来上がった PDF は、いつまで保管されますか。
ダウンロードのリンクは署名付きで短命です — 既定で 10 分、長くしたい場合でも最長 24 時間です。保存されたファイル自体は 7 日の周期で削除されます。BrewMyPDF は、ドキュメントを作る場所であって保管する場所ではない、とお考えください: 残しておきたいものはダウンロードしてください。
送ったデータは保存されますか。
成功した場合、リクエストの内容はレンダリングが終わった時点で削除されます。失敗した場合は、ジョブを再実行できるように 24 時間だけ保管し、そのあと削除します。その長さで保管しているのは、以前はジョブが失敗した瞬間に削除しており、そのせいで再実行ができなかったからです — ジョブは残っているのに、入力がすでになくなっていました。
データはどこに保存されますか。
Cloudflare のネットワーク上です。Premium · Business では保存されるファイルが EU 管轄に固定されるので、生成した出力とリクエストの内容は EU に留まります。アカウントの記録は、いずれの場合もこちらの主データベースにあります。
テンプレートを誤って削除しました。戻せますか。
以前のバージョンなら戻せますが、いまのところ API からです: `GET /v1/templates/<template_id>/versions` で一覧を取り、`POST /v1/templates/<template_id>/versions/<version_id>/restore` で戻します。コンソールにバージョンの一覧はまだありません。削除したテンプレートはすぐに消えるわけではありませんが、ご自身で元に戻す手段はありません — ご連絡いただければ、こちらで確認します。アカウントの削除は別です: あちらは本当の消去で、取り消せません。
アカウントを削除すると、どうなりますか。
そのアカウントに紐づくものはすべて消えます: テンプレート・バージョン・API キー・保存されたファイル・ジョブの履歴、そしてお送りいただいたお問い合わせもです。停止ではありませんし、復旧できる期間もありませんので、残したいものは先に書き出してください。二重に請求されないよう、削除の前に購読を解約してください。

困ったときは

401 — API キーが無効、または指定されていない
キーがない、打ち間違えている、または削除されています。`Authorization: Bearer <api_key>` を送っているか、そのキーがコンソールにまだあるかをご確認ください。どれに当たるのかを意図的にお伝えしないのは、「キーは存在するが値が違う」と攻撃者に教えることになるためで、その手がかりは差し上げたくないからです。
429 — レート制限を超えた
1 分あたりの上限より速くリクエストを送っています。`retry-after` ヘッダーを読み、その時間だけお待ちください — すぐに再試行すると、止まっている時間が延びるだけです。瞬間的にではなく継続的にこれに当たる場合は、1 件ずつ繰り返すのではなく、まとめて呼び出してください。
413 — リクエストが大きすぎる
リクエスト本文が上限を超えました。よくある原因は、呼び出しのたびに画像を base64 でリクエストに貼り付けていることです。一度アセットとしてアップロードし、参照するようにしてください。次に多いのは、2 つに分けるべきバッチを 1 つで送っている場合です。
400 — テンプレートのドキュメントが無効
テンプレートの JSON が、ドキュメントのスキーマと合っていません — 最上位の形が違う、知らないノード種別がある、プロパティの型が違う、のいずれかがほとんどです。応答にはエラーコードだけが入り、どの項目かは示しません。ドキュメントのスキーマ参照と突き合わせてご確認ください。ノード種別と、それぞれに許される値がすべて載っています。

アカウントとセキュリティ

パスワードを忘れました
サインイン画面の「パスワードをお忘れですか」からお進みください。再設定のリンクをメールでお送りします。新しいパスワードを設定すると、ほかのセッションからはサインアウトされます。これは意図した動作です — 誰かがアクセスできていた場合、その再設定で終わらせるためです。
確認メールが届きません
まず迷惑メールをご確認ください。新しいドメインからの自動送信は、そこに入ることがよくあります。サインイン画面から再送を依頼できます — 有効なのは最新のリンクなので、複数届いた場合は最後のものをお使いください。それでも届かない場合はご連絡ください。送信されたかどうか、そのあと何が起きたかを、こちらで確認します。
カード情報は安全ですか。
こちらが目にすることはありません。お支払いは Stripe を通じて行われ、カードの情報は Stripe のページで入力され、Stripe が保管します。こちらが持つのは顧客の参照 ID・プラン・その対象期間だけです — 何をご利用いただけるかを知るには十分で、カードに請求できるようなものは何も含まれていません。