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

# Update Review App and Websites

> Update the productivity rating, idle-ignore flag, and category for a specific tracked app or website within a team.




## OpenAPI

````yaml /openapi.yaml patch /v1/settings/review-apps-and-sites
openapi: 3.1.0
info:
  title: Trackpilots API & Webhooks
  version: 1.1.0
  description: >
    Trackpilots REST APIs and Webhook events.

    Webhooks are sent by the Trackpilots desktop agent to customer-configured
    endpoints.

    Clients only send `secret_key`. All other fields are generated by the
    server.
servers:
  - url: https://api.trackpilots.com
    description: Production server
security: []
tags:
  - name: Teams
    description: Team management APIs
  - name: Settings
    description: Organisation and team settings management APIs
  - name: Desktop Events
    description: Desktop agent webhook events
paths:
  /v1/settings/review-apps-and-sites:
    patch:
      tags:
        - Settings
      summary: Update Review App and Websites
      description: >
        Update the productivity rating, idle-ignore flag, and category for a
        specific tracked app or website within a team.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateReviewAppsAndSitesRequest'
      responses:
        '200':
          description: App tracking settings updated successfully
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/200UpdateReviewAppsAndSitesSuccessResponse
        '400':
          description: Request validation failed
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/400UpdateReviewAppsAndSitesValidationErrorResponse
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '404':
          description: App not found for the given team
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/404ReviewAppsAndSitesNotFoundErrorResponse
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
        - BearerAuth: []
components:
  schemas:
    UpdateReviewAppsAndSitesRequest:
      type: object
      required:
        - appName
        - appProductivity
        - isIgnoreIdle
        - teamId
      properties:
        appName:
          type: string
          example: Google Chrome
        appProductivity:
          type: string
          example: productive
        isIgnoreIdle:
          type: boolean
          example: false
        teamId:
          type: string
          format: uuid
          example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
        appCategory:
          type: string
          nullable: true
          description: >-
            Category name from the categories list (e.g. from GET
            /v1/settings/category)
          example: Software Development
    200UpdateReviewAppsAndSitesSuccessResponse:
      type: object
      properties:
        success:
          type: boolean
          example: true
        statusCode:
          type: integer
          example: 200
        statusMessage:
          type: string
          example: App tracking settings updated successfully
        error:
          type: object
          nullable: true
          example: null
        data:
          type: object
          properties:
            appName:
              type: string
              example: Google Chrome
            appProductivity:
              type: string
              example: productive
            isIgnoreIdle:
              type: boolean
              example: false
            teamId:
              type: string
              format: uuid
              example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
            appCategory:
              type: string
              nullable: true
              description: >-
                Category name from the categories list (e.g. from GET
                /v1/settings/category)
              example: Software Development
    400UpdateReviewAppsAndSitesValidationErrorResponse:
      type: object
      properties:
        success:
          type: boolean
          example: false
        statusCode:
          type: integer
          example: 400
        statusMessage:
          type: string
          example: Request validation failed
        error:
          type: object
          properties:
            message:
              type: string
              example: 'appName: appName is required'
            code:
              type: string
              example: VALIDATION_ERROR
        data:
          nullable: true
          example: null
    404ReviewAppsAndSitesNotFoundErrorResponse:
      type: object
      properties:
        success:
          type: boolean
          example: false
        statusCode:
          type: integer
          example: 404
        statusMessage:
          type: string
          example: App not found
        error:
          type: object
          properties:
            message:
              type: string
              example: No app found with the given name for this team
            code:
              type: string
              example: APP_NOT_FOUND
        data:
          nullable: true
          example: null
    ErrorResponse:
      type: object
      properties:
        success:
          type: boolean
          example: false
        statusCode:
          type: integer
          format: int32
          example: 401
        statusMessage:
          type: string
          example: Authentication failed
        data:
          nullable: true
          example: null
        error:
          type: object
          properties:
            message:
              type: string
              example: Authorization header is missing
            code:
              type: string
              enum:
                - AUTHORIZATION_HEADER_MISSING
                - INVALID_API_KEY_SCHEMA
                - API_KEY_MISSING
                - INVALID_API_KEY
                - PLAN_EXPIRED
              example: AUTHORIZATION_HEADER_MISSING
    InternalServerError:
      allOf:
        - $ref: '#/components/schemas/BaseError'
        - type: object
          properties:
            statusCode:
              example: 500
            statusMessage:
              example: Internal server error
            error:
              type: object
              properties:
                message:
                  example: Some technical error has occurred !!
                code:
                  example: UNKNOWN_SERVER_ERROR
    BaseError:
      type: object
      properties:
        success:
          type: boolean
          example: false
        statusCode:
          type: integer
        statusMessage:
          type: string
        data:
          nullable: true
          example: null
        error:
          type: object
          properties:
            message:
              type: string
            code:
              type: string
  responses:
    UnauthorizedError:
      description: Authentication & Authorization errors
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            authorizationHeaderMissing:
              summary: Authorization header missing
              value:
                success: false
                statusCode: 401
                statusMessage: Authentication token header is missing
                data: null
                error:
                  message: Authorization header is missing
                  code: AUTHORIZATION_HEADER_MISSING
            invalidAuthorizationScheme:
              summary: Invalid authorization scheme
              value:
                success: false
                statusCode: 401
                statusMessage: Invalid authentication token schema
                data: null
                error:
                  message: Authorization header must start with 'Bearer'
                  code: INVALID_API_KEY_SCHEMA
            apiKeyMissing:
              summary: API key missing
              value:
                success: false
                statusCode: 401
                statusMessage: Authentication token is missing
                data: null
                error:
                  message: API key value is missing
                  code: API_KEY_MISSING
            invalidApiKey:
              summary: Invalid or inactive API key
              value:
                success: false
                statusCode: 401
                statusMessage: Authentication failed
                data: null
                error:
                  message: Provided API key is invalid or inactive
                  code: INVALID_API_KEY
            planExpired:
              summary: Upgrade required
              value:
                success: false
                statusCode: 401
                statusMessage: Upgrade required
                data: null
                error:
                  message: Upgrade required to use Trackpilots APIs
                  code: PLAN_EXPIRED
    InternalServerError:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/InternalServerError'
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````