Skip to main content

Wildberries API client

Project description

wildberries-api codecov

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
from wb_api.const import BaseURL


def main() -> None:
	api = SyncAPI.build(
		token="...",
		base_url=BaseURL,		# (optional) may be used for test circuits
	)

	# Do things here...


async def main() -> None:
	api = await AsyncAPI.build(
		token="...",
		base_url=BaseURL,		# (optional) may be used for test circuits
	)

	# Do things here...

	await api.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()

Docs: https://dev.wildberries.ru/openapi/user-communication#tag/Voprosy/paths/~1api~1v1~1new-feedbacks-questions/get

Get count of unanswered questions

# Sync mode
from wb_api.sync_api import SyncAPI


api = SyncAPI.build(...)
response = api.feedback.get_question_count_unanswered()

Docs: https://dev.wildberries.ru/openapi/user-communication#tag/Voprosy/paths/~1api~1v1~1questions~1count-unanswered/get

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)

Docs: https://dev.wildberries.ru/openapi/user-communication#tag/Voprosy/paths/~1api~1v1~1questions~1count/get

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()

Docs: https://dev.wildberries.ru/openapi/user-communication#tag/Otzyvy/paths/~1api~1v1~1feedbacks~1count-unanswered/get

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)

Docs: https://dev.wildberries.ru/openapi/user-communication#tag/Otzyvy/paths/~1api~1v1~1feedbacks~1count/get

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)

Docs: https://dev.wildberries.ru/openapi/user-communication#tag/Otzyvy/paths/~1api~1v1~1supplier-valuations/get

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)

Docs: https://dev.wildberries.ru/openapi/user-communication#tag/Otzyvy/paths/~1api~1v1~1feedbacks~1actions/post

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)

Docs: https://dev.wildberries.ru/openapi/user-communication#tag/Otzyvy/paths/~1api~1v1~1feedbacks~1actions/post

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)

Docs: https://dev.wildberries.ru/openapi/user-communication#tag/Otzyvy/paths/~1api~1v1~1feedbacks~1answer/post

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)

Docs: https://dev.wildberries.ru/openapi/user-communication#tag/Otzyvy/paths/~1api~1v1~1feedbacks~1answer/patch

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)

Docs: https://dev.wildberries.ru/openapi/user-communication#tag/Otzyvy/paths/~1api~1v1~1feedbacks~1order~1return/post

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)

Docs: https://dev.wildberries.ru/openapi/user-communication#tag/Otzyvy/paths/~1api~1v1~1feedbacks~1archive/get

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wildberries_api-2.0.0.tar.gz (118.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

wildberries_api-2.0.0-py3-none-any.whl (29.0 kB view details)

Uploaded Python 3

File details

Details for the file wildberries_api-2.0.0.tar.gz.

File metadata

  • Download URL: wildberries_api-2.0.0.tar.gz
  • Upload date:
  • Size: 118.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for wildberries_api-2.0.0.tar.gz
Algorithm Hash digest
SHA256 f96160926c638af98300a58dfbebeb45ee0fbbb912f0528d5f34d6a921e15bac
MD5 42bcd6d8fdec5cdd26515b0cfe64d703
BLAKE2b-256 f66355f2183d02cd0a780b35af2389d1577f059a259fe628bf5c359a66ee0f33

See more details on using hashes here.

Provenance

The following attestation bundles were made for wildberries_api-2.0.0.tar.gz:

Publisher: publish.yml on Kirill-Lekhov/wildberries-api

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wildberries_api-2.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for wildberries_api-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d37924e253a9534ff7bf24be63eca3f91cf16c8ddf21270ff308a827feb59d34
MD5 215667c6207ff473f66c725ca7c68924
BLAKE2b-256 b6085a0bec34e65e48fad0dce261017ca00cdcd424344becc1de4e70c4935155

See more details on using hashes here.

Provenance

The following attestation bundles were made for wildberries_api-2.0.0-py3-none-any.whl:

Publisher: publish.yml on Kirill-Lekhov/wildberries-api

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page