For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
メインナビゲーション
Theme

ファイル入力

OpenAI API でファイルを入力として渡す方法を説明します。

ファイル入力の対応範囲は、API エンドポイントによって異なります。Responses API は、以下の形式のファイルを input_file 項目として受け付けます。Chat Completions が file コンテンツパートとして受け付けるのは PDF ファイルのみです。

入力方法 Responses API Chat Completions
Base64 エンコードしたファイルデータ(file_data) 以下に示す対応ファイル形式 PDF のみ
アップロード済みファイルの ID(file_id) 以下に示す対応ファイル形式 PDF のみ
外部ファイルの URL(file_url) 以下に示す対応ファイル形式 非対応

PDF 以外のファイルを入力として渡す場合は、Responses API を使用してください。Chat Completions でファイル内のテキストを使用するには、アプリケーションでファイルを読み込み、その内容を text コンテンツパートとして送信してください。

ファイル入力の仕組み

Responses API での input_file の処理方法は、ファイル形式によって異なります。

  • PDF ファイル:gpt-4o 以降のモデルなど、画像入力に対応したモデルを使用する場合、API はテキストと各ページの画像を抽出し、両方をモデルに送信します。
  • PDF 以外の文書ファイルとテキストファイル(.docx、.pptx、.txt、コードファイルなど):API はテキストのみを抽出します。
  • スプレッドシートファイル(.xlsx、.csv、.tsv など):API は、後述のスプレッドシート専用の処理で補足情報を追加します。

用途に応じて、次のツールを使用してください。

  • 大きなファイルの内容を検索するには、ファイル検索を使用してください。ファイルを input_file として直接渡す必要はありません。
  • スプレッドシートを中心に、集計、結合、グラフ作成、独自の計算などの詳細な分析を行う場合は、ホスト型シェルを使用してください。

PDF 以外のファイルに含まれる画像とグラフの制限

PDF 以外のファイルでは、Responses API は埋め込まれた画像やグラフをモデルのコンテキストに取り込みません。

グラフや図を元の表示どおりにモデルに渡すには、まずファイルを PDF に変換し、その PDF を input_file として送信してください。

スプレッドシートに補足情報を追加する仕組み

表形式のファイル(.xlsx、.xls、.csv、.tsv、.iif など)に対して、Responses API はスプレッドシート専用の処理で補足情報を追加します。

API はシート全体をモデルに渡す代わりに、各シートの先頭から最大 1,000 行を解析し、モデルが生成した要約とヘッダーのメタデータを追加します。これにより、モデルは元のシートよりもコンパクトで構造化されたデータを扱えます。

PDF の詳細度

Responses API に PDF を入力する場合は、オプションの detail フィールドを input_file 項目で auto、low、high のいずれかに設定すると、API が各ページの画像を処理する際の詳細度を指定できます。detail を省略すると、デフォルトの auto が適用されます。GPT-5.6 以降のモデルでは auto は high に、それ以前のモデルでは low に相当します。入力トークン数を抑えるには low を、情報量の多いグラフ、小さな文字、図などの細部まで読み取るには high を使用してください。

detail の設定が影響するのは PDF のページ画像の処理のみです。PDF から抽出したテキストは設定にかかわらず入力に含まれます。Chat Completions のファイル入力は detail に対応していません。

以下は、高い詳細度を明示的に指定した Responses API の最小限のリクエストボディです。

{
  "model": "gpt-4.1",
  "input": [
    {
      "role": "user",
      "content": [
        {
          "type": "input_file",
          "filename": "document.pdf",
          "file_data": "data:application/pdf;base64,...",
          "detail": "high"
        },
        {
          "type": "input_text",
          "text": "Summarize this document."
        }
      ]
    }
  ]
}

対応ファイル形式

次の表は、Responses API が input_file 項目として受け付ける代表的なファイル形式を示しています。対応する拡張子と MIME タイプの一覧は、このページの後半に掲載しています。Chat Completions で対応している形式は .pdf(application/pdf)のみで、この制限は file_data と file_id の両方に適用されます。

カテゴリ 代表的な拡張子
PDF ファイル .pdf
テキストとコード .txt、.md、.json、.html、.xml、コードファイル
書式付き文書 .doc、.docx、.rtf、.odt
プレゼンテーション .ppt、.pptx
スプレッドシート .csv、.xls、.xlsx

ファイル URL

外部ファイルの URL を指定して、ファイルを入力として渡せます。

外部ファイルの URL を使用
curl "https://api.openai.com/v1/responses" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $OPENAI_API_KEY" \
    -d '{
        "model": "gpt-6-astra",
        "input": [
            {
                "role": "user",
                "content": [
                    {
                        "type": "input_text",
                        "text": "Analyze the letter and provide a summary of the key points."
                    },
                    {
                        "type": "input_file",
                        "file_url": "https://www.berkshirehathaway.com/letters/2024ltr.pdf"
                    }
                ]
            }
        ]
    }'

ファイルのアップロード

次の例では、Files API でファイルをアップロードし、モデルへのリクエストでそのファイルの ID を指定します。

ファイルのアップロード
curl https://api.openai.com/v1/files \
    -H "Authorization: Bearer $OPENAI_API_KEY" \
    -F purpose="user_data" \
    -F file="@draconomicon.pdf"

curl "https://api.openai.com/v1/responses" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $OPENAI_API_KEY" \
    -d '{
        "model": "gpt-6-astra",
        "input": [
            {
                "role": "user",
                "content": [
                    {
                        "type": "input_file",
                        "file_id": "file-6F2ksmvXxt4VdoqmHRw6kL"
                    },
                    {
                        "type": "input_text",
                        "text": "What is the first dragon in the book?"
                    }
                ]
            }
        ]
    }'

Base64 エンコードしたファイル

ファイル入力は、Base64 エンコードしたファイルデータとして送信することもできます。

Base64 エンコードしたファイルの送信
curl "https://api.openai.com/v1/responses" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $OPENAI_API_KEY" \
    -d '{
        "model": "gpt-6-astra",
        "input": [
            {
                "role": "user",
                "content": [
                    {
                        "type": "input_file",
                        "filename": "draconomicon.pdf",
                        "file_data": "...base64 encoded PDF bytes here..."
                    },
                    {
                        "type": "input_text",
                        "text": "What is the first dragon in the book?"
                    }
                ]
            }
        ]
    }'

利用時の注意点

ファイル入力を使用する際は、次の点に注意してください。

  • トークン使用量: PDF を解析すると、抽出したテキストと各ページの画像がコンテキストに含まれるため、トークン使用量が増えることがあります。Responses API では、detail を auto(デフォルト)、low、high のいずれかに設定して、PDF のページ画像の詳細度を調整できます。大規模に利用する前に、料金とトークン使用量への影響を確認してください。料金の詳細を参照してください。
  • ファイルサイズの上限: 1 回のリクエストに複数のファイルを含められますが、各ファイルのサイズは 50 MB 未満である必要があります。リクエストに含まれるすべてのファイルの合計サイズの上限は 50 MB です。
  • 対応モデル: テキストとページ画像の両方を使って PDF を解析するには、gpt-4o 以降のモデルなど、画像入力に対応したモデルが必要です。
  • アップロードの目的: ファイルのアップロード時には、対応している任意の目的を指定できます。モデルの入力として渡す予定のファイルには user_data を指定してください。

対応ファイル形式の全一覧

この一覧は Responses API に適用されます。Chat Completions で対応している形式は .pdf(application/pdf)のみで、この制限は file_data と file_id の両方に適用されます。

カテゴリ 拡張子 MIME タイプ
PDF ファイル PDF ファイル(.pdf) application/pdf
スプレッドシート Excel シート(.xla、.xlb、.xlc、.xlm、.xls、.xlsx、.xlt、.xlw) application/vnd.openxmlformats-officedocument.spreadsheetml.sheet、application/vnd.ms-excel
スプレッドシート CSV / TSV / IIF(.csv、.tsv、.iif)、Google スプレッドシート text/csv、application/csv、text/tsv、text/x-iif、application/x-iif、application/vnd.google-apps.spreadsheet
書式付き文書 Word / ODT / RTF 文書(.doc、.docx、.dot、.odt、.rtf)、Pages、Google ドキュメント application/vnd.openxmlformats-officedocument.wordprocessingml.document、application/msword、application/rtf、text/rtf、application/vnd.oasis.opendocument.text、application/vnd.apple.pages、application/vnd.google-apps.document、application/vnd.apple.iwork
プレゼンテーション PowerPoint スライド(.pot、.ppa、.pps、.ppt、.pptx、.pwz、.wiz)、Keynote、Google スライド application/vnd.openxmlformats-officedocument.presentationml.presentation、application/vnd.ms-powerpoint、application/vnd.apple.keynote、application/vnd.google-apps.presentation、application/vnd.apple.iwork
テキストとコード テキスト形式とコード形式(.asm、.bat、.c、.cc、.conf、.cpp、.css、.cxx、.def、.dic、.eml、.h、.hh、.htm、.html、.ics、.ifb、.in、.js、.json、.ksh、.list、.log、.markdown、.md、.mht、.mhtml、.mime、.mjs、.nws、.pl、.py、.rst、.s、.sql、.srt、.text、.txt、.vcf、.vtt、.xml) application/javascript、application/typescript、text/xml、text/x-shellscript、text/x-rst、text/x-makefile、text/x-lisp、text/x-asm、text/vbscript、text/css、message/rfc822、application/x-sql、application/x-scala、application/x-rust、application/x-powershell、text/x-diff、text/x-patch、application/x-patch、text/plain、text/markdown、text/x-java、text/x-script.python、text/x-python、text/x-c、text/x-c++、text/x-golang、text/html、text/x-php、application/x-php、application/x-httpd-php、application/x-httpd-php-source、text/x-ruby、text/x-sh、text/x-bash、application/x-bash、text/x-zsh、text/x-tex、text/x-csharp、application/json、text/x-typescript、text/javascript、text/x-go、text/x-rust、text/x-scala、text/x-kotlin、text/x-swift、text/x-lua、text/x-r、text/x-R、text/x-julia、text/x-perl、text/x-objectivec、text/x-objectivec++、text/x-erlang、text/x-elixir、text/x-haskell、text/x-clojure、text/x-groovy、text/x-dart、text/x-awk、application/x-awk、text/jsx、text/tsx、text/x-handlebars、text/x-mustache、text/x-ejs、text/x-jinja2、text/x-liquid、text/x-erb、text/x-twig、text/x-pug、text/x-jade、text/x-tmpl、text/x-cmake、text/x-dockerfile、text/x-gradle、text/x-ini、text/x-properties、text/x-protobuf、application/x-protobuf、text/x-sql、text/x-sass、text/x-scss、text/x-less、text/x-hcl、text/x-terraform、application/x-terraform、text/x-toml、application/x-toml、application/graphql、application/x-graphql、text/x-graphql、application/x-ndjson、application/json5、application/x-json5、text/x-yaml、application/toml、application/x-yaml、application/yaml、text/x-astro、text/srt、application/x-subrip、text/x-subrip、text/vtt、text/x-vcard、text/calendar

次のステップ

目的に応じて、次のリソースを活用してください。