Skip to content

// docs

Netshoes: Search products

Extracts product listing (PLP) from Netshoes with optional ready-made URL or search for keyword, including ordering, pagination, sizes and seller from the impression layer.

netshoes.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.netshoes.com.br/busca/tenis-adidas?sort=lowest-first",
  "target": "netshoes.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

netshoes_com_br_plp · tools/call
{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "netshoes_com_br_plp",
    "arguments": {
      "url": "https://www.netshoes.com.br/busca/tenis-adidas?sort=lowest-first",
      "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 Optional. When sent, it must point to a search/listing for Netshoes; when absent, keyword becomes mandatory. - https://www.netshoes.com.br/busca/tenis-adidas?sort=lowest-first
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. The backend assembles URL automatically from /busca/.... - tenis adidas
sort
Ordering for VivaReal, Chaves na Mão, OLX and Webmotors PLP, Booking Review and Hotels Review. VivaReal: relevance/date/price/biggest_price/biggest_area. Webmotors: relevance/price/biggest_price/year_desc/mileage_asc. OLX: relevance/date/price/biggest_price/price_relevance. Booking/Hotels Review: most_relevant/newest_first/oldest_first/score_desc/score_asc.
"relevance" | "date" | "price" | "biggest_price" | "biggest_area" | "price_relevance" | "most_relevant" | "newest_first" | "oldest_first" | "score_desc" | "score_asc" | "year_desc" | "mileage_asc" Optional Sorting supported: relevance, date, price, biggest_price or score_desc. relevance price
target
Target source for extraction.
enum Required Always mandatory in the payload and must be netshoes.com.br. - netshoes.com.br
type
Extraction type: pdp, idp, plp, ilp, quote, review or places.
enum Required Always mandatory in the payload and must be plp. - 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 Paginacao 1-based. The backend applies the parameter page to the public URL of Netshoes. 1 2

Request examples

PLP by URL

Uses a public search/list URL from Netshoes and pages explicitly.

PLP by URL
{
  "url": "https://www.netshoes.com.br/busca/tenis-adidas?sort=lowest-first",
  "target": "netshoes.com.br",
  "type": "plp",
  "page": 2
}

PLP by keyword

Automatically assembles URL /busca/... from keyword.

PLP by keyword
{
  "keyword": "tenis adidas",
  "target": "netshoes.com.br",
  "type": "plp",
  "page": 1
}

PLP by keyword with sorting

Searches for keyword applying sorting supported by the gateway.

PLP by keyword with sorting
{
  "keyword": "tenis adidas",
  "target": "netshoes.com.br",
  "type": "plp",
  "sort": "price",
  "page": 1
}

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": "\"netshoes.com.br\"",
  "data.type": "\"plp\"",
  "data.url": "string",
  "data.requestUrl": "string",
  "data.extractedAt": "string (ISO 8601)",
  "data.query": "string",
  "data.totalResults": "number",
  "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[].productCode": "string",
  "data.items[].name": "string",
  "data.items[].currency": "\"BRL\"",
  "data.items[].price": "number",
  "data.items[].regularPrice": "number",
  "data.items[].discountAmount": "number",
  "data.items[].discountPercent": "number",
  "data.items[].installmentCount": "number",
  "data.items[].sellerName": "string",
  "data.items[].sellerId": "string",
  "data.items[].brand": "string",
  "data.items[].department": "string",
  "data.items[].productType": "string",
  "data.items[].sizes[]": "string",
  "data.items[].available": "boolean",
  "data.items[].aggregateRating.rating": "number",
  "data.items[].aggregateRating.reviewCount": "number",
  "data.items[].thumbnail": "string",
  "data.items[].familyParentCodes[]": "string",
  "data.items[].stamps[]": "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": "req_netshoes_plp_demo",
  "executionId": "exec_netshoes_plp_demo",
  "data": {
    "source": "netshoes.com.br",
    "type": "plp",
    "url": "https://www.netshoes.com.br/busca/tenis-adidas?page=2&sort=lowest-first",
    "requestUrl": "https://www.netshoes.com.br/busca/tenis-adidas?page=2&sort=lowest-first",
    "extractedAt": "2026-04-17T12:00:00.000Z",
    "query": "tenis adidas",
    "totalResults": 2370,
    "page": 2,
    "totalPages": 24,
    "resultsPerPage": 100,
    "offset": 100,
    "nextPage": 3,
    "nextPageUrl": "https://www.netshoes.com.br/busca/tenis-adidas?page=3&sort=lowest-first",
    "items": [
      {
        "url": "https://www.netshoes.com.br/p/tenis-adidas-breaknet-FB9-9335-205",
        "sku": "FB9-9335-205",
        "productCode": "FB9-9335",
        "name": "Tênis Adidas Breaknet",
        "currency": "BRL",
        "currencyRaw": "R$",
        "price": 229.99,
        "regularPrice": 349.99,
        "discountAmount": 120,
        "discountPercent": 34,
        "installmentCount": 5,
        "sellerName": "L_NETSHOES",
        "sellerId": "L_NETSHOES",
        "brand": "Adidas",
        "department": "Casual",
        "productType": "Tênis",
        "sizes": [
          "39",
          "40",
          "41"
        ],
        "available": true,
        "aggregateRating": {
          "rating": 4.71,
          "reviewCount": 9552
        },
        "thumbnail": "https://static.netshoes.com.br/produtos/tenis-adidas-breaknet/05/FB9-9335-205/FB9-9335-205_zoom1.jpg",
        "familyParentCodes": [
          "FB9-9335-006"
        ],
        "stamps": [
          "NetsGO"
        ]
      }
    ]
  }
}

Complete field reference

PathTypeDescriptionExample
data.extractedAt string (ISO 8601) Timestamp ISO 8601 of the extraction. 2026-04-17T12:00:00.000Z
data.items[].aggregateRating.rating number Average aggregate grade of the item. 4.71
data.items[].aggregateRating.reviewCount number Number of reviews for the item. 9552
data.items[].available boolean Indicates whether the card reports availability. true
data.items[].brand string Brand of the listed product. Adidas
data.items[].currency "BRL" Default currency of the listing. BRL
data.items[].department string Department of the listed product. Casual
data.items[].discountAmount number Absolute discount calculated/in cents converted to reais. 120
data.items[].discountPercent number Item discount percentage. 34
data.items[].familyParentCodes[] string Other parent codes related to the item. FB9-9335-006
data.items[].installmentCount number Number of installments displayed on the card. 5
data.items[].name string Product name listed. Tênis Adidas Breaknet
data.items[].price number Selling price of the item. 229.99
data.items[].productCode string Parent/family code of the listed product. FB9-9335
data.items[].productType string Product type listed. Tênis
data.items[].regularPrice number List price of the item. 349.99
data.items[].sellerId string Raw identifier of seller when available. L_NETSHOES
data.items[].sellerName string Seller identified in the impression layer of Netshoes. L_NETSHOES
data.items[].sizes[] string Sizes shown on card/listing. 39
data.items[].sku string SKU or main variant code displayed on the card. FB9-9335-205
data.items[].stamps[] string Commercial stamps/badges published on the card. NetsGO
data.items[].thumbnail string Main image/thumbnail of the card. https://static.netshoes.com.br/produtos/tenis-adidas-breaknet/05/FB9-9335-205/FB9-9335-205_zoom1.jpg
data.items[].url string URL absolute value of the listed product. https://www.netshoes.com.br/p/tenis-adidas-breaknet-FB9-9335-205
data.nextPage number Next page number when available. 3
data.nextPageUrl string URL publishes ready to request the next page. https://www.netshoes.com.br/busca/tenis-adidas?page=3&sort=lowest-first
data.offset number Numeric offset derived from page and pageSize. 100
data.page number Current page 1-based. 2
data.query string Textual query associated with the listing. tenis adidas
data.requestUrl string Same value as `data.url`; never exposes the queried internal endpoint. https://www.netshoes.com.br/busca/tenis-adidas?page=2&sort=lowest-first
data.resultsPerPage number Number of items per page reported in the payload. 100
data.source "netshoes.com.br" Scraper logic source. netshoes.com.br
data.totalPages number Total number of pages available. 24
data.totalResults number Total number of results reported by Netshoes. 2370
data.type "plp" Logical type of the scraper. plp
data.url string URL is published as a search reference. https://www.netshoes.com.br/busca/tenis-adidas?page=2&sort=lowest-first
executionId string (uuid) Unique identifier of the worker execution. exec_netshoes_plp_demo
notFound boolean (optional; true when the upstream entity was not found and data is null) Optional indicator for responses where the entity does not exist upstream. N/A
requestId string (uuid) Unique identifier of the request served by the gateway. req_netshoes_plp_demo

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