Lovely Routerドキュメント
キーを取得
ブラウザエージェント

ファイルアップロード

ファイルを一度アップロードして実行で使えるようにすると、エージェントが各アップロード欄に適切なファイルを添付します。

フォームではよくファイルを求められます。履歴書、身分証明書のスキャン、請求書などです。ファイルは Lovely Router に一度アップロードするだけです。実行でファイルを使えるようにすると、エージェントは各アップロード欄に合ったファイルを添付します。どちらも PDF であっても、「Resume」欄にはカバーレターではなく CV を添付します。

ファイルをアップロードする#

PUT /v1/browser/files/{name} に生のバイト列を送り、ファイルの種類を Content-Type に指定します。任意の description クエリパラメータを付けると、エージェントがファイルを選びやすくなります。

curl -X PUT "https://lovelyrouter.com/v1/browser/files/Maria_Garcia_CV_2026.pdf?description=Resume%2C%20updated%202026" \
  -H "Authorization: Bearer $LOVELY_API_KEY" \
  -H "content-type: application/pdf" \
  --data-binary @Maria_Garcia_CV_2026.pdf

または、POST /v1/browser/files にマルチパートフォームを送り、ファイルを file フィールドに入れます。name(デフォルトはアップロードしたファイルの名前)と description は任意のフィールドです。

cURL
curl https://lovelyrouter.com/v1/browser/files \
  -H "Authorization: Bearer $LOVELY_API_KEY" \
  -F "file=@Maria_Garcia_CV_2026.pdf;type=application/pdf" \
  -F "description=Resume, updated 2026"

どちらも保存されたファイルを返します。

JSON
{
  "id": "file_7a3c9e1b5d2f8a4c6e0b",
  "name": "Maria_Garcia_CV_2026.pdf",
  "mime": "application/pdf",
  "bytes": 84213,
  "sha256": "5f2b8c…",
  "description": "Resume, updated 2026",
  "created_at": "2026-10-11T09:20:44.000Z",
  "last_used_at": null
}

Content-Type がない場合、ファイルは application/octet-stream として保存されます。エージェントと Web サイトが正しく認識できるよう、実際の種類を送ってください。同じ名前で再度アップロードするとファイルが置き換えられ、id はそのまま保たれます。ファイルはボールトシークレットと同様に、保存時に暗号化されます。Python と Node.js のサンプルは、最初のタスクを実行するで定義した API、H、headers を使います。

制限値
ファイルサイズ10 MB
アカウントあたりのファイル数100
名前1〜128 文字。使える文字は英字、数字、スペース、. _ - ( ) + , で、先頭は英字、数字、_ のいずれか
説明300 文字(超えた分は切り捨て)

実行でファイルを使えるようにする#

実行の開始時に files を渡します。ファイル名か ID のリスト、またはすべてのファイルを表す "*" を指定します。

cURL
curl https://lovelyrouter.com/v1/browser/runs \
  -H "Authorization: Bearer $LOVELY_API_KEY" \
  -H "content-type: application/json" \
  -d '{
    "goal": "Apply for the Backend Engineer role as Maria Garcia (maria.garcia@example.com), based in Portland, Oregon. Attach her resume. Submit the application and tell me the application ID.",
    "start_url": "https://jobs.example.com/backend-engineer/apply",
    "files": ["Maria_Garcia_CV_2026.pdf", "Maria_Garcia_Cover_Letter.pdf"],
    "max_steps": 40
  }'

エージェントがファイルを添付できるのは files を渡した実行だけで、それも指定したファイルに限られます。存在しない名前を指定すると、400 と Unknown file(s): CV.pdf. Upload with PUT /v1/browser/files/{name}. が返ります。

トレースでは、アップロードのステップの action は upload: で始まり、description に入力欄の名前が示されます。送信前に実行が承認待ちで一時停止した場合は、needs.fields にどのファイルが添付されたかが表示されます。例:Resume: file "Maria_Garcia_CV_2026.pdf"。

エージェントがファイルを選ぶ仕組み#

エージェントは各アップロード欄で、あなたのファイルとその欄が求めているものを比較します。参照するのは次の情報です。

  • 各ファイルの名前、種類、サイズ、説明
  • 入力欄のラベルと、受け付けるファイルの種類
  • あなたのゴールと、入力欄の周辺のページ内容

ファイルの種類だけでなく、書類の目的で照合します。より確実に選ばせるには:

  • わかりやすい名前を付ける。 scan_0412.pdf より Maria_Garcia_CV_2026.pdf のほうが確実です。
  • 名前だけで伝えきれない場合は説明を付ける。 「履歴書、2026 年更新」「パスポートの顔写真ページ」など。
  • 重要な場合は、どのファイルを使うかをゴールに書く。 「履歴書を添付して(カバーレターではなく)」。
  • 似たファイルが多い場合は、"*" ではなく実行に必要なファイルだけを渡す。

ファイルの一覧表示と削除#

cURL
# List your files, sorted by name
curl https://lovelyrouter.com/v1/browser/files -H "Authorization: Bearer $LOVELY_API_KEY"

# Delete by name or id
curl -X DELETE "https://lovelyrouter.com/v1/browser/files/Maria_Garcia_CV_2026.pdf" -H "Authorization: Bearer $LOVELY_API_KEY"

一覧は {"object": "list", "data": [...]} の形で返り、ファイルごとに 1 つのファイルオブジェクトが含まれます。last_used_at は、最後に実行でそのファイルが添付された日時です。削除すると {"deleted": "<name or id>"} が返り、ファイルがない場合は 404 と No such file が返ります。コンソールの シークレットとファイル でも、ファイルのアップロードと削除ができます。

エラー#

ステータスメッセージ原因
400File names are 1-128 chars: letters, digits, space . _ - ( ) + ,名前に使えない文字が含まれているか、長すぎます。
400Empty fileボディが空です。
400Send multipart/form-data with a "file" field (and optional "description", "name")マルチパートフォームに file フィールドがありません。
409file limit reached (100); delete some firstすでに 100 個のファイルがあります。既存の名前での置き換えは引き続き可能です。
413Files are limited to 10 MBファイルが 10 MB を超えています。