// docs

iFood IDP (Detalhes do item)

Extrai a IDP (item detail page) de um item do cardapio do iFood, incluindo complementos, campo de observacao e snapshot do merchant.

Nota importante: alguns campos podem retornar null em produção, dependendo da página de origem. Nesta documentação, os exemplos de output são preenchidos intencionalmente com valores não nulos para facilitar integração.

Chamada HTTP

cURL
curl -X POST https://api.geckoapi.com.br/v1/extract \
  -H "Authorization: Bearer SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -d '{
  "target": "ifood.com.br",
  "type": "idp",
  "url": "https://ci-marketplace.ifood.com.br/v1/showcase/dish?actionAccessPoint=merchantMenu&alias=SHOWCASE_CATALOG_ITEM_PROGRAMS&channel=IFOOD&deliveryMethodCode=DEFAULT&itemId=642fbf56-5480-47d8-837a-94317505e121&latitude=-24.723811&longitude=-53.72585&merchantId=cf787eb5-3689-4a46-b43c-2ceda85d1a76"
}'

Chamada MCP

A mesma seam também aparece no MCP hospedado como uma tool dedicada. Os argumentos reaproveitam os campos do extract, mas target e type já ficam fixos pela tool.

Ver guia completo do MCP

Endpoint

POST /v1/mcp

Tool name

ifood_com_br_idp

Auth

Bearer ou X-API-Key

ifood_com_br_idp tools/call
{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "ifood_com_br_idp",
    "arguments": {
      "url": "https://ci-marketplace.ifood.com.br/v1/showcase/dish?actionAccessPoint=merchantMenu&alias=SHOWCASE_CATALOG_ITEM_PROGRAMS&channel=IFOOD&deliveryMethodCode=DEFAULT&itemId=642fbf56-5480-47d8-837a-94317505e121&latitude=-24.723811&longitude=-53.72585&merchantId=cf787eb5-3689-4a46-b43c-2ceda85d1a76",
      "executionId": "exec_example_123"
    }
  }
}

Possibilidades de input

Campos suportados nesta API do POST /v1/extract, com regras específicas de obrigatoriedade e condicionais.

Campo Tipo Status Regra Default Exemplo
url
URL alvo da extração. Para alguns PLPs pode ser omitida quando a API monta a URL a partir de outros campos.
string (URL) Obrigatório URL do endpoint https://ci-marketplace.ifood.com.br/v1/showcase/dish com merchantId e itemId na query string. Latitude/longitude podem existir na URL original, mas o worker normaliza o requestUrl para a variante canonica. - https://www.mercadolivre.com.br/p/MLB123456
target
Fonte alvo da extração.
enum Obrigatório Sempre obrigatorio no payload e deve ser ifood.com.br. - mercadolivre.com.br
type
Tipo da extração: pdp, idp, plp, review ou places.
enum Obrigatório Sempre obrigatorio no payload e deve ser idp. - pdp

Exemplos de request

IDP por detailUrl

Use a URL do endpoint ci-marketplace/v1/showcase/dish. Em fluxos com iFood PDP, essa URL normalmente vem do campo menu[].items[].detailUrl retornado para cada item do cardapio, mas a API pode ser chamada diretamente fora de workflows.

IDP por detailUrl
{
  "target": "ifood.com.br",
  "type": "idp",
  "url": "https://ci-marketplace.ifood.com.br/v1/showcase/dish?actionAccessPoint=merchantMenu&alias=SHOWCASE_CATALOG_ITEM_PROGRAMS&channel=IFOOD&deliveryMethodCode=DEFAULT&itemId=642fbf56-5480-47d8-837a-94317505e121&latitude=-24.723811&longitude=-53.72585&merchantId=cf787eb5-3689-4a46-b43c-2ceda85d1a76"
}

Schema de response (leaf paths)

Mapa de paths de saída com tipo esperado para esta API.

responseSchema
{
  "requestId": "string",
  "executionId": "string",
  "data.source": "string",
  "data.type": "string",
  "data.url": "string",
  "data.requestUrl": "string",
  "data.extractedAt": "string (iso datetime)",
  "data.data.itemId": "string (uuid)",
  "data.data.merchantId": "string (uuid)",
  "data.data.code": "string",
  "data.data.name": "string",
  "data.data.details": "string",
  "data.data.image": "string",
  "data.data.unitPrice": "number",
  "data.data.unitMinPrice": "number",
  "data.data.basePrice": "number",
  "data.data.basePriceCents": "integer",
  "data.data.chargeRule": "string",
  "data.data.promoComboSize": "integer",
  "data.data.isComplementChooseNeeded": "boolean",
  "data.data.tags[]": "string",
  "data.data.complements[].id": "string",
  "data.data.complements[].code": "string",
  "data.data.complements[].name": "string",
  "data.data.complements[].min": "integer",
  "data.data.complements[].max": "integer",
  "data.data.complements[].availability": "string",
  "data.data.complements[].enabled": "boolean",
  "data.data.complements[].options[].id": "string",
  "data.data.complements[].options[].code": "string",
  "data.data.complements[].options[].name": "string",
  "data.data.complements[].options[].price": "number",
  "data.data.complements[].options[].availability": "string",
  "data.data.complements[].options[].quantity": "integer",
  "data.data.noteField.title": "string",
  "data.data.noteField.placeholder": "string",
  "data.data.noteField.maxLength": "integer",
  "data.data.footerType": "string",
  "data.data.quantityCurrent": "integer",
  "data.data.quantityMin": "integer",
  "data.data.quantityMax": "integer",
  "data.data.reportItemAction": "string",
  "data.data.merchant.merchantId": "string (uuid)",
  "data.data.merchant.name": "string",
  "data.data.merchant.type": "string",
  "data.data.merchant.available": "boolean",
  "data.data.merchant.availableForScheduling": "boolean",
  "data.data.merchant.deliveryTimeMinutes": "integer",
  "data.data.merchant.distanceKm": "number",
  "data.data.merchant.locale": "string",
  "data.data.merchant.logoUrl": "string",
  "data.data.merchant.chargeDifferentToppingsMode": "string",
  "data.data.merchant.mainFoodType.code": "string",
  "data.data.merchant.mainFoodType.name": "string",
  "data.data.merchant.address.city": "string",
  "data.data.merchant.address.state": "string",
  "data.data.merchant.address.zipCode": "string",
  "data.data.merchant.address.streetName": "string",
  "data.data.merchant.address.streetNumber": "string",
  "data.data.merchant.address.latitude": "number",
  "data.data.merchant.address.longitude": "number",
  "data.data.merchant.tags[]": "string",
  "data.data.merchant.features[]": "string",
  "data.data.merchant.deliveryMethods[].id": "string",
  "data.data.merchant.deliveryMethods[].title": "string",
  "data.data.merchant.deliveryMethods[].mode": "string",
  "data.data.merchant.deliveryMethods[].deliveredBy": "string",
  "data.data.merchant.deliveryMethods[].minTimeMinutes": "integer",
  "data.data.merchant.deliveryMethods[].maxTimeMinutes": "integer",
  "data.data.merchant.deliveryMethods[].value": "number",
  "data.data.merchant.deliveryMethods[].scheduleNow": "boolean",
  "data.data.merchant.shifts[].dayOfWeek": "string",
  "data.data.merchant.shifts[].startTime": "string",
  "data.data.merchant.shifts[].durationMinutes": "integer"
}

Exemplo de response

responseExample
{
  "requestId": "req_01hzyxfq4j0b9b76p6r0s6kq4s",
  "executionId": "exec_01hzyxfq4j0b9b76p6r0s6kq4s",
  "data": {
    "source": "ifood.com.br",
    "type": "idp",
    "url": "https://ci-marketplace.ifood.com.br/v1/showcase/dish?actionAccessPoint=merchantMenu&alias=SHOWCASE_CATALOG_ITEM_PROGRAMS&channel=IFOOD&deliveryMethodCode=DEFAULT&itemId=642fbf56-5480-47d8-837a-94317505e121&latitude=-24.723811&longitude=-53.72585&merchantId=cf787eb5-3689-4a46-b43c-2ceda85d1a76",
    "requestUrl": "https://ci-marketplace.ifood.com.br/v1/showcase/dish?actionAccessPoint=merchantMenu&alias=SHOWCASE_CATALOG_ITEM_PROGRAMS&channel=IFOOD&deliveryMethodCode=DEFAULT&itemId=642fbf56-5480-47d8-837a-94317505e121&merchantId=cf787eb5-3689-4a46-b43c-2ceda85d1a76",
    "extractedAt": "2026-03-25T19:10:00.000Z",
    "data": {
      "itemId": "642fbf56-5480-47d8-837a-94317505e121",
      "merchantId": "cf787eb5-3689-4a46-b43c-2ceda85d1a76",
      "code": "642fbf56-5480-47d8-837a-94317505e121",
      "name": "Burguer",
      "details": "Pao de brioche, hamburguer de 130g, queijo e molho da casa",
      "image": "https://static.ifood-static.com.br/image/upload/cf787eb5-3689-4a46-b43c-2ceda85d1a76/202410281212_NG27_i.jpg",
      "unitPrice": 25.99,
      "unitMinPrice": 25.99,
      "basePrice": 25.99,
      "basePriceCents": 2599,
      "chargeRule": "HIGHEST_PRICE",
      "promoComboSize": 1,
      "isComplementChooseNeeded": true,
      "tags": [
        "TAG::CART::FD_PBB_362F4",
        "TAG::CART::FD_DESPIT_BEA0C_35"
      ],
      "complements": [
        {
          "id": "0d4bdba1-21be-4872-af82-24bca915daa2",
          "code": "0d4bdba1-21be-4872-af82-24bca915daa2",
          "name": "Adicionais",
          "min": 0,
          "max": 14,
          "availability": "AVAILABLE",
          "enabled": true,
          "options": [
            {
              "id": "b6a7c284-7818-4125-a8e1-b48f945e9f04",
              "code": "b6a7c284-7818-4125-a8e1-b48f945e9f04",
              "name": "Frango Desfiado",
              "price": 7,
              "availability": "AVAILABLE",
              "quantity": 1
            }
          ]
        }
      ],
      "noteField": {
        "title": "Alguma observacao?",
        "placeholder": "Ex: tirar a cebola, maionese a parte etc.",
        "maxLength": 140
      },
      "footerType": "ADD",
      "quantityCurrent": 1,
      "quantityMin": 1,
      "quantityMax": 9999,
      "reportItemAction": "item-report?itemID=642fbf56-5480-47d8-837a-94317505e121&merchantID=cf787eb5-3689-4a46-b43c-2ceda85d1a76",
      "merchant": {
        "merchantId": "cf787eb5-3689-4a46-b43c-2ceda85d1a76",
        "name": "Fire's Burger",
        "type": "RESTAURANT",
        "available": true,
        "availableForScheduling": false,
        "deliveryTimeMinutes": 25,
        "distanceKm": 1.15,
        "locale": "pt_BR",
        "logoUrl": "https://static-images.ifood.com.br/image/upload/logosgde/cf787eb5-3689-4a46-b43c-2ceda85d1a76/202410072304_tYRX_i.jpg",
        "chargeDifferentToppingsMode": "GREATER",
        "mainFoodType": {
          "code": "LCH",
          "name": "Lanches",
          "description": "Lanches"
        },
        "address": {
          "streetName": "Rua Borges de Medeiros",
          "streetNumber": "247",
          "district": "Jardim Gisela",
          "city": "TOLEDO",
          "state": "PR",
          "country": "BR",
          "zipCode": "85905290",
          "timezone": "Etc/GMT+3",
          "latitude": -24.715711,
          "longitude": -53.733017,
          "complement": "Sala 1"
        },
        "tags": [
          "NOVO",
          "RESTAURANTES_CLUBE"
        ],
        "features": [
          "DELIVERY",
          "TAKEOUT",
          "IMMEDIATE_ORDER"
        ],
        "deliveryMethods": [
          {
            "id": "DEFAULT",
            "title": "Padrao",
            "subtitle": "O entregador leva ate voce agora",
            "mode": "DELIVERY",
            "type": "FIXED",
            "deliveredBy": "MERCHANT",
            "priority": 1000,
            "minTimeMinutes": 25,
            "maxTimeMinutes": 35,
            "value": 0,
            "scheduleNow": true
          }
        ],
        "shifts": [
          {
            "dayOfWeek": "MONDAY",
            "startTime": "15:00:00",
            "durationMinutes": 539
          }
        ]
      }
    }
  }
}

Referência completa de campos

Path Tipo Descrição Exemplo
data.data.basePrice number Preco base retornado no bloco do item. 25.99
data.data.basePriceCents integer Preco base em centavos retornado no bloco top-level de price. 2599
data.data.chargeRule string Regra de cobranca dos complementos, quando aplicavel. HIGHEST_PRICE
data.data.code string Codigo do item retornado pelo payload do iFood. 642fbf56-5480-47d8-837a-94317505e121
data.data.complements[].availability string Status de disponibilidade do grupo. AVAILABLE
data.data.complements[].code string Codigo do grupo de complementos. 0d4bdba1-21be-4872-af82-24bca915daa2
data.data.complements[].enabled boolean Indica se o grupo esta habilitado para selecao. true
data.data.complements[].id string Identificador do grupo de complementos. 0d4bdba1-21be-4872-af82-24bca915daa2
data.data.complements[].max integer Quantidade maxima de selecoes permitidas no grupo. 14
data.data.complements[].min integer Quantidade minima de selecoes permitidas no grupo. 0
data.data.complements[].name string Nome exibido para o grupo de complementos. Adicionais
data.data.complements[].options[].availability string Status de disponibilidade da opcao. AVAILABLE
data.data.complements[].options[].code string Codigo da opcao dentro do grupo. b6a7c284-7818-4125-a8e1-b48f945e9f04
data.data.complements[].options[].id string Identificador da opcao dentro do grupo. b6a7c284-7818-4125-a8e1-b48f945e9f04
data.data.complements[].options[].name string Nome da opcao complementar. Frango Desfiado
data.data.complements[].options[].price number Preco adicional cobrado pela opcao. 7
data.data.complements[].options[].quantity integer Quantidade pre-preenchida para a opcao no payload de exemplo. 1
data.data.details string Descricao textual do produto. Pao de brioche, hamburguer de 130g, queijo e molho da casa
data.data.footerType string Tipo de acao principal exibida no rodape do detalhe do produto. ADD
data.data.image string URL normalizada da imagem principal do item. https://static.ifood-static.com.br/image/upload/cf787eb5-3689-4a46-b43c-2ceda85d1a76/202410281212_NG27_i.jpg
data.data.isComplementChooseNeeded boolean Indica se o item exige selecao de complementos antes de adicionar ao carrinho. true
data.data.itemId string (uuid) UUID do item do cardapio no iFood. 642fbf56-5480-47d8-837a-94317505e121
data.data.merchant.address.city string Cidade do endereco cadastrado do merchant. TOLEDO
data.data.merchant.address.latitude number Latitude do endereco do merchant. -24.715711
data.data.merchant.address.longitude number Longitude do endereco do merchant. -53.733017
data.data.merchant.address.state string UF do endereco cadastrado do merchant. PR
data.data.merchant.address.streetName string Logradouro do endereco cadastrado do merchant. Rua Borges de Medeiros
data.data.merchant.address.streetNumber string Numero do endereco cadastrado do merchant. 247
data.data.merchant.address.zipCode string CEP do endereco cadastrado do merchant. 85905290
data.data.merchant.available boolean Indica se o merchant estava disponivel no momento da consulta. true
data.data.merchant.availableForScheduling boolean Indica se o merchant aceita agendamento. false
data.data.merchant.chargeDifferentToppingsMode string Regra do merchant para cobranca de toppings com precos diferentes. GREATER
data.data.merchant.deliveryMethods[].deliveredBy string Quem realiza a entrega segundo o payload. MERCHANT
data.data.merchant.deliveryMethods[].id string Identificador do metodo de entrega. DEFAULT
data.data.merchant.deliveryMethods[].maxTimeMinutes integer Tempo maximo estimado para esse metodo. 35
data.data.merchant.deliveryMethods[].minTimeMinutes integer Tempo minimo estimado para esse metodo. 25
data.data.merchant.deliveryMethods[].mode string Modo do metodo, por exemplo DELIVERY ou TAKEOUT. DELIVERY
data.data.merchant.deliveryMethods[].scheduleNow boolean Indica se esse metodo esta disponivel para pedido imediato. true
data.data.merchant.deliveryMethods[].title string Titulo do metodo de entrega. Padrao
data.data.merchant.deliveryMethods[].value number Valor monetario do metodo de entrega. 0
data.data.merchant.deliveryTimeMinutes integer Tempo principal de entrega informado pelo merchant. 25
data.data.merchant.distanceKm number Distancia estimada entre o merchant e a localizacao usada pelo iFood. 1.15
data.data.merchant.features[] string Features ativas do merchant, como DELIVERY e TAKEOUT. DELIVERY
data.data.merchant.locale string Locale associado ao merchant. pt_BR
data.data.merchant.logoUrl string URL normalizada do logo do merchant. https://static-images.ifood.com.br/image/upload/logosgde/cf787eb5-3689-4a46-b43c-2ceda85d1a76/202410072304_tYRX_i.jpg
data.data.merchant.mainFoodType.code string Codigo da categoria principal do merchant. LCH
data.data.merchant.mainFoodType.name string Nome da categoria principal do merchant. Lanches
data.data.merchant.merchantId string (uuid) UUID do merchant retornado junto ao produto. cf787eb5-3689-4a46-b43c-2ceda85d1a76
data.data.merchant.name string Nome do merchant associado ao item. Fire's Burger
data.data.merchant.shifts[].dayOfWeek string Dia da semana do turno operacional retornado. MONDAY
data.data.merchant.shifts[].durationMinutes integer Duracao, em minutos, do turno operacional. 539
data.data.merchant.shifts[].startTime string Horario de inicio do turno operacional. 15:00:00
data.data.merchant.tags[] string Tags internas do merchant retornadas junto com o produto. NOVO
data.data.merchant.type string Tipo do merchant no iFood, por exemplo RESTAURANT. RESTAURANT
data.data.merchantId string (uuid) UUID do merchant associado ao item. cf787eb5-3689-4a46-b43c-2ceda85d1a76
data.data.name string Nome principal do item exibido na tela de detalhes. Burguer
data.data.noteField.maxLength integer Limite maximo de caracteres permitido no campo de observacao. 140
data.data.noteField.placeholder string Placeholder apresentado no campo de observacao. Ex: tirar a cebola, maionese a parte etc.
data.data.noteField.title string Titulo do campo de observacao livre do item. Alguma observacao?
data.data.promoComboSize integer Tamanho promocional informado pelo iFood para o item. 1
data.data.quantityCurrent integer Quantidade inicial sugerida no seletor do rodape. 1
data.data.quantityMax integer Quantidade maxima permitida no seletor do rodape. 9999
data.data.quantityMin integer Quantidade minima permitida no seletor do rodape. 1
data.data.reportItemAction string Acao interna do iFood para denunciar o item. item-report?itemID=642fbf56-5480-47d8-837a-94317505e121&merchantID=cf787eb5-3689-4a46-b43c-2ceda85d1a76
data.data.tags[] string Tags internas associadas ao item pelo iFood. TAG::CART::FD_PBB_362F4
data.data.unitMinPrice number Menor preco unitario anunciado para o item. 25.99
data.data.unitPrice number Preco unitario atual do item. 25.99
data.extractedAt string (iso datetime) Timestamp ISO em que o worker concluiu a extracao. 2026-03-25T19:10:00.000Z
data.requestUrl string URL canonica usada pelo worker para consultar o endpoint de detalhe do item. https://ci-marketplace.ifood.com.br/v1/showcase/dish?actionAccessPoint=merchantMenu&alias=SHOWCASE_CATALOG_ITEM_PROGRAMS&channel=IFOOD&deliveryMethodCode=DEFAULT&itemId=642fbf56-5480-47d8-837a-94317505e121&merchantId=cf787eb5-3689-4a46-b43c-2ceda85d1a76
data.source string Fonte normalizada do scraper executado. ifood.com.br
data.type string Tipo normalizado da seam executada. idp
data.url string URL original recebida no payload de entrada. https://ci-marketplace.ifood.com.br/v1/showcase/dish?actionAccessPoint=merchantMenu&alias=SHOWCASE_CATALOG_ITEM_PROGRAMS&channel=IFOOD&deliveryMethodCode=DEFAULT&itemId=642fbf56-5480-47d8-837a-94317505e121&latitude=-24.723811&longitude=-53.72585&merchantId=cf787eb5-3689-4a46-b43c-2ceda85d1a76
executionId string Identificador da execucao usada para dedupe e rastreamento interno. exec_01hzyxfq4j0b9b76p6r0s6kq4s
requestId string Identificador da requisicao HTTP respondida pelo gateway. req_01hzyxfq4j0b9b76p6r0s6kq4s

Erros comuns

Status errorCode Quando acontece
400 INVALID_PAYLOAD JSON inválido ou violação das regras de validação do payload.
401 UNAUTHORIZED Header Authorization ausente ou token/chave inválida.
402 INSUFFICIENT_CREDITS Saldo de créditos insuficiente para a API solicitada.
403 FORBIDDEN Usuário sem acesso ou API temporariamente desabilitada.
409 EXECUTION_CONFLICT executionId conflita com uma execução em estado incompatível.
429 RATE_LIMIT_EXCEEDED / TOO_MANY_INFLIGHT_REQUESTS Limite de taxa ou limite de requisições em voo excedido.
5xx UPSTREAM_TIMEOUT / UPSTREAM_HTTP_ERROR / WORKER_INVOCATION_FAILED / WORKER_FUNCTION_ERROR / WORKER_INVALID_RESPONSE / INTERNAL_ERROR Falha de servidor no worker, provider/proxy ou gateway. Nesses casos os créditos são estornados automaticamente.
WhatsApp