The In-App Feedback Backend provides a RESTful API for managing feedback forms and collecting user feedback across multiple applications. All endpoints return JSON responses and use standard HTTP status codes.
https://feedback-backend-one.vercel.app
Currently, the API does not require authentication for most endpoints. This might be changed in the future.
Creates a new feedback form for a specific application package.
Endpoint: POST /admin/forms
Request Body:
{
"package_name": "com.example.app",
"title": "We value your feedback",
"form_type": "rating_text"
}
Parameters:
package_name
(string, required): Unique identifier for the applicationtitle
(string, required): Display description for the feedback formform_type
(string, required): Type of form - rating, free_text, or rating_textResponse Codes:
Example Response:
{
"form_id": "64f8a1b2c3d4e5f6a7b8c9d0",
"package_name": "com.example.app",
"title": "Feedback Form",
"form_type": "rating_text",
"is_active": true,
"created_at": "2025-06-15T10:30:00Z"
}
Retrieves all unique package names that have feedback forms.
Endpoint: GET /forms/packages
Response Codes:
Example Response:
[
"com.example.app1",
"com.example.app2",
"com.mycompany.mobileapp"
]
Retrieves the currently active feedback form for a specific package.
Endpoint: GET /forms/{package_name}
Path Parameters:
package_name
(string): The application package identifierResponse Codes:
Example Response:
{
"form_id": "64f8a1b2c3d4e5f6a7b8c9d0",
"package_name": "com.example.app",
"title": "Help us improve your experience",
"form_type": "rating_text",
"is_active": true,
"created_at": "2025-06-15T10:30:00Z"
}
Retrieves all feedback forms for a specific package, with optional filtering by active status.
Endpoint: GET /forms/{package_name}/all
Path Parameters:
package_name
(string): The application package identifierQuery Parameters:
active
(string, optional): Filter by status - active or inactiveResponse Codes:
Retrieves all feedback forms across all packages.
Endpoint: GET /forms/all
Query Parameters:
active
(string, optional): Filter by status - active or inactiveResponse Codes:
Updates the active status of a feedback form. Only one form can be active per package.
Endpoint: PUT /forms/{form_id}/activate
Path Parameters:
form_id
(string): The unique form identifierRequest Body:
{
"is_active": true
}
Response Codes:
Search for forms using various filters.
Endpoint: GET /forms/search
Query Parameters:
package_name
(string, optional): Filter by package nametitle
(string, optional): Search in form titlesform_type
(string, optional): Filter by type - rating, free_text, or rating_textactive
(string, optional): Filter by status - active or inactiveResponse Codes:
Submits new user feedback for a specific application.
Endpoint: POST /feedback
Request Body:
{
"app_version": "1.0.5",
"device_info": "iPhone 14 Pro",
"form_id": "64f8a1b2c3d4e5f6a7b8c9d0",
"message": "The app is great but could use dark mode",
"package_name": "com.example.myapp",
"rating": 4,
"user_id": "user123"
}
Parameters:
app_version
(string, optional): Version of the applicationdevice_info
(string, optional): Information about the user’s deviceform_id
(string, required): ID of the feedback formmessage
(string, optional): User’s text feedbackpackage_name
(string, required): Application package identifierrating
(integer, optional): User rating from 1-5user_id
(string, optional): Unique identifier for the userResponse Codes:
Example Response:
{
"feedback_id": "64f8a1b2c3d4e5f6a7b8c9d1",
"submitted_at": "2024-01-15T14:30:00Z"
}
Retrieves all feedback submissions for a specific package.
Endpoint: GET /feedback/{package_name}
Path Parameters:
package_name
(string): The application package identifierQuery Parameters:
form_id
(string, optional): Filter by specific form IDResponse Codes:
Retrieves detailed information about a specific feedback submission.
Endpoint: GET /feedback/{package_name}/{feedback_id}
Path Parameters:
package_name
(string): The application package identifierfeedback_id
(string): The unique feedback identifierResponse Codes:
Retrieves all feedback submissions from a specific user for a package.
Endpoint: GET /feedback/{package_name}/user/{user_id}
Path Parameters:
package_name
(string): The application package identifieruser_id
(string): The unique user identifierResponse Codes:
Calculates and returns the average rating for a package.
Endpoint: GET /feedback/{package_name}/average-rating
Path Parameters:
package_name
(string): The application package identifierQuery Parameters:
form_id
(string, optional): Calculate average for specific form onlyResponse Codes:
Example Response:
{
"average_rating": 4.2,
"total_ratings": 150
}
Retrieves comprehensive statistics for package feedback.
Endpoint: GET /feedback/{package_name}/stats
Path Parameters:
package_name
(string): The application package identifierQuery Parameters:
form_id
(string, optional): Get statistics for specific form onlyResponse Codes:
Example Response:
{
"average_rating": 4.2,
"rating_breakdown": {
"1": 5,
"2": 10,
"3": 25,
"4": 110,
"5": 100
},
"total_feedback": 250
}
Searches through feedback messages for specific content.
Endpoint: GET /feedback/{package_name}/search
Path Parameters:
package_name
(string): The application package identifierQuery Parameters:
query
(string, optional): Search term to find in feedback messagesResponse Codes:
Retrieves the most recent feedback submissions for a package.
Endpoint: GET /feedback/{package_name}/recent
Path Parameters:
package_name
(string): The application package identifierQuery Parameters:
form_id
(string, optional): Filter by specific form IDlimit
(integer, optional): Number of recent items to return (default: 10)Response Codes:
Deletes a specific feedback submission.
Endpoint: DELETE /feedback/{package_name}/{feedback_id}
Path Parameters:
package_name
(string): The application package identifierfeedback_id
(string): The unique feedback identifierResponse Codes:
Deletes all feedback submissions for a specific form.
Endpoint: DELETE /feedback/{package_name}/form/{form_id}
Path Parameters:
package_name
(string): The application package identifierform_id
(string): The unique form identifierResponse Codes:
Deletes all feedback submissions for a package.
Endpoint: DELETE /feedback/{package_name}
Path Parameters:
package_name
(string): The application package identifierResponse Codes:
The system supports three types of feedback forms:
Rating Form (rating) Allows users to provide a numeric rating from 1-5 Useful for quick satisfaction surveys Minimal user interaction required
Free Text Form (free_text) Allows users to provide written feedback Ideal for detailed user insights and suggestions No character limits enforced
Combined Form (rating_text) Combines both rating and text feedback Provides quantitative and qualitative data Most comprehensive feedback option
For interactive API testing and detailed request/response examples, visit the Swagger UI documentation at:
http://feedback-backend-one.vercel.app/apidocs/
This provides a web interface where you can test API endpoints directly and see real-time responses.