What the API is for
EasyChannel keeps your catalog, listings, and orders in one place. The API opens that same data to your own code, so you can move information in and out of EasyChannel without anyone clicking through the app.
Typical reasons sellers pick it up:
Pushing stock or price changes from a warehouse system or ERP into EasyChannel
Pulling orders into an external fulfilment or reporting tool
Creating products in bulk from a source you already maintain elsewhere
Wiring EasyChannel into an internal dashboard or a workflow tool such as n8n
It is a standard REST API. Requests and responses are JSON over HTTPS, so any language or automation platform that can make an HTTP call will work.
Before you start: you need admin rights on the EasyChannel account. If the API tile is missing or greyed out, ask whoever owns the account to generate the token for you.
Interactive reference: api.easychannel.com/docs/easychannel
Where to get your token
Sign in at easychannel.com/login
Click your account name at the bottom of the left sidebar and choose Integrations (or open Settings > Integrations)
Stay on the All Integrations tab
Scroll to the tile marked API EasyChannel
Click the tile. The dialog shows your token with a Copy button next to it
Copy it and store it somewhere safe, such as a password manager or an environment variable
That single token covers your whole EasyChannel company, including every marketplace account connected to it.
Treat it like a password. Anyone holding this token can read and change your EasyChannel data. Never paste it into a public repository, a shared document, or a support ticket. If it leaks, reopen the same dialog and generate a new one, which switches the old one off immediately.
Authenticating your requests
Send the token as a header on every call:
Authorization: Bearer YOUR_TOKEN_HERE
That is the whole setup for tokens generated inside the app. There is no separate handshake and no OAuth step to complete first.
A quick check that it works:
curl -X GET "https://api.easychannel.com/v1/sellers" \ -H "Authorization: Bearer YOUR_TOKEN_HERE"
A list of your connected marketplace accounts comes back if the token is good.
Building an app for other sellers? Then use OAuth 2.0 instead, so each seller authorises you rather than handing over a token. Send them through GET /auth/authorize, swap the returned code at POST /auth/token, and use the resulting access token in the same Authorization header. GET /auth/me tells you whether a token is still valid. The full flow is in the API documentation.
What the API covers
Grouped by area, so you know where to look in the reference:
Products. List and search your catalog, create products with variants and identifiers, replace a product outright or patch single fields such as price or quantity, and manage categories and tags.
Listings. The per-channel, per-account version of a product. Filter by channel, seller account, SKU, or status to see what is actually live where.
Orders. Pull orders for a seller account, filtered by status, channel, SKU, or marketplace order ID. Tag them for your own workflows.
Sellers. List the marketplace accounts connected to your company and read their business policies.
Mapping and SKU templates. Read how your product fields map onto each channel, and manage the templates that generate SKUs.
CSV imports. Check the status of import jobs and read back the rows that failed, with the reason for each.
Bulk actions. Queue large batch operations, publishing included, and poll them until they finish.
Webhooks. Register a URL to be notified when something happens, instead of asking repeatedly.
Health checks. GET /health/live and GET /health/ready confirm the service is up.
The reference at api.easychannel.com/docs/easychannel is generated from the running API, so it always matches what is live. Every endpoint can be tried straight from that page.
Rate limits
Requests are throttled so one integration cannot slow the platform down for everyone. The limits that apply to your account are listed in the API documentation. To stay comfortably inside them:
Handle a rejected request as a normal outcome, not a crash
Back off and retry after a pause rather than hammering the endpoint
Ask for a page of records instead of looping one record at a time
Use webhooks for anything you would otherwise poll on a timer
If your integration genuinely needs more headroom, get in touch and describe the workload.
When something goes wrong
"Invalid API token"
Check the whole token was copied, with nothing trimmed from either end
Check the header reads
Authorization: Bearer YOUR_TOKEN, with exactly one space afterBearerIf the token was regenerated at any point, the previous one stopped working. Copy the current one from the same dialog
Confirm you are pointing at
https://api.easychannel.com
A call returns nothing
Most order and listing calls are scoped to one marketplace account. Run GET /v1/sellers first, take the seller ID you need, and pass it on the request.
An endpoint you need does not exist
Open Settings > Integrations > API EasyChannel and use the Need more API endpoints? button. The request reaches the EasyChannel team directly and feeds into what gets built next.
Habits worth keeping
Store the token in an environment variable or secrets manager, never in the code itself
Try new calls against a small set of products before letting them loose on the whole catalog
Log the response of every write, so you can retrace what changed and when
Watch how many calls you actually make. Most integrations request far more than they need
Prefer a partial update over a full replace when you only mean to change one field

