InfiPlex Knowledge Base

Aug 14 2026
 OMSMercado Libre

Mercado Libre Global Selling API: The Complete Guide

Mercado Libre Global Selling opens Mexico, Brazil, Chile, and Colombia through one cross-border account, and the API behind it is stricter than most. A product exists as a parent item plus a child item per marketplace, the account splits into two user levels, and the same status call does different things depending on which ID you send. This guide covers that structure, and where InfiPlex handles it for you instead.

Jump to What You Need

If You Want To… Jump To
Understand why one product has a different item ID on every site Why Item IDs Differ Per Site
Pause or reactivate a listing, on one marketplace or all of them How Pausing Actually Works
Pause many items at once without a bulk endpoint Pausing Items in Bulk
Find every paused or active listing across your account Finding Items by Status
Remove a listing from one marketplace or retire it entirely Deleting Global Selling Items
Skip the build and run Mercado Libre as a connected channel Running Mercado Libre Through InfiPlex

Why Does One Product Have a Different Item ID Per Site?

Every question about mismatched IDs traces back to one design decision. Global Selling splits a cross-border account into two user levels, and both surface in the same user_id field depending on which resource returned them.

Level Site ID What It Does
Merchant ID
Global user, parent
CBT Owns authentication and generates the main access token. Manages the local users beneath it.
Seller ID
Marketplace user, child
MLM, MLB, MLC, MCO Publishes items and receives orders on one specific marketplace. Tied to a logistics type.

One access token authenticates as the merchant and reaches every child seller underneath it. The item tree mirrors that hierarchy: a parent item carrying a CBT prefix, plus one child item per marketplace where the product is published.

GET https://api.mercadolibre.com/marketplace/items/CBT2796239245

{
  "item_id": "CBT2796239245",
  "seller_id": 2560656533,
  "site_id": "CBT",
  "parent_user_product_id": "CBTU3667934350",
  "site_items": [
    {
      "item_id": "MCO3380520068",
      "seller_id": 2565546854,
      "site_id": "MCO",
      "logistic_type": "remote"
    }
  ]
}

The site_items array is the map. Each entry pairs a marketplace item ID with the child seller ID that owns it, and anything targeting a single country needs the ID from this array rather than the parent. Store the parent CBT ID against your own SKU and keep the site item IDs as children, because a system keyed only on marketplace IDs loses the ability to act across all countries at once. InfiPlex builds that mapping on connection, so one SKU covers the whole tree.

Sites are MLM Mexico, MLB Brazil, MLC Chile, and MCO Colombia. Listings are created in English at the CBT level with prices in US dollars, then display in Spanish for Mexico, Colombia, and Chile, and in Portuguese for Brazil.

How Does Pausing Actually Work?

Global and marketplace items accept two status values, active and paused. A third state, inactive, means the listing is closed and accepts no further action. The scope of a change depends entirely on which ID goes in the URI and what goes in the body.

Every site at once. Send the parent CBT ID with status alone.

PUT https://api.mercadolibre.com/global/items/CBT2796239245
Authorization: Bearer $ACCESS_TOKEN

{ "status": "paused" }

One marketplace, addressed through the parent. Add the site and logistics type to the body.

PUT https://api.mercadolibre.com/global/items/CBT2796239245
Authorization: Bearer $ACCESS_TOKEN

{
  "site_id": "MLC",
  "logistic_type": "remote",
  "status": "paused"
}

One marketplace, addressed directly. Put the marketplace item ID in the URI instead.

PUT https://api.mercadolibre.com/global/items/MLC1780459445
Authorization: Bearer $ACCESS_TOKEN

{ "status": "paused" }

Reactivating uses the identical shapes with active in place of paused. Status also moves on its own with stock: setting available_quantity to 0 pauses the listing with an out_of_stock sub status, and raising it above 0 returns the listing to active. Read the sub status before treating a paused listing as one somebody paused deliberately.

In the InfiPlex OMS, pausing and reactivating are ordinary actions applied per marketplace or across every country at once, from the same screens that handle Amazon, Walmart, and every other connected channel.

How Do I Pause Items in Bulk?

Mercado Libre publishes no list-accepting bulk status endpoint for Global Selling items. The efficiency comes from scope instead of batching, which covers most of what teams reach for a bulk endpoint to do.

  • All countries for one product in one call. PUT the parent CBT ID with status alone and every child listing follows.
  • Fully Managed sellers. PUT to the user-products resource. Paused propagates across all sites, active reactivates across all sites, and the ID accepts both the U{id} and CBTU{id} formats.
  • Many products. Iterate at the parent level with controlled concurrency. One request per product rather than one per product per country cuts call volume by the number of marketplaces in play.
PUT https://api.mercadolibre.com/global/user-products/U3796433980
Authorization: Bearer $ACCESS_TOKEN
Content-Type: application/json

{ "status": "paused" }

Bulk status changes across products, marketplaces, or an entire catalog run as one action in InfiPlex, with the request fan-out, concurrency limits, and retry handling managed on the InfiPlex side.

Search runs against the user level that owns the listings, which is where the parent and child distinction matters again. Global listings use the merchant ID:

GET https://api.mercadolibre.com/marketplace/users/1684344969/items/search?status=paused
Authorization: Bearer $ACCESS_TOKEN

Marketplace listings use the child seller ID:

GET https://api.mercadolibre.com/marketplace/users/625822648/items/search?status=active
Authorization: Bearer $ACCESS_TOKEN

Other filters on the same search resource:

  • seller_sku returns items matching one of your own SKU values
  • missing_product_identifiers=true returns items with no product identifier loaded or submitted
  • missing_product_identifiers=false returns items that do have identifiers uploaded or sending
  • search_type accepts search or scan, defaulting to search

Product identifier filtering applies to listings selling in Mexico, Chile, and Brazil. Inactive site listings carry a deleted sub status, which is available as a filter. Mercado Libre listings appear in the same InfiPlex product and inventory views as every other channel, filterable by status, SKU, and warehouse without composing search calls against two different user levels.

How Do I Delete a Global Selling Item?

Deletion runs bottom up and the order is enforced. Move the marketplace item to a paused or closed state first, then PUT the parent CBT ID with the target site, its logistics type, and the deleted flag. Repeat for each marketplace where the product is listed.

PUT https://api.mercadolibre.com/global/items/CBT946690995
Authorization: Bearer $ACCESS_TOKEN

{
  "site_id": "MLM",
  "logistic_type": "remote",
  "deleted": true
}

Once every marketplace item is deleted, Mercado Libre's automated processes remove the parent CBT item. That final step runs on their side and is not available through the API.

What Changes Should I Watch For?

Change What It Means for an Integration
PUT endpoints moving under /global Mercado Libre has stated that adding the /global segment to PUT item calls becomes mandatory. Updating early avoids a forced migration later.
New Global Listing publication flow The newer flow creates global and local items in a single step. New development should build against it directly.
Per-site pricing Set a price per marketplace item through net_proceeds, or leave it unset and the global item price replicates down.
Price automation interaction A manual price PUT immediately disables any active price automation on that listing.
Fully Managed price direction The global_net_proceeds field accepts reductions. An increase returns an error.

Publication errors that come up repeatedly: pictures and variations belong inside each object in the sites_to_sell array rather than at the root of the JSON; replication to local marketplaces requires the Global Selling flow plus the activation process for each target site; fulfillment listings reject explicit shipping configuration because Mercado Libre manages it; and each variation accepts exactly one SELLER_SKU value.

Mercado Libre's developer documentation remains the authoritative reference and endpoint behavior does change. Tracking those deprecations, endpoint moves, and schema changes is ongoing work for every channel connected directly, and InfiPlex absorbs that maintenance across 130+ marketplaces, carts, ERPs, and EDI trading partners.

Why Run Mercado Libre Through InfiPlex Instead?

Everything above is one marketplace's answer to cross-border listing. Amazon, Walmart, Wayfair, Temu, and every EDI retailer solve the same problem their own way, with their own IDs, their own status vocabulary, and their own quirks. Building and maintaining each one directly is a permanent engineering commitment that grows with every channel added.

InfiPlex connects Mercado Libre Global Selling as a standard channel. Listings, order pulls, inventory sync, and shipping run through the same Order Management System handling every other connected marketplace, cart, ERP, and EDI trading partner, so one connection covers the whole set. Pricing starts at $49.99 a month and is published in full, support is USA based, and any channel not yet on the list gets built at no additional cost on Growth plans.

Mercado Libre Global Selling Questions

Why does my product have a different item ID on each marketplace?
Because Global Selling creates one parent item at the CBT level plus one child item per marketplace. The parent carries a CBT prefix and each child carries its own site prefix, such as MLM or MCO. The site_items array on the parent maps them together.

How do I pause a Mercado Libre listing across every country at once?
Send a PUT to the global items resource using the parent CBT item ID with status set to paused, and no site_id in the body. Every child listing follows. Fully Managed sellers can PUT the same status to the user-products resource instead.

Is there a bulk pause endpoint in the Mercado Libre API?
No list-accepting bulk status endpoint is published. Pausing at the parent CBT level is the closest equivalent, since one request covers every marketplace for that product. For many products, iterate at the parent level with controlled concurrency.

Why did my listing pause itself?
Setting available_quantity to 0 automatically moves the listing to paused with an out_of_stock sub status, and raising quantity above 0 returns it to active. Check the sub status before assuming a person paused it.

What statuses can a Global Selling item have?
Active and paused are the two settable values. Inactive means the listing is closed and no further action is possible on it.

Do I need to build against the Mercado Libre API at all?
No. InfiPlex connects Mercado Libre Global Selling as a standard channel, covering listings, orders, inventory, and shipping alongside every other marketplace, cart, ERP, and EDI trading partner you sell through.

Need Something This Doesn't Cover?

Contact Us and we'll take a look. Support is included with every InfiPlex plan.