Получение отзывов о товарах продавца

Метод доступен для всех моделей.

Если вы используете API-Key-токен, для вызова метода необходим один из доступов в списке

Возвращает отзывы о товарах продавца по указанным фильтрам. Исключение: отзывы, которые удалили покупатели или Маркет.

Вы также можете настроить API-уведомления

Маркет отправит вам запрос, когда появится новый отзыв. А полную информацию о нем можно получить с помощью этого метода.

Как работать с уведомлениями

Результаты возвращаются постранично, одна страница содержит не более 50 отзывов.

Отзывы расположены в порядке публикации, поэтому вы можете передавать определенный идентификатор страницы в page_token, если вы получали его ранее.

⚙️ Лимит: 1 000 запросов в час

Request

POST

https://api.partner.market.yandex.ru/v2/businesses/{businessId}/goods-feedback

Path parameters

Name

Description

businessId

Type: integer

Идентификатор кабинета. Чтобы его узнать, воспользуйтесь запросом GET v2/campaigns.

ℹ️ Что такое кабинет и магазин на Маркете

Min value: 1

Query parameters

Name

Description

limit

Type: integer

Количество значений на одной странице.

Min value: 1

page_token

Type: string

Идентификатор страницы c результатами.

Если параметр не указан, возвращается первая страница.

Рекомендуем передавать значение выходного параметра nextPageToken, полученное при последнем запросе.

Если задан page_token и в запросе есть параметры page и pageSize, они игнорируются.

Example: eyBuZXh0SWQ6IDIzNDIgfQ==

Body

application/json
{
  "feedbackIds": [
    0
  ],
  "dateTimeFrom": "2020-02-02T14:30:30+03:00",
  "dateTimeTo": "2020-02-02T14:30:30+03:00",
  "updatedDateFrom": "2020-02-02T14:30:30+03:00",
  "updatedDateTo": "2020-02-02T14:30:30+03:00",
  "reactionStatus": "ALL",
  "ratingValues": [
    0
  ],
  "modelIds": [
    0
  ],
  "offerIds": [
    "example"
  ],
  "paid": true
}

Name

Description

dateTimeFrom

Type: string<date-time>

Начало периода. Не включительно.

Если параметр не указан, возвращается информация за 6 месяцев до указанной в dateTimeTo даты.

Максимальный интервал 6 месяцев.

Example: 2020-02-02T14:30:30+03:00

dateTimeTo

Type: string<date-time>

Конец периода. Не включительно.

Если параметр не указан, используется текущая дата.

Максимальный интервал 6 месяцев.

Example: 2020-02-02T14:30:30+03:00

feedbackIds

Type: GoodsFeedbackId[] | null

Идентификаторы отзывов.

⚠️ Не используйте это поле одновременно с другими фильтрами. Если вы хотите воспользоваться ими, оставьте поле пустым.

Min items: 1

Max items: 50

Unique items: true

Example
[
  0
]

modelIds

Type: integer[] | null

Фильтр по идентификатору модели товара.

Получить идентификатор модели можно с помощью одного из запросов:

Min items: 1

Max items: 20

Unique items: true

Example
[
  0
]

offerIds

Type: ShopSku[] | null

Фильтр по идентификатору товара.

Min items: 1

Max items: 20

Unique items: true

Example
[
  "example"
]

paid

Type: boolean

Фильтр отзывов за баллы Плюса.

ratingValues

Type: integer[] | null

Оценка товара.

Min items: 1

Max items: 5

Unique items: true

Example
[
  0
]

reactionStatus

Type: FeedbackReactionStatusType

Нужно ли вернуть только непрочитанные отзывы. Для этого передайте значение NEED_REACTION.

По умолчанию возвращаются все отзывы.

Статус реакции на отзыв:

  • ALL — все отзывы.

  • NEED_REACTION — отзывы, на которые нужно ответить.

Enum: ALL, NEED_REACTION

updatedDateFrom

Type: string<date-time>

Дата и время начала периода обновления вопроса.

Максимальный интервал 1 месяц.

Example: 2020-02-02T14:30:30+03:00

updatedDateTo

Type: string<date-time>

Дата и время окончания периода обновления вопроса.

Если указан только updatedDateFrom, а updatedDateTo не передан, используется текущая дата. Иначе — то что передали.

Максимальный интервал 1 месяц.

Example: 2020-02-02T14:30:30+03:00

GoodsFeedbackId

Идентификатор отзыва.

Type: integer

FeedbackReactionStatusType

Статус реакции на отзыв:

  • ALL — все отзывы.

  • NEED_REACTION — отзывы, на которые нужно ответить.

Type: string

Enum: ALL, NEED_REACTION

ShopSku

Ваш SKU — идентификатор товара в вашей системе.

Правила использования SKU:

  • У каждого товара SKU должен быть свой.

  • Уже заданный SKU нельзя освободить и использовать заново для другого товара. Каждый товар должен получать новый идентификатор, до того никогда не использовавшийся в вашем каталоге.

SKU товара можно изменить в кабинете продавца на Маркете. О том, как это сделать, читайте в Справке Маркета для продавцов.

Важно

Пробельные символы в начале и конце значения автоматически удаляются. Например, " SKU123 " и "SKU123" будут обработаны как одинаковые значения.

Что такое SKU и как его назначать

Type: string

Min length: 1

Max length: 255

Pattern: ^(?=.*\S.*)[^\x00-\x08\x0A-\x1f\x7f]{1,255}$

Example: example

Responses

200 OK

Список отзывов.

Body

application/json
{
  "status": "OK"
}

Type: object

ApiResponseStatusType

Тип ответа. Возможные значения:

  • OK — ошибок нет.
  • ERROR — при обработке запроса произошла ошибка.

Type: string

Enum: OK, ERROR

ApiResponse

Стандартная обертка для ответов сервера.

Name

Description

status

Type: ApiResponseStatusType

Тип ответа. Возможные значения:

  • OK — ошибок нет.
  • ERROR — при обработке запроса произошла ошибка.

Enum: OK, ERROR

Example
{
  "status": "OK"
}

GoodsFeedbackIdentifiersDTO

Идентификаторы, которые связаны с отзывом.

Name

Description

modelId

Type: integer

Идентификатор модели товара.

offerId

Type: ShopSku

Идентификатор товара.

Ваш SKU — идентификатор товара в вашей системе.

Правила использования SKU:

  • У каждого товара SKU должен быть свой.

  • Уже заданный SKU нельзя освободить и использовать заново для другого товара. Каждый товар должен получать новый идентификатор, до того никогда не использовавшийся в вашем каталоге.

SKU товара можно изменить в кабинете продавца на Маркете. О том, как это сделать, читайте в Справке Маркета для продавцов.

Важно

Пробельные символы в начале и конце значения автоматически удаляются. Например, " SKU123 " и "SKU123" будут обработаны как одинаковые значения.

Что такое SKU и как его назначать

Min length: 1

Max length: 255

Pattern: ^(?=.*\S.*)[^\x00-\x08\x0A-\x1f\x7f]{1,255}$

Example: example

orderId

Type: integer

Идентификатор заказа на Маркете.

Example
{
  "orderId": 0,
  "modelId": 0,
  "offerId": "example"
}

GoodsFeedbackDescriptionDTO

Текстовая часть отзыва.

Name

Description

advantages

Type: string

Описание плюсов товара в отзыве.

Example: example

comment

Type: string

Комментарий в отзыве.

Example: example

disadvantages

Type: string

Описание минусов товара в отзыве.

Example: example

Example
{
  "advantages": "example",
  "disadvantages": "example",
  "comment": "example"
}

GoodsFeedbackMediaDTO

Фотографии и видео.

Name

Description

photos

Type: string[] | null

Ссылки на фотографии.

Min items: 1

Unique items: true

Example
[
  "example"
]

videos

Type: string[] | null

Ссылки на видео.

Min items: 1

Unique items: true

Example
[
  "example"
]
Example
{
  "photos": [
    "example"
  ],
  "videos": [
    "example"
  ]
}

GoodsFeedbackStatisticsDTO

Статистическая информация по отзыву.

Name

Description

commentsCount

Type: integer

Количество комментариев к отзыву.

Учитываются только ответы на отзывы, а не дочерние комментарии.

rating

Type: integer

Оценка товара.

Min value: 1

Max value: 5

paidAmount

Type: integer

Количество баллов Плюса, которое автор получил за отзыв.

recommended

Type: boolean

Рекомендуют ли этот товар.

Example
{
  "rating": 1,
  "commentsCount": 0,
  "recommended": true,
  "paidAmount": 0
}

GoodsFeedbackDTO

Отзыв о товаре.

Name

Description

createdAt

Type: string<date-time>

Дата и время создания отзыва.

Example: 2025-01-01T00:00:00Z

feedbackId

Type: GoodsFeedbackId

Идентификатор отзыва.

Example: 0

identifiers

Type: GoodsFeedbackIdentifiersDTO

Идентификаторы, которые связаны с отзывом.

Example
{
  "orderId": 0,
  "modelId": 0,
  "offerId": "example"
}

needReaction

Type: boolean

Прочитан ли отзыв.

Принимает значение false, если магазин:

statistics

Type: GoodsFeedbackStatisticsDTO

Статистическая информация по отзыву.

Example
{
  "rating": 1,
  "commentsCount": 0,
  "recommended": true,
  "paidAmount": 0
}

author

Type: string

Имя автора отзыва.

Example: example

description

Type: GoodsFeedbackDescriptionDTO

Текстовая часть отзыва.

Example
{
  "advantages": "example",
  "disadvantages": "example",
  "comment": "example"
}

media

Type: GoodsFeedbackMediaDTO

Фотографии и видео.

Example
{
  "photos": [
    "example"
  ],
  "videos": [
    "example"
  ]
}
Example
{
  "feedbackId": 0,
  "createdAt": "2025-01-01T00:00:00Z",
  "needReaction": true,
  "identifiers": {
    "orderId": 0,
    "modelId": 0,
    "offerId": "example"
  },
  "author": "example",
  "description": {
    "advantages": "example",
    "disadvantages": "example",
    "comment": "example"
  },
  "media": {
    "photos": [
      "example"
    ],
    "videos": [
      "example"
    ]
  },
  "statistics": {
    "rating": 1,
    "commentsCount": 0,
    "recommended": true,
    "paidAmount": 0
  }
}

ForwardScrollingPagerDTO

Идентификатор следующей страницы.

Name

Description

nextPageToken

Type: string

Идентификатор следующей страницы результатов.

Example: example

Example
{
  "nextPageToken": "example"
}

GoodsFeedbackListDTO

Список отзывов о товарах.

Name

Description

feedbacks

Type: GoodsFeedbackDTO[]

Список отзывов.

Example
[
  {
    "feedbackId": 0,
    "createdAt": "2025-01-01T00:00:00Z",
    "needReaction": true,
    "identifiers": {
      "orderId": 0,
      "modelId": 0,
      "offerId": "example"
    },
    "author": "example",
    "description": {
      "advantages": "example",
      "disadvantages": "example",
      "comment": "example"
    },
    "media": {
      "photos": [
        "example"
      ],
      "videos": [
        "example"
      ]
    },
    "statistics": {
      "rating": 1,
      "commentsCount": 0,
      "recommended": true,
      "paidAmount": 0
    }
  }
]

paging

Type: ForwardScrollingPagerDTO

Идентификатор следующей страницы.

Example
{
  "nextPageToken": "example"
}
Example
{
  "feedbacks": [
    {
      "feedbackId": 0,
      "createdAt": "2025-01-01T00:00:00Z",
      "needReaction": true,
      "identifiers": {
        "orderId": 0,
        "modelId": 0,
        "offerId": "example"
      },
      "author": "example",
      "description": {
        "advantages": "example",
        "disadvantages": "example",
        "comment": "example"
      },
      "media": {
        "photos": [
          "example"
        ],
        "videos": [
          "example"
        ]
      },
      "statistics": {
        "rating": 1,
        "commentsCount": 0,
        "recommended": true,
        "paidAmount": 0
      }
    }
  ],
  "paging": {
    "nextPageToken": "example"
  }
}

400 Bad Request

Запрос содержит неправильные данные. Подробнее об ошибке

Body

application/json
{
  "status": "OK"
}

Type: object

ApiErrorDTO

Общий формат ошибки.

Name

Description

code

Type: string

Код ошибки.

Example: example

message

Type: string

Описание ошибки.

Example: example

Example
{
  "code": "example",
  "message": "example"
}

ApiErrorResponse

Стандартная обертка для ошибок сервера.

Type: object

All of 2 types
  • Type: ApiResponse

    Стандартная обертка для ответов сервера.

    Example
    {
      "status": "OK"
    }
    
  • Type: object

    errors

    Type: ApiErrorDTO[] | null

    Список ошибок.

    Min items: 1

    Example
    [
      {
        "code": "example",
        "message": "example"
      }
    ]
    
    Example
    {
      "errors": [
        {
          "code": "example",
          "message": "example"
        }
      ]
    }
    
Example
{
  "status": "OK"
}

401 Unauthorized

В запросе не указаны данные для авторизации. Подробнее об ошибке

Body

application/json
{
  "status": "OK"
}

Type: object

403 Forbidden

Данные для авторизации неверны или доступ к ресурсу запрещен. Подробнее об ошибке

Body

application/json
{
  "status": "OK"
}

Type: object

404 Not Found

Запрашиваемый ресурс не найден. Подробнее об ошибке

Body

application/json
{
  "status": "OK"
}

Type: object

420 Method Failure

Превышено ограничение на доступ к ресурсу. Подробнее об ошибке

Body

application/json
{
  "status": "OK"
}

Type: object

500 Internal Server Error

Внутренняя ошибка Маркета. Подробнее об ошибке

Body

application/json
{
  "status": "OK"
}

Type: object

pathParams:
  - description: "Идентификатор кабинета. Чтобы его узнать, воспользуйтесь запросом [GET\_v2/campaigns](../../reference/campaigns/getCampaigns.md).\n\nℹ️ [Что такое кабинет и магазин на Маркете](https://yandex.ru/support/marketplace/account/introduction.html)\n"
    name: businessId
    in: path
    required: true
    schema:
      type: integer
      format: int64
      minimum: 1
searchParams:
  - name: page_token
    description: >
      Идентификатор страницы c результатами.


      Если параметр не указан, возвращается первая страница.


      Рекомендуем передавать значение выходного параметра `nextPageToken`,
      полученное при последнем запросе.


      Если задан `page_token` и в запросе есть параметры `page` и `pageSize`,
      они игнорируются.
    in: query
    required: false
    example: eyBuZXh0SWQ6IDIzNDIgfQ==
    schema:
      type: string
  - name: limit
    description: |
      Количество значений на одной странице.
    in: query
    required: false
    example: 20
    schema:
      type: integer
      format: int32
      minimum: 1
headers: []
body: |-
  {
    "feedbackIds": [
      0
    ],
    "dateTimeFrom": "2020-02-02T14:30:30+03:00",
    "dateTimeTo": "2020-02-02T14:30:30+03:00",
    "updatedDateFrom": "2020-02-02T14:30:30+03:00",
    "updatedDateTo": "2020-02-02T14:30:30+03:00",
    "reactionStatus": "ALL",
    "ratingValues": [
      0
    ],
    "modelIds": [
      0
    ],
    "offerIds": [
      "example"
    ],
    "paid": true
  }
schema:
  description: |
    Фильтр запроса отзывов в кабинете.
  type: object
  properties:
    feedbackIds:
      description: >
        Идентификаторы отзывов.


        ⚠️ Не используйте это поле одновременно с другими фильтрами. Если вы
        хотите воспользоваться ими, оставьте поле пустым.
      type: array
      nullable: true
      uniqueItems: true
      minItems: 1
      maxItems: 50
      items:
        description: |
          Идентификатор отзыва.
        type: integer
        format: int64
    dateTimeFrom:
      description: >
        Начало периода. Не включительно.


        Если параметр не указан, возвращается информация за 6 месяцев до
        указанной в `dateTimeTo` даты.


        Максимальный интервал 6 месяцев.
      type: string
      format: date-time
      example: '2020-02-02T14:30:30+03:00'
    dateTimeTo:
      description: |
        Конец периода. Не включительно.

        Если параметр не указан, используется текущая дата.

        Максимальный интервал 6 месяцев.
      type: string
      format: date-time
      example: '2020-02-02T14:30:30+03:00'
    updatedDateFrom:
      x-hidden: true
      description: |
        Дата и время начала периода обновления вопроса.

        Максимальный интервал 1 месяц.
      type: string
      format: date-time
      example: '2020-02-02T14:30:30+03:00'
    updatedDateTo:
      x-hidden: true
      description: >
        Дата и время окончания периода обновления вопроса.


        Если указан только updatedDateFrom, а updatedDateTo не передан,
        используется текущая дата. Иначе — то что передали.


        Максимальный интервал 1 месяц.
      type: string
      format: date-time
      example: '2020-02-02T14:30:30+03:00'
    reactionStatus:
      description: >
        Нужно ли вернуть только непрочитанные отзывы. Для этого передайте
        значение `NEED_REACTION`.


        По умолчанию возвращаются все отзывы.
      $ref: '#/$defs/FeedbackReactionStatusType'
    ratingValues:
      description: Оценка товара.
      type: array
      uniqueItems: true
      maxItems: 5
      nullable: true
      minItems: 1
      items:
        type: integer
        format: int32
    modelIds:
      description: "Фильтр по идентификатору модели товара.\n\nПолучить идентификатор модели можно с помощью одного из запросов:\n\n* [POST\_v2/businesses/{businessId}/offer-mappings](../../reference/business-assortment/getOfferMappings.md);\n\n* [POST\_v2/businesses/{businessId}/offer-cards](../../reference/content/getOfferCardsContentStatus.md).\n"
      deprecated: true
      x-hidden: true
      type: array
      uniqueItems: true
      maxItems: 20
      nullable: true
      minItems: 1
      items:
        type: integer
        format: int64
    offerIds:
      description: |
        Фильтр по идентификатору товара.
      type: array
      uniqueItems: true
      maxItems: 20
      nullable: true
      minItems: 1
      items:
        description: "Ваш SKU —\_идентификатор товара в вашей системе.\n\nПравила использования SKU:\n\n* У каждого товара SKU должен быть свой.\n\n* Уже заданный SKU нельзя освободить и использовать заново для другого товара. Каждый товар должен получать новый идентификатор, до того никогда не использовавшийся в вашем каталоге.\n\nSKU товара можно изменить в кабинете продавца на Маркете. О том, как это сделать, читайте [в Справке Маркета для продавцов](https://yandex.ru/support2/marketplace/ru/assortment/operations/edit-sku).\n\n{% note warning %}\n\nПробельные символы в начале и конце значения автоматически удаляются. Например, `\"  SKU123  \"` и `\"SKU123\"` будут обработаны как одинаковые значения.\n\n{% endnote %}\n\n[Что такое SKU и как его назначать](https://yandex.ru/support/marketplace/assortment/add/index.html#fields)\n"
        type: string
        pattern: ^(?=.*\S.*)[^\x00-\x08\x0A-\x1f\x7f]{1,255}$
        x-transform: trim
        minLength: 1
        maxLength: 255
    paid:
      description: Фильтр отзывов за баллы Плюса.
      type: boolean
  $defs:
    /home/sandbox/.ya/build/build_root/43q3/00000b/market/mbi/docs/partner-api/docfiles/__docsbuild/.tmp_input/ru/openapi/partner-api-spec/goods-feedback/api/getGoodsFeedbacks.yaml#/FeedbackReactionStatusType:
      description: |
        Статус реакции на отзыв:

        * `ALL` — все отзывы.

        * `NEED_REACTION` — отзывы, на которые нужно ответить.
      type: string
      enum:
        - ALL
        - NEED_REACTION
bodyType: application/json
method: post
security:
  - type: apiKey
    name: Api-Key
    in: header
  - type: oauth2
    x-inline: true
    flows:
      implicit:
        authorizationUrl: https://oauth.yandex.ru/authorize
        scopes:
          market:partner-api: API Яндекс.Маркета / Поиска по товарам для партнеров
path: v2/businesses/{businessId}/goods-feedback
host: https://api.partner.market.yandex.ru

No longer supported, please use an alternative and newer version.