withfeedback¶
Collect feedback and testimonials from your customers, moderate them, and put the good ones on your site.
Everything below is one product with two halves. You collect through a hosted page, an embeddable widget, a survey, a CSV import or the API. You then approve what you want to use, and display it as a wall or a carousel on your own pages.
-
From signup to a testimonial on your own site.
-
REST over HTTPS, token or OAuth2, scoped per resource.
-
Moderate from Claude or Cursor, without a browser.
-
withfeedbackin your terminal or CI.
The shape of it¶
flowchart LR
A[Hosted page] --> M
B[Widget] --> M
C[Survey / NPS] --> M
D[CSV import] --> M
E[API / MCP / CLI] --> M
M[Moderation queue] -->|you approve| P[Approved]
P --> W[Wall / carousel widget]
P --> API[API + webhooks]
Two rules run through the whole product, and they are worth knowing before you start:
Nothing becomes public without a person approving it
Every submission arrives pending, whatever door it came through β and that includes anything the AI moderation flags as good. Approval is an action a human takes. There is no setting that publishes automatically.
Display needs consent, separately
A submission is only shown publicly when it is approved and the person gave display consent. Those are two different facts, stored separately. A withdrawal removes the item from every embed and deletes the video.
For developers¶
The API, the MCP server and the CLI all speak to the same resources and honour the same permissions and scopes. Nothing in the dashboard is unavailable to them.
| I want to⦠| Read |
|---|---|
| Call the API from my backend | Authentication β Scopes |
| Post a submission from my own front end | Public plane |
| React to a new testimonial | Webhooks |
| Moderate from my editor | MCP server |
| Script it in CI | CLI |
| Put a video recorder on my site | Video |
The full machine-readable contract is the OpenAPI schema at
https://withfeedback.com/api/schema/, with browsable versions at
/api/docs/ (Swagger UI) and /api/redoc/.