Skip to content

sonugpc/amazon-creator-api-sdk

Repository files navigation

Amazon Creator API SDK for Node.js

npm version npm downloads npm license CI Release semantic-release

Amazon Creator API SDK for Node.js.

Amazon Creator API is the replacement for the Amazon Product Advertising API. This SDK helps you authenticate and call Creator API endpoints such as item lookup, search, browse nodes, reports, and feeds.

Why This Package

  • Official-style SDK interface for Creator API resources
  • Ready for Node.js applications and server-side integrations
  • Publish-ready npm package with automated release workflow
  • Automatic versioning and CHANGELOG generation

Installation

npm install amazon-creator-api-sdk

Quick Start

const {
  ApiClient,
  DefaultApi,
  GetItemsRequestContent,
} = require("amazon-creator-api-sdk");

async function run() {
  const apiClient = new ApiClient();
  apiClient.credentialId = process.env.CREATORS_CREDENTIAL_ID;
  apiClient.credentialSecret = process.env.CREATORS_CREDENTIAL_SECRET;
  apiClient.version = process.env.CREATORS_CREDENTIAL_VERSION;

  const api = new DefaultApi(apiClient);

  const request = new GetItemsRequestContent();
  request.partnerTag = process.env.CREATORS_PARTNER_TAG;
  request.itemIds = ["B0DLFMFBJW"];
  request.resources = [
    "itemInfo.title",
    "images.primary.medium",
    "offersV2.listings.price",
  ];

  const response = await api.getItems("www.amazon.com", request);
  console.log(JSON.stringify(response, null, 2));
}

run().catch((error) => {
  console.error(error);
  process.exitCode = 1;
});

Usage Documentation

API Examples

Use this shared bootstrap in all examples:

const {
  ApiClient,
  DefaultApi,
  GetItemsRequestContent,
  SearchItemsRequestContent,
  GetBrowseNodesRequestContent,
  GetVariationsRequestContent,
  GetFeedRequestContent,
  GetReportRequestContent,
} = require("amazon-creator-api-sdk");

const marketplace = process.env.CREATORS_MARKETPLACE || "www.amazon.com";

const client = new ApiClient();
client.credentialId = process.env.CREATORS_CREDENTIAL_ID;
client.credentialSecret = process.env.CREATORS_CREDENTIAL_SECRET;
client.version = process.env.CREATORS_CREDENTIAL_VERSION;

const api = new DefaultApi(client);

GetItems

const req = new GetItemsRequestContent();
req.partnerTag = process.env.CREATORS_PARTNER_TAG;
req.itemIds = ["B0DLFMFBJW", "B0BFC7WQ6R"];
req.resources = [
  "images.primary.medium",
  "itemInfo.title",
  "offersV2.listings.price",
];

const data = await api.getItems(marketplace, req);
console.log(JSON.stringify(data, null, 2));

SearchItems

const req = new SearchItemsRequestContent();
req.partnerTag = process.env.CREATORS_PARTNER_TAG;
req.keywords = "Harry Potter";
req.searchIndex = "Books";
req.itemCount = 2;
req.resources = [
  "images.primary.medium",
  "itemInfo.title",
  "offersV2.listings.price",
];

const data = await api.searchItems(marketplace, {
  searchItemsRequestContent: req,
});
console.log(JSON.stringify(data, null, 2));

GetBrowseNodes

const req = new GetBrowseNodesRequestContent();
req.partnerTag = process.env.CREATORS_PARTNER_TAG;
req.browseNodeIds = ["3040", "1", "3045"];
req.resources = ["browseNodes.ancestor", "browseNodes.children"];

const data = await api.getBrowseNodes(marketplace, req);
console.log(JSON.stringify(data, null, 2));

GetVariations

const req = new GetVariationsRequestContent();
req.partnerTag = process.env.CREATORS_PARTNER_TAG;
req.asin = "B0DLFMFBJW";
req.resources = [
  "images.primary.medium",
  "itemInfo.title",
  "offersV2.listings.price",
  "variationSummary.variationDimension",
];

const data = await api.getVariations(marketplace, req);
console.log(JSON.stringify(data, null, 2));

ListFeeds and GetFeed

const feeds = await api.listFeeds(marketplace);
console.log(JSON.stringify(feeds, null, 2));

const feedReq = new GetFeedRequestContent();
feedReq.feedName = "<FEED_NAME_FROM_LIST_FEEDS>";
const feed = await api.getFeed(marketplace, feedReq);
console.log(JSON.stringify(feed, null, 2));

ListReports and GetReport

const reports = await api.listReports(marketplace);
console.log(JSON.stringify(reports, null, 2));

const reportReq = new GetReportRequestContent();
reportReq.filename = "<REPORT_FILENAME_FROM_LIST_REPORTS>";
const report = await api.getReport(marketplace, reportReq);
console.log(JSON.stringify(report, null, 2));

Supported Runtime

  • Node.js >= 18

TypeScript and IntelliSense

This package ships generated declaration files in dist/types, so VS Code can provide autocomplete, method signatures, and inline type help when importing from amazon-creator-api-sdk.

Development

npm install
npm test
npm run build

Commit Message Convention

Use Conventional Commits so semantic-release can infer versions:

  • feat: adds a new feature -> minor version bump
  • fix: bug fix -> patch version bump
  • feat!: or BREAKING CHANGE -> major version bump
  • docs:, chore:, test:, refactor: -> usually no release unless configured otherwise

Example:

feat: add getBrowseNodes pagination helper
fix: correct x-marketplace header serialization

Manual publish is optional because release workflow handles publishing on master pushes.

License

Apache-2.0. See LICENSE.txt.

About

A JS based wrapper for amazon's new creator api which is a replacement of Amazon PA API

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors