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.38

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.38
File Size Uploaded Provenance Actions
python_amazon_sp_api-2.1.38.tar.gz 208.3 kB Without provenance Details for python_amazon_sp_api-2.1.38.tar.gz

Built distribution (wheel)

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

Total release size: 559.5 kB

Release files / python_amazon_sp_api-2.1.38.tar.gz

Download URL python_amazon_sp_api-2.1.38.tar.gz
Size 208.3 kB
Tags Source
SHA-256 checksum
How to use checksums
14ff5343552e27d9b365654ffd74629bc86d6f072911e402f2a9dbd024d8c930
BLAKE2b-256 checksum
How to use checksums
3335279679e52737001fa896e02bd4eb912e05e3058f070216ffe3ba1b75b1b9
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.38-py3-none-any.whl

Download URL python_amazon_sp_api-2.1.38-py3-none-any.whl
Size 351.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1cab46d1430e59857172e57eb9eb4d56c023eb351b66f425811ef2b8b2ec4e99
BLAKE2b-256 checksum
How to use checksums
e61d8b2098395310a2edf3f1c142d6c8b0073ebc65be130adc4903d38bebc5a3
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.38

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.38 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