Developer API
FeedbackHome API
Programmatically collect user feedback from any platform. Integrate with your custom tools and backend services.
Get Your API KeyAuthentication
All API requests require an API key passed via the X-Api-Key header. API keys are generated at the organization level by individual users from your organization's settings page.
X-Api-Key: YOUR_API_KEYKeep Your API Key Secret
Never expose your API key in frontend code. Store it securely on your backend server only.
Create Feedback
POST/api-integrations/feedbacks/
Submit feedback programmatically from external sources.
Example Request
curl -X POST "https://apis.feedbackhome.com/api-integrations/feedbacks/" \ -H "X-Api-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "title": "Feature request from Discord", "description": "User wants dark mode support", "feedback_type": "feature-request", "feedback_originator_email": "customer@example.com", "is_private": false }'
Request Body
| Field | Type | Required | Default |
|---|---|---|---|
title | string | Required | — |
description | string | Required | — |
feedback_type | feature-request | bug | testimonial | Required | — |
feedback_originator_email | Required | Email of the customer or user submitting the feedback | |
is_private | boolean | Optional | false |
Response
On success, returns the created feedback object with a 200 OK status.
// 200 OK { "id": "3dc31d09-abcd-1234-5678-901234567890", "title": "Feature request from Discord", "description": "User wants dark mode support", "feedback_type": "feature-request", "feedback_originator_email": "customer@example.com", "is_private": false, "created_at": "2026-01-21T00:00:00Z", "updated_at": "2026-01-21T00:00:00Z" }
Error Handling
Errors follow a consistent format across all endpoints:
{
"detail": {
"errors": [
{
"message": "Human readable message",
"code": "ERROR_CODE"
}
]
}
}Error Codes
| Status | Code | Message |
|---|---|---|
401 | INVALID_API_KEY | Invalid API key |
401 | INACTIVE_API_KEY | API key is inactive |
401 | EXPIRED_API_KEY | API key has expired |
422 | MISSING | {field}: Field required |
422 | VALUE_ERROR | {field}: {validation message} |
422 | ENUM | {field}: Input should be... |
500 | INTERNAL_ERROR | Internal server error |
Examples
401 - Invalid API Key:
{"detail": {"errors": [{"message": "Invalid API key", "code": "INVALID_API_KEY"}]}} 422 - Validation Error:
{"detail": {"errors": [{"message": "title: Field required", "code": "MISSING"}]}} 500 - Internal Error:
{"detail": {"errors": [{"message": "Internal server error", "code": "INTERNAL_ERROR"}]}}