← すべての記事

FourA Digest: 2026年9月4日 - 9月11日

プランの制限到達時に該当する制限名が明示されるようになり、proxyポートはキー単位でターゲット設定を保持、インタラクティブページを含むBrowserが全プランに付帯するようになりました。

ハイライト

拒否された理由は接続先サイトですか、それともプランの上限ですか。プランによって拒否されたすべての request は、1つの header で理由を返すようになりました。Auto と Playground もその応答を解釈します。proxy ポートはキーに基づくターゲティングを保持できるようになり、インタラクティブページを含むブラウザレンダリングが Free を含むすべてのプランで利用可能になりました。

新機能

拒否元を明示するエラー応答

プランの制限により request が拒否された場合、response には該当する制限を示す X-FourA-Limit header が付与されます (plan_limit_credits、plan_limit_rate、plan_limit_browser_daily、その他4種)。body には、適用されている制限値と並んで reason にエラーコードが再掲されます。プラットフォーム共通の制限ではこの header は設定されないため、この header の存在自体が、FourA 全体の負荷ではなくアカウント固有の制限による拒否であることを示します。

import requests

r = requests.post(
    "https://api.foura.ai/api/single",
    headers={"X-API-Key": "pk_live_..."},
    json={"url": "https://example.com/data"},
)
limit = r.headers.get("X-FourA-Limit")
if limit:
    print("my plan stopped this:", limit, r.json()["error"])

アカウントのすべての制限はご利用中のプランに基づくようになり、「Usage & Limits」に今期の利用状況とともに一覧表示されます。rate limits referenceには全7種類のコードと、短時間の待機で解除されるものが記載されています。

Autoも同じコードを読み取って処理を実行します。特定のリソース(たとえば1日のブラウザ許容量)を使い果たした場合でも、ラダーの他の段は動作し続け、すでに試行されたexitがプラン起因のエラーによって除外されることはありません。クレジット、帯域幅、またはプランに含まれていないプロダクトなど、アカウント自体の上限に達した場合は、他のルートを試行することなく直ちにラダーを停止し、拒否応答を返します。これによってAutoの本来の目的が変わることはありません。最適な段をAutoに特定させ、返されたセッションを/api/singleまたは/api/browserで再実行して、そこにリクエストを集中させてください。

Playgroundではこれが可視化されます。レスポンス上部の表示には、そのホストに対して既存だったセッション、通常のリクエスト、rotating proxy、あるいは実ブラウザなど、どの手段でページが取得されたかが示されます。さらに、challengeが解決されたか、何回目の試行で成功したか、発生したコストも確認できます。プラン制限によってリクエストが停止した場合、行の先頭に「Stopped by your plan, not by the site」と表示され、該当する制限項目が示されます。

proxy port(ベータ版)

proxy portを使用すると、proxy URLに対応した任意のクライアントから、APIコールを介さずに当社のexit経由でトラフィックを送信できます。本機能はベータ版です。経由するトラフィックは現時点で課金対象外であり、稼働率の保証はなく、オプション名が変更される可能性があります。

今週のアップデートにより、選択項目が整理されました。プラン標準の当社所有exitである共有ネットワークか、プランのプレミアムトラフィックから割り当てられる住宅用IPアドレスである住宅ネットワークかを選択できます。共有ネットワークでリクエストを処理できない場合に住宅ネットワークへフォールバックする設定は個別のスイッチとなっており、初期状態ではオフです。これをデフォルトで有効にすることは、お客様の利用枠の消費を当社が勝手に決めることになってしまうためです。

ターゲティング設定は認証情報に保持されるようになりました。proxyユーザーに対して国、地域、都市、またはデバイスを保存すると、その認証情報によるすべての接続に設定が適用されます。これにより、接続文字列を最小限の認証情報と差分指定のみに短縮できます。ただし、個別接続ではユーザー名の指定が常に優先され、anyによって保存された値を上書きできます。たとえば-city-anyを指定すると、特定の都市が保存されているキーから国全体を対象としたリクエストに変更できます。

アドレスごとにブラウザプロファイルを運用する場合、必要なstickyアドレスの数を設定すると、それぞれ固有のセッション名が付与されたリストが1行ずつ生成されます。「New names」を実行すれば、ターゲット側で既存のセッションが無効化された際に新しいセットを取得できます。各行はURL形式、または多くのプロキシ管理ツールでインポート可能なhost:port:user:pass形式で出力されます。ユーザー名の構文仕様の詳細はproxy port docsを参照してください。

防御されたページへの対応(全プラン対象)

ブラウザレンダリングとインタラクティブなページへのアクセスは、Freeプランを含むすべてのプランに含まれており、違いは制限値のみです。FreeおよびDeveloperプランにも一部のプレミアム出口トラフィックが含まれているため、支払いを行う前に、防御されたページが独自のURLで正常に応答するかを確認できます。

Proxy Finderのプレミアム出口は、指定するターゲットサイトを問わず動作するようになりました。任意のターゲットに対してexitClass: premiumを送信すると、プランのプレミアムトラフィック(およびその残量)のみに基づいて判定されます。

登録情報に連動する請求

「Billing Details」に保存された会社名、VAT番号、国名は、請求書にそのまま記載され、チェックアウト時および更新時のVATの適用基準となります。支払いフォームに別の内容を入力した場合、その1回の支払いにおいて該当フィールドのみが上書きされます。

個別の契約締結に基づいてプランが設定されている場合、「Plan & Usage」に「Confirm」ボタン付きでその内容が表示されるようになりました。月払いまたは年払いを選択し、カードを登録すると、日割り計算なしで該当期間の全額が前払いされます。

「Plan & Usage」のクレジット表示の横に、帯域幅用とプレミアムトラフィック用の2つの新しいカードが追加されました。プランに含まれる枠と購入分を合わせた合計に対し、使用量がそれぞれ表示されます。該当タイプの追加チャージが購入可能な場合、そのカード上に「Buy」ボタンが表示されます。詳細は請求ガイドを参照してください。

内部構造

分あたりのrate limitは、次の1分に切り替わる直前まで、その1分間に送信されたトラフィックを正確にカウントします。ダッシュボードのテーブルはノートPCの画面に収まり、スマートフォンでは幅の広いテーブルがフレーム内で横スクロールします。ブログのテーブルも狭い画面では同様にスクロールします。また、組織ページを開いた瞬間に保留中の招待が一覧表示されるようになりました。

原因を特定できる拒否レスポンスであれば、対策を立てることが可能です。次回ジョブが停止した際、1秒待つべきか、UTCの深夜0時を待つべきか、またはプランを確認すべきかが、1つのheaderで通知されます。