# Dify Docs: English Self-Host Developer Resources

> Dify is an open-source platform for building AI applications. It provides a comprehensive set of tools and features to help you build, deploy, and manage your AI applications.

## Developer Resources

### API

#### Guides

- [Get Started with the Dify API](https://docs.dify.ai/en/api-reference/guides/get-started.md): Get an API key, make your first call, and find the endpoints for your app type
- [Consume Streaming Responses](https://docs.dify.ai/en/api-reference/guides/streaming.md): Choose a response mode, parse the SSE stream, dispatch events, and recover when a connection drops
- [Human Input API Integration Flow](https://docs.dify.ai/en/api-reference/guides/human-input-flow.md): End-to-end sequence for handling a paused Human Input form via the API
- [End User Identity](https://docs.dify.ai/en/api-reference/guides/end-user-identity.md): What the user field identifies, what it scopes, and why it must stay consistent across calls
- [Handle Errors and Rate Limits](https://docs.dify.ai/en/api-reference/guides/errors.md): The error envelope, what each status class means, and which failures are worth retrying

##### API Overviews

- [Chatflow App API](https://docs.dify.ai/en/api-reference/guides/chatflow.md): API for Chatflow apps, covering chat messages, workflow-level streaming, conversation management, and Human Input pauses
- [Workflow App API](https://docs.dify.ai/en/api-reference/guides/workflow.md): API for Workflow apps, covering workflow execution, run control and streaming, Human Input pauses, and run history
- [Agent API](https://docs.dify.ai/en/api-reference/guides/agent.md): API for Agent apps, covering streaming chat messages, conversation management, file uploads, and app configuration
- [Knowledge API](https://docs.dify.ai/en/api-reference/guides/knowledge.md): API for managing knowledge bases, documents, chunks, metadata, tags, and knowledge pipelines
- [Chat App API](https://docs.dify.ai/en/api-reference/guides/chat.md): API for Chatbot and Legacy Agent apps, covering chat messages, conversation management, file uploads, voice, and annotations
- [Completion App API](https://docs.dify.ai/en/api-reference/guides/completion.md): API for Text Generator apps, covering completion messages, file uploads, voice, and feedback

#### App APIs

##### Chat Messages

- [Send Chat Message](https://docs.dify.ai/en/api-reference/chat-messages/send-chat-message.md): **Available for**: Chatflow, Agent, Chatbot, Legacy Agent apps.
- [Stop Chat Message Generation](https://docs.dify.ai/en/api-reference/chat-messages/stop-chat-message-generation.md): **Available for**: Chatflow, Agent, Chatbot, Legacy Agent apps.
- [Get Next Suggested Questions](https://docs.dify.ai/en/api-reference/chat-messages/get-next-suggested-questions.md): **Available for**: Chatflow, Agent, Chatbot, Legacy Agent apps.

##### Completion Messages

- [Send Completion Message](https://docs.dify.ai/en/api-reference/completion-messages/send-completion-message.md): **Available for**: Text Generator apps.
- [Stop Completion Message Generation](https://docs.dify.ai/en/api-reference/completion-messages/stop-completion-message-generation.md): **Available for**: Text Generator apps.

##### Workflow Runs

- [Run Workflow](https://docs.dify.ai/en/api-reference/workflow-runs/run-workflow.md): **Available for**: Workflow apps.
- [Run Workflow by ID](https://docs.dify.ai/en/api-reference/workflow-runs/run-workflow-by-id.md): **Available for**: Workflow apps.
- [Stop Workflow Task](https://docs.dify.ai/en/api-reference/workflow-runs/stop-workflow-task.md): **Available for**: Workflow apps.
- [Get Workflow Run Detail](https://docs.dify.ai/en/api-reference/workflow-runs/get-workflow-run-detail.md): **Available for**: Chatflow, Workflow apps.
- [List Workflow Logs](https://docs.dify.ai/en/api-reference/workflow-runs/list-workflow-logs.md): **Available for**: Chatflow, Workflow apps.
- [Stream Workflow Events](https://docs.dify.ai/en/api-reference/workflow-runs/stream-workflow-events.md): **Available for**: Chatflow, Workflow apps.

##### Conversations

- [List Conversations](https://docs.dify.ai/en/api-reference/conversations/list-conversations.md): **Available for**: Chatflow, Agent, Chatbot, Legacy Agent apps.
- [List Conversation Messages](https://docs.dify.ai/en/api-reference/conversations/list-conversation-messages.md): **Available for**: Chatflow, Agent, Chatbot, Legacy Agent apps.
- [List Conversation Variables](https://docs.dify.ai/en/api-reference/conversations/list-conversation-variables.md): **Available for**: Chatflow, Chatbot, Legacy Agent apps.
- [Rename Conversation](https://docs.dify.ai/en/api-reference/conversations/rename-conversation.md): **Available for**: Chatflow, Agent, Chatbot, Legacy Agent apps.
- [Update Conversation Variable](https://docs.dify.ai/en/api-reference/conversations/update-conversation-variable.md): **Available for**: Chatflow, Chatbot, Legacy Agent apps.
- [Delete Conversation](https://docs.dify.ai/en/api-reference/conversations/delete-conversation.md): **Available for**: Chatflow, Agent, Chatbot, Legacy Agent apps.

##### Files

- [Upload File](https://docs.dify.ai/en/api-reference/files/upload-file.md): **Available for**: Chatflow, Workflow, Agent, Chatbot, Legacy Agent, Text Generator apps.
- [Download File](https://docs.dify.ai/en/api-reference/files/download-file.md): **Available for**: Chatflow, Chatbot, Legacy Agent, Text Generator apps.

##### Audio

- [Convert Audio to Text](https://docs.dify.ai/en/api-reference/audio/convert-audio-to-text.md): **Available for**: Chatflow, Workflow, Agent, Chatbot, Legacy Agent, Text Generator apps.
- [Convert Text to Audio](https://docs.dify.ai/en/api-reference/audio/convert-text-to-audio.md): **Available for**: Chatflow, Workflow, Agent, Chatbot, Legacy Agent, Text Generator apps.

##### Applications

- [Get App Info](https://docs.dify.ai/en/api-reference/applications/get-app-info.md): **Available for**: Chatflow, Workflow, Agent, Chatbot, Legacy Agent, Text Generator apps.
- [Get App Parameters](https://docs.dify.ai/en/api-reference/applications/get-app-parameters.md): **Available for**: Chatflow, Workflow, Agent, Chatbot, Legacy Agent, Text Generator apps.
- [Get App Meta](https://docs.dify.ai/en/api-reference/applications/get-app-meta.md): **Available for**: Chatflow, Workflow, Agent, Chatbot, Legacy Agent, Text Generator apps.
- [Get App WebApp Settings](https://docs.dify.ai/en/api-reference/applications/get-app-webapp-settings.md): **Available for**: Chatflow, Workflow, Agent, Chatbot, Legacy Agent, Text Generator apps.

##### Feedback

- [Submit Message Feedback](https://docs.dify.ai/en/api-reference/feedback/submit-message-feedback.md): **Available for**: Chatflow, Chatbot, Legacy Agent, Text Generator apps.
- [List App Feedbacks](https://docs.dify.ai/en/api-reference/feedback/list-app-feedbacks.md): **Available for**: Chatflow, Chatbot, Legacy Agent, Text Generator apps.

##### Annotations

- [Create Annotation](https://docs.dify.ai/en/api-reference/annotations/create-annotation.md): **Available for**: Chatflow, Chatbot, Legacy Agent apps.
- [List Annotations](https://docs.dify.ai/en/api-reference/annotations/list-annotations.md): **Available for**: Chatflow, Chatbot, Legacy Agent apps.
- [Update Annotation](https://docs.dify.ai/en/api-reference/annotations/update-annotation.md): **Available for**: Chatflow, Chatbot, Legacy Agent apps.
- [Delete Annotation](https://docs.dify.ai/en/api-reference/annotations/delete-annotation.md): **Available for**: Chatflow, Chatbot, Legacy Agent apps.
- [Configure Annotation Reply](https://docs.dify.ai/en/api-reference/annotations/configure-annotation-reply.md): **Available for**: Chatflow, Chatbot, Legacy Agent apps.
- [Get Annotation Reply Job Status](https://docs.dify.ai/en/api-reference/annotations/get-annotation-reply-job-status.md): **Available for**: Chatflow, Chatbot, Legacy Agent apps.

##### End Users

- [Get End User Info](https://docs.dify.ai/en/api-reference/end-users/get-end-user-info.md): **Available for**: Chatflow, Workflow, Agent, Chatbot, Legacy Agent, Text Generator apps.

##### Human Input

- [Get Human Input Form](https://docs.dify.ai/en/api-reference/human-input/get-human-input-form.md): **Available for**: Chatflow, Workflow apps.
- [Submit Human Input Form](https://docs.dify.ai/en/api-reference/human-input/submit-human-input-form.md): **Available for**: Chatflow, Workflow apps.

#### Knowledge APIs

##### Knowledge Bases

- [Create an Empty Knowledge Base](https://docs.dify.ai/en/api-reference/knowledge-bases/create-an-empty-knowledge-base.md): Creates an empty knowledge base. Add documents to it with [Create Document by Text](/en/api-reference/documents/create-document-by-text) or [Create Document by File](/en/api-reference/documents/create-document-by-file).
- [List Knowledge Bases](https://docs.dify.ai/en/api-reference/knowledge-bases/list-knowledge-bases.md): Returns a paginated list of knowledge bases, optionally filtered by keyword or tags.
- [Get Knowledge Base](https://docs.dify.ai/en/api-reference/knowledge-bases/get-knowledge-base.md): Returns detailed information about a knowledge base, including its embedding model, retrieval configuration, and document statistics.
- [Update Knowledge Base](https://docs.dify.ai/en/api-reference/knowledge-bases/update-knowledge-base.md): Updates a knowledge base. Only the fields included in the request body are changed.
- [Delete Knowledge Base](https://docs.dify.ai/en/api-reference/knowledge-bases/delete-knowledge-base.md): Permanently deletes a knowledge base, all of its documents, and any API key scoped only to it. Keys that also cover other knowledge bases keep working for those.
- [Retrieve Chunks from a Knowledge Base / Test Retrieval](https://docs.dify.ai/en/api-reference/knowledge-bases/retrieve-chunks-from-a-knowledge-base-test-retrieval.md): Searches a knowledge base and returns the chunks most relevant to the query, for both production retrieval and test retrieval.

##### Documents

- [Create Document by Text](https://docs.dify.ai/en/api-reference/documents/create-document-by-text.md): Creates a document in a knowledge base from raw text. Indexing runs asynchronously; track it with the returned `batch` ID via [Get Document Indexing Status](/en/api-reference/documents/get-document-indexing-status).
- [Create Document by File](https://docs.dify.ai/en/api-reference/documents/create-document-by-file.md): Creates a document in a knowledge base from an uploaded file. Common formats such as PDF, TXT, and DOCX are supported. Indexing runs asynchronously; track it with the returned `batch` ID via [Get Document Indexing Status](/en/api-reference/documents/get-document-indexing-status).
- [List Documents](https://docs.dify.ai/en/api-reference/documents/list-documents.md): Returns a paginated list of documents in a knowledge base.
- [Get Document](https://docs.dify.ai/en/api-reference/documents/get-document.md): Returns detailed information for a single document.
- [Delete Document](https://docs.dify.ai/en/api-reference/documents/delete-document.md): Permanently deletes a document and all its chunks from the knowledge base.
- [Update Document](https://docs.dify.ai/en/api-reference/documents/update-document.md): Updates a document by uploading a new file, then re-indexes it. This is the canonical endpoint for file-based document updates. Track progress with the returned `batch` ID via [Get Document Indexing Status](/en/api-reference/documents/get-document-indexing-status).
- [Download Document](https://docs.dify.ai/en/api-reference/documents/download-document.md): Returns a signed URL for downloading a document's original uploaded file.
- [Get Document Indexing Status](https://docs.dify.ai/en/api-reference/documents/get-document-indexing-status.md): Returns indexing progress for every document in a batch: the current stage and chunk completion counts. Poll until each `indexing_status` reaches `completed` or `error`. Status advances through `waiting` → `parsing` → `cleaning` → `splitting` → `indexing` → `completed`.
- [Update Document by Text](https://docs.dify.ai/en/api-reference/documents/update-document-by-text.md): Updates a document's text content, name, or processing configuration. Re-indexes the document when its text changes.
- [Update Document by File](https://docs.dify.ai/en/api-reference/documents/update-document-by-file.md): Deprecated. Use [Update Document](/en/api-reference/documents/update-document) instead. Updates a document by uploading a new file, then re-indexes it.
- [Download Documents as ZIP](https://docs.dify.ai/en/api-reference/documents/download-documents-as-zip.md): Downloads one or more documents as a single ZIP archive. Only documents that were uploaded as files can be included.
- [Update Document Status in Batch](https://docs.dify.ai/en/api-reference/documents/update-document-status-in-batch.md): Enables, disables, archives, or unarchives multiple documents in one request.

##### Chunks

- [Create Chunks](https://docs.dify.ai/en/api-reference/chunks/create-chunks.md): Create one or more chunks within a document.
- [List Chunks](https://docs.dify.ai/en/api-reference/chunks/list-chunks.md): Returns a paginated list of chunks within a document, optionally filtered by keyword or indexing status.
- [Get Chunk](https://docs.dify.ai/en/api-reference/chunks/get-chunk.md): Retrieve the full details of a single chunk.
- [Update Chunk](https://docs.dify.ai/en/api-reference/chunks/update-chunk.md): Update a chunk's fields. The update re-triggers indexing for that chunk.
- [Delete Chunk](https://docs.dify.ai/en/api-reference/chunks/delete-chunk.md): Permanently delete a chunk from the document.
- [Create Child Chunk](https://docs.dify.ai/en/api-reference/chunks/create-child-chunk.md): Create a child chunk under a parent chunk. Intended for documents that use the parent-child (`hierarchical_model`) chunking mode.
- [List Child Chunks](https://docs.dify.ai/en/api-reference/chunks/list-child-chunks.md): Returns a paginated list of child chunks under a specific parent chunk.
- [Update Child Chunk](https://docs.dify.ai/en/api-reference/chunks/update-child-chunk.md): Update the content of an existing child chunk.
- [Delete Child Chunk](https://docs.dify.ai/en/api-reference/chunks/delete-child-chunk.md): Permanently delete a child chunk from its parent chunk.

##### Metadata

- [Create Metadata Field](https://docs.dify.ai/en/api-reference/metadata/create-metadata-field.md): Create a custom metadata field for annotating documents in the knowledge base with structured information.
- [List Metadata Fields](https://docs.dify.ai/en/api-reference/metadata/list-metadata-fields.md): Returns all metadata fields for the knowledge base, both custom and built-in, with the count of documents using each field.
- [Update Metadata Field](https://docs.dify.ai/en/api-reference/metadata/update-metadata-field.md): Rename a custom metadata field.
- [Delete Metadata Field](https://docs.dify.ai/en/api-reference/metadata/delete-metadata-field.md): Permanently delete a custom metadata field. Documents that used the field lose their values for it.
- [Get Built-in Metadata Fields](https://docs.dify.ai/en/api-reference/metadata/get-built-in-metadata-fields.md): Returns the built-in metadata fields provided by the system.
- [Update Built-in Metadata Field](https://docs.dify.ai/en/api-reference/metadata/update-built-in-metadata-field.md): Enable or disable built-in metadata fields for the knowledge base.
- [Update Document Metadata in Batch](https://docs.dify.ai/en/api-reference/metadata/update-document-metadata-in-batch.md): Update metadata values for multiple documents in a single request.

##### Tags

- [Create Knowledge Tag](https://docs.dify.ai/en/api-reference/tags/create-knowledge-tag.md): Create a tag for organizing knowledge bases.
- [List Knowledge Tags](https://docs.dify.ai/en/api-reference/tags/list-knowledge-tags.md): Returns all knowledge base tags in the workspace.
- [Update Knowledge Tag](https://docs.dify.ai/en/api-reference/tags/update-knowledge-tag.md): Rename a knowledge base tag.
- [Delete Knowledge Tag](https://docs.dify.ai/en/api-reference/tags/delete-knowledge-tag.md): Permanently delete a knowledge base tag. Does not delete the knowledge bases that were tagged.
- [Create Tag Binding](https://docs.dify.ai/en/api-reference/tags/create-tag-binding.md): Bind one or more tags to a knowledge base. A knowledge base can have multiple tags.
- [Delete Tag Binding](https://docs.dify.ai/en/api-reference/tags/delete-tag-binding.md): Remove one or more tags from a knowledge base.
- [Get Knowledge Base Tags](https://docs.dify.ai/en/api-reference/tags/get-knowledge-base-tags.md): Returns the tags bound to a knowledge base.

##### Models

- [Get Available Models](https://docs.dify.ai/en/api-reference/models/get-available-models.md): Returns the available models of a given type. Use it to find the `text-embedding` and `rerank` models to configure on a knowledge base.

##### Knowledge Pipeline

- [Upload Pipeline File](https://docs.dify.ai/en/api-reference/knowledge-pipeline/upload-pipeline-file.md): Uploads a file for use in a knowledge pipeline. Use the returned `id` as the `reference` of a `local_file` item in [Run Pipeline](/en/api-reference/knowledge-pipeline/run-pipeline).
- [List Datasource Plugins](https://docs.dify.ai/en/api-reference/knowledge-pipeline/list-datasource-plugins.md): Returns the datasource nodes configured in the knowledge pipeline, each with the plugin it uses and the metadata needed to run it.
- [Run Datasource Node](https://docs.dify.ai/en/api-reference/knowledge-pipeline/run-datasource-node.md): Runs a single datasource node in the knowledge pipeline and streams its execution events.
- [Run Pipeline](https://docs.dify.ai/en/api-reference/knowledge-pipeline/run-pipeline.md): Runs the full knowledge pipeline over one or more datasources. `response_mode` selects a streaming or blocking response.

### CLI

####  

- [Overview](https://docs.dify.ai/en/cli/overview.md): Run your Dify apps from terminals, scripts, CI pipelines, and AI agents with the official Dify command-line interface `difyctl`
- [Install difyctl](https://docs.dify.ai/en/cli/install.md): Install difyctl with a one-line script or a manual binary download
- [Quick Start](https://docs.dify.ai/en/cli/quick-start.md): Run your first Dify app from the command line in under 5 minutes
- [Authenticate](https://docs.dify.ai/en/cli/authenticate.md): Sign in to your Dify host from the CLI, see where your token is stored, and manage your session
- [Common Tasks](https://docs.dify.ai/en/cli/common-tasks.md): Copy-paste commands for the difyctl tasks you'll run most often
- [Troubleshooting](https://docs.dify.ai/en/cli/troubleshooting.md): Fix common difyctl errors with their explanations, exit codes, and solutions

##### Integrate Your Agents

- [Integrate Your Agents with Dify Apps](https://docs.dify.ai/en/cli/integrate-agents/overview.md): Call your Dify apps from any coding agent through difyctl, with no API to integrate or SDK to install
- [Authenticate Where Your Agent Runs](https://docs.dify.ai/en/cli/integrate-agents/auth-for-agent-deployments.md): Put a difyctl session on the server or container where your agent runs, so it can call Dify apps unattended
- [Install the difyctl Skill](https://docs.dify.ai/en/cli/integrate-agents/install-the-difyctl-skill.md): Give your coding agent access to your Dify apps by installing one skill file
- [Handle Errors and Retries](https://docs.dify.ai/en/cli/integrate-agents/error-handling-and-retries-for-agents.md): Make your agent fail safely on difyctl errors: branch on exit codes, parse the error, detect paused workflows, and retry only what's safe

##### CLI Reference

- [Command Index](https://docs.dify.ai/en/cli/reference/command-index.md): Find any difyctl command by name, with a link to its full reference
- [Global Flags](https://docs.dify.ai/en/cli/reference/global-flags.md): Use these flags across difyctl commands to control output format, verbosity, and retry behavior
- [Output Formats and Exit Codes](https://docs.dify.ai/en/cli/reference/output-formats-and-exit-codes.md): What each difyctl output format emits, how stdout and stderr split, how errors are structured, and what every exit code means
- [Environment Variables](https://docs.dify.ai/en/cli/reference/environment-variables.md): Set difyctl defaults for the current shell session with environment variables

###### Commands

- [Apps](https://docs.dify.ai/en/cli/reference/apps.md): List, inspect, run, resume, export, and import your Dify apps from the CLI
- [Auth and Contexts](https://docs.dify.ai/en/cli/reference/auth-and-contexts.md): Sign in, manage sessions, and switch between saved hosts and accounts
- [Workspaces](https://docs.dify.ai/en/cli/reference/workspaces.md): List your workspaces, switch the active one, and understand how difyctl resolves which workspace to use
- [Help](https://docs.dify.ai/en/cli/reference/help.md): Get help in the terminal with per-command docs, guide topics, and machine-readable JSON
- [Skills](https://docs.dify.ai/en/cli/reference/skills.md): Install the agent skill so coding agents can drive difyctl
- [Version](https://docs.dify.ai/en/cli/reference/version.md): Check your difyctl build and its compatibility with your Dify server

### Plugins

#### Getting Started

- [Dify Plugin](https://docs.dify.ai/en/develop-plugin/getting-started/getting-started-dify-plugin.md): Modular components that extend Dify AI applications with external services, custom logic, and specialized tools
- [Choose a Plugin Type](https://docs.dify.ai/en/develop-plugin/getting-started/choose-plugin-type.md): A short decision guide for picking between Tool, Model, Agent Strategy, Extension, Datasource, and Trigger plugins
- [Dify Plugin CLI](https://docs.dify.ai/en/develop-plugin/getting-started/cli.md): Install the Dify Plugin CLI, scaffold a new plugin project, and run it against a Dify instance for local development

#### Features & Specs

##### Plugin Types

- [General Specs](https://docs.dify.ai/en/develop-plugin/features-and-specs/plugin-types/general-specifications.md): Common data structures shared across plugin types, including I18nObject, ProviderConfig, ModelConfig, NodeResponse, and ToolSelector
- [Model Specs](https://docs.dify.ai/en/develop-plugin/features-and-specs/plugin-types/model-designing-rules.md): Reference for the entities that define a Dify model plugin, including Provider, AIModelEntity, model types, configuration methods, parameter rules, and credential schemas
- [Model API Interface](https://docs.dify.ai/en/develop-plugin/features-and-specs/plugin-types/model-schema.md): Interfaces and data structures for implementing Dify model plugins, covering LLM, TextEmbedding, Rerank, Speech2Text, Text2Speech, and Moderation models
- [Persistent Storage](https://docs.dify.ai/en/develop-plugin/features-and-specs/plugin-types/persistent-storage-kv.md): Store data across plugin interactions with the built-in key-value storage
- [Tool Return](https://docs.dify.ai/en/develop-plugin/features-and-specs/plugin-types/tool.md): How tool plugins return messages (text, links, images, files, JSON), create standard and streaming variables, and define output schemas for workflow references
- [Manifest](https://docs.dify.ai/en/develop-plugin/features-and-specs/plugin-types/plugin-info-by-manifest.md): YAML schema for the plugin manifest that declares name, author, runtime, resources, permissions, and which tools/models/endpoints the plugin ships
- [Multilingual README](https://docs.dify.ai/en/develop-plugin/features-and-specs/plugin-types/multilingual-readme.md): Add per-language README files so Dify Marketplace shows your plugin's documentation in each user's preferred language
- [Plugin Debugging](https://docs.dify.ai/en/develop-plugin/features-and-specs/plugin-types/remote-debug-a-plugin.md): Run your in-development plugin locally and attach it to a live Dify workspace for end-to-end testing, no packaging required
- [Plugin Logging](https://docs.dify.ai/en/develop-plugin/features-and-specs/plugin-types/plugin-logging.md): Emit logs from your plugin with the SDK's plugin_logger_handler, visible during remote debugging and in daemon container logs

##### Advanced Development

###### Reverse Calling

- [Bundle Plugin Package](https://docs.dify.ai/en/develop-plugin/features-and-specs/advanced-development/bundle.md): Package multiple plugins into a Bundle with Marketplace, GitHub, and Package dependencies
- [Reverse Invocation of Dify Services](https://docs.dify.ai/en/develop-plugin/features-and-specs/advanced-development/reverse-invocation.md): Call App, Model, Tool, and Node services in the Dify platform from your plugin
- [App](https://docs.dify.ai/en/develop-plugin/features-and-specs/advanced-development/reverse-invocation-app.md): Call the Chat, Workflow, and Completion interfaces of Dify Apps from your plugin
- [Reverse Invocation Model](https://docs.dify.ai/en/develop-plugin/features-and-specs/advanced-development/reverse-invocation-model.md): Invoke LLM, embedding, rerank, TTS, speech-to-text, and moderation models from your plugin
- [Tool](https://docs.dify.ai/en/develop-plugin/features-and-specs/advanced-development/reverse-invocation-tool.md): Call installed tools, Workflow as Tool, and custom tools from your plugin
- [Integrate Custom Models](https://docs.dify.ai/en/develop-plugin/features-and-specs/advanced-development/customizable-model.md): Integrate a custom model into Dify, using Xinference as an example
- [Node](https://docs.dify.ai/en/develop-plugin/features-and-specs/advanced-development/reverse-invocation-node.md): Invoke the Parameter Extractor and Question Classifier nodes from your plugin

#### Development Guides & Walkthroughs

- [Cheatsheet](https://docs.dify.ai/en/develop-plugin/dev-guides-and-walkthroughs/cheatsheet.md): A quick reference for Dify plugin development, covering environment setup, installation, the development process, and plugin types

##### By Plugin Type

- [Tool Plugin](https://docs.dify.ai/en/develop-plugin/dev-guides-and-walkthroughs/tool-plugin.md): Develop a Dify tool plugin from initialization to packaging, using Google Search as a worked example
- [Tool OAuth](https://docs.dify.ai/en/develop-plugin/dev-guides-and-walkthroughs/tool-oauth.md): Replace manual API-key entry with an OAuth authorization flow so users grant access to third-party services with one click
- [Model Provider Plugin](https://docs.dify.ai/en/develop-plugin/dev-guides-and-walkthroughs/creating-new-model-provider.md): Build a model provider plugin, from project setup and provider configuration to model implementation, debugging, and publishing
- [Agent Strategy Plugin](https://docs.dify.ai/en/develop-plugin/dev-guides-and-walkthroughs/agent-strategy-plugin.md): Build a Function Calling agent strategy from scratch, with a worked example showing how to give an LLM tools and let it autonomously fetch the current time
- [Data Source Plugin](https://docs.dify.ai/en/develop-plugin/dev-guides-and-walkthroughs/datasource-plugin.md): Build a Dify 1.9.0+ data source plugin that feeds documents into the knowledge pipeline
- [Trigger Plugin](https://docs.dify.ai/en/develop-plugin/dev-guides-and-walkthroughs/trigger-plugin.md): Build a Dify 1.10.0+ trigger plugin that turns third-party webhook events into workflow start signals
- [Endpoint Plugin](https://docs.dify.ai/en/develop-plugin/dev-guides-and-walkthroughs/endpoint.md): Define, configure, and implement HTTP Endpoints in a Dify plugin, using the Neko Cat project as an example

##### Full Walkthroughs

- [Flomo Tool (10-min)](https://docs.dify.ai/en/develop-plugin/dev-guides-and-walkthroughs/develop-flomo-plugin.md): Build a functional Dify tool plugin that connects to the Flomo note-taking service end-to-end in about ten minutes
- [Slack Bot](https://docs.dify.ai/en/develop-plugin/dev-guides-and-walkthroughs/develop-a-slack-bot-plugin.md): Build a Slack Bot plugin that connects a Dify app to Slack, from project setup through debugging and packaging
- [Markdown Exporter](https://docs.dify.ai/en/develop-plugin/dev-guides-and-walkthroughs/develop-md-exporter.md): Learn how to create a plugin that exports conversations to different document formats
- [Multimodal Tool](https://docs.dify.ai/en/develop-plugin/dev-guides-and-walkthroughs/develop-multimodal-data-processing-tool.md): Configure a tool plugin to emit images, audio, or video so the Knowledge Base node can embed multimodal outputs alongside text

#### Publishing

- [Publish Plugins](https://docs.dify.ai/en/develop-plugin/publishing/marketplace-listing/release-overview.md): Three ways to distribute a Dify plugin (Marketplace, GitHub repository, or local file) and how to pick the right one
- [Publish a Plugin to Marketplace](https://docs.dify.ai/en/develop-plugin/publishing/marketplace-listing/submit-plugin-to-marketplace.md): Prepare and validate a .difypkg, submit it for Marketplace review, respond to the pull request, and review the published plugin's performance and feedback in Creator Center
- [Frequently Asked Questions](https://docs.dify.ai/en/develop-plugin/publishing/faq/faq.md): Common issues and fixes for building, packaging, debugging, and installing Dify plugins

##### Standards

- [Plugin Development Guidelines](https://docs.dify.ai/en/develop-plugin/publishing/standards/contributor-covenant-code-of-conduct.md): Requirements every Dify Marketplace plugin must meet to pass review, covering quality, language, privacy, IP, maintenance, and prohibited content
- [Privacy Guidelines](https://docs.dify.ai/en/develop-plugin/publishing/standards/privacy-protection-guidelines.md): How to declare data collection and write the privacy policy required for every plugin submitted to the Dify Marketplace

##### GitHub Repository

- [Publish to Individual GitHub Repository](https://docs.dify.ai/en/develop-plugin/publishing/marketplace-listing/release-to-individual-github-repo.md): Distribute a Dify plugin from your own GitHub repository so users can install it directly via repo URL, with no marketplace review required

##### Local File

- [Package as Local File and Share](https://docs.dify.ai/en/develop-plugin/publishing/marketplace-listing/release-by-file.md): Package a Dify plugin into a `.difypkg` file you can install directly or hand off to others, with no marketplace or GitHub release required
- [Sign Plugins for Third-Party Signature Verification](https://docs.dify.ai/en/develop-plugin/publishing/standards/third-party-signature-verification.md): Enable signed `.difypkg` installation in Dify Community Edition without disabling signature verification entirely (generate keys, sign packages, distribute the public key)

## OpenAPI Specs

- [openapi_service](/en/api-reference/openapi_service.json)
