Exclusive module
This module is exclusively for partners operating with marketplace channels and is not available to all developers.
If you are interested in using functions from this API, contact the support team.
Overview
Use the Item API to send and manage products. iFood processes the data based on availability rules before displaying them in the app.
Integration strategy (POST vs PATCH)
WARNING: Use POST only to create items. Incorrect use for updates degrades integration performance.
To optimize performance, use the HTTP methods as described below:POST method (Creation):
Use ONLY to register new items or reactivate inactive items
Do not resend the complete catalog if there are no new products
PATCH method (Update):
Use to update existing items (price, inventory, details)
Send only the fields that have changed
Processing and volumetry limits
To avoid processing queues and ensure fast data updates, follow our volumetry rule:
Golden rule: Send at most 25% of your total catalog items every 30 minutes.
Example: If your catalog has 10,000 items, send up to 2,500 items per 30-minute window.
Blocking: If you exceed the limit, the API will return a 429 Too Many Requests error. If you receive this status, stop sending requests and wait for the next time window to begin.
New partners: During the first 30 days of integration, you can send up to 50,000 items every 30 minutes to set up your initial catalog quickly. After this period, the standard 25% rule applies.
barcode: EAN (European Article Number) or internal scale code
name: Product name
Behavior:
null values overwrite existing data
The reset=true parameter deactivates products absent from the payload (destructive action)
Fields not sent will receive default values (null, empty string, 0, etc.)
NOTE: If the active and prices.price fields are not sent, they will receive the default values false and 0, respectively. This will cause the item to not be available in the catalog.
1.1. Reset parameter
When you send reset=true, iFood automatically deactivates all products absent from the payload.
WARNING: This action is destructive.
When to use:
Clean test products from the database
Remove improperly integrated items
BehaviorIf no product is identified for deactivation, the process will not be executed.
Daily limit
You can send 1 load with reset=true per day per partner (merchantId).Quota renewalThe quota is automatically reset every day at midnight (00:00:00 GMT-3) in Brasilia time (BRT).Blocking excess requestsIf you send more than one reset request on the same day, the API rejects the request and returns the status 429 Too Many Requests.Response headerThe error response includes the Retry-After header. This header informs the time in seconds until midnight, when the new quota will be released.Error response example
HTTP/1.1 429 Too Many RequestsRetry-After: 43200Content-Type: application/json{ "error": "TooManyRequests", "message": "Daily reset quota exceeded."}
429 Too Many Requests: Request limit exceeded or when attempting to send more than one load with reset=true on the same day.
500 Server Error: Server error
Request fields:
Field
Type
Required
Description
barcode
string
Yes
EAN or internal scale code
name
string
Yes
Product name
plu
string
No
Internal PLU code
active
boolean
No
Defines whether the item is active for sale
details
object
No
Product details (categorization, brand, volume, unit, image, description)
prices
object
No
Object containing price and promotionPrice
scalePrices
array
No
Array with tiered pricing rules by quantity
inventory
object
No
Object containing stock (quantity in stock)
multiple
object
No
Object for configuring multiples (iFood Shop exclusive) with originalEan and quantity
channels
array
No
Sales channels: ifood-app, ifood-shop
PATCH Item Integration
Description: Partial update recommended if the product has been sent previously and not all fields require changes. Allows sending only the fields you want to update.cURL example:
Immediate application: Promotions in this module do not use scheduling (start/end dates). The discount takes effect immediately after submission.Update: To change a promotional value, resend the item via PATCH with the new price.Removal: To end a promotion, send the promotional value fields as null.
Validation and impact
Verification: Confirm the discount application in the Catalog section of the Partner Portal.Order module: Received orders will automatically contain the final price with the applied discount (promotional or wholesale price).
'FROM-TO' mechanics
Configure promotional prices by sending the original value and the discounted value.How to configure:
prices.price: Original value ("FROM" price)
prices.promotionPrice: Promotional value ("TO" price)
Rules:
The discount must be greater than 5%
To remove the promotion, send prices.promotionPrice: null
For partners who already integrate their items through the SiteMercado Service API, the migration to the Merchant API brings many similarities that facilitate the integration change.