{
  "openapi": "3.0.1",
  "info": {
    "title": "PneuStore Scraper - Brazil Tire, Wheel and Price Data",
    "description": "Scrape pneustore.com.br, the Brazilian tire and wheel store: car, SUV, motorcycle, truck, farm and bicycle tires, wheels and accessories. PIX and installment prices, stock, ratings, sizes, load and speed codes, EAN and compatible vehicles. Monitor new products and price changes. No login.",
    "version": "0.1",
    "x-build-id": "j1sutiNMYI8iZvfMK"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/recordsdata~pneustore-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-recordsdata-pneustore-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/recordsdata~pneustore-scraper/runs": {
      "post": {
        "operationId": "runs-sync-recordsdata-pneustore-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/recordsdata~pneustore-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-recordsdata-pneustore-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "mode": {
            "title": "What to collect",
            "enum": [
              "search",
              "urls",
              "categories",
              "brands"
            ],
            "type": "string",
            "description": "search = products of the categories and filters below. urls = the product, category or brand addresses and product numbers you list. categories = one summary row per category (product count, price range, brands, rim sizes). brands = one summary row per brand (product count per product group, price range, rim sizes).",
            "default": "search"
          },
          "maxItems": {
            "title": "Maximum items",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Stops after this many rows (all record types together). Free plans are limited to 10 items per run.",
            "default": 50
          },
          "searchQuery": {
            "title": "Search text",
            "type": "string",
            "description": "Words that must appear in the product title, for example \"michelin primacy\", \"camara de ar\" or a size such as 205/55R16. A product number also works. Empty means no text filter.",
            "default": ""
          },
          "categories": {
            "title": "Categories",
            "type": "array",
            "description": "Which part of the catalog to read. Empty reads the whole catalog. In categories mode, empty gives a summary row for every category.",
            "items": {
              "type": "string",
              "enum": [
                "/todos",
                "/pneus",
                "/pneus/pneus-de-carro",
                "/pneus/pneus-de-carro/suv-caminhonete",
                "/pneus/pneus-de-carro/passeio",
                "/pneus/pneus-de-carro/alta-performance",
                "/pneus/pneus-de-carro/vans-e-utilitarios",
                "/pneus/pneus-de-moto",
                "/pneus/pneus-de-moto/urbano",
                "/pneus/pneus-de-moto/big-trail",
                "/pneus/pneus-de-moto/trail",
                "/pneus/pneus-de-moto/scooter",
                "/pneus/pneus-de-moto/custom",
                "/pneus/pneus-de-moto/fora-de-estrada",
                "/pneus/pneus-de-moto/racing-sport-touring",
                "/pneus/pneus-de-caminhao-e-onibus",
                "/pneus/pneus-de-caminhao-e-onibus/rodoviario",
                "/pneus/pneus-de-caminhao-e-onibus/regional",
                "/pneus/pneus-de-caminhao-e-onibus/misto",
                "/pneus/pneus-de-caminhao-e-onibus/urbano",
                "/pneus/pneus-de-caminhao-e-onibus/fora-de-estrada",
                "/pneus/pneus-de-otr",
                "/pneus/pneus-de-bicicleta",
                "/pneus/pneus-agricolas",
                "/pneus/pneus-de-quadriciclo",
                "/acessorios",
                "/acessorios/acessorios-para-moto",
                "/acessorios/acessorios-para-moto/camaras-de-ar",
                "/acessorios/acessorios-para-moto/mousse",
                "/acessorios/acessorios-para-caminhao-e-onibus",
                "/acessorios/acessorios-para-caminhao-e-onibus/camaras-de-ar",
                "/acessorios/acessorios-para-caminhao-e-onibus/protetor-de-aro",
                "/acessorios/acessorios-para-bicicleta",
                "/acessorios/acessorios-para-bicicleta/camaras-de-ar",
                "/acessorios/acessorios-para-otr",
                "/acessorios/acessorios-para-otr/sapatas",
                "/rodas",
                "/rodas/rodas-de-caminhao",
                "/rodas/rodas-de-caminhao/aco",
                "/rodas/rodas-de-caminhao/aluminio"
              ],
              "enumTitles": [
                "Whole catalog (tires, wheels, accessories)",
                "All tires",
                "Car tires",
                "Car tires: SUV and pickup",
                "Car tires: passenger",
                "Car tires: high performance",
                "Car tires: vans and utility",
                "Motorcycle tires",
                "Motorcycle tires: urban",
                "Motorcycle tires: big trail",
                "Motorcycle tires: trail",
                "Motorcycle tires: scooter",
                "Motorcycle tires: custom",
                "Motorcycle tires: off-road",
                "Motorcycle tires: racing and sport touring",
                "Truck and bus tires",
                "Truck and bus tires: highway",
                "Truck and bus tires: regional",
                "Truck and bus tires: mixed",
                "Truck and bus tires: urban",
                "Truck and bus tires: off-road",
                "OTR (earthmover) tires",
                "Bicycle tires",
                "Agricultural tires",
                "Quad bike tires",
                "All accessories",
                "Accessories for motorcycles",
                "Motorcycle inner tubes",
                "Motorcycle mousse inserts",
                "Accessories for trucks and buses",
                "Truck and bus inner tubes",
                "Truck and bus rim flaps",
                "Accessories for bicycles",
                "Bicycle inner tubes",
                "Accessories for OTR machines",
                "OTR track pads",
                "All wheels",
                "Truck wheels",
                "Truck wheels: steel",
                "Truck wheels: aluminium"
              ]
            },
            "default": []
          },
          "brands": {
            "title": "Brands",
            "type": "array",
            "description": "Brand names as shown on the site, for example Michelin, Pirelli, General Tire, Speedmax. Not case sensitive. In search mode they filter the products; in brands mode they pick the summary rows (empty means every brand).",
            "items": {
              "type": "string"
            }
          },
          "tireSizes": {
            "title": "Tire sizes",
            "type": "array",
            "description": "Exact tire sizes, for example 205/55R16, 195/55R16, 110/90-17 or 295/80R22.5. Several sizes are combined with OR.",
            "items": {
              "type": "string"
            }
          },
          "rimSizes": {
            "title": "Rim sizes (inches)",
            "type": "array",
            "description": "Rim diameter (\"Aro\") in inches, for example 15, 16, 17.5 or 22.5.",
            "items": {
              "type": "string"
            }
          },
          "terrainTypes": {
            "title": "Terrain types",
            "type": "array",
            "description": "Tread use. HT, AT, MT, RT and Semi Slick are car and SUV tires; Highway, Regional, Mixed, Urban and Off-road are truck and bus tires.",
            "items": {
              "type": "string",
              "enum": [
                "HT - Urbano/Rodoviário",
                "AT - Misto",
                "MT - Off Road Pesado",
                "RT - Off Road Leve",
                "Semi Slick",
                "RODOVIÁRIO",
                "REGIONAL",
                "MISTO",
                "URBANO",
                "OFF ROAD"
              ],
              "enumTitles": [
                "HT: urban and highway",
                "AT: all terrain (mixed)",
                "MT: heavy off-road",
                "RT: light off-road",
                "Semi slick",
                "Highway (truck)",
                "Regional (truck)",
                "Mixed (truck)",
                "Urban (truck)",
                "Off-road (truck)"
              ]
            },
            "default": []
          },
          "treadDesigns": {
            "title": "Tread design",
            "type": "array",
            "description": "Asymmetric, symmetric or directional tread pattern.",
            "items": {
              "type": "string",
              "enum": [
                "Assimétrico",
                "Simétrico",
                "Direcional"
              ],
              "enumTitles": [
                "Asymmetric",
                "Symmetric",
                "Directional"
              ]
            },
            "default": []
          },
          "runFlat": {
            "title": "Run flat",
            "enum": [
              "any",
              "yes",
              "no"
            ],
            "type": "string",
            "description": "Keep only run flat tires, only regular tires, or both.",
            "default": "any"
          },
          "minPrice": {
            "title": "Minimum price (BRL)",
            "minimum": 0,
            "type": "integer",
            "description": "Only products priced at or above this amount in reais (the PIX price shown first). Applied by the actor. Leave empty for no limit."
          },
          "maxPrice": {
            "title": "Maximum price (BRL)",
            "minimum": 0,
            "type": "integer",
            "description": "Only products priced at or below this amount in reais. Leave empty for no limit."
          },
          "inStockOnly": {
            "title": "Only products in stock",
            "type": "boolean",
            "description": "Drops products the site shows as out of stock (they keep their price on the site).",
            "default": false
          },
          "freeShippingOnly": {
            "title": "Only free shipping",
            "type": "boolean",
            "description": "Keep only products with the free shipping flag.",
            "default": false
          },
          "minRating": {
            "title": "Minimum rating",
            "minimum": 0,
            "maximum": 5,
            "type": "number",
            "description": "Only products with an average customer rating of at least this value (0 to 5)."
          },
          "sort": {
            "title": "Sort order",
            "enum": [
              "relevance",
              "price-asc",
              "price-desc",
              "rating-desc",
              "discount-desc",
              "name-asc"
            ],
            "type": "string",
            "description": "Order of the rows. Relevance is the site order. Any other order reads all pages of the selection first.",
            "default": "relevance"
          },
          "maxSearchPages": {
            "title": "Maximum list pages per category",
            "minimum": 1,
            "maximum": 400,
            "type": "integer",
            "description": "Each list page holds up to 100 products. Raise it to read very large categories, lower it to stay shallow.",
            "default": 120
          },
          "startUrls": {
            "title": "Addresses",
            "type": "array",
            "description": "urls mode: product pages (pneustore.com.br/pneu-...-10120084), category pages (with or without filters, for example https://www.pneustore.com.br/pneus/pneus-de-moto/trail?Marca=Pirelli) and brand pages (pneustore.com.br/marca/michelin).",
            "items": {
              "type": "string"
            }
          },
          "productIds": {
            "title": "Product numbers",
            "type": "array",
            "description": "urls mode: PneuStore product numbers (6 to 9 digits, the number at the end of a product address).",
            "items": {
              "type": "string"
            }
          },
          "scrapeDetails": {
            "title": "Open every product page",
            "type": "boolean",
            "description": "On: open each product page for the full specification, EAN, stock quantity, description and vehicle fitment (tire-detail-record). Off: list data only, much faster (tire-record).",
            "default": false
          },
          "includeFitment": {
            "title": "Include vehicle fitment",
            "type": "boolean",
            "description": "With product pages: add the list of compatible cars (make, model, years, versions) when the site has one.",
            "default": true
          },
          "includeRaw": {
            "title": "Include raw site data",
            "type": "boolean",
            "description": "Adds the untouched site data of each product in a raw field. Larger rows, mostly for debugging.",
            "default": false
          },
          "onlyNew": {
            "title": "Only new products (monitor)",
            "type": "boolean",
            "description": "Skips every product seen in an earlier run with the same monitor name, so scheduled runs return only what is new. Works in search and urls mode.",
            "default": false
          },
          "trackPriceChanges": {
            "title": "Report price changes",
            "type": "boolean",
            "description": "Needs Only new products. A product seen before with a different price comes back as price-change-record with the previous price and the change in percent.",
            "default": false
          },
          "stateKey": {
            "title": "Monitor name",
            "type": "string",
            "description": "Name of the memory used by Only new products. Use one name per saved search. Empty derives a name from your filters.",
            "default": ""
          },
          "resetSeen": {
            "title": "Forget seen products",
            "type": "boolean",
            "description": "Clears the memory of the monitor name before this run.",
            "default": false
          },
          "maxConcurrency": {
            "title": "Parallel requests",
            "minimum": 1,
            "maximum": 8,
            "type": "integer",
            "description": "How many product pages are fetched at the same time (1 to 8). 4 is polite and fast.",
            "default": 4
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Optional. Empty means direct requests, which work. Add a proxy only if your own network needs one."
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}