Back to Home
Developer API

FeedbackHome API

Programmatically collect user feedback from any platform. Integrate with your custom tools and backend services.

Get Your API Key

Authentication

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_KEY
Keep 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

FieldTypeRequiredDefault
titlestringRequired
descriptionstringRequired
feedback_typefeature-request | bug | testimonialRequired
feedback_originator_emailemailRequiredEmail of the customer or user submitting the feedback
is_privatebooleanOptionalfalse

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

StatusCodeMessage
401INVALID_API_KEYInvalid API key
401INACTIVE_API_KEYAPI key is inactive
401EXPIRED_API_KEYAPI key has expired
422MISSING{field}: Field required
422VALUE_ERROR{field}: {validation message}
422ENUM{field}: Input should be...
500INTERNAL_ERRORInternal 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"}]}}