Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

ebay-api

hendt22kMIT9.2.0TypeScript support: included

eBay API for Node and Browser

api, eBay, Shopping, Searching, products, Browse, Category, FindingApi, node-api, eBay Traditional API, eBay Full API, eBay Account API, eBay Inventory API, eBay Compliance API, eBay Marketing API, eBay Fulfillment API, eBay Marketing API, eBay Analytics API, eBay Metadata API, eBay Browse API, eBay Feed API, eBay Order API, eBay Marketplace Insights API, eBay Taxonomy API, eBay Catalog API, eBay Translation API, eBay Analytics API, eBay Finding API, eBay Shopping API, eBay Merchandising API, eBay Trading API, eBay Product Services, eBay Client Alerts API, ebay-node, eBay-node-api, eBay-node-client, eBay-typescript, eBay-await, eBay-async, eBay-promises, eBay-products, eBay-sellers, eBay-orders, eBay-finances, eBay-inventory, eBay-shipment, eBay-api, eBay-sdk, eBay-client, eBay-node-api, eBay-node

readme

eBay Node API in TypeScript with Browser support

Build Status codecov

GitHub npm version npm

This eBay API implements both Traditional (xml) and the RESTful eBay API. It supports client credentials grant and authorization code grant (Auth'N'Auth, OAuth2 and IAF). Digital Signature is supported too.

eBay Docs

Changelog

  • v9.2.0-RC.0 is the latest release.
  • See here for the full changelog.

Implementation status

RESTful API

API Implemented
Buy API ✔ Browse API v1.10.0
✔ Deal API v1.3.0
✔ Feed API v1.3.1
✔ Marketing API v1_beta.1.0
✔ Offer API v1_beta.0.0
✔ Order API v1_beta.20.0
✔ Marketplace Insights API v1_beta.2.2
Commerce API ✔ Catalog API v1_beta.3.1
✔ Charity API v1.2.0
✔ Identity API v1.0.0
✔ Notification API v1.2.0
✔ Taxonomy API v1.0.0
✔ Translation API v1_beta.1.4
✔ Media API v1_beta.1.0
Developer API ✔ Analytics API
Post Order API ✔ Cancellation API
✔ Case Management API
✔ Inquiry API
✔ Return API
Sell API ✔ Account API v1.9.0
✔ Analytics API v1.3.0
✔ Compliance API v1.4.1
✔ Feed API v1.3.1
✔ Finance API v1.9.0
✔ Fulfillment API v1.19.10
✔ Inventory API v1.18.0
✔ Listing API v1_beta.2.1
✔ Logistics API v1_beta.0.0
✔ Marketing API v1.17.0
✔ Metadata API v1.7.1
✔ Negotiation API v1.1.0
✔ Recommendation API v1.1.0

Traditional API

API Implemented
Finding API
Shopping API
Merchandising API
Trading API
Client Alerts API
Feedback API

Install

npm install ebay-api 
yarn add ebay-api

🚀 Usage & Quick start

Sign up for an API key here: Developer Account. Checkout API examples.

NodeJS

import eBayApi from 'ebay-api';
// or:
// const eBayApi = require('ebay-api')

const eBay = new eBayApi({
  appId: '-- also called Client ID --',
  certId: '-- also called Client Secret --',
  sandbox: false
});

const item = await eBay.buy.browse.getItem('v1|254188828753|0');
console.log(JSON.stringify(item, null, 2));

Detailed configuration example

import eBayApi from 'ebay-api';

const eBay = new eBayApi({
  appId: '-- also called Client ID --',
  certId: '-- also called Client Secret --',
  sandbox: false,

  siteId: eBayApi.SiteId.EBAY_US, // required for traditional APIs, see https://developer.ebay.com/DevZone/merchandising/docs/Concepts/SiteIDToGlobalID.html

  marketplaceId: eBayApi.MarketplaceId.EBAY_US, // default. required for RESTful APIs
  acceptLanguage: eBayApi.Locale.en_US, // default
  contentLanguage: eBayApi.Locale.en_US, // default.

  // optional parameters, should be omitted if not used
  devId: '-- devId --', // required for traditional Trading API
  ruName: '-- eBay Redirect URL name --', // 'RuName' (eBay Redirect URL name) required for authorization code grant

  authToken: '--  Auth\'n\'Auth for traditional API (used by trading) --', // can be set to use traditional API without code grant
});

Browser

Check out live example: https://hendt.github.io/ebay-api/. Because of the eBay CORS problems a Proxy server is required to use the API in the Browser.

For testing purpose you can use https://ebay.hendt.workers.dev/ url as proxy. You can also set up your own Proxy server. We have added a example for cloudfront workers: https://github.com/hendt/ebay-api/blob/master/proxy/worker.js

Or use [https://github.com/Rob--W/cors-anywhere](CORS Anywhere is a NodeJS proxy) (works very well with heroku.com).

ESM


<script type="module">
    import eBayApi from 'https://cdn.jsdelivr.net/npm/ebay-api@latest/dist/ebay-api.min.mjs';
    // or 
    import eBayApiEsm from 'https://esm.sh/ebay-api';
</script>

UMD


<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ebay-api@latest/lib/ebay-api.min.js"></script>
<script>
    const eBay = new eBayApi({
        appId: 'appId',
        certId: 'certId',
        sandbox: false
    });

    // eBay.req.instance is AxiosInstance per default
    eBay.req.instance.interceptors.request.use((request) => {
        // Add Proxy
        request.url = 'https://ebay.hendt.workers.dev/' + request.url;
        return request;
    });

    eBay.buy.browse.getItem('v1|254188828753|0').then(item => {
        console.log(JSON.stringify(item, null, 2));
    }).catch(e => {
        console.error(e);
    });
</script>

🔧 eBayApi Config

The first (required) parameter in eBayApi instance takes an object with following properties:

Name Occurrence Description
appId Required App ID (Client ID) from Application Keys.
certId Required Cert ID (Client Secret) from Application Keys.
devId Conditionally The Dev Id from Application Keys.
sandbox Required
Default: false
If true, the Sandbox Environment will be used.
ruName Conditionally The redirect_url value. More info.
autoRefreshToken Required
Default: true
Auto refresh the token if it's expired.
siteId
Traditional
Required
Default: SiteId.EBAY_US
eBay site to which you want to send the request (Trading API, Shopping API).
authToken
Traditional
Optional The Auth'N'Auth token. The traditional authentication and authorization technology used by the eBay APIs.
marketplaceId
RESTful
Required
Default: MarketplaceId.EBAY_US
Docs REST HTTP Header. X-EBAY-C-MARKETPLACE-ID identifies the user's business context and is specified using a marketplace ID value. Note that this header does not indicate a language preference or consumer location.
scope
RESTful
Conditionally<bre>
Default:
['https://api.ebay.com/oauth/api_scope']
The scopes assigned to your application allow access to different API resources and functionality.
endUserCtx
RESTful
Conditionally recommended
RESTful
Docs X-EBAY_C_ENDUSERCTX provides various types of information associated with the request.
contentLanguage
RESTful
Conditionally required
Default: Locale.en_US
DocsContent-Language indicates the locale preferred by the client for the response.
acceptLanguage
RESTful
Optional
Default: Locale.en_US
Docs Accept-Language indicates the natural language the client prefers for the response. This specifies the language the client wants to use when the field values provided in the request body are displayed to consumers.

Load config from environment

Use eBayApi.fromEnv() to load data from environment variables.

Name Value
appId process.env.EBAY_APP_ID
certId process.env.EBAY_CERT_ID
devId process.env.EBAY_DEV_ID
authToken process.env.EBAY_AUTH_TOKEN
siteId process.env.EBAY_SITE_ID
marketplaceId process.env.EBAY_MARKETPLACE_ID
ruName process.env.EBAY_RU_NAME
sandbox process.env.EBAY_SANDBOX === 'true'

🐞 Debug

To see node debug logs use DEBUG=ebay:* environment variable.

🔑 Access token types

See the full Documentation here.

Client credentials grant flow mints a new Application access token. Authorization code grant flow mints a new User access token.

User access token (authorization code grant flow)

👉 Recommended for all API Calls.

You must employ a User token to call any interface that accesses or modifies data that is owned by the user (such as user information and account data). To get a User token, the users of your app must grant your application the permissions it needs to act upon their behalf. This process is called user consent. With the user consent flow, each User token contains the set of scopes for which the user has granted their permission (eBay Token Types).

Application access token (client credentials grant flow)

👉 Recommended for API calls that will only request application data (GET method, and it's also restricted).

Application tokens are general-use tokens that give access to interfaces that return application data. For example, many GET requests require only an Application token for authorization. (eBay Token Types)

If no other token is set, this token will be obtained automatically in the process of calling an RESTful API.

Auth'N'Auth

In the Single User Model, the application supports only a single user. In this model, you need only one Auth'n'Auth token. 👉 The "old" way. Only works with Traditional API. Checkout the Auth'N'Auth example.

You can also generate the token on eBay developer page and use it directly (see Detailed configuration example).

OAuth2: Exchanging the authorization code for a User access token

eBay Docs

import eBayApi from 'ebay-api';

// 1. Create new eBayApi instance and set the scope.
const eBay = eBayApi.fromEnv();

eBay.OAuth2.setScope([
  'https://api.ebay.com/oauth/api_scope',
  'https://api.ebay.com/oauth/api_scope/sell.fulfillment.readonly',
  'https://api.ebay.com/oauth/api_scope/sell.fulfillment'
]);

// 2. Generate and open Url and Grant Access
const url = eBay.OAuth2.generateAuthUrl();
console.log('Open URL', url);

After you granted success, eBay will redirect you to your 'Auth accepted URL' and add a query parameter code

Express example

This is how it would look like if you use express:

import eBayApi from 'ebay-api';


// This is your RUName endpoint like https://your-ebay.app/success
app.get('/success', async function (req, res) {
  // 3. Get the parameter code that is placed as query parameter in redirected page
  const code = req.query.code; // this is provided from eBay
  const eBay = eBayApi.fromEnv(); // or use new eBayApi()

  try {
    const token = await eBay.OAuth2.getToken(code);
    eBay.OAuth2.setCredentials(token);
    // store this token e.g. to a session
    req.session.token = token

    // 5. Start using the API
    const orders = await eBay.sell.fulfillment.getOrders()
    res.send(orders);
  } catch (error) {
    console.error(error)
    res.sendStatus(400)
  }
});

If token is already in session:

import eBayApi from 'ebay-api';

app.get('/orders/:id', async function (req, res) {
  const id = req.params.id;
  const eBay = eBayApi.fromEnv(); // or use new eBayApi(...)
  const token = req.session.token;
  if (!token) {
    return res.sendStatus(403);
  }

  eBay.OAuth2.setCredentials(token);

  // If token get's refreshed
  eBay.OAuth2.on('refreshAuthToken', (token) => {
    req.session.token = token;
  });

  try {
    // 5. Start using the API
    const order = await eBay.sell.fulfillment.getOrder(id);
    res.send(order);
  } catch (error) {
    console.error(error)
    res.sendStatus(400)
  }
});

Digital Signature

Signatures are required when the call is made for EU- or UK-domiciled sellers, and only for the following APIs/methods:

  • All methods in the Finances API -> (eBay.finances.XXX.sign.YYY())
  • issueRefund in the Fulfillment API -> (eBay.sell.fulfillment.sign.issueRefund())
  • GetAccount in the Trading API -> (eBay.trading.GetAccount(null, { sign: true })))
  • The following methods in the Post-Order API:
    • Issue Inquiry Refund -> (eBay.postOrder.inquiry.sign.issueInquiryRefund())
    • Issue case refund -> (eBay.postOrder.inquiry.sign.issueCaseRefund())
    • Issue return refund -> (eBay.postOrder.inquiry.sign.issueReturnRefund())
    • Process Return Request -> (eBay.postOrder.inquiry.sign.processReturnRequest())
    • Create Cancellation Request -> (eBay.postOrder.inquiry.sign.createCancellation())
    • Approve Cancellation Request -> (eBay.postOrder.inquiry.sign.approveCancellationRequest())

How to use Digital Signature

// 1. Create singning key and save it appropriatly
const signingKey = await eBay.developer.keyManagement.createSigningKey('ED25519');
// 2. Set the signature
eBay.setSignature(signingKey)
// or in constructor
eBay = new eBayApi({
   appId: '...',
   certId: '...',
   signature: {
      jwe: signingKey.jwe,
      privateKey: signingKey.privateKey
   }
});
// 3. Use the 'sign' keyword in Restful API
const summary = await eBay.sell.finances.sign.getSellerFundsSummary();
// 3. Or the 'sign' parameter in traditional API
const account = await eBay.trading.GetAccount(null, {sign: true});

RESTful API

How to set the Scope

const eBay = new eBayApi({
  // ...
  scope: ['https://api.ebay.com/oauth/api_scope']
});

// Or:
eBay.OAuth2.setScope([
  'https://api.ebay.com/oauth/api_scope',
  'https://api.ebay.com/oauth/api_scope/sell.fulfillment.readonly',
  'https://api.ebay.com/oauth/api_scope/sell.fulfillment'
]);

Use apix.ebay.com or apiz.ebay.com (beta) endpoints

For some APIs, eBay use a apix/apiz subdomain. To use these subdomains you can use .apix/.apiz before the api call like this:

  eBay.buy.browse.apix.getItem() // now it will use https://apix.ebay.com
eBay.buy.browse.apiz.getItem() // now it will use https://apiz.ebay.com

In any case eBay adds a new subdomain, it's also possible to configure whatever you want:

  eBay.buy.browse.api({subdomain: 'apiy'}).getItem() // now it will use https://apiy.ebay.com

Return raw RESTful API response

  eBay.buy.browse.api({
  returnResponse: true, // return the response instead of data
}).getItem();

How to refresh the token

If autoRefreshToken is set to true (default value) the token will be automatically refreshed when eBay response with invalid access token error.

Use Event Emitter to get the token when it gets successfully refreshed.

eBay.OAuth2.on('refreshAuthToken', (token) => {
  console.log(token)
  // Store this token in DB
});

// for client token
eBay.OAuth2.on('refreshClientToken', (token) => {
  console.log(token)
  // Store this token in DB
});

To manual refresh the auth token use eBay.OAuth2.refreshAuthToken() and for the client token use eBay.OAuth2.refreshClientToken(). Keep in mind that you need the 'refresh_token' value set.

const token = await eBay.OAuth2.refreshToken();
// will refresh Auth Token if set, otherwise the client token if set.

Additional request headers

Sometimes you want to add additional headers to the request like a GLOBAL-ID X-EBAY-SOA-GLOBAL-ID. You have multiple options to do this.

RESTful API headers

  const eBay = new eBayApi();

eBay.buy.browse.api({
  headers: {
    'X-EBAY-SOA-GLOBAL-ID': 'EBAY-DE'
  }
}).getItem('v1|382282567190|651094235351').then((item) => {
  console.log(item)
})

Traditional API headers

You can pass headers directly in the method call in the second parameter:

eBay.trading.AddFixedPriceItem({
  Item: {
    Title: 'title',
    Description: {
      __cdata: '<div>test</div>'
    }
  }
}, {
  headers: {
    'X-EBAY-SOA-GLOBAL-ID': 'EBAY-DE'
  }
})

Low level: use the Axios interceptor to manipulate the request

import eBayApi from 'ebay-api';

const eBay = new eBayApi(/* {  your config here } */);

eBay.req.instance.interceptors.request.use((request) => {
  // Add Header
  request.headers['X-EBAY-SOA-GLOBAL-ID'] = 'EBAY-DE';
  return request;
})

Handle JSON GZIP response e.g fetchItemAspects

You need a decompress library installed like zlib.

npm install zlib # or yarn add zlib
import eBayApi from 'ebay-api';
import zlib from 'zlib';

const toString = (data) => new Promise((resolve) => {
  zlib.gunzip(data, (err, output) => {
    if (err) throw err;
    resolve(output.toString());
  });
});

const eBay = new eBayApi(/* {  your config here } */);

try {
  const data = await eBay.commerce.taxonomy.fetchItemAspects(/* categoryTreeId */);
  const result = await toString(data);

  console.log(result)
} catch (error) {
  console.error(error);
}

Handling errors

import eBayApi from 'ebay-api';
import { EBayApiError } from 'ebay-api/lib/errors';

const eBay = new eBayApi(/* {  your config here } */);

try {
  const result = await eBay.trading.GetItem({
    ItemID: 'itemId',
  });
  console.log(result);
} catch (error) {
  if (error instanceof EBayApiError && error.errorCode === 17) {
    // Item not found
  } else {
    throw error;
  }

  // in error there is also the field "meta" with the response
  if (error instanceof EBayApiError && error.meta?.res?.status === 404) {
    // not found

    // The first error
    console.log(error?.firstError);
  }


}

The errorCode is extracted from the first error in the API response.

Controlling Traditional XML request and response

The second parameter in the traditional API has the following options:

export type Options = {
  raw?: boolean // return raw XML
  parseOptions?: X2jOptions // https://github.com/NaturalIntelligence/fast-xml-parser
  xmlBuilderOptions?: XmlBuilderOptions // https://github.com/NaturalIntelligence/fast-xml-parser
  useIaf?: boolean // use IAF in header instead of Bearer
  headers?: Headers // additional Headers (key, value)
  hook?: (xml) => BodyHeaders // hook into the request to modify the body and headers
};

Fast XML is used to parse the XML. You can pass the parse option to parseOptions parameter.

Parse JSON Array


eBay.trading.SetNotificationPreferences({
  UserDeliveryPreferenceArray: [{
    NotificationEnable: {
      EventType: 'ItemListed',
      EventEnable: 'Enable',
    }
  }, {
    NotificationEnable: {
      EventType: 'ItemSold',
      EventEnable: 'Enable',
    },
  }],
}, { xmlBuilderOptions: { oneListGroup: true }})

Will produce:

<UserDeliveryPreferenceArray>
  <NotificationEnable>
    <EventType>ItemListed</EventType>
    <EventEnable>Enable</EventEnable>
  </NotificationEnable>
  <NotificationEnable>
    <EventType>ItemSold</EventType>
    <EventEnable>Enable</EventEnable>
  </NotificationEnable>
</UserDeliveryPreferenceArray>

Examples

Trading - AddFixedPriceItem (CDATA)

You can submit your description using CDATA if you want to use HTML or XML.

eBay.trading.AddFixedPriceItem({
  Item: {
    Title: 'title',
    Description: {
      __cdata: '<div>test</div>'
    }
  }
})

Trading - ReviseFixedPriceItem (Update the price of an item)

eBay.trading.ReviseFixedPriceItem({
  Item: {
    ItemID: 'itemId',
    StartPrice: 'startPrice'
  }
})

Buy - getItem

eBay.buy.browse.getItem('v1|382282567190|651094235351').then(a => {
  console.log(a);
}).catch(e => {
  console.log(e)
});

Post-Order - getReturn

eBay.postOrder.return.getReturn('5132021997').then(a => {
  console.log(a);
}).catch(e => {
  console.log(e)
});

Finding - findItemsByProduct (use XML attributes and value)

eBay.finding.findItemsByProduct({
  productId: {
    '@_type': 'ReferenceID',
    '#value': '53039031'
  }
})

// will produce:
// <productId type="ReferenceID">53039031</productId>

Finding - findItemsIneBayStores

eBay.finding.findItemsIneBayStores({
  storeName: 'HENDT'
}, {raw: true}).then(result => {
  // Return raw XML
  console.log(result);
});

Finding - findItemsAdvanced (findItemsByKeywords)

eBay.finding.findItemsAdvanced({
  itemFilter: [{
    name: 'Seller',
    value: 'hendt_de'
  }],
  keywords: 'katze'
}).then(result => {
  console.log(result);
});

Trading - GetMyeBaySelling

eBay.trading.GetMyeBaySelling({
  SoldList: {
    Include: true,
    Pagination: {
      EntriesPerPage: 20,
      PageNumber: 1
    }
  }
}).then(data => {
  console.log(data.results)
});

FAQ

  1. Do I need the eBay OAuth Client dependency?

No. This library has already all authentication implemented and support also auto refreshing token.

  1. What does IAF mean?

IAF stands for IDENTITY ASSERTION FRAMEWORK. The traditional API supports IAF. That means you can use the OAuth2 token with the traditional APIs.

  1. Is it possible to Upload Pictures directly to EPS?

Yes. Checkout the Browser example and Node Example here.

  1. itemAffiliateWebUrl is missing in eBay.buy.browse.search call You have to set endUserCtx.

Contribution

Check here

Supported By

hendt.de
rootle.de

📝 License

MIT.

changelog

eBay API Changelog

9.2.0 (2025-03-14)

Features

9.2.0-RC.0 (2024-12-20)

Features

  • update sell inventory API to v1.18.0 (d3a4e27)

Bug Fixes

  • #185 do not throw error on Warning (a1e939a)
  • Added responseType and responseEncoding to sell.feed.getLatestResultFile/getResultFile for files to download correctly (ffe3850)
  • Fulfillment API: getOrder(s) fieldGroups takes string, not string[] (a388dbb)
  • getRateLimits - params are optional (9450863)

9.1.1 (2024-08-23)

Bug Fixes

9.1.0 (2024-07-02)

Features

  • add "firstError" in EBayApiError (c2bff1e)
  • make xmlBuilderOptions configurable (ce7f787)

9.0.3 (2024-06-27)

Bug Fixes

  • change type of response status to number (f062fc9)
  • version in README.md (0991cc3)

9.0.2 (2024-06-21)

Bug Fixes

  • revert back to postForm because axios does not encode correctly (c369044)

9.0.1 (2024-06-20)

Bug Fixes

9.0.0 (2024-06-20)

Features

  • update sell metadata to v1.7.1 (124ed0b)

9.0.0-RC.0 (2024-04-25)

⚠ BREAKING CHANGES

  • refactor error handling

Bug Fixes

  • refactor error handling (05d40a9)

8.7.2-RC.0 (2024-03-29)

Bug Fixes

  • #165 allow string as Metric value (f20f688)
  • refresh Auth token if it's hard expired (1d8410f)
  • use same timestamp in digital signature (20bc69a)

8.7.1 (2024-02-09)

Bug Fixes

8.7.0 (2024-02-05)

Features

8.6.1 (2024-01-18)

Bug Fixes

  • :bug: fixes search cancellations request with query parameters (60133ab)

8.6.0 (2023-10-08)

Features

  • removeComments is true to reduce module size (91725b4)
  • update sell Marketing API v1.17.0 (c3acbfb)

8.5.1 (2023-09-28)

Bug Fixes

8.5.0 (2023-08-29)

Features

  • export request and param types (adc6cce)
  • generate types with openai-typescript (62d6178)
  • implement openai spec operations (035e8c8)
  • improve more types (fb170ae)
  • use openai typedef in query too (afdd9c6)

Bug Fixes

  • ignore openapi generated folder in tslint.json (2d3e748)
  • traditional api types (ac9cd61)

8.4.1 (2023-05-25)

8.4.0 (2023-01-27)

Features

  • add setSignature method (de1b466)

Bug Fixes

  • remove unused globals crypto (a3ceaab)
  • show error message in browser since digital signature is not supported here (314211b)

8.2.0-RC.0 (2022-12-27)

Features

8.3.0 (2023-01-18)

Features

  • update restful sell marketing api to v1.14.0 (d76a6f1)

8.2.0 (2023-01-09)

Features

  • update sell.account api to v1.9.0 (183d0ef)

8.1.0 (2022-12-27)

Features

Bug Fixes

  • reverts types in package.json (aac52a3)

8.0.1 (2022-12-21)

8.0.0 (2022-12-21)

8.0.0-RC.0 (2022-12-08)

⚠ BREAKING CHANGES

  • output esm and cjs

Features

Bug Fixes

7.1.3 (2022-12-03)

Bug Fixes

  • get access token before calling traditional API (a4a3123)

7.1.2 (2022-11-22)

7.1.1 (2022-11-03)

7.1.0 (2022-11-03)

Features

  • added developer key management API (75ccb60)

Bug Fixes

7.0.2 (2022-06-29)

7.0.1 (2022-06-28)

Bug Fixes

  • add missed sort parameter (f4cf095)
  • fix enum used for refundMethod (99203d2)

7.0.0 (2022-03-18)

⚠ BREAKING CHANGES

  • add "returnResponse" config for API. If set to true, return the response instead of data.

Features

  • add "returnResponse" config for API. If set to true, return the response instead of data. (41a8abb)

Bug Fixes

  • fromEnv() make EBAY_DEV_ID optional (9c90bfa)

6.2.0 (2022-03-06)

Features

  • add "default" export for esm (d2454d9)

Bug Fixes

  • add types and enums for package dimensions and addresses (97404b9)

6.1.0 (2022-02-08)

Features

6.0.0 (2022-02-08)

⚠ BREAKING CHANGES

  • rename package name from '@hendt/ebay-api' to 'ebay-api'

  • rename package name from '@hendt/ebay-api' to 'ebay-api' (fa61e14)

5.3.1 (2022-02-08)

5.3.0 (2022-01-21)

Features

Bug Fixes

  • correct example file name (507b298)

5.2.1 (2022-01-05)

Bug Fixes

  • allow fieldGroups in fulfillment.getOrders call (6da3fd0)
  • commerce.translations oas test (c80f1af)

5.2.0 (2021-12-17)

Features

  • add fieldGroups param in fulfillment.getOrder() (23562be)

5.1.1 (2021-12-03)

Bug Fixes

  • use "http" in xmlns for finding API #14 (f8ea062)

5.1.0 (2021-11-23)

Features

  • update buy browse API (6ca0334)
  • update restful notification api to v1.2.0 (91e5de3)
  • update sell analytics, metadata and recommendation API and oas (214c0b0)
  • update sell compliance API (aed292c)
  • update sell fulfillment API (274f2f4)

5.0.3 (2021-11-11)

Bug Fixes

  • remove stripCode instead check if window is defined (65eb840)

5.0.2 (2021-11-11)

Bug Fixes

  • declare property 'id' for every Restful API since constructor.name is not reliable (71ce1ad)

5.0.1 (2021-11-11)

Bug Fixes

  • remove restful 'Accept-Encoding' header in browser environment. (dd9db62)

5.0.0 (2021-10-28)

⚠ BREAKING CHANGES

  • target ES2020 and Node >= 14

  • target ES2020 and Node >= 14 (81c1973)

4.0.4 (2021-10-28)

Bug Fixes

  • traditional: use https in shopping API and finding API (c1fecc0)

4.0.3 (2021-10-19)

Bug Fixes

  • shopping: use iaf token in shopping API (f24f24d)

4.0.2 (2021-10-12)

Bug Fixes

  • traditional: only return api error if Ack is Failure #93 (8f30eed)
  • types: make legacyReference in RefundItem optional (5aa2e9e)

4.0.1 (2021-09-09)

Bug Fixes

4.0.0 (2021-08-27)

4.0.0-RC.1 (2021-08-27)

Bug Fixes

  • keep function name in minified version (e4e58cc)
  • remove custom User-Agent (86cde05)
  • revert back to plain xml body since form-data with axios has weird issues (45870d5)

4.0.0-RC.0 (2021-08-26)

⚠ BREAKING CHANGES

  • set per default to EBAY_US

Features

  • allow string in setCredentials() (b17e300)
  • eps (WIP) (6e7db5f)
  • upload picture to eps with working example (2d6d46c)

Bug Fixes

  • set per default to EBAY_US (33b23de)

3.3.3 (2021-08-26)

Bug Fixes

  • types: set ShippingFulfillmentDetails.shippedDate as optional (2894739)

3.3.2 (2021-08-15)

Bug Fixes

  • IssueRefundRequest type (8a75516)

3.3.1 (2021-08-12)

3.3.0 (2021-07-25)

Features

  • add and use ReturnMethod, ReturnShippingCostPayer, and RegionType enums (5a63eee)
  • add response data to error meta (021e84f)

Bug Fixes

  • add EBAY_BE marketplace (c9330be)
  • make changelog headings consistent (63dc373)

3.2.0 (2021-04-25)

Features

  • add Marketplace enum and change types of marketplaceId params to use enums (6b5eb93)

Bug Fixes

  • autoRefreshToken in traditional api call (faadf94)
  • use travis env for codecov (6cb528c)

3.1.0 (2021-04-07)

Features

3.0.0 (2021-04-07)

⚠ BREAKING CHANGES

  • rename oAuth2 to OAuth2

Features

  • add apix/apiz and make restful api configurable (081dab0)
  • add ContentLanguage enum (a0a3d11)
  • improve error handling (c1fbdbb)
  • use Locale enum (edcb921)

Bug Fixes

  • rename oAuth2 to OAuth2 (755a840)

2.2.1 (2021-03-11)

Bug Fixes

  • remove lib before build (8cc6cbb)

2.2.0 (2021-03-11)

Features

Bug Fixes

  • add package-lock.json to bumbFiles (b82a901)

2.1.1 (2021-03-09)

Bug Fixes

  • minor fix for update readme script (eaad8f9)

2.1.0 (2021-03-09)

Features

Bug Fixes

2.0.0 (2021-03-09)

⚠ BREAKING CHANGES

  • refactoring
  • parse attributes on eBay xml response

Features

  • apply default parse options to xml request (dd95255)
  • enable arrayMode in XML response (bc91c79)
  • parseTrueNumberOnly in xml (c5cb5ed)
  • remove AxiosRateLimited and Expose Axios instance (fe37918)
  • support additional header in XML request (bd52f33)

Bug Fixes

  • change back to git dependency (d4017be)
  • change to https for travis (2c59820)
  • improve arrayMode (4099dfb)
  • parse attributes on eBay xml response (6970ae6)
  • remove List from arrayMode (691c194)

1.5.1 (2021-02-21)

Bug Fixes

  • udpate comment and return type to more accuratly decribe what is returned from eBay (6ea2458)
  • update call to include correct response type (763df8a)

1.5.0 (2021-02-21)

Features

  • add fetchItemAspects method (457cb42)
  • updated taxonomy url to GA version per eBay release notes (1c44ad1)

Bug Fixes

  • updated testing oas3 file per eBay docs (b758222)

1.4.2 (2021-01-07)

Bug Fixes

  • Make Region.regionType optional (9486ec6)
  • Remove sku from Compatibility (506d988)

1.4.1 (2020-10-22)

Bug Fixes

  • Create type EbayOfferDetailsWithId and use that for updateOffer (0445e05)
  • Merge pull request #19 from olliechick/fix-types (a999b12)
  • wrap glob pattern in single quotes (ac2eb5f)

1.4.0 (2020-10-02)

Features

  • Return refreshed token from refreshAuthToken (b7075c3)

Bug Fixes

  • fix siteId check (3c8c1cb)
  • fix type of PaymentPolicyRequest.paymentMethods (e8a97a7)
  • Mark non-required types in PaymentPolicyRequest and children as optional (efaad9d)
  • Mark non-required types in ReturnPolicyRequest as optional (2323344)
  • remove requirement for siteId in eBayConfig; instead, throw errors when it is needed but not provided (2df33f8)

1.3.0 (2020-09-25)

Features

  • Sell: add missed api calls (4749eba)
  • Sell: add missed API calls (5aa03c3)

1.2.1 (2020-06-16)

Bug Fixes

  • PostOrder: create return endpoint (957c739)

1.2.0 (2020-06-09)

Features

  • add new enum and fix RefundDetail type (3c15ffc)

1.1.2 (2020-06-01)

Bug Fixes

1.1.1 (2020-05-31)

Bug Fixes

  • wrong name for restful cache (dce891b)

1.1.0 (2020-05-31)

Features

Bug Fixes

  • post order issue_refund missed payload param (2e735e6)

1.0.1 (2020-03-19)

Bug Fixes

1.0.0 (2020-03-19)

Bug Fixes