---
title: ファイルとアップロード | RunAPI
description: 永続的なファイルの作成、一覧表示、ダウンロード、削除、またはマルチパートアップロードパーツからファイルを組み立てます。
url: https://runapi.ai/ja/docs/resources/files.md
canonical: https://runapi.ai/ja/docs/resources/files
locale: ja
---

> HTML 版: https://runapi.ai/ja/docs/resources/files
> エージェント向けサイトインデックス: https://runapi.ai/llms.txt

# ファイルとアップロード

Files APIは不変のアカウントスコープ`user_data`、`batch`、および`batch_output` Fileを保存し、ストレージURLの代わりに安定したFile IDを返します。再利用可能なFileリソースを受け付けるAPIではFile IDを使用し、アプリケーションが正確に保存されたバイト列を必要とする場合はコンテンツエンドポイントを使用してください。

## アップロードフローを選択する

* `POST /v1/files` を使用して、1つのマルチパートリクエストからFileを作成できます。完成した `user_data` Fileには最大 `52,428,800` バイトを含めることができます。
* `POST /v1/files` に `purpose=batch` を指定して、最大 `95,000,000` バイトのバッチ直接入力に使用できます。
* Uploads APIを使用して、最終的なFileを構成する前にPartを送信してください。各Partには最大 `67,108,864` バイトを含めることができます。完成した `user_data` Fileは `52,428,800` バイト、完成した `batch` Fileは `209,715,200` バイトに制限されます。未完了のUploadは1時間後に期限切れになります。
* アクティブなFileと進行中の予約は、アカウントのストレージ上限 `5,368,709,120` バイトを共有します。

`POST /api/v1/files` は一時的なアップロードフローで、一時URLを返します。SDK の `files.create` および CLI の `runapi files create` は引き続きそのフローを使用します。永続的なFileオブジェクトが必要な場合は、`files.createFile` または `files.create_file`、あるいは CLI の `runapi files create-file` を使用してください。

## リクエストを認証する

ファイルとアップロードは標準のRunAPI APIキーを使用します。Bearerトークンとして送信してください：

```shell
export RUNAPI_API_KEY="runapi_..."
```

すべてのFile、Upload、Part、およびコンテンツリクエストは認証済みアカウントにスコープされます。別のアカウントが所有するIDは、そのリソースが存在するかどうかを明かさずに`404`を返します。

## 互換クライアントでファイルを作成する

OpenAI 互換クライアントの向き先を RunAPI の `/v1` ベース URL に設定してください。RunAPI 固有のリクエストフィールドは不要です:

```python
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["RUNAPI_API_KEY"],
    base_url="https://runapi.ai/v1",
)

with open("knowledge.pdf", "rb") as source:
    file = client.files.create(file=source, purpose="user_data")

metadata = client.files.retrieve(file.id)
client.files.content(file.id).write_to_file("knowledge-copy.pdf")
client.files.delete(file.id)
```

返されたFileにはストレージ識別子、バックエンド、またはベアラーURLが含まれることはありません。

## API リファレンス

* [Persistent Files API](https://runapi.ai/ja/docs/api/protocol/files.md)は、FileオブジェクトならびにCreate・List・Retrieve・Content・Deleteの各操作について説明しています。
* [Uploads API](https://runapi.ai/ja/docs/api/protocol/uploads.md)は、UploadオブジェクトならびにCreate・Add-part・Complete・Cancelの各操作について説明しています。
* [Batches API](https://runapi.ai/ja/docs/api/protocol/batches.md)は、Moderation Batchの作成・ステータス確認・一覧取得・キャンセルについて説明しています。

## バッチでモデレーションを実行する

1行に1件のモデレーションリクエストを含むJSONL入力ファイルを作成します。各行は互換バッチ形式（`custom_id`、`method`、`url`を`/v1/moderations`に設定、モデレーションモデルと入力を含む`body`）を使用します。`purpose=batch`ファイルには最大50,000件のリクエストを含めることができます。バッチ機能は現在、`24h`完了ウィンドウで`/v1/moderations`エンドポイントを受け付けます。

```shell
INPUT_FILE_ID=$(curl -sS https://runapi.ai/v1/files \
  -H "Authorization: Bearer $RUNAPI_API_KEY" \
  -F purpose=batch \
  -F file=@moderation.jsonl | jq -r .id)

BATCH_ID=$(curl -sS https://runapi.ai/v1/batches \
  -H "Authorization: Bearer $RUNAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d "$(jq -n --arg file "$INPUT_FILE_ID" '{input_file_id:$file,endpoint:"/v1/moderations",completion_window:"24h"}')" \
  | jq -r .id)

curl -sS "https://runapi.ai/v1/batches/$BATCH_ID" \
  -H "Authorization: Bearer $RUNAPI_API_KEY"
```

作業を一覧表示するには `GET /v1/batches` を使用し、ステータスが終了状態になるまで `GET /v1/batches/{batch_id}` を繰り返してください。または、まだ実行中の場合は `POST
/v1/batches/{batch_id}/cancel` を呼び出してください。完了した出力とエラーのJSONLは `batch_output` Filesとして公開されます。メタデータは `GET /v1/files/{file_id}` で、実際のバイト列は `GET
/v1/files/{file_id}/content` で取得してください。

## マルチパートアップロードのライフサイクル

最終バイト数、ファイル名、MIMEタイプ、および`purpose=user_data`でアップロードを作成します。1つ以上のパーツを追加し、それらのIDを構成順序で`complete`に渡します。完了すると、完成したファイルを含むアップロードが返されます。

```shell
UPLOAD_ID=$(curl -sS https://runapi.ai/v1/uploads \
  -H "Authorization: Bearer $RUNAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"bytes":1048576,"filename":"archive.bin","mime_type":"application/octet-stream","purpose":"user_data"}' \
  | jq -r .id)

PART_ID=$(curl -sS "https://runapi.ai/v1/uploads/$UPLOAD_ID/parts" \
  -H "Authorization: Bearer $RUNAPI_API_KEY" \
  -F data=@archive.part-01 | jq -r .id)

curl -sS "https://runapi.ai/v1/uploads/$UPLOAD_ID/complete" \
  -H "Authorization: Bearer $RUNAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d "{\"part_ids\":[\"$PART_ID\"]}"
```

`POST /v1/uploads/{upload_id}/cancel`で未完了のアップロードをキャンセルします。同じ完了インテントまたはキャンセルを繰り返すことは安全です。別のターミナル結果がすでに確定している場合、競合する完了、キャンセル、または期限切れは`409
upload_state_conflict`を返します。

## CLIおよびSDKリソース

CLIはライフサイクル全体を公開します：

```shell
runapi files create-file knowledge.pdf
runapi files list --order desc
runapi files retrieve file_123
runapi files content file_123 --output knowledge-copy.pdf
runapi files delete file_123

runapi uploads create --bytes 1048576 --filename archive.bin --mime-type application/octet-stream
runapi uploads add-part upload_123 archive.part-01
runapi uploads complete upload_123 --part-id part_123
runapi uploads cancel upload_123
```

すべてのProvider Clientは`files`と`uploads`を公開しています。JavaScriptとPHPは`createFile` / `deleteFile` / `addPart`を使用し、PythonとRubyは`create_file` / `delete_file` / `add_part`を使用し、Goは`CreateFile` / `DeleteFile` / `AddPart`を使用し、Javaは`createFile` / `deleteFile` / `addPart`を使用します。list、retrieve、content、create、complete、cancelは各言語の通常の命名規則に従います。パッケージのインストールについては[SDKs](https://runapi.ai/ja/docs/resources/sdks.md)を参照してください。

## ライフサイクルの動作

ファイルのコンテンツは不変です。ファイルを削除すると、アクティブなリストから直ちに削除され、ストレージのクリーンアップがスケジュールされます。アップロードの完了はパーツを指定された順序でのみ構成し、成功した完了は1つのファイルを作成します。不確かな完了レスポンスを再試行する際は、元のパーツIDの順序を維持してください。

---

## RunAPI のその他の情報

- [ホーム](https://runapi.ai/ja/.md)
- [モデルカタログ](https://runapi.ai/ja/models.md)
- [料金](https://runapi.ai/ja/pricing.md)
- [プロバイダー](https://runapi.ai/ja/models)
- [ドキュメント](https://runapi.ai/ja/docs/guides)
- [SDK](https://runapi.ai/ja/sdk.md)
- [CLI](https://runapi.ai/ja/cli.md)
- [MCP Server](https://runapi.ai/ja/mcp.md)
- [Claude Code と Cursor](https://runapi.ai/ja/claude-code-vs-cursor.md)
- [Cursor API セットアップ](https://runapi.ai/ja/cursor-api-setup.md)
- [RunAPI と OpenRouter の比較](https://runapi.ai/ja/openrouter-alternative.md)
- [エンタープライズ](https://runapi.ai/ja/contact.md)
- [お問い合わせ](https://runapi.ai/ja/contact.md)
- [利用規約](https://runapi.ai/ja/terms.md)
- [プライバシー](https://runapi.ai/ja/privacy.md)
- [エージェント向けサイトインデックス](https://runapi.ai/llms.txt)

お問い合わせ: contact@runapi.ai

## 構造化データ

```json
[
  {
    "@context": "https://schema.org",
    "inLanguage": "ja",
    "@type": "WebSite",
    "name": "RunAPI",
    "url": "https://runapi.ai/ja",
    "potentialAction": {
      "@type": "SearchAction",
      "target": {
        "@type": "EntryPoint",
        "urlTemplate": "https://runapi.ai/ja/models?q={search_term_string}"
      },
      "query-input": "required name=search_term_string"
    }
  },
  {
    "@context": "https://schema.org",
    "inLanguage": "ja",
    "@type": "Organization",
    "name": "RunAPI",
    "url": "https://runapi.ai/ja",
    "logo": {
      "@type": "ImageObject",
      "url": "https://runapi.ai/jaicon.svg"
    },
    "sameAs": [
      "https://github.com/runapi-ai"
    ]
  },
  {
    "@context": "https://schema.org",
    "inLanguage": "ja",
    "@type": "TechArticle",
    "headline": "ファイルとアップロード",
    "description": "永続的なファイルの作成、一覧表示、ダウンロード、削除、またはマルチパートアップロードパーツからファイルを組み立てます。",
    "url": "https://runapi.ai/ja/docs/resources/files",
    "mainEntityOfPage": "https://runapi.ai/ja/docs/resources/files"
  }
]
```
