Skip to content

// docs

Pede.ai: Find restaurants

Extracts traders from pede.ai from a Brazilian CEP. The backend resolves cityId + areaId internally via /v1/extract/lookups/pede.ai/resolve-zip-code and returns only synthetic public URLs of pede.ai.

pede.ai:plp · 1 credit per request

Standard credit cost. Your account pricing is shown in the sandbox.

Try this operation in the sandbox

HTTP request

cURL
curl -X POST https://api.geckoapi.com.br/v1/extract \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "target": "pede.ai",
  "type": "plp",
  "zipCode": "45300-000"
}'

Keep your API key on your server. See the quickstart for authentication and response handling.

MCP request

The hosted MCP tool fixes target and type for this operation. Its remaining arguments use the same input rules as Extract.

POST /v1/mcp · Bearer or X-API-Key authentication

pede_ai_plp · tools/call
{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "pede_ai_plp",
    "arguments": {
      "zipCode": "45300-000",
      "executionId": "exec_example_123"
    }
  }
}

Supported inputs

Conditional fields depend on the alternatives and constraints in the rule column. Fields marked unsupported are omitted.

FieldTypeRequirementRuleDefaultExample
zipCode
CEP used in APIs with automatic geographic resolution. API accepts with or without a hyphen and normalizes to 8 digits.
string (CEP) Required Mandatory in pede.ai PLP. Accepts CEP with or without hyphen; API normalizes the value and resolves cityId + areaId automatically. - 45300-000
target
Target source for extraction.
enum Required Always mandatory in the payload and must be pede.ai. - pede.ai
type
Extraction type: pdp, idp, plp, ilp, quote, review or places.
enum Required Always mandatory in the payload and must be plp. - plp

Request examples

PLP by CEP

Recommended flow: send CEP only. The backend geocodes, resolves cityId + areaId, and queries PLP internally.

PLP by CEP
{
  "target": "pede.ai",
  "type": "plp",
  "zipCode": "45300-000"
}

Response schema

Leaf paths and expected types. Field names and enum values are part of the API contract.

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.cityId": "string",
  "data.areaId": "string",
  "data.city": "string",
  "data.state": "string",
  "data.neighborhood": "string",
  "data.locationResolution.zipCode": "string",
  "data.locationResolution.formattedZipCode": "string",
  "data.locationResolution.state": "string",
  "data.locationResolution.stateName": "string",
  "data.locationResolution.city": "string",
  "data.locationResolution.neighborhood": "string",
  "data.locationResolution.cityId": "string",
  "data.locationResolution.areaId": "string",
  "data.locationResolution.geocoderProvider": "string",
  "data.locationResolution.latitude": "number",
  "data.locationResolution.longitude": "number",
  "data.locationResolution.matchStrategy": "string",
  "data.locationResolution.rankedCandidates[].areaId": "string",
  "data.locationResolution.rankedCandidates[].cityId": "string",
  "data.locationResolution.rankedCandidates[].city": "string",
  "data.locationResolution.rankedCandidates[].state": "string",
  "data.locationResolution.rankedCandidates[].neighborhood": "string",
  "data.locationResolution.rankedCandidates[].minimumRate": "number",
  "data.locationResolution.rankedCandidates[].typeOperation": "string",
  "data.locationResolution.rankedCandidates[].externalProvider": "string",
  "data.locationResolution.rankedCandidates[].active": "boolean",
  "data.locationResolution.rankedCandidates[].matchStrategy": "string",
  "data.locationResolution.rankedCandidates[].matchedLabel": "string",
  "data.locationResolution.rankedCandidates[].score": "number",
  "data.categories[].id": "number",
  "data.categories[].name": "string",
  "data.openCount": "number",
  "data.closedCount": "number",
  "data.items[].position": "number",
  "data.items[].merchantId": "string",
  "data.items[].name": "string",
  "data.items[].slug": "string",
  "data.items[].logo": "string",
  "data.items[].banner": "string",
  "data.items[].isOpen": "boolean",
  "data.items[].deliveryTimeText": "string",
  "data.items[].deliveryTimeMinMinutes": "number",
  "data.items[].deliveryTimeMaxMinutes": "number",
  "data.items[].deliveryTimeAverageMinutes": "number",
  "data.items[].deliveryFee": "number",
  "data.items[].minimumOrderValue": "number",
  "data.items[].freeDeliveryMinimum": "number",
  "data.items[].rating": "number",
  "data.items[].ratingDisplay": "string",
  "data.items[].acceptsCoupon": "boolean",
  "data.items[].acceptsOnlinePayment": "boolean",
  "data.items[].acceptsInPersonPayment": "boolean",
  "data.items[].acceptsPix": "boolean",
  "data.items[].acceptsNuPay": "boolean",
  "data.items[].acceptsPicPay": "boolean",
  "data.items[].isNew": "boolean",
  "data.items[].isBrief": "boolean",
  "data.items[].isExclusive": "boolean",
  "data.items[].deliveryDisabled": "boolean",
  "data.items[].offerDiscount": "number",
  "data.items[].fullCompanyOffer": "boolean",
  "data.items[].storeDisplayType": "number",
  "data.items[].storeTypes[].id": "number",
  "data.items[].storeTypes[].name": "string",
  "data.items[].categories[].id": "number",
  "data.items[].categories[].name": "string"
}

Example response

Illustrative response. Product names, reviews and other source content retain their original language. Missing and null values do not imply zero stock, free shipping or zero reviews.

responseExample
{
  "requestId": "77777777-1111-4111-8111-777777777777",
  "executionId": "77777777-2222-4222-8222-777777777777",
  "data": {
    "source": "pede.ai",
    "type": "plp",
    "url": "https://pede.ai/lista?cep=45300-000",
    "requestUrl": "https://pede.ai/lista?cep=45300-000",
    "extractedAt": "2026-04-17T18:00:00.000Z",
    "cityId": "508",
    "areaId": "19590",
    "city": "Amargosa",
    "state": "BA",
    "neighborhood": "Alto da Bela Vista",
    "locationResolution": {
      "zipCode": "45300000",
      "formattedZipCode": "45300-000",
      "state": "BA",
      "stateName": "Bahia",
      "city": "Amargosa",
      "neighborhood": "Alto da Bela Vista",
      "cityId": "508",
      "areaId": "19590",
      "geocoderProvider": "brasilapi",
      "latitude": -13.0303,
      "longitude": -39.6031,
      "matchStrategy": "exact",
      "rankedCandidates": [
        {
          "areaId": "19590",
          "cityId": "508",
          "city": "Amargosa",
          "state": "BA",
          "neighborhood": "Alto da Bela Vista",
          "minimumRate": 5,
          "typeOperation": "OPL",
          "externalProvider": "Leve.ai",
          "active": true,
          "matchStrategy": "exact",
          "matchedLabel": "Alto da Bela Vista",
          "score": 400
        }
      ]
    },
    "categories": [
      {
        "id": 4,
        "name": "Almoco",
        "image": "https://cdn.aiboodelivery.com.br/appv3/marmitex.png",
        "icon": "https://pedeai-common.sfo2.cdn.digitaloceanspaces.com/cuisine/resized/694236.png"
      }
    ],
    "openCount": 1,
    "closedCount": 1,
    "items": [
      {
        "position": 1,
        "merchantId": "17642",
        "name": "Bella Roma",
        "slug": "bella-roma1",
        "logo": "https://merchant-assets.pede.ai/bella-roma/logo.png",
        "banner": "https://merchant-assets.pede.ai/bella-roma/banner.png",
        "isOpen": true,
        "deliveryTimeText": "20-40",
        "deliveryTimeMinMinutes": 20,
        "deliveryTimeMaxMinutes": 40,
        "deliveryTimeAverageMinutes": 30,
        "deliveryFee": 7,
        "minimumOrderValue": 0,
        "freeDeliveryMinimum": 120,
        "rating": 4.5,
        "ratingDisplay": "4.5",
        "acceptsCoupon": true,
        "acceptsOnlinePayment": true,
        "acceptsInPersonPayment": true,
        "acceptsPix": true,
        "acceptsNuPay": true,
        "acceptsPicPay": true,
        "isNew": false,
        "isBrief": false,
        "isExclusive": false,
        "deliveryDisabled": false,
        "offerDiscount": 0,
        "fullCompanyOffer": false,
        "storeDisplayType": 0,
        "storeTypes": [
          {
            "id": 1,
            "name": "Restaurantes",
            "icon": "https://pedeai-common.sfo2.cdn.digitaloceanspaces.com/restaurantes2.png",
            "order": 1,
            "status": "S"
          }
        ],
        "categories": [
          {
            "id": 4,
            "name": "Almoco",
            "image": "https://cdn.aiboodelivery.com.br/appv3/marmitex.png",
            "icon": "https://pedeai-common.sfo2.cdn.digitaloceanspaces.com/cuisine/resized/694236.png"
          }
        ]
      }
    ]
  }
}

Complete field reference

PathTypeDescriptionExample
data.areaId string areaId effectively resolved to pede.ai's internal query. 19590
data.categories[].id number Field data.categories[].id returned in the response payload. 4
data.categories[].name string Field data.categories[].name returned in the response payload. Almoco
data.city string Resolved city for the query. Amargosa
data.cityId string cityId effectively resolved to pede.ai internal query. 508
data.closedCount number Number of closed merchants in the result. 1
data.extractedAt string (iso datetime) data.extractedAt field returned in the response payload. 2026-04-17T18:00:00.000Z
data.items[].acceptsCoupon boolean Field data.items[].acceptsCoupon returned in the response payload. true
data.items[].acceptsInPersonPayment boolean data.items[].acceptsInPersonPayment field returned in the response payload. true
data.items[].acceptsNuPay boolean Field data.items[].acceptsNuPay returned in the response payload. true
data.items[].acceptsOnlinePayment boolean Field data.items[].acceptsOnlinePayment returned in the response payload. true
data.items[].acceptsPicPay boolean Field data.items[].acceptsPicPay returned in the response payload. true
data.items[].acceptsPix boolean Field data.items[].acceptsPix returned in the response payload. true
data.items[].banner string Field data.items[].banner returned in the response payload. https://merchant-assets.pede.ai/bella-roma/banner.png
data.items[].categories[].id number Field data.items[].categories[].id returned in the response payload. 4
data.items[].categories[].name string Field data.items[].categories[].name returned in the response payload. Almoco
data.items[].deliveryDisabled boolean Field data.items[].deliveryDisabled returned in the response payload. false
data.items[].deliveryFee number Field data.items[].deliveryFee returned in the response payload. 7
data.items[].deliveryTimeAverageMinutes number Field data.items[].deliveryTimeAverageMinutes returned in the response payload. 30
data.items[].deliveryTimeMaxMinutes number Field data.items[].deliveryTimeMaxMinutes returned in the response payload. 40
data.items[].deliveryTimeMinMinutes number Field data.items[].deliveryTimeMinMinutes returned in the response payload. 20
data.items[].deliveryTimeText string Field data.items[].deliveryTimeText returned in the response payload. 20-40
data.items[].freeDeliveryMinimum number Field data.items[].freeDeliveryMinimum returned in the response payload. 120
data.items[].fullCompanyOffer boolean data.items[].fullCompanyOffer field returned in the response payload. false
data.items[].isBrief boolean Field data.items[].isBrief returned in the response payload. false
data.items[].isExclusive boolean data.items[].isExclusive field returned in the response payload. false
data.items[].isNew boolean Field data.items[].isNew returned in the response payload. false
data.items[].isOpen boolean Field data.items[].isOpen returned in the response payload. true
data.items[].logo string Field data.items[].logo returned in the response payload. https://merchant-assets.pede.ai/bella-roma/logo.png
data.items[].merchantId string Merchant identifier that must be reused in pede.ai PDP. 17642
data.items[].minimumOrderValue number Field data.items[].minimumOrderValue returned in the response payload. 0
data.items[].name string data.items[].name field returned in the response payload. Bella Roma
data.items[].offerDiscount number Field data.items[].offerDiscount returned in the response payload. 0
data.items[].position number Position of the merchant in the PLP unified list. 1
data.items[].rating number Field data.items[].rating returned in the response payload. 4.5
data.items[].ratingDisplay string data.items[].ratingDisplay field returned in the response payload. 4.5
data.items[].slug string Field data.items[].slug returned in the response payload. bella-roma1
data.items[].storeDisplayType number Field data.items[].storeDisplayType returned in the response payload. 0
data.items[].storeTypes[].id number Field data.items[].storeTypes[].id returned in the response payload. 1
data.items[].storeTypes[].name string Field data.items[].storeTypes[].name returned in the response payload. Restaurantes
data.locationResolution.areaId string areaId effectively resolved to pede.ai's internal query. 19590
data.locationResolution.city string City resolved from CEP. Amargosa
data.locationResolution.cityId string cityId effectively resolved to pede.ai internal query. 508
data.locationResolution.formattedZipCode string CEP formatted with hyphen used in synthetic public URL. 45300-000
data.locationResolution.geocoderProvider string Provider used in geocoding CEP. brasilapi
data.locationResolution.latitude number Latitude associated with CEP when available. -13.0303
data.locationResolution.longitude number Longitude associated with CEP when available. -39.6031
data.locationResolution.matchStrategy string Textual strategy used to select the best area of pede.ai. exact
data.locationResolution.neighborhood string Textual neighborhood/locality returned by the geocoder. Alto da Bela Vista
data.locationResolution.rankedCandidates[].active boolean Field data.locationResolution.rankedCandidates[].active returned in the response payload. true
data.locationResolution.rankedCandidates[].areaId string data.locationResolution.rankedCandidates[].areaId field returned in the response payload. 19590
data.locationResolution.rankedCandidates[].city string Field data.locationResolution.rankedCandidates[].city returned in the response payload. Amargosa
data.locationResolution.rankedCandidates[].cityId string Field data.locationResolution.rankedCandidates[].cityId returned in the response payload. 508
data.locationResolution.rankedCandidates[].externalProvider string Field data.locationResolution.rankedCandidates[].externalProvider returned in the response payload. Leve.ai
data.locationResolution.rankedCandidates[].matchedLabel string Field data.locationResolution.rankedCandidates[].matchedLabel returned in the response payload. Alto da Bela Vista
data.locationResolution.rankedCandidates[].matchStrategy string Field data.locationResolution.rankedCandidates[].matchStrategy returned in the response payload. exact
data.locationResolution.rankedCandidates[].minimumRate number Field data.locationResolution.rankedCandidates[].minimumRate returned in the response payload. 5
data.locationResolution.rankedCandidates[].neighborhood string Field data.locationResolution.rankedCandidates[].neighborhood returned in the response payload. Alto da Bela Vista
data.locationResolution.rankedCandidates[].score number Field data.locationResolution.rankedCandidates[].score returned in the response payload. 400
data.locationResolution.rankedCandidates[].state string Field data.locationResolution.rankedCandidates[].state returned in the response payload. BA
data.locationResolution.rankedCandidates[].typeOperation string data.locationResolution.rankedCandidates[].typeOperation field returned in the response payload. OPL
data.locationResolution.state string UF resolved from CEP. BA
data.locationResolution.stateName string State name resolved from CEP. Bahia
data.locationResolution.zipCode string CEP normalized to 8 digits used in geographic resolution. 45300000
data.neighborhood string Neighborhood/area selected for the query. Alto da Bela Vista
data.openCount number Number of open merchants in the result. 1
data.requestUrl string Same value as `data.url`; never exposes the queried internal endpoint. https://pede.ai/lista?cep=45300-000
data.source string Field data.source returned in the response payload. pede.ai
data.state string UF resolved for query. BA
data.type string Field data.type returned in the response payload. plp
data.url string URL publishes synthetic code used as the request's canonical identifier. https://pede.ai/lista?cep=45300-000
executionId string (uuid) Field executionId returned in the response payload. 77777777-2222-4222-8222-777777777777
requestId string (uuid) Field requestId returned in the response payload. 77777777-1111-4111-8111-777777777777

Errors and missing data

When supported by this operation, an entity not found upstream can return HTTP 200 with data: null and notFound: true. Check the documented response fields before interpreting an empty result. Source-specific behavior and exceptions are described above.

HTTP statusError codeMeaning
400INVALID_PAYLOADInvalid JSON or a request that violates the documented validation rules.
401UNAUTHORIZEDMissing authorization or an invalid API key or token.
402INSUFFICIENT_CREDITSThe account has insufficient credits for this operation.
403FORBIDDENThe account does not have access, or the API is temporarily disabled.
409EXECUTION_CONFLICTThe execution identifier conflicts with an incompatible execution state.
429RATE_LIMIT_EXCEEDED / TOO_MANY_INFLIGHT_REQUESTSA rate limit or simultaneous request limit was exceeded.
5xxUPSTREAM_TIMEOUT / UPSTREAM_HTTP_ERROR / WORKER_FUNCTION_ERRORAn upstream, worker or gateway failure. Failed requests follow the platform refund policy.

Other Pede.ai operations