# All Audio Reviews
Source: https://docs.feedspace.io/api-reference/AudioReviews/all-audio-reviews
GET /feeds
Get a paginated list of reviews across the workspace. Supports optional filters: `filter[search]`, `filter[feed-types][]`, `filter[favourite]`, `filter[review_with_comment]`, `filter[sentiments][]`, `filter[star-rating][]`, `filter[feed-forms][]`, `filter[review-labels][]`, and `filter[imported-froms][]`. All filters are optional; filters of different types are AND-combined, while values within a single filter array are OR-combined (except `filter[star-rating][]`, which matches the inclusive range between the lowest and highest values sent).
Get a paginated list of all audio reviews received.
## Query Parameters
* `filter[feed-types][]` (required): Set to `"audio"` to filter audio reviews
* `page` (optional): Page number for pagination (default: 1)
## Example Request
```bash theme={null}
GET /feeds?filter[feed-types][]=audio&page=1
```
## Response
Returns a paginated list of audio reviews with reviewer details, question answers, and other details.
# Update Audio Review
Source: https://docs.feedspace.io/api-reference/AudioReviews/edit-audio-review
POST /feeds/audio/{id}
Edit a specific audio review.
# Single Audio Review
Source: https://docs.feedspace.io/api-reference/AudioReviews/single-audio-review
GET /feeds/audio/{id}
Get details of a specific audio review by its ID.
# Delete Audio Review
Source: https://docs.feedspace.io/api-reference/AudioReviews/soft-delete
DELETE /feeds/audio/{id}
Delete a specific audio review from the list.
# Create Contact Tag
Source: https://docs.feedspace.io/api-reference/ContactTags/create-tag
POST /contact-tags
Create a contact tag. Tag names must be unique within the workspace.
Create a contact tag. Tag names must be unique within the workspace.
# Delete Contact Tag
Source: https://docs.feedspace.io/api-reference/ContactTags/delete-tag
DELETE /contact-tags/{id}
Delete a contact tag. Its assignments to contacts are removed automatically.
# List Contact Tags
Source: https://docs.feedspace.io/api-reference/ContactTags/list-tags
GET /contact-tags
List all contact tags in the workspace, each with the number of contacts carrying it.
List all contact tags in the workspace, each with the number of contacts carrying it.
Like the Contacts endpoints, contact tags require the workspace's plan and role to include email automation. If the account does not have it, these endpoints return `403`.
# Update Contact Tag
Source: https://docs.feedspace.io/api-reference/ContactTags/update-tag
PUT /contact-tags/{id}
Update a contact tag. Only the fields you send are changed; sending `color: null` does not clear it.
Update a contact tag. Only the fields you send are changed; sending `color: null` does not clear it.
# Assign Tags to Contact
Source: https://docs.feedspace.io/api-reference/Contacts/assign-tags
POST /contacts/{id}/tags
Assign one or more tags to a contact. Idempotent — tags already present are left as-is.
Assign one or more tags to a contact. Idempotent — tags already present are left as-is. Tag IDs come from [List Contact Tags](/api-reference/ContactTags/list-tags).
# Create or Update Contact
Source: https://docs.feedspace.io/api-reference/Contacts/create-contact
POST /contacts
Create or update a contact. This is an **upsert keyed on email** (within the workspace): if a contact with the same email exists it is updated, otherwise it is created. On an existing contact, scalar fields are only filled where they are currently empty (customer-entered values are preserved), and tags are attached only when the contact is newly created. The response `status` field tells you which happened. Contacts created through the API key are stamped `primary_source: "public_api"`.
Create a contact, or update an existing one with the same email. The response `status` field (`created`, `updated`, or `unchanged`) tells you which happened, so integrations can branch without a separate lookup.
On an existing contact, scalar fields are only filled where they are currently empty — customer-entered values are never overwritten — and tags are attached only when the contact is newly created.
# Delete Contact
Source: https://docs.feedspace.io/api-reference/Contacts/delete-contact
DELETE /contacts/{id}
Delete a contact. This is a soft delete.
# Get Contact
Source: https://docs.feedspace.io/api-reference/Contacts/get-contact
GET /contacts/{id}
Get a single contact plus its activity timeline.
Get a single contact together with its activity timeline.
# List Contacts
Source: https://docs.feedspace.io/api-reference/Contacts/list-contacts
GET /contacts
List contacts in the workspace. Contacts power Feedspace's email automation and are commonly synced from external platforms (Zapier, Pabbly, Make, n8n). Requires the workspace's plan/role to include email automation.
Contacts power Feedspace's email automation. They are commonly synced from external platforms (Zapier, Pabbly, Make, n8n) using your API key.
Contact endpoints require the workspace's plan and role to include email automation. If the account does not have it, these endpoints return `403`.
# Remove Tags from Contact
Source: https://docs.feedspace.io/api-reference/Contacts/unassign-tags
DELETE /contacts/{id}/tags
Remove one or more tags from a contact. Send the tag IDs in the request body.
Remove one or more tags from a contact. Send the tag IDs in the request body.
# Unsubscribe Contact
Source: https://docs.feedspace.io/api-reference/Contacts/unsubscribe-contact
POST /contacts/{id}/unsubscribe
Unsubscribe a contact from email automation. Idempotent: if the contact is already unsubscribed, the existing reason and timestamp are kept.
Unsubscribe a contact from email automation. Idempotent — if the contact is already unsubscribed, the existing reason and timestamp are kept.
# Update Contact
Source: https://docs.feedspace.io/api-reference/Contacts/update-contact
PUT /contacts/{id}
Update a contact's profile fields. Only the fields you send are changed. Email, source, and subscription state cannot be changed here (use the upsert for email, and the unsubscribe endpoint for subscription state).
Update a contact's profile fields. Only the fields you send are changed. Email and source cannot be changed here; use [Create or Update Contact](/api-reference/Contacts/create-contact) for email and the [Unsubscribe](/api-reference/Contacts/unsubscribe-contact) endpoint for subscription state.
# List All Reviews
Source: https://docs.feedspace.io/api-reference/Feeds/list-feeds
GET /feeds
Get a paginated list of reviews across the workspace. Supports optional filters: `filter[search]`, `filter[feed-types][]`, `filter[favourite]`, `filter[review_with_comment]`, `filter[sentiments][]`, `filter[star-rating][]`, `filter[feed-forms][]`, `filter[review-labels][]`, and `filter[imported-froms][]`. All filters are optional; filters of different types are AND-combined, while values within a single filter array are OR-combined (except `filter[star-rating][]`, which matches the inclusive range between the lowest and highest values sent).
Get a paginated list of all reviews across the workspace — text, audio, video, and social — in a single response. Use the query parameters below to narrow the results.
## Filters
All filters are optional. Filters of **different** types are combined with **AND**; values within a **single** filter array are combined with **OR**.
Supported query filters:
* `filter[search]` — free-text keyword search across reviewer name and review text
* `filter[feed-types][]` — review type (`video`, `audio`, `text`, `social`)
* `filter[favourite]` — favourited reviews only (`true`)
* `filter[review_with_comment]` — reviews with a non-empty comment (`true`)
* `filter[sentiments][]` — AI-detected sentiment (`positive`, `negative`, `neutral`)
* `filter[star-rating][]` — star rating (`1`–`5`)
* `filter[feed-forms][]` — review form ID(s)
* `filter[review-labels][]` — review label ID(s)
* `filter[imported-froms][]` — import source platform ID(s)
### `filter[search]`
Free-text keyword search. Matches the keyword as a **case-insensitive substring** against the reviewer's name and the review text/comment, returning only reviews that contain it.
Multi-word strings are matched literally — `excellent service` returns reviews containing that exact run of text. Encode the space as `%20` or `+`.
Use `filter[search]`. The bare `search` query parameter has **no effect** on this endpoint and is silently ignored — no error is returned.
A keyword that matches nothing returns an **empty** result, so you can rely on this filter for client-side search without extra validation. This differs from `filter[feed-types][]` and `filter[sentiments][]`, which silently drop *unrecognised values* and return the full unfiltered list.
```bash Single word theme={null}
curl -g -u "$API_KEY:$SECRET_KEY" \
'https://api.feedspace.io/v3/feeds?filter[search]=Dewalt'
```
```bash Multi-word theme={null}
curl -g -u "$API_KEY:$SECRET_KEY" \
'https://api.feedspace.io/v3/feeds?filter[search]=excellent%20service'
```
### `filter[feed-types][]`
Restrict results to specific review types. Allowed values: `video`, `audio`, `text`, `social`.
Pass only the values listed above. If you send an unknown value (e.g. a typo like `vidoe`), the filter is silently dropped and the API returns the full unfiltered list of reviews — not an error. Validate your input client-side before sending.
`social` currently has no effect. `filter[feed-types][0]=social` returns the exact same page of reviews, in the same order, as the same request with no filter at all — verified against the live API, where a valid value like `text` does change the result. If you need social-only results, filter client-side on `feed_type: "social_feed"` in the response instead.
This filter matches by **content type, not by the stored `feed_type` column.** In particular, `text` returns any review that **carries text content** — including a social post that was imported with text (a social review can appear under the `text` filter). Likewise `video` matches imported social videos (`social_feed_type: "manual_video"`) and `audio` matches imported social audio.
Because of that, an `id` from a type-filtered list is not guaranteed to work on the matching single-review endpoint. A list filtered to `text` can come back with every item carrying `feed_type: "social_feed"`, and passing one of those ids to [Get Text Review](/api-reference/TextReviews/single-text-review) returns `404 Review not found`. Check each item's `feed_type` before using its `id` with [Get Text Review](/api-reference/TextReviews/single-text-review), [Get Video Review](/api-reference/VideoReviews/single-video-review) or [Get Audio Review](/api-reference/AudioReviews/single-audio-review).
```bash Single theme={null}
curl -g -u "$API_KEY:$SECRET_KEY" \
'https://api.feedspace.io/v3/feeds?filter[feed-types][0]=video'
```
```bash Multiple (OR) theme={null}
curl -g -u "$API_KEY:$SECRET_KEY" \
'https://api.feedspace.io/v3/feeds?filter[feed-types][0]=video&filter[feed-types][1]=audio'
```
```bash All four theme={null}
curl -g -u "$API_KEY:$SECRET_KEY" \
'https://api.feedspace.io/v3/feeds?filter[feed-types][0]=video&filter[feed-types][1]=audio&filter[feed-types][2]=text&filter[feed-types][3]=social'
```
### `filter[favourite]`
Return only favourited reviews. Pass `true` to enable; omit this parameter to include favourited and non-favourited reviews.
The value is read as a string, not a boolean, so only its truthiness matters. `true` and `1` return favourited reviews only. **`false` also returns favourited reviews only**, because it is a non-empty string. `0` behaves as though the parameter were absent and returns everything. No value returns non-favourited reviews only; filter those out client-side.
```bash theme={null}
curl -g -u "$API_KEY:$SECRET_KEY" \
'https://api.feedspace.io/v3/feeds?filter[favourite]=true'
```
### `filter[review_with_comment]`
Return only reviews that have a non-empty comment. Pass `true` to enable; omit this parameter to include reviews with or without comments.
The same string-truthiness rule as `filter[favourite]` above. `true`, `1` and **`false`** all return reviews with comments only; `0` behaves as though the parameter were absent. No value returns comment-less reviews only.
```bash theme={null}
curl -g -u "$API_KEY:$SECRET_KEY" \
'https://api.feedspace.io/v3/feeds?filter[review_with_comment]=true'
```
### `filter[sentiments][]`
Filter by AI-detected sentiment. Allowed values: `positive`, `negative`, `neutral`.
Pass only the values listed above. If you send an unknown value, the filter is silently dropped and the API returns the full unfiltered list of reviews — not an error. Validate your input client-side before sending.
```bash Single theme={null}
curl -g -u "$API_KEY:$SECRET_KEY" \
'https://api.feedspace.io/v3/feeds?filter[sentiments][0]=positive'
```
```bash Multiple (OR) theme={null}
curl -g -u "$API_KEY:$SECRET_KEY" \
'https://api.feedspace.io/v3/feeds?filter[sentiments][0]=positive&filter[sentiments][1]=neutral&filter[sentiments][2]=negative'
```
### `filter[star-rating][]`
Filter by star rating. Accepts integers from `1` through `5`.
Pass only integers `1`–`5`. Out-of-range values (e.g. `99`) return an empty result, while non-numeric values (e.g. `abc`) are coerced to `0` and may return unrated items. Validate your input client-side.
```bash Single theme={null}
curl -g -u "$API_KEY:$SECRET_KEY" \
'https://api.feedspace.io/v3/feeds?filter[star-rating][0]=5'
```
```bash Multiple (OR) theme={null}
curl -g -u "$API_KEY:$SECRET_KEY" \
'https://api.feedspace.io/v3/feeds?filter[star-rating][0]=4&filter[star-rating][1]=5'
```
### `filter[feed-forms][]`
Filter to reviews collected via specific review forms. Pass the numeric form `id` — **not** `unique_form_id`.
Get the numeric `id` from the [List Review Forms](/api-reference/ReviewForms/get-all-forms) endpoint — it is the integer `id` field on each form object.
```bash theme={null}
curl -g -u "$API_KEY:$SECRET_KEY" \
'https://api.feedspace.io/v3/feeds?filter[feed-forms][0]=10644'
```
### `filter[review-labels][]`
Filter by review label ID(s). Label IDs are strings (e.g. `01krk3zwze14apa6gmx045ky8a`).
Get the available label IDs from the [List Review Labels](/api-reference/Labels/list-labels) endpoint — use the `id` field from each label object.
```bash theme={null}
curl -g -u "$API_KEY:$SECRET_KEY" \
'https://api.feedspace.io/v3/feeds?filter[review-labels][0]=01krk3zwze14apa6gmx045ky8a'
```
### `filter[imported-froms][]`
Filter to reviews imported from specific source platforms (Google, YouTube, Wistia, Product Hunt, etc.). Accepts numeric platform IDs.
A public listing endpoint for import-platform IDs is on the roadmap. Until then, contact support to obtain the ID mapping for the platforms relevant to your workspace.
```bash theme={null}
curl -g -u "$API_KEY:$SECRET_KEY" \
'https://api.feedspace.io/v3/feeds?filter[imported-froms][0]=21'
```
## Pagination
Results are paginated with **15 items per page**. Use `?page=` to navigate.
```bash theme={null}
curl -u "$API_KEY:$SECRET_KEY" \
'https://api.feedspace.io/v3/feeds?page=2'
```
The response includes `first_page_url`, `next_page_url`, and `prev_page_url`. `next_page_url` is `null` on the last page; `prev_page_url` is `null` on the first.
There is no total count in the response, so the number of matching reviews cannot be read from a single call. Follow `next_page_url` until it is `null`.
## Combining filters
Mix any of the above; a keyword search combines with the other filters the same way (AND). The example below requests positive-sentiment reviews that mention `Dewalt`:
```bash theme={null}
curl -g -u "$API_KEY:$SECRET_KEY" \
'https://api.feedspace.io/v3/feeds?filter[search]=Dewalt&filter[sentiments][0]=positive'
```
This next example requests favourited video- or audio-type reviews with positive sentiment, a 4- or 5-star rating, and a non-empty comment:
```bash theme={null}
curl -g -u "$API_KEY:$SECRET_KEY" \
'https://api.feedspace.io/v3/feeds?filter[feed-types][0]=video&filter[feed-types][1]=audio&filter[favourite]=true&filter[sentiments][0]=positive&filter[star-rating][0]=4&filter[star-rating][1]=5&filter[review_with_comment]=true'
```
## URL encoding the brackets
The `filter[...]` syntax contains literal `[` and `]`. Most HTTP clients (Postman, Python `requests`, JavaScript `fetch`, Insomnia) handle this transparently. Two things to watch for:
* **`curl`** interprets `[` and `]` as URL-globbing ranges by default. Add the `-g` flag (alias `--globoff`) — or URL-encode as `%5B` and `%5D` — to suppress that behaviour:
```bash theme={null}
curl -g -u "$API_KEY:$SECRET_KEY" \
'https://api.feedspace.io/v3/feeds?filter[feed-types][0]=video'
```
* **Browsers / fully-encoded clients** will accept the percent-encoded form too:
```
https://api.feedspace.io/v3/feeds?filter%5Bfeed-types%5D%5B0%5D=video
```
## Response shape
Each item in `data.data[]` carries a top-level `feed_type` (`audio_feed`, `video_feed`, `text_feed`, or `social_feed`) which determines which type-specific block is present on the item:
* `feed_type: "audio_feed"` → `audio_feed` block with `file_url`, `transcript`, etc.
* `feed_type: "video_feed"` → `video_feed` block with `file_url`, `static_thumb_url`, `transcript`, etc.
* `feed_type: "text_feed"` → `text_feed` block with the review text content.
* `feed_type: "social_feed"` → `social_feed` block with `social_platform`, `attachments`, plus a `social_feed_type` field on the item (`social`, `manual_text`, `manual_video`) that indicates the sub-category.
All items also include `review_labels` (an array of `{ id, name, attributes }` objects) — possibly empty.
# Import Audio Review
Source: https://docs.feedspace.io/api-reference/ImportReviews/SelfImport/import-audio-review
POST /imports/self-imports/audio-review
Import an audio review manually into the workspace. All fields are optional. If `type` is 'file', then `attachments[]` (audio files) is required. If `type` is not 'file' or omitted, then `attachment_urls[]` is required.
# Import Text Review
Source: https://docs.feedspace.io/api-reference/ImportReviews/SelfImport/import-text-review
POST /imports/self-imports/text-review
Import a text review manually into the workspace. All fields are optional, but at least one of the following must be provided: `rating`, `review`, or `attachments`.
# Import Video Review
Source: https://docs.feedspace.io/api-reference/ImportReviews/SelfImport/import-video-review
POST /imports/self-imports/video-review
Import a video review manually into the workspace. All fields are optional. If `type` is 'file', then `attachments[]` (video files) is required. If `type` is not 'file' or omitted, then `attachment_urls[]` is required.
# Import from Web Link
Source: https://docs.feedspace.io/api-reference/ImportReviews/SelfImport/import-web-link
POST /imports/self-imports/web-link
Import Reviews from Web Link. Enter the web link url from where you want to import reviews into Feedspace.
# Screenshot to Review
Source: https://docs.feedspace.io/api-reference/ImportReviews/SelfImport/screenshot-to-review
POST /imports/self-imports/image-to-text-review
Screenshot to Review. Upload a screenshot of your review to automatically import it.
# List Review Labels
Source: https://docs.feedspace.io/api-reference/Labels/list-labels
GET /review-labels
Get all review labels defined in the workspace. Use the `id` returned by this endpoint as the value for `filter[review-labels][]` on GET /feeds.
Get all review labels defined in the workspace. Each label has a stable `id` that you can pass to `filter[review-labels][]` on [`GET /feeds`](/api-reference/Feeds/list-feeds) to fetch all reviews tagged with that label.
## Query Parameters
### `include[]`
Optional. Pass `reviews_count` to include the number of reviews tagged with each label.
An unrecognised value is ignored rather than rejected. A typo such as `include[]=review_count` returns `200` with the label objects and no `reviews_count` field, which reads like a workspace with no counts instead of an error. Confirm the field is present before relying on it.
```bash theme={null}
curl -g -u "$API_KEY:$SECRET_KEY" \
'https://api.feedspace.io/v3/review-labels?include[]=reviews_count'
```
## Response
Returns a `data` array of label objects:
```json theme={null}
{
"data": [
{
"id": "01krk3zwze14apa6gmx045ky8a",
"name": "liked",
"attributes": {
"css_color_code": "#EA580C"
},
"reviews_count": 1
}
]
}
```
| Field | Type | Description |
| --------------------------- | ------- | ----------------------------------------------------------------------------------------------- |
| `id` | string | Label ID. Pass to `filter[review-labels][]` on `GET /feeds`. |
| `name` | string | Display name of the label. |
| `description` | string | Optional description of the label. Null if not set. |
| `attributes.css_color_code` | string | Hex colour used to render the label in the UI. |
| `reviews_count` | integer | Number of reviews tagged with this label. Only present when `include[]=reviews_count` was sent. |
## Using a label ID
Once you have a label `id`, fetch all reviews tagged with it:
```bash theme={null}
curl -g -u "$API_KEY:$SECRET_KEY" \
'https://api.feedspace.io/v3/feeds?filter[review-labels][0]=01krk3zwze14apa6gmx045ky8a'
```
See [List All Reviews](/api-reference/Feeds/list-feeds) for the full set of filters supported on the reviews list endpoint.
# Create Review Form
Source: https://docs.feedspace.io/api-reference/ReviewForms/create-form
POST /forms
Creates a new review form.
Only `name` is required and validated on create. Any other field sent in the body is accepted and stored as provided, without validation. To change form settings with full validation applied, use `PUT /forms/{unique_form_id}` after creating the form.
# Delete Review Form
Source: https://docs.feedspace.io/api-reference/ReviewForms/delete-form
DELETE /forms/{unique_form_id}
Permanently deletes a review form by its `unique_form_id`.
**Reviews already collected through this form are not deleted.** They stay in your Feedbox and remain on any Wall of Love page or widget that already includes them.
The form's public page stops resolving as soon as the form is deleted. Deleting a form cannot be undone through the API.
If the form is embedded on your site, remove the embed code separately: deleting the form does not remove it from your pages.
# Get All Review Form
Source: https://docs.feedspace.io/api-reference/ReviewForms/get-all-forms
GET /forms
Returns a list of all review forms.
# Get Review Form
Source: https://docs.feedspace.io/api-reference/ReviewForms/get-form
GET /forms/{unique_form_id}
Returns a single review form by its `unique_form_id`.
# Update Review Form
Source: https://docs.feedspace.io/api-reference/ReviewForms/update-form
PUT /forms/{unique_form_id}
Updates an existing review form by its `unique_form_id`.
# All Social Reviews
Source: https://docs.feedspace.io/api-reference/SocialReviews/all-social-reviews
GET /feeds
Get a paginated list of reviews across the workspace. Supports optional filters: `filter[search]`, `filter[feed-types][]`, `filter[favourite]`, `filter[review_with_comment]`, `filter[sentiments][]`, `filter[star-rating][]`, `filter[feed-forms][]`, `filter[review-labels][]`, and `filter[imported-froms][]`. All filters are optional; filters of different types are AND-combined, while values within a single filter array are OR-combined (except `filter[star-rating][]`, which matches the inclusive range between the lowest and highest values sent).
Get a paginated list of social reviews received — testimonials imported from social platforms (G2, Trustpilot, Product Hunt, etc.) and manual or web-link imports stored as social records.
## Query Parameters
* `filter[feed-types][]` (required): Set to `"social"` to return social reviews
* `page` (optional): Page number for pagination (default: 1)
## Example Request
```bash theme={null}
GET /feeds?filter[feed-types][]=social&page=1
```
See [List All Reviews](/api-reference/Feeds/list-feeds) for every supported filter, and note that the type filter matches by content: a social review that carries text also appears under the `text` filter.
# Single Social Review
Source: https://docs.feedspace.io/api-reference/SocialReviews/single-social-review
GET /feeds/social/{id}
Get details of a specific social review by its ID. Social reviews are testimonials imported from social platforms (G2, Trustpilot, Product Hunt, etc.) and manual or web-link imports that are stored as social records.
Get details of a specific social review by its numeric ID (the `id` field from [List All Reviews](/api-reference/Feeds/list-feeds)).
# Delete Social Review
Source: https://docs.feedspace.io/api-reference/SocialReviews/soft-delete
DELETE /feeds/social/{id}
Delete a specific social review from the list. This is a soft delete.
# All Text Reviews
Source: https://docs.feedspace.io/api-reference/TextReviews/all-text-reviews
GET /feeds
Get a paginated list of reviews across the workspace. Supports optional filters: `filter[search]`, `filter[feed-types][]`, `filter[favourite]`, `filter[review_with_comment]`, `filter[sentiments][]`, `filter[star-rating][]`, `filter[feed-forms][]`, `filter[review-labels][]`, and `filter[imported-froms][]`. All filters are optional; filters of different types are AND-combined, while values within a single filter array are OR-combined (except `filter[star-rating][]`, which matches the inclusive range between the lowest and highest values sent).
Get a paginated list of all text reviews received.
## Query Parameters
* `filter[feed-types][]` (required): Set to `"text"` to filter text reviews
* `page` (optional): Page number for pagination (default: 1)
## Example Request
```bash theme={null}
GET /feeds?filter[feed-types][]=text&page=1
```
## Response
Returns a paginated list of text reviews with reviewer details, question answers, and other details.
# Update Text Review
Source: https://docs.feedspace.io/api-reference/TextReviews/edit-text-review
POST /feeds/text/{id}
Edit a specific text review.
Edit a specific text review. This endpoint accepts multipart/form-data and allows updating various fields of a text review.
# Single Text Review
Source: https://docs.feedspace.io/api-reference/TextReviews/single-text-review
GET /feeds/text/{id}
Get details of a specific text review by its ID.
Get details of a specific text review by its ID.
# Delete Text Review
Source: https://docs.feedspace.io/api-reference/TextReviews/soft-delete
DELETE /feeds/text/{id}
Delete a specific text review from the list.
# All Video Reviews
Source: https://docs.feedspace.io/api-reference/VideoReviews/all-video-reviews
GET /feeds
Get a paginated list of reviews across the workspace. Supports optional filters: `filter[search]`, `filter[feed-types][]`, `filter[favourite]`, `filter[review_with_comment]`, `filter[sentiments][]`, `filter[star-rating][]`, `filter[feed-forms][]`, `filter[review-labels][]`, and `filter[imported-froms][]`. All filters are optional; filters of different types are AND-combined, while values within a single filter array are OR-combined (except `filter[star-rating][]`, which matches the inclusive range between the lowest and highest values sent).
Get a paginated list of all video reviews received.
## Query Parameters
* `filter[feed-types][]` (required): Set to `"video"` to filter video reviews
* `page` (optional): Page number for pagination (default: 1)
## Example Request
```bash theme={null}
GET /feeds?filter[feed-types][]=video&page=1
```
## Response
Returns a paginated list of video reviews with reviewer details, question answers, and other details.
# Update Video Review
Source: https://docs.feedspace.io/api-reference/VideoReviews/edit-video-review
POST /feeds/video/{id}
Edit a specific video review.
# Single Video Review
Source: https://docs.feedspace.io/api-reference/VideoReviews/single-video-review
GET /feeds/video/{id}
Get details of a single Video Review.
# Delete Video Review
Source: https://docs.feedspace.io/api-reference/VideoReviews/soft-delete
DELETE /feeds/video/{id}
Delete a specific video review from the list.
# All Pages
Source: https://docs.feedspace.io/api-reference/WallOfLove/all-pages
GET /pages
Get all pages.
# Create Page
Source: https://docs.feedspace.io/api-reference/WallOfLove/create-page
POST /pages
Create a new page.
# Get All Reviews (Pages)
Source: https://docs.feedspace.io/api-reference/WallOfLove/get-reviews
GET /pages/feeds
Get all reviews for pages, with filters for review types, favourite, forms, imported sources, sentiments, ratings, labels, and search.
# Get Selected Reviews
Source: https://docs.feedspace.io/api-reference/WallOfLove/selected-feeds
POST /pages/selected-feeds
Get review details for selected review identifiers. This endpoint accepts an array of review identifiers and returns the corresponding review details formatted for pages.
# Update Page
Source: https://docs.feedspace.io/api-reference/WallOfLove/update-page
POST /pages/{unique_page_id}
Update an existing page. Send the body as `multipart/form-data` using a `POST` request with a `_method=PUT` field.
# Authentication
Source: https://docs.feedspace.io/api-reference/authentication
Feedspace API uses Basic Authentication for every API request. You must provide your API Key and Secret Key in the `Authorization` header using the Basic Auth scheme.
⚠️ **Keep your credentials secure!** Do not share your API Key or Secret Key with others or expose them in any client-side code (browsers, apps). Credentials should be securely loaded from an environment variable or key management service on the server.
Credentials are provided via the `Authorization` header in the following format:
```bash theme={null}
Authorization: Basic BASE64_ENCODED_CREDENTIALS
```
Where `BASE64_ENCODED_CREDENTIALS` is the Base64 encoding of `api_key:secret_key`. You can obtain your API Key and Secret Key from **[Feedspace → Automation → API](https://app.feedspace.io/automation/api)**.
### Example Request
```bash theme={null}
curl https://api.feedspace.io/v3/{ENDPOINT} \
--header 'Authorization: Basic '
```
Your API key belongs to a single workspace, so Feedspace infers the workspace from it.
# Responses
Source: https://docs.feedspace.io/api-reference/responses
The status codes the Feedspace API returns, the shape of each response body, and what to do about them.
Every response is JSON, including errors. You will never receive an HTML error page, so you can parse the body without checking the content type first.
## Status Codes
| Code | Meaning | What to do |
| ----- | ----------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| `200` | The request succeeded. | Read the `data` key. |
| `401` | The credentials were missing, malformed, or wrong. | Check your API Key and Secret Key, and that they are Base64 encoded as `api_key:secret_key`. |
| `403` | The credentials are valid, but this account may not perform the action. | The plan may not include the feature, or the account's role may not allow it. |
| `404` | The record does not exist, or belongs to another workspace. | Check the identifier. See [Identifiers](#identifiers) below, since passing the wrong kind of ID is the most common cause. |
| `405` | The path is valid, but not for the HTTP method you used. | Usually a `POST` sent to an endpoint that expects `PUT`. Use the method shown on the endpoint's page. See [Method not allowed](#method-not-allowed). |
| `422` | The request body failed validation. | Read `errors` to see which field failed. |
| `500` | Something went wrong on our side. | Retry the request. If it keeps failing, contact support with the time of the request. |
Every endpoint in this reference can return the codes above. Creates return `200`, not `201`.
One endpoint adds a code specific to what it does:
| Code | Where | Meaning |
| ----- | -------------------------------------------------------------------------- | ----------------------------------------------------------------- |
| `400` | [Web Link import](/api-reference/ImportReviews/SelfImport/import-web-link) | The link could not be imported. The reason is under `data.error`. |
This is noted on the endpoint's own page.
## Successful Responses
The payload is always under `data`.
```json theme={null}
{
"data": { }
}
```
Write operations add a human-readable `message`:
```json theme={null}
{
"message": "Review Form Created Successfully",
"data": { }
}
```
Some list endpoints return extra top-level keys alongside `data` that the Feedspace dashboard uses for its own display logic. Ignore any key you do not recognise, and do not treat a new one as a breaking change.
The text, video, and audio review imports return `200` even when the import fails. In that case the body is `{ "data": { "error": "Failed to store reviews." } }` instead of the imported review, so check for `data.error` rather than relying on the status code alone.
## Error Responses
Every error carries a `message` you can show or log.
```json theme={null}
{
"message": "Review not found."
}
```
### Validation errors
A `422` adds an `errors` object keyed by field name, where each value is an array of messages for that field:
```json theme={null}
{
"message": "The name field is required.",
"errors": {
"name": ["The name field is required."]
}
}
```
### Method not allowed
A `405` means the path is valid but the HTTP method is not. The message names the accepted methods, and they are also returned in the `Allow` response header:
```json theme={null}
{
"message": "The POST method is not supported for this route. Supported methods: GET, HEAD, PUT, DELETE."
}
```
The usual cause is updating with the wrong verb. Updating a form is `PUT /forms/{unique_form_id}`, so a `POST` to that path returns `405`.
Note that the review edit endpoints are the opposite: because they accept file uploads, they are called as `POST` with a `_method=PUT` form field, as shown on each of those pages. That same `_method=PUT` field also works on any other update endpoint if your client cannot send a real `PUT`.
### Permission errors
A `403` includes additional boolean flags that the Feedspace dashboard uses to decide which prompt to show the signed-in user. Integrations can ignore them and read `message`.
### Not found
`404` messages name the record type, for example `Review not found.`, `Form not found.`, `Page not found.` or `Workspace not found.`.
A `404` does not always mean the record is gone. Because every request is scoped to one workspace, a record that exists in a different workspace is reported as not found. If you are certain the record exists, confirm you are using the credentials for the workspace that owns it.
## Identifiers
Most `404` responses come from sending the wrong kind of identifier. Feedspace records carry both a numeric `id` and a separate string identifier, and only the string form is accepted:
| Record | Send this | Not this |
| ------------ | ---------------------------- | ------------ |
| Review form | `unique_form_id` | `id` |
| Page | `unique_page_id` | `id` |
| Review label | the 26-character `id` string | a numeric id |
Reviews are the exception: they are addressed by their numeric `id`, together with the review type in the path, for example `/feeds/text/{id}`.
# Product Updates
Source: https://docs.feedspace.io/changelog/product-updates
Feedspace is constantly evolving. See what’s new and improved.
## Feedbox
* **Label Descriptions**: Review labels can now include an optional description explaining what they're for. Hover over a label anywhere it appears (Manage Labels, Feedbox cards, review detail, or import pickers) to see the full description.
* You can now remove a reviewer's photo from a review, and it disappears from Feedbox, widgets, and Wall of Love pages wherever that review appears.
* You can now edit a review's star rating directly, including on imported reviews, matching the platform's own scale (for example half-star ratings, or out-of-10 scales like Booking.com).
## Forms
* Your forms list now shows a live preview thumbnail (hover to see the published form), an automation status icon, and a copyable public-link pill.
* The Share tab now also shows a short link under your form's full URL, with a one-click copy button, handy for QR codes, SMS, or printed material.
* Newly created AI Native Forms now automatically pick up your workspace's brand colors and logo.
* AI Native Form creation is now available on all paid subscription plans, not just specific tiers.
## Import Reviews
**Auto-sync**
* **Auto-Sync Expanded**: Imports now sync automatically for **Gumroad** and **Niche**, keeping your collected reviews up to date without manual re-imports.
**Import experience**
* Free-plan workspaces can now import unlimited reviews, up from a cap of 100.
* Re-importing or syncing reviews you've already imported no longer creates duplicate entries.
* Bulk CSV import now supports adding a company website, company logo, tags, and file attachments to each review. It also handles much larger files, showing a clear processing status with your total row count while it works.
* You can now apply labels to a review while manually importing it, instead of adding them afterward in Feedbox.
## Share
*Updates of Wall of Love and Widgets,*
* **Rating Badge Minimum Star Filter**: Set a minimum star rating so only reviews at or above that threshold count toward your rating badge's stats.
* **Avatar Group Sizing**: Choose an avatar size (X-Small, Small, Default, or Large) for the Avatar Group widget.
* The sort order you choose in Change Order (for example Newest First) now applies correctly to widgets and Wall of Love pages that use automated review selection, even before any reviews have been added.
## Automation
* You can now successfully set up a custom email sender (for example your own Zoho or Amazon SES account) for automated review-request emails, including on AppSumo lifetime deal plans.
* Emails letting you know reviews were automatically added to your Wall of Love or widgets are now grouped per bulk action, instead of sending one email per review.
## Workspace
* You'll now receive a Feedspace email (in addition to Stripe's own notice) if a payment on your subscription fails, with a link to update your card.
## Other Improvements
* If Feedspace releases a new update while you have the dashboard open, you'll now see a clear "new version available" message with a refresh button instead of the page going blank.
## Forms
* Deleting a review form no longer deletes the reviews it collected. Only the form and its public link are removed, and the delete confirmation dialog now explains this clearly.
## Import Reviews
**New import sources**
* **Viator**
**Import experience**
* You can now apply a label when doing a one-time bulk import, so the reviews you bring in are pre-organized from the start.
* You can now rename an automated import from its edit modal, making it easier to tell apart multiple imports from the same platform.
* Reviews imported by pasting a web link now show the correct source icon in your Import History.
* Reviews imported from G2 and Atlassian now show accurate star ratings, correctly scaled from their original rating systems.
* Import history is now visible to every workspace role, including Viewers.
## Share
*Updates of Wall of Love and Widgets,*
### New widgets
New widget added! 🎉
* **Review & Ratings Widget**: A new widget that pairs your aggregate star rating with a scrollable grid of reviews and a Load More button, ready to embed anywhere on your site.
***
### Widget settings and display
* The Feedspace branding badge no longer appears twice on pages that already display one.
* The widget Share tab now gives separate setup instructions for footer-placed widgets versus in-page widgets, and the Design tab's dark mode toggle now works correctly for widgets that support it.
* Each widget in your list now shows a globe icon with the number of websites it's embedded on. Hover to see the domains.
* Duplicating a widget now starts with a clean slate, with no leftover view or engagement stats from the original.
## Automation
New feature added! 🎉
* **Radar**: Track new mentions of your brand on X (Twitter). Feedspace scans automatically every week and lists every mention it finds for you to review.
* **ActiveCampaign and Thinkific**: Now listed as coming soon under Add Customers → Integrations, alongside Stripe.
* Connecting Stripe now opens in a new browser tab, so your dashboard stays open while you finish connecting.
* The Integrations tab now warns you and prompts an upgrade once you've used up your import quota.
## Workspace
New feature added! 🎉
* **Cancel Subscription**: Cancel your plan directly from Manage Subscription, with a clear preview of what changes (team members, forms, custom domain, and more) before you confirm.
* **Card Management**: Add, view, and remove your saved cards from Manage Subscription.
## Webhook
* Activating an existing webhook no longer fails when your workspace has reached its webhook limit.
## Feedbox
* **Add to Page / Widget**: Add a review to multiple Wall of Love pages and widgets at once, right from the Feedbox 3-dot menu.
* Video and Audio filters in Feedbox now also surface imported reviews with matching media, not just reviews recorded directly on Feedspace.
* Bulk-deleting reviews now removes them from your live Widgets and Wall of Love pages immediately.
## Forms
* **AI Native Form Predefined Questions**: Build your AI Native Form with a fixed list of questions instead of letting AI generate them on the fly, and choose exactly how many questions the AI asks when using AI-generated interviews.
* AI Native Form now supports right-to-left languages, shows a clearer permission-request screen, and displays a paused-form banner with your own custom message when submissions are closed.
* The AI Native Form thank-you screen now shows a celebratory confetti animation, and required star ratings or comments are validated before submission.
* Links to a deleted form now show a clear "no longer available" message instead of a generic error page.
## Import Reviews
**Import History**
* See a history of past URL imports under Automated Imports, including the platform, how many reviews came in, and when, and start auto-sync on any of them with one click.
* Editing the rating, labels, or translation language on an existing auto-sync now works correctly from the edit popup.
**Manual imports**
* **Audio Reviews**: Manually import audio reviews, alongside your existing text, video, and image imports.
* Manual video import upload limit raised to 500MB.
## Share
*Updates of Wall of Love and Widgets,*
* **Creative Space Video**: Turn video testimonials into shareable clips with automatically generated captions, and save your edits as a draft to finish later.
* **Avatar Blocks**: Customize the avatar border.
* **Carousel Slider**: New sliders now have Autoplay, navigation arrows, and slide indicators turned on by default.
* **Deferred Widget Loading**: Control when a widget loads on your page (on page load, when the browser is idle, when it scrolls into view, on interaction, or via a custom trigger) to keep your site fast.
* Single review embeds now correctly display reviews whose only content is a video, including newly supported Wistia clips alongside YouTube, TikTok, and SoundCloud.
## Automation
New feature added! 🎉
* **Slack Integration**: Connect your Feedspace workspace to Slack to get notified whenever a new review comes in.
* **Stripe Customers**: Connect your Stripe account under Customers → Integrations to automatically import your paying customers as contacts for review-request email sequences.
* **Per-Email Scheduling**: Set a different wait time, send time, and time zone for each email in your automation sequence, and choose whether to include contacts who already left a review.
* API and automation keys are now masked in your dashboard by default, shown in full only briefly right after they're generated or regenerated.
## Custom Domain
* **Activation Status**: The workspace list now shows an "Activate Domain" badge whenever a custom domain is pending activation.
## Workspace
* New accounts now get their first workspace automatically named after your company (detected from your signup email) instead of the generic "My First Workspace".
* When you're added to a shared workspace, you can now see who owns it.
## Forms
New form added! 🎉
* **AI Native Form**: A new AI-powered form type that collects reviews through a friendly conversation. Describe your goal and Feedspace builds an interactive form with voice, text, and video response options. The AI Native Form can be embedded on your site inline or as a popup triggered by any button on your page.
* **More Custom CSS**: The custom CSS limit for forms, pages, and widgets is now 1,500 characters, up from 500, giving you more room to personalize your design.
## Automation
New feature added! 🎉
* **Form Email Automation**: Set up automated review-request email sequences from a new Automation tab inside your form editor. Configure your audience (all contacts or filtered by customer tag), set a send schedule and timezone, and personalize the email template with merge variables. Custom SMTP and Amazon SES sending are supported on higher plans.
* **Customers**: A new Customers section in the dashboard gives you a centralized contact list. Add people manually, import from a CSV file, or let Feedspace automatically sync contacts from incoming reviews. See who has already submitted a review and tag contacts to target specific groups in your email automations.
* **MCP Connectors Guide**: A new Connectors tab in your account settings provides step-by-step setup instructions for connecting Feedspace to AI assistants including Claude, ChatGPT, Perplexity, and Bolt.
## Import Reviews
**New import sources**
* **Trustedshops**
* **Healthgrades**
* **AlternativeTo**
* **ProAdvisor** (QuickBooks)
* **Niche**
* **ConsumerAffairs**
* **Google Store Pages**
* **Redbubble**
* **Lawyers.com**
* **Nolo Store**
* **Martindale**
* **Travel Agent Finder**
* **Realtor.com**
* **Justia Lawyers**
**Import experience**
* **Fewer duplicate reviews**: When auto-sync is enabled alongside review translation, Feedspace no longer creates duplicate reviews for content already in your target language.
## Share
*Updates of Wall of Love and Widgets,*
* **Creative Space V2**: Creative Space has been redesigned with a new interface and AI image generation. Describe the testimonial graphic you want and Feedspace generates a polished, shareable image ready for social media and marketing.
* **Angular embed code**: The widget embed dialog now includes a ready-made Angular snippet, so Angular developers can copy-paste it directly instead of adapting the generic embed code.
* **iFrame option for popup form embeds**: The iFrame embed code is now available when sharing a form as a popup, where it was previously hidden.
* **Widgets in Framer and flex layouts**: Widgets now display at their correct size when embedded in Framer-built pages or websites using flex and grid layouts, preventing content from collapsing or overflowing.
* **Read More for rich review content**: The Read More / Read Less button in widgets now works correctly for platforms that use rich formatted review text, including Booking.com and VRBO.
## Feedbox
* **Trim Audio and Video**: You can now trim audio and video recordings directly from the Feedbox — select the clip range and save a polished version without leaving your dashboard.
## Forms
* **Customizable Thank-You Redirect Message**: Forms can now show a personalized message with a countdown timer before automatically redirecting visitors after submission.
* **Video and Audio Capture Preview**: When building your form, you can now preview exactly how the video and audio capture screens will appear to respondents before publishing.
* **Star Rating No Longer Pre-Selected**: The star rating field no longer defaults to 5 stars, ensuring respondents make a deliberate rating choice.
* **Website fields accept URLs without “https\://”**: On your review form, fields that ask for a website or link (for example company URL or similar) accept addresses like `example.com` or `www.example.com`. Feedspace adds the correct `https://` prefix automatically so respondents do not need to type the protocol.
## Import Reviews
**New import sources**
* **Bluesky**
* **Vimeo**
* **Reviews.io**
**Bulk import**
* **Excel (.xlsx)**: Import reviews in bulk from a spreadsheet file.
**Import experience**
* **More sorting options**: When importing from platforms such as Reddit, App Store, and Goodreads, you can sort reviews by most relevant, oldest, most helpful, or lowest rated.
## Share
*Updates of Wall of Love and Widgets,*
### New widgets
New widget added! 🎉
* **Avatar Blocks Widget**: Display reviewer avatars in a dynamic block layout with autoplay, adjustable speed, hover fade-out effect, and customizable avatar borders.
New widget added! 🎉
* **SEO Rich Snippet Widget**: Automatically inject structured JSON-LD data into your page so search engines can display star ratings and review counts directly in search results — no coding required.
***
### Widget settings and display
* **RTL Language Support**: All widgets now correctly display in a right-to-left layout for Arabic and other RTL-language websites.
* **Reviews Open Fully Expanded in Modals**: Clicking any review card in a widget now opens the full review text immediately, without needing an extra tap to expand it.
* **"Show Full Review" Hides Read More/Less Buttons**: When you disable "Shorten Long Reviews" in widget settings, review cards now display the complete text with no toggle button.
* **Single Review Embed Scales for Small Containers**: The single review embed now automatically adjusts its size when placed in narrow or small spaces, keeping the review card readable in any layout.
* **Localized Date Format**: Review dates in widgets now display in a shorter, locale-friendly format (e.g., 15 Jan 2024).
## Chrome Extension
* **Seamless Sign-In Sync**: The Chrome Extension is now automatically notified when you sign in through the Feedspace web app, keeping your session in sync without any manual steps.
## Workspace
* **Leave Workspace Confirmation**: A confirmation dialog now appears before you leave a shared workspace, preventing accidental exits.
## Import Reviews
**New import sources**
* **Fourthwall**
* **Printful**
* **WooCommerce**
* **Bark**
* **BigCommerce**
* **LegalMatch**
* **Influenster**
* **Upwork**
**Auto-sync**
* **Auto-Sync Expanded**: Imports now sync automatically for **Zillow**, **Groupon**, **Google Workspace**, and **Alibaba**, keeping your collected reviews up to date without manual re-imports.
## Share
*Updates of Wall of Love and Widgets,*
### New widgets
New widget added! 🎉
* **Cross Slider Widget**: A dynamic cross-scrolling slider that displays reviews in a smooth, continuous animation. Customize slide direction, speed, background color, and card borders.
New widget added! 🎉
* **Avatar Card Carousel Widget**: Display reviewer avatars in a polished carousel card format for a more personal and visually rich testimonial experience.
New widget added! 🎉
* **Company Logo Slider Widget**: Showcase company logos from your reviewers in a smooth, scrolling slider to highlight brand trust and social proof.
* **Floating Cards Widget**: Display your testimonials as gently animated floating cards for a dynamic and eye-catching experience on your site.
***
### Widget settings and display
* Enhanced **dark mode** support across all widget types for a consistent look on dark-themed websites.
***
### Integrations and preview
* **Framer Plugin**: Install Feedspace widgets directly from Framer to embed your review displays into Framer-built websites.
* **Live Preview**: Customize widgets and forms with an instant real-time preview so you can see exactly how they will look on your site before publishing.
## Feedbox
* **Pro Editor**: Request professional video editing for your video testimonials directly from the Feedbox — submit the clip and receive a polished, ready-to-publish video.
* Added an inline **Clear Filters** button to the feed header that appears whenever filters or a search are active, making it easy to reset your view in one click.
## Forms
* **SEO-Friendly URLs**: Forms and Wall of Love pages now support custom slugs, giving you clean, readable URLs that are easier to share and better for search visibility.
## Workspace
* **Subscription Management**: Access the Stripe billing portal directly from your workspace to manage your plan, update payment details, or review billing history.
## Platform Improvements
* Migrated the entire platform to a new, modern architecture for improved performance, reliability, and faster feature delivery.
* Redesigned core experiences across Forms, Pages, Widgets, Workspace management, and authentication for a smoother, more consistent user experience.
* Improved page load speeds and overall app responsiveness across the board.
## Automation
New feature added! 🎉
* **Feedspace MCP Server**: Connect AI assistants like Claude, ChatGPT, Cursor, and other MCP-compatible clients to your Feedspace account using the Model Context Protocol.
* Browse, filter, favourite, and label your reviews using natural language.
* Create and manage forms, widgets, and Wall of Love pages through your AI assistant.
* 35+ tools available across 8 modules with secure OAuth 2.1 authentication.
* [Setup Guide](https://docs.feedspace.io/mcp/setup)
## Feedbox
* Updated feed details view from the old pop-up to a new **drawer UI** for a cleaner, more user-friendly experience.
* Added review translation, transcript editing, and the ability to add social URLs for a more enhanced user experience.
## Import Reviews
We have added new imports,
* **Thumbtack**
* **Psychology Today**
* **OpenTable**
* **GrowthMentor**
* **GreatSchools**
* **Checkatrade**
* **DealerRater**
* **Foursquare**
* **Google Shopping**
* **Google Workspace**
* **Shopify Partner**
## Share
*Updates of Wall of Love and Widgets,*
* **Automated Review Alerts**: Receive email notifications when a review is automatically added to your wall of love or widget through your curated filters.
* **Improved Widget Loading**: Widgets now load more smoothly, even when multiple widgets are on a page or when the internet connection is slow.
* **Automatic Widget Fix**: If a widget fails to load, it will automatically try again, so temporary issues won’t affect your experience.
## Feedbox
* **Global Search**: Instantly search testimonials by name, review text, company, or transcript.
New feature added! 🎉
* **Review Labels**: Add labels to reviews for better organization and categorization.
* Labels can also be used as filters to streamline review search and management.
* **Review Label Bulk Action**: Apply labels to multiple reviews at once for faster organization.
* Labels remain usable as filters for easier review search and analysis.
* **Manage Labels:** Added enhanced label management with options to rename and delete existing review labels.
## Analyze Reviews - New Feature 🎉
* **Review Analysis**: Instantly analyze your reviews by selecting Overview, Positive Points, Pain Points, or Improvements.
* Get a quick summary to help you gain valuable insights and make informed decisions.
## Forms
New feature added! 🎉
* **Pause/Activate Forms:** Pause review forms to stop new submissions and reactivate them at any time.
* **Auto-Tag Collected Reviews**: Automatically apply labels to new reviews based on settings defined in the review form.
## Import Reviews
We have added new imports,
* **HubSpot**
* **Alibaba Product**
* **AliExpress**
* **BBB (Better Business Bureau)**
* **CarGurus**
* **Cars.com**
## Share
*Updates of Wall of Love and Widgets,*
* Added **review preview while selecting reviews**, making the selection process clearer and more seamless for both WOL and widget setup.
* Added **Load More** option to the **Masonry Widget**, expanding the feature beyond pages.
* Updated the **public widget preview UI** with a refreshed and more seamless design.
* Added a **Preview** button in the header for instant preview access.
* Introduced customization options for **external link color** and **highlight background color** in reviews.
* Improved UI hierarchy in the **Customization** section for better navigation.
New feature added! 🎉
* **Creative Space**: Transform any existing testimonial into a beautifully designed, shareable image in seconds.
* Create polished, social-ready graphics ideal for marketing pages and promotional campaigns.
* Highlight customer stories in a more visual and engaging format.
New feature added! 🎉
* **Review Curation Automation**: Automatically add new reviews to your Wall of Love and Widgets based on conditions you set.
* Reviews update in real time with no manual work needed.
* Ensures your best and latest feedback is always showcased front and center.
## Branding Assets
* **Brand Fonts**: Set your brand typography globally from Branding Assets; fonts auto-apply to all newly created WOLs, forms, pages, and widgets.
## Other Improvements
* The login screen now remembers the **last used email and login method** for quicker sign-ins.
## Feedbox
* **Auto-Update Sync**: When reviews are updated or deleted, the changes are automatically reflected on the Wall of Love and Widgets.
New feature added! 🎉
* **Export Reviews**: Export all Form Reviews and Imported Reviews in one click.
* **Duplicate Review**: Quickly duplicate any specific review directly from the Feedbox page.
## Forms
### Translation and languages
New feature added! 🎉
* **Language customization**: Translate review forms into multiple languages, manage languages in form settings, and use **form translation** so respondents see the right language.
### Thank-you page
* **Multi-Platform Review Collection**: On the form thank you page, added support to collect reviews from **Google**, **Trustpilot**, and **Yelp** directly after form submission.
### Form customization
* **Form Preview:** The redesigned preview section is now live with an improved layout and user experience.
* Added option to include **links in consent text** for better customization.
* Introduced **Custom CSS** support to style forms as per brand preferences.
* Added a setting to **show or hide** the Feedspace sign-up button on form thank you page.
## Import Reviews
**Manual Import Text & Video Review**
* Enhanced with new fields for richer context and authenticity.
* Added **Review Date**, **Company Website**, and **Company Logo** when importing text or video reviews.
* Added **Podchaser** to auto-import platforms, allowing direct review imports from Podchaser.
We have added new imports,
* **ProvenExpert**
* **ImmoScout24**
## Share
*Updates of Wall of Love and Widgets,*
* **Wall of Love:** Added Load More Button option, allowing users to toggle and control how reviews are displayed on the page.
* **Preview:** Redesigned preview section is now live with an improved layout and user experience.
* Added **Social Redirection Control** to enable or disable clickable social icons in Page (WOL) and Widget settings.
* Added the **Hide Social Platform Icon** option to show or hide platform icons on reviews.
* Includes a separate toggle to control **social redirection** visibility.
* Improved **Avatar Widget** design with star rating display and customizable text below the avatar group.
* Added **Sort By** options (**Latest** & **Oldest**) in the **Change Order** tab for easier review arrangement.
## Automation
**Pabbly Integration** - Feedspace is now live on Pabbly! 🎉
* Connect and automate workflows between Feedspace and other apps using Pabbly.
## Feedbox
New feature added! 🎉
* **Bulk Action**: Perform actions on multiple reviews at once. Mark as Favorite, Unfavorite, or Delete in bulk.
**Filters**
* We have added Star Rating and Sentiment filters.
* Available in Feedbox, Pages, and Widget.
## Import Reviews
We have added new imports,
* **Trip.com**
* **HomeAdvisor**
* **ClassPass**
* **Facebook Post**
* **Threads Post**
* **Facebook Reviews**
* **Gartner**
* **Reddit Post**
* **Reddit Comments**
New Manual Imports Added
* **Import from Web Link**: Import reviews directly using a web link.
* Available under Import modal → Self Import → Import from Web Link.
* **Bulk Import**: Import text reviews using a CSV file.
* Available under Import modal → Self Import → Bulk Import.
## Share
*Updates of Wall of Love and Widgets,*
* **Updated share flow:** Share options are now inside the **Create Page** and **Create Widget** modals instead of a separate modal.
* **Select All Reviews**: Quickly select all reviews on the page and in widgets to create a wall of love and widgets with multiple reviews.
* **Custom CSS**: In the customization of pages and widgets, added a custom CSS option to style and personalize the wall of love and widgets.
* **Duplicate Widget**: Users can duplicate existing widgets directly from the menu.
## Automation
* Added two more platforms in automation,
* Notion
* Giftogram Gift Card
## Custom Domain
* **Automated Setup**: Custom domain setup is now fully automated.
* Click "Verify Domain" in settings to auto-generate server configuration.
* Domain becomes active within 15–25 seconds.
## Branding Assets
* Redesigned Branding Assets screen with new interactive UI elements.
## Feedspace Apps
* **WordPress Plugin**: Feedspace plugin is now available on WordPress.
* Install it directly from the [WordPress Plugin Directory](https://wordpress.org/plugins/feedspace).
* The plugin supports embedding widgets from the plugin.
## Feedbox
* Users can now manually add or update all static user information in any form review, even if the submitter did not provide it during review submission.
* Added manual video import icon on reviews. Clicking the icon opens the review detail modal.
* New Feedbox List UI is now live with a refreshed design.
## Forms
* Added a default profile picture option in the user details setup fields.
* Added "Send Email" option in the Share Form dialog to copy and paste email content into Gmail or any email service.
## Import Reviews
* Added **SourceForge Product** reviews import.
* **SourceForge Project** reviews import is now available.
* **Whop** review imports are now live.
## Widgets
**New Avatar Slider Widget**
* A sleek widget that highlights one review at a time in a smooth, engaging slider format.
**New Avatar Group Widget**
* Displays multiple reviewer avatars together in a compact, stylish, and visually engaging format.
**New Strip Slider Widget**
* A smooth, scrolling strip-style widget that continuously displays reviews in an eye-catching and dynamic way.
## Chrome Extension
* Feedspace Extension [v2.0.1](https://chromewebstore.google.com/detail/feedspace-review-testimon/kkbpoekaicjebadkhhdfcejhkjifhjbi) is live.
* Updated to open as a full overlay instead of the old small pop-up view.
* Implemented using Shadow DOM for a cleaner, custom layout.
## Custom Domain
* Added an option for users to add custom scripts (e.g., third-party analytics), which will execute on public pages after domain activation and verification.
Updated the Automation page with **Automation**, **API Access**, and **Webhook** tabs.
* Old routes have been removed and redirected to the new structure.
## Automation
**Zapier Integration** - Feedspace is now live on Zapier.
* When a new review is received, you can:
* Get notifications in Slack, Discord, or Teams.
* Save testimonials to Google Drive or Dropbox.
* Send alerts via WhatsApp or Email.
* **Submit Testimonial:** Automatically create text or video testimonials in Feedspace from events in other apps.
* Examples: turn Slack messages into a text testimonial, or a Google Drive video into a video testimonial.
## API
* An API access page is now live. Manual work under all Automation tabs has been removed and streamlined.
## Webhook Setup
We have deployed two key updates to our webhook system:
* **Signing Secrets:** A unique signing secret is now generated for each webhook to verify requests. Additional UI for viewing secrets was rolled out in a follow-up release.
* **Workspace Level Configuration:** Webhooks are now managed at the workspace level instead of the account level.
Webhook Integration:
* Webhook integration just got easier! Add your endpoint URL, pick events, and activate it right from your Feedspace dashboard.
## Team Members - New Feature
* Invite team members to collaborate in your workspace.
* Three roles available:
* **Admin**: Full access to manage team members and workspace settings.
* **Editor**: Can add, edit, and delete forms, pages, and widgets.
* **Viewer:** Can view and share forms, pages, and widgets.
* Manage member details and permissions directly from the Team Members page.
## Feedbox
**New Feature**: "Request PRO Edit" Button for Video Reviews
* Head to your account and check the purple icon in the **Video Review** section.
* Click on it to request a pro edit. Our video editing team can create reels!
## Forms
* Implemented a new Wizard UI in the forms.
* Any additional details submitted through your feedback form will be included in your review email.
Added new form stats:
* **Form Views**: Total number of views on the form.
* **Reviews**: Total number of reviews submitted.
* **Conversion Rate**: Percentage of views turned into reviews.
**New Feature**
* **Thank You GIF/Video**: User can add a custom GIF or video (up to 1 min) in the Thank You tab of review forms to display after submission.
## Import Reviews
* Users can import **Instagram** Reels and video posts directly into their Feedspace account.
* Users can import **SoundCloud** Audio directly into their Feedspace account.
* Users can now easily import **Wistia** videos directly into their Feedspace account.
* Users can now easily import **TikTok** videos straight into their Feedspace account within a few clicks.
* Users can now migrate reviews from **Famewall.io** to Feedspace with ease.
* Autosync is now available for the following platforms:
* Apartments.com
* Freelancer
* Booking.com
* Shopify Theme
* Chrome extension
* Shopify-appstore
* Skill-share
* Homestars
* Themeforest
* Capterra
* Clutch
* Yelp
* IMDb
## Pages (Wall of Love)
* Implemented a new Wizard UI in the pages.
**New Wall of Love 2.1 - Advanced Customization! 🎉**
* **Advanced Customization Options**: Toggle review dates, ratings, and "Read More" functionality.
* **Theme Options**: Enable dark theme for a sleek aesthetic.
* **Border Customization**: Add stylish borders around review cards.
* **Color Palette Control**: Customize page background, text, and card hover colors.
* **Real-time Preview**: See changes instantly while customizing.
## Widgets
* Widget loading speed improved, now 3x faster for a smoother and quicker experience.
* Widget previews are now visible in the widget list.
* We changed the default value of 'Enable Read More' to ON.
* Implemented a new Wizard UI in the widget.
**New tool - Google Review Widget**
* You can now create a carousel widget from any business's Google reviews. Just search, click Create Widget, and you’re done!
* Try it here: [Google Review Widget tool](https://www.feedspace.io/tools/review-widget/google/)
**New Masonry Widget**
* A new dynamic grid-style **Masonry Widget** is now available for showcasing content beautifully.
## Chrome Extension
Extension v1.0.5 is live now. What's new,
* Facebook Post Scraper
* Amazon Product Review Scraper
* Shopify Partners Review Scraper
* G2 Reviews Scraper
* Standardized form handling. (e.g., scroll to error)
* Allows review import without text
## Workspace
We’ve reorganized workspace settings into tabs:
* General Settings
* Branding Assets
* Custom Domain
**Branding Assets - New feature**
* You can now auto-fetch branding elements (such as theme colors, button styles, etc.) from your website and apply them across Forms, Pages, and Widgets for a consistent look.
**Custom Domain**
* Quick access to “Setup Custom Domain” has been added to the workspaces list page.
## New: Setup Page Added
* A new Setup page has been introduced to guide users through the initial setup process.
* **Why it matters:** This new feature eliminates the guesswork after signing up, ensuring that users can quickly and efficiently get the most out of Feedspace from day one.
## Onboarding
Introduced a **single sign-in page** supporting OTP, social logins, and registration in one place.
* **OTP Login**: No password needed, verified via email provider, blocks fake registrations.
* **Social Logins**: Facebook, X (Twitter), and LinkedIn login/registration are now available.
* **Route Update**: /login and /signup routes are redirected to /signin for a unified experience.
## Feedbox
* Users can now edit review text for **Text Reviews** and **Manually Imported Reviews**.
## Forms
New feature added! 🎉
* **Google Redirection**: In the Capture Review section, users can now enable “Redirect to Google Review” so that 4 or 5-star reviewers are taken straight to their Google Business profile with the review pop-up opened.
## Import Reviews
We have added new imports,
* Instagram Post
* YouTube Video
* LinkedIn Post
* X (Twitter) Post
Added the Migrate reviews option under the Import tab.
* Senja to Feedspace
* Testimonials to Feedspace
Autosync is now available for the following platforms:
* Vrbo
* Booking.com Attraction
* Zomato
* Coursera
* Apple Podcast
* Italki
* AppSumo
* Oyo rooms
* Tripadvisor
* Airbnb
* Product Hunt Reviews
* App Store
* Udemy
* Fresha
* Google Play Store
* Heal.me
## Pages (Wall of Love)
* Updated UI to support playing YouTube videos directly on the Wall of Love.
## Widgets - New Feature 🎉
Added interactive review displays to showcase on the website with easy embed codes, live preview, and full design customization.
First Widget Release,
* **Carousel Widget**: Ideal for landing pages and review sections.
## Chrome Extension
* The new Chrome Extension version is live with simplified permission handling for users.
* Extension version **v1.0.2** adds support for importing from new platforms:
* Fiverr Reviews
* X (Twitter) Posts
* Instagram Posts
* LinkedIn Posts
* YouTube Comments
* YouTube Community Posts
## Forms
* **Duplicate Forms**: Added functionality to duplicate existing forms directly from the form menu.
Interesting Update!
* Added option to create forms directly from a **prompt + website** to auto-fetch logo, colors, and other details.
**New Feature**
* **Intro Video/GIF**: Users can now add a 1-minute video or GIF to their review forms.
* An option is available while editing forms; the system automatically converts for browser compatibility.
* The uploaded video or GIF appears at the start of the form for customers.
## Import Reviews
* Google review imports now include review images.
* Currently, the first image is displayed, with support for more photos coming soon.
New manual import added
* **Import Video Review**: Manually add video reviews using a dedicated form.
* Single review submission supports rating, text, and video together.
We have added new imports,
* Clutch
* Shopify Theme
* Vrbo
* Capterra
**New Big Feature 🎉**
* **Auto-Sync Reviews**: Automatically sync reviews from 80+ platforms, starting with Trustpilot.
* New reviews are imported in real time with email notifications.
* Configure once, and reviews flow into your Feedspace account without manual imports.
## Pages (Wall of Love)
New Functionality Added!
* **Wall of Love Customization**: Added option to rearrange reviews with drag-and-drop.
* Change the order of testimonials to customize the presentation and highlight key reviews.
## Chrome Extension - New Tool 🎉
* Chrome Extension version **v1.0.1** is live with simplified permission handling for users.
## Forms
**Exciting: AI-Powered Form Generator ✨**
* Instantly create customized review forms by entering a simple prompt.
* Example: “Make a video and text review form for my online tutoring business.”
* AI generates a complete form tailored to your needs, saving time on manual setup.
## Import Reviews
* **Import Text Reviews**: Users can add past reviews manually or by uploading screenshots.
* It supports reviewer details, star ratings, and photos along with review text.
We have added new imports,
* Apartments.com
* Zillow
* Chrome Extension
* Freelancer
* Yelp
## Feedspace 3.0 Major Upgrade Completed 🎉
We’ve rolled out the full version upgrade across the platform with significant improvements:
* **UI Overhaul**: Brand new, modern interface with improved navigation and user experience.
* **Database Upgrade**: Optimized schema, faster queries, and improved scalability.
* **API Revamp**: REST APIs rebuilt with cleaner endpoints, enhanced security, and better response times.
* **Performance Boost**: Reduced load times across pages, optimized caching, and improved concurrency handling.
* **Backend Architecture**: Migrated to a more modular system for faster feature development.
* **Stability & Security**: Hardened authentication flows, better error handling, and advanced monitoring.
## Feedspace 3.0 Upgrade Kickoff 🚀
* We’ve officially started the **Feedspace 3.0 upgrade**, a complete overhaul of our platform.
* This upgrade spans UI, database, APIs, and overall system architecture.
* Our focus: faster performance, smoother workflows, and a stronger foundation for upcoming features.
## Import Reviews
We have added new imports,
* AppSumo
* Booking.com
## Forms
* Customers can now edit the **instruction page content** in Review Forms.
* Updated single review (video, audio, or text) page layout.
* Layout now matches the customer’s All-in-One review form design.
## Import Reviews
We have added new imports,
* ThemeForest
* Skillshare
* IMDb
* HomeStars
* WordPress Plugins
* Booking.com Attraction
* PeoplePerHour Offer
* Product Hunt Comments
* Italki
## Import Reviews
We have added new imports,
* AppStore
* Airbnb
## Forms
Review form has been updated!
* **All-in-One Feed Form**: Users can collect audio, video, text, and file uploads in a single form.
* It supports customizable formats, guided prompts, consent collection, and detailed customization of labels, buttons, and instructions.
* It includes an upgraded Thank You page, redirect options, and additional info fields for richer submissions.
## Pages (Wall of Love)
* Significant improvements have been made to enhance the performance and stability of Wall of Love.
## Custom Domain
New feature added!
* **Custom Domain**: Personalize your Feedspace pages with your own domain or subdomain.
* Available exclusively with the Business Plan, with setup accessible under account settings → Custom Domain.
## Import Reviews
New feature added!
* **Import Text Feedback via CSV**: Bulk import existing textual feedback into Feedspace.
* Consolidate feedback from multiple sources, including offline channels, in one place.
* Upload CSV files through the Import Feeds option in the Feedbox section.
## API Access
New feature added!
* **API Access:** Developers can now integrate Feedspace into their own systems and workflows.
* Build custom integrations, automate processes, and extend functionality.
* API documentation available; [API Documentation](https://docs.feedspace.io/api-reference/authentication).
## Webhook
New feature added!
* **Webhook Setup**: Connect Feedspace with your own software or platforms.
* Automate transfer of testimonials, reviews, or form submissions.
* Receive instant notifications for new content and streamline content management.
* Check documentation for more details: [Webhook Reference](https://docs.feedspace.io/webhook-reference/webhook-access)
## Audio Reviews
New feature released!
* **Audio Testimonials**: Users can collect genuine voice-based reviews for customers who prefer audio over video.
* Users can create dedicated audio forms by enabling only the audio recording option in form settings.
* Audio reviews can be showcased on the **Wall of Love**, shared on websites, and distributed across social media.
## Feedspace 2.0
* **New UI**: Faster, smoother, and more intuitive from login to sharing feeds.
* **Video Feed Templates**: Prebuilt templates for common use cases, ready to collect video feedback instantly.
* **Video Feedback**: Collect authentic customer and employee testimonials in video format.
* Simple workflow: share a link, record a video with the timer, submit, and view it in your live dashboard.
* **Upload Pre-Recorded Videos**: Feed Forms now support uploading edited or pre-recorded videos in addition to live recording.
* Enable this option under Form Types & Landing Page Settings → Allow Users to Upload File.
* **QR Codes**: Collect and share feeds using QR codes for easier access.
* **Wall of Love**: Showcase the best text and video feeds on your website or social media as social proof.
* Rewritten embed code, upgraded servers, and faster CDN ensure quick loading and better SEO.
* Add testimonials to your site without impacting speed or search rankings.
* **Refer & Earn**: Share your unique referral link from the dashboard.
* Earn \$10 for every signup that converts to a paying customer after 30 days.
* No limits on referrals, share via email, social media, or direct messages.
* **Email Notifications**: Get real-time alerts when new feeds are received.
* Option to enable a weekly summary of all feeds across workspaces.
* Manage preferences under Profile → Notification Settings.
* **Rebranding:**
* Feedbackery is now **Feedspace**, expanding from text-based feedback to a complete, rich content gathering platform.
# Use Cases & Examples
Source: https://docs.feedspace.io/mcp/examples
Copy-paste prompts and worked end-to-end examples for the Feedspace MCP server.
Prompts you can paste straight into your AI assistant, followed by worked examples showing what actually comes back.
For every tool and what it does, see the [Tools Reference](/mcp/tools/reviews).
## 10 prompts to try
One prompt per area, covering everything Feedspace can do. Paste any of these in and adjust the names and filters to match your own workspace.
| Module | Prompt | What it does |
| ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------- |
| Workspaces | `List my Feedspace workspaces and show the name and ID of each one` | View only |
| Reviews | `Find my 5-star text reviews with positive sentiment that mention onboarding, and show each reviewer's name and company` | View only |
| Forms | `Show all my review forms with their views, submissions, and conversion rate, best performing first` | View only |
| Forms | `Create a review form called "Customer Feedback" that accepts written and video reviews, asks for name and email, and give me the link to share` | Makes changes |
| Widgets | `Create a carousel widget called "Homepage Testimonials" from my 8 best 5-star reviews, turn on dark mode, and give me the embed code` | Makes changes |
| Wall of Love | `Create a Wall of Love called "Customer Love" from my 12 highest-rated reviews, set the heading to "Loved by 500+ customers", and give me the public link` | Makes changes |
| Labels | `Create a label called "Homepage" in blue, then apply it to every 5-star video review that mentions support` | Makes changes |
| Imports | `Import this testimonial: Sarah Chen, Head of Design at Acme Corp, said "Best onboarding I've used". Give it 4.5 stars and date it 12 March 2026` | Makes changes |
| Team | `Invite jane@company.com as an Editor to my Acme workspace, then show me everyone who currently has access` | Makes changes |
| Automation | `Set up my "Customer Love" page so any new 5-star review that includes the reviewer's name and company is added to it automatically` | Makes changes |
**New here?** Start with `List my Feedspace workspaces`. If it returns your workspaces, you are connected and everything else will work.
Prompts marked **View only** work in every AI tool. Ones marked **Makes changes** need a tool that is allowed to create and edit things.
Most tools can do both. Some managed setups restrict what a connector may change, so if reading works but creating a widget does nothing, check with whoever administers your AI tool before assuming it is a Feedspace problem. You can always make the change in the [Feedspace dashboard](https://app.feedspace.io).
Filtering has no date range. You can narrow reviews by rating, sentiment, type, form, label, keyword, and whether the reviewer gave a name, company, or photo, but not by "the last 3 months". Sort or trim by date after the assistant has fetched them.
## Worked examples
These show the full round trip: what you ask, what the assistant does, and what you get back.
The replies below are illustrative. Your own counts, names, and links will differ, and each assistant words things its own way. What is accurate is the **shape** of the answer and the tools involved.
**Makes changes.** Creates a widget.
**You:** "From my 5-star text reviews, pick the 5 best for a homepage carousel. One line on why each works. Then create the widget and give me the embed code."
**What the assistant does:**
1. `filter_reviews` with `starRatings: [5]`, `reviewTypes: ["text"]`
2. Reads them and picks the 5 most persuasive
3. `create_widget` with `type: 4` (Carousel) and the `feed_identifier` of each
4. `get_widget_share` for the embed snippet
**What you get back:**
> Picked 5 from your 5-star text reviews:
>
> * **Sarah Chen** names a result, "cut our onboarding time in half"
> * **Miguel Torres** answers the usual objection about setup effort
> * **Priya Nair** credits the support team by name, so it reads as genuine
> * **Tom Alder** mentions switching from a competitor
> * **Ana Ruiz** carries authority, "sets a new standard"
>
> Creating the widget now.
>
> **"Homepage Carousel"** is live in My First Workspace with your 5 hand-picked reviews. Here's the embed code:
>
> ```html theme={null}
>
>
> ```
>
> Paste this anywhere on your homepage HTML and the carousel will render there.
**Say how many you want.** "Pick the 5 best" keeps the answer short. Without a number, the assistant pages through everything to be thorough and can return dozens.
**Ask for the embed code in the same prompt.** Creating a widget and fetching its snippet are separate tools, so without those words the assistant creates the widget and then asks whether you want the code, costing a round trip. Same for `get_page_share` and `get_form_share`.
**Results are paged, 15 at a time.** `filter_reviews` ignores `perPage`, so the assistant works through pages and may stop before it has everything. It will usually say more remain. Reply "keep going" to pull the rest, or narrow the filter.
**View only.** Works in every AI tool.
**You:** "How are my reviews doing? Give me the key numbers, then two things working and two that need attention."
**What the assistant does:**
1. `get_review_summary` for the total count
2. `filter_reviews` with `starRatings: [1, 2]` to see what is going wrong
3. `list_forms` for views, submissions, and conversion rate per form
4. `list_widgets` for view counts and engagement rate per widget
5. `list_pages` for Wall of Love view counts
**What you get back:**
> **Key numbers**
>
> * **412 total reviews**
> * At least **9 reviews with 1 to 2 stars** found in a single search pass, likely more
> * **3 review forms**, your best converting at **15.8%**; the other two are under 4%
> * **1 Wall of Love page** and **4 widgets** live
>
> **Two things working**
>
> 1. **Your 5-star reviews are genuinely strong.** They are detailed, name real people, titles, and companies, and cite specific outcomes (one has account setup dropping from 7 months to 2 days). That is exactly what converts on a homepage.
> 2. **You are turning reviews into assets.** Between the Wall of Love and the widgets, you have several live, embeddable showcases. Most workspaces just let reviews sit uncollected.
>
> **Two things needing attention**
>
> 1. **Two forms get traffic but almost no submissions.** Both sit under 4%, so the form is likely too long or the ask is unclear. Your best form shows what good looks like.
> 2. **Two widgets have no views.** They are probably not embedded yet, so the reviews behind them are not doing any work for you.
Notice "found in a single search pass, likely more". The assistant reports what it actually looked at rather than implying it read everything, because results come back 15 at a time. Ask "check the rest" if you need a complete count.
**Makes changes.** Creates a label and tags reviews.
**You:** "From my 5-star reviews, tag the 10 best for our homepage with a 'Homepage' label. Skip anything too short or vague, and tell me how many you skipped."
**What the assistant does:**
1. `create_label` with the name "Homepage" and a hex colour
2. `filter_reviews` with `starRatings: [5]`
3. Reads them and picks the 10 worth featuring
4. `batch_update_reviews` with `action: "assign_labels"` and those 10
**What you get back:**
> Done, 10 reviews tagged "Homepage":
>
> * **Sarah Chen**: speed and support, calls it "a new standard"
> * **Miguel Torres**: names the problem it replaced
> * **Priya Nair**: praises patient, helpful support
> * **Tom Alder**: time and cost saved for a small team
> * **Ana Ruiz**: a specific feature with a measurable result
> * **Leo Fontaine**: concrete numbers rather than adjectives
> * **Mina Han**: names the support rep who helped her
> * **Nordic Supply**: team praise tied to business impact
> * **Hassan A.**: specific outcome, and mentions the agent by name
> * **Sam Okafor**: answers common buyer objections directly
>
> Skipped 6, all too short or vague to carry weight on a homepage:
>
> * Three one-word reviews such as "Great!" or a thumbs-up emoji
> * One duplicate of a review already in the list
> * One that hedges rather than endorses
> * One about a discount code rather than the product
>
> One caveat: I have only read your 5-star reviews from the first couple of pages, not the whole set, so there may be more strong candidates. Want me to keep scanning?
**Makes changes.** Creates a page and automation rules.
**You:** "Build a Wall of Love called 'Customer Love' from the 10 reviews that best show real results, not just praise. Keep it updated as new 5-star ones arrive, and give me the public link."
**What the assistant does:**
1. `filter_reviews` to pull your highest-rated reviews
2. Reads them and picks the 10 describing an outcome
3. `create_page` with the name and those reviews
4. `update_page_automation` with `review_ratings: [5]`
5. `get_page_share` for the public link
**What you get back:**
> Done. "Customer Love" is live in My First Workspace.
>
> Public link: `https://www.feedspace.io/your-workspace/customer-love`
>
> The 10 reviews, chosen for concrete, measurable outcomes rather than general praise:
>
> * **Sarah Chen**: account setup went from 6 weeks to 2 days
> * **Miguel Torres**: cut onboarding admin roughly in half
> * **Sam Okafor**: lower transaction fees, with figures
> * **Priya Nair**: fast setup, no fees, savings they can point to
> * **Tom Alder**: solved a pricing and minimum-balance problem
> * **Ana Ruiz**: streamlined payments across several accounts
> * **Mina Han**: real-time accounting sync instead of overnight updates
> * **Leo Fontaine and Ines Roy**: replaced their invoicing and tracking process outright
> * **Hassan A.**: support resolved a failed transaction with clear, concrete steps
> * **Nordic Supply**: card and account setup in minutes rather than days
>
> Auto-update is on: any new 5-star review will be added to this page automatically.
**Automation cannot judge quality.** The 10 reviews above were hand-picked for showing a measurable result. Automation only filters on rating, type, labels, form, keywords, and reviewer details, so future additions are held to "5 stars" and nothing more. A short "Great!" will join the page.
If the bar matters, tag the good ones with a label and set the automation to that label instead of to the star rating.
**Makes changes.** Creates a form.
**You:** "Create a review form called 'Customer Feedback' that accepts written and video reviews, asks for name, email, and company, and give me the link to share."
**What the assistant does:**
1. `create_review_collection_form` with the name, the review types, and the reviewer fields
2. `get_form_share` for the link
**What you get back:**
> Done. Your **"Customer Feedback"** form is live in My First Workspace.
>
> * Accepts: written and video reviews
> * Asks for: name, email, company (all required)
>
> **Shareable link:** `https://www.feedspace.io/your-workspace/customer-feedback`
**Fields you ask for come back required.** The reply above marks name, email, and company as required, which will cost you submissions from people who do not want to give all three. Say "make email optional" in the prompt, or ask for it afterwards.
**Name the review types you do not want.** Written, video, and audio are all enabled by default, so listing the ones you do want will not necessarily switch the others off. Say "no audio" if you mean it.
**Ask for the QR code** if you want one. `get_form_share` returns a QR alongside the link, but the assistant usually shows only the link.
**Makes changes.** Adds a review.
**You:** "I got this by email and want to use it on our site. Sarah Chen, Head of Design at Acme, said 'The onboarding was the smoothest I've used.' It was 12 March. Add it and put it on my Homepage Testimonials widget."
**What the assistant does:**
1. `import_text_review` with the reviewer name, role, company, review text, rating, and date
2. `update_widget` to add the new review to the widget you named
**What you get back:**
> Review imported (Sarah Chen, Head of Design at Acme, 5★, dated March 12, 2026). Now adding it to your **Homepage Testimonials** widget.
>
> Done. Sarah Chen's review is now imported and added to the **Homepage Testimonials** widget, which now shows 9 reviews.
**Give the year for anything older than this one.** "12 March" was read as March 2026, the current year. An older testimonial needs the full date, or it will be filed under today's year and sit at the top of a newest-first list.
**Say the rating if you care.** No rating was mentioned, so it was saved as 5 stars, the same default the web app's import form uses. Half stars such as 4.5 are accepted.
## Tips for best results
* **Name your workspace** if you have more than one, for example "in my Acme workspace". Otherwise the assistant has to ask.
* **Say the review type** when filtering: "text reviews", "video reviews", "audio reviews", or "social reviews".
* **Ask for the link** when you want something shareable, such as a form link, page URL, or embed code. The assistant will not always fetch it unprompted.
* **Chain steps in one prompt.** "Find my best reviews and build a Wall of Love from them" works in a single request.
* **Ask it to check first** before a bulk change, for example "show me which reviews that would affect before you apply the label".
# Feedspace MCP Server
Source: https://docs.feedspace.io/mcp/overview
Connect AI tools like ChatGPT, Claude, and Perplexity to your Feedspace reviews and testimonials using the Model Context Protocol.
The Feedspace MCP server lets AI assistants read, manage, and display your reviews and testimonials through natural language. Instead of navigating dashboards, simply ask your AI assistant to filter reviews, create widgets, build Wall of Love pages, and more.
## What is MCP?
The [Model Context Protocol (MCP)](https://modelcontextprotocol.io) is an open standard that enables AI assistants to securely connect to external tools and data sources. The Feedspace MCP server implements this protocol, giving AI clients direct access to your Feedspace workspace.
## What the MCP Server Is For
Use the Feedspace MCP server when you want an AI client to read and manage your review content with your account permissions:
* **Find and read reviews**: browse, filter, and search your text, video, audio, and social reviews.
* **Curate and organize**: edit review details, favourite the best ones, and tag them with labels in bulk.
* **Collect feedback**: create and customize review collection forms, and share or translate them.
* **Showcase testimonials**: build embeddable widgets and Wall of Love pages, style them, and set auto-add rules.
* **Manage workspaces**: update branding, invite teammates, and check who has access.
Do not use it for:
* **Deleting anything.** The server never exposes a delete tool, deliberately, so an AI assistant cannot cause data loss. Use the [Feedspace dashboard](https://app.feedspace.io).
* **Changing an existing member's role, or removing someone.** Dashboard only, under workspace team settings.
* **Creating Floating Badge, Review Badge, or Review and Ratings widgets.** These aggregate a review source rather than individual reviews, so they are dashboard only. You can still list and read them.
* **Bulk importing from review platforms.** Use the dashboard's import features for Google, Trustpilot, G2, and similar sources.
* **Scripted or programmatic access.** Use the [REST API](/api-reference/authentication) for pipelines and automations. MCP is for conversational workflows.
## What Can You Do?
Browse, filter, favourite, label, and update your text, video, and audio reviews.
Create and customize review collection forms with shareable links.
Build embeddable widgets and Wall of Love pages to display your best reviews.
Invite team members, manage roles, and organize workspaces.
## Key Highlights
* **46 tools** across 8 modules covering reviews, forms, widgets, pages, labels, workspaces, team members, and imports
* **OAuth 2.1 with PKCE** authentication, so there are no API keys to manage. You sign in with your Feedspace account
* **No delete operations**. A deliberate rule: the server exposes no delete tool of any kind, so an AI assistant cannot remove your reviews, forms, widgets, or pages
* **Works with six AI tools**: ChatGPT, Claude, Perplexity, Lovable, Bolt, and v0
## Supported Clients
Feedspace supports and documents these six AI tools:
| Client | Setup guide |
| ---------- | ------------------------------------------- |
| ChatGPT | [Connect ChatGPT](/mcp/setup/chatgpt) |
| Claude | [Connect Claude](/mcp/setup/claude) |
| Perplexity | [Connect Perplexity](/mcp/setup/perplexity) |
| Lovable | [Connect Lovable](/mcp/setup/lovable) |
| Bolt | [Connect Bolt](/mcp/setup/bolt) |
| v0 | [Connect v0](/mcp/setup/v0) |
Feedspace is a **hosted** MCP server, so there is nothing to install. Every tool connects to the same URL over HTTP, and signs in with OAuth. If a client asks you to choose a transport type during setup, pick **Streamable HTTP**.
Any other client that supports remote MCP servers can connect the same way, though only the six above are officially supported.
## Quick Links
Connect the Feedspace MCP server to your AI client.
All 46 tools by module, each with a prompt to try.
See real-world workflows and example prompts.
Fix common issues and find answers to frequently asked questions.
# Setup & Installation
Source: https://docs.feedspace.io/mcp/setup
Connect the Feedspace MCP server to ChatGPT, Claude, Perplexity, Lovable, Bolt, or v0.
The Feedspace MCP server is a **remote** server. There is nothing to install or run locally: you point your AI tool at one URL and sign in with your Feedspace account. Setup takes about two minutes per tool.
**Prerequisites:**
* A [Feedspace account](https://app.feedspace.io/signin) with at least one workspace
* One of the supported AI tools below
## Server URL
Use this URL whenever an AI tool asks for an MCP server endpoint:
```
https://mcp.feedspace.io/mcp
```
On first connect, the AI tool opens a sign-in prompt to authorize access. Approve it once and you are done, with no token to paste.
## Choose your AI tool
Add Feedspace as a custom MCP connector inside ChatGPT.
Add Feedspace to Claude web or desktop as a custom connector.
Authorize Feedspace to query your reviews from chat.
Connect Feedspace so your prompts can pull live reviews.
Use Feedspace data while building inside Bolt.
Reference Feedspace tools while iterating on your designs.
You can also connect any of these from the Feedspace dashboard under **My Account**, then **MCP Connectors**, which has the same steps plus a one-click copy button for the server URL.
## Other MCP clients
These six tools are the ones Feedspace supports and documents. The server follows the MCP standard, so any client that supports a **remote MCP server over HTTP with OAuth** can connect using the same URL. Setup steps vary by client, and other clients are not officially supported.
| Setting | Value |
| ---------------- | ------------------------------ |
| Server URL | `https://mcp.feedspace.io/mcp` |
| Transport | Streamable HTTP (remote) |
| Authentication | OAuth 2.1 with PKCE |
| API key required | No |
## How authentication works
1. When you first use a Feedspace tool, your AI tool opens a browser window
2. You sign in to your Feedspace account at `app.feedspace.io`
3. After you authorize, a bearer token is issued and stored by the AI tool
4. All later tool calls use that token automatically
5. The token persists across sessions in most tools
Your Feedspace credentials are never shared with the AI assistant. The bearer token is scoped to your account and sent over HTTPS. To disconnect, remove the connector from the tool you added it to.
The server acts as you. It can only reach workspaces you already have access to, and your role in each workspace decides what it can change. See [roles and permissions](/mcp/tools/team-members#roles-and-permissions).
## Verify your connection
After setup, ask your AI assistant:
> "List my Feedspace workspaces"
If you get back your workspaces with their names and IDs, authentication and the MCP connection are both working.
If not, see [Troubleshooting](/mcp/troubleshooting).
# Bolt
Source: https://docs.feedspace.io/mcp/setup/bolt
Use Feedspace data while building inside Bolt with a custom MCP server.
Use Feedspace data while building inside Bolt with a custom MCP server.
## Connect
In Bolt, click the profile menu and choose **Settings**.
Open **Connectors** and select **Custom MCP Server**.
Add the name **Feedspace** and paste this URL:
```
https://mcp.feedspace.io/mcp
```
Change the authentication method to **MCP OAuth**.
Save the connector, then click on it again.
Click **Connect** and complete the authentication flow.
You can jump straight to the right screen: [open Bolt MCP settings](https://bolt.new/?settings=mcp-servers).
## Verify it works
Ask Bolt:
> "List my Feedspace workspaces"
If you see your workspaces, the connection is live.
## Remove it
Open **Settings**, then **Connectors**, and remove Feedspace.
Bolt needs the authentication method set to **MCP OAuth** explicitly. Leaving it on the default will cause the connection to fail.
# ChatGPT
Source: https://docs.feedspace.io/mcp/setup/chatgpt
Add Feedspace to ChatGPT with the Feedspace app or a custom MCP connector.
There are two ways to connect Feedspace to ChatGPT: install the **Feedspace app**, or add Feedspace as a **custom MCP connector**. The app is quicker and has fewer plan restrictions, so try that first.
## Connect with the Feedspace app
The quickest way is the native Feedspace app in ChatGPT. It needs no developer mode and no manual configuration.
Install the Feedspace app directly, no manual setup required.
This link opens the plugin straight away, so you can also paste it into a browser or send it to a teammate:
```
https://chatgpt.com/plugins/plugin_asdk_app_69b7c295191c81918c2a9b250198fe37
```
Or find it yourself: open **Plugins** in ChatGPT's left navigation, search for **Feedspace**, and add it with the **+** button.
## Or connect manually
Connecting manually requires **developer mode**, which is available on paid ChatGPT plans (Plus, Pro, Business, Enterprise, and Edu). If developer mode is not available to you, use the Feedspace app above instead.
Click your profile, choose **Settings**, then open the **Plugins** section and turn on **Developer Mode** under **Advanced Settings**.
The settings section is named differently across ChatGPT versions. Look for **Plugins**, **Apps**, or **Connectors**, whichever your account shows.
If there is no Developer Mode option, your plan does not include custom connectors. Use the Feedspace app above instead.
Go to **Plugins**, either from ChatGPT's left navigation or from Settings. Both open the plugin list at `chatgpt.com/plugins`.
With Developer Mode on, a **+** button appears at the top right, next to the **Search plugins** box. Click it to add a custom plugin.
The **+** only shows once Developer Mode is enabled. If you do not see it, go back to step 1.
Add the name **Feedspace** and paste this URL:
```
https://mcp.feedspace.io/mcp
```
Accept the terms and confirm. Feedspace then appears under **Installed** on the Plugins page.
Jump straight there: [open the ChatGPT plugins page](https://chatgpt.com/plugins).
## Verify it works
Ask ChatGPT:
> "List my Feedspace workspaces"
If you see your workspaces, the connection is live.
## Remove it
Open **Plugins** from the left navigation, find Feedspace under **Installed**, and remove it.
## The + icon is not showing
This is the most common snag, and it almost always means Developer Mode is not actually on.
1. **Check Developer Mode is enabled.** Settings, then Plugins, then Advanced Settings.
2. **Reload the page.** The **+** often does not appear until you refresh after enabling it.
3. **Confirm you are on the web.** Custom plugins are a web feature, and the mobile apps do not offer them.
If Developer Mode is not there at all, your plan does not include custom plugins. Use the [Feedspace app](https://chatgpt.com/plugins/plugin_asdk_app_69b7c295191c81918c2a9b250198fe37) instead, which needs neither Developer Mode nor a plan upgrade.
## Plan limitations
| Plan | Custom plugins |
| ------------------------------------ | --------------------------------------------- |
| Free | Not available. Use the Feedspace app instead. |
| Plus, Pro, Business, Enterprise, Edu | Available through Developer Mode |
Developer Mode is a paid feature, so a custom plugin needs a paid plan. The Feedspace app has no such requirement.
On Business, Enterprise, and Edu, admins can restrict what plugins are allowed to do, and write actions may need enabling. If reading your reviews works but creating a widget fails, ask your workspace admin before assuming it is a Feedspace problem.
OpenAI changes these rules often, so check [OpenAI's connector documentation](https://help.openai.com/en/articles/11487775-connectors-in-chatgpt) if something behaves differently.
# Claude
Source: https://docs.feedspace.io/mcp/setup/claude
Add Feedspace to Claude as a custom connector for AI-powered review workflows.
Add Feedspace to Claude as a custom connector for AI-powered review workflows. Connectors are available on claude.ai, Claude Desktop, and the mobile apps, and are set up from your Claude account rather than per device, so adding it once makes it available everywhere you use Claude.
## Connect
In Claude, go to **Customize**, then **Connectors**.
Click **+**, then **Add custom connector**.
Enter this as the remote MCP server URL:
```
https://mcp.feedspace.io/mcp
```
Leave **Advanced settings** alone. Feedspace needs no OAuth client ID or secret.
Click **Add**, then approve the sign-in prompt that opens to link your Feedspace account.
Feedspace tools will be available to Claude.
**On a Team or Enterprise plan?** An Owner has to add the connector first, under **Organization settings**, then **Connectors**, then **Add**, hovering **Custom** and choosing **Web**. Everyone else then finds Feedspace under **Customize**, then **Connectors**, and clicks **Connect** to sign in.
You can jump straight to the right screen: [open Claude connector settings](https://claude.ai/settings/connectors?modal=add-custom-connector).
## Verify it works
Ask Claude:
> "List my Feedspace workspaces"
If you see your workspaces, the connection is live.
## Remove it
Open **Customize**, then **Connectors**, and remove Feedspace. The next time you connect you will be asked to sign in and authorize again.
Removing it applies to your whole Claude account, so it disappears from the web app, the desktop app, and mobile at the same time.
# Lovable
Source: https://docs.feedspace.io/mcp/setup/lovable
Connect Feedspace to Lovable so your prompts can pull live reviews.
Connect Feedspace to Lovable so your prompts can pull live reviews into whatever you are building.
## Connect
In the Lovable sidebar, go to **Connectors**.
Scroll down and select **Custom MCP**.
Enter the server name **Feedspace** and paste this URL:
```
https://mcp.feedspace.io/mcp
```
Leave the authentication method as **OAuth**.
Click **Add & Authorize** to finish.
You can jump straight to the right screen: [open Lovable connector settings](https://lovable.dev/dashboard?connectors).
## Verify it works
Ask Lovable:
> "List my Feedspace workspaces"
If you see your workspaces, the connection is live.
## Remove it
Open **Connectors** in the sidebar and remove Feedspace.
# Perplexity
Source: https://docs.feedspace.io/mcp/setup/perplexity
Authorize Feedspace inside Perplexity to query your reviews from chat.
Authorize Feedspace inside Perplexity to query your reviews from chat.
## Connect
Open Perplexity and go to **Settings**, then **Connectors**.
Choose **Add custom connector** and select **MCP**.
Paste this as the server endpoint:
```
https://mcp.feedspace.io/mcp
```
Complete the Feedspace sign-in prompt to grant access.
Mention Feedspace in your search to use the connector.
You can jump straight to the right screen: [open Perplexity connector settings](https://www.perplexity.ai/account/connectors).
## Verify it works
Ask Perplexity:
> "List my Feedspace workspaces"
If you see your workspaces, the connection is live.
## Remove it
Open **Settings**, then **Connectors**, and remove Feedspace.
# v0
Source: https://docs.feedspace.io/mcp/setup/v0
Reference Feedspace tools while iterating on your v0 designs.
Reference Feedspace tools while iterating on your v0 designs.
## Connect
In v0, click your profile and open **Account Settings**.
Open the **Integrations** tab.
Click **Add MCP Server** and choose **Custom MCP**.
Add the name **Feedspace** and paste this URL:
```
https://mcp.feedspace.io/mcp
```
Select **OAuth** as the authentication method.
Click **Authorize** and complete the authentication.
You can jump straight to the right screen: [open v0 MCP connections](https://v0.app/chat/settings/mcp-connections).
## Verify it works
Ask v0:
> "List my Feedspace workspaces"
If you see your workspaces, the connection is live.
## Remove it
Open **Account Settings**, then **Integrations**, and remove Feedspace.
# Forms
Source: https://docs.feedspace.io/mcp/tools/forms
Tools for creating and managing review collection forms.
Forms are shareable links where your customers can submit written, video, audio, or screen-recorded reviews. These tools let you create forms, customize them, and track submissions. Forms are for **collecting** reviews. To **display** reviews on your website, use [Widgets](/mcp/tools/widgets), or for a standalone testimonial page, use [Wall of Love](/mcp/tools/pages).
## Available Tools
| Tool | Description | Try asking |
| ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- |
| `list_forms` | List all review collection forms in your workspace, with views, review counts, and conversion rate per form | "Which of my forms has the best conversion rate?" |
| `get_form` | Look up a form's name, settings, and which fields it asks for | "Show me the details of my feedback form" |
| `get_form_share` | Get the customer-facing link and QR code for a form | "Give me the shareable link for my review form" |
| `get_form_stats` | See a form's collected review counts by type, and how many times it has been opened | "How many submissions has my review form received?" |
| `create_review_collection_form` | Create a new form, choosing the heading, which review types to accept, what to ask reviewers, and the branding | "Create a review form called 'Customer Feedback' that accepts written and video reviews" |
| `update_form` | Edit any part of a legacy form: heading, review types, button labels, star rating, reviewer fields, custom questions, thank-you page, colours, custom CSS | "Change the primary color of my review form to blue" |
| `get_form_translation` | Get a form's translatable text in a target language | "Get the Spanish text for my customer feedback form" |
| `save_form_translation` | Save translated text for a form in a specific language | "Translate my review form into Spanish and save it" |
## Review Types a Form Can Accept
| Type | What the reviewer does |
| ------- | ------------------------------------------------------ |
| Written | Types their review |
| Video | Records a video with their camera |
| Audio | Records a voice review |
| Screen | Records their screen, useful for software walkthroughs |
Each can be turned on or off, and each has its own button label you can reword. All are enabled by default, so name the ones you want turned **off**.
## Legacy and AI-Native Forms
Every form returned by `list_forms` carries a `form_kind`:
| `form_kind` | What it is | Editable over MCP? |
| ----------- | ----------------------------------- | ----------------------- |
| `legacy` | The standard review collection form | Yes, with `update_form` |
| `ai_native` | An AI interview form | No, web app only |
`update_form` and the translation tools work on **legacy forms only**. Calling them on an AI-native form fails. Edit AI interview forms in the [Feedspace dashboard](https://app.feedspace.io).
Check `form_kind` from `list_forms` first if you are unsure which kind you have.
## Which Tool Gives Which Numbers
The two stats sources are not interchangeable:
* **`get_form_stats`** returns review counts by type (`video_feeds_count`, `audio_feeds_count`, `text_feeds_count`) and how many times the form was opened (`logs_count`).
* **`list_forms`** returns the numbers the dashboard shows: `hits`, `reviews`, and `conversion_rate`.
If you want views and conversion rate, use `list_forms`.
## Translating a Form
Translation is a two-step round trip:
1. Call `get_form_translation` with a `formUniqueId` and a `targetLanguage` code (for example `es`, `fr`, `hi`, `ar`). It returns the translatable strings keyed by translation key, such as `landing__title` and `thankyou_title`, plus a `language_id`.
2. Translate the values, then pass them back to `save_form_translation` with the same keys and that `language_id`.
Translations are supported on legacy forms only. The first request for a new language generates the translation and can be slow. If it times out, call again, as the result is cached after the first run.
Saving a translation adds a language to the form; it does not change the form's base copy.
# Imports
Source: https://docs.feedspace.io/mcp/tools/imports
Tools for importing reviews into Feedspace.
Manually import text reviews and testimonials into your Feedspace workspace with full reviewer details. For bulk imports or importing from platforms like Google, Trustpilot, G2, etc., use the import features in the [Feedspace dashboard](https://app.feedspace.io) directly.
## Available Tools
| Tool | Description | Try asking |
| -------------------- | ----------------------------------------------------------------------------------- | ------------------------------------------------------------------------ |
| `import_text_review` | Import a text review with the reviewer's name, company, job title, rating, and more | "Import a testimonial from John Smith at Acme Corp with a 5-star rating" |
## Notes
* Only `workspaceId`, `customer_name`, and `review` are required. Everything else is optional.
* `rating` accepts 1 to 5 and allows half stars, such as `4.5`. When omitted it defaults to **5**, matching the web app's import form.
* `review_at` takes a date as `YYYY-MM-DD`, so imported reviews keep their original date rather than today's.
* `review_url` stores a link back to where the review originally appeared.
# Labels
Source: https://docs.feedspace.io/mcp/tools/labels
Tools for organizing reviews with labels.
Labels help you categorize and organize your reviews. Create labels, assign them to reviews, and use them to filter your content. Labels can also be applied in bulk using the `batch_update_reviews` tool from the [Reviews](/mcp/tools/reviews) module.
## Available Tools
| Tool | Description | Try asking |
| ----------------- | ----------------------------------------------------------------------------- | ---------------------------------------------- |
| `list_labels` | List all review labels in your workspace, optionally with their review counts | "Show me all my review labels" |
| `create_label` | Create a new label with a name and optional color (defaults to orange) | "Create a red 'Featured' label" |
| `update_label` | Rename a label or change its colour | "Rename the 'Featured' label to 'Homepage'" |
| `assign_labels` | Add one or more labels to a review | "Add the 'Featured' label to this review" |
| `unassign_labels` | Remove one or more labels from a review | "Remove the 'Featured' label from this review" |
`list_labels` always returns `reviews_count` for each label, alongside its `id`, `name`, and `attributes.css_color_code`. There is no `include` parameter, and the only argument it takes is `workspaceId`.
## Identifying Reviews and Labels
Assigning or unassigning labels needs two different kinds of identifier:
* **The review** is identified by `reviewId` (a **number**) plus `feedType` (`text`, `audio`, `video`, or `social`). The id alone is not unique across review types.
* **The labels** are passed as `reviewLabels`, an array of 26-character ULID strings (the `id` field returned by `list_labels`), not label names.
`assign_labels` and `unassign_labels` take `feedType`, while the review tools take `reviewType`. Both accept the same four values. `batch_update_reviews` uses `reviewType` and is usually the better choice for tagging several reviews at once.
## Label Colours
`create_label` and `update_label` take a hex colour. The web app's palette is:
| Colour | Hex | Colour | Hex |
| ------- | --------- | ------- | --------- |
| Orange | `#EA580C` | Blue | `#2563EB` |
| Yellow | `#CA8A04` | Violet | `#7C3AED` |
| Lime | `#65A30D` | Fuchsia | `#C026D3` |
| Emerald | `#059669` | Pink | `#DB2777` |
| Cyan | `#0891B2` | | |
Any hex value is accepted, so existing labels may use colours outside this list. `list_labels` returns each label's colour as `attributes.css_color_code`.
# Wall of Love
Source: https://docs.feedspace.io/mcp/tools/pages
Tools for creating standalone testimonial pages with shareable URLs.
Wall of Love are standalone hosted testimonial landing pages with their own public URL (e.g. `feedspace.io/workspace/page-name`). These pages can be shared directly with anyone.
## Available Tools
| Tool | Description | Try asking |
| ------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------- |
| `list_pages` | List all Wall of Love pages in your workspace | "Show me all my Wall of Love pages" |
| `get_page` | Get details of a specific page | "Show me the details of my Customer Love page" |
| `create_page` | Create a new page, optionally with specific reviews pre-selected | "Create a Wall of Love called 'Customer Love' with my best reviews" |
| `update_page` | Rename a page, change which reviews appear, edit its design, or change its public URL slug | "Add my latest 5-star reviews to my Wall of Love page" |
| `update_page_automation` | Set auto-add rules so new matching reviews appear on the page automatically | "Automatically add any new 5-star review to my Customer Love page" |
| `duplicate_page` | Copy a page with the same reviews, design, and settings | "Duplicate my Customer Love page" |
| `get_page_stats` | See how many times a page has been viewed | "How many views has my Wall of Love page received?" |
| `get_page_share` | Get the public URL to share with anyone | "Give me the public URL for my Wall of Love page" |
## Customizing a Page
`update_page` accepts a `design` object matching the editor's Design tab: hero heading and subtitle, background, colours, fonts, navigation links, the inline call-to-action, load-more behaviour, JSON-LD for SEO, and custom CSS. Only the fields you pass change.
You can also set `reviewSelectionSortBy` to `newest`, `oldest`, or an empty string to keep the order reviews were added in, and change the page's public URL with `slug` (availability is checked before saving).
Hero background images can only be uploaded in the web app. `allowCustomDomain` and `allowRemoveBranding` depend on your plan.
## Automating a Page
`update_page_automation` adds new reviews to a page as they arrive, using the same filters as the review list: star ratings, sentiment, labels, forms, review type, keywords (included and excluded), and reviewer details such as whether they gave a name or company.
Filter groups combine, so a review must match **all** the groups you set. Only the filters you pass change, so look the page up first if you want to see the current rules. Automation turns on by default when any filter is set, and off when all are cleared.
# Reviews
Source: https://docs.feedspace.io/mcp/tools/reviews
Tools for managing reviews and testimonials in your Feedspace workspace.
These tools let you browse, filter, update, and organize your collected reviews, including text, video, audio, and social reviews.
## Available Tools
| Tool | Description | Try asking |
| ---------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------- |
| `get_reviews` | Fetch all your reviews, page by page | "Show me all reviews in my workspace" |
| `filter_reviews` | Filter reviews by type, sentiment, star rating, form, label, or keyword | "Find all 5-star text reviews with positive sentiment" |
| `get_filter_options` | See available filter options: forms, labels, and import sources | "What filter options are available for my reviews?" |
| `get_review` | Get the full details of a single review | "Show me the details of text review 14067" |
| `update_review` | Update a review's rating, title, text, or date, plus the reviewer's details | "Update the title of this review to 'Great Experience'" |
| `favourite_review` | Mark or unmark a review as favourite | "Favourite this text review" |
| `get_review_summary` | Get the total number of reviews in the workspace | "How many reviews do I have in total?" |
| `batch_update_reviews` | Bulk favourite, unfavourite, assign labels, or remove labels | "Favourite all my 5-star reviews" |
## Identifying a Review
Most review tools need **two** values together, because a review id is only unique within its type:
* `reviewType`: one of `text`, `video`, `audio`, or `social`
* `reviewId`: the id returned by `get_reviews`, `filter_reviews`, or `get_review`
`batch_update_reviews` takes a list of these pairs, so you can mix review types in a single call.
Widgets and Wall of Love pages use a different identifier: `feed_identifier`, a single string that looks like `feed-video-item-428`. Use that when passing reviews to `create_widget`, `update_widget`, `create_page`, or `update_page`.
## Filtering Notes
* `filter_reviews` accepts `reviewTypes` (`video`, `audio`, `text`, `social`), `starRatings` (1 to 5), `sentiment` (`positive`, `neutral`, `negative`), `formIds`, `reviewLabelIds`, `importedSourceIds`, and a `search` keyword.
* Handy boolean filters: `favourite`, `reviewWithComment`, and `hasCompanyLogo` (useful when picking reviews for a Company Logo Slider widget).
* `perPage` is capped at 100, but the backend currently returns a fixed page size of 15 and may ignore the value.
* `get_review_summary` returns only a total count. For per-type or per-rating numbers, use `filter_reviews` and read the pagination total.
Ratings on social reviews (including most imported ones) cannot be changed through `update_review`, matching the behaviour of the web app. Reviewer fields that the original form did not capture are quietly skipped.
# Team Members
Source: https://docs.feedspace.io/mcp/tools/team-members
Tools for managing workspace team members and invitations.
Invite team members to collaborate within your workspace and manage their access. You can invite people as **Admin** (full access, apart from billing and deleting the workspace), **Editor** (can modify content), or **Viewer** (read-only access). The workspace **Owner** is a separate role that cannot be assigned through an invitation, but it does appear when you list team members.
## Available Tools
| Tool | Description | Try asking |
| ---------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
| `list_team_members` | List all team members with their roles (`owner`, `admin`, `editor`, `viewer`) and invitation status | "Show me all team members in my workspace" |
| `invite_team_member` | Invite a new team member by email as an Admin, Editor, or Viewer | "Invite [jane@company.com](mailto:jane@company.com) as an Editor to my workspace" |
| `reinvite_team_member` | Resend a pending invitation that has not been accepted yet | "Resend the invitation to the pending team member" |
Changing an existing member's role and removing someone from a workspace are not available through the MCP server. Both are supported in the [Feedspace dashboard](https://app.feedspace.io) under workspace team settings.
`reinvite_team_member` only works while an invitation is still pending. Once it has been accepted, there is nothing to resend.
## Roles and Permissions
| Permission | Owner | Admin | Editor | Viewer |
| ----------------------- | ----- | ----- | ------ | ------ |
| View reviews | Yes | Yes | Yes | Yes |
| Create and edit reviews | Yes | Yes | Yes | No |
| Delete reviews | Yes | Yes | No | No |
| Manage forms | Yes | Yes | Yes | No |
| Manage team | Yes | Yes | No | No |
| Workspace settings | Yes | Yes | No | No |
| Billing and plan | Yes | No | No | No |
| Delete workspace | Yes | No | No | No |
| Transfer ownership | Yes | No | No | No |
Your role determines what the MCP server can do on your behalf. A Viewer authenticating through MCP gets read-only access, so write tools return a permission error.
## Which Team Member ID to Use
Team member operations are addressed by `unique_invitation_id`, the **string** identifier returned by `list_team_members`. The numeric `id` in the same response is not accepted; passing it returns a 404 "invitation not found".
Note that the workspace owner is returned by `list_team_members` with a `null` `unique_invitation_id` when they have no invitation record, so the owner cannot be targeted by these tools.
# Widgets
Source: https://docs.feedspace.io/mcp/tools/widgets
Tools for creating embeddable testimonial widgets for your website.
Widgets are embeddable components that display your reviews on external websites via an embed code snippet. Choose from multiple layout types to match your website design. For a standalone hosted page with its own URL, use [Wall of Love](/mcp/tools/pages) instead.
## Available Tools
| Tool | Description | Try asking |
| -------------------------- | ----------------------------------------------------------------------------------------- | --------------------------------------------------------------------- |
| `list_widgets` | List all embeddable widgets in your workspace | "Show me all my testimonial widgets" |
| `get_widget` | Get details of a specific widget | "Show me the details of my carousel widget" |
| `get_widget_share` | Get the embed code snippet to paste into your website | "Give me the embed code for my testimonial widget" |
| `get_widget_stats` | See how many times a widget has been viewed | "How many views has my testimonial widget received?" |
| `create_widget` | Create a new widget with your chosen layout and reviews | "Create a carousel widget with my 5-star reviews" |
| `update_widget` | Rename a widget, change which reviews it shows and their order, or restyle its appearance | "Restyle my carousel widget with a blue accent and rounded corners" |
| `update_widget_automation` | Set auto-add rules so new matching reviews appear in the widget automatically | "Automatically add any new 5-star video review to my carousel widget" |
| `replicate_widget` | Duplicate a widget with all its settings and reviews | "Duplicate my carousel widget" |
## Available Layouts
Pass the layout as the numeric `type` when calling `create_widget`. Masonry Grid is the default.
| Type | Layout | Type | Layout |
| ---- | ---------------------- | ---- | ---------------------- |
| `4` | Carousel | `10` | Horizontal Scroll |
| `5` | Masonry Grid (default) | `11` | Floating Cards |
| `6` | Strip Slider | `16` | Avatar Carousel Slider |
| `7` | Avatar Group | `17` | Cross Slider |
| `8` | Avatar Slider | `18` | Company Logo Slider |
| `9` | Vertical Scroll | `19` | Avatar Blocks |
The layout cannot be changed after a widget is created. To switch layouts, create a new widget instead.
Feedspace also offers Floating Badge, Review Badge, and Review and Ratings widgets in the dashboard, and none of the three can be created through the MCP server. Floating Badge and Review Badge aggregate a review source instead of taking a hand-picked list, which is why `create_widget` cannot express them. Build all three in the [Feedspace dashboard](https://app.feedspace.io).
**Ask for an unsupported layout and you get a substitute, not an error.** Requesting a Floating Badge widget produces a Floating Cards one, created successfully and reported as done, because the assistant picks the closest available layout rather than refusing.
Use a name from the table above, and if you are unsure what you got, ask "what layout type is that widget?" before embedding it.
**Leave reviews out and the widget fills itself.** Creating a widget without naming which reviews to include pre-fills it with your **4** most recent. Pass the reviews you want, or say how many, if that is not what you are after.
## Which Tool Gives Which Numbers
* **`get_widget_stats`** returns the view count only.
* **`list_widgets`** returns `view_count` and `engagement_rate` for every widget, plus `automation_filters_enabled` and the `embed_domains` the widget has actually been embedded on.
If you want engagement rate or want to see where a widget is embedded, use `list_widgets`.
`list_widgets` returns **every** widget, including Floating Badge, Review Badge, and Review and Ratings. You can list, read, and share those, you just cannot create them with `create_widget`.
## Customizing a Widget
`update_widget` accepts a `customization` object covering everything in the dashboard's widget editor: layout toggles, colours, fonts, shadows, borders, scroll speed and direction, the inline call-to-action, and custom CSS.
Only the fields you pass change; every other setting is preserved. Fields that do not apply to the widget's layout are ignored, so a `marquee_speed` sent to a Carousel is silently dropped.
A few settings are plan-gated: `allow_custom_css` (which enables `custom_css`, max 1500 characters) and `allow_to_remove_branding`.
# Workspaces
Source: https://docs.feedspace.io/mcp/tools/workspaces
Tools for managing Feedspace workspaces.
Workspaces are the top-level containers for all your reviews, forms, widgets, and pages. Most tools require a workspace ID, so call `list_workspaces` first to get it.
## Available Tools
| Tool | Description | Try asking |
| ------------------------ | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- |
| `list_workspaces` | List all your workspaces, with your role in each. Typically the first tool called in any workflow | "List my Feedspace workspaces" |
| `get_workspace` | Get a workspace's setup status: review counts and whether a form, page, widget, or custom domain exists yet | "Show me the setup status of my workspace" |
| `create_workspace` | Create a new workspace with a name, and optional website URL and public slug | "Create a new workspace called 'My SaaS Product'" |
| `update_workspace` | Update a workspace's name, website URL, or public slug | "Rename my workspace to 'Acme Reviews'" |
| `get_workspace_branding` | Pull a brand's colours, logo, and favicon from a website and apply them to the workspace | "Extract the branding from my website at example.com" |
Despite its name, `get_workspace_branding` **writes**. As well as returning the colours it finds, it saves the fetched logo and favicon onto the workspace, the same as the web app's fetch. It is not a read-only lookup.
`get_workspace` does not report permissions. It returns a `permissions` field, but the value is `null`. Your role in a workspace comes from `list_workspaces`, which returns a `role` field (`owner`, `admin`, `editor`, or `viewer`) for every workspace.
## Which Workspace ID to Use
Every workspace has two identifiers, and only one of them works with the API:
* `unique_workspace_id` is the **string** identifier used everywhere. It is sent as the `fs-workspace-id` header and used as the path segment for workspace-scoped routes.
* `id` is numeric and is not accepted. Passing it where `unique_workspace_id` is expected returns a 404 "workspace not found".
`list_workspaces` returns both, so always carry the `unique_workspace_id` value forward.
# Troubleshooting & FAQ
Source: https://docs.feedspace.io/mcp/troubleshooting
Common issues and solutions when using the Feedspace MCP server.
## Common Issues
**Possible causes and solutions:**
* Verify you are using the correct server URL: `https://mcp.feedspace.io/mcp`
* Make sure you have completed the OAuth sign-in flow in your browser when prompted
* Try removing and re-adding the MCP server in your client settings
* Check that your Feedspace account is active at [app.feedspace.io](https://app.feedspace.io)
* Clear your MCP client's cached credentials and re-authenticate
**Possible causes and solutions:**
* You must have at least one workspace in your Feedspace account
* Sign in to [app.feedspace.io](https://app.feedspace.io) and create a workspace if needed
* Ensure you authenticated with the correct Feedspace account
* If you were recently added to a workspace, the owner may need to verify your access
**Possible causes and solutions:**
* Restart your AI tool (the Claude desktop app in particular needs a restart after configuration changes)
* Verify the server URL in your client is exactly `https://mcp.feedspace.io/mcp` with no trailing slash or extra path
* Ensure you are using **Streamable HTTP** as the transport type
**Possible causes and solutions:**
* Your role in the workspace may not have sufficient permissions
* **Admins** have full access; **Editors** can modify forms, pages, and widgets; **Viewers** have read-only access
* Contact the workspace Admin to adjust your role
* Use `list_team_members` to check your current role in the workspace
**Possible causes and solutions:**
* Make sure you are passing the correct `feed_identifier` values (format: `feed-{type}-item-{id}`)
* Use `get_reviews` or `filter_reviews` to get the exact identifiers
* Verify the reviews exist and belong to the correct workspace
* Check that the reviews have not been soft-deleted
**Possible causes and solutions:**
* If fetching large datasets, use pagination parameters (`page`, `perPage`) to limit results
* For bulk operations on many reviews, use `batch_update_reviews` rather than individual calls
* If the issue persists, try again after a few moments
## Frequently Asked Questions
**No.** The server never exposes a delete tool of any kind. This is a deliberate rule, so that an AI assistant cannot cause data loss. To delete reviews, forms, widgets, or pages, use the [Feedspace dashboard](https://app.feedspace.io) directly.
The only "removal" operations available are `unassign_labels` (removes a label association, not the review itself) and unfavouriting, via `favourite_review` or the `unfavourite` action on `batch_update_reviews` (removes the favourite flag).
Feedspace supports and documents six AI tools:
* [ChatGPT](/mcp/setup/chatgpt)
* [Claude](/mcp/setup/claude) (web and desktop)
* [Perplexity](/mcp/setup/perplexity)
* [Lovable](/mcp/setup/lovable)
* [Bolt](/mcp/setup/bolt)
* [v0](/mcp/setup/v0)
The server follows the **Model Context Protocol** over **Streamable HTTP** with OAuth, so other MCP-compatible clients can connect using the same URL. They are not officially supported, and setup steps vary by client.
Yes. Authentication uses **OAuth 2.1 with PKCE**, the industry standard for secure authorization. Your Feedspace credentials are never shared with the AI assistant. The bearer token is scoped to your account and transmitted over HTTPS.
Yes. Each team member authenticates with their own Feedspace account. Their access level is determined by their role in the workspace (Admin, Editor, or Viewer).
Remove the Feedspace connector from the client you added it to. The next time you connect, you will be asked to sign in and authorize again.
The MCP server works with your existing Feedspace account. Tool availability depends on your Feedspace plan features. There is no additional charge for MCP access.
## Getting Help
Reach out to the Feedspace team for help with any issues.
Sign in to manage your reviews, forms, and settings directly.
# feed.audio.received
Source: https://docs.feedspace.io/webhook-reference/audio-reviews/received
This webhook is triggered whenever a new audio review is received in the Feedspace workspace the webhook belongs to.
## Webhook Type
`feed.audio.received`
## Payload Format
```json theme={null}
{
"type": "feed.audio.received",
"data": {
"project": {
"logo": "LOGO_URL",
"name": "PROJECT_NAME",
"description": "PROJECT_DESCRIPTION"
},
"feed_form": {
"id": "FORM_SLUG",
"url": "FORM_URL",
"logo": "FORM_LOGO_URL",
"name": "FORM_NAME"
},
"feed_id": "FEED_ID",
"feed_url": "FEED_URL",
"audio_url": "AUDIO_FILE_URL",
"audio_extension": "mp3",
"audio_size": 204800,
"response": {
"name": "RESPONDER_NAME",
"email": "RESPONDER_EMAIL",
"consent": true,
"position": "RESPONDER_POSITION",
"organization_name": "RESPONDER_ORGANIZATION_NAME",
"contact_number": "RESPONDER_PHONE_NUMBER",
"photo": "RESPONDER_PHOTO_URL",
"company_logo": "RESPONDER_COMPANY_LOGO_URL",
"company_url": "RESPONDER_COMPANY_URL",
"other_text": "ANSWER_TO_CUSTOM_FIELD",
"other_text2": "ANSWER_TO_CUSTOM_FIELD_2",
"other_text3": "ANSWER_TO_CUSTOM_FIELD_3",
"type": "Audio",
"comment": "REVIEW_COMMENT",
"rating": "5"
},
"favourite": false,
"created_at": "TIMESTAMP",
"updated_at": "TIMESTAMP",
"live_mode": true
},
"reviewer_email": "RESPONDER_EMAIL"
}
```
`type`, `data` and `reviewer_email` are the only top-level keys. `reviewer_email` is the email answer lifted out of `data.response`, and is `null` when the form did not collect one.
## Object Structure
### Project Object
The `project` object contains information about the workspace/project where the review was submitted.
```json theme={null}
{
"logo": "LOGO_URL",
"name": "PROJECT_NAME",
"description": "PROJECT_DESCRIPTION"
}
```
#### Project Fields
* `logo`: URL to the project's logo image
* `name`: Name of the project/workspace
* `description`: Description or identifier for the project
### Feed Form Object
The `feed_form` object contains information about the review form used to collect the feedback.
```json theme={null}
{
"id": "FORM_SLUG",
"url": "FORM_URL",
"logo": "FORM_LOGO_URL",
"name": "FORM_NAME"
}
```
#### Feed Form Fields
* `id`: The form's public slug, the same identifier that appears in the form's public URL. This is **not** the `unique_form_id` used by the Review Forms API, so it cannot be passed to those endpoints.
* `url`: Public URL where the form can be accessed
* `logo`: URL to the form's page image. Only present when the form has a page image configured, so treat it as optional.
* `name`: Name or title of the review form
### Response Object
The `response` object contains the actual review data submitted by the user.
```json theme={null}
{
"name": "RESPONDER_NAME",
"email": "RESPONDER_EMAIL",
"consent": true,
"position": "RESPONDER_POSITION",
"organization_name": "RESPONDER_ORGANIZATION_NAME",
"contact_number": "PHONE_NUMBER",
"photo": "PHOTO_URL",
"company_logo": "COMPANY_LOGO_URL",
"company_url": "COMPANY_URL",
"other_text": "ANSWER_TO_CUSTOM_FIELD",
"other_text2": "ANSWER_TO_CUSTOM_FIELD_2",
"other_text3": "ANSWER_TO_CUSTOM_FIELD_3",
"type": "Audio",
"comment": "REVIEW_COMMENT",
"rating": "5"
}
```
#### Fields
* `name`: Name of the person who submitted the review
* `email`: Email address of the reviewer
* `consent`: Whether the reviewer gave consent to share their information
* `position`: Position or role of the reviewer
* `organization_name`: Name of the organization of the reviewer
* `contact_number`: Phone number of the reviewer
* `photo`: URL to the reviewer's photo
* `company_logo`: URL to the reviewer's company logo
* `company_url`: Website URL of the reviewer's company
* `other_text`: Answer of the custom field added by the Feedspace user in the feed form settings
* `other_text2`: Answer of the second custom field, when the form defines one
* `other_text3`: Answer of the third custom field, when the form defines one
* `type`: How the audio was captured (`"Audio"` for a recording, `"Upload"` for an uploaded file)
* `comment`: The written review text submitted alongside the audio, `null` when none was given
* `rating`: The star rating as a **string**, e.g. `"5"` or `"4.5"`, and `null` when the form did not collect a rating
The keys of this object are the raw question identifiers of the form, which is why they are lowercase. Forms created before the identifiers were normalised may still send capitalised keys such as `Name`, `Email` or `Photo`, so match case-insensitively if you need to support older forms.
Note: All fields in this object are customizable. They can be enabled or disabled in the feed form settings. If a field is not enabled in the form settings, it will not be included in the webhook response. `type`, `comment` and `rating` are always present.
### Top-Level Fields
```json theme={null}
{
"feed_id": "FEED_ID",
"feed_url": "FEED_URL",
"audio_url": "AUDIO_FILE_URL",
"audio_extension": "mp3",
"audio_size": 204800,
"favourite": false,
"created_at": "TIMESTAMP",
"updated_at": "TIMESTAMP",
"live_mode": true
}
```
#### Top-Level Field Descriptions
* `feed_id`: Unique identifier for this specific review
* `feed_url`: Public URL where the review is accessible
* `audio_url`: URL to access the audio file
* `audio_extension`: File extension of the audio (e.g., mp3)
* `audio_size`: Size of the audio file in bytes, as an integer
* `favourite`: Whether this review is marked as favorite
* `created_at`: Timestamp when the review was created
* `updated_at`: Timestamp when the review was last updated
* `live_mode`: Whether this is a live mode (true) or test mode (false)
# Contact us
Source: https://docs.feedspace.io/webhook-reference/request
# feed.text.received
Source: https://docs.feedspace.io/webhook-reference/text-reviews/received
This webhook is triggered whenever a new text review is received in the Feedspace workspace the webhook belongs to.
## Webhook Type
`feed.text.received`
## Payload Format
```json theme={null}
{
"type": "feed.text.received",
"data": {
"project": {
"logo": "LOGO_URL",
"name": "PROJECT_NAME",
"description": "PROJECT_DESCRIPTION"
},
"feed_form": {
"id": "FORM_SLUG",
"url": "FORM_URL",
"logo": "FORM_LOGO_URL",
"name": "FORM_NAME"
},
"feed_id": "FEED_ID",
"feed_url": "FEED_URL",
"attachments": [
{
"type": "image",
"image_url": "IMAGE_URL",
"image_extension": "jpg",
"image_size": 84213
},
{
"type": "video",
"thumbnail_url": "THUMBNAIL_IMAGE_URL",
"video_url": "VIDEO_FILE_URL",
"video_extension": "mp4",
"video_size": 1048576
},
{
"type": "audio",
"audio_url": "AUDIO_FILE_URL",
"audio_extension": "mp3",
"audio_size": 204800
}
],
"response": {
"name": "RESPONDER_NAME",
"email": "RESPONDER_EMAIL",
"consent": true,
"position": "RESPONDER_POSITION",
"organization_name": "RESPONDER_ORGANIZATION_NAME",
"contact_number": "RESPONDER_PHONE_NUMBER",
"photo": "RESPONDER_PHOTO_URL",
"company_logo": "RESPONDER_COMPANY_LOGO_URL",
"company_url": "RESPONDER_COMPANY_URL",
"other_text": "ANSWER_TO_CUSTOM_FIELD",
"other_text2": "ANSWER_TO_CUSTOM_FIELD_2",
"other_text3": "ANSWER_TO_CUSTOM_FIELD_3",
"comment": "REVIEW_COMMENT",
"type": "star",
"value": "5"
},
"favourite": false,
"created_at": "TIMESTAMP",
"updated_at": "TIMESTAMP",
"live_mode": true
},
"reviewer_email": "RESPONDER_EMAIL"
}
```
`type`, `data` and `reviewer_email` are the only top-level keys. `reviewer_email` is the email answer lifted out of `data.response`, and is `null` when the form did not collect one.
## Object Structure
### Project Object
The `project` object contains information about the workspace/project where the review was submitted.
```json theme={null}
{
"logo": "LOGO_URL",
"name": "PROJECT_NAME",
"description": "PROJECT_DESCRIPTION"
}
```
#### Project Fields
* `logo`: URL to the project's logo image
* `name`: Name of the project/workspace
* `description`: Description or identifier for the project
### Feed Form Object
The `feed_form` object contains information about the review form used to collect the feedback.
```json theme={null}
{
"id": "FORM_SLUG",
"url": "FORM_URL",
"logo": "FORM_LOGO_URL",
"name": "FORM_NAME"
}
```
#### Feed Form Fields
* `id`: The form's public slug, the same identifier that appears in the form's public URL. This is **not** the `unique_form_id` used by the Review Forms API, so it cannot be passed to those endpoints.
* `url`: Public URL where the form can be accessed
* `logo`: URL to the form's page image. Only present when the form has a page image configured, so treat it as optional.
* `name`: Name or title of the review form
### Response Object
The `response` object contains the actual review data submitted by the user.
```json theme={null}
{
"name": "RESPONDER_NAME",
"email": "RESPONDER_EMAIL",
"consent": true,
"position": "RESPONDER_POSITION",
"organization_name": "RESPONDER_ORGANIZATION_NAME",
"contact_number": "PHONE_NUMBER",
"photo": "PHOTO_URL",
"company_logo": "COMPANY_LOGO_URL",
"company_url": "COMPANY_URL",
"other_text": "ANSWER_TO_CUSTOM_FIELD",
"other_text2": "ANSWER_TO_CUSTOM_FIELD_2",
"other_text3": "ANSWER_TO_CUSTOM_FIELD_3",
"comment": "REVIEW_COMMENT",
"type": "star",
"value": "5"
}
```
#### Fields
* `name`: Name of the person who submitted the review
* `email`: Email address of the reviewer
* `consent`: Whether the reviewer gave consent to share their information
* `position`: Position or role of the reviewer
* `organization_name`: Name of the organization of the reviewer
* `contact_number`: Phone number of the reviewer
* `photo`: URL to the reviewer's photo
* `company_logo`: URL to the reviewer's company logo
* `company_url`: Website URL of the reviewer's company
* `other_text`: Answer of the custom field added by the Feedspace user in the feed form settings
* `other_text2`: Answer of the second custom field, when the form defines one
* `other_text3`: Answer of the third custom field, when the form defines one
* `comment`: The actual text content of the review
* `type`: Type of review (`"star"`, `"thumbs_up"` or `"comment_only"`)
* `value`: Value corresponding to the review type
* For `type` `"star"`: the rating as a **string**, e.g. `"5"`, not a number
* For `type` `"thumbs_up"`: a real boolean, `true` = upvote, `false` = downvote
* For `type` `"comment_only"`: `value` is `null`
The keys of this object are the raw question identifiers of the form, which is why they are lowercase. Forms created before the identifiers were normalised may still send capitalised keys such as `Name`, `Email` or `Photo`, so match case-insensitively if you need to support older forms.
Note: All fields in this object are customizable. They can be enabled or disabled in the feed form settings. If a field is not enabled in the form settings, it will not be included in the webhook response. `comment`, `type` and `value` are always present.
### Attachments
If the review has media attached, `data.attachments` is present as an array. The key is omitted entirely when the review has no attachments. Every item carries a `type` field, and the remaining fields depend on that type.
```json theme={null}
[
{
"type": "image",
"image_url": "IMAGE_URL",
"image_extension": "jpg",
"image_size": 84213
},
{
"type": "video",
"thumbnail_url": "THUMBNAIL_IMAGE_URL",
"video_url": "VIDEO_FILE_URL",
"video_extension": "mp4",
"video_size": 1048576
},
{
"type": "audio",
"audio_url": "AUDIO_FILE_URL",
"audio_extension": "mp3",
"audio_size": 204800
}
]
```
#### Attachment Fields
* `type`: One of `"image"`, `"video"` or `"audio"`
* For `"image"`: `image_url`, `image_extension`, and `image_size` in bytes (integer, `null` if unknown)
* For `"video"`: `thumbnail_url` (empty string `""` when no thumbnail exists), `video_url`, `video_extension`, and `video_size` in bytes (integer, `null` if unknown)
* For `"audio"`: `audio_url`, `audio_extension`, and `audio_size` in bytes (integer, `null` if unknown)
When a text review is submitted with a video or audio attachment, the webhook is not sent immediately. It fires once the media has finished processing, so the attachment URLs in the payload are always ready to use.
### Top-Level Fields
```json theme={null}
{
"feed_id": "FEED_ID",
"feed_url": "FEED_URL",
"favourite": false,
"created_at": "TIMESTAMP",
"updated_at": "TIMESTAMP",
"live_mode": true
}
```
#### Top-Level Field Descriptions
* `feed_id`: Unique identifier for this specific review
* `feed_url`: Public URL where the review is accessible
* `favourite`: Whether this review is marked as favorite
* `created_at`: Timestamp when the review was created
* `updated_at`: Timestamp when the review was last updated
* `live_mode`: Whether this is a live mode (true) or test mode (false)
# feed.video.received
Source: https://docs.feedspace.io/webhook-reference/video-reviews/received
This webhook is triggered whenever a new video review is received in the Feedspace workspace the webhook belongs to.
## Webhook Type
`feed.video.received`
## Payload Format
```json theme={null}
{
"type": "feed.video.received",
"data": {
"project": {
"logo": "LOGO_URL",
"name": "PROJECT_NAME",
"description": "PROJECT_DESCRIPTION"
},
"feed_form": {
"id": "FORM_SLUG",
"url": "FORM_URL",
"logo": "FORM_LOGO_URL",
"name": "FORM_NAME"
},
"feed_id": "FEED_ID",
"feed_url": "FEED_URL",
"thumbnail_url": "THUMBNAIL_IMAGE_URL",
"video_url": "VIDEO_FILE_URL",
"video_extension": "mp4",
"video_size": 1048576,
"response": {
"name": "RESPONDER_NAME",
"email": "RESPONDER_EMAIL",
"consent": true,
"position": "RESPONDER_POSITION",
"organization_name": "RESPONDER_ORGANIZATION_NAME",
"contact_number": "RESPONDER_PHONE_NUMBER",
"photo": "RESPONDER_PHOTO_URL",
"company_logo": "RESPONDER_COMPANY_LOGO_URL",
"company_url": "RESPONDER_COMPANY_URL",
"other_text": "ANSWER_TO_CUSTOM_FIELD",
"other_text2": "ANSWER_TO_CUSTOM_FIELD_2",
"other_text3": "ANSWER_TO_CUSTOM_FIELD_3",
"type": "Video",
"comment": "REVIEW_COMMENT",
"rating": "5"
},
"favourite": false,
"created_at": "TIMESTAMP",
"updated_at": "TIMESTAMP",
"live_mode": true
},
"reviewer_email": "RESPONDER_EMAIL"
}
```
`type`, `data` and `reviewer_email` are the only top-level keys. `reviewer_email` is the email answer lifted out of `data.response`, and is `null` when the form did not collect one.
## Object Structure
### Project Object
The `project` object contains information about the workspace/project where the review was submitted.
```json theme={null}
{
"logo": "LOGO_URL",
"name": "PROJECT_NAME",
"description": "PROJECT_DESCRIPTION"
}
```
#### Project Fields
* `logo`: URL to the project's logo image
* `name`: Name of the project/workspace
* `description`: Description or identifier for the project
### Feed Form Object
The `feed_form` object contains information about the review form used to collect the feedback.
```json theme={null}
{
"id": "FORM_SLUG",
"url": "FORM_URL",
"logo": "FORM_LOGO_URL",
"name": "FORM_NAME"
}
```
#### Feed Form Fields
* `id`: The form's public slug, the same identifier that appears in the form's public URL. This is **not** the `unique_form_id` used by the Review Forms API, so it cannot be passed to those endpoints.
* `url`: Public URL where the form can be accessed
* `logo`: URL to the form's page image. Only present when the form has a page image configured, so treat it as optional.
* `name`: Name or title of the review form
### Response Object
The `response` object contains the actual review data submitted by the user.
```json theme={null}
{
"name": "RESPONDER_NAME",
"email": "RESPONDER_EMAIL",
"consent": true,
"position": "RESPONDER_POSITION",
"organization_name": "RESPONDER_ORGANIZATION_NAME",
"contact_number": "PHONE_NUMBER",
"photo": "PHOTO_URL",
"company_logo": "COMPANY_LOGO_URL",
"company_url": "COMPANY_URL",
"other_text": "ANSWER_TO_CUSTOM_FIELD",
"other_text2": "ANSWER_TO_CUSTOM_FIELD_2",
"other_text3": "ANSWER_TO_CUSTOM_FIELD_3",
"type": "Video",
"comment": "REVIEW_COMMENT",
"rating": "5"
}
```
#### Fields
* `name`: Name of the person who submitted the review
* `email`: Email address of the reviewer
* `consent`: Whether the reviewer gave consent to share their information
* `position`: Position or role of the reviewer
* `organization_name`: Name of the organization of the reviewer
* `contact_number`: Phone number of the reviewer
* `photo`: URL to the reviewer's photo
* `company_logo`: URL to the reviewer's company logo
* `company_url`: Website URL of the reviewer's company
* `other_text`: Answer of the custom field added by the Feedspace user in the feed form settings
* `other_text2`: Answer of the second custom field, when the form defines one
* `other_text3`: Answer of the third custom field, when the form defines one
* `type`: How the video was captured (`"Video"`, `"Screen"` or `"Upload"`)
* `comment`: The written review text submitted alongside the video, `null` when none was given
* `rating`: The star rating as a **string**, e.g. `"5"` or `"4.5"`, and `null` when the form did not collect a rating
The keys of this object are the raw question identifiers of the form, which is why they are lowercase. Forms created before the identifiers were normalised may still send capitalised keys such as `Name`, `Email` or `Photo`, so match case-insensitively if you need to support older forms.
Note: All fields in this object are customizable. They can be enabled or disabled in the feed form settings. If a field is not enabled in the form settings, it will not be included in the webhook response. `type`, `comment` and `rating` are always present.
### Top-Level Fields
```json theme={null}
{
"feed_id": "FEED_ID",
"feed_url": "FEED_URL",
"thumbnail_url": "THUMBNAIL_IMAGE_URL",
"video_url": "VIDEO_FILE_URL",
"video_extension": "mp4",
"video_size": 1048576,
"favourite": false,
"created_at": "TIMESTAMP",
"updated_at": "TIMESTAMP",
"live_mode": true
}
```
#### Top-Level Field Descriptions
* `feed_id`: Unique identifier for this specific review
* `feed_url`: Public URL where the review is accessible
* `thumbnail_url`: URL to the video thumbnail image. When no thumbnail was generated this is an empty string `""`, not `null`.
* `video_url`: URL to access the video file
* `video_extension`: File extension of the video (e.g., mp4)
* `video_size`: Size of the video file in bytes, as an integer
* `favourite`: Whether this review is marked as favorite
* `created_at`: Timestamp when the review was created
* `updated_at`: Timestamp when the review was last updated
* `live_mode`: Whether this is a live mode (true) or test mode (false)
# Getting Started
Source: https://docs.feedspace.io/webhook-reference/webhook-access
Feedspace provides webhooks to notify your application about important events in real-time. This section documents all available webhook events and their payloads.
Webhooks are scoped to a single workspace. A webhook only receives reviews submitted into the workspace it was created in, so if you work across multiple workspaces you need one webhook endpoint per workspace.
### How to Get Webhook Access
To get webhook access:
1. Go to the [Webhook Access](https://app.feedspace.io/automation/webhooks) page and make sure the workspace you want to receive events for is selected.
2. Enter your webhook endpoint URL in the provided input field.
3. Save the endpoint. A newly created webhook is always subscribed to **all** available events and starts out inactive, whatever you picked in the form. To narrow the subscription to specific events, edit the webhook after it has been created.
4. Click the "Activate" button to enable webhook delivery for that workspace.
Once activated, Feedspace will start sending webhook notifications for the subscribed events to your specified endpoint.
### Available Webhook Events
Feedspace currently supports the following webhook events:
* `feed.text.received`: Triggered when a new text review is received
* `feed.video.received`: Triggered when a new video review is received
* `feed.audio.received`: Triggered when a new audio review is received
### Webhook Delivery
Feedspace will send webhook notifications as HTTP POST requests to your specified webhook URL. Each notification follows this format:
```json theme={null}
{
"type": "feed.text.received",
"data": {},
"reviewer_email": "reviewer@example.com"
}
```
Every payload has exactly these three top-level keys:
* `type`: The event type, one of `feed.text.received`, `feed.video.received` or `feed.audio.received`.
* `data`: The review itself. Its contents differ per event type, so it is shown empty above.
* `reviewer_email`: A copy of the email address the reviewer submitted, surfaced at the top level for convenience. It is `null` when the form did not collect an email.
For the complete `data` object, see [feed.text.received](/webhook-reference/text-reviews/received), [feed.video.received](/webhook-reference/video-reviews/received) or [feed.audio.received](/webhook-reference/audio-reviews/received).
### Delivery Behaviour
Each event is delivered as a **single** HTTP POST request. Feedspace never retries: a non-2xx status, a timeout, or a connection error will not cause the event to be sent again. The response status and body are recorded in the webhook logs. If you need at-least-once processing, queue the payload as soon as you receive it and handle failures on your side.
The request times out after 20 seconds, so acknowledge quickly and do your processing asynchronously.
## Verify Webhook Signature
To ensure the integrity and authenticity of incoming webhook requests, Feedspace signs each payload with a unique secret. We strongly recommend verifying this signature for all production webhooks.
### How It Works
1. **The Signature Headers:** Feedspace sends two headers with each webhook request:
* `x-feedspace-signature`: The HMAC-SHA256 signature of the payload.
* `x-feedspace-timestamp`: The Unix timestamp (in seconds) when the webhook was sent
2. **Your Signing Secret:** Each webhook in your workspace has a unique signing secret. You can find this secret in your Feedspace dashboard under **Automation > Webhook**. Production secrets are prefixed with `whsec_live_` and non-production secrets with `whsec_test_`.
3. **Verification Process:** You reconstruct the signature on your server using the timestamp, the raw request body, and your secret. If it matches the `x-feedspace-signature` header, the webhook is legitimate.
### Sample Verification Code
```php PHP theme={null}
### Best Practices
* Implement proper error handling for incoming webhook requests
* Consider implementing request validation to verify the authenticity of webhook requests
* Handle different event types appropriately in your application
* Keep your webhook endpoint URL secure and accessible