Skip to content

Repository files navigation

eBay Node API in TypeScript with Browser support

codecov

npm versionnpm downloadsjsDelivr

License

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.

Table of Contents

🚀 Quick Start

  • v10.0.1 is the latest release.
  • See here for the full changelog.

Sign up for an API key here: Developer Account.

Implementation status

RESTful APIs

APIImplemented
Buy API✔ Browse API v1.20.4
✔ Deal API v1.3.0
✔ Feed API v1_beta.35.2
✔ Marketing API v1_beta.2.0
✔ Offer API v1_beta.0.1
✔ Order API v2.1.4
✔ Marketplace Insights API v1_beta.2.2
Commerce API✔ Catalog API v1_beta.5.3
✔ Charity API v1.2.1
✔ Feedback API v1.0.0
✔ Identity API v2.0.0
✔ Media API v1_beta.5.0
✔ Message API v1.0.0
✔ Notification API v1.6.7
✔ Taxonomy API v1.1.1
✔ Translation API v1_beta.1.6
Developer API✔ Analytics API v1_beta.0.1
✔ Key Management API v1.0.0
Post Order API✔ Cancellation API
✔ Case Management API
✔ Inquiry API
✔ Return API
Sell API✔ Account API v1.9.3 / v2.2.0
✔ Analytics API v1.3.2
✔ Feed API v1.3.1
✔ Finance API v1.19.0
✔ Fulfillment API v1.20.7
✔ Inventory API v1.18.5
✔ Listing API v1_beta.2.1
✔ Logistics API v1_beta.0.0
✔ Marketing API v1.23.2
✔ Metadata API v1.12.1
✔ Negotiation API v1.1.0
✔ Recommendation API v1.1.0
✔ Stores API v1.0.0

Traditional APIs

APIImplemented
Shopping API
Merchandising API
Trading API
Client Alerts API
Feedback API

Migrating from v9 to v10

v10 is a major release that removes eBay APIs and operations that eBay has decommissioned. The public interface (auth, config, request handling) is unchanged — you only need to make changes if your app used one of the removed APIs/operations below.

Removed APIs

RemovedReplacement / Notes
Finding API (eBay.finding)eBay took the traditional Finding API down server-side in February 2025. Migrate item search to the Buy Browse API (eBay.buy.browse).
Sell Compliance API (eBay.sell.compliance)Decommissioned by eBay on 2026-03-30. Removed together with getListingViolations / getListingViolationsSummary and the SuppressViolationRequest type.

Removed operations

Every operation below was dropped from eBay's own published OpenAPI spec. Calling one in v9 already failed against the live API; in v10 the method no longer exists.

APIRemovedReplacement / Notes
Buy Browse (eBay.buy.browse)addItem, removeItem, updateQuantity, getShoppingCartThe experimental /shopping_cart resource was withdrawn. The AddCartItemInput, RemoveCartItemInput and UpdateCartItemInput types were removed with it.
Buy Feed (eBay.buy.feed)getProductFeedThe /product feed was withdrawn. Use getItemFeed, getItemGroupFeed, getItemSnapshotFeed or the new getItemPriorityFeed.
Buy Marketing (eBay.buy.marketing)getAlsoBoughtByProduct, getAlsoViewedByProductOnly getMerchandisedProducts remains.
Buy Order (eBay.buy.order)Migrated v1 → v2 — only the guest checkout flow remains. The member checkout session, proxy-guest checkout session, payment-info, initiate-payment and place-order operations are gone.The CreateSignInCheckoutSessionRequest, GuestPlaceOrderRequest, InitiatePaymentRequest, UpdatePaymentInformation and CheckoutSessionRequestWithoutPayment types were removed.
Commerce Catalog (eBay.commerce.catalog)getChangeRequest, getChangeRequests, getProductMetadata, getProductMetadataForCategoriesThe catalog change-request and product-metadata resources were decommissioned. getProduct and search remain.
Commerce Charity (eBay.commerce.charity)getCharityOrgByLegacyIdLook the organization up with getCharityOrgs and use its current ID with getCharityOrg.
Sell Account v1 (eBay.sell.account)getInventoryLocation, getInventoryLocations, createInventoryLocation, updateInventoryLocation, deleteInventoryLocation, enableInventoryLocation, disableInventoryLocationThese were duplicates pointing at /sell/account/v1/location, which eBay does not serve. Use the identically-named methods on eBay.sell.inventory, which target the correct /sell/inventory/v1/location path.
Sell Account v1 (eBay.sell.account)getSalesTaxJurisdictionsThe sales_tax_jurisdiction resource was withdrawn. The /sales_tax methods (getSalesTax, getSalesTaxes, createOrReplaceSalesTax, deleteSalesTax, bulkCreateOrReplaceSalesTax) are unaffected.
Sell Marketing (eBay.sell.marketing)setupQuickCampaign, launchCampaignThe quick_setup and launch operations were retired, along with the QuickSetupRequest type.
Sell Metadata (eBay.sell.metadata)getProductAdoptionPoliciesThe get_product_adoption_policies operation was withdrawn.
Post-Order (eBay.postOrder.*)29 methods — see the table below.The request types that only those methods used were removed too: BuyerCloseCaseRequest, BuyerCloseInquiryRequest, CheckEligibilityRequest, CheckInquiryEligibilityRequest, CloseReturnRequest, ConfirmRefundRequest, CreateInquiryRequest, GetEstimateRequest, MarkAsShippedRequest, MarkRefundSentRequest, ReturnAddressRequest, SellerProvideRefundInfoRequest, SetReturnCreationSessionRequest, UpdateTrackingRequest, VoidLabelRequest.

Removed post-order methods:

ResourceRemoved
eBay.postOrder.cancellationconfirmRefundReceived
eBay.postOrder.casecloseCase, issueCaseRefund, provideReturnShipmentInfo, providesReturnAddress
eBay.postOrder.inquirycheckInquiryEligibility, closeInquiry, confirmInquiryRefund, createInquiry, provideInquiryRefundInfo
eBay.postOrder.returncancelReturnRequest, checkReturnEligibility, checkShippingLabelEligibility, createReturnDraft, createReturnShippingLabel, deleteReturnDraftFile, getReturnDraft, getReturnDraftFiles, getReturnEstimate, getReturnShippingLabel, markReturnRefundReceived, markReturnRefundSent, markReturnShipped, sendReturnShippingLabel, submitReturnFile, updateReturnDraft, updateShipmentTrackingInfo, uploadReturnDraftFile, voidShippingLabel

Renamed methods

  • Commerce NotificationeBay.commerce.notification.test(subscriptionId) is now eBay.commerce.notification.testSubscription(subscriptionId), matching eBay's operationId.

Changed behaviour

  • IEBayApiRequest gained a required patch method. If you pass a custom request implementation (new eBayApi(config, myRequest)), add a patch(url, data?, config?) member. The bundled AxiosRequest already has it. This is needed by eBay.sell.accountV2.setUserPreferences, eBay's first PATCH operation.
  • eBay.commerce.media.uploadVideo now sends Content-Type: application/octet-stream, as the spec requires, and takes an optional third headers argument so you can supply Content-Range / Content-Length for resumable uploads.
  • eBay.sell.logistics.downloadLabelFile now requests application/pdf and returns the raw buffer (responseType: 'arraybuffer') instead of attempting to parse the PDF as JSON.
  • Per-request headers now win over the client-wide defaults. Previously the library's default Content-Type: application/json overwrote the multipart/form-data header that the upload endpoints set, so createImageFromFile, uploadDocument, uploadPostOrderDocument, sell.feed.uploadFile and sell.fulfillment.uploadEvidenceFile were rejected by eBay. They work now.
  • Sell Finances filter parameters accept an array.getPayouts, getPayoutSummary, getTransactions, getTransactionSummary, getOrderEarnings, getOrderEarningsSummary and getBillingActivities all take string | string[] and join the list for you. getOrderEarningsSummary now takes an options object ({filter}) like its siblings.
  • Commerce Media — the InputStream type was removed upstream; uploadVideo now accepts any for its body.

New in v10

  • Sell Stores API (eBay.sell.stores) — manage the categories of a seller's eBay store.
  • Sell Account API v2 (eBay.sell.accountV2) — rate tables, payout settings, combined shipping rules and user preferences.
  • All RESTful OpenAPI specs were refreshed to eBay's latest published versions, which adds a number of new methods (for example eBay.buy.feed.getItemPriorityFeed and 19 new Sell Metadata operations).

Install

npm install ebay-api # or
yarn add ebay-api

Basic Usage

importeBayApifrom'ebay-api';// or:// const eBayApi = require('ebay-api')consteBay=neweBayApi({appId: '-- also called Client ID --',certId: '-- also called Client Secret --',sandbox: false});constitem=awaiteBay.buy.browse.getItem('v1|254188828753|0');console.log(JSON.stringify(item,null,2));

For more examples, check out the examples directory.

eBay Docs

Detailed Configuration

importeBayApifrom'ebay-api';consteBay=neweBayApi({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.htmlmarketplaceId: eBayApi.MarketplaceId.EBAY_US,// default. required for RESTful APIsacceptLanguage: eBayApi.Locale.en_US,// defaultcontentLanguage: eBayApi.Locale.en_US,// default.// optional parameters, should be omitted if not useddevId: '-- devId --',// required for traditional Trading APIruName: '-- eBay Redirect URL name --',// 'RuName' (eBay Redirect URL name) required for authorization code grantauthToken: '-- Auth\'n\'Auth for traditional API (used by trading) --',// can be set to use traditional API without code grant});

Browser Usage

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 purposes you can use https://ebay.hendt.workers.dev/ url as proxy. You can also set up your own Proxy server. We have added an example for cloudfront workers: https://github.com/hendt/ebay-api/blob/master/proxy/worker.js

Or use CORS Anywhere (a NodeJS proxy that works very well with heroku.com).

ESM

<scripttype="module">importeBayApifrom'https://cdn.jsdelivr.net/npm/ebay-api@latest/dist/ebay-api.min.mjs';// or importeBayApiEsmfrom'https://esm.sh/ebay-api';</script>

UMD

<scripttype="text/javascript" src="https://cdn.jsdelivr.net/npm/ebay-api@latest/lib/ebay-api.min.js"></script><script>consteBay=neweBayApi({appId: 'appId',certId: 'certId',sandbox: false});// eBay.req.instance is AxiosInstance per defaulteBay.req.instance.interceptors.request.use((request)=>{// Add Proxyrequest.url='https://ebay.hendt.workers.dev/'+request.url;returnrequest;});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:

NameOccurrenceDescription
appIdRequiredApp ID (Client ID) from Application Keys.
certIdRequiredCert ID (Client Secret) from Application Keys.
devIdConditionallyThe Dev Id from Application Keys.
sandboxRequired
Default: false
If true, the Sandbox Environment will be used.
ruNameConditionallyThe redirect_url value. More info.
autoRefreshTokenRequired
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
OptionalThe Auth'N'Auth token. The traditional authentication and authorization technology used by the eBay APIs.
parseOptions
Traditional
Optional
Default: { processEntities: { maxTotalExpansions: 10000 } }
Global fast-xml-parser parse options applied to all Traditional API responses. Can be overridden per-call.
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
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.

NameValue
appIdprocess.env.EBAY_APP_ID
certIdprocess.env.EBAY_CERT_ID
devIdprocess.env.EBAY_DEV_ID
authTokenprocess.env.EBAY_AUTH_TOKEN
siteIdprocess.env.EBAY_SITE_ID
marketplaceIdprocess.env.EBAY_MARKETPLACE_ID
ruNameprocess.env.EBAY_RU_NAME
sandboxprocess.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

importeBayApifrom'ebay-api';// 1. Create new eBayApi instance and set the scope.consteBay=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 Accessconsturl=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:

importeBayApifrom'ebay-api';// This is your RUName endpoint like https://your-ebay.app/successapp.get('/success',asyncfunction(req,res){// 3. Get the parameter code that is placed as query parameter in redirected pageconstcode=req.query.code;// this is provided from eBayconsteBay=eBayApi.fromEnv();// or use new eBayApi()try{consttoken=awaiteBay.OAuth2.getToken(code);eBay.OAuth2.setCredentials(token);// store this token e.g. to a sessionreq.session.token=token// 5. Start using the APIconstorders=awaiteBay.sell.fulfillment.getOrders()res.send(orders);}catch(error){console.error(error)res.sendStatus(400)}});

If token is already in session:

importeBayApifrom'ebay-api';app.get('/orders/:id',asyncfunction(req,res){constid=req.params.id;consteBay=eBayApi.fromEnv();// or use new eBayApi(...)consttoken=req.session.token;if(!token){returnres.sendStatus(403);}eBay.OAuth2.setCredentials(token);// If token get's refreshedeBay.OAuth2.on('refreshAuthToken',(token)=>{req.session.token=token;});try{// 5. Start using the APIconstorder=awaiteBay.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.sell.finances.sign.XXX())
  • 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 return refund -> (eBay.postOrder.return.sign.issueReturnRefund())
    • Process Return Request -> (eBay.postOrder.return.sign.processReturnRequest())
    • Create Cancellation Request -> (eBay.postOrder.cancellation.sign.createCancellation())
    • Approve Cancellation Request -> (eBay.postOrder.cancellation.sign.approveCancellationRequest())

How to use Digital Signature

// 1. Create signing key and save it appropriatelyconstsigningKey=awaiteBay.developer.keyManagement.createSigningKey('ED25519');// 2. Set the signatureeBay.setSignature(signingKey)// or in constructoreBay=neweBayApi({appId: '...',certId: '...',signature: {jwe: signingKey.jwe,privateKey: signingKey.privateKey}});// 3. Use the 'sign' keyword in Restful APIconstsummary=awaiteBay.sell.finances.sign.getSellerFundsSummary();// 3. Or the 'sign' parameter in traditional APIconstaccount=awaiteBay.trading.GetAccount(null,{sign: true});

RESTful API

How to set the Scope

consteBay=neweBayApi({// ...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.comeBay.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 tokeneBay.OAuth2.on('refreshClientToken',(token)=>{console.log(token)// Store this token in DB});

To manually refresh the user access token use eBay.OAuth2.refreshUserAccessToken(), and for the client token use eBay.OAuth2.obtainApplicationAccessToken(). eBay.OAuth2.refreshToken() picks the right one for you based on the credentials that are set. Keep in mind that you need the 'refresh_token' value set.

consttoken=awaiteBay.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

consteBay=neweBayApi();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: add extra headers with the Axios interceptor

If you want to add a header to every request you can use the Axios interceptor.

importeBayApifrom'ebay-api';consteBay=neweBayApi(/* { your config here } */);eBay.req.instance.interceptors.request.use((request)=>{// Add Headerrequest.headers['X-EBAY-SOA-GLOBAL-ID']='EBAY-DE';returnrequest;});

Handle JSON GZIP response e.g fetchItemAspects

You need a decompress library installed like zlib.

npm install zlib # or yarn add zlib
importeBayApifrom'ebay-api';importzlibfrom'zlib';consttoString=(data: Buffer): Promise<string>=>newPromise((resolve)=>{zlib.gunzip(data,(err,output)=>{if(err)throwerr;resolve(output.toString());});});consteBay=neweBayApi(/* { your config here } */);try{constdata=awaiteBay.commerce.taxonomy.fetchItemAspects(/* categoryTreeId */);constresult=awaittoString(data);console.log(result)}catch(error){console.error(error);}

Handling errors

importeBayApifrom'ebay-api';import{EBayApiError}from'ebay-api/lib/errors';consteBay=neweBayApi(/* { your config here } */);try{constresult=awaiteBay.trading.GetItem({ItemID: 'itemId',});console.log(result);}catch(error){if(errorinstanceofEBayApiError&&error.errorCode===17){// Item not found}else{throwerror;}// in error there is also the field "meta" with the responseif(errorinstanceofEBayApiError&&error.meta?.res?.status===404){// not found// The first errorconsole.log(error?.firstError);}}

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

Controlling Traditional XML request and response

Global parse options (constructor)

Pass parseOptions in the constructor config to apply fast-xml-parser options to all Traditional API responses:

consteBay=neweBayApi({appId: '...',certId: '...',devId: '...',siteId: eBayApi.SiteId.EBAY_DE,parseOptions: {processEntities: {maxTotalExpansions: 20000// raise limit for stores with rich HTML descriptions (default: 10000)}}});

Per-call parseOptions (see below) are merged on top and take precedence.

Per-call options

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

exporttypeOptions={raw?: boolean// return raw XMLparseOptions?: X2jOptions// https://github.com/NaturalIntelligence/fast-xml-parser — merged with global parseOptionsxmlBuilderOptions?: XmlBuilderOptions// https://github.com/NaturalIntelligence/fast-xml-parseruseIaf?: boolean// use IAF in header instead of Bearerheaders?: 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.

Important for Traditional request bodies: when an element has both attributes and text content, the text must go under #value, not #text, because the XML builder is configured with textNodeName: '#value'. For example, use StartPrice: { '@_currencyID': 'EUR', '#value': '20.00' }. If you use #text instead, it will be serialized literally as <#text>...</#text>, which causes eBay XML parse errors that do not clearly point back to the JS-to-XML mapping.

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);});

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

leaderboarded.com

rootle.de

📝 License

MIT.

About

eBay Node API in TypeScript for Node and Browser with RESTful and Traditional APIs. This library aims to implement all available eBay apis.

Topics

Resources

Contributing

Stars

210 stars

Watchers

7 watching

Forks

Releases

Packages

Used by

Contributors

Languages