> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pocketsflow.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Testimonials

> Moderate buyer testimonials, change the request settings and render a product wall with your API key or from an AI agent over MCP.

A testimonial is a review with extras: the buyer's stars and words, their
consent, the name they chose and an optional short video. Buyers send them
from the page linked in the request email. Product guide:
[Testimonials](/selling/testimonials).

<Note>
  Growth plan and above. Approving or featuring a testimonial, and saving the
  settings with any switch on, answer `403` with `code: FEATURE_LOCKED` on a
  plan without testimonials. Reading, hiding and switching off stay open.
</Note>

## Endpoints

| Method | Endpoint | Operation ID | MCP tool |
| - | - | - | - |
| `GET` | `/testimonials` | `listTestimonials` | `list_testimonials` |
| `GET` | `/testimonials/{id}` | `getTestimonial` | `get_testimonial` |
| `PATCH` | `/testimonials/{id}` | `moderateTestimonial` | `moderate_testimonial` |
| `GET` | `/testimonials/settings` | `getTestimonialSettings` | `get_testimonial_settings` |
| `PUT` | `/testimonials/settings` | `updateTestimonialSettings` | `update_testimonial_settings` |
| `GET` | `/testimonials/public/products/{productId}` | `getTestimonialWall` (public) | — |

## Moderate

```bash theme={"system"}
# What's waiting
curl https://api.pocketsflow.com/testimonials?status=pending \
  -H "Authorization: Bearer $POCKETSFLOW_API_KEY"

# Feature one (featuring also approves it)
curl -X PATCH https://api.pocketsflow.com/testimonials/6712b0c49e3f1a0012cd9911 \
  -H "Authorization: Bearer $POCKETSFLOW_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "featured": true }'
```

`status` is `pending`, `approved` or `hidden`. `featured: true` approves;
hiding or moving back to pending un-features. The list also returns `counts`
for every tab (`pending`, `approved`, `featured`, `hidden`, `all`).

## Settings

```json theme={"system"}
{
  "requestEnabled": true,
  "delayDays": 7,
  "askVideo": true,
  "wallEnabled": true,
  "checkoutStrip": true
}
```

`delayDays` is 1 to 60. Fields left out keep their value.

## Render a wall on your own site

`GET /testimonials/public/products/{productId}` needs no key. It returns up to
24 approved testimonials of live orders, featured first, with the name to show
and the video URL. It never includes an email or an order id, and answers
`enabled: false` when the store has the wall and the strip off or its plan no
longer includes testimonials.

## Webhook: `testimonial.submitted`

Sent when a buyer sends a testimonial from the request page. It waits for your
moderation. A new review also fires `review.created`.

```json theme={"system"}
{
  "id": "evt_6a43ce05fae6c4f0cb5a2193",
  "type": "testimonial.submitted",
  "created": 1767225600,
  "testimonial": {
    "id": "6712b0c49e3f1a0012cd9911",
    "productId": "665f1c2a9b3e4a0012ab34cd",
    "productName": "Notion Creator Kit",
    "saleId": "6711a3d59e3f1a0012cd7799",
    "buyerEmail": "jordan@example.com",
    "displayName": "Jordan S.",
    "rating": 5,
    "text": "Saved me hours every week.",
    "video": {
      "url": "https://d372ebr33sbljd.cloudfront.net/testimonials/…/9f2c1e.webm",
      "contentType": "video/webm",
      "durationSeconds": 41.2
    },
    "status": "pending",
    "submittedAt": "2026-10-12T09:30:00.000Z"
  }
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.