Selling Partner API for Node.js
- A fully typed TypeScript and Node.js SDK package for Amazon Selling Partner API
- Uses models from API model's repo to generate classes automatically
- Picks up changes and releases daily when/if models have drifted
- Based on Axios and uses aws4-axios interceptor to automatically sign the requests
- Can optionally assume roles via STS, and refresh STS credentials on schedule
Download & Installation
npm i -s @scaleleap/selling-partner-api-sdk
Getting Started
Prerequisites
A few things to get started:
Authorizing Selling Partner API
Note that it is outside the responsibility of this package to handle the authorization process.
This package assumes you have already acquired the access and refresh tokens either by going through
the OAuth flow or by using a self-authorized set of credentials.
Basic Usage
Using Existing AWS Credentials
This method is applicable if you want to assume the
Selling Partner API role
yourself, or you are using a static set of user credentials (not recommended).
import { SellersApiClient } from '@scaleleap/selling-partner-api-sdk'
const stsClient = new STSClient({
credentials: {
accessKeyId: 'AKIAIOSFODNN7EXAMPLE',
secretAccessKey: 'wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY',
},
})
const { Credentials } = await stsClient.send(
new AssumeRoleCommand({
RoleArn: 'arn:aws:iam::123456789012:role/your-SP-API-role-name',
RoleSessionName: 'selling-partner-api-axios',
}),
)
const client = new SellersApiClient({
accessToken: 'Atza|...',
basePath: 'https://sellingpartnerapi-na.amazon.com',
region: 'us-east-1',
credentials: {
accessKeyId: Credentials?.AccessKeyId || '',
secretAccessKey: Credentials?.SecretAccessKey || '',
sessionToken: Credentials?.SessionToken || '',
}
})
const marketplaceParticipations = await client.getMarketplaceParticipations()
Letting @scaleleap/selling-partner-api-sdk
to Assume the Role
This package uses aws4-axios under the hood, which
has the capability to make the STS call and get the credentials for you, and refresh the
temporary AWS credentials session.
import { SellersApiClient } from '@scaleleap/selling-partner-api-sdk'
const client = new SellersApiClient({
accessToken: 'Atza|...',
basePath: 'https://sellingpartnerapi-na.amazon.com',
region: 'us-east-1',
roleArn: 'arn:aws:iam::123456789012:role/your-SP-API-role-name',
credentials: {
accessKeyId: 'AKIAIOSFODNN7EXAMPLE',
secretAccessKey: 'wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY',
},
})
const marketplaceParticipations = await client.getMarketplaceParticipations()
See the full list of exported classes and types:
src/api-models/index.ts
.
See @scaleleap/amazon-marketplaces
docs for a database of constants about Amazon Marketplaces.
Documentation
Contributing
This repository uses Conventional Commit style commit messages.
Authors or Acknowledgments
License
This project is licensed under the MIT License.