Skip the install. Get this working in under 2 minutes.
Start a free trial on cloud.anythingmcp.com, add the eMAG Marketplace in one click, then point your AI client (Claude, ChatGPT, Copilot or Cursor) at the generated MCP endpoint. No Docker, no git clone, zero engineering experience required.
Summary
eMAG Marketplace API for sellers on eMAG Romania, Bulgaria and Hungary (and Fashion Days): products and offers, prices and stock, orders with acknowledge and status changes, AWB shipping labels, returns (RMA), categories and characteristics, campaigns and invoices. eMAG must whitelist the calling IP.
Try asking
Example prompts for eMAG Marketplace
Click any prompt to copy it. Paste into Claude, ChatGPT, Cursor, Gemini, Copilot or OpenClaw to run it against this connector.
Claude is AI and can make mistakes. Please double-check responses.
💡 No install? Use cloud.anythingmcp.com directly. Sign in, click Connectors → eMAG Marketplace, paste your credentials, mint an MCP API key and you're done. No Docker, no
git clone, no local server.
eMAG Marketplace + Gemini
eMAG Marketplace API for sellers on eMAG Romania, Bulgaria and Hungary (and Fashion Days): products and offers, prices and stock, orders with acknowledge and status changes, AWB shipping labels, returns (RMA), categories and characteristics, campaigns and invoices. eMAG must whitelist the calling IP.
Prerequisites
See the full setup instructions baked into the connector (visible in the in-app store when you select the connector). The required environment variables for this connector are:
EMAG_API_HOST, EMAG_USERNAME, EMAG_PASSWORD
Step 1 — Get credentials
Setting up takes about 10 minutes, plus the time eMAG needs to whitelist your IP address.
- In the eMAG Marketplace seller area, use (or have the account owner create) a user with API rights.
- IP whitelisting: eMAG only accepts API calls from IP addresses you registered with them. Send eMAG Marketplace support the public IP address this connector calls from: on a self-hosted installation the address of your server, on AnythingMCP Cloud the fixed IPv4 address
104.248.242.235, from which Cloud makes every call. Until eMAG has added it, every call answersYou are not allowed to use this API. - Set
EMAG_API_HOSTto the host of your platform, without a path:https://marketplace-api.emag.ro(Romania),https://marketplace-api.emag.bg(Bulgaria),https://marketplace-api.emag.hu(Hungary),https://marketplace-ro-api.fashiondays.comorhttps://marketplace-bg-api.fashiondays.com(Fashion Days). Each platform is a separate account, so install one connector per country. - Put the API user in
EMAG_USERNAMEand its password inEMAG_PASSWORD(HTTP Basic auth). - Install the connector and run
emag_marketplace_list_vat_rates: a cheap call that confirms credentials and IP.
How the API works: the connector uses eMAG Marketplace API 3 (documentation v4.5.2). Every resource is called as POST <resource>/read, count or save. Reads take filters and paging as top-level fields (currentPage, itemsPerPage at most 100); saves take a list of objects that the connector wraps in data. The reads are marked read-only even though they are POST. Every answer is {"isError": false, "messages": [], "results": [...]}; isError: true is reported as a failed call with the messages. One exception: saving a new product with a documentation problem answers isError: true while the offer is still saved, so the AI reads it back with emag_marketplace_list_product_offers.
What it reads: your products and offers with price, stock per warehouse, handling time, status, documentation and offer validation status, doc_errors, buy button rank and campaign, filtered by id, part number, PNK or status, and counted with the same filters; whether products already exist on eMAG by EAN (up to 100 at once), so your offer is attached to the existing product; categories with their characteristics, allowed values and mandatory flags; VAT rates and handling times; orders with customer, delivery address, products, vouchers, payment method, shipping tax and attachments; package volumetry; AWBs with courier, status history, weight and cash on delivery, as PDF (A4, A5, A6) or ZPL; return requests with reason, pickup address and AWBs; localities, courier accounts, your pickup and return addresses and predefined packages; campaigns with rules and deadlines, eligible offers with the maximum campaign price, campaign badges and the Smart Deals price; the invoices eMAG issues to you and the invoices on your orders.
Orders and shipping: order status 1 new, 2 in progress, 3 prepared, 4 finalized, 0 canceled, 5 returned. The flow is new order, emag_marketplace_acknowledge_order (to 2), emag_marketplace_save_order with status 3, an AWB with emag_marketplace_create_awb, then status 4. emag_marketplace_save_order needs the whole order as read, with only the changed fields different; orders can be edited only in status 2 or 3. Vouchers are part of the order data (vouchers, product_voucher_split). For an AWB the AI picks the courier account, the sender address and the locality ids, then reads the label back.
Returns (RMA): request_status 2 new, 3 acknowledged, 6 received, 7 finalized, 4 refused, 5 canceled. emag_marketplace_save_return moves a return on: 2 to 3 or 5, 3 to 6 or 5, 6 to 4 or 7.
What it writes: offer prices, stock, handling time and status (emag_marketplace_update_offers, emag_marketplace_update_offer_stock), new products with their offer (emag_marketplace_save_product_offers), measurements, order acknowledge and status, order attachments (invoice type 1, warranty type 3), courier unlock, AWBs, return status and campaign proposals. They act on the live store and on real couriers. Before each write the AI shows what changes (offer ids with old and new price or stock, order and new status, AWB data) and waits for your yes. Nothing is switched off at install; an administrator can switch off any write tool the team does not need.
Reading the data: id on offers is your own seller product id (ext_id); part_number_key (PNK) is eMAG's product key. An offer is on sale only with stock above 0, status 1, offer_validation_status 1 and validation_status 3, 9, 11 or 12. Prices are without VAT in the platform currency (RON in Romania, EUR in Bulgaria since 1 January 2026, HUF in Hungary). Dates are YYYY-mm-dd HH:ii:ss in the platform's local time.
Paging and limits: lists return at most 100 per page; the AI counts first and pages with currentPage. Campaign eligible offers use cursor paging with the last ext_id as lastId. Order date filters on count need both ends, at most one month apart. Save calls take at most 50 entities (10 to 50 recommended) and 4000 input fields per request. eMAG allows 12 requests per second for orders and 3 per second for all other resources together; beyond that it answers 429.
Common errors: You are not allowed to use this API. or 403 means the IP is not whitelisted yet. 401 means wrong user name or password, a user without API rights, or a host of another platform than the account. 429 means the rate limit: wait a moment. Other isError answers carry eMAG's messages, for example missing characteristics or an invalid price.
The connector does not open a seller account or register your IP with eMAG, and it does not work across platforms: one connector serves one country.
Step 2 — Install the adapter
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
Step 3 — Add the connector in Gemini
Your server URL: in AnythingMCP, open MCP Servers → the server this connector is on, and copy its URL (
https://cloud.anythingmcp.com/mcp/…). Use it wherever this guide showsYOUR_SERVER_ID.
Gemini CLI reads MCP servers from ~/.gemini/settings.json (on Windows %USERPROFILE%\.gemini\settings.json). Add:
{
"mcpServers": {
"anythingmcp": {
"httpUrl": "https://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID",
"headers": { "X-API-Key": "YOUR_MCP_API_KEY" }
}
}
}
- Create an MCP API key in AnythingMCP under MCP Servers → your server → API keys, and paste it in place of
YOUR_MCP_API_KEY. - Save the file and restart
gemini. - Run
/mcpinside Gemini CLI (orgemini mcp listin your shell):anythingmcpshould show as connected. - Start prompting: Gemini CLI can now call the
eMAG Marketplacetools.
Available tools
| Tool | What it does |
|---|---|
emag_marketplace_list_vat_rates | List the VAT rates of the platform with their vat_id, which every offer you save must carry |
emag_marketplace_list_handling_times | List the handling time values (days until you hand an order to the courier) the platform accepts for the handling_time of an offer |
emag_marketplace_list_categories | Read eMAG categories |
emag_marketplace_count_categories | Count the eMAG categories you may read, to know how many pages emag_marketplace_list_categories has |
emag_marketplace_list_product_offers | Read your products and offers: price, stock per warehouse, handling time, status (1 active, 0 inactive, 2 end of life), documentation and… |
emag_marketplace_count_product_offers | Count your products and offers with the same filters as emag_marketplace_list_product_offers, e.g. how many are inactive or have an invalid… |
emag_marketplace_find_products_by_ean | Check whether products already exist on eMAG by EAN (up to 100 at once): part_number_key, name, brand, category, whether you may add an… |
emag_marketplace_list_orders | Read orders with customer, delivery address, products (price, quantity, status, campaign), vouchers, payment method, shipping tax and… |
emag_marketplace_count_orders | Count orders with the same filters as emag_marketplace_list_orders, e.g. how many new (status 1) orders wait |
emag_marketplace_list_order_attachments | Read the attachments of an order (invoices, warranties, manuals, AWBs) with their type and URL |
emag_marketplace_get_order_volumetry | Read the weight and dimensions eMAG knows for each product of an order, to fill the packages of an AWB |
emag_marketplace_get_awb | Read an AWB (shipping label) issued through the API: order or return id, AWB number and barcode, courier, status history, weight and cash… |
emag_marketplace_get_awb_pdf | Download an AWB issued through the API as a PDF in A4, A5 or A6 (or as ZPL), to print the shipping label |
emag_marketplace_get_awb_zpl | Read an AWB issued through the API in ZPL (base64), for thermal label printers |
emag_marketplace_list_returns | Read return requests (RMA) with order, products, return reason, pickup address, AWBs and status (1 incomplete, 2 new, 3 acknowledged, 4… |
emag_marketplace_count_returns | Count return requests with the same filters as emag_marketplace_list_returns, e.g. how many new (2) returns wait |
emag_marketplace_list_localities | Read localities (cities with their region, zip code and emag_id) for the sender and receiver of an AWB |
emag_marketplace_list_courier_accounts | List your courier accounts (id, courier name, type order or return, lockers or offices, status) to choose the courier_account_id of an AWB |
emag_marketplace_list_addresses | List your pickup, return and invoice addresses (address_id, type, locality, street) to use as sender or return address of an AWB or return |
emag_marketplace_list_awb_packages | List your predefined AWB packages (label, length, width, height, weight, default), used when issuing AWBs without explicit packages |
emag_marketplace_list_campaigns | Read the eMAG campaigns (Black Friday, discount, voucher, multi deals) with start, end and offer deadline and their participation rules… |
emag_marketplace_list_campaign_categories | Read the categories eligible for campaigns with restricted categories (participationRules.restrictedCategories true): id, name and parent.… |
emag_marketplace_list_campaign_eligible_offers | Read your offers that may join a campaign: current price, lowest price of the last 30 days (cmmp), maximum campaign price, stock… |
emag_marketplace_get_offer_campaign_badges | Read the campaign badges (Black Friday, Genius Days and others) active or planned for one of your offers, with label text and dates. eMAG… |
emag_marketplace_check_smart_deals_price | Get the price an offer must reach to qualify for the Smart Deals badge |
emag_marketplace_list_invoice_categories | List the categories of the invoices eMAG issues to you (e.g |
emag_marketplace_list_invoices | Read the invoices eMAG issued to you (commission, services and others): number, date, lines, totals with and without VAT and currency |
emag_marketplace_list_customer_invoices | Read the invoices issued to your customers on eMAG orders (normal or storno): order id, number, date, lines and totals |
emag_marketplace_update_offers | Update existing offers only (light offer API, up to 50 per call): price, recommended, minimum and maximum price, stock and handling time… |
emag_marketplace_update_offer_stock | Set the stock of one offer per warehouse (PATCH, stock only) |
emag_marketplace_save_product_offers | Create new products with their offer, or update offers, up to 50 per call |
emag_marketplace_save_measurements | Save the volume measurements of products (length, width, height in millimetres, weight in grams) |
emag_marketplace_acknowledge_order | Acknowledge a new order: moves it from 1 (new) to 2 (in progress) and stops eMAG notifying you about it |
emag_marketplace_save_order | Update an order: set status 3 (prepared), 4 (finalized) or 0 (canceled with reason_cancellation), remove or add products, or storno a… |
emag_marketplace_unlock_courier | Unlock the courier selection of an order so a different courier account can be used for its AWB |
emag_marketplace_save_order_attachments | Attach documents to orders by URL: invoice (type 1), warranty (type 3, with order_product_id) and other types |
emag_marketplace_create_awb | Issue an AWB (shipping label) with your eMAG courier account for an order or a return: sender, receiver (with locality_id), parcels or… |
emag_marketplace_save_return | Update a return request (RMA), mainly its request_status: 2 new to 3 acknowledged or 5 canceled, 3 to 6 received, 6 to 4 refused or 7… |
emag_marketplace_propose_campaign_offers | Propose your offers in a campaign with the campaign price (and voucher discount, maximum quantity per order or date intervals where the… |
Example prompts
- "How many of our eMAG offers are inactive or have an invalid offer validation status?"
- "List the new eMAG orders (status 1) of today with products and payment method."
- "Lower the price of offer 10452 to 189.90 RON without VAT and set its stock to 25. Show me old and new values first."
- "Issue an AWB for order 412398765 with our courier account and give me the A6 PDF. Show me the AWB data first."
- "Which of our offers are eligible for the Black Friday campaign, and what is their maximum campaign price?"
FAQ
Where does Gemini CLI look for MCP servers? In ~/.gemini/settings.json for your user, or in .gemini/settings.json inside a project. gemini mcp list shows each server and whether it connects.
Next steps
- Connector landing page
- Connect to Claude
- Connect to ChatGPT
- Connect to Cursor
- Connect to Meta Muse
- Connect to Microsoft Copilot
Was this guide helpful?