API Reference
Feedback API
REST API for submitting and managing feedback.
The Feedback API is used by the widget to submit and retrieve feedback. You can also use it directly for custom integrations.
Base URL: https://faster-fixes.com/api/v1
Authentication
All requests require two headers:
| Header | Description |
|---|---|
x-api-key | Your project API key |
x-reviewer-token | A valid reviewer token |
Requests are also validated against the project's registered Origin. Make sure your requests include an Origin header matching your project's configured URL.
Submit feedback
POST /feedback
Content-Type: multipart/form-dataBody (multipart form)
| Field | Type | Required | Description |
|---|---|---|---|
data | JSON string | Yes | Feedback data (see below) |
screenshot | File | No | PNG, JPEG, or WebP screenshot (max 5MB) |
data JSON fields
| Field | Type | Required | Description |
|---|---|---|---|
comment | string | Yes | Feedback comment |
pageUrl | string | Yes | Page URL where feedback was left |
selector | string | No | DOM selector of the annotated element |
clickX | number | No | Click X coordinate |
clickY | number | No | Click Y coordinate |
browserName | string | No | Browser name |
browserVersion | string | No | Browser version |
os | string | No | Operating system |
viewportWidth | number | No | Viewport width |
viewportHeight | number | No | Viewport height |
metadata | object | No | Custom metadata |
Response
{
"id": "uuid",
"status": "new",
"comment": "The button color should be blue",
"pageUrl": "https://myapp.com/dashboard",
"selector": "[data-testid=\"save-btn\"]",
"clickX": 450,
"clickY": 320,
"screenshotUrl": "https://...",
"metadata": {},
"reviewer": { "id": "uuid", "name": "Sarah" },
"createdAt": "2025-01-15T10:30:00Z"
}List feedback
GET /feedbackReturns all feedback for the project. Optionally filter by page URL.
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
url | string | No | Filter by page URL |
Response
{
"feedback": [
{
"id": "uuid",
"status": "new",
"comment": "The button color should be blue",
"pageUrl": "https://myapp.com/dashboard",
"selector": "[data-testid=\"save-btn\"]",
"clickX": 450,
"clickY": 320,
"screenshotUrl": "https://...",
"metadata": {},
"reviewer": { "id": "uuid", "name": "Sarah" },
"createdAt": "2025-01-15T10:30:00Z"
}
]
}Update feedback
PUT /feedback/:id
Content-Type: application/jsonBody
| Field | Type | Required | Description |
|---|---|---|---|
comment | string | Yes | Updated comment |
Response
{
"id": "uuid",
"comment": "Updated comment text",
"updatedAt": "2025-01-15T11:00:00Z"
}Delete feedback
DELETE /feedback/:idPermanently deletes the feedback item. Returns 204 No Content.
Rate limits
| Action | Limit |
|---|---|
| Write operations (submit, update, delete) | 100 requests/hour |
| Read operations | 1,000 requests/hour |