{
  "openapi": "3.0.1",
  "info": {
    "title": "Employee Reviews Scraper for TeamBlind",
    "description": "Export public employee reviews, ratings, pros and cons, and company aggregates from TeamBlind. Monitor new or updated reviews. Independent tool, not affiliated with, endorsed by, or sponsored by Blind (teamblind.com). All trademarks are the property of their respective owners.",
    "version": "0.3",
    "x-build-id": "8hOAbjs4PatkXedbt"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/getascraper~teamblind-reviews-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-getascraper-teamblind-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/getascraper~teamblind-reviews-scraper/runs": {
      "post": {
        "operationId": "runs-sync-getascraper-teamblind-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/getascraper~teamblind-reviews-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-getascraper-teamblind-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": {
          "targets": {
            "title": "Companies or review URLs",
            "type": "array",
            "description": "Enter TeamBlind company names, company review URLs, or individual review URLs. Each value is collected as a separate target.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "maxItems": {
            "title": "Maximum reviews",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "Hard cap across the full run. The Actor never saves more than this many reviews.",
            "default": 20
          },
          "maxReviewsPerCompany": {
            "title": "Maximum reviews per company",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "Optional cap for each company target."
          },
          "minRating": {
            "title": "Minimum overall rating",
            "minimum": 1,
            "maximum": 5,
            "type": "number",
            "description": "Keep reviews with this overall rating or higher."
          },
          "maxRating": {
            "title": "Maximum overall rating",
            "minimum": 1,
            "maximum": 5,
            "type": "number",
            "description": "Keep reviews with this overall rating or lower."
          },
          "employeeStatus": {
            "title": "Employee status",
            "type": "string",
            "description": "Limit output to current or former employees when that source field is available.",
            "default": "any"
          },
          "jobTitles": {
            "title": "Job-title keywords",
            "type": "array",
            "description": "Keep reviews whose reported job title contains any supplied term.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "locations": {
            "title": "Location keywords",
            "type": "array",
            "description": "Keep reviews whose reported location contains any supplied term.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "countryCodes": {
            "title": "Country codes",
            "type": "array",
            "description": "Keep reviews with a matching two-letter country code, such as US or IN.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "dateFrom": {
            "title": "Review date from",
            "type": "string",
            "description": "Keep reviews published on or after this calendar date."
          },
          "dateTo": {
            "title": "Review date to",
            "type": "string",
            "description": "Keep reviews published on or before this calendar date."
          },
          "runMode": {
            "title": "Run mode",
            "enum": [
              "snapshot",
              "monitor"
            ],
            "type": "string",
            "description": "Use monitoring to save and charge only new or materially updated reviews for the same state key.",
            "default": "snapshot"
          },
          "stateKey": {
            "title": "Monitoring state key",
            "type": "string",
            "description": "Optional name for this saved monitoring scope. Use the same key on each scheduled run.",
            "default": "default"
          },
          "resetState": {
            "title": "Reset monitoring state",
            "type": "boolean",
            "description": "Forget previously seen reviews for the selected state key before this run.",
            "default": false
          },
          "includeCompanyData": {
            "title": "Include company aggregates",
            "type": "boolean",
            "description": "Save source-published company ratings, review counts, and location distributions to a separate dataset when available.",
            "default": true
          },
          "fetchReviewDetails": {
            "title": "Recheck complete review pages",
            "type": "boolean",
            "description": "Also recheck reviews that already contain complete text. Incomplete or gated reviews are always recovered before they can be saved.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional connection settings for reliable collection from TeamBlind.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}