Wildberries API client
Project description
wildberries-api 
Wildberries API client
Installation
# Sync only mode
pip install wildberries-api[sync]
# Async only mode
pip install wildberries-api[async]
# All modes
pip install wildberries-api[all]
Instantiating
There are several ways to work with the API (synchronous and asynchronous). Both interfaces have the same signatures, the only difference is the need to use async/await keywords.
from wb_api.sync_api import SyncAPI # Sync mode
from wb_api.async_api import AsyncAPI # Async mode
def main() -> None:
api = SyncAPI.build(
token="...",
)
# Do things here...
async def main() -> None:
api = await AsyncAPI.build(
token="...",
)
# Do things here...
await api.session.close()
Where can I get token?
See official docs.
Common API
Check connection
# Sync mode
from wb_api.sync_api import SyncAPI
api = SyncAPI.build(...)
response = api.common.ping()
Docs: https://dev.wildberries.ru/openapi/api-information#tag/Proverka-podklyucheniya-k-WB-API
Feedback API
Check connection
# Sync mode
from wb_api.sync_api import SyncAPI
api = SyncAPI.build(...)
response = api.feedback.ping()
Docs: https://dev.wildberries.ru/openapi/api-information#tag/Proverka-podklyucheniya-k-WB-API
Check new questions and feedbacks existing
# Sync mode
from wb_api.sync_api import SyncAPI
api = SyncAPI.build(...)
response = api.feedback.check_new_feedbacks_questions()
Get count of unanswered questions
# Sync mode
from wb_api.sync_api import SyncAPI
api = SyncAPI.build(...)
response = api.feedback.get_question_count_unanswered()
Get count of questions
# Sync mode
from wb_api.sync_api import SyncAPI
from wb_api.feedback.dataclass import QuestionCountRequest
api = SyncAPI.build(...)
response = api.feedback.get_question_count()
# or
request = QuestionCountRequest(is_answered=False, ...)
response = api.feedback.get_question_count(request)
Get question list
# Sync mode
from wb_api.sync_api import SyncAPI
from wb_api.feedback.dataclass import QuestionListRequest
api = SyncAPI.build(...)
request = QuestionListRequest(is_answered=False, take=100, skip=0)
response = api.feedback.get_question_list(request)
Docs: https://dev.wildberries.ru/openapi/user-communication#tag/Voprosy/paths/~1api~1v1~1questions/get
Mark question as read
# Sync mode
from wb_api.sync_api import SyncAPI
from wb_api.feedback.dataclass import QuestionMarkAsReadRequest
api = SyncAPI.build(...)
request = QuestionMarkAsReadRequest(id="question-id", was_viewed=True)
response = api.feedback.mark_question_as_read(request)
Docs: https://dev.wildberries.ru/openapi/user-communication#tag/Voprosy/paths/~1api~1v1~1questions/patch
Reject question
# Sync mode
from wb_api.sync_api import SyncAPI
from wb_api.feedback.dataclass import QuestionRejectRequest
api = SyncAPI.build(...)
request = QuestionRejectRequest.create("question-id", "reject-reason")
response = api.feedback.reject_question(request)
Docs: https://dev.wildberries.ru/openapi/user-communication#tag/Voprosy/paths/~1api~1v1~1questions/patch
Add question answer
# Sync mode
from wb_api.sync_api import SyncAPI
from wb_api.feedback.dataclass import QuestionAnswerAddRequest
api = SyncAPI.build(...)
request = QuestionAnswerAddRequest.create("question-id", "question-answer")
response = api.feedback.add_question_answer(request)
Docs: https://dev.wildberries.ru/openapi/user-communication#tag/Voprosy/paths/~1api~1v1~1questions/patch
Update question answer
# Sync mode
from wb_api.sync_api import SyncAPI
from wb_api.feedback.dataclass import QuestionAnswerUpdateRequest
api = SyncAPI.build(...)
request = QuestionAnswerUpdateRequest.create("question-id", "question-answer")
response = api.feedback.update_question_answer(request)
Docs: https://dev.wildberries.ru/openapi/user-communication#tag/Voprosy/paths/~1api~1v1~1questions/patch
Get question
# Sync mode
from wb_api.sync_api import SyncAPI
from wb_api.feedback.dataclass import QuestionGetRequest
api = SyncAPI.build(...)
request = QuestionGetRequest(id="question-id")
response = api.feedback.get_question(request)
Docs: https://dev.wildberries.ru/openapi/user-communication#tag/Voprosy/paths/~1api~1v1~1question/get
Get count of unanswered feedbacks
# Sync mode
from wb_api.sync_api import SyncAPI
api = SyncAPI.build(...)
response = api.feedback.get_feedback_count_unanswered()
Get count of feedbacks
# Sync mode
from wb_api.sync_api import SyncAPI
from wb_api.feedback.dataclass import FeedbackCountRequest
api = SyncAPI.build(...)
response = api.feedback.get_feedback_count()
# or
request = FeedbackCountRequest(is_answered=False)
response = api.feedback.get_feedback_count(request)
Get feedback list
# Sync mode
from wb_api.sync_api import SyncAPI
from wb_api.feedback.dataclass import FeedbackListRequest
api = SyncAPI.build(...)
request = FeedbackListRequest(is_answered=False, take=100, skip=0)
response = api.feedback.get_feedback_list(request)
Docs: https://dev.wildberries.ru/openapi/user-communication#tag/Otzyvy/paths/~1api~1v1~1feedbacks/get
Get feedback supplier valuations
# Sync mode
from wb_api.sync_api import SyncAPI
from wb_api.feedback.dataclass import FeedbackSupplierValuationsRequest
api = SyncAPI.build(...)
response = api.feedback.get_feedback_supplier_valuations()
# or
request = FeedbackSupplierValuationsRequest(locale="zh")
response = api.feedback.get_feedback_supplier_valuations(request)
Report feedback text
# Sync mode
from wb_api.sync_api import SyncAPI
from wb_api.feedback.dataclass import FeedbackTextReportRequest
api = SyncAPI.build(...)
request = FeedbackTextReportRequest(id="feedback-id", supplier_feedback_valuation=1024)
response = api.feedback.report_feedback_text(request)
Report feedback product
# Sync mode
from wb_api.sync_api import SyncAPI
from wb_api.feedback.dataclass import FeedbackProductReportRequest
api = SyncAPI.build(...)
request = FeedbackProductReportRequest(id="feedback-id", supplier_product_valuation=1024)
response = api.feedback.report_feedback_product(request)
Add feedback answer
# Sync mode
from wb_api.sync_api import SyncAPI
from wb_api.feedback.dataclass import FeedbackAnswerAddRequest
api = SyncAPI.build(...)
request = request = FeedbackAnswerAddRequest(id="feedback-id", text="feedback-answer")
response = api.feedback.add_feedback_answer(request)
Update feedback answer
# Sync mode
from wb_api.sync_api import SyncAPI
from wb_api.feedback.dataclass import FeedbackAnswerUpdateRequest
api = SyncAPI.build(...)
request = FeedbackAnswerUpdateRequest(id="feedback-id", text="feedback-answer")
response = api.feedback.update_feedback_answer(request)
Return order by feedback id
# Sync mode
from wb_api.sync_api import SyncAPI
from wb_api.feedback.dataclass import FeedbackOrderReturnRequest
api = SyncAPI.build(...)
request = FeedbackOrderReturnRequest(feedback_id="feedback-id")
response = api.feedback.return_feedback_order(request)
Get feedback
# Sync mode
from wb_api.sync_api import SyncAPI
from wb_api.feedback.dataclass import FeedbackGetRequest
api = SyncAPI.build(...)
request = FeedbackGetRequest(id="feedback-id")
response = api.feedback.get_feedback(request)
Docs: https://dev.wildberries.ru/openapi/user-communication#tag/Otzyvy/paths/~1api~1v1~1feedback/get
Get archive feedback list
# Sync mode
from wb_api.sync_api import SyncAPI
from wb_api.feedback.dataclass import FeedbackArchiveListRequest
api = SyncAPI.build(...)
request = FeedbackArchiveListRequest(take=100, skip=0)
response = api.feedback.get_feedback_archive_list(request)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file wildberries_api-0.1.0.tar.gz.
File metadata
- Download URL: wildberries_api-0.1.0.tar.gz
- Upload date:
- Size: 184.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0a07aa79f6660ce5591716e0006087788e320c71bfae27f3e85e3f9dfb59f658
|
|
| MD5 |
8310515e97a9d8c5605a972cf3b33ce5
|
|
| BLAKE2b-256 |
6137f1de9ef65ba7ec5b2bcbc8860f83178b5089f8661d175f00a52b9ea59e9e
|
Provenance
The following attestation bundles were made for wildberries_api-0.1.0.tar.gz:
Publisher:
publish.yml on Kirill-Lekhov/wildberries-api
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
wildberries_api-0.1.0.tar.gz -
Subject digest:
0a07aa79f6660ce5591716e0006087788e320c71bfae27f3e85e3f9dfb59f658 - Sigstore transparency entry: 271628982
- Sigstore integration time:
-
Permalink:
Kirill-Lekhov/wildberries-api@cdacfe70f8423c6e77dcf64a593b70844cdf8f0c -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/Kirill-Lekhov
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@cdacfe70f8423c6e77dcf64a593b70844cdf8f0c -
Trigger Event:
release
-
Statement type:
File details
Details for the file wildberries_api-0.1.0-py3-none-any.whl.
File metadata
- Download URL: wildberries_api-0.1.0-py3-none-any.whl
- Upload date:
- Size: 27.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4c309c75e5c311f50fd2392dba5be0907264077eab8d9cafde21a44e45c4fba9
|
|
| MD5 |
6a3376973c424dbb483e331a39c662d5
|
|
| BLAKE2b-256 |
2b6142f6c601e57e20a4cc089bc59b8a34830c3485956e9766d43d159853516a
|
Provenance
The following attestation bundles were made for wildberries_api-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on Kirill-Lekhov/wildberries-api
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
wildberries_api-0.1.0-py3-none-any.whl -
Subject digest:
4c309c75e5c311f50fd2392dba5be0907264077eab8d9cafde21a44e45c4fba9 - Sigstore transparency entry: 271628988
- Sigstore integration time:
-
Permalink:
Kirill-Lekhov/wildberries-api@cdacfe70f8423c6e77dcf64a593b70844cdf8f0c -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/Kirill-Lekhov
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@cdacfe70f8423c6e77dcf64a593b70844cdf8f0c -
Trigger Event:
release
-
Statement type: