Pin Feedbacks
http
POST /api/feedbacks/v1/pinsBase URL: https://feedbacks-api.wildberries.ru · Module: communications · Section: Pinned Feedbacks · Specification doc ↗
The method allows to pin the feedbacks to a group of merged listings or to a listing. To get feedback ID, use the List of pinned and unpinned feedbacks method.
The method is available for Jam subscription or **Pin a feedback** option in the Plan Builder.
Request limit per one seller account for all methods in the Feedbacks and Questions category:
| Type | Period | Limit | Interval | Burst |
|---|---|---|---|---|
| Personal | 1 s | 3 requests | 333 ms | 6 requests |
| Service | 1 s | 3 requests | 333 ms | 6 requests |
| Base with secret | 1 s | 3 requests | 333 ms | 6 requests |
| Base | 1 h | 5 requests | 12 min | 1 request |
Request body
application/json — schema openapi.PinReviewItem[], required
pinMethodstring=tariff|subscription(required) — Pinning methods: -subscription— Jam subscription -tariff— rate optionpinOnstring=nm|imt(required) — Feedback pinning placement: -nm— listing -imt— group of merged listingsfeedbackIdstring(required) — Feedback ID
Responses
| Code | Description | Schema |
|---|---|---|
200 | Success | PostV1PinsResponse200 |
400 | Bad request | respond.ResultErr |
401 | Unauthorized | object |
402 | Payment required | object |
403 | Access denied | respond.ResultErr |
429 | Too many requests | object |
Structure 200:
dataobject[]feedbackIdstring— Feedback IDpinIdinteger<int64>— Pinning operation ID. If the field is missing, the feedback is not pinnedpinMethodstring=tariff|subscription— Pinning methods: -subscription— Jam subscription -tariff— rate optionpinOnstring=nm|imt— Feedback pinning placement: -nm— listing -imt— group of merged listingsisErrorsboolean— Are there any errorserrorsopenapi.ResultErr[]— Error detailoriginstring— WB internal service IDdetailstring— Error detailrequestIdstring— Request IDstatusstring=feedbackNotFound|itemNotFound|feedbackMismatch|itemNoImages|feedbackExcluded|imtNotDisplayed|globalLimitReached|unitLimitReached|tariffRestriction|subscriptionRestriction|alreadyPinned|bodyNotValid— Statustitlestring— Error title
Structure 400:
detailstring— Error detailoriginstring— WB internal service IDrequestIdstring— Request IDstatusinteger<int64>— HTTP status codetitlestring— Error title
Structure 401:
titlestring— Error titledetailstring— Error detailscodestring— Internal error coderequestIdstring— Unique request IDoriginstring— WB internal service IDstatusnumber— HTTP status codestatusTextstring— Text of the HTTP status codetimestampstring— Request date and time
Structure 402:
titlestring— Error titledetailstring— Error details. The error is only returned to services from the Solutions for business Catalog
Structure 403:
detailstring— Error detailoriginstring— WB internal service IDrequestIdstring— Request IDstatusinteger<int64>— HTTP status codetitlestring— Error title
Structure 429:
titlestring— Error titledetailstring— Error detailscodestring— Internal error coderequestIdstring— Unique request IDoriginstring— WB internal service IDstatusnumber— HTTP status codestatusTextstring— Text of the HTTP status codetimestampstring— Request date and time
Call examples
Arguments are shown as parameter names — substitute your own values. Languages whose client does not expose this operation are omitted.
python
from wb_api_client.communications import Configuration, ApiClient
from wb_api_client.communications.api import CommunicationsApi
cfg = Configuration(access_token="<your WB JWT>")
api = CommunicationsApi(ApiClient(cfg))
result = api.post_v1_pins(openapi_pin_review_item=...)
print(result)ts
import {
Configuration,
CommunicationsApi,
} from "@valeryverkhoturov/wb-api-client/communications";
const cfg = new Configuration({});
cfg.setAccessToken("<your WB JWT>");
const api = new CommunicationsApi(cfg);
const { data } = await api.postV1Pins(openapiPinReviewItem);
console.log(data);go
import (
"context"
"fmt"
wbcommunications "github.com/ValeryVerkhoturov/wb-api-client-go/communications"
)
cfg := wbcommunications.NewConfiguration()
cfg.SetAccessToken("<your WB JWT>")
client := wbcommunications.NewAPIClient(cfg)
result, _, err := client.CommunicationsAPI.PostV1Pins(context.Background()).OpenapiPinReviewItem(openapiPinReviewItem).Execute()
if err != nil {
panic(err)
}
fmt.Printf("%+v\n", result)java
import io.github.valeryverkhoturov.wbapi.communications.ApiClient;
import io.github.valeryverkhoturov.wbapi.communications.SecretString;
import io.github.valeryverkhoturov.wbapi.communications.api.CommunicationsApi;
ApiClient client = new ApiClient();
client.setAccessToken(new SecretString("<your WB JWT>"));
CommunicationsApi api = new CommunicationsApi(client);
System.out.println(api.postV1Pins(openapiPinReviewItem));php
use ValeryVerkhoturov\WbApiClient\Communications\Configuration;
use ValeryVerkhoturov\WbApiClient\Communications\SecretString;
use ValeryVerkhoturov\WbApiClient\Communications\Api\CommunicationsApi;
use GuzzleHttp\Client;
$config = (new Configuration())
->setAccessTokenSecret(new SecretString('<your WB JWT>'));
$api = new CommunicationsApi(new Client(), $config);
print_r($api->postV1Pins($openapi_pin_review_item));bsl
#Использовать "wb-api-client"
Настройки = Новый Конфигурация();
Настройки.УстановитьТокен("<your WB JWT>");
Клиент = Новый CommunicationsApi(Настройки);
Сообщить(Клиент.PostV1Pins(Тело).Тело);csharp
using ValeryVerkhoturov.WbApiClient.Communications.Api;
using ValeryVerkhoturov.WbApiClient.Communications.Client;
var config = new Configuration();
config.AccessTokenSecret = new SecretString("<your WB JWT>");
var api = new CommunicationsApi(config);
Console.WriteLine(api.PostV1Pins(openapiPinReviewItem));rust
use wb_api_client::communications::apis::{configuration::Configuration, communications_api};
#[tokio::main]
async fn main() {
let mut cfg = Configuration::new();
cfg.set_access_token("<your WB JWT>");
let result = communications_api::post_v1_pins(&cfg, openapi_period_pin_review_item).await;
println!("{:#?}", result);
}