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

# Review Item

> Creates or updates a review for the specified item. More information around the caching surrounding item ratings and reviews can be found here: https://learn.microsoft.com/en-us/gaming/playfab/features/economy-v2/catalog/ratings#ratings-design-and-caching

Allowed entity token types: title, master_player_account, title_player_account

## Error codes

This operation may return the following PlayFab errors:

| Error | Code |
| --- | --- |
| DatabaseThroughputExceeded | 1113 |
| ItemNotFound | 1047 |




## OpenAPI

````yaml post /Catalog/ReviewItem
openapi: 3.0.0
info:
  version: '260922'
  title: PlayFab Economy API
  description: >-
    API methods for managing the catalog. Inventory manages in-game assets for
    any given entity. API methods for managing the versioned catalogs.
  termsOfService: https://playfab.com/terms/
  contact:
    url: https://community.playfab.com/index.html
  license:
    name: Apache 2.0
    url: https://github.com/PlayFab/API_Specs/blob/master/LICENSE
servers:
  - url: https://{titleId}.playfabapi.com
    description: PlayFab title endpoint
    variables:
      titleId:
        default: your_title_id
        description: Your PlayFab title ID (hex).
security: []
tags:
  - name: Catalog
    description: |-
      Catalog Management APIs. In general for Catalog APIs, 
                          Read APIs are limited to 100 requests in 60 seconds 
                          for Player Entities while Title Entities are limited to 10000 requests
                          in 10 seconds. For Write APIs, Player Entities are limited to 10 requests 
                          in 30 seconds and Title Entities are limited to 1000 requests in 10 seconds.
  - name: Inventory
    description: |-
      Player Inventory Management APIs. Inventory operations work on an 
                          eventually consistent system against a cache of the Catalog. It can take a few moments for 
                          changes to propagate. In general for Inventory APIs, Read APIs are limited to 100 requests 
                          in 60 seconds for Player Entities while Title Entities are limited to 10000 requests
                          in 10 seconds. For Write APIs, Player Entities are limited to 30 requests 
                          in 90 seconds and Title Entities are limited to 1000 requests in 10 seconds.
  - name: VersionedCatalog
    description: ''
paths:
  /Catalog/ReviewItem:
    post:
      tags:
        - Catalog
      summary: Review Item
      description: >
        Creates or updates a review for the specified item. More information
        around the caching surrounding item ratings and reviews can be found
        here:
        https://learn.microsoft.com/en-us/gaming/playfab/features/economy-v2/catalog/ratings#ratings-design-and-caching


        Allowed entity token types: title, master_player_account,
        title_player_account


        ## Error codes


        This operation may return the following PlayFab errors:


        | Error | Code |

        | --- | --- |

        | DatabaseThroughputExceeded | 1113 |

        | ItemNotFound | 1047 |
      operationId: ReviewItem
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReviewItemRequest'
      responses:
        '200':
          $ref: '#/components/responses/ReviewItemResponse'
        '400':
          $ref: '#/components/responses/ApiErrorWrapper'
      security:
        - EntityToken: []
components:
  schemas:
    ReviewItemRequest:
      type: object
      properties:
        AlternateId:
          allOf:
            - $ref: '#/components/schemas/CatalogAlternateId'
          description: An alternate ID associated with this item.
        CustomTags:
          description: >-
            The optional custom tags associated with the request (e.g. build
            number, external trace identifiers, etc.).
          type: object
        Entity:
          allOf:
            - $ref: '#/components/schemas/EntityKey'
          description: The entity to perform this action on.
        Id:
          description: The unique ID of the item.
          type: string
        Review:
          allOf:
            - $ref: '#/components/schemas/Review'
          description: The review to submit.
      example:
        Review:
          ItemVersion: 2.4.1
          Title: Best Game Ever
          ReviewText: I play this game every day. It's my favorite game yet.
          Rating: 5
          IsInstalled: true
        Id: dddddddd-dddd-dddd-dddd-dddddddddddd
    CatalogAlternateId:
      type: object
      properties:
        Type:
          description: Type of the alternate ID.
          type: string
        Value:
          description: Value of the alternate ID.
          type: string
    EntityKey:
      description: >-
        Combined entity type and ID structure which uniquely identifies a single
        entity.
      type: object
      properties:
        Id:
          description: Unique ID of the entity.
          type: string
        Type:
          description: >-
            Entity type. See
            https://learn.microsoft.com/gaming/playfab/features/data/entities/available-built-in-entity-types
          type: string
      required:
        - Id
    Review:
      type: object
      properties:
        CategoryRatings:
          description: >-
            The star rating associated with each selected category in this
            review.
          type: object
          x-actualtype: int32
        HelpfulNegative:
          description: The number of negative helpfulness votes for this review.
          type: number
          x-actualtype: int32
        HelpfulPositive:
          description: The number of positive helpfulness votes for this review.
          type: number
          x-actualtype: int32
        IsInstalled:
          description: Indicates whether the review author has the item installed.
          type: boolean
        ItemId:
          description: The ID of the item being reviewed.
          type: string
        ItemVersion:
          description: The version of the item being reviewed.
          type: string
        Locale:
          description: The locale for which this review was submitted in.
          type: string
        Rating:
          description: Star rating associated with this review.
          type: number
          x-actualtype: int32
        ReviewerEntity:
          allOf:
            - $ref: '#/components/schemas/EntityKey'
          description: The ID of the author of the review.
        ReviewId:
          description: The ID of the review.
          type: string
        ReviewText:
          description: The full text of this review.
          type: string
        Submitted:
          description: The date and time this review was last submitted.
          type: string
        Title:
          description: The title of this review.
          type: string
      required:
        - Rating
        - IsInstalled
        - HelpfulPositive
        - HelpfulNegative
        - Submitted
    ReviewItemResponse:
      type: object
      properties: {}
      example: {}
    ApiErrorWrapper:
      description: The basic wrapper around every failed API response
      type: object
      properties:
        code:
          description: Numerical HTTP code
          type: integer
        status:
          description: String HTTP code
          type: string
        error:
          description: Playfab error code
          type: string
        errorCode:
          description: Numerical PlayFab error code
          type: integer
        errorMessage:
          description: Description for the PlayFab errorCode
          type: string
        errorDetails:
          description: Detailed description of individual issues with the request object
          type: object
      required:
        - code
        - errorCode
  responses:
    ReviewItemResponse:
      description: ''
      content:
        application/json:
          schema:
            type: object
            properties:
              code:
                type: integer
                description: >-
                  The Http status code. If X-ReportErrorAsSuccess header is set
                  to true, this will report the actual http error code.
              status:
                type: string
                description: The Http status code as a string.
              data:
                $ref: '#/components/schemas/ReviewItemResponse'
            example:
              code: 200
              status: OK
              data: {}
    ApiErrorWrapper:
      description: This is the outer wrapper for all responses with errors
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiErrorWrapper'
  securitySchemes:
    EntityToken:
      type: apiKey
      in: header
      name: X-EntityToken
      description: >-
        This API requires an Entity Session Token, available from the Entity
        GetEntityToken method.

````

## Related topics

- [Review Item](/api-reference/catalog/review-item.md)
- [Get Item Review Summary](/api-reference/catalog/get-item-review-summary.md)
- [PFCatalogReviewItemAsync](/services/playfab/api-references/c/pfcatalog/functions/pfcatalogreviewitemasync.md)
- [PFCatalogReviewItemRequest](/services/playfab/api-references/c/pfcatalogtypes/structs/pfcatalogreviewitemrequest.md)
- [Get Item Reviews](/api-reference/catalog/get-item-reviews.md)
