Feedback API

Submit and manage user feedback through our REST API. Collect bug reports, feature requests, and general feedback from your users.

Base URL

https://api.feedbackkit.io

Authentication

All API requests require authentication using your API key. Include it in the request headers:

curl -X POST https://api.feedbackkit.io/feedback \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{
    "type": "bug",
    "priority": "high",
    "title": "Login button not working",
    "description": "Users cannot log in on mobile devices"
  }'

Submit Feedback

POST /feedback

Submit new feedback from your users. This endpoint accepts feedback with optional screenshots and metadata.

Request Body

Required Fields
Required
typestring
Required
prioritystring
Required
titlestring
Required
descriptionstring
Optional Fields
Optional
emailstring
Optional
screenshotobject
Optional
metadataobject

Feedback Types

Bug Report
bug

Something isn't working

Feature Request
feature

Suggest a new feature

Error Report
error

App crashed or error occurred

General Feedback
general

General thoughts or suggestions

Priority Levels

Low
low

Minor issue or suggestion

Medium
medium

Moderate issue or feature

High
high

Important issue or feature

Critical
critical

App is unusable or major issue

Example Request

{
  "type": "bug",
  "priority": "high",
  "title": "Login button not working on mobile",
  "description": "Users are unable to log in when using mobile devices. The login button appears but doesn't respond to taps.",
  "email": "user@example.com",
  "screenshot": {
    "imageData": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...",
    "pointerData": {
      "x": 150,
      "y": 200,
      "annotation": "Login button here"
    }
  },
  "metadata": {
    "userAgent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X)",
    "url": "https://example.com/login",
    "screenSize": "375x667"
  }
}

Response

{
  "id": "fb_123456789",
  "status": "pending",
  "createdAt": "2025-01-15T10:30:00Z"
}

Error Handling

The API returns appropriate HTTP status codes and error messages for different scenarios.

400 Bad Request

Invalid request data or missing required fields

{
  "error": "Invalid request data",
  "details": [
    {
      "field": "type",
      "message": "Invalid feedback type"
    }
  ]
}
401 Unauthorized

Missing or invalid API key

{
  "error": "Invalid API key"
}
429 Too Many Requests

Rate limit exceeded

{
  "error": "Rate limit exceeded"
}

Rate Limiting

API requests are rate limited to prevent abuse. The current limits are:

10 requests per minute per IP address
1000 requests per hour per API key
10,000 requests per day per API key

SDK Examples

JavaScript

// Using fetch
const response = await fetch('https://api.feedbackkit.io/feedback', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'x-api-key': 'YOUR_API_KEY'
  },
  body: JSON.stringify({
    type: 'bug',
    priority: 'high',
    title: 'Login button not working',
    description: 'Users cannot log in on mobile devices'
  })
});

const result = await response.json();
console.log(result);

React Component

import { FeedbackWidget } from 'feedbackkit';

function App() {
  return (
    <FeedbackWidget apiKey="YOUR_API_KEY" appName="My App" />
  );
}