[{"data":1,"prerenderedAt":243},["ShallowReactive",2],{"content-/cloud-accounting-api-limits":3,"all-pages-for-dir":222,"related-/cloud-accounting-api-limits":223,"og-image-/cloud-accounting-api-limits":242},{"id":4,"title":5,"body":6,"category":201,"concepts":202,"description":203,"extension":204,"meta":205,"navigation":206,"ogImage":202,"path":207,"project_name":208,"published":209,"publishedAt":210,"seo":211,"source":212,"stem":213,"tags":214,"todo":202,"unpublished":209,"updatedAt":202,"__hash__":221},"pages/2026-09/2026-09-13/cloud-accounting-api-limits.md","クラウド会計APIの限界を1つずつ測った日、最後に結論がひっくり返った",{"type":7,"value":8,"toc":186},"minimark",[9,14,18,21,24,27,31,34,42,45,49,52,55,58,62,65,68,71,75,78,81,84,87,90,93,96,100,103,110,113,117,120,123,126,129,132,136,139,142,145,148,151,155,158,161,164,167,170],[10,11,13],"h2",{"id":12},"使えないのではなく探す前に作り直そうとしていた","「使えない」のではなく、探す前に作り直そうとしていた",[15,16,17],"p",{},"キャッシュフロー計算書の教材は、ずっとExcelの仕訳帳から組み立ててきた。クラウド会計に直接仕訳を流し込めれば、帳簿の形はソフトが作ってくれる。前からそう思ってはいた。ただ、会計ソフトAのAPIは以前に見て使えなかったはずだ、という記憶が引っかかっていた。それで手を出さずにいた。",[15,19,20],{},"この日、その記憶を確かめるところから始めた。まずAPI連携の認証を取らせる。OAuthアプリの登録は0件だった。一度も取っていない。",[15,22,23],{},"取らせたら、あっさり通った。",[15,25,26],{},"「なんで使えないんでしたっけ」の答えは、使えないのではなく、既存の資産を見つける前にゼロから作り直そうとしていただけ、というものだった。テスト用の法人が2つとも実在することも、同じ流れで確認できた。前提が記憶のまま止まっていた期間のほうが長い。",[10,28,30],{"id":29},"一括削除のapiは存在しない","一括削除のAPIは存在しない",[15,32,33],{},"最初に知りたかったのは、仕訳の一括削除だった。教材用のテストデータは何度も入れ直す。消し方が決まらないと、そもそも投入を始められない。",[15,35,36,37,41],{},"一括削除のエンドポイントは無かった。",[38,39,40],"code",{},"DELETE /api/v3/journals/{id}"," の1件ずつだけで、しかも3リクエスト/秒の制限がつく。一括削除は画面側の帳簿管理にしかない。",[15,43,44],{},"このときは、入れるのが速ければ消すのは多少遅くてもいい、と考えていた。後で逆だったと分かる。",[10,46,48],{"id":47},"無料プランでもapiは全部通った","無料プランでもAPIは全部通った",[15,50,51],{},"次に疑ったのは料金プランだった。検証用の法人は仕訳のCSV出力ができない。有料プランに入らないと使えない機能らしい。だとすればAPIも塞がれているのではないか。",[15,53,54],{},"実測すると、そうではなかった。契約履歴のない無料の法人で、読み取りも登録も削除も通る。設立出資の仕訳を1本登録すると、件数が1になった。直後にDELETEすると204が返り、仕訳検索は0件に戻る。テスト法人に痕跡は残らない。",[15,56,57],{},"CSVエクスポートの制限とAPIの可否は連動していない。入口の管理はずいぶんザルなんだな、と思った。",[10,59,61],{"id":60},"量にはゲートがあった50件でぴたりと止まる","量にはゲートがあった。50件でぴたりと止まる",[15,63,64],{},"入口がザルなら、量のほうはどうなのか。300件を一気に流させようとしたら、今度はこちら側の安全機構に止められた。許可を出して流させる。",[15,66,67],{},"止まった。無料プランの法人は、仕訳50件でぴたりと打ち切られる。ザルなのは入口だけで、量にはちゃんとゲートがあった。",[15,69,70],{},"しかもこの50件は、1会計年度につきの上限だった。事業者を増やさなくても、同じ法人で次年度繰越をすれば年度ごとに50件ずつ積める。テスト用に事業者を量産する前に、もっと軽い手が見つかった形になる。",[10,72,74],{"id":73},"_171件目で落ちたのはプランではなく接続だった","171件目で落ちたのは、プランではなく接続だった",[15,76,77],{},"1ヶ月の無料トライアルを開始した。50件の壁は消えて、投入は素通しで進むようになった。そのまま300件を流させる。",[15,79,80],{},"171件目でネットワークがタイムアウトして落ちた。プランの制限ではなく接続断で、170件は正常に登録されている。この時点で合計221件（50 + 170 + 1）が入っていた。",[10,82,83],{"id":83},"速く投げても速くならない",[15,85,86],{},"1秒1件のペースが遅いのではないかと思い、レート制限どおり3リクエスト/秒でまとめて投げ直すことにした。非常識なスピードで殴るつもりはないが、制限の範囲で詰めるぶんには問題ないはずだ。",[15,88,89],{},"401件、全部入った。失敗0、リトライ0。",[15,91,92],{},"予想外だったのはここからで、ボトルネックはこちらの投げる間隔ではなく、サーバー側の応答時間だった。詰めて投げると1件あたりの遅延がそのぶん伸び、最後は接続タイムアウトまで届く。トータルの所要時間はほとんど変わらない。",[15,94,95],{},"だったら1秒1件のままでいい。この結論はキャッシュフロー教材を作るときに効いてくるので、メモとして2箇所に残しておいた。",[10,97,99],{"id":98},"次年度繰越のボタンは押さなくてよかった","次年度繰越のボタンは、押さなくてよかった",[15,101,102],{},"期首残高をつなぐには次年度繰越が要る。公開APIの全17エンドポイントを確認させたが、繰越はどこにもなかった。画面のボタンを押すしかない、という結論になった。",[15,104,105,106,109],{},"ただ、公開APIに無いだけで内部APIにはあるはずだ、という当てはあった。以前に別プロジェクトで内部API仕様のドキュメントを書かせてある。見に行かせたら、ちゃんと残っていた。",[38,107,108],{},"POST /term/close"," で繰越は押せる。画面をポチポチする必要はない。",[15,111,112],{},"その場で、繰越の仕様をそのドキュメントに追記させた。",[10,114,116],{"id":115},"_403仕訳のうち当年度に入るのは2件だけだった","403仕訳のうち、当年度に入るのは2件だけだった",[15,118,119],{},"準備が整ったので、Excelの「出力_インポート_仕訳」シートから403仕訳を投入させた。",[15,121,122],{},"入らなかった。403仕訳のうち、今の会計年度に収まるのは2件だけだったからだ。残りは過去の年度に属している。会計年度そのものを遡って作らないと、投入の前提が成立しない。",[15,124,125],{},"画面側なら作れる。事業者と年度の管理画面で、対象事業者の行にある「前年度 / 切替」を押すたびに1期ずつ遡って作られる。2022年度まで作らせたところで仕組みが読めたので、残りは自分で押して2021年度まで作った。画面を触ったほうが速い場面は、まだ普通にある。",[15,127,128],{},"勘定科目と補助科目は、足りないぶんをAPIで作らせた。そこから403仕訳を全件投入。走り出した直後に件数を見ると、全然入っていないように見えた。確認させたら、20秒で9件増えていた。目視で遅いと感じるだけで、実際には進んでいた。",[15,130,131],{},"最終的に403件すべてが失敗0で入り、繰越を4回かけて、期首残高が5年度きれいに繋がった。",[10,133,135],{"id":134},"_36秒と22分","36秒と22分",[15,137,138],{},"ここで、朝に置いた前提がひっくり返った。",[15,140,141],{},"APIが遅い。この速度で入れるくらいなら、CSVで流し込んだほうが早いのではないか。そう言ってから測らせた。",[15,143,144],{},"内部API経由の一括削除は36秒だった。1件ずつのAPI削除は22分かかる。約37倍の差がついた。しかも内部APIの一括削除は、画面と同じタグでの抽出フィルターが使える。テストデータにタグを付けて投入しておけば、そのタグのぶんだけをまとめて消せる。",[15,146,147],{},"CSVインポートのほうも内部APIから叩ける実装が既にあり、ページ遷移なしのfetch-chain方式まで入っていた。つまり年度をまたいでループで回せる。ドキュメントが実装に追いついていなかったので、そちらも更新させた。",[15,149,150],{},"朝に「一括削除のAPIは無い」と分かった時点で、消すのは多少遅くてもいいと片付けていた。実際は、入れるのも消すのも公開APIが一番遅い、というのが答えだった。",[10,152,154],{"id":153},"税抜経理でも入力は税込のままでよかった","税抜経理でも、入力は税込のままでよかった",[15,156,157],{},"最後に、教材の経理方式を決めるために一点だけ確かめた。",[15,159,160],{},"税抜経理にすると仕訳の投入が面倒になった記憶があった。実務の標準は税抜だが、手間が増えるなら税込で作ってもいい。",[15,162,163],{},"確かめると、記憶のほうが古かった。会計ソフトAは税抜経理でも入力は税込で、内税として自動で分離してくれる。仕訳投入の手間は税込経理と変わらない。1円も違わないことまで確認したので、投入の手間を理由に税込を選ぶ必要はなくなった。",[15,165,166],{},"教材の見た目としては、税込330万のように0が揃っているほうが読みやすい。税抜の内税のまま進めることにした。ついでに、税区分を「対象外」にして入れ直すと消費税の欄が完全に消えることも確認できた。税込経理、税抜の内税、税抜の外税で仕訳とAPIパラメータがどう変わるかは、別途1本のコンテンツにする。",[10,168,169],{"id":169},"今日の学び",[171,172,173,177,180,183],"ul",{},[174,175,176],"li",{},"「使えない」の中身は、たいてい「まだ探していない」だった。認証の登録が0件のまま、記憶で可否を判断していた",[174,178,179],{},"入口の制限と量の制限は別物で、どちらも実測しないと分からない。無料プランでAPIが全部通ることと、50件で止まることは両立する",[174,181,182],{},"レート制限に合わせて速く投げても、相手の応答が遅ければ全体は速くならない",[174,184,185],{},"公開APIに無い操作でも、内部APIなら通ることがある。新しく調べる前に、手元のドキュメントを先に見る",{"title":187,"searchDepth":188,"depth":188,"links":189},"",2,[190,191,192,193,194,195,196,197,198,199,200],{"id":12,"depth":188,"text":13},{"id":29,"depth":188,"text":30},{"id":47,"depth":188,"text":48},{"id":60,"depth":188,"text":61},{"id":73,"depth":188,"text":74},{"id":83,"depth":188,"text":83},{"id":98,"depth":188,"text":99},{"id":115,"depth":188,"text":116},{"id":134,"depth":188,"text":135},{"id":153,"depth":188,"text":154},{"id":169,"depth":188,"text":169},"dev",null,"会計ソフトAのAPI認証をようやく取り、一括削除の不在、無料プランの50件上限、レート制限の正体を実測した。403仕訳を5会計年度に投入して期首残高をつないだあと、内部APIの36秒が結論をひっくり返した記録。","md",{},true,"/cloud-accounting-api-limits","eurekapu-nuxt4",false,"2026-09-13T00:00:00.000Z",{"title":5,"description":203},"make-diary","2026-09/2026-09-13/cloud-accounting-api-limits",[215,216,217,218,219,220],"クラウド会計","API","OAuth","仕訳データ","レート制限","開発日記","uf-yHz8sN-_MqqM_5qo0DhWSz9IwkeSxOjhN-ThKkPc",[],[224,228,232,236,239],{"title":225,"path":226,"publishedAt":227},"CF計算書教材の論点205（株主資本）を会計ソフトAで突合し、帳票3種を1つのExcelにまとめた","/cf-lifecycle-205-journal-excel-export","2026-09-15T00:00:00.000Z",{"title":229,"path":230,"publishedAt":231},"CF教材の消費税対応をP0からP4-2まで進めた日。仕訳の削除と投入は内部APIが速い","/cf-consumption-tax-phased-implementation","2026-09-14T00:00:00.000Z",{"title":233,"path":234,"publishedAt":235},"クラウド会計公式API・OAuth認証の試行錯誤ログ - APIキーからOAuthアプリ登録まで","/mf-api-oauth-authentication-journey","2026-03-26T00:00:00.000Z",{"title":237,"path":238,"publishedAt":227},"クラウド会計の仕訳画面で、受取利息の源泉徴収税を自動で分ける機能をChrome拡張に持たせた","/accounting-extension-withholding-tax-on-interest",{"title":240,"path":241,"publishedAt":231},"株主資本等変動計算書の変動事由を仕訳の形から自動で決めるChrome拡張を作った","/equity-statement-from-journal-shape","https://log.eurekapu.com/og/blog/cloud-accounting-api-limits.png?v=2026-09-13T00%3A00%3A00.000Z&title=%E3%82%AF%E3%83%A9%E3%82%A6%E3%83%89%E4%BC%9A%E8%A8%88API%E3%81%AE%E9%99%90%E7%95%8C%E3%82%921%E3%81%A4%E3%81%9A%E3%81%A4%E6%B8%AC%E3%81%A3%E3%81%9F%E6%97%A5%E3%80%81%E6%9C%80%E5%BE%8C%E3%81%AB%E7%B5%90%E8%AB%96%E3%81%8C%E3%81%B2%E3%81%A3%E3%81%8F%E3%82%8A%E8%BF%94%E3%81%A3%E3%81%9F&author=Kei%20Komatsu&sig=ebda4a103ee828f6",1789529464591]