DifyをAPI利用する方法|APIキー取得とPython連携手順

この記事の結論
・DifyのAPIキーはアカウント設定ではなく「作成したアプリ内」から取得する必要がある

・Python連携時は「app-」で始まるキーを使用し、必須パラメータ(user/inputs)を忘れない

・認証エラーの多くはOpenAIキー(sk-)との混同が原因のため、正しいキーの使い分けが重要

Dify APIを利用して、Python環境からAIアプリを操作したいと考えていませんか?

DifyのAPI連携は非常に強力ですが、「APIキーがどこにあるかわからない」「認証エラーが出る」といったつまずきポイントも少なくありません。

特にAPIキーはアカウント全体ではなく「アプリ単位」で発行されるため、正しい場所を知らないと連携できません。

この記事では、Dify APIキーの正確な取得手順から、Pythonを使った具体的なコード実装、エラー対処法までをステップバイステップで解説します。

手順通りに進めることで、確実にAPI連携を成功させましょう。

【法人向け】現場で使える実践型AI研修!

株式会社KAGEMUSHAのAI研修は、現場業務に直結する実践型カリキュラムで、AI活用を「知識」で終わらせず「使えるスキル」として定着させます

DX担当者・現場メンバーそれぞれのレベルに合わせ、生成AI・業務自動化・AIエージェント活用まで幅広く対応。

対面からオンライン・eラーニングと幅広い研修形式に対応しており、内製化や業務改善につながる設計が強みです。

研修内容・導入事例・カリキュラム詳細は、こちらのAI研修資料でご確認ください。

AI研修資料
目次

Dify APIを利用するための事前準備

Dify APIを使って外部からAIアプリを操作するためには、まずDify側の環境を整える必要があります。

ここでは最低限必要な準備について解説します。

Dify APIを利用するために必要なもの(アカウント・外部キー)

API連携を行う前に、以下の2点を準備してください。

  • Difyアカウント
    Difyのクラウド版(dify.ai)または、ローカル/サーバーに構築したセルフホスト版の環境が必要です。本記事ではクラウド版を例に進めますが、セルフホスト版でも手順は同様です。
  • 外部LLMのAPIキー(OpenAI APIキーなど)
    Dify自体はAIモデルを持たず、OpenAI(GPT)やAnthropic(Claude)などの外部モデルを利用します。Dify上でAIを動かすために、これらのAPIキーをDifyに登録しておく必要があります。

Difyの無料枠(サンドボックス)を利用する場合は不要なケースもありますが、本格的な運用のために用意しておくことを推奨します。

Difyアカウントの作成と初期設定

まだアカウントがない場合は、以下の手順で作成します。

  1. 公式サイトへアクセス
    Dify公式サイト(dify.ai)にアクセスし、「Get Started」または「ログイン」をクリックします。
  2. アカウント登録
    GitHubアカウントまたはGoogleアカウントを使用してログインするか、メールアドレスで登録を行います。
  3. モデルプロバイダーの設定
    ログイン後、画面右上のアイコンから「設定」>「モデルプロバイダー」を開きます。ここでOpenAIなどのAPIキーを入力し、保存します。これにより、Dify上でAIモデルが利用可能になります。

【重要】Dify APIキーの発行と取得手順

多くのユーザーが迷うのが「APIキーの取得場所」です。

DifyのAPIキーはアカウント設定画面にはありません。必ず「作成したアプリの中」から発行する必要があります。

APIを利用する「アプリ」の作成と選択(APIキー発行の前提)

APIキーを発行するには、まずAPI経由で動かしたい「アプリ(チャットボット等)」が存在している必要があります。

  1. Difyのダッシュボード上部にある「スタジオ」タブをクリックします。
  2. 「最初から作成」を選択し、アプリのタイプ(チャットボット、テキスト生成など)を選びます。
  3. アプリ名(例:My API Bot)を入力し、「作成する」をクリックします。
  4. オーケストレーション画面(設定画面)が表示されたら、右上の「公開する」>「更新」をクリックしてアプリを保存・公開状態にします。

管理画面「APIアクセス」からAPIキー(app-xxx)を生成する方法

アプリが作成できたら、そのアプリ専用のAPIキーを取得します。

  1. 作成したアプリの左サイドバーメニューを確認します。
  2. メニュー内にある「APIアクセス」(または「APIリファレンス」)をクリックします。
  3. 画面右上の「APIキー」をクリックします。
  4. 「+ 新しいAPIキーを作成」ボタンを押します。
  5. 生成されたキー(app-から始まる文字列)をコピーし、メモ帳などに安全に保存してください。

APIキーは一度しか表示されない場合があるため、必ず生成した時点で控えてください。

注意点:外部LLM(OpenAI等)のAPIキー設定との違い

ここで取得した「Dify APIキー(app-xxx)」と、事前準備で設定した「OpenAI APIキー(sk-xxx)」を混同しないように注意してください。

  • Dify APIキー (app-xxx)
    Pythonなどのプログラムから「Difyのアプリ」を呼び出すための認証キーです。今回のコードで使用するのはこちらです。
  • OpenAI APIキー (sk-xxx)
    Difyが裏側で「GPTモデル」を呼び出すための認証キーです。Difyの設定画面(モデルプロバイダー)に入力するものであり、Pythonコードには直接記述しません。

Python実行環境のセットアップ手順

APIキーの準備ができたら、呼び出し元のPython環境を構築します。

Pythonのインストールとバージョン確認

まず、PCにPythonがインストールされているか確認します。

ターミナル(WindowsならコマンドプロンプトまたはPowerShell、MacならTerminal)を開き、以下のコマンドを入力してください。

python --version
# または
python3 --version

バージョン番号(例:Python 3.10.x)が表示されればOKです。

インストールされていない場合は、Python公式サイトからインストーラーをダウンロードしてインストールしてください。

作業用フォルダの作成と仮想環境の構築(推奨手順)

プロジェクトごとに環境を分けるため、専用フォルダと仮想環境を作成します。

任意の場所にフォルダを作成し、ターミナルでそのフォルダへ移動します。

mkdir dify-api-test
cd dify-api-test

続いて、仮想環境を作成して有効化します。

# Windowsの場合
python -m venv venv
venvScriptsactivate

# Mac/Linuxの場合
python3 -m venv venv
source venv/bin/activate

コマンド実行後、ターミナルの行頭に (venv) と表示されれば有効化されています。

必須ライブラリ(requests)のインストールコマンド

HTTPリクエストを簡単に送るためのライブラリ requests をインストールします。

pip install requests

これで環境構築は完了です。次はいよいよコードを書いていきます。

実践:PythonからDify APIを呼び出す方法

実際にPythonコードを書いて、Dify APIにメッセージを送信し、返答を受け取ります。

【コピペOK】リクエスト送信と応答取得のサンプルコード

以下のコードをコピーし、dify_test.py という名前で保存してください。

※コード内の YOUR_API_KEY は、先ほど取得した app- から始まるキーに書き換えてください。

import requests
import json

# 設定項目
API_KEY = 'app-xxxxxxxxxxxxxxxxxxxxxxxx'  # ここに取得したDify APIキーを貼る
BASE_URL = 'https://api.dify.ai/v1'       # クラウド版のURL(セルフホスト版は自社ドメインに変更)

# ヘッダー情報(認証キーを設定)
headers = {
    'Authorization': f'Bearer {API_KEY}',
    'Content-Type': 'application/json'
}

# 送信データ
data = {
    "inputs": {},             # ワークフロー変数がなければ空の辞書でOK
    "query": "こんにちは、Dify APIのテストです。",  # AIへの質問内容
    "response_mode": "blocking",  # 'blocking'(一括返信)または 'streaming'(流れるように返信)
    "conversation_id": "",    # 初回は空文字。会話を続ける場合は返却されたIDを指定
    "user": "test-user-001"   # 【必須】ユーザーを識別する任意のID
}

# APIリクエスト送信(チャットメッセージ送信エンドポイント)
try:
    response = requests.post(
        f'{BASE_URL}/chat-messages',
        headers=headers,
        json=data
    )
    
    # ステータスコードの確認
    response.raise_for_status()
    
    # 結果の表示
    result = response.json()
    print("--- API Response ---")
    print(f"AIの回答: {result.get('answer')}")
    print(f"Conversation ID: {result.get('conversation_id')}")

except requests.exceptions.RequestException as e:
    print(f"エラーが発生しました: {e}")
    if response is not None:
        print(f"詳細: {response.text}")

必須パラメータ「user」と「inputs」の正しい設定ルール

Dify APIのリクエストボディには、省略できない重要なパラメータがあります。

  • user(必須)
    エンドユーザーを識別するためのIDです。メールアドレスやハッシュ値など、任意の文字列を指定できますが、省略するとエラーになります。開発テスト段階では "abc-123" のような適当な文字列でも動作します。
  • inputs(必須)
    アプリ側で設定した変数(Variables)への入力値です。変数を設定していない場合でも、空の辞書 {} を記述する必要があります。省略するとエラーになる場合があります。

コードの実行手順とレスポンス内容の確認

ターミナルで以下のコマンドを実行します。

python dify_test.py

成功すると、以下のようにAIからの回答が表示されます。

--- API Response ---
AIの回答: こんにちは!Dify APIのテストですね。正常に動作しています。何かお手伝いできることはありますか?
Conversation ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

返却されたConversation IDを次回のリスエスト時にセットすることで、文脈を維持した会話が可能になります。

エラーが出る場合の原因と対処法

コードを実行しても動かない場合に考えられる主な原因と対策をまとめます。

401 Unauthorized(認証エラー)の原因と解決策

最も多いエラーです。以下の点を確認してください。

  1. APIキーの間違い
    app- で始まるキーを使っていますか? sk- で始まるOpenAIのキーを使っていると401エラーになります。
  2. キーのコピーミス
    前後に不要なスペースが入っていないか確認してください。
  3. Authorizationヘッダーの形式
    Bearer (Bearerの後に半角スペース)が必要です。サンプルコードの f'Bearer {API_KEY}' の部分を確認してください。

接続エラーやリクエスト失敗時の例外処理パターン

ネットワークの問題やサーバーエラーに備え、実運用では例外処理を強化します。

サンプルコードでは response.raise_for_status() を使用していますが、以下のようにステータスコードに応じた分岐を入れるとより堅牢です。

  • 400 Bad Request:パラメータ不足(userinputs の欠落)を確認。
  • 404 Not Found:エンドポイントURL(/chat-messages)が正しいか、BASE_URLが間違っていないか確認。
  • 429 Too Many Requests:リクエスト回数制限(レートリミット)超過。時間を空けて再試行するロジックが必要です。

APIキーの漏洩を防ぐ安全な管理方法

APIキーをコード内に直接書く(ハードコーディング)のは、テスト時のみに留めてください。GitHub等に公開すると不正利用されるリスクがあります。

安全に管理するためには、環境変数を利用します。

  1. .env ファイルを作成し、DIFY_API_KEY=app-xxxx と記述。
  2. Pythonで os.getenv('DIFY_API_KEY') を使って読み込む。

これにより、コード自体にはキーが含まれない状態を保てます。

Dify APIの料金体系と制限事項

最後に、API利用に関わるコストと制限について解説します。

無料プランでのAPI利用範囲と制限(レートリミット等)

Difyのクラウド版(SaaS)にはプランごとにAPI利用制限があります。

  • Sandbox(無料)
    API呼び出し回数や作成できるアプリ数に制限があります。テスト利用には十分ですが、商用利用や高頻度なアクセスには向きません。
  • Professional / Team
    APIのリクエスト制限(レートリミット)が緩和され、より多くのメッセージを処理できます。

外部AIモデル利用時に発生する料金の仕組み

Dify自体の利用料とは別に、外部モデル(OpenAIなど)のAPI利用料が発生します。

Dify API経由でメッセージを送ると、Difyが裏側でOpenAI APIを叩きます。この時のトークン消費量は、OpenAIのアカウントに対して課金されます。

Dify APIが無料プランであっても、裏側で動くGPT-4などの利用料は別途発生するため、各プロバイダーの利用状況も併せて管理しましょう。

まとめ

Dify APIを活用すれば、Pythonプログラムから簡単に高度なAIチャットボットを操作できます。

本記事の要点

  • APIキーはアカウント設定ではなく、「アプリ」内の「APIアクセス」から取得する。
  • キーは app- で始まるものを使用する(OpenAIのキーと混同しない)。
  • リクエスト時には user パラメータが必須。
  • Pythonの requests ライブラリを使えば、数行のコードで実装可能。

まずは紹介したサンプルコードをコピペして、実際に「AIからの応答」が返ってくることを確認してください。

一度疎通ができれば、あとは入力内容を変えたり、システムに組み込んだりと、活用の幅は無限に広がります。

【法人向け】現場で使える実践型AI研修!

株式会社KAGEMUSHAのAI研修は、現場業務に直結する実践型カリキュラムで、AI活用を「知識」で終わらせず「使えるスキル」として定着させます

DX担当者・現場メンバーそれぞれのレベルに合わせ、生成AI・業務自動化・AIエージェント活用まで幅広く対応。

対面からオンライン・eラーニングと幅広い研修形式に対応しており、内製化や業務改善につながる設計が強みです。

研修内容・導入事例・カリキュラム詳細は、こちらのAI研修資料でご確認ください。

AI研修資料

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事の監修者

株式会社BuzzConnection/株式会社KAGEMUSHA 代表取締役CEO

2021年に独立し、株式会社BuzzConnectionを設立。複数の事業を運営し、現在はAIを活用したWebアプリケーションの開発、運用や生成AIの普及を目的としたセミナー研修の開催など多角的に活躍している。
2023年4月に株式会社KAGEMUSHAを創業。AI事業に大きく事業を展開。
AIアバターやデジタルヒューマン、AIチャットボット、AI研修など幅広い視点からAIの業務効率化を支援。

目次