Skip to main content

CodeFactor Downloads Downloads Downloads

PYTHON-AMAZON-SP-API

Amazon Selling-Partner API

A wrapper to access Amazon's Selling Partner API with an easy-to-use interface.


New Features

Async support!

  • httpx-based transport for sync clients, enabling connection pooling and consistent streaming behavior.
  • Async client package under sp_api.asyncio for non-blocking calls across services.

🌟 Thank you for using python-amazon-sp-api! 🌟

This tool helps developers and businesses connect seamlessly with Amazon's vast marketplace, enabling powerful automations and data management.

If you appreciate this project and find it useful, please consider supporting its continued development:

Your support helps keep the project alive and evolving, and is greatly appreciated!


Documentation

Documentation is available here

Documentation Status

Q & A

If you have questions, please ask them in GitHub discussions

discussions

or

join on slack

Installation

Badge

pip install python-amazon-sp-api
pip install "python-amazon-sp-api[aws]" # if you want to use AWS Secret Manager Authentication.
pip install "python-amazon-sp-api[aws-caching]" # if you want to use the Cached Secrets from AWS

Usage

from sp_api.api import Orders
from sp_api.api import Reports
from sp_api.api import DataKiosk
from sp_api.api import Feeds
from sp_api.base import SellingApiException
from sp_api.base.reportTypes import ReportType
from datetime import datetime, timedelta, timezone

# DATA KIOSK API
client = DataKiosk()

res = client.create_query(query="{analytics_salesAndTraffic_2023_11_15{salesAndTrafficByAsin(startDate:\"2022-09-01\" endDate:\"2022-09-30\" aggregateBy:SKU marketplaceIds:[\"ATVPDKIKX0DER\"]){childAsin endDate marketplaceId parentAsin sales{orderedProductSales{amount currencyCode}totalOrderItems totalOrderItemsB2B}sku startDate traffic{browserPageViews browserPageViewsB2B browserPageViewsPercentage browserPageViewsPercentageB2B browserSessionPercentage unitSessionPercentageB2B unitSessionPercentage}}}}")
print(res)

# orders API
try:
    res = Orders().get_orders(CreatedAfter=(datetime.now(timezone.utc) - timedelta(days=7)).isoformat())
    print(res.payload)  # json data
except SellingApiException as ex:
    print(ex)


# report request     
create_report_response = Reports().create_report(reportType=ReportType.GET_MERCHANT_LISTINGS_ALL_DATA)

# submit feed
# feeds can be submitted like explained in Amazon's docs, or simply by calling submit_feed

Feeds().submit_feed(<feed_type>, <file_or_bytes_io>, content_type='text/tsv', **kwargs)

# PII Data

Orders(restricted_data_token='<token>').get_orders(CreatedAfter=(datetime.now(timezone.utc) - timedelta(days=7)).isoformat())

# or use the shortcut
orders = Orders().get_orders(
    LastUpdatedAfter=(datetime.now(timezone.utc) - timedelta(days=1)).isoformat()
)

Async Usage

import asyncio
from datetime import datetime, timedelta, timezone

from sp_api.asyncio.api import Orders, Reports
from sp_api.base.reportTypes import ReportType


async def main():
    async with Orders() as orders_client:
        res = await orders_client.get_orders(
            LastUpdatedAfter=(datetime.now(timezone.utc) - timedelta(days=1)).isoformat()
        )
        print(res.payload)

    async with Reports() as reports_client:
        report = await reports_client.create_report(
            reportType=ReportType.GET_MERCHANT_LISTINGS_ALL_DATA
        )
        print(report.payload)
    
    # OR 
    await Reports().create_report(
        reportType=ReportType.GET_MERCHANT_LISTINGS_ALL_DATA
    )

    
if __name__ == "__main__":
    asyncio.run(main())

New endpoints

You can create a new endpoint file by running make_endpoint <model_json_url>

make_endpoint https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/models/listings-restrictions-api-model/listingsRestrictions_2021-08-01.json

This creates a ready to use client. Please consider creating a pull request with the new code.

ADVERTISING API

You can use nearly the same client for the Amazon Advertising API. @denisneuf has built Python-Amazon-Advertising-API on top of this client. Check it out here

DISCLAIMER

We are not affiliated with Amazon

LICENSE

License


Base Client

The client is pretty extensible and can be used for any other API. Check it out here:

API Client

Alt

Metadata

Release files for python-amazon-sp-api 2.1.40

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for python-amazon-sp-api 2.1.40
File Size Uploaded Provenance Actions
python_amazon_sp_api-2.1.40.tar.gz 208.3 kB Without provenance Details for python_amazon_sp_api-2.1.40.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for python-amazon-sp-api 2.1.40
File Interpreter ABI Platform Actions
python_amazon_sp_api-2.1.40-py3-none-any.whl Python 3 none any Details for python_amazon_sp_api-2.1.40-py3-none-any.whl

Total release size: 559.6 kB

Release files / python_amazon_sp_api-2.1.40.tar.gz

Download URL python_amazon_sp_api-2.1.40.tar.gz
Size 208.3 kB
Tags Source
SHA-256 checksum
How to use checksums
9e83f8df62025ebaf3787fda07e600e559ec80279ef1c39f768695c05b5ab63a
BLAKE2b-256 checksum
How to use checksums
60a68c3a52c9cd6e6ca28c93e67ba1c8de59a29e7c53f787d64742b9bf72f7f0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.22

Release files / python_amazon_sp_api-2.1.40-py3-none-any.whl

Download URL python_amazon_sp_api-2.1.40-py3-none-any.whl
Size 351.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b1add64cc5e8d7d264d78a4f634cd5e460b96f3639beb5cf25df578141e8013a
BLAKE2b-256 checksum
How to use checksums
8d67af6e969f83078368194a7c733eaa3936c065e4ea04d60a19b769cc97626a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.22

Security for python-amazon-sp-api 2.1.40

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

2.1.40 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page