{
  "openapi": "3.0.1",
  "info": {
    "title": "Reclame Aqui Scraper - Complaints, Replies & RA Score",
    "description": "Scrape Reclame Aqui (reclameaqui.com.br), Brazil's consumer complaint site: company reputation score, RA1000 status and rates, complaints with full text, company reply and final evaluation, keyword search, segment rankings and only-new mode. No login. US$ 16 per 1,000 complaints.",
    "version": "0.1",
    "x-build-id": "WpoDJ1ZcxYPbCK6Hb"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapewise~reclame-aqui-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapewise-reclame-aqui-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/scrapewise~reclame-aqui-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapewise-reclame-aqui-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/scrapewise~reclame-aqui-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapewise-reclame-aqui-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": {
          "companies": {
            "title": "Companies",
            "type": "array",
            "description": "Companies to read, one per line: the slug from reclameaqui.com.br/empresa/<slug>/ (for example nubank, mercado-livre, amazon, ifood), a company page link or a plain name (the best match is used). Each company returns its reputation profile row and its complaints, newest first. A complaint page link returns that single complaint. Leave every list empty to run the example 'nubank'. Also accepts 'startUrls', 'companyUrls' or 'company'.",
            "items": {
              "type": "string"
            }
          },
          "searchQueries": {
            "title": "Search complaints by keyword (whole site)",
            "type": "array",
            "description": "Keywords searched across every company on Reclame Aqui, one per line (for example pix, chargeback or delayed flight). Returns the matching complaints from all companies, newest first, up to 'Max complaints per company or search'. Also accepts 'searchQuery'.",
            "items": {
              "type": "string"
            }
          },
          "companySearch": {
            "title": "Search companies by name",
            "type": "array",
            "description": "Company names or brands to look up, one per line (for example itau or magazine luiza). Returns every matching company with slug, score, reputation status and complaint count, charged as a ranking or search row. Use it to find the exact slug before scraping complaints, or to list the sub-brands of a group. Also accepts 'searchCompanies'.",
            "items": {
              "type": "string"
            }
          },
          "rankingSegments": {
            "title": "Segment rankings",
            "type": "array",
            "description": "Segment pages from reclameaqui.com.br/segmentos/, one per line, as a link or 'main-segment/segment' (for example bancos-e-financeiras/bancos-digitais). Returns the best or worst companies of the segment in ranking order, with score and rates. Choose the ranking type in the Rankings section. Also accepts 'rankings'.",
            "items": {
              "type": "string"
            }
          },
          "maxComplaintsPerCompany": {
            "title": "Max complaints per company or search",
            "minimum": 0,
            "type": "integer",
            "description": "Upper limit of complaints for each company and each keyword search (default 50 when empty). 0 returns only the company profile, with no complaints. You pay per complaint delivered, so this is the main cost control. Also accepts 'maxComplaints' or 'maxItems'."
          },
          "statusFilter": {
            "title": "Complaint status",
            "enum": [
              "all",
              "not_answered",
              "answered",
              "evaluated",
              "solved",
              "not_solved"
            ],
            "type": "string",
            "description": "Which complaint list of the company to read: All (default), Not answered, Answered, Evaluated, Solved or Not solved, the same tabs as on the company's Reclame Aqui page. Use Not answered to monitor open issues. Also accepts 'status'.",
            "default": "all"
          },
          "dateFrom": {
            "title": "Published from",
            "type": "string",
            "description": "Only complaints published on or after this date: YYYY-MM-DD (for example 2026-01-01) or a number of days back (7 = the last 7 days). Complaints come newest first, so the run stops as soon as older ones appear, which also saves time. Leave empty for no start date. Also accepts 'publishedAfter'."
          },
          "dateTo": {
            "title": "Published until",
            "type": "string",
            "description": "Only complaints published on or before this date, in YYYY-MM-DD format (for example 2026-06-30). Newer complaints are skipped and not charged. Leave empty for no end date."
          },
          "keyword": {
            "title": "Keyword inside the companies",
            "type": "string",
            "description": "Only complaints of the given companies that match this keyword in the title or text (for example fraud, refund or pix). One word or phrase. Different from 'Search complaints by keyword', which searches the whole site."
          },
          "category": {
            "title": "Category",
            "type": "string",
            "description": "Category name exactly as shown in the filter of the company's complaint page, or its numeric id. If the name is not found, the run returns a free row listing the names available for that company, so you can copy the right one. Leave empty for every category."
          },
          "product": {
            "title": "Product",
            "type": "string",
            "description": "Product type name as shown in the filter of the company's complaint page, or its numeric id (for example a card, an account or a loan type). If the name is not found, a free row lists the available names. Leave empty for every product."
          },
          "problem": {
            "title": "Problem",
            "type": "string",
            "description": "Problem type name as shown in the filter of the company's complaint page, or its numeric id (for example a billing or delivery problem). If the name is not found, a free row lists the available names. Leave empty for every problem."
          },
          "includeCompanyProfile": {
            "title": "Company profile row",
            "type": "boolean",
            "description": "On by default: one row per company with score, RA1000 status, response, resolution and would-do-business-again rates, average response time, totals for 5 periods, segment ranking position and top problems. Charged as one 'Company profile delivered' event per company. Turn off to receive only complaints.",
            "default": true
          },
          "includeInteractions": {
            "title": "Company reply, consumer reply and final evaluation",
            "type": "boolean",
            "description": "On by default: reads the conversation of every complaint that has a reply, adding the company reply, the consumer's reply and the final evaluation. Turn off for faster runs with only the complaint text and status. Same price either way.",
            "default": true
          },
          "onlyNew": {
            "title": "Only new complaints since the last run",
            "type": "boolean",
            "description": "For daily or hourly schedules. Remembers what was delivered for each company or search, per status and filter, in a key-value store in your account, and delivers and charges only complaints not delivered before. The first run delivers up to the limit. Also accepts 'incrementalMode'.",
            "default": false
          },
          "rankingType": {
            "title": "Ranking type",
            "enum": [
              "best",
              "worst",
              "both"
            ],
            "type": "string",
            "description": "Which segment ranking to read for 'Segment rankings': Best (default), Worst or Both. Each company row says which ranking it came from and its position.",
            "default": "best"
          },
          "maxCompaniesPerRanking": {
            "title": "Max companies per ranking",
            "minimum": 1,
            "type": "integer",
            "description": "Upper limit of companies per segment and ranking type (default 50). Each company row is charged as one ranking row, so with Both and 50 a segment returns up to 100 rows.",
            "default": 50
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "A Brazilian residential proxy is the default because Reclame Aqui refuses most datacenter IPs. Its cost is already inside the price per result. If you pick another proxy and it is refused, the Actor switches by itself to a Brazilian residential IP. Keep the default.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ],
              "apifyProxyCountry": "BR"
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}