# スクレイピング後にページをInteract

> プロンプトまたはコード実行で、取得したページを操作します。

import QuickstartPython from "/snippets/ja/v2/interact/quickstart/python.mdx";
import QuickstartJS from "/snippets/ja/v2/interact/quickstart/js.mdx";
import QuickstartCURL from "/snippets/ja/v2/interact/quickstart/curl.mdx";
import QuickstartCLI from "/snippets/ja/v2/interact/quickstart/cli.mdx";
import ExecNodePython from "/snippets/ja/v2/interact/execute-node/python.mdx";
import ExecNodeJS from "/snippets/ja/v2/interact/execute-node/js.mdx";
import ExecNodeCURL from "/snippets/ja/v2/interact/execute-node/curl.mdx";
import ExecNodeCLI from "/snippets/ja/v2/interact/execute-node/cli.mdx";
import ExecPythonPython from "/snippets/ja/v2/interact/execute-python/python.mdx";
import ExecPythonJS from "/snippets/ja/v2/interact/execute-python/js.mdx";
import ExecPythonCURL from "/snippets/ja/v2/interact/execute-python/curl.mdx";
import ExecPythonCLI from "/snippets/ja/v2/interact/execute-python/cli.mdx";
import ExecBashPython from "/snippets/ja/v2/interact/execute-bash/python.mdx";
import ExecBashJS from "/snippets/ja/v2/interact/execute-bash/js.mdx";
import ExecBashCURL from "/snippets/ja/v2/interact/execute-bash/curl.mdx";
import ExecBashCLI from "/snippets/ja/v2/interact/execute-bash/cli.mdx";
import PromptPython from "/snippets/ja/v2/interact/prompt/python.mdx";
import PromptJS from "/snippets/ja/v2/interact/prompt/js.mdx";
import PromptCURL from "/snippets/ja/v2/interact/prompt/curl.mdx";
import PromptCLI from "/snippets/ja/v2/interact/prompt/cli.mdx";
import PromptFormPython from "/snippets/ja/v2/interact/prompt/python-form.mdx";
import PromptFormJS from "/snippets/ja/v2/interact/prompt/js-form.mdx";
import PromptFormCURL from "/snippets/ja/v2/interact/prompt/curl-form.mdx";
import PromptFormCLI from "/snippets/ja/v2/interact/prompt/cli-form.mdx";
import PromptNavPython from "/snippets/ja/v2/interact/prompt/python-navigate.mdx";
import PromptNavJS from "/snippets/ja/v2/interact/prompt/js-navigate.mdx";
import PromptNavCURL from "/snippets/ja/v2/interact/prompt/curl-navigate.mdx";
import PromptNavCLI from "/snippets/ja/v2/interact/prompt/cli-navigate.mdx";
import PromptOutput from "/snippets/ja/v2/interact/response/prompt-output.mdx";
import ResponseOutput from "/snippets/ja/v2/interact/response/output.mdx";
import StopPython from "/snippets/ja/v2/interact/stop/python.mdx";
import StopJS from "/snippets/ja/v2/interact/stop/js.mdx";
import StopCURL from "/snippets/ja/v2/interact/stop/curl.mdx";
import StopCLI from "/snippets/ja/v2/interact/stop/cli.mdx";
import ProfilePython from "/snippets/ja/v2/interact/profile/python.mdx";
import ProfileJS from "/snippets/ja/v2/interact/profile/js.mdx";
import ProfileCURL from "/snippets/ja/v2/interact/profile/curl.mdx";
import ProfileCLI from "/snippets/ja/v2/interact/profile/cli.mdx";
import InteractFeedbackCTA from "/snippets/ja/interact-feedback-cta.mdx";

ページをスクレイピングしてクリーンなデータを取得し、その後 `/interact` を呼び出して、そのページ上でアクションを開始します: ボタンのクリック、フォームへの入力、動的コンテンツの抽出、さらに深いページへの移動が可能です。やりたいことを記述するだけでもよく、完全に制御したい場合はコードを書くこともできます。

<InteractFeedbackCTA src="docs-interact" />

<div id="choose-the-right-interaction-model">
  ## 適切な操作モデルを選択
</div>

| 必要なこと                           | 使用するもの                                | 正規ドキュメント                                                                                                                                                                                                                                                                                                 | SDK メソッド (Node)                                                      |
| ------------------------------- | ------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------- |
| 最初にスクレイピングせず、独立したブラウザセッションを開始する | Browser Sandbox / 独立した Interact セッション | [Browser Sandbox](/ja/features/browser), [Create Browser Session](/ja/api-reference/endpoint/browser-create), [Execute Browser Code](/ja/api-reference/endpoint/browser-execute), [List Browser Sessions](/ja/api-reference/endpoint/browser-list), [Delete Browser Session](/ja/api-reference/endpoint/browser-delete) | `browser()`, `browserExecute()`, `listBrowsers()`, `deleteBrowser()` |
| `scrapeId` を使ってスクレイピング結果から続行する  | スクレイピング後に Interact                    | [Execute Interact](/ja/api-reference/endpoint/scrape-execute), [Stop Interact](/ja/api-reference/endpoint/scrape-browser-delete)                                                                                                                                                                               | `interact()`, `stopInteraction()`                                    |

ワークフローが `POST /v2/scrape` で始まり、レスポンスに `data.metadata.scrapeId` が含まれる場合は、スクレイピングに紐づいた Interact を使用します。独自のライフサイクルを持つ独立したセッションが必要な場合は、Browser Sandbox を使用します。Python SDK では、snake&#95;case の同等メソッド (`browser()`, `browser_execute()`, `list_browsers()`, `delete_browser()`, `interact()`, `stop_interaction()`) を使用します。

<CardGroup cols={3}>
  <Card title="AIプロンプト" icon="wand-magic-sparkles">
    ページ上で実行したいアクションを記述します
  </Card>

  <Card title="コード実行" icon="code">
    Playwright や agent-browser を使って、安全にコード実行で操作できます
  </Card>

  <Card title="ライブビュー" icon="eye">
    埋め込み可能なストリームを通じて、ブラウザーをリアルタイムで確認したり操作したりできます
  </Card>
</CardGroup>

<div id="how-it-works">
  ## 動作の仕組み
</div>

1. `POST /v2/scrape` で URL を**スクレイピング**します。レスポンスには `data.metadata.scrapeId` に `scrapeId` が含まれます。ブラウザの状態を保持したい場合は、このリクエストで `profile` を渡します。
2. `prompt` または Playwright の `code` を指定して `POST /v2/scrape/{scrapeId}/interact` を呼び出し、**Interact**します。ここでは `profile` を渡さないでください。Interact セッションはスクレイピングジョブから `profile` を引き継ぎます。
3. 完了したら、`DELETE /v2/scrape/{scrapeId}/interact` でセッションを**停止**します。書き込み可能な `profile` では、セッションの停止時に変更が保存されます。

<div id="quick-start">
  ## クイックスタート
</div>

ページをスクレイピングし、操作し、セッションを停止します:

<CodeGroup>
  <QuickstartPython />

  <QuickstartJS />

  <QuickstartCURL />

  <QuickstartCLI />
</CodeGroup>

<ResponseOutput />

<div id="interact-via-prompting">
  ## プロンプトで操作する
</div>

ページを操作する最も簡単な方法です。やりたいことを自然言語で記述するだけで、自動的にクリック、入力、スクロール、データの抽出を行います。

<CodeGroup>
  <PromptPython />

  <PromptJS />

  <PromptCURL />

  <PromptCLI />
</CodeGroup>

レスポンスには、エージェントの回答が含まれる `output` フィールドがあります。

<PromptOutput />

<div id="keep-prompts-small-and-focused">
  ### プロンプトは小さく、焦点を絞る
</div>

プロンプトは、それぞれが**単一の明確なタスク**であるときに最も効果を発揮します。エージェントに複雑な複数ステップのワークフローを一度に実行させるのではなく、個別の `interact` 呼び出しに分けてください。各呼び出しは同じブラウザセッションを再利用するため、それまでの状態が引き継がれます。

<div id="running-code">
  ## コードの実行
</div>

より細かく制御したい場合は、ブラウザサンドボックスでコードを直接実行できます。`page` 変数 (Playwright の Page オブジェクト) は Node.js と Python で利用できます。Bash モードには [agent-browser](https://github.com/vercel-labs/agent-browser) がプリインストールされています。セッション内でスクリーンショットを撮ることもできます: Node.js では `(await page.screenshot()).toString("base64")`、Python では `await page.screenshot(path="/tmp/screenshot.png")`、Bash では `agent-browser screenshot` を使用してください。

<div id="nodejs-playwright">
  ### Node.js (Playwright)
</div>

デフォルトの言語です。Playwright のコードを直接記述できます。`page` はすでにブラウザに接続されています。

<CodeGroup>
  <ExecNodePython />

  <ExecNodeJS />

  <ExecNodeCURL />

  <ExecNodeCLI />
</CodeGroup>

<div id="python">
  ### Python
</div>

Playwright の Python API を使う場合は、`language` を `"python"` に設定します。

<CodeGroup>
  <ExecPythonPython />

  <ExecPythonJS />

  <ExecPythonCURL />

  <ExecPythonCLI />
</CodeGroup>

<div id="bash-agent-browser">
  ### Bash (agent-browser)
</div>

[agent-browser](https://github.com/vercel-labs/agent-browser) は、60 以上のコマンドがプリインストールされたサンドボックス内の CLI です。要素参照 (`@e1`, `@e2`, ...) 付きのアクセシビリティツリーを提供し、LLM による自動化に最適です。

<CodeGroup>
  <ExecBashPython />

  <ExecBashJS />

  <ExecBashCURL />

  <ExecBashCLI />
</CodeGroup>

一般的な agent-browser コマンド:

| コマンド                      | 説明                    |
| ------------------------- | --------------------- |
| `snapshot`                | 要素参照付きの完全なアクセシビリティツリー |
| `snapshot -i`             | インタラクティブな要素のみ         |
| `click @e1`               | 参照で要素をクリック            |
| `fill @e1 "text"`         | フィールドをクリアしてテキストを入力    |
| `type @e1 "text"`         | クリアせずにテキストを入力         |
| `press Enter`             | キーボードのキーを押す           |
| `scroll down 500`         | 500 ピクセル下にスクロール       |
| `get text @e1`            | テキストコンテンツを取得          |
| `get url`                 | 現在の URL を取得           |
| `wait @e1`                | 要素が表示されるまで待機          |
| `wait --load networkidle` | ネットワークがアイドル状態になるまで待機  |
| `find text "X" click`     | テキストで要素を見つけてクリック      |
| `screenshot`              | 現在のページのスクリーンショットを撮る   |
| `eval "js code"`          | ページ内で JavaScript を実行  |

<div id="live-view">
  ## ライブビュー
</div>

すべての Interact レスポンスでは、埋め込んでブラウザをリアルタイムで確認できる `liveViewUrl` が返されます。デバッグやデモ、ブラウザ駆動の UI の構築に便利です。

```json Response
{
  "success": true,
  "cdpUrl": "wss://browser.firecrawl.dev/...",
  "liveViewUrl": "https://liveview.firecrawl.dev/...",
  "interactiveLiveViewUrl": "https://liveview.firecrawl.dev/...",
  "stdout": "",
  "result": "...",
  "exitCode": 0
}
```

```html
<iframe src="LIVE_VIEW_URL" width="100%" height="600" />
```

<div id="interactive-live-view">
  ### インタラクティブ ライブビュー
</div>

レスポンスには `interactiveLiveViewUrl` も含まれます。閲覧専用の標準ライブビューとは異なり、インタラクティブ ライブビューでは、埋め込みストリームを通じてユーザーがブラウザセッションを直接クリック、入力、操作できます。これは、ログインフローや、エンドユーザーがブラウザを操作する必要があるガイド付きワークフローなど、ユーザー向けのブラウザUIを構築する場合に役立ちます。

```html
<iframe src="INTERACTIVE_LIVE_VIEW_URL" width="100%" height="600" />
```

<div id="cdp-url">
  ### CDP URL
</div>

すべてのInteractレスポンスでは、`cdpUrl` も返されます。これは、ブラウザセッション用の生の Chrome DevTools Protocol (CDP) WebSocket URL です。これを使うと、Playwright、Puppeteer、または任意のCDPクライアントからライブセッションに直接接続し、自分のコードでブラウザを操作できます。

```js
import { chromium } from "playwright";

const browser = await chromium.connectOverCDP(cdpUrl);
const context = browser.contexts()[0];
const page = context.pages()[0];
```

<div id="session-lifecycle">
  ## セッションのライフサイクル
</div>

<div id="creation">
  ### 作成
</div>

最初の `POST /v2/scrape/{scrapeId}/interact` 呼び出しで、スクレイピングセッションが継続され、インタラクションが開始されます。

<div id="reuse">
  ### 再利用
</div>

同じ`scrapeId`に対する後続のinteract呼び出しでは、既存のセッションが再利用されます。browserは開いたままで、呼び出し間でも状態が維持されるため、複数のインタラクションを連続して実行できます。

<CodeGroup>
  ```python Python
  # 最初の呼び出し: タブをクリック
  app.interact(scrape_id, code="await page.click('#tab-2')")

  # 2回目の呼び出し: タブは引き続き選択されたままで、その内容を抽出
  result = app.interact(scrape_id, code="await page.$eval('#tab-2-content', el => el.textContent)")
  print(result.result)
  ```

  ```js Node
  // 最初の呼び出し: タブをクリック
  await app.interact(scrapeId, { code: "await page.click('#tab-2')" });

  // 2回目の呼び出し: タブは引き続き選択されたままで、その内容を抽出
  const result = await app.interact(scrapeId, {
    code: "await page.$eval('#tab-2-content', el => el.textContent)",
  });
  console.log(result.result);
  ```

  ```bash CLI
  # 最初の呼び出し: タブをクリック
  firecrawl interact -c "await page.click('#tab-2')"

  # 2回目の呼び出し: タブは引き続き選択されたままで、その内容を抽出
  firecrawl interact -c "await page.\$eval('#tab-2-content', el => el.textContent)"
  ```
</CodeGroup>

<div id="cleanup">
  ### クリーンアップ
</div>

使用が終わったら、明示的にセッションを停止してください:

<CodeGroup>
  <StopPython />

  <StopJS />

  <StopCURL />

  <StopCLI />
</CodeGroup>

セッションは、TTL (default: 10分) または非アクティブ タイムアウト (default: 5分) に基づいて自動的に期限切れになります。

<Warning>
  不要な課金を避けるため、使用後は必ずセッションを停止してください。Credits は秒単位で按分されます。最低料金はブラウザ1分です。`prompt` を使用するセッションはブラウザ1分あたり7 Credits、prompt を使用しないセッションは2 Credits が課金されます。詳細は[課金](/ja/billing#credit-costs-per-endpoint)を参照してください。
</Warning>

<div id="persistent-profiles-with-scrape-interact">
  ## Scrape + Interact での永続プロファイル
</div>

デフォルトでは、各スクレイピング + interact セッションはクリーンなブラウザで開始されます。`profile` を使うと、スクレイピング間でブラウザの状態 (cookies、localStorage、sessions) を保存して再利用できます。これは、ログイン状態を維持したり、設定を保持したりするのに便利です。

最初の `POST /v2/scrape` リクエストに `profile` オブジェクトを渡します。`POST /v2/scrape/{scrapeId}/interact` には `profile` を渡さないでください。interact セッションは、scrape ジョブのブラウザセッションとプロファイル設定を再利用します。書き込み可能なプロファイルの変更を保存できるように、`DELETE /v2/scrape/{scrapeId}/interact` で interact セッションを停止してください。

```bash cURL
curl -X POST "https://api.firecrawl.dev/v2/scrape" \
  -H "Authorization: Bearer fc-YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com",
    "formats": ["markdown"],
    "profile": {
      "name": "my-profile",
      "saveChanges": true
    }
  }'

curl -X POST "https://api.firecrawl.dev/v2/scrape/SCRAPE_ID/interact" \
  -H "Authorization: Bearer fc-YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "Click the login button"
  }'

curl -X DELETE "https://api.firecrawl.dev/v2/scrape/SCRAPE_ID/interact" \
  -H "Authorization: Bearer fc-YOUR_API_KEY"
```

プロファイルのライフサイクルは次のとおりです。

1. `profile.name` と `saveChanges: true` を指定してスクレイピングを作成します。
2. 返された `scrapeId` に対して、プロンプトまたはコードで操作を実行します。
3. セッションを停止して、cookies、localStorage、その他のブラウザの状態を保存します。
4. 後続のスクレイピングを同じ `profile.name` で開始します。変更を書き戻さずに既存の状態だけを読み取りたい場合は、`saveChanges: false` を使用します。

<CodeGroup>
  <ProfilePython />

  <ProfileJS />

  <ProfileCURL />

  <ProfileCLI />
</CodeGroup>

| パラメータ         | デフォルト  | 説明                                                                                                                        |
| ------------- | ------ | ------------------------------------------------------------------------------------------------------------------------- |
| `name`        | None   | 永続プロファイルの名前です。同じ名前のスクレイピングはブラウザの状態を共有します。                                                                                 |
| `saveChanges` | `true` | `true` の場合、interact セッションの停止時にブラウザの状態がプロファイルに保存されます。既存のデータを読み込み、変更を書き戻さないようにするには、`false` に設定します。これは、複数の同時リーダーが必要な場合に便利です。 |

<Note>
  一度にプロファイルへ保存できるセッションは 1 つだけです。別のセッションがすでに保存中の場合は、`409` エラーが返されます。`saveChanges: false` で同じプロファイルを開くことはできますし、後でもう一度試すこともできます。
</Note>

ブラウザの状態は、interact セッションが停止したときに保存されます。プロファイルを再利用できるよう、完了したら必ずセッションを停止してください。

<div id="validate-persistence">
  ### 永続化の検証
</div>

実際のログインフローに頼らずに永続化をテストするには、1つ目のセッションで `localStorage` に値を書き込み、そのセッションを停止したあと、同じプロファイルを使う2つ目のセッションでその値を読み取ります。

```bash cURL
# セッション1: ブラウザの状態を書き込んで保存する
RESPONSE=$(curl -s -X POST "https://api.firecrawl.dev/v2/scrape" \
  -H "Authorization: Bearer $FIRECRAWL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com",
    "formats": ["markdown"],
    "profile": { "name": "profile-validation", "saveChanges": true }
  }')

SCRAPE_ID=$(echo "$RESPONSE" | jq -r ".data.metadata.scrapeId")

curl -s -X POST "https://api.firecrawl.dev/v2/scrape/$SCRAPE_ID/interact" \
  -H "Authorization: Bearer $FIRECRAWL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "code": "await page.evaluate(() => { localStorage.setItem(\"firecrawlProfileCheck\", \"saved\"); document.cookie = \"firecrawl_profile_check=saved; path=/; max-age=3600\"; return localStorage.getItem(\"firecrawlProfileCheck\"); });"
  }'

curl -s -X DELETE "https://api.firecrawl.dev/v2/scrape/$SCRAPE_ID/interact" \
  -H "Authorization: Bearer $FIRECRAWL_API_KEY"

# セッション2: 同じプロファイルを読み取り専用モードで読み込み、値を検証する
RESPONSE=$(curl -s -X POST "https://api.firecrawl.dev/v2/scrape" \
  -H "Authorization: Bearer $FIRECRAWL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com",
    "formats": ["markdown"],
    "profile": { "name": "profile-validation", "saveChanges": false }
  }')

SCRAPE_ID=$(echo "$RESPONSE" | jq -r ".data.metadata.scrapeId")

curl -s -X POST "https://api.firecrawl.dev/v2/scrape/$SCRAPE_ID/interact" \
  -H "Authorization: Bearer $FIRECRAWL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "code": "await page.evaluate(() => ({ localStorage: localStorage.getItem(\"firecrawlProfileCheck\"), cookie: document.cookie.includes(\"firecrawl_profile_check=saved\") }));"
  }'

curl -s -X DELETE "https://api.firecrawl.dev/v2/scrape/$SCRAPE_ID/interact" \
  -H "Authorization: Bearer $FIRECRAWL_API_KEY"
```

2回目のInteractレスポンスでは、`localStorage` が `"saved"`、`cookie` が `true` と表示されるはずです。

<Info>
  API 経由で作成したプロファイルは、まだ Dashboard &gt; Interact &gt; Profiles に表示されない場合があります。現在、Dashboard では API で作成された永続プロファイルの完全な一覧は確認できません。
</Info>

<div id="when-to-use-what">
  ## 使い分けの目安
</div>

| ユースケース              | 推奨                         | 理由                    |
| ------------------- | -------------------------- | --------------------- |
| Web search          | [Search](/ja/features/search) | 専用の検索エンドポイント          |
| URL から整形されたコンテンツを取得 | [Scrape](/ja/features/scrape) | API 呼び出し 1 回で、セッション不要 |
| ページ上でクリック、入力、移動を行う  | **Interact** (prompt)      | 英語で指示するだけ             |
| 操作の先にあるデータを抽出する     | **Interact** (prompt)      | セレクタ不要                |
| 複雑なスクレイピングロジック      | **Interact** (code)        | Playwright を完全に制御可能   |

<Info>
  **Interact と Browser Sandbox の違い**: Interact は [Browser Sandbox](/ja/features/browser) と同じインフラ上に構築されていますが、最も一般的なパターン、つまりページをスクレイピングしてからさらに深く進む場合に、より使いやすいインターフェースを提供します。Browser Sandbox は、特定のスクレイピングに紐づかない独立したブラウザセッションが必要な場合に適しています。
</Info>

<div id="pricing">
  ## 料金
</div>

* **コードのみ** (`prompt` なし): セッション1分あたり2 credits
* **AI プロンプト あり**: セッション1分あたり7 credits
* **スクレイピング**: スクレイピング自体の請求は別途行われます (スクレイピング1回あたり1 credit に加え、format ごとのコスト) 。

<div id="api-reference">
  ## API リファレンス
</div>

* [Execute Interact](/ja/api-reference/endpoint/scrape-execute): `POST /v2/scrape/{scrapeId}/interact`
* [Stop Interact](/ja/api-reference/endpoint/scrape-browser-delete): `DELETE /v2/scrape/{scrapeId}/interact`

<div id="request-body-post">
  ### リクエスト本文 (POST)
</div>

| フィールド      | 型        | デフォルト    | 説明                                                                        |
| ---------- | -------- | -------- | ------------------------------------------------------------------------- |
| `prompt`   | `string` | なし       | AIエージェント向けの自然言語タスクです。`code` が設定されていない場合は必須です。最大10,000文字。                  |
| `code`     | `string` | なし       | 実行するコード (Node.js、Python、または Bash) 。`prompt` が設定されていない場合は必須です。最大100,000文字。 |
| `language` | `string` | `"node"` | `"node"`、`"python"`、または `"bash"`。`code` を使用する場合にのみ指定します。                  |
| `timeout`  | `number` | `30`     | タイムアウト時間 (秒)  (1～300) 。                                                   |
| `origin`   | `string` | なし       | アクティビティ追跡用の呼び出し元識別子。                                                      |

<div id="response">
  ### レスポンス
</div>

| Field                    | Description                                                                                                |
| ------------------------ | ---------------------------------------------------------------------------------------------------------- |
| `success`                | エラーなく実行が完了した場合は `true`                                                                                     |
| `cdpUrl`                 | ブラウザセッション用の生の Chrome DevTools Protocol (CDP) WebSocket URL。Playwright、Puppeteer、または任意の CDP クライアントで直接接続できます |
| `liveViewUrl`            | ブラウザセッション用の読み取り専用のライブビュー URL                                                                               |
| `interactiveLiveViewUrl` | インタラクティブ ライブビュー URL (閲覧者がブラウザを操作できます)                                                                      |
| `output`                 | プロンプトに対するエージェントの自然言語での回答。`prompt` を使用している場合にのみ含まれます。                                                       |
| `stdout`                 | コード実行時の標準出力                                                                                                |
| `result`                 | サンドボックスからの生の戻り値。`code` の場合: 最後に評価された式。`prompt` の場合: エージェントが `output` の生成に使用した生のページスナップショット。                |
| `stderr`                 | 標準エラー出力                                                                                                    |
| `exitCode`               | 終了コード (`0` = 成功)                                                                                           |
| `killed`                 | タイムアウトにより実行が終了した場合は `true`                                                                                 |

***

フィードバックやサポートが必要な場合は、[help@firecrawl.com](mailto:help@firecrawl.com) にメールするか、[Discord](https://discord.gg/firecrawl) でお問い合わせください。
