# Update a review

```
PUT 
https://api.freemius.com/v1/products/{product_id}/reviews/{review_id}.json
```

#### Auth:Bearer TokenSCOPE: <!-- -->PRODUCT

Product-scoped API tokens allow you to operate on the product itself. This token usually allows read-only access to the product configuration and write access to several operations on subscriptions, customers, payments, and more. For most SaaS or app integrations, this is the token you will need.

1. Go to the [Freemius Developer Dashboard](https://dashboard.freemius.com/).
2. Open the Settings page of the relevant product.
3. Click the API & Keys tab.
4. Copy the API Bearer Authorization Token from the UI.

***

Update a product review by ID

> The rate can only be modified for developer generated reviews.

## Request[​](#request "Direct link to request")

### Path Parameters

* **product\_id**
  <!-- -->
  integer\<int64>[](#param-property-reviews-update-param-path-product-id "Direct link to product_id")required

  The ID of the product.

  **Possible values:** `>= 1`

  **Example:<!-- -->&#x20;**`1234`

  **review\_id**
  <!-- -->
  integer\<int64>[](#param-property-reviews-update-param-path-review-id "Direct link to review_id")required

  The ID of the review.

  **Possible values:** `>= 1`

  **Example:<!-- -->&#x20;**`1234`

### Query Parameters

* **fields**
  <!-- -->
  string[](#param-property-reviews-update-param-query-fields "Direct link to fields")

  Comma separated list of fields to return in the response. If not specified, all fields are returned.

  **Example:<!-- -->&#x20;**`id,name,slug`

multipart/form-data

### Body**required**

* **picture**string\<binary>[](#schema-property-reviews-update-request-body-picture-string-binary "Direct link to picture")

  Reviewer's profile picture. A maximum of 200KB in size and 300px width and 300px height is allowed.

  **data**string\<json>[](#schema-property-reviews-update-request-body-data-string-json "Direct link to data")

  The JSON data of the endpoint, matching the same schema as the json request body. Must be a valid JSON object.

  **Example:<!-- -->&#x20;**`{"name":"My Product"}`

## Responses[​](#responses "Direct link to Responses")

* 200
* 400
* 401
* 402
* 404

The updated review.

application/json

**Schema**

**id**string\<int64>[](#schema-property-reviews-update-response-schema-id-string-int64 "Direct link to id")

The unique identifier of the entity.

**Possible values:** `>= 1`

**Example:<!-- -->&#x20;**`123456`

**created**string\<date-time>[](#schema-property-reviews-update-response-schema-created-string-date-time "Direct link to created")

The date and time the entity was created, under UTC timezone.

**Example:<!-- -->&#x20;**`2025-01-01 00:00:00`

**updated**string\<date-time>[](#schema-property-reviews-update-response-schema-updated-string-date-time "Direct link to updated")nullable

The date and time the entity was updated, under UTC timezone. If `null` then the entity was never updated since its creation.

**Example:<!-- -->&#x20;**`2025-01-01 00:00:00`

**plugin\_id**string\<int64>[](#schema-property-reviews-update-response-schema-plugin-id-string-int64 "Direct link to plugin_id")

The ID of the product the entity belongs to.

**Possible values:** `>= 1`

**Example:<!-- -->&#x20;**`123456`

**external\_id**string[](#schema-property-reviews-update-response-schema-external-id-string "Direct link to external_id")

The external ID of the review (in case migrating from another system).

**user\_id**string\<int64>[](#schema-property-reviews-update-response-schema-user-id-string-int64 "Direct link to user_id")nullable

The ID of the user the entity belongs to. If NULL then still not associated to any user.

**Possible values:** `>= 1`

**Example:<!-- -->&#x20;**`123456`

**rate**integer[](#schema-property-reviews-update-response-schema-rate-integer "Direct link to rate")

The score of the review.

**Possible values:** `>= 0` and `<= 100`

**Example:<!-- -->&#x20;**`80`

**title**string[](#schema-property-reviews-update-response-schema-title-string "Direct link to title")

The title of the review.

**Example:<!-- -->&#x20;**`Great plugin! It works perfectly.`

**text**string[](#schema-property-reviews-update-response-schema-text-string "Direct link to text")

The content of the review.

**Example:<!-- -->&#x20;**`I love this plugin! It has all the features I need and more. The support team is also very responsive and helpful. Highly recommend!`

**name**string[](#schema-property-reviews-update-response-schema-name-string "Direct link to name")

The full name of the reviewer.

**Example:<!-- -->&#x20;**`John Doe`

**job\_title**string[](#schema-property-reviews-update-response-schema-job-title-string "Direct link to job_title")

The job title of the reviewer.

**Example:<!-- -->&#x20;**`Software Engineer`

**company**string[](#schema-property-reviews-update-response-schema-company-string "Direct link to company")

The company name of the reviewer.

**Example:<!-- -->&#x20;**`Example Software Inc.`

**company\_url**string[](#schema-property-reviews-update-response-schema-company-url-string "Direct link to company_url")

The URL of the entity.

**Example:<!-- -->&#x20;**`https://www.example.com`

**picture**string\<binary>[](#schema-property-reviews-update-response-schema-picture-string-binary "Direct link to picture")

The icon of the entity, must be a valid JPG, PNG or GIF image, with dimension not exceeding 300px by 300px. Max allowed size is 200KB

**profile\_url**string[](#schema-property-reviews-update-response-schema-profile-url-string "Direct link to profile_url")

The URL of the reviewer's profile.

**Example:<!-- -->&#x20;**`https://example.com/profile`

**license\_id**string\<int64>[](#schema-property-reviews-update-response-schema-license-id-string-int64 "Direct link to license_id")

The ID of the license associated with the entity.

**Possible values:** `>= 1`

**Example:<!-- -->&#x20;**`123456`

**is\_verified**boolean[](#schema-property-reviews-update-response-schema-is-verified-boolean "Direct link to is_verified")

**Default value:<!-- -->&#x20;**`true`

Whether this is a genuine review generated by a real user.

**is\_featured**boolean[](#schema-property-reviews-update-response-schema-is-featured-boolean "Direct link to is_featured")

**Default value:<!-- -->&#x20;**`false`

Whether the review should be included in marketing material (e.g. pricing page).

Bad request. The request could not be understood by the server due to malformed syntax or arguments.

application/json

**Schema**

**path**string[](#schema-property-reviews-update-response-schema-path-string "Direct link to path")

The API request path.

**Example:<!-- -->&#x20;**`:/products/product_id/users.json`

**error** <!-- -->object

This object contains the error details.

**type**string[](#schema-property-reviews-update-response-schema-type-string "Direct link to type")

The type of the error encountered by the server.

**Example:<!-- -->&#x20;**`UnauthorizedAccess`

**message**string[](#schema-property-reviews-update-response-schema-message-string "Direct link to message")

The descriptive error message.

**Example:<!-- -->&#x20;**`Some error has occured.`

**code**string[](#schema-property-reviews-update-response-schema-code-string "Direct link to code")

The error code.

**Example:<!-- -->&#x20;**`unauthorized_access`

**http**integer[](#schema-property-reviews-update-response-schema-http-integer "Direct link to http")

The HTTP status code returned by the server.

**Example:<!-- -->&#x20;**`401`

**timestamp**string[](#schema-property-reviews-update-response-schema-timestamp-string "Direct link to timestamp")

Current timestamp.

**Example:<!-- -->&#x20;**`Thu, 11 May 2023 11:45:30 +0000`

**request** <!-- -->object

This object sends back the request payload as received by the server (both from path and from body or query).

**property name\***&#x61;ny[](#schema-property-reviews-update-response-schema-property-name-any "Direct link to property name*")

This object sends back the request payload as received by the server (both from path and from body or query).

**Example:<!-- -->&#x20;**`{"beautify":true,"format":"json"}`

Unauthorized access error. The request requires [authentication](https://freemius.com/help/api/#bearer-token-authentication) but was not provided or the provided authentication does not satisfy the required permissions.

application/json

**Schema**

**path**string[](#schema-property-reviews-update-response-schema-path-string "Direct link to path")

The API request path.

**Example:<!-- -->&#x20;**`:/products/product_id/users.json`

**error** <!-- -->object

This object contains the error details.

**type**string[](#schema-property-reviews-update-response-schema-type-string "Direct link to type")

The type of the error encountered by the server.

**Example:<!-- -->&#x20;**`UnauthorizedAccess`

**message**string[](#schema-property-reviews-update-response-schema-message-string "Direct link to message")

The descriptive error message.

**Example:<!-- -->&#x20;**`Some error has occured.`

**code**string[](#schema-property-reviews-update-response-schema-code-string "Direct link to code")

The error code.

**Example:<!-- -->&#x20;**`unauthorized_access`

**http**integer[](#schema-property-reviews-update-response-schema-http-integer "Direct link to http")

The HTTP status code returned by the server.

**Example:<!-- -->&#x20;**`401`

**timestamp**string[](#schema-property-reviews-update-response-schema-timestamp-string "Direct link to timestamp")

Current timestamp.

**Example:<!-- -->&#x20;**`Thu, 11 May 2023 11:45:30 +0000`

**request** <!-- -->object

This object sends back the request payload as received by the server (both from path and from body or query).

**property name\***&#x61;ny[](#schema-property-reviews-update-response-schema-property-name-any "Direct link to property name*")

This object sends back the request payload as received by the server (both from path and from body or query).

**Example:<!-- -->&#x20;**`{"beautify":true,"format":"json"}`

The request is missing the specified argument.

application/json

**Schema**

**path**string[](#schema-property-reviews-update-response-schema-path-string "Direct link to path")

The API request path.

**Example:<!-- -->&#x20;**`:/products/product_id/users.json`

**error** <!-- -->object

This object contains the error details.

**type**string[](#schema-property-reviews-update-response-schema-type-string "Direct link to type")

The type of the error encountered by the server.

**Example:<!-- -->&#x20;**`UnauthorizedAccess`

**message**string[](#schema-property-reviews-update-response-schema-message-string "Direct link to message")

The descriptive error message.

**Example:<!-- -->&#x20;**`Some error has occured.`

**code**string[](#schema-property-reviews-update-response-schema-code-string "Direct link to code")

The error code.

**Example:<!-- -->&#x20;**`unauthorized_access`

**http**integer[](#schema-property-reviews-update-response-schema-http-integer "Direct link to http")

The HTTP status code returned by the server.

**Example:<!-- -->&#x20;**`401`

**timestamp**string[](#schema-property-reviews-update-response-schema-timestamp-string "Direct link to timestamp")

Current timestamp.

**Example:<!-- -->&#x20;**`Thu, 11 May 2023 11:45:30 +0000`

**request** <!-- -->object

This object sends back the request payload as received by the server (both from path and from body or query).

**property name\***&#x61;ny[](#schema-property-reviews-update-response-schema-property-name-any "Direct link to property name*")

This object sends back the request payload as received by the server (both from path and from body or query).

**Example:<!-- -->&#x20;**`{"beautify":true,"format":"json"}`

The requested resource was not found.

application/json

**Schema**

**path**string[](#schema-property-reviews-update-response-schema-path-string "Direct link to path")

The API request path.

**Example:<!-- -->&#x20;**`:/products/product_id/users.json`

**error** <!-- -->object

This object contains the error details.

**type**string[](#schema-property-reviews-update-response-schema-type-string "Direct link to type")

The type of the error encountered by the server.

**Example:<!-- -->&#x20;**`UnauthorizedAccess`

**message**string[](#schema-property-reviews-update-response-schema-message-string "Direct link to message")

The descriptive error message.

**Example:<!-- -->&#x20;**`Some error has occured.`

**code**string[](#schema-property-reviews-update-response-schema-code-string "Direct link to code")

The error code.

**Example:<!-- -->&#x20;**`unauthorized_access`

**http**integer[](#schema-property-reviews-update-response-schema-http-integer "Direct link to http")

The HTTP status code returned by the server.

**Example:<!-- -->&#x20;**`401`

**timestamp**string[](#schema-property-reviews-update-response-schema-timestamp-string "Direct link to timestamp")

Current timestamp.

**Example:<!-- -->&#x20;**`Thu, 11 May 2023 11:45:30 +0000`

**request** <!-- -->object

This object sends back the request payload as received by the server (both from path and from body or query).

**property name\***&#x61;ny[](#schema-property-reviews-update-response-schema-property-name-any "Direct link to property name*")

This object sends back the request payload as received by the server (both from path and from body or query).

**Example:<!-- -->&#x20;**`{"beautify":true,"format":"json"}`
