Dify Feedback API
User feedback operations. 2 operation(s) from the Dify Service API.
User feedback operations. 2 operation(s) from the Dify Service API.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/dify-feedback-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.0.1
info:
title: Dify Feedback API
description: REST API for Dify applications and knowledge bases. Application endpoints authenticate
with an app API key; knowledge endpoints authenticate with a dataset API key.
version: 1.0.0
servers:
- url: https://{api_base_url}
description: Base URL of the Dify Service API. For self-hosted deployments, replace it with your own
API base URL.
variables:
api_base_url:
default: api.dify.ai/v1
description: Host and path of the API base URL, without the `https://` prefix.
security:
- ApiKeyAuth: []
tags:
- name: Feedback
description: User feedback operations.
paths:
/messages/{message_id}/feedbacks:
post:
summary: Submit Message Feedback
description: '**Available for**: Chatflow, Chatbot, Legacy Agent, Text Generator apps.
Records a `like` or `dislike` rating, plus an optional comment, on a message. Submitting `null`
for `rating` revokes the message''s existing feedback.'
operationId: postChatMessageFeedback
tags:
- Feedback
parameters:
- name: message_id
in: path
required: true
description: ID of the message to give feedback on. Get message IDs from [List Conversation Messages](/en/api-reference/conversations/list-conversation-messages).
schema:
type: string
format: uuid
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/MessageFeedbackRequest'
examples:
likeFeedback:
summary: Request Example
value:
rating: like
user: abc-123
content: This answer was very helpful!
responses:
'200':
$ref: '#/components/responses/SuccessResult'
'400':
description: '`invalid_param` : The required `user` field is omitted, or `rating` is `null`
but there is no existing feedback to revoke.'
content:
application/json:
examples:
invalid_param:
summary: invalid_param
value:
status: 400
code: invalid_param
message: Arg user must be provided.
'404':
description: '`not_found` : Message does not exist.'
content:
application/json:
examples:
message_not_exists:
summary: not_found
value:
status: 404
code: not_found
message: Message Not Exists.
x-mint:
href: /en/api-reference/feedback/submit-message-feedback
metadata:
title: Submit Message Feedback
sidebarTitle: Submit Message Feedback
/app/feedbacks:
get:
summary: List App Feedbacks
description: '**Available for**: Chatflow, Chatbot, Legacy Agent, Text Generator apps.
Returns a paginated list of all feedback on the app''s messages, including both end-user and admin
submissions.'
operationId: getChatAppFeedbacks
tags:
- Feedback
parameters:
- name: page
in: query
description: Page number.
required: false
schema:
type: integer
default: 1
minimum: 1
- name: limit
in: query
description: Feedback items per page.
required: false
schema:
type: integer
default: 20
minimum: 1
maximum: 101
responses:
'200':
description: A list of application feedbacks.
content:
application/json:
schema:
$ref: '#/components/schemas/AppFeedbacksResponse'
examples:
feedbacksList:
summary: Response Example
value:
data:
- id: b7e2f8a1-3c4d-5e6f-7890-abcdef123456
app_id: a1b2c3d4-5678-90ab-cdef-1234567890ab
conversation_id: 45701982-8118-4bc5-8e9b-64562b4555f2
message_id: 9da23599-e713-473b-982c-4328d4f5c78a
rating: like
content: The response accurately answered my question about product specifications.
from_source: user
from_end_user_id: f1e2d3c4-b5a6-7890-abcd-ef1234567890
from_account_id: null
created_at: '2025-01-16T14:30:29Z'
updated_at: '2025-01-16T14:30:29Z'
- id: c8f3a9b2-4d5e-6f70-8901-bcdef2345678
app_id: a1b2c3d4-5678-90ab-cdef-1234567890ab
conversation_id: 56812a93-9229-5cd6-9f0c-75673b666603
message_id: ae24b5c0-f814-584d-a493-5439e5d6b7b1
rating: dislike
content: The answer was too vague and did not address the specific pricing question.
from_source: user
from_end_user_id: d2c1b0a9-8765-4321-fedc-ba9876543210
from_account_id: null
created_at: '2025-01-15T09:12:45Z'
updated_at: '2025-01-15T09:12:45Z'
x-mint:
href: /en/api-reference/feedback/list-app-feedbacks
metadata:
title: List App Feedbacks
sidebarTitle: List App Feedbacks
components:
responses:
SuccessResult:
description: Operation successful.
content:
application/json:
schema:
type: object
properties:
result:
type: string
description: Operation result. Always `success`.
examples:
success:
summary: Response Example
value:
result: success
schemas:
AppFeedbacksResponse:
type: object
properties:
data:
type: array
description: List of feedback items.
items:
$ref: '#/components/schemas/FeedbackItem'
FeedbackItem:
type: object
description: A single feedback item.
properties:
id:
type: string
format: uuid
description: Feedback ID.
app_id:
type: string
format: uuid
description: Application ID.
conversation_id:
type: string
format: uuid
description: Conversation ID.
message_id:
type: string
format: uuid
description: Message ID.
rating:
type: string
description: Feedback rating. `like` for positive, `dislike` for negative.
content:
type: string
nullable: true
description: Optional text feedback.
from_source:
type: string
description: Feedback source. `user` for end-user feedback submitted via API, `admin` for feedback
submitted from the console.
from_end_user_id:
type: string
format: uuid
nullable: true
description: End user ID who submitted the feedback. Present when `from_source` is `user`.
from_account_id:
type: string
format: uuid
nullable: true
description: Account ID who submitted the feedback. Present when `from_source` is `admin`.
created_at:
type: string
format: date-time
description: Creation timestamp.
updated_at:
type: string
format: date-time
description: Last update timestamp.
MessageFeedbackRequest:
type: object
description: Request body for submitting message feedback.
required:
- user
properties:
rating:
type: string
enum:
- like
- dislike
- null
nullable: true
description: Feedback rating. Set to `null` to revoke previously submitted feedback.
user:
type: string
description: End-user identifier, defined by your app and unique within it. Must match the `user`
that received the message, since feedback is scoped to that end user. See [End User Identity](/en/api-reference/guides/end-user-identity).
content:
type: string
description: Optional text feedback providing additional detail.
securitySchemes:
ApiKeyAuth:
type: http
scheme: bearer
bearerFormat: API_KEY
description: 'Every request authenticates with an API key: `Authorization: Bearer {API_KEY}`. App
endpoints take an app API key; knowledge endpoints take a knowledge base API key ([Get Started](/en/api-reference/guides/get-started)).
Keep keys server-side; never embed them in client code. Requests with a missing or invalid key
fail with HTTP `401` (`unauthorized`).'
x-provenance:
generated: '2026-09-06'
method: derived
source: openapi/_original/dify-service-api-openapi.json
note: Per-tag split of the first-party Dify Service API OpenAPI harvested from https://docs.dify.ai/en/api-reference/openapi_service.json
(advertised in https://docs.dify.ai/llms.txt). Paths, schemas and operationIds are verbatim from that
spec.