{
  "openapi": "3.0.1",
  "info": {
    "title": "Capterra Reviews Scraper: Pros, Cons, Company Size",
    "description": "Capterra reviews for product URLs: rating, pros, cons, text, reviewer role, industry and company size, incentivized flag; $1.79 per 1,000 reviews. Capterra sorts and filters server-side, up to 50,000 per product. Native review IDs, only-new mode, no reviewer names, free error rows.",
    "version": "0.1",
    "x-build-id": "eaRScnsC2y8ZpKVhv"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/arcadium~capterra-reviews/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-arcadium-capterra-reviews",
        "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/arcadium~capterra-reviews/runs": {
      "post": {
        "operationId": "runs-sync-arcadium-capterra-reviews",
        "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/arcadium~capterra-reviews/run-sync": {
      "post": {
        "operationId": "run-sync-arcadium-capterra-reviews",
        "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": {
          "startUrls": {
            "title": "Capterra product URLs",
            "type": "array",
            "description": "Capterra product or reviews page URLs, e.g. https://www.capterra.com/p/135003/Slack/reviews/. Regional Capterra sites (capterra.co.uk, capterra.com.au, ...) are accepted and read from capterra.com. Leave empty if you use search queries.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "maxReviewsPerProduct": {
            "title": "Max reviews per product",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "Maximum number of reviews to collect for each product (up to 50,000). Default: 100."
          },
          "sort": {
            "title": "Sort order",
            "enum": [
              "MOST_HELPFUL",
              "HIGHEST_COMPLETENESS_SCORE",
              "MOST_RECENT",
              "HIGHEST_RATED",
              "LOWEST_RATED"
            ],
            "type": "string",
            "description": "Order in which reviews are listed. Applied by Capterra (server-side).",
            "default": "MOST_RECENT"
          },
          "minRating": {
            "title": "Minimum rating",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Only keep reviews with an overall rating of at least this value (1-5). Applied by Capterra (server-side)."
          },
          "maxRating": {
            "title": "Maximum rating",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Only keep reviews with an overall rating of at most this value (1-5). Applied by Capterra (server-side)."
          },
          "dateFrom": {
            "title": "Reviews from date",
            "type": "string",
            "description": "Only keep reviews published on or after this date (YYYY-MM-DD, or a relative span such as 30 days or 2 months; empty = no filter). With 'Most recent' sorting, paging stops once reviews are older."
          },
          "companySizes": {
            "title": "Company size",
            "type": "array",
            "description": "Only reviews from reviewers at companies of these sizes (applied by Capterra).",
            "items": {
              "type": "string",
              "enum": [
                "SELF_EMPLOYED",
                "1_10",
                "11_50",
                "51_200",
                "201_500",
                "501_1000",
                "1001_5000",
                "5001_10000",
                "10001_PLUS"
              ],
              "enumTitles": [
                "Self-employed",
                "1-10 employees",
                "11-50 employees",
                "51-200 employees",
                "201-500 employees",
                "501-1,000 employees",
                "1,001-5,000 employees",
                "5,001-10,000 employees",
                "10,001+ employees"
              ]
            }
          },
          "reviewerRoles": {
            "title": "Reviewer role",
            "type": "array",
            "description": "Only reviews from these kinds of reviewers (applied by Capterra).",
            "items": {
              "type": "string",
              "enum": [
                "USER",
                "ADMINISTRATOR",
                "OTHER"
              ],
              "enumTitles": [
                "User",
                "Administrator",
                "Other (team member / helped in purchase)"
              ]
            }
          },
          "timeUsed": {
            "title": "Time used",
            "type": "array",
            "description": "Only reviews from reviewers who used the product for this long (applied by Capterra).",
            "items": {
              "type": "string",
              "enum": [
                "FREE_TRIAL",
                "LESS_THAN_6_MONTHS",
                "6_12_MONTHS",
                "1_2_YEARS",
                "MORE_THAN_2_YEARS"
              ],
              "enumTitles": [
                "Free trial",
                "Less than 6 months",
                "6-12 months",
                "1-2 years",
                "2+ years"
              ]
            }
          },
          "usageFrequency": {
            "title": "Usage frequency",
            "type": "array",
            "description": "Only reviews from reviewers who use the product this often (applied by Capterra).",
            "items": {
              "type": "string",
              "enum": [
                "DAILY",
                "WEEKLY",
                "MONTHLY",
                "OTHER"
              ],
              "enumTitles": [
                "Daily",
                "Weekly",
                "Monthly",
                "Other"
              ]
            }
          },
          "includeProductDetails": {
            "title": "Include product details",
            "type": "boolean",
            "description": "Add the product name, rating, category, vendor, pricing and alternatives to every review and to the PRODUCT record. When off, the product name is derived from the URL and the product fields stay empty.",
            "default": true
          },
          "onlyNewReviews": {
            "title": "Only new reviews",
            "type": "boolean",
            "description": "Return only reviews not delivered by earlier runs that used the same state key. Uses the 'Most recent' sort order. The state is kept in a named key-value store in your account (change the state key to start over). Skipped reviews are not charged.",
            "default": false
          },
          "stateKey": {
            "title": "State key",
            "type": "string",
            "description": "Name of the incremental state used by 'Only new reviews' (letters, digits and dashes, up to 40 characters). Use different keys for independent schedules. Example: weekly-monitoring.",
            "default": "default"
          },
          "includeErrorRows": {
            "title": "Include error rows",
            "type": "boolean",
            "description": "Add one row with rowType 'error' (not charged) for each input that could not be scraped, e.g. a product that does not exist.",
            "default": true
          },
          "includeCoverageRows": {
            "title": "Include coverage rows",
            "type": "boolean",
            "description": "Add one free row with rowType 'coverage' per product or source: the review total the site states, how many were delivered, why paging ended and whether anything is missing. Not charged.",
            "default": true
          },
          "markEdited": {
            "title": "Mark edited reviews",
            "type": "boolean",
            "description": "With 'Only new reviews': also deliver reviews seen before whose text changed in the last 7 days, marked extras.changeType 'edited'. Edited reviews are charged like new ones.",
            "default": true
          },
          "maxRetries": {
            "title": "Max retries",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "How many times a failed page request is retried before the product is skipped.",
            "default": 3
          },
          "proxyConfiguration": {
            "title": "Proxy configuration (advanced)",
            "type": "object",
            "description": "Optional. By default the actor automatically picks the cheapest working proxy. Set this only to force your own proxy setup."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}