---
title: "Quickstart"
description: "Five minutes: get a token, install the client for your language, make your first API call."
lang: en-US
source: https://valeryverkhoturov.github.io/wb-api-client-docs/en/guides/quickstart
---

# Quickstart

Five minutes: get a token, install the client for your language, make your first API call.

## 1. Get a WB API token

The client libraries are transports — you still need a Wildberries seller account and a personal API token.

1. Sign in at [seller.wildberries.ru](https://seller.wildberries.ru) and open the [Интеграции по API](https://seller.wildberries.ru/api-integrations) (API integrations) section.
2. Click **+ Создать токен** (+ Create token) and pick the **Для интеграции вручную** (Manual integration) tab.
3. Choose the token type — **персональный** (personal) or **базовый** (base) for normal work, **тестовый** (test) for the sandbox.
4. Fill in the name, pick the method categories and the access level (**Чтение и запись** — read & write, or **Только чтение** — read only). For a first test, **Контент** (Content) is enough — that's what powers the `items` sub-module.
5. For a personal token, tick the **Я понимаю, что не следует передавать токен третьим лицам** ("I understand the token must not be shared with third parties") checkbox and click **Создать** (Create).
6. Click **Скопировать и закрыть** (Copy and close) — the token lands on your clipboard. You won't be able to view it again.

Only pick the categories you plan to work with. If you need to call multiple API categories (`items`, `orders_fbs`, `analytics`, …) create a token with the union of categories — or one token per category to keep blast radius small.

## 2. Install

Every SDK ships one package per language. All 13 API categories are inside as sub-modules.

**Python**

```bash
pip install valeryverkhoturov-wb-api-client
```

**TypeScript**

```bash
npm install @valeryverkhoturov/wb-api-client
```

**Go**

```bash
go get github.com/ValeryVerkhoturov/wb-api-client-go@latest
```

**Java (Maven)**

```xml
<dependency>
  <groupId>io.github.valeryverkhoturov</groupId>
  <artifactId>wb-api-client</artifactId>
  <version>LATEST</version>
</dependency>
```

**PHP**

```bash
composer require valeryverkhoturov/wb-api-client
```

**OneScript**

```bash
opm install wb-api-client
```

**C#**

```bash
dotnet add package ValeryVerkhoturov.WbApiClient
```

**Rust**

```bash
cargo add wb-api-client
```

`LATEST` for Java: check the [releases page](https://github.com/ValeryVerkhoturov/wb-api-client/releases) for the current `1.YYYYMMDD.N` version and paste it in.

## 3. First call — list your seller info

The `general` sub-module has a `getV1SellerInfo` endpoint that's cheap to call and confirms both your token and your network path.

**Python**

```python
from wb_api_client.general import Configuration, ApiClient
from wb_api_client.general.api import GeneralApi

cfg = Configuration(access_token="<your WB JWT>")
api = GeneralApi(ApiClient(cfg))

info = api.get_v1_seller_info()
print(info)
```

**TypeScript**

```ts
import {
  Configuration,
  GeneralApi,
} from "@valeryverkhoturov/wb-api-client/general";

const cfg = new Configuration({});
cfg.setAccessToken("<your WB JWT>");
const api = new GeneralApi(cfg);

const info = await api.getV1SellerInfo();
console.log(info.data);
```

**Go**

```go
package main

import (
    "context"
    "fmt"

    wbgeneral "github.com/ValeryVerkhoturov/wb-api-client-go/general"
)

func main() {
    cfg := wbgeneral.NewConfiguration()
    cfg.SetAccessToken("<your WB JWT>")
    client := wbgeneral.NewAPIClient(cfg)

    info, _, err := client.GeneralAPI.GetV1SellerInfo(context.Background()).Execute()
    if err != nil {
        panic(err)
    }
    fmt.Printf("%+v\n", info)
}
```

**Java**

```java
import io.github.valeryverkhoturov.wbapi.general.ApiClient;
import io.github.valeryverkhoturov.wbapi.general.api.GeneralApi;

ApiClient client = new ApiClient();
client.setAccessToken("<your WB JWT>");
GeneralApi api = new GeneralApi(client);

System.out.println(api.getV1SellerInfo());
```

**PHP**

```php
use ValeryVerkhoturov\WbApiClient\General\Configuration;
use ValeryVerkhoturov\WbApiClient\General\Api\GeneralApi;
use GuzzleHttp\Client;

$config = (new Configuration())
    ->setAccessToken('<your WB JWT>');
$api = new GeneralApi(new Client(), $config);

print_r($api->getV1SellerInfo());
```

**OneScript**

```bsl
#Использовать "wb-api-client"

Настройки = Новый Конфигурация();
Настройки.УстановитьТокен("<your WB JWT>");
Клиент = Новый GeneralApi(Настройки);

Сообщить(Клиент.GetV1SellerInfo().Тело);
```

**C#**

```csharp
using ValeryVerkhoturov.WbApiClient.General.Api;
using ValeryVerkhoturov.WbApiClient.General.Client;

var config = new Configuration();
config.SetAccessToken("<your WB JWT>");
var api = new GeneralApi(config);

Console.WriteLine(api.GetV1SellerInfo());
```

**Rust**

```rust
use wb_api_client::general::apis::{configuration::Configuration, general_api};

#[tokio::main]
async fn main() {
    let mut cfg = Configuration::new();
    cfg.set_access_token("<your WB JWT>");

    let info = general_api::get_v1_seller_info(&cfg).await;
    println!("{:#?}", info);
}
```

If that returns your seller data — you're wired up.

## 4. Where to go next

- **[Authentication](https://valeryverkhoturov.github.io/wb-api-client-docs/en/guides/authentication)** — how the secret-string wrapper works, why you should never print your token, and how to expose the raw value when you actually need to.
- **[Error handling](https://valeryverkhoturov.github.io/wb-api-client-docs/en/guides/error-handling)** — WB's status codes, retry strategy for 429/5xx, and how errors surface in each language.
- **[Language pages](https://valeryverkhoturov.github.io/wb-api-client-docs/en/languages/python)** — every sub-module, install snippet, and the shape of each `Api` class.

## Troubleshooting the first call

| Symptom                              | Likely cause                                  | Fix                                                                                                                                      |
| ------------------------------------ | --------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| `401 Unauthorized`                   | Token wrong / expired / not for this category | Regenerate in Seller portal; ensure the category matches the module (e.g. `Контент` for `items`)                                         |
| `403 Forbidden`                      | Token valid but category missing              | Add the required category to the token, or make a new one                                                                                |
| `429 Too Many Requests`              | You've hit WB's rate limit                    | Wait `X-Ratelimit-Retry` seconds from the response and back off; the SDK does not auto-retry                                             |
| Connection hangs                     | Corporate proxy / TLS interception            | Set `HTTPS_PROXY` env var; most clients honor it                                                                                         |
| `ImportError` / `Cannot find module` | Installed the wrong package name              | Package is `valeryverkhoturov-wb-api-client` / `@valeryverkhoturov/wb-api-client` — the bare `wb-api-client` name is a different project |

<p align="center">
  <img src="/pics/blueberry-football-ascii-animated.webp" style="height: 200px; width: auto; max-width: 100%; object-fit: contain" alt="wb-api-client mascot">
</p>
