Documentation Mercado Libre
Check out all the necessary information about APIs Mercado Libre.
Documentation
Manage Moderations
For more information, check Mercado Libre's publishing policies (Argentina, Brazil, Mexico, Chile, Colombia and Uruguay).
Consult moderations
With the /moderations/last_moderation resource you can manage moderated items from notifications or active queries. We recommend identifying the reason and remedy and ensuring actionable steps for sellers according to the type of moderation received.
Recommended flow

Use this resource to get the last moderation applied to an item:
Call:
curl -L -X GET -H 'Authorization: Bearer $ACCESS_TOKEN'
'https://api.mercadolibre.com/moderations/last_moderation/$MODERATION_REFERENCE_ID'
Response:
[
{
"name": "POOR_QUALITY_THUMBNAIL",
"id": "7123400815",
"date_created": "2021-04-14T10:47:05.270-0400",
"evidences": [
{
"text_matched": "604505-MLA82848669458_022025",
"section_name": "pictures"
},
{
"text_matched": "MLA29272",
"section_name": "category"
}
],
"wordings": [
{
"type": "REMEDY",
"value": "Corrija sua publicação para vender no Mercado Libre."
},
{
"type": "REASON",
"value": "Seu anúncio foi pausado porque, aparentemente, descumpre nossas Políticas de Cadastro de Anúncios."
}
]
}
]
Response fields
- name: name of the filter that generated the moderation
- id: unique identifier of the active moderation. Once the moderation is resolved, it no longer exists and should not be used as a persistent reference.
- date_created: date the moderation was created. Format: YYYY-MM-DD
- evidences: reference to where the infraction was found
- text_matched: Specific value or text detected as an infraction (for example, an image ID or category).
- section_name: Section of the content where the infraction was found. For example: pictures, category.
- wordings: Explanatory messages associated with the moderation
- type: REASON: reason for the infraction | REMEDY: suggested action to correct it
- value: Message text for the user, explaining the reason or the action to take.
For listings that have been removed and cannot be modified or recovered due to a moderation, the response will be:
[
{
"name": "DENYLIST",
"id": "7123400816",
"date_created": "2021-04-14T10:47:05.270-0400",
"evidences": [
{
"section_name": "title",
"text_matched": "Apple - Iphone-BDM-BDS"
}
],
"wordings": [
{
"type": "REASON",
"value": "Seu anúncio foi cancelado porque a Apple confirmou a denúncia por falsificação."
}
]
}
]
Only the REASON will be received, since the moderation has no REMEDY
Filter moderated items of a user
To consult listings with active moderations, you can check those with:
- status: under_review
- sub_status:
- warning
- waiting_for_patch
- held
- pending_documentation
- forbidden
- picture_downloading_pending
→ Filtering by status=pending
Call:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN'
https://api.mercadolibre.com/users/$USER_ID/items/search?status=pending
Example:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN'
https://api.mercadolibre.com/users/123456/items/search?status=pending
Response:
{
"seller_id": "123456",
"query": null,
"paging": {
"limit": 50,
"offset": 0,
"total": 8
},
"results": [
"MLC951993111",
"MLC951803222",
"MLC949619333",
"MLC949664444",
"MLC947745555",
"MLC947725666",
"MLC947725777",
"MLC947699888"
],
"orders": [...]
}
Once you have the items you want to consult, you can do it directly on /last_moderations by adding the suffix.
Status, substatus and moderation tags
| Status | Substatus | Tag | Detail |
|---|---|---|---|
| Closed | moderation_penalty | Item with no sales. | |
| Paused | picture_downloading_pending | Paused for photo upload with URL. | |
| Paused | moderation_penalty | Unusual price change + item with no sales. | |
| Under review | Waiting_for_patch | Item paused since violations were detected and the user must modify it to reactivate. | |
| Under review | Forbidden | Item disabled by Mercado Libre. Replaces Inactive. | |
| Under review | Held | Inactive. Under review by Mercado Libre. | |
| Under review | pending_documentation | Item reported for Brand Protection Program. | |
| Under review | suspended, suspended_for_prevention | Suspension of items with risk of fraudulent transactions. | |
| Active | poor_quality_thumbnail | Low quality photo. | |
| Active | moderation_penalty | Item with a penalty. You can modify status, blur or others. |
Learn more about the flow and statuses of listings.
Moderations history
With the /infractions resource you can access the history of infractions detected on items, questions, answers, and product reviews.
Recommended flow

Consult user infraction history
With the following query you can see infractions with final status (forbidden) and those with temporary status (waiting_for_patch, held, pending_documentation).
Keep in mind that items removed due to duplicates are not included.
Query parameters:
- related_item_id: ID of the listing associated with the infraction.
- element_id: ID of the moderated element.
- element_type: Type of the moderated element. ITM (item), REV (review), QUE (question/answer).
- date_created_since: Start date for filtering. Format: YYYY-MM-DD
- date_created_to: End date for filtering. Format: YYYY-MM-DD
- language: You can request the reason and remedy texts in Spanish or Portuguese. The default language is English. ES (Spanish) or PT (Portuguese).
- limit: Number of infractions returned. Value is 1 to 20. Default is 20.
- offset: Offset for pagination.
- sort: Sort results by creation date ascending or descending. Example
date_created_asc,date_created_desc.
Call:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN'
https://api.mercadolibre.com/moderations/infractions/$USER_ID?date_created_since=YYYY-MM-DD&limit=2
Example:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN'
https://api.mercadolibre.com/moderations/infractions/288230000?date_created_since=2023-09-01&limit=2
Response:
{
"infractions": [
{
"id": "1378710000",
"date_created": "2023-09-11T10:37:45.107-0400",
"user_id": "288230000",
"related_item_id": "MLA135230000",
"element_id": "MLA135200000",
"element_type": "ITM",
"site_id": "MLA",
"filter_subgroup": "DESC",
"reason": "La pausamos porque detectamos un cambio inusual en su precio. Verificá el valor antes de reactivarla. Una vez que lo hagas, quedará activa en unos minutos.",
"remedy": "Inactiva para revisar
La pausamos porque detectamos un cambio inusual en su precio. Verificá el valor antes de reactivarla. Una vez que lo hagas, quedará activa en unos minutos."
},
{
"id": "1366077111",
"date_created": "2023-09-03T13:02:14.109-0400",
"user_id": "288230000",
"related_item_id": "MLA138621111",
"element_id": "MLA138621111",
"element_type": "ITM",
"site_id": "MLA",
"filter_subgroup": "PQT",
"reason": "Tu foto de portada no tiene fondo blanco puro. Corrígelo para reactivar tu publicación.",
"remedy": "Tu foto de portada aún tiene problemas, corrígela para reactivar tu publicación. El fondo de esta foto debe ser blanco puro, no uses texturas o elementos de fondo!"
}
],
"paging": {
"offset": 0,
"limit": 2,
"total": 3
},
"sorting_type": "date_created_desc"
}
Response parameters:
- id: Unique identifier of the infraction.
- date_created: Date when the infraction occurred.
- user_id: The user who committed the infraction.
- related_item_id: Unique identifier of the listing related to the element that has the infraction. If the infraction is on a listing, this attribute will be the same as the element_id attribute.
- element_id: Unique identifier of the element that has the infraction. It depends on the element_type attribute.
- element_type: Type of element, values can be: ITM (listing), QUE (questions and answers), and REV (product reviews).
- subgroup: This field allows you to identify, group, and summarize the infractions belonging to different filter groups.
| filter_subgroup | Moderation | Solution |
|---|---|---|
| DOMAIN | Misclassified listings | Use the category predictor. |
| PQT | Photo quality | Learn how to improve images. |
| DESC | Unusual price change | Verify the price and activate your listing. |
| OPT_OBEY | Catalog | Create your listing in Catalog. |
| CATALOG_ONLY_RESTRICTED | Catalog | Create your listing in Catalog, exclusive catalog category. |
| OPT_OUT_REPRODUCTIZAR | Catalog | You need to republish in Catalog, Item went through the OPT OUT flow. |
| COMPATS | Compatibilities | Offer compatibility to Auto Parts products. |
| DUPLIS | Duplicate listings | We avoid repeated listings and invite sellers to modify them using variations in the products. Learn the benefits of creating variations. |
| LINKS, DP | Contact information | Avoid including contact information in listings. |
| BRAND_PROTECTION | Counterfeit products and improper brand use | Learn how you can publish without infringing intellectual property. |
| CLASI | moderations vehicles, real estate, services | Learn what to consider to list vehicles or Real Estate. |
- reason: text (html) that describes the reason and policy that was violated.
- remedy: text (html) that indicates the action, only in cases where it is recoverable.
Moderations for VIS
The following table lists possible moderations that apply to the different business units related to vehicles and real estate (VIS), as well as possible actionables and some recommendations to correct the moderation:
| BU | Type | Status | Reason | Remedy | Recommendations |
|---|---|---|---|---|---|
| VIS-Motors | Duplicate plate | under_review, Substatus: waiting_for_patch | We paused your listing because it had a plate equal to another vehicle. | Modify it and add the correct information to reactivate it. | Give actionable to the seller so they can review their items and correct the plate field. |
| VIS-Motors | Invalid plate | under_review, Substatus: waiting_for_patch | We paused your listing because the plate is incorrect and does not match the brand, model, and year of the vehicle. | Add the correct information to reactivate it. | Give actionable to the seller so they can review their items and correct the plate field. |
Next: Moderations with paused.