// docs

iFood PLP

Extrai listagem de lojas do iFood por keyword e CEP.

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": "plp",
  "keyword": "marmita",
  "zipCode": "80010-000",
  "page": 1
}'

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
keyword
Palavra-chave para buscas PLP. Em Booking PLP é obrigatória; em outros PLPs pode substituir a URL.
string Obrigatório Obrigatoria para busca PLP do iFood. - iphone 15 pro max
zipCode
CEP brasileiro usado na iFood PLP para geocodificacao automatica (latitude/longitude).
string (CEP) Obrigatório CEP brasileiro usado para geocodificar latitude/longitude automaticamente. - 80010-000
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, plp, review ou places.
enum Obrigatório Sempre obrigatorio no payload e deve ser plp. - pdp
page
Paginação. Em PLP inicia em 1; em MercadoLivre review inicia em 0.
integer Opcional Suportado para PLP; deve ser inteiro >= 1. 1 2

Exemplos de request

PLP por keyword + CEP

Fluxo recomendado: informe keyword e CEP; o worker geocodifica o CEP antes de consultar o endpoint do iFood.

PLP por keyword + CEP
{
  "target": "ifood.com.br",
  "type": "plp",
  "keyword": "marmita",
  "zipCode": "80010-000",
  "page": 1
}

Schema de response (leaf paths)

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

responseSchema
{
  "requestId": "string (uuid)",
  "executionId": "string (uuid)",
  "data.source": "string",
  "data.type": "string",
  "data.url": "string",
  "data.requestUrl": "string",
  "data.extractedAt": "string (iso datetime)",
  "data.keyword": "string",
  "data.query": "string",
  "data.zipCode": "string",
  "data.latitude": "number",
  "data.longitude": "number",
  "data.geocoderProvider": "string",
  "data.sectionId": "string",
  "data.page": "number",
  "data.resultsPerPage": "number",
  "data.offset": "number",
  "data.primaryResults": "number",
  "data.nextPage": "number",
  "data.nextPageUrl": "string",
  "data.nextCursor": "string",
  "data.items[].position": "number",
  "data.items[].id": "string",
  "data.items[].name": "string",
  "data.items[].url": "string",
  "data.items[].action": "string",
  "data.items[].merchantType": "string",
  "data.items[].slug": "string",
  "data.items[].mainCategory": "string",
  "data.items[].available": "boolean",
  "data.items[].availableForScheduling": "boolean",
  "data.items[].isIfoodDelivery": "boolean",
  "data.items[].isFavorite": "boolean",
  "data.items[].isNew": "boolean",
  "data.items[].isSuperRestaurant": "boolean",
  "data.items[].supportsTracking": "boolean",
  "data.items[].currency": "string",
  "data.items[].userRating": "number",
  "data.items[].distanceKm": "number",
  "data.items[].thumbnail": "string",
  "data.items[].deliveryInfo.type": "string",
  "data.items[].deliveryInfo.mode": "string",
  "data.items[].deliveryInfo.feeCents": "number",
  "data.items[].deliveryInfo.fee": "number",
  "data.items[].deliveryInfo.timeMinMinutes": "number",
  "data.items[].deliveryInfo.timeMaxMinutes": "number",
  "data.items[].deliveryInfo.nextSchedulingSlotStartTime": "string",
  "data.items[].deliveryInfo.nextSchedulingSlotEndTime": "string",
  "data.items[].formattedContent.firstLine": "string",
  "data.items[].formattedContent.secondLine": "string"
}

Exemplo de response

responseExample
{
  "requestId": "55555555-1111-4111-8111-555555555555",
  "executionId": "55555555-2222-4222-8222-555555555555",
  "data": {
    "source": "ifood.com.br",
    "type": "plp",
    "url": "https://cw-marketplace.ifood.com.br/v2/cardstack/search/results?alias=SEARCH_RESULTS_MERCHANT_TAB_GLOBAL&channel=IFOOD&size=20&term=marmita&zipCode=80010000",
    "requestUrl": "https://cw-marketplace.ifood.com.br/v2/cardstack/search/results?alias=SEARCH_RESULTS_MERCHANT_TAB_GLOBAL&latitude=-25.4284&longitude=-49.2733&channel=IFOOD&size=20&term=marmita",
    "extractedAt": "2026-02-18T13:25:00.000Z",
    "keyword": "marmita",
    "query": "marmita",
    "zipCode": "80010000",
    "latitude": -25.4284,
    "longitude": -49.2733,
    "geocoderProvider": "brasilapi",
    "sectionId": "7519c970-d372-4552-b767-f0616e25697c",
    "page": 1,
    "resultsPerPage": 20,
    "offset": 0,
    "primaryResults": 20,
    "nextPage": 2,
    "nextPageUrl": "https://cw-marketplace.ifood.com.br/v2/cardstack/search/results?alias=SEARCH_RESULTS_MERCHANT_TAB_GLOBAL&latitude=-25.4284&longitude=-49.2733&channel=IFOOD&size=20&term=marmita&section=7519c970-d372-4552-b767-f0616e25697c&cursor=BHBzAMjA7vQBAKCz_IMTAMKA6ucPAKi31bceAPilq-INAMLBv_YWAKSVkrcaAOClztEOAAIAyAE%3D",
    "nextCursor": "BHBzAMjA7vQBAKCz_IMTAMKA6ucPAKi31bceAPilq-INAMLBv_YWAKSVkrcaAOClztEOAAIAyAE=",
    "items": [
      {
        "position": 1,
        "id": "9a7ea6c8-4493-44f0-a0be-f892b0a16941",
        "name": "Oh My Bread Padaria Artesanal Boulevard Curitibano",
        "url": "https://www.ifood.com.br/merchant?identifier=9a7ea6c8-4493-44f0-a0be-f892b0a16941&name=Oh%20My%20Bread%20Padaria%20Artesanal%20Boulevard%20Curitibano&slug=curitiba-pr/oh-my-bread-padaria-artesanal-boulevard-curitibano-vila-izabel&deliveryMethodCode=DEFAULT",
        "action": "merchant?identifier=9a7ea6c8-4493-44f0-a0be-f892b0a16941&name=Oh%20My%20Bread%20Padaria%20Artesanal%20Boulevard%20Curitibano&slug=curitiba-pr/oh-my-bread-padaria-artesanal-boulevard-curitibano-vila-izabel&deliveryMethodCode=DEFAULT",
        "merchantType": "merchant",
        "slug": "curitiba-pr/oh-my-bread-padaria-artesanal-boulevard-curitibano-vila-izabel",
        "mainCategory": "Padaria",
        "available": true,
        "availableForScheduling": true,
        "isIfoodDelivery": true,
        "isFavorite": false,
        "isNew": true,
        "isSuperRestaurant": true,
        "supportsTracking": true,
        "currency": "BRL",
        "userRating": 4.9,
        "distanceKm": 2.87,
        "thumbnail": "https://static-images.ifood.com.br/image/upload/logosgde/9a7ea6c8-4493-44f0-a0be-f892b0a16941/202512221122_PVbJ_i.jpg",
        "deliveryInfo": {
          "type": "SCHEDULE",
          "mode": "DEFAULT",
          "feeCents": 1099,
          "fee": 10.99,
          "timeMinMinutes": 41,
          "timeMaxMinutes": 51,
          "nextSchedulingSlotStartTime": "2026-02-18T12:00:00-03:00",
          "nextSchedulingSlotEndTime": "2026-02-18T12:30:00-03:00"
        },
        "formattedContent": {
          "firstLine": "[#FFC347: Novidade!] [#666666: •] [#666666: Padaria] [#666666: •] [#666666: 2,9 km]",
          "secondLine": "Entrega rapida"
        }
      }
    ]
  }
}

Referência completa de campos

Path Tipo Descrição Exemplo
data.extractedAt string (iso datetime) Campo data.extractedAt retornado no payload de resposta. 2026-02-18T13:25:00.000Z
data.geocoderProvider string Campo data.geocoderProvider retornado no payload de resposta. brasilapi
data.items[].action string Campo data.items[].action retornado no payload de resposta. merchant?identifier=9a7ea6c8-4493-44f0-a0be-f892b0a16941&name=Oh%20My%20Bread%20Padaria%20Artesanal%20Boulevard%20Curitibano&slug=curitiba-pr/oh-my-bread-padaria-artesanal-boulevard-curitibano-vila-izabel&deliveryMethodCode=DEFAULT
data.items[].available boolean Campo data.items[].available retornado no payload de resposta. true
data.items[].availableForScheduling boolean Campo data.items[].availableForScheduling retornado no payload de resposta. true
data.items[].currency string Campo data.items[].currency retornado no payload de resposta. BRL
data.items[].deliveryInfo.fee number Campo data.items[].deliveryInfo.fee retornado no payload de resposta. 10.99
data.items[].deliveryInfo.feeCents number Campo data.items[].deliveryInfo.feeCents retornado no payload de resposta. 1099
data.items[].deliveryInfo.mode string Campo data.items[].deliveryInfo.mode retornado no payload de resposta. DEFAULT
data.items[].deliveryInfo.nextSchedulingSlotEndTime string Campo data.items[].deliveryInfo.nextSchedulingSlotEndTime retornado no payload de resposta. 2026-02-18T12:30:00-03:00
data.items[].deliveryInfo.nextSchedulingSlotStartTime string Campo data.items[].deliveryInfo.nextSchedulingSlotStartTime retornado no payload de resposta. 2026-02-18T12:00:00-03:00
data.items[].deliveryInfo.timeMaxMinutes number Campo data.items[].deliveryInfo.timeMaxMinutes retornado no payload de resposta. 51
data.items[].deliveryInfo.timeMinMinutes number Campo data.items[].deliveryInfo.timeMinMinutes retornado no payload de resposta. 41
data.items[].deliveryInfo.type string Campo data.items[].deliveryInfo.type retornado no payload de resposta. SCHEDULE
data.items[].distanceKm number Campo data.items[].distanceKm retornado no payload de resposta. 2.87
data.items[].formattedContent.firstLine string Campo data.items[].formattedContent.firstLine retornado no payload de resposta. [#FFC347: Novidade!] [#666666: •] [#666666: Padaria] [#666666: •] [#666666: 2,9 km]
data.items[].formattedContent.secondLine string Campo data.items[].formattedContent.secondLine retornado no payload de resposta. Entrega rapida
data.items[].id string Campo data.items[].id retornado no payload de resposta. 9a7ea6c8-4493-44f0-a0be-f892b0a16941
data.items[].isFavorite boolean Campo data.items[].isFavorite retornado no payload de resposta. false
data.items[].isIfoodDelivery boolean Campo data.items[].isIfoodDelivery retornado no payload de resposta. true
data.items[].isNew boolean Campo data.items[].isNew retornado no payload de resposta. true
data.items[].isSuperRestaurant boolean Campo data.items[].isSuperRestaurant retornado no payload de resposta. true
data.items[].mainCategory string Campo data.items[].mainCategory retornado no payload de resposta. Padaria
data.items[].merchantType string Campo data.items[].merchantType retornado no payload de resposta. merchant
data.items[].name string Campo data.items[].name retornado no payload de resposta. Oh My Bread Padaria Artesanal Boulevard Curitibano
data.items[].position number Campo data.items[].position retornado no payload de resposta. 1
data.items[].slug string Campo data.items[].slug retornado no payload de resposta. curitiba-pr/oh-my-bread-padaria-artesanal-boulevard-curitibano-vila-izabel
data.items[].supportsTracking boolean Campo data.items[].supportsTracking retornado no payload de resposta. true
data.items[].thumbnail string Campo data.items[].thumbnail retornado no payload de resposta. https://static-images.ifood.com.br/image/upload/logosgde/9a7ea6c8-4493-44f0-a0be-f892b0a16941/202512221122_PVbJ_i.jpg
data.items[].url string Campo data.items[].url retornado no payload de resposta. https://www.ifood.com.br/merchant?identifier=9a7ea6c8-4493-44f0-a0be-f892b0a16941&name=Oh%20My%20Bread%20Padaria%20Artesanal%20Boulevard%20Curitibano&slug=curitiba-pr/oh-my-bread-padaria-artesanal-boulevard-curitibano-vila-izabel&deliveryMethodCode=DEFAULT
data.items[].userRating number Campo data.items[].userRating retornado no payload de resposta. 4.9
data.keyword string Campo data.keyword retornado no payload de resposta. marmita
data.latitude number Campo data.latitude retornado no payload de resposta. -25.4284
data.longitude number Campo data.longitude retornado no payload de resposta. -49.2733
data.nextCursor string Campo data.nextCursor retornado no payload de resposta. BHBzAMjA7vQBAKCz_IMTAMKA6ucPAKi31bceAPilq-INAMLBv_YWAKSVkrcaAOClztEOAAIAyAE=
data.nextPage number Campo data.nextPage retornado no payload de resposta. 2
data.nextPageUrl string Campo data.nextPageUrl retornado no payload de resposta. https://cw-marketplace.ifood.com.br/v2/cardstack/search/results?alias=SEARCH_RESULTS_MERCHANT_TAB_GLOBAL&latitude=-25.4284&longitude=-49.2733&channel=IFOOD&size=20&term=marmita&section=7519c970-d372-4552-b767-f0616e25697c&cursor=BHBzAMjA7vQBAKCz_IMTAMKA6ucPAKi31bceAPilq-INAMLBv_YWAKSVkrcaAOClztEOAAIAyAE%3D
data.offset number Campo data.offset retornado no payload de resposta. 0
data.page number Campo data.page retornado no payload de resposta. 1
data.primaryResults number Campo data.primaryResults retornado no payload de resposta. 20
data.query string Campo data.query retornado no payload de resposta. marmita
data.requestUrl string Campo data.requestUrl retornado no payload de resposta. https://cw-marketplace.ifood.com.br/v2/cardstack/search/results?alias=SEARCH_RESULTS_MERCHANT_TAB_GLOBAL&latitude=-25.4284&longitude=-49.2733&channel=IFOOD&size=20&term=marmita
data.resultsPerPage number Campo data.resultsPerPage retornado no payload de resposta. 20
data.sectionId string Campo data.sectionId retornado no payload de resposta. 7519c970-d372-4552-b767-f0616e25697c
data.source string Campo data.source retornado no payload de resposta. ifood.com.br
data.type string Campo data.type retornado no payload de resposta. plp
data.url string Campo data.url retornado no payload de resposta. https://cw-marketplace.ifood.com.br/v2/cardstack/search/results?alias=SEARCH_RESULTS_MERCHANT_TAB_GLOBAL&channel=IFOOD&size=20&term=marmita&zipCode=80010000
data.zipCode string Campo data.zipCode retornado no payload de resposta. 80010000
executionId string (uuid) Campo executionId retornado no payload de resposta. 55555555-2222-4222-8222-555555555555
requestId string (uuid) Campo requestId retornado no payload de resposta. 55555555-1111-4111-8111-555555555555

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