iOS feedback intake
JSON-over-HTTP intake designed for in-app feedback. The minimum payload is a single message; everything else (device, OS, screen, repro steps, attachments) is
optional and only worth sending when the app already knows it.
API key JSON or multipart Base64 attachments
Minimum payload
POST /api/v1/intakes/my-ios-intake/submit
Authorization: Bearer lfk_xxxxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Content-Type: application/json
{
"message": "The settings screen is confusing when changing notification preferences."
} Useful optional fields
| Field | Purpose |
|---|---|
title | Cleaner brief card title. Falls back to the first line of message. |
feedback_type | Pre-classify (bug / feature_request / customer_feedback). |
screen_name | The screen the user was on when they hit "Send feedback". |
app_version / os_version | For triage and reproducibility. |
reproduction_steps | Free text. Shown verbatim on the brief. |
expected_behavior / actual_behavior | Standard bug-report shape. |
attachments[] | Screenshots, logs. Base64 in JSON, or multipart form fields named attachments. |
Rich example
POST /api/v1/intakes/my-ios-intake/submit
Authorization: Bearer lfk_xxxxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Content-Type: application/json
{
"title": "Checkout freezes on Apple Pay handoff",
"message": "After tapping Pay, the screen turns grey and the app stops responding.",
"feedback_type": "bug",
"screen_name": "CheckoutViewController",
"app_version": "3.4.1 (1208)",
"os_version": "iOS 17.4",
"reproduction_steps": "1. Add item\n2. Tap checkout\n3. Tap Apple Pay",
"expected_behavior": "Apple Pay sheet appears",
"actual_behavior": "Screen greys out, no sheet",
"attachments": [
{ "filename": "screen.png", "content_type": "image/png", "data_base64": "iVBORw0KGgo..." }
]
} Where unmapped fields go
Anything you send that isn't a recognised field is preserved on the brief, untouched. The agents only see the normalised brief, but reviewers can always drill into the raw payload from the brief detail page if they need to check what came in.
Don't ask the user for what the device knows. Pre-fill app_version, os_version, screen_name from your app
and keep the form short. Lithify's refining agent does much better with rich context than
with a long form.