Skip to content

// docs

Casas Bahia: Search products

Extracts product listing (PLP) from Casas Bahia, with pagination and optional public URL from keyword.

casasbahia.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.casasbahia.com.br/resultado-da-busca/?query=iphone+16&page=2",
  "target": "casasbahia.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

casasbahia_com_br_plp · tools/call
{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "casasbahia_com_br_plp",
    "arguments": {
      "url": "https://www.casasbahia.com.br/resultado-da-busca/?query=iphone+16&page=2",
      "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.casasbahia.com.br/resultado-da-busca/?query=iphone+16&page=2
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 16
target
Target source for extraction.
enum Required Always mandatory in the payload and must be casasbahia.com.br. casasbahia.com.br casasbahia.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 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. 1 2

Request examples

PLP by URL

Informs the public URL of the search and the page explicitly.

PLP by URL
{
  "url": "https://www.casasbahia.com.br/resultado-da-busca/?query=iphone+16&page=2",
  "target": "casasbahia.com.br",
  "type": "plp",
  "page": 2
}

PLP by keyword (without url)

Gateway assembles URL automatically publishes from keyword.

PLP by keyword (without url)
{
  "keyword": "iphone 16",
  "target": "casasbahia.com.br",
  "type": "plp",
  "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)",
  "data.source": "string",
  "data.type": "string",
  "data.url": "string",
  "data.requestUrl": "string",
  "data.extractedAt": "string (ISO 8601)",
  "data.query": "string",
  "data.totalResults": "integer",
  "data.totalPages": "integer",
  "data.page": "integer",
  "data.resultsPerPage": "integer",
  "data.offset": "integer",
  "data.nextPage": "integer",
  "data.nextPageUrl": "string",
  "data.items[].url": "string",
  "data.items[].productId": "string",
  "data.items[].sku": "string",
  "data.items[].name": "string",
  "data.items[].available": "boolean",
  "data.items[].sellerId": "string",
  "data.items[].brand": "string",
  "data.items[].thumbnail": "string",
  "data.items[].aggregateRating.rating": "number",
  "data.items[].aggregateRating.reviewCount": "integer",
  "data.items[].sponsored": "boolean"
}

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": "d68564d2-34bc-47e6-a1a6-796794f8463b",
  "executionId": "f7b0f7f6-3363-4958-9f7e-6c0e0d189874",
  "data": {
    "source": "casasbahia.com.br",
    "type": "plp",
    "url": "https://www.casasbahia.com.br/resultado-da-busca/?query=iphone+16&page=1",
    "requestUrl": "https://www.casasbahia.com.br/resultado-da-busca/?query=iphone+16&page=1",
    "extractedAt": "2026-04-18T00:00:00.000Z",
    "query": "iphone 16",
    "totalResults": 25,
    "totalPages": 3,
    "page": 1,
    "resultsPerPage": 10,
    "offset": 0,
    "nextPage": 2,
    "nextPageUrl": "https://www.casasbahia.com.br/resultado-da-busca/?query=iphone+16&page=2",
    "items": [
      {
        "url": "https://www.casasbahia.com.br/apple-iphone-16-128gb-61-48mp-preto/p/55067621",
        "productId": "80872678",
        "sku": "55067621",
        "name": "Apple iPhone 16 128GB 6,1 48MP Preto",
        "available": true,
        "sellerId": "228278",
        "brand": "Apple",
        "thumbnail": "https://imgs.casasbahia.com.br/55067621/1xg.jpg",
        "aggregateRating": {
          "rating": 4.9,
          "reviewCount": 128
        },
        "sponsored": true
      }
    ]
  }
}

Complete field reference

PathTypeDescriptionExample
data.extractedAt string (ISO 8601) Timestamp ISO at which the extraction was completed. 2026-04-18T00:00:00.000Z
data.items[].aggregateRating.rating number Aggregate item grade when present. 4.9
data.items[].aggregateRating.reviewCount integer Number of aggregated reviews when available. 128
data.items[].available boolean Standard availability of the listed item. true
data.items[].brand string Standardized mark of the listed item. Apple
data.items[].name string Title of the listed item. Apple iPhone 16 128GB 6,1 48MP Preto
data.items[].productId string Internal product identifier at source. 80872678
data.items[].sellerId string Normalized identifier of the item's main seller. 228278
data.items[].sku string SKU of the listed item. 55067621
data.items[].sponsored boolean Indicates whether the result was marked as sponsored. true
data.items[].thumbnail string Main thumbnail of the listed item. https://imgs.casasbahia.com.br/55067621/1xg.jpg
data.items[].url string URL publishes summary of the listed product. https://www.casasbahia.com.br/apple-iphone-16-128gb-61-48mp-preto/p/55067621
data.nextPage integer Number of the next page, if any. 2
data.nextPageUrl string URL publishes synthesized for the next page, when it exists. https://www.casasbahia.com.br/resultado-da-busca/?query=iphone+16&page=2
data.offset integer Offset calculated from page and page size. 0
data.page integer Page actually executed. 1
data.query string Final resolved keyword for the search. iphone 16
data.requestUrl string Same value as `data.url`; never exposes the queried internal endpoint. https://www.casasbahia.com.br/resultado-da-busca/?query=iphone+16&page=1
data.resultsPerPage integer Number of items per page used by operation. 10
data.source string Normalized extraction source. casasbahia.com.br
data.totalPages integer Total number of pages calculated by the worker. 3
data.totalResults integer Total number of results returned by the source. 25
data.type string Type of operation executed. plp
data.url string URL is the final publication used as a reference for the listing. https://www.casasbahia.com.br/resultado-da-busca/?query=iphone+16&page=1
executionId string (uuid) Unique identifier of the worker execution for traceability. f7b0f7f6-3363-4958-9f7e-6c0e0d189874
requestId string (uuid) Unique identifier of the request HTTP in GeckoAPI. d68564d2-34bc-47e6-a1a6-796794f8463b

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 Casas Bahia operations