ForHosting KIT · Text & AI

Analyze feedback

Raw customer feedback arrives as noise — a support ticket here, a survey comment there, a tweet nobody flagged — and by the time someone compiles it into a slide, the urgency that mattered has already faded. This endpoint reads unstructured comments directly and returns the themes inside them, the sentiment attached to each, and a priority ranking for what deserves attention first.

● StablePer request + per batch$0.003
Use it from WebAPIEmailApp soonTelegram soon

Run this on our servers with your account. Free tools run in your browser; this one bills your KIT balance per the price above.

Feedback is a job nobody has time to finish

Most companies collect far more feedback than they analyze — it sits in support tickets, app store reviews, NPS comment fields and sales call notes, technically 'available' but never actually synthesized because doing it by hand for hundreds of comments a week isn't a real option for most teams. The result is a company that collects feedback dutifully and then makes decisions based on whoever complained loudest in the last meeting.

Themes, sentiment, priority — three separate outputs

You POST a batch of raw comments, and the task returns three distinct layers: the themes actually present in the text (grouped by what the comments are about, not by a fixed taxonomy you have to predefine), the sentiment attached to each theme rather than one blended score for the whole batch, and a priority ranking that weighs how often a theme recurs against how strongly it's expressed. A theme mentioned rarely but with real anger ranks differently than one mentioned often but mildly.

Who this is built for

Product managers trying to separate a real pattern from one vocal user's pet issue. Customer success teams that need to know which accounts are at genuine risk versus mildly annoyed. Support leads who want to know what's actually driving ticket volume this month without reading every ticket personally. It fits anywhere feedback accumulates faster than a person can read it with real attention.

Why sentiment and theme have to be separate

A single sentiment score for a whole comment hides the fact that customers are often positive about one thing and frustrated about another in the same sentence — 'love the new design, but checkout still fails on mobile' is not one feeling, it's two, about two different things. Splitting sentiment by theme instead of blending it into one number is the difference between a report that's technically accurate and one that's actually useful for deciding what to fix.

Closing the loop automatically

Because output arrives as structured JSON via webhook, new high-priority themes can trigger an alert the moment they're detected, feed a live dashboard instead of a stale monthly deck, or route straight into a product backlog — turning feedback from something a team reviews quarterly into something it responds to the same week it appears.

Prioritizing the product roadmap

A product team runs a month of support tickets and survey comments through the endpoint to see which themes are both frequent and strongly felt, not just loud.

Catching at-risk accounts early

A customer success team scores recent comments from key accounts to flag genuine dissatisfaction before it turns into churn.

Explaining a spike in support volume

A support lead feeds in this month's tickets to identify the specific theme driving an unexplained jump in ticket count.

Turning NPS comments into action items

A team that collects NPS scores with open comments runs the comment field through the endpoint to get themes and priority instead of just a number.

How does the customer feedback analysis API work?

You POST a batch of raw comments to /text/feedback-analyze, the task runs asynchronously, and you receive themes, sentiment per theme and a priority ranking via webhook or signed link.

Is there a free trial?

There's no free tier — free tiers get abused and slow everyone down. Access runs on a prepaid ForHosting KIT balance: top up from $10.00 (it never expires) and each request is charged at its published price, so a call with no balance returns HTTP 402. No subscription, no tokens, no invented credits, and a failed task is never charged.

Do I need to predefine categories or themes?

No, themes are extracted from what the comments actually contain rather than matched against a fixed taxonomy you set up beforehand.

How is priority calculated?

Priority weighs how often a theme recurs across the batch against how strongly it's expressed, so a rare but intense complaint can outrank a common but mild one.

Can I analyze feedback in bulk?

Yes, pricing is per request plus per batch, so a large collection of comments can be submitted and analyzed together.

Am I charged if a task fails?

No. Failed tasks retry automatically up to three times and are never charged; you only pay for analysis actually delivered.

How is this different from a single sentiment score?

A single score hides mixed feelings within one comment; this endpoint splits sentiment by theme so praise and frustration in the same comment don't cancel each other out.

Can this feed a live dashboard instead of a periodic report?

Yes, because results are delivered via signed webhook, new themes and priority shifts can update a dashboard or trigger an alert as soon as they're detected.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/text/feedback-analyze

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, and soon from our app, email and Telegram.

curl -X POST https://api.kit.forhosting.com/text/feedback-analyze \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":"…"}'
{
  "input": "…"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "text.feedback_analyze",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.003
Per batch$0.0135

Published price — no tokens, no invented credits. A failed task is never charged.

max_tokens20000
HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.
422task_failedThe task failed after 3 retries. You are never charged for it.

Read the full KIT documentation →