Skip to content

// docs

Magalu: Search products

Extracts structured product listing (PLP) from Magalu, with pagination.

magazineluiza.com.br: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 '{
  "url": "https://www.magazineluiza.com.br/busca/iphone-15-pro-max/",
  "target": "magazineluiza.com.br",
  "type": "plp",
  "page": 2
}'

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

magazineluiza_com_br_plp · tools/call
{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "magazineluiza_com_br_plp",
    "arguments": {
      "url": "https://www.magazineluiza.com.br/busca/iphone-15-pro-max/",
      "page": 2,
      "executionId": "exec_example_123"
    }
  }
}

Supported inputs

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

FieldTypeRequirementRuleDefaultExample
url
URL extraction target. For some PLPs it can be omitted when API assembles URL from other fields.
string (URL) Conditional Mandatory only when keyword is not sent. - https://www.magazineluiza.com.br/busca/iphone-15-pro-max/
keyword
Keyword for PLP searches. In Google Search it represents the query sent to Google; in Booking PLP is mandatory; in other PLPs it can replace URL.
string Conditional Mandatory when url is not sent. - iphone 15 pro max
priceMin
Minimum price for PLP searches for properties and vehicles.
integer Optional Minimum price in whole reais; internally converted to cents and reflected in the public URL (filters=price---min:max). - 400
priceMax
Maximum price for PLP searches for properties and vehicles.
integer Optional Maximum price in whole reais; internally converted to cents; when absent, API uses 9000000 cents. - 600
target
Target source for extraction.
enum Required Always mandatory in the payload and must match the operation. - magazineluiza.com.br
type
Extraction type: pdp, idp, plp, ilp, quote, review or places.
enum Required Always mandatory in the payload and must match the operation. - plp
page
Pagination. In PLP, including Trivago, and in Reclame AQUI ILP starts in 1; in review (MercadoLivre, Booking and Hotels) starts in 0. The Reclame AQUI ILP even accepts the page 100.
integer Optional Supported for PLP; must be integer >= 1. - 2

Request examples

PLP by URL

Informs the public URL of the search for Magalu and pages explicitly.

PLP by URL
{
  "url": "https://www.magazineluiza.com.br/busca/iphone-15-pro-max/",
  "target": "magazineluiza.com.br",
  "type": "plp",
  "page": 2
}

PLP by keyword (without url)

Gateway assembles the URL automatically from the keyword.

PLP by keyword (without url)
{
  "keyword": "iphone 15 pro max",
  "target": "magazineluiza.com.br",
  "type": "plp",
  "page": 1
}

PLP with price range

Search for keyword with minimum and maximum price.

PLP with price range
{
  "keyword": "iphone",
  "target": "magazineluiza.com.br",
  "type": "plp",
  "page": 1,
  "priceMin": 400,
  "priceMax": 600
}

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)",
  "notFound": "boolean (optional; true when the upstream entity was not found and data is null)",
  "data.source": "string",
  "data.type": "string",
  "data.url": "string",
  "data.requestUrl": "string",
  "data.extractedAt": "string (iso datetime)",
  "data.query": "string",
  "data.page": "number",
  "data.totalPages": "number",
  "data.resultsPerPage": "number",
  "data.offset": "number",
  "data.nextPage": "number",
  "data.nextPageUrl": "string",
  "data.items[].url": "string",
  "data.items[].sku": "string",
  "data.items[].name": "string",
  "data.items[].brand": "string",
  "data.items[].currency": "string",
  "data.items[].currencyRaw": "string",
  "data.items[].price": "number",
  "data.items[].cashPrice": "number",
  "data.items[].regularPrice": "number",
  "data.items[].aggregateRating.rating": "number",
  "data.items[].aggregateRating.reviewCount": "number",
  "data.items[].sellerId": "string",
  "data.items[].sellerName": "string",
  "data.items[].thumbnail": "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": "33333333-1111-4111-8111-333333333333",
  "executionId": "33333333-2222-4222-8222-333333333333",
  "data": {
    "source": "magazineluiza.com.br",
    "type": "plp",
    "url": "https://www.magazineluiza.com.br/busca/iphone-15-pro-max/",
    "requestUrl": "https://www.magazineluiza.com.br/busca/iphone-15-pro-max/",
    "extractedAt": "2026-04-08T19:45:00.000Z",
    "query": "iphone 15 pro max",
    "page": 2,
    "totalPages": 5,
    "resultsPerPage": 10,
    "offset": 10,
    "nextPage": 3,
    "nextPageUrl": "https://www.magazineluiza.com.br/busca/iphone-15-pro-max/?page=3",
    "items": [
      {
        "url": "https://www.magazineluiza.com.br/apple-iphone-15-128gb-azul-61-48mp-ios-5g/p/238034800/te/ip15/?seller_id=magazineluiza",
        "sku": "238034800",
        "name": "Apple iPhone 15 128GB Azul 6,1\" 48MP iOS 5G",
        "brand": "Apple",
        "currency": "BRL",
        "currencyRaw": "R$",
        "price": 4776.67,
        "cashPrice": 4299,
        "regularPrice": 7299,
        "aggregateRating": {
          "rating": 4.9,
          "reviewCount": 3951
        },
        "sellerId": "magazineluiza",
        "sellerName": "Magalu",
        "thumbnail": "https://a-static.mlcdn.com.br/1000x1000/sample.jpg"
      }
    ]
  }
}

Complete field reference

PathTypeDescriptionExample
data.extractedAt string (iso datetime) data.extractedAt field returned in the response payload. 2026-04-08T19:45:00.000Z
data.items[].aggregateRating.rating number Field data.items[].aggregateRating.rating returned in the response payload. 4.9
data.items[].aggregateRating.reviewCount number Field data.items[].aggregateRating.reviewCount returned in the response payload. 3951
data.items[].brand string Field data.items[].brand returned in the response payload. Apple
data.items[].cashPrice number Field data.items[].cashPrice returned in the response payload. 4299
data.items[].currency string data.items[].currency field returned in the response payload. BRL
data.items[].currencyRaw string Field data.items[].currencyRaw returned in the response payload. R$
data.items[].name string data.items[].name field returned in the response payload. Apple iPhone 15 128GB Azul 6,1" 48MP iOS 5G
data.items[].price number Field data.items[].price returned in the response payload. 4776.67
data.items[].regularPrice number Field data.items[].regularPrice returned in the response payload. 7299
data.items[].sellerId string Field data.items[].sellerId returned in the response payload. magazineluiza
data.items[].sellerName string Field data.items[].sellerName returned in the response payload. Magalu
data.items[].sku string Field data.items[].sku returned in the response payload. 238034800
data.items[].thumbnail string Field data.items[].thumbnail returned in the response payload. https://a-static.mlcdn.com.br/1000x1000/sample.jpg
data.items[].url string data.items[].url field returned in the response payload. https://www.magazineluiza.com.br/apple-iphone-15-128gb-azul-61-48mp-ios-5g/p/238034800/te/ip15/?seller_id=magazineluiza
data.nextPage number Field data.nextPage returned in the response payload. 3
data.nextPageUrl string Field data.nextPageUrl returned in the response payload. https://www.magazineluiza.com.br/busca/iphone-15-pro-max/?page=3
data.offset number Field data.offset returned in the response payload. 10
data.page number Field data.page returned in the response payload. 2
data.query string data.query field returned in the response payload. iphone 15 pro max
data.requestUrl string Same value as `data.url`; never exposes the queried internal endpoint. https://www.magazineluiza.com.br/busca/iphone-15-pro-max/
data.resultsPerPage number Field data.resultsPerPage returned in the response payload. 10
data.source string Field data.source returned in the response payload. magazineluiza.com.br
data.totalPages number Field data.totalPages returned in the response payload. 5
data.type string Field data.type returned in the response payload. plp
data.url string Field data.url returned in the response payload. https://www.magazineluiza.com.br/busca/iphone-15-pro-max/
executionId string (uuid) ID execution code for tracing and deduplication. 33333333-2222-4222-8222-333333333333
notFound boolean (optional; true when the upstream entity was not found and data is null) Present and true when the upstream entity was not found. In this case data is null and the request still completes successfully. N/A
requestId string (uuid) ID unique to the request at the gateway. 33333333-1111-4111-8111-333333333333

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 Magalu operations