Beds24 API で「全室が既定レート固定」と誤診しない読み方(連動価格フラグの罠と読み取りツール)
Beds24 の料金カレンダー API は includeLinkedPrices=true を付けないと連動先の部屋が既定レート一定で返り、値付け欠陥と誤診する。見分け方・実表示での裏取り・常にフラグ付きで読む読み取り専用ツール(純関数テスト付き)の作り方。
約2.1万トークンの節約 (API料金換算で約32円分)。 要件定義・技術調査・試行錯誤ぶんのトークンがまるごと不要になります。※ 出品者申告とレビューに基づく推定値。モデル・タスク内容により変動します。
この巻物について
「Beds24 API で「全室が既定レート固定」と誤診しない読み方(連動価格フラグの罠と読み取りツール)」は、業務自動化カテゴリのAI指示書(MDファイル)です。Beds24 の料金カレンダー API は includeLinkedPrices=true を付けないと連動先の部屋が既定レート一定で返り、値付け欠陥と誤診する。見分け方・実表示での裏取り・常にフラグ付きで読む読み取り専用ツール(純関数テスト付き)の作り方。この巻物をAIに読み込ませると、ゼロから設計・調査する場合に比べて 約2.1万トークン(API料金換算で約32円)・84%のトークンを節約できます。
- カテゴリ
- 業務自動化
- 対応AI
- claude-code、cursor、codex-cli
- ライセンス
- 商用利用可 (再販不可)
- 価格
- 無料
- ゼロから開発時
- 約2.5万トークン
- この巻物使用時
- 約4,000トークン
- 節約量
- 約2.1万トークン (約32円)
- 更新日
- 2026-09-10
使い方 (AIに渡す3つの方法)
いちばん簡単なのはワンライナー。Claude Code のターミナルに貼るだけです。
claude "https://makimono-md.vercel.app/api/v1/files/beds24-api/raw を読み込んで、この指示書どおりに実装して"
中身
Beds24 API で「7室が既定レート ¥20,000 固定」と誤診しないための読み方(連動価格の罠と固定化ツール)
この指示書が解く問題
Beds24 を PMS にして複数室の料金を「1室の価格に連動(price linking)」させている宿で、 料金カレンダー API を素直に叩くと 連動元以外の全室が同じ既定レート(例: ¥20,000)で一定 に見える。 これを「値付けが壊れている」「送信が止まっている」と誤診して調査を始める事故が起きる。 実際にはチャネル(Airbnb / Booking.com / Agoda / 直販)には連動値が正しく出ていて、見ていたのは 部屋に保存された既定レートでしかない。同じ罠は運用の中で2回踏まれた(1回目は記録していても、 2回目は「未解決の欠陥」として起票されてしまった)。
原因(API の仕様)
GET /inventory/rooms/calendar?roomId=<id>&startDate=…&endDate=…&includePrices=true は、
includeLinkedPrices=true を 付けないと連動で導出された実効価格を返さない。
返るのは各室の保存値で、連動先の部屋は既定レートが「from〜to の1本のレンジ」で返る
(日次の振れが無い・price2 だけ入っている、が見分けのサイン)。
includeLinkedPrices=true を付けると、日ごとに price1〜price16 の実効値が返る。
さらに price1..price16 は「レート1〜16」ではなく priceRules の id 1〜16 に対応し、
どの番号がどのチャネルへ出るかは 部屋ごとに違う(連動元の部屋だけ Booking.com が id=3、他は id=2、など)。
番号を決め打ちで読むと、これも誤読の元になる。
手順(AI に読ませればそのまま実装できる粒度)
1. まず1室を「フラグ有り/無し」の両方で読んで見分ける
/inventory/rooms/calendar?roomId=<連動先の部屋>&startDate=<日>&endDate=<日+4>&includePrices=true
/inventory/rooms/calendar?roomId=<同じ部屋>&startDate=<日>&endDate=<日+4>&includePrices=true&includeLinkedPrices=true
- 無しで「1本のレンジ・price2 だけ・既定レート」/有りで「日次・複数スロット」なら、罠を踏んでいる。
- 有りの値が連動元の部屋の値 × 倍率(例: Booking.com だけ ×1.2)と一致すれば、値付けは正常。
2. ゲスト側の実表示で裏を取る(API だけで結論を出さない)
- 直販ページ
booking2.php?propid=<物件>&roomid=<部屋>&checkin=<日>&numnight=2の合計額を読む (ヘッドレスブラウザで開いて本文を抽出し、スクショも自分で目視する)。 - OTA 側は同じ日付・同じ人数で1つ以上開き、既定レートが出ていないことを確認する。
- 送信窓(自動配信が書いている先の日数、例: 84日)の 外側の日付 も1窓読む。窓外は既定レートが 残りやすい領域なので、ここも連動値なら完全にシロ。
3. 読み取り専用ツールに固定化して、二度と手で単発クエリを書かない
作るもの(1ファイル+テスト1ファイル、書き込み API は一切呼ばない):
priceRulesを1回取得(/properties?id=<物件>&includeAllRooms=true&includePriceRules=true。 このフラグが無いとpriceRulesキーごと返らない)→ 部屋ごとに スロット番号 → チャネル を解く純関数slotChannels(roomType)(channels.<name>.enable === trueとbookingPage.direct === trueを集める。priceLinking.roomId / priceId / offsetMultiplierからroomX.priceY xZの文字列も残す)。- カレンダーは 常に
includeLinkedPrices=trueで取り、レンジを日ごとに展開する純関数expandCalendar(ranges)(to省略時はfromの1日。日付計算は UTC 固定)。 --compare-storedを付けた時だけフラグ無しでも取り、日ごとに「保存値」を併記。保存値が全日 既定レートで一定なら 「保存値は既定レートで一定(不活性・チャネルには出ない)」と1行出す 純関数isFlatDefault(storedByDay, 既定レート)。- 人間向け出力は「日付 / airbnb / booking / agoda / direct / [stored]」の固定列。末尾に必ず 「実効価格は includeLinkedPrices=true で取得。保存値とは別物」と1行出す。
- exit code: 0=正常 / 1=API 失敗 / 2=引数不正。429 のときだけ 5秒×回数で最大3回再試行。
- テストは純関数3つをフィクスチャで検定(ネットワークに出ない)。API 呼び出しは
main()内で 動的 import して、テストが認証情報に依存しないようにする。
4. 記録の直し方
- 起票済みの「未解決」を 「解決・欠陥ではない・再着手しない」に書き換える(消さない)。
- 罠の記録は「API 仕様の説明」だけでなく 「この道具で読む」という1コマンド まで書く。 説明だけだと次の人は自分で単発クエリを書いて同じ罠を踏む。
実装を委譲するときの注意
- 仕様はファイルで渡す(argv にバッククォートや
$(を含めない)。 - 生成物は自分で
node --testと実 API の1室スモークを回し、grep "fetch(\|writeFileSync\|method:"で 書き込み系の混入が無いことを確認してから置く。 - 「調査で分かった数値」は仕様書の冒頭コメントに残させる(例: 直販ページの実額)。次に疑った人が コードの先頭で答えに当たる。
期待できる効果
- 「既定レートで固定」の誤診をゼロにする(2回の再発 → ツール1本で読む運用に置換)。
- 監視の設計判断が速くなる: 連動元の1室だけをスナップショットしていても、全室連動なら設計どおりと
即答できる(連動ルール自体の変更だけは別途
priceRulesを見る)。
よくある質問
+「Beds24 API で「全室が既定レート固定」と誤診しない読み方(連動価格フラグの罠と読み取りツール)」とは何ですか?
Beds24 の料金カレンダー API は includeLinkedPrices=true を付けないと連動先の部屋が既定レート一定で返り、値付け欠陥と誤診する。見分け方・実表示での裏取り・常にフラグ付きで読む読み取り専用ツール(純関数テスト付き)の作り方。
+どれくらいトークン(費用)を節約できますか?
ゼロから開発すると約2.5万トークンかかりますが、この巻物を使えば約4,000トークンで済みます。差し引き約2.1万トークン(API料金換算で約32円)・84%の節約です。
+どうやって使いますか?
無料です。MDファイルを Claude Code などのAIに読み込ませるだけ。ワンライナーをターミナルに貼れば実装が始まります。要件定義や技術調査を省いて実装だけにトークンを使えます。
+どのAIツールに対応していますか?
claude-code、cursor、codex-cli に対応しています。
+商用利用できますか?
ライセンスは「商用利用可 (再販不可)」です。
🤝 自分でAIを動かすのは、まだ不安…という方へ
この巻物の内容を、AIを使うプロに丸ごと任せることもできます。姉妹サービスAI代行堂なら「LINEで頼むだけで、仕事が完成」。
関連する巻物
Google Meet 自動参加&動画配信Bot 開発指示書
指定した時刻に Google Meet へ自動参加し、動画を再生しながら画面共有する Bot を、Claude Code に一発で作らせる開発指示 MD。朝会の定例動画配信・ウェビナーの自動放送に。
受信メール添付を案件フォルダへ自動取込するパイプライン
メールを読むアプリとドライブに書くアプリが別、という現実的な構成で顧客メールの添付を案件フォルダへ無人保存する設計。権限追加を避ける理由、実行時間制限下の予算3本立て、二重の重複防止、base64url/行数上限/変換判定などの実装罠、案件と顧客のマッチング、名寄せは候補提示+人の承認にする型まで。
Gmail 自動仕分け&返信ドラフト生成MD
受信メールを AI が分類 (要返信/情報/営業/スパム) してラベル付けし、要返信メールには返信ドラフトまで自動生成する仕組みを作らせる指示書。DWD (ドメイン全体委任) 設定手順込み。
この巻物、誰かのトークンも救えます
𝕏 で節約レシートをシェア