API V7 ドキュメント

サーバー側から 1 回呼び出すだけでブラウザ VM を作成し、共有リンクを受け取れます

APIキーはbrowser.lolのダッシュボードで作成できます。アカウントのAPIアクセスが必要です。

この API では、サーバー側の 1 回の呼び出しでワークスペースを作成できます。API キーで認証してワークスペースを作成すると、レスポンスで共有リンクが返されます。エンドユーザーはその共有リンクをブラウザで開くだけで、ワークスペースに自動接続されます。

認証

API キーを Bearer トークンとして Authorization ヘッダーで渡してください。API キーは、API アクセスを有効化したアカウントに紐づくセッション ID です。

Authorization: Bearer YOUR_API_KEY

重要: API キーは秘匿してください。API 呼び出しは必ずサーバーから行い、クライアント側のコードから呼び出さないでください。

POST/v8/vm/create

新しい仮想ブラウザ VM を作成し、エンドユーザーに渡せる共有リンクを返します。

リクエストボディ (JSON):

browser (必須): 使用するブラウザイメージ。

url (任意): 仮想ブラウザで開く URL。最大 10,000 文字。

language (任意): ブラウザの言語コード (例: en, de)。指定がない場合、アカウントの既定値または en.

layout (任意): キーボードレイアウトコード (例: us, de)。指定がない場合、アカウントの既定値または us.

country (任意): VPN の接続先を示す 2 文字の ISO 国コード (例: us, de, gb)。

shareLanguage (任意): 返却される共有 URL のパスに含めるロケールセグメント。利用可能な値: en, de, fr, es, it, pt, ja。既定値は en.

callbackUrl (任意): セッション終了時に開くHTTPまたはHTTPSのURLです。最大2,000文字です。省略すると/createに戻ります。

成功時のレスポンスボディ:

{
  "status": "ok",
  "vmId": "brl-v-v7-abc123...",
  "shareUrl": "https://browser.lol/en/s?LINK_ID",
  "shareUrlPath": "/en/s?LINK_ID",
  "quota": {
    "running_session_limit": 10,
    "running_sessions_used": 4,
    "running_sessions_remaining": 6,
    "cycle_session_limit": 1000,
    "cycle_sessions_used": 143,
    "cycle_sessions_remaining": 857,
    "cycle_start": "2026-03-01"
  }
}

レスポンスは、セッションが受け付けられた時点で返ります。返された vmId はステータス starting で始まり、ブラウザの準備はバックグラウンドで進みます。準備が整い次第 running に切り替わります(通常は数秒以内)。準備が完了するまで、共有リンクを開くと読み込み画面が表示されます。すべてのサーバーで準備に失敗した場合、セッションはステータス「error」で終了します。

リクエスト例:

curl -X POST https://api.browser.lol/v8/vm/create \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"browser": "chrome", "url": "https://example.com", "callbackUrl": "https://your-app.example.com/done"}'

ワークスペースへのアクセス

レスポンスに含まれる shareUrl をエンドユーザーと共有してください。ユーザーがそのリンクをブラウザで開くと、仮想ブラウザセッションに自動接続されます。追加の手順は不要です。

共有リンクは VM に紐づいています。VM が削除されると共有リンクも無効になります。

共有 URL にはビューアーページの言語を制御するロケールセグメント (en) が含まれます。サポートされているいずれかのロケールに置き換えてください: de, fr, es, it, pt, ja。リクエストボディで shareLanguage を渡せば、そのロケールが反映された URL がそのまま返ります。

GET/v8/user/api

認証済みユーザーが API を利用できるかどうかと、セッションの利用状況を返します。

成功時のレスポンスボディ:

{
  "status": "ok",
  "contact": "[email protected]",
  "feature_programmatic_access": true,
  "running_session_limit": 10,
  "running_sessions_used": 3,
  "running_sessions_remaining": 7,
  "cycle_session_limit": 1000,
  "cycle_sessions_used": 142,
  "cycle_sessions_remaining": 858,
  "cycle_start": "2026-03-01",
  "has_plan": true
}

利用枠のフィールド:

cycle_session_limit: 請求サイクル内で利用できるセッションの総数。無制限プランの場合は null

cycle_sessions_used: 現在のサイクルで利用したセッション数。

cycle_sessions_remaining: 残りセッション数 (cycle_session_limit - cycle_sessions_used)。無制限プランの場合は null

running_session_limit: 同時に実行できるセッションの最大数。

running_sessions_used: 現在実行中のセッション数。

running_sessions_remaining: 今すぐ新たに開始できるセッション数。

cycle_start: 請求サイクルの開始日 (YYYY-MM-DD)。

リクエスト例:

curl https://api.browser.lol/v8/user/api \
  -H "Authorization: Bearer YOUR_API_KEY"
GET/v8/user/quota

認証済みユーザーのセッション上限と利用状況のみを返す、軽量なエンドポイントです。API の追加メタデータは含まれません。

成功時のレスポンスボディ:

{
  "status": "ok",
  "has_plan": true,
  "running_session_limit": 10,
  "running_sessions_used": 3,
  "running_sessions_remaining": 7,
  "cycle_session_limit": 1000,
  "cycle_sessions_used": 142,
  "cycle_sessions_remaining": 858,
  "cycle_start": "2026-03-01"
}

リクエスト例:

curl https://api.browser.lol/v8/user/quota \
  -H "Authorization: Bearer YOUR_API_KEY"

無制限プランでは、cycle_session_limitcycle_sessions_remainingnull となり、上限が適用されません。

発生しうるエラー/v7/*

すべてのエラーレスポンスは同じ形式で、statusフィールドと、人が読める形式のmessage が含まれます。

アクセス拒否 (API キーが無効、API が無効化されている、またはクォータ超過):

{"status": "denied", "message": "The API key you provided is invalid..."}

セキュリティチェック失敗 (レート制限または安全でないリクエスト):

{"status": "insecure", "message": "..."}

サーバーエラー:

{"status": "error", "message": "Something went wrong..."}