Ingestion API
Capture feedback
Send one piece of customer feedback.
Endpoint
POST/api/v1/feedback
Body
| Field | Type | Description |
|---|---|---|
feedback | string | Required. The feedback text (max 5,000 characters). Alias: message. |
rating | integer | 1 to 5. |
source | string | Where it came from, e.g. website, in_app, email, app_store. |
externalId | string | Your id for this feedback; sending it twice doesn't create a duplicate. |
page | string | Page or screen it was sent from. |
category | string | Optional category hint. |
productArea | string | Optional product-area hint. |
createdAt | string | ISO date, when it was written. Defaults to now. |
metadata | object | Extra data (max 8 KB). |
externalCustomerId | string | Your id for the customer (preferred). Alias: customerId. |
email | string | Customer email. Used when there's no external id. |
name | string | Customer name. |
company | string | Customer's company. |
plan | string | Plan name, e.g. "pro". |
mrr | number | Monthly revenue from this customer (major units). |
currency | string | 3-letter code for mrr, e.g. USD. |
Example
cURL
curl -X POST https://YOUR-CORVANEOS-HOST/api/v1/feedback \
-H "Authorization: Bearer atl_sk_..." \
-H "Content-Type: application/json" \
-d '{
"feedback": "Dashboard becomes very slow while exporting reports.",
"rating": 2,
"source": "in_app",
"externalCustomerId": "cus_42",
"email": "ana@acme.com",
"plan": "pro"
}'Response · 201
{
"success": true,
"feedbackId": "7b1c…",
"customerId": "d93e…",
"duplicate": false,
"receivedAt": "2026-09-29T10:12:00.000Z"
}