> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dify.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# API

> Dify ワークフローをあらゆる場所に統合する

> このドキュメントは AI によって自動翻訳されています。不正確な部分がある場合は、[英語版](/en/cloud/use-dify/publish/developing-with-apis) を参照してください。

Dify アプリは、そのままバックエンド API サービスとして利用できます。

## API 統合の仕組み

1. **アプリを構築**：必要な AI 機能を備えたアプリを Dify Studio で作成します
2. **API 認証情報を生成**：アプリの機能に安全にアクセスするための認証情報を生成します
3. **API を呼び出し**：アプリケーションから API を呼び出して AI による応答を取得します
4. **ユーザーとの対話**：ユーザーはカスタムインターフェースと対話し、Dify が AI 処理を担当します

## 開始方法

<Steps>
  <Step title="API 設定にアクセス">
    アプリで、左サイドバーの **API Access** に移動します。
  </Step>

  <Step title="API 認証情報を作成">
    統合用の新しい認証情報を生成します。異なる環境やユーザー向けに複数のキーを作成できます。
  </Step>

  <Step title="ドキュメントを確認">
    Dify は、アプリの設定に特化した完全な API ドキュメントを生成します。
  </Step>

  <Step title="アプリに実装">
    提供されたサンプルを使用して、API 呼び出しをアプリケーションに統合します。
  </Step>
</Steps>

<Warning>
  API キーをフロントエンドコードやクライアントサイドのリクエストで公開しないでください。不正利用を防ぎセキュリティを維持するため、必ずバックエンドから Dify API を呼び出してください。
</Warning>

### テキスト生成アプリケーション

これらのアプリケーションは、completion-messages API を呼び出してユーザー入力を送信し、生成されたテキスト結果を取得することで、記事、要約、翻訳などの高品質なテキストを生成します。テキスト生成に使用されるモデルパラメータとプロンプトテンプレートは、開発者が Dify のプロンプト編集ページで行った設定に依存します。

このアプリケーションの API ドキュメントとリクエストサンプルは、**アプリケーション -> API アクセス** で確認できます。

例えば、以下はテキスト生成 API を呼び出すサンプルです。

<Tabs>
  <Tab title="cURL">
    ```
    curl --location --request POST 'https://api.dify.ai/v1/completion-messages' \
    --header 'Authorization: Bearer ENTER-YOUR-SECRET-KEY' \
    --header 'Content-Type: application/json' \
    --data-raw '{
    "inputs": {},
    "response_mode": "streaming",
    "user": "abc-123"
    }'
    ```
  </Tab>

  <Tab title="Python">
    ```python theme={null}
    import requests
    import json

    url = "https://api.dify.ai/v1/completion-messages"

    headers = {
    'Authorization': 'Bearer ENTER-YOUR-SECRET-KEY',
    'Content-Type': 'application/json',
    }

    data = {
    "inputs": {"text": 'Hello, how are you?'},
    "response_mode": "streaming",
    "user": "abc-123"
    }

    response = requests.post(url, headers=headers, data=json.dumps(data))

    print(response.text)
    ```
  </Tab>
</Tabs>

### 対話型アプリケーション

対話型アプリケーションは、質問と回答の形式でユーザーとの継続的な対話を実現します。対話を開始するには、`chat-messages` API を呼び出します。各セッションに対して `conversation_id` が生成され、対話の流れを維持するために後続の API 呼び出しに含める必要があります。

> **重要な注意事項**：サービス API は、WebApp で作成された対話を共有しません。API を通じて作成された対話は、WebApp インターフェースで作成されたものとは分離されています。

#### `conversation_id` に関する重要な考慮事項

* **`conversation_id` の生成**：新しい対話を開始するときは、`conversation_id` フィールドを空にしてください。システムが新しい `conversation_id` を生成して返すので、以降の対話を継続するためにこれを使用します。
* **既存セッションでの `conversation_id` の処理**：`conversation_id` が生成されたら、Dify ボットとの対話の継続性を確保するため、以降の API 呼び出しにこの `conversation_id` を含める必要があります。以前の `conversation_id` を渡した場合、新しい `inputs` は無視され、進行中の対話では `query` のみが処理されます。
* **動的変数の管理**：セッション中にロジックや変数を変更する必要がある場合は、会話変数（セッション固有の変数）を使用してボットの動作や応答を調整できます。

このアプリケーションの API ドキュメントとリクエストサンプルは、**アプリケーション -> API アクセス** で確認できます。

以下は `chat-messages` API を呼び出すサンプルです。

<Tabs>
  <Tab title="cURL">
    ```
    curl --location --request POST 'https://api.dify.ai/v1/chat-messages' \
    --header 'Authorization: Bearer ENTER-YOUR-SECRET-KEY' \
    --header 'Content-Type: application/json' \
    --data-raw '{
    "inputs": {},
    "query": "eh",
    "response_mode": "streaming",
    "conversation_id": "1c7e55fb-1ba2-4e10-81b5-30addcea2276",
    "user": "abc-123"
    }'
    ```
  </Tab>

  <Tab title="Python">
    ```python theme={null}
    import requests
    import json

    url = 'https://api.dify.ai/v1/chat-messages'
    headers = {
    'Authorization': 'Bearer ENTER-YOUR-SECRET-KEY',
    'Content-Type': 'application/json',
    }
    data = {
    "inputs": {},
    "query": "eh",
    "response_mode": "streaming",
    "conversation_id": "1c7e55fb-1ba2-4e10-81b5-30addcea2276",
    "user": "abc-123"
    }

    response = requests.post(url, headers=headers, data=json.dumps(data))

    print(response.text())
    ```
  </Tab>
</Tabs>
