Developer Docs

API Reference

Everything you need to integrate with the ClientLens feedback API. Submit feedback programmatically from any platform.

Base URL

https://clientlens.online/api/v1
Auth

Authentication

All SDK API requests are authenticated using your project key.

Project Key

Include your project key in the X-Project-Key header with every request. You can find your project key in the project settings page of your dashboard.

// Request header
X-Project-Key: your-project-key-here

Keep your project key secure. While it is designed for client-side use in mobile SDKs, avoid exposing it in public repositories or client-facing web applications.

Endpoint

Submit Feedback

Send user feedback including screenshots and device information.

POST /api/v1/sdk/feedback

Content-Type: multipart/form-data -- Required because the endpoint accepts file uploads.

Request Body

Field Type Required Description
type string Yes Feedback type. One of: bug, feature, improvement, other
title string Yes Short summary of the feedback (max 255 characters)
description string No Detailed description of the feedback
screenshot file No Screenshot image file (PNG, JPG, max 10 MB)
device_model string No Device model name (e.g., "iPhone 15 Pro", "Pixel 8")
os_version string No Operating system version (e.g., "iOS 17.2", "Android 14")
app_version string No Your application version string (e.g., "2.1.0")
screen_name string No Name or identifier of the screen where feedback was captured
extra_data JSON string No Arbitrary JSON object with additional context data

Example Request

cURL
curl -X POST https://clientlens.online/api/v1/sdk/feedback \
  -H "X-Project-Key: your-project-key-here" \
  -H "Accept: application/json" \
  -F "type=bug" \
  -F "title=App crashes on profile page" \
  -F "description=When I tap the edit button, the app freezes and then crashes." \
  -F "screenshot=@/path/to/screenshot.png" \
  -F "device_model=iPhone 15 Pro" \
  -F "os_version=iOS 17.2" \
  -F "app_version=2.1.0" \
  -F "screen_name=ProfileScreen" \
  -F 'extra_data={"user_id":"usr_123","session_id":"sess_abc"}'

Example Response

Response
201 Created
{
  "success": true,
  "data": {
    "id": 142,
    "type": "bug",
    "title": "App crashes on profile page",
    "description": "When I tap the edit button...",
    "status": "open",
    "device_model": "iPhone 15 Pro",
    "os_version": "iOS 17.2",
    "app_version": "2.1.0",
    "screen_name": "ProfileScreen",
    "screenshot_url": "https://clientlens.online/storage/screenshots/3/a1b2c3.png",
    "created_at": "2026-02-22T10:30:00.000000Z"
  }
}

Error Codes

401

Missing or invalid X-Project-Key header

422

Validation error (missing required fields or invalid values)

429

Rate limit exceeded (60 requests/minute)

500

Internal server error

Limits

Rate Limits

Fair usage limits to ensure reliability for all users.

60 requests per minute

Each project key is limited to 60 feedback submissions per minute. If you exceed this limit, the API will return a 429 status code.

// Rate limit headers included in every response
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 58
X-RateLimit-Reset: 1708603200

Ready to integrate?

Use our drop-in SDKs for the fastest integration, or call the API directly.