Beds24 API v2 で予約を漏れなく取る — 黙って欠ける3つの罠(到着日フィルタ・100件ページング・応答切れ)
Beds24 API v2 の /bookings と /properties は HTTP 200 のまま予約・部屋が欠ける。arrivalFrom は到着日フィルタ、/bookings は100件ページング、/properties は応答切れ。回避コード付き
約5.6万トークンの節約 (API料金換算で約84円分)。 要件定義・技術調査・試行錯誤ぶんのトークンがまるごと不要になります。※ 出品者申告とレビューに基づく推定値。モデル・タスク内容により変動します。
この巻物について
「Beds24 API v2 で予約を漏れなく取る — 黙って欠ける3つの罠(到着日フィルタ・100件ページング・応答切れ)」は、データ収集カテゴリのAI指示書(MDファイル)です。Beds24 API v2 の /bookings と /properties は HTTP 200 のまま予約・部屋が欠ける。arrivalFrom は到着日フィルタ、/bookings は100件ページング、/properties は応答切れ。回避コード付きこの巻物をAIに読み込ませると、ゼロから設計・調査する場合に比べて 約5.6万トークン(API料金換算で約84円)・93%のトークンを節約できます。
- カテゴリ
- データ収集
- 対応AI
- claude-code、cursor、codex-cli
- ライセンス
- 商用利用可 (再販不可)
- 価格
- 無料
- ゼロから開発時
- 約6万トークン
- この巻物使用時
- 約4,000トークン
- 節約量
- 約5.6万トークン (約84円)
- 更新日
- 2026-10-05
使い方 (AIに渡す3つの方法)
いちばん簡単なのはワンライナー。Claude Code のターミナルに貼るだけです。
claude "https://makimono-md.vercel.app/api/v1/files/beds24-api-v2-3-100/raw を読み込んで、この指示書どおりに実装して"
中身
Beds24 API v2 で予約を「漏れなく」取る — 黙って欠ける3つの罠と回避策
対象: Beds24(チャネルマネージャ / PMS)の API v2 を Node.js などから叩いて、空室・稼働・在庫の穴を集計している人。 症状: API は成功(HTTP 200)を返すのに、予約が一部欠けて「予約なしの閉室」「空室」に見える。ダブルブッキング寸前まで行った実例あり。
罠1: /bookings の arrivalFrom / arrivalTo は「到着日」で絞る
- 調べたい期間の開始日を
arrivalFromにすると、それ以前に到着して滞在中のゲストが1件も返らない。 - 在庫カレンダーの「閉」と突き合わせると、滞在中の部屋が「予約なしの閉室=開け忘れ候補」に見える。開放したらダブルブッキング。
- 回避:
arrivalFrom = 期間開始日 − 45日(最長滞在より長く)で取り、取った後に期間でフィルタする。
const LOOKBACK_DAYS = 45;
const arrivalFrom = addDays(from, -LOOKBACK_DAYS);
const bookings = await beds24Get('/bookings', { propertyId, arrivalFrom, arrivalTo: to });
// その後 b.arrival < to && b.departure > from で期間に当てる
罠2: /bookings は 100 件でページングされ、超過分は黙って欠ける
propertyIdだけで広い期間を取ると 100 件で切れ、応答のpages.nextPageExists: trueが立つだけ。エラーにはならない。- 隣接予約の有無を判定する処理で、後ろの部屋の予約が丸ごと消えた実例あり。
- 回避:
nextPageExistsが false になるまでpage=1,2,...を回す。またはroomIdで部屋ごとに取る。件数がちょうど 100 なら欠落を疑う。
async function getAllBookings(params) {
const out = [];
for (let page = 1; ; page++) {
const r = await beds24Get('/bookings', { ...params, page });
out.push(...(r.data || []));
if (!r.pages?.nextPageExists) return out;
}
}
罠3: /properties の応答は長いと途中で切れる(offset 継ぎ足し)
includeAllRooms=true&includeTexts=allで全部屋のテキストを含めると応答が約 45,000 字で切れ、後半の部屋が読めず「空」に見える。includeTexts=trueや言語コードはエラーにならず無視される。有効なのはallだけ。- 回避:
offsetを渡し、nextOffsetが null になるまで継ぎ足す。応答長が付けない時と同じなら無視されている。
検証の型(ツールを2本以上で突き合わせる)
- 稼働集計ツールと在庫の穴ツールの数字が合わなければ、まずコードより先に取得窓(arrivalFrom・page・offset・
--toの窓端)を疑う。 - 「予約なしの閉室」を報告する前に、同じ期間を Beds24 管理画面のカレンダーと突き合わせる。
- 在庫を開ける提案は、その部屋のその日に滞在中ゲストがいないことを予約 ID 付きで示してから。
期待効果
ゼロから調査すると API 仕様の読み違いで半日〜1日。この指示書を読ませれば予約取得の実装は 30 分程度で、欠落ゼロの取得コードになる。
よくある質問
+「Beds24 API v2 で予約を漏れなく取る — 黙って欠ける3つの罠(到着日フィルタ・100件ページング・応答切れ)」とは何ですか?
Beds24 API v2 の /bookings と /properties は HTTP 200 のまま予約・部屋が欠ける。arrivalFrom は到着日フィルタ、/bookings は100件ページング、/properties は応答切れ。回避コード付き
+どれくらいトークン(費用)を節約できますか?
ゼロから開発すると約6万トークンかかりますが、この巻物を使えば約4,000トークンで済みます。差し引き約5.6万トークン(API料金換算で約84円)・93%の節約です。
+どうやって使いますか?
無料です。MDファイルを Claude Code などのAIに読み込ませるだけ。ワンライナーをターミナルに貼れば実装が始まります。要件定義や技術調査を省いて実装だけにトークンを使えます。
+どのAIツールに対応していますか?
claude-code、cursor、codex-cli に対応しています。
+商用利用できますか?
ライセンスは「商用利用可 (再販不可)」です。
🤝 自分でAIを動かすのは、まだ不安…という方へ
この巻物の内容を、AIを使うプロに丸ごと任せることもできます。姉妹サービスAI代行堂なら「LINEで頼むだけで、仕事が完成」。
関連する巻物
定期スクレイピング→Googleスプレッドシート自動集計MD
競合価格・在庫・ランキングなどを毎日自動取得してスプレッドシートに蓄積するバッチを AI に作らせる指示書。robots.txt 尊重・レート制限・差分検知のベストプラクティス込み。
Androidアプリの通知をローカルPCへ取り込む(公式API非対応のチャット向け)
公式APIが無いチャットサービスの投稿を、Android通知経由で手元PCに集める指示書。着手前に『その通知が本当に発生するか』をADBの通知履歴で検証する手順、fail-closedなallowlist設計、個人名を残さない診断ログ、LLM要約の壊れ方と対策までを含む。
CI でだけ落ちるスクレイパの直し方 — WAF/bot判定を疑い、診断→自動復旧まで入れる
定期スクレイパが CI でだけ失敗しローカルでは成功する時の診断手順。失敗履歴の数え方、cookie 名で防御レイヤを特定する診断 artifact の作り方、セッション再作成リトライと部分成功の扱い、そして『IP ベースのブロックにリトライは効かないので実行場所を変える』という実測結論まで。
この巻物、誰かのトークンも救えます
𝕏 で節約レシートをシェア