{
  "openapi": "3.0.1",
  "info": {
    "title": "HigherEdJobs Scraper: Academic Job Monitor",
    "description": "HigherEdJobs scraper for source-backed academic job listings, salary fields, departments, institutions, and discipline categories. Filters, deduplication, and NEW, UPDATED, EXPIRED, or REAPPEARED monitoring events export to JSON, CSV, or Excel. Failed requests stay visible. $1.49 per 1,000 rows.",
    "version": "0.1",
    "x-build-id": "H2CspjzUaKD2tY4po"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/getascraper~higheredjobs-com-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-getascraper-higheredjobs-com-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~higheredjobs-com-scraper/runs": {
      "post": {
        "operationId": "runs-sync-getascraper-higheredjobs-com-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~higheredjobs-com-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-getascraper-higheredjobs-com-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": "Start URLs",
            "type": "array",
            "description": "Optional direct category, search, or detailed job page URLs to scrape. If provided, it overrides custom search filters.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "keyword": {
            "title": "Search Keyword",
            "type": "string",
            "description": "Search keyword for position titles, departments, or disciplines (e.g. 'computer science', 'dean', 'physics')."
          },
          "category": {
            "title": "Academic Category",
            "enum": [
              "all",
              "1",
              "2",
              "3"
            ],
            "type": "string",
            "description": "Filter by broad job category (Faculty, Administrative, or Executive positions).",
            "default": "all"
          },
          "institutionType": {
            "title": "Institution Type",
            "enum": [
              "all",
              "1",
              "2",
              "3"
            ],
            "type": "string",
            "description": "Filter by university or college type (Public, Private, or 2-Year Community Colleges).",
            "default": "all"
          },
          "positionType": {
            "title": "Position Type",
            "enum": [
              "all",
              "1",
              "2"
            ],
            "type": "string",
            "description": "Filter by Full-Time or Part-Time status.",
            "default": "all"
          },
          "remoteOnly": {
            "title": "Remote Only",
            "type": "boolean",
            "description": "If enabled, only listings offering remote work options are included.",
            "default": false
          },
          "department": {
            "title": "Department contains",
            "type": "string",
            "description": "Optional source-published department text filter."
          },
          "employer": {
            "title": "Employer contains",
            "type": "string",
            "description": "Optional institution name filter."
          },
          "location": {
            "title": "Location contains",
            "type": "string",
            "description": "Optional city, state, or country filter."
          },
          "includeDescription": {
            "title": "Include Full Description",
            "type": "boolean",
            "description": "Whether to include full job descriptions (HTML & plain-text). Slower but richer data.",
            "default": true
          },
          "dateWithinDays": {
            "title": "Date Within Days",
            "minimum": 0,
            "type": "integer",
            "description": "Only include academic jobs posted within the last N days (0 = any time).",
            "default": 0
          },
          "onlyNewSinceLastRun": {
            "title": "Only new or changed jobs",
            "type": "boolean",
            "description": "Persist source-backed job IDs between successful runs and emit NEW, UPDATED, REAPPEARED, and cautious EXPIRED events. Unchanged jobs are omitted.",
            "default": false
          },
          "monitorStateKey": {
            "title": "Monitor state key",
            "type": "string",
            "description": "Optional stable key for sharing a monitoring scope across scheduled runs. Leave empty to derive it from the search inputs."
          },
          "maxItems": {
            "title": "Max Items",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum number of job postings to scrape in total.",
            "default": 25
          },
          "maxConcurrency": {
            "title": "Max Concurrency",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum number of parallel requests.",
            "default": 8
          },
          "maxRequestRetries": {
            "title": "Max Request Retries",
            "minimum": 0,
            "type": "integer",
            "description": "Number of times a request will be retried if it fails.",
            "default": 3
          },
          "proxyConfiguration": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Proxy settings. Detail pages are protected by Imperva WAF and require Apify Proxy.",
            "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}