{
  "openapi": "3.0.1",
  "info": {
    "title": "BioSpace Jobs Scraper: Filtered Biotech and Pharma Job Listings",
    "description": "Scrape BioSpace biotech and pharma job postings, one row per job. Filter by keyword, location, company, industry, job type, work arrangement, education, biotech hub, posting date, and published pay. Export as spreadsheet or JSON. Pay appears only when the employer published it. $0.05 per 1,000 jobs.",
    "version": "0.5",
    "x-build-id": "RSHl18XN1rIcPnIxp"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/getascraper~biospace-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-getascraper-biospace-jobs-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~biospace-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-getascraper-biospace-jobs-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~biospace-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-getascraper-biospace-jobs-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": {
          "maxPagesToScan": {
            "title": "Pages to scan",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "How many pages of 20 of the newest BioSpace postings to read. Each page holds 20 postings, so 10 pages reads the newest 200. Raise it when a narrow filter needs a deeper scan.",
            "default": 10
          },
          "keyword": {
            "title": "Keyword",
            "type": "string",
            "description": "Only keep postings whose job title or description contains this text, for example 'clinical research' or 'regulatory affairs'. Leave empty to keep every posting.",
            "default": ""
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "Only keep postings whose city, state, country, or location text contains this value, for example 'Massachusetts', 'Cambridge', or 'US'. Leave empty for all locations.",
            "default": ""
          },
          "positionType": {
            "title": "Job type",
            "enum": [
              "any",
              "full-time",
              "part-time",
              "contract",
              "consultant"
            ],
            "type": "string",
            "description": "Keep only postings of one job type, such as full-time, part-time, contract, or consultant. Choose Any to keep every type.",
            "default": "any"
          },
          "workArrangement": {
            "title": "Work arrangement",
            "enum": [
              "any",
              "on-site",
              "hybrid",
              "remote"
            ],
            "type": "string",
            "description": "Keep only on-site, hybrid, or remote postings. Choose Any to keep every arrangement.",
            "default": "any"
          },
          "requiredEducation": {
            "title": "Education required",
            "enum": [
              "any",
              "high-school-or-equivalent",
              "associate-degree",
              "bachelors-degree",
              "masters-degree-mba",
              "doctorate-phd-md",
              "other"
            ],
            "type": "string",
            "description": "Keep only postings that ask for this education level, as BioSpace records it. Postings that name no level are excluded when you pick one.",
            "default": "any"
          },
          "biotechHub": {
            "title": "Biotech hub",
            "enum": [
              "any",
              "genetown",
              "biotech-bay",
              "biocapital",
              "biomidwest",
              "pharm-country",
              "bio-nc",
              "biotech-beach",
              "lone-star-bio"
            ],
            "type": "string",
            "description": "Keep only postings that BioSpace tags with this biotech hub, such as Genetown or Biotech Bay. Many postings carry no hub tag, and those are excluded when you pick one.",
            "default": "any"
          },
          "postedWithinDays": {
            "title": "Posted within (days)",
            "minimum": 0,
            "maximum": 365,
            "type": "integer",
            "description": "Keep only postings published in the last this many days. Set 0 to keep postings from any date. Postings with no posting date are excluded when this is set above 0.",
            "default": 0
          },
          "payPublishedOnly": {
            "title": "Only postings with published pay",
            "type": "boolean",
            "description": "Keep only postings where the employer wrote a pay amount in the posting. Leave this off to keep postings with and without pay.",
            "default": false
          },
          "company": {
            "title": "Company name",
            "type": "string",
            "description": "Only keep postings from employers whose name contains this text, for example 'Sanofi' or 'Pfizer'. Leave empty for all employers.",
            "default": ""
          },
          "industry": {
            "title": "Industry",
            "enum": [
              "any",
              "pharmaceutical",
              "biotechnology",
              "medical-device",
              "diagnostics",
              "healthcare",
              "research-institute",
              "academic",
              "government",
              "non-profit",
              "service-supplier"
            ],
            "type": "string",
            "description": "Keep only postings from employers in this industry, as BioSpace classifies them. Choose Any to keep every industry.",
            "default": "any"
          },
          "maxItems": {
            "title": "Maximum jobs to save",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "The most job postings to save in one run. Raise it for larger pulls; the run stops once this many matching postings are saved.",
            "default": 20
          },
          "includeFullDescription": {
            "title": "Include full job description",
            "type": "boolean",
            "description": "Add the full posting text to every saved job. Leave this off for a lighter dataset that still includes the title, company, location, pay, and posting date.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Proxy settings for the requests. The default Apify datacenter proxy is recommended for this site.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}