{
  "openapi": "3.0.1",
  "info": {
    "title": "Capterra Reviews Scraper",
    "description": "Scrape Capterra software reviews with star ratings, pros, cons, reviewer profile, vendor response and product pricing. Filter by rating, company size, role and usage. Export to CSV, JSON, Excel or XML.",
    "version": "0.1",
    "x-build-id": "vDiH8WFBAxV54bT2H"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/parseforge~capterra-reviews-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-parseforge-capterra-reviews-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/parseforge~capterra-reviews-scraper/runs": {
      "post": {
        "operationId": "runs-sync-parseforge-capterra-reviews-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/parseforge~capterra-reviews-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-parseforge-capterra-reviews-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": {
          "startUrls": {
            "title": "Capterra Product URLs",
            "type": "array",
            "description": "Any Capterra product page URL: https://www.capterra.com/p/135003/Slack/, its /reviews/, /pricing/ or /alternatives/ variant, with or without ?page=. One product per line.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "searchTerms": {
            "title": "Product Names",
            "type": "array",
            "description": "Software names to look up on Capterra search, one per line (for example Slack, HubSpot CRM, monday.com). The best-matching product is scraped. Combined with the URLs above.",
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Max Items",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000"
          },
          "maxReviewsPerProduct": {
            "title": "Max Reviews Per Product",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Stop after this many reviews for each product. Leave empty to collect every review Capterra publishes (Max Items still caps the whole run)."
          },
          "sort": {
            "title": "Sort By",
            "enum": [
              "HIGHEST_COMPLETENESS_SCORE",
              "MOST_RECENT",
              "HIGHEST_RATED",
              "LOWEST_RATED"
            ],
            "type": "string",
            "description": "Order in which Capterra serves the reviews. Most Recent is the right choice for monitoring; Most Helpful is what the site shows by default.",
            "default": "HIGHEST_COMPLETENESS_SCORE"
          },
          "overallRating": {
            "title": "Overall Rating",
            "uniqueItems": true,
            "type": "array",
            "description": "Keep only reviews with these star ratings. Empty = all ratings.",
            "items": {
              "type": "string",
              "enum": [
                "5",
                "4",
                "3",
                "2",
                "1"
              ],
              "enumTitles": [
                "5 stars",
                "4 stars",
                "3 stars",
                "2 stars",
                "1 star"
              ]
            },
            "default": []
          },
          "companySize": {
            "title": "Reviewer's Company Size",
            "uniqueItems": true,
            "type": "array",
            "description": "Keep only reviews from companies of these sizes. Empty = all sizes.",
            "items": {
              "type": "string",
              "enum": [
                "A",
                "B",
                "C",
                "D",
                "E",
                "F",
                "G",
                "H",
                "I"
              ],
              "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"
              ]
            },
            "default": []
          },
          "reviewerRole": {
            "title": "Reviewer's Role",
            "uniqueItems": true,
            "type": "array",
            "description": "Keep only reviews written in these roles. Empty = all roles.",
            "items": {
              "type": "string",
              "enum": [
                "User",
                "Administrator",
                "TeamMember",
                "HelpedInPurchase"
              ],
              "enumTitles": [
                "User",
                "Administrator",
                "Team member",
                "Helped in purchase"
              ]
            },
            "default": []
          },
          "timeUsedProduct": {
            "title": "Length of Use",
            "uniqueItems": true,
            "type": "array",
            "description": "Keep only reviewers who have used the product for this long. Empty = any length.",
            "items": {
              "type": "string",
              "enum": [
                "FreeTrial",
                "LessThan6Months",
                "LessThan12Months",
                "LessThan2Years",
                "MoreThan2Years"
              ],
              "enumTitles": [
                "Free trial",
                "Less than 6 months",
                "6-12 months",
                "1-2 years",
                "2+ years"
              ]
            },
            "default": []
          },
          "frequencyUsedProduct": {
            "title": "Frequency of Use",
            "uniqueItems": true,
            "type": "array",
            "description": "Keep only reviewers who use the product this often. Empty = any frequency.",
            "items": {
              "type": "string",
              "enum": [
                "Daily",
                "Weekly",
                "Monthly",
                "Other"
              ],
              "enumTitles": [
                "Daily",
                "Weekly",
                "Monthly",
                "Other"
              ]
            },
            "default": []
          },
          "accessMode": {
            "title": "Access Mode",
            "enum": [
              "auto",
              "http",
              "browser"
            ],
            "type": "string",
            "description": "Auto: fast HTTP sessions first, stealth browser only if Cloudflare keeps challenging (recommended). HTTP: never start a browser (cheapest, may return nothing when Cloudflare is strict). Browser: always use the stealth browser (slowest, most resilient).",
            "default": "auto"
          },
          "proxyConfiguration": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Capterra sits behind Cloudflare, which challenges datacenter IPs on product pages. Residential proxies (US) are on by default; the Actor rotates sessions until one clears and keeps it, and falls back to a stealth browser if Cloudflare keeps challenging. Keep this on unless you run from your own residential IP.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ],
              "apifyProxyCountry": "US"
            }
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}