{
  "data": {
    "id": "2hMc1gcIW9qB77gY8",
    "actId": "uCkGJlviVUcd8Xosy",
    "userId": "IYgBDiXtHOijAaUel",
    "startedAt": "2026-11-12T09:11:27.647Z",
    "finishedAt": "2026-11-12T09:11:37.234Z",
    "status": "SUCCEEDED",
    "meta": {
      "origin": "CI"
    },
    "stats": {
      "durationMillis": 9530,
      "runTimeSecs": 9.53,
      "computeUnits": 0.010588888888888889,
      "imageSizeBytes": 319116288
    },
    "options": {
      "useCache": true,
      "betaPackages": false,
      "memoryMbytes": 4096,
      "diskMbytes": 8192
    },
    "createdByOrganizationMemberUserId": "QYo53EZkJk0prePWY",
    "exitCode": 0,
    "inputSchema": "{\n  \"title\": \"BestColleges Scraper Input\",\n  \"description\": \"Scrape ranked US college programs and school profiles from BestColleges. Fetch ranked schools from program ranking pages, school profiles, or enumerate program pages from subject hubs.\",\n  \"type\": \"object\",\n  \"schemaVersion\": 1,\n  \"properties\": {\n    \"mode\": {\n      \"title\": \"Mode\",\n      \"type\": \"string\",\n      \"description\": \"What to fetch.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"byProgram\",\n        \"bySchool\",\n        \"bySubject\"\n      ],\n      \"enumTitles\": [\n        \"Ranked schools from a program ranking page\",\n        \"School profile by slug\",\n        \"Program pages from a subject hub\"\n      ],\n      \"default\": \"byProgram\",\n      \"prefill\": \"byProgram\"\n    },\n    \"programUri\": {\n      \"title\": \"Program ranking page (mode=byProgram)\",\n      \"type\": \"string\",\n      \"description\": \"Ranking page path, e.g. `computer-science/bachelors`, `nursing/masters`, `business/bachelors/finance`, or a full URL.\",\n      \"editor\": \"textfield\",\n      \"default\": \"computer-science/bachelors\",\n      \"prefill\": \"computer-science/bachelors\"\n    },\n    \"schoolUri\": {\n      \"title\": \"School page (mode=bySchool)\",\n      \"type\": \"string\",\n      \"description\": \"School profile path, e.g. `university-of-colorado-boulder`, or a full URL.\",\n      \"editor\": \"textfield\"\n    },\n    \"subjectUri\": {\n      \"title\": \"Subject hub (mode=bySubject)\",\n      \"type\": \"string\",\n      \"description\": \"Subject hub path, e.g. `business/bachelors`, `healthcare`, `nursing`, or a full URL.\",\n      \"editor\": \"textfield\"\n    },\n    \"rankMin\": {\n      \"title\": \"Rank (min)\",\n      \"type\": \"integer\",\n      \"description\": \"Drop schools ranked worse than this (lower is better).\",\n      \"minimum\": 1,\n      \"maximum\": 1000\n    },\n    \"rankMax\": {\n      \"title\": \"Rank (max)\",\n      \"type\": \"integer\",\n      \"description\": \"Drop schools ranked better than this (e.g. `10` keeps only the top 10).\",\n      \"minimum\": 1,\n      \"maximum\": 1000\n    },\n    \"stateCodes\": {\n      \"title\": \"State codes\",\n      \"type\": \"array\",\n      \"description\": \"Only emit schools in these US states (e.g. `NY`, `CA`).\",\n      \"editor\": \"stringList\",\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"schoolYear\": {\n      \"title\": \"Ranking school year\",\n      \"type\": \"integer\",\n      \"description\": \"Only emit schools from this ranking year (e.g. `2026`).\",\n      \"minimum\": 2015,\n      \"maximum\": 2030\n    },\n    \"maxItems\": {\n      \"title\": \"Max items\",\n      \"type\": \"integer\",\n      \"description\": \"Hard cap on emitted records.\",\n      \"minimum\": 1,\n      \"maximum\": 1000,\n      \"default\": 50,\n      \"prefill\": 50\n    }\n  },\n  \"required\": [\n    \"mode\"\n  ]\n}",
    "readme": "# BestColleges Program Rankings & Tuition Scraper\n\nScrape **BestColleges** — the US college rankings and school-data site at [bestcolleges.com](https://www.bestcolleges.com). Fetch ranked schools from any program ranking page (computer science, nursing, business, psychology, and 60+ more), pull detailed school profiles, and enumerate program pages from subject hubs. No auth, no proxy.\n\n## What this actor does\n\n- **Three modes:** `byProgram` (ranked schools), `bySchool` (profile), `bySubject` (program enumeration)\n- **Ranking data:** rank, superlative (\"Best for…\"), program links, ranking year\n- **School stats:** in/out-of-state tuition (undergrad + grad), admission rate, retention rate, earnings after 6 years, online-enrollment share, accreditation\n- **Filters:** rank range, US state codes, ranking school year\n- **Empty fields are omitted**\n\n## Output per ranked school (mode=byProgram)\n\n- `rank` — position in the ranking\n- `schoolId`, `rankingId`\n- `schoolName`, `city`, `stateName`, `stateCode`\n- `schoolUrl`, `programUrl`, `programName`\n- `superlativeTitle` — e.g. \"Best for Personalized Portfolio-Building\"\n- `undergradTuitionInState`, `undergradTuitionOutOfState`, `gradTuitionInState`, `gradTuitionOutOfState`\n- `admissionRate`, `retentionRate`, `earningsAfterSixYears`, `totalStudentsEnrolled`\n- `percentOnlineEnrollment`, `percentOnlinePrograms`\n- `schoolLevel`, `accreditation`, `isPrivate`\n- `blurb` — editor's summary\n- `rankingName`, `schoolYear`, `rankingType`, `rankingStatus`\n- `sourceUrl`\n- `recordType`, `scrapedAt`\n\n### Output per school profile (mode=bySchool)\n\n- `schoolId`, `title`, `blurb`, `image`\n- `city`, `state`, `stateCode`, `url`\n- `inStateTuitionUndergrad`, `outOfStateTuitionUndergrad`, `inStateTuitionGrad`, `outOfStateTuitionGrad`\n- `totalEnrollmentUndergrad`, `totalEnrollmentGrad`, `percentAdmittedUndergrad`\n- `totalBachelorsPrograms`, `graduationRateTotalCohort`, `studentFacultyRatio`, `fulltimeRetentionRate`\n- `percentOnlineEnrollment`\n- `isPremium`, `isPrivate`, `notForProfit`, `isHbcu`, `militaryFriendly`\n- `religiousAffiliation`, `generalizedReligiousTerm`, `accreditorStatus`, `admissionTestScores`, `openAdmissionPolicy`, `hasHlf`\n- `sourceUrl`\n- `recordType`, `scrapedAt`\n\n### Output per program page (mode=bySubject)\n\n- `uri`, `title`, `sourceUrl`\n- `recordType`, `scrapedAt`\n\n## Input\n\n| Field | Type | Default | Description |\n|---|---|---|---|\n| `mode` | string | `byProgram` | `byProgram` / `bySchool` / `bySubject` |\n| `programUri` | string | `computer-science/bachelors` | Ranking page path (mode=byProgram) |\n| `schoolUri` | string | – | School profile path (mode=bySchool) |\n| `subjectUri` | string | – | Subject hub path (mode=bySubject) |\n| `rankMin` | int | – | Keep ranks ≥ this |\n| `rankMax` | int | – | Keep ranks ≤ this (top-N) |\n| `stateCodes` | array | – | US state codes, e.g. `[\"NY\",\"CA\"]` |\n| `schoolYear` | int | – | Ranking year, e.g. `2026` |\n| `maxItems` | int | `50` | Hard cap (1–1000) |\n\n### Example: top-20 online CS bachelor's programs\n\n```json\n{\n  \"mode\": \"byProgram\",\n  \"programUri\": \"computer-science/bachelors\",\n  \"rankMax\": 20\n}\n```\n\n### Example: all ranked nursing schools in NY and CA\n\n```json\n{\n  \"mode\": \"byProgram\",\n  \"programUri\": \"nursing/bachelors\",\n  \"stateCodes\": [\"NY\", \"CA\"]\n}\n```\n\n### Example: school profile\n\n```json\n{\n  \"mode\": \"bySchool\",\n  \"schoolUri\": \"university-of-colorado-boulder\"\n}\n```\n\n### Example: enumerate finance programs from a subject hub\n\n```json\n{\n  \"mode\": \"bySubject\",\n  \"subjectUri\": \"business/bachelors\"\n}\n```\n\n## Use cases\n\n- **Higher-ed research** — compare program rankings and school stats side by side\n- **Counseling / advising** — shortlist schools by cost, admission rate, and outcomes\n- **Market analysis** — track tuition and enrollment trends across ranking years\n- **Content pipelines** — feed ranking pages into guides and comparison tools\n- **Prospective students** — filter ranked schools by state and affordability\n\n## FAQ\n\n**What is BestColleges?** An independent publisher of US college rankings, program guides, and school profiles (bestcolleges.com).\n\n**Do I need an account or API key?** No. All modes read public page data.\n\n**Where does the data come from?** Each ranking page embeds its full ranking JSON (schools, ranks, stats) directly in the page; school profiles embed their stats the same way. The actor reads those embedded payloads.\n\n**How do I find ranking page paths?** Browse bestcolleges.com — e.g. `/computer-science/bachelors/`, `/nursing/masters/`, `/business/bachelors/finance/`. Use `bySubject` on a hub like `/business/bachelors/` to enumerate the program pages in that section.\n\n**Why are some tuition fields missing?** Schools that don't report a figure simply omit it; empty fields are always dropped.\n\n**What does `superlativeTitle` mean?** BestColleges' editors tag each ranked school with a reason it was chosen, e.g. \"Best for Working Adults\".\n\n**How fresh is the data?** BestColleges publishes annual rankings; each page carries its ranking year (`schoolYear`) so you can filter by edition.\n\n**Is this affiliated with BestColleges?** No, this is a third-party actor using the public website.\n\n## Limitations\n\n- Only pages that carry embedded rankings work with `byProgram` (program ranking pages). State resource pages and blog articles contain no ranking data.\n- `bySubject` enumerates links from the hub page's HTML; deep program pages under other sections may need their own hub paths.\n- The internal school-search API (`api.mobius.highereducation.com`) requires a session token from the site and is not used; school discovery happens through ranking pages and subject hubs instead.\n- `bySchool` currently returns 0 records for most school slugs: bestcolleges.com's `/schools/{slug}/` pages are served as a client-side-rendered shell (a site-side server error — the HTTP 200 page carries no profile data). The actor reports a status message in that case. School data remains fully available through `byProgram` (which carries tuition, admission rate, earnings, and accreditation per school).\n- Some program hubs (e.g. `business/bachelors`) intermittently serve the same empty shell from datacenter IPs; the actor retries those fetches automatically, and pages that stay broken produce a clean 0 with a status message.\n",
    "actorDefinition": {
      "actorSpecification": 1,
      "name": "bestcolleges-program-rankings-and-tuition-scraper",
      "title": "BestColleges Program Rankings & Tuition Scraper",
      "description": "Scrape ranked US college programs and school profiles from BestColleges (bestcolleges.com). Fetch ranked schools with tuition, admission rates, retention, and earnings data; school profiles; or program pages from subject hubs.",
      "version": "1.0",
      "buildTag": "latest",
      "dockerfile": "./Dockerfile",
      "readme": "# BestColleges Program Rankings & Tuition Scraper\n\nScrape **BestColleges** — the US college rankings and school-data site at [bestcolleges.com](https://www.bestcolleges.com). Fetch ranked schools from any program ranking page (computer science, nursing, business, psychology, and 60+ more), pull detailed school profiles, and enumerate program pages from subject hubs. No auth, no proxy.\n\n## What this actor does\n\n- **Three modes:** `byProgram` (ranked schools), `bySchool` (profile), `bySubject` (program enumeration)\n- **Ranking data:** rank, superlative (\"Best for…\"), program links, ranking year\n- **School stats:** in/out-of-state tuition (undergrad + grad), admission rate, retention rate, earnings after 6 years, online-enrollment share, accreditation\n- **Filters:** rank range, US state codes, ranking school year\n- **Empty fields are omitted**\n\n## Output per ranked school (mode=byProgram)\n\n- `rank` — position in the ranking\n- `schoolId`, `rankingId`\n- `schoolName`, `city`, `stateName`, `stateCode`\n- `schoolUrl`, `programUrl`, `programName`\n- `superlativeTitle` — e.g. \"Best for Personalized Portfolio-Building\"\n- `undergradTuitionInState`, `undergradTuitionOutOfState`, `gradTuitionInState`, `gradTuitionOutOfState`\n- `admissionRate`, `retentionRate`, `earningsAfterSixYears`, `totalStudentsEnrolled`\n- `percentOnlineEnrollment`, `percentOnlinePrograms`\n- `schoolLevel`, `accreditation`, `isPrivate`\n- `blurb` — editor's summary\n- `rankingName`, `schoolYear`, `rankingType`, `rankingStatus`\n- `sourceUrl`\n- `recordType`, `scrapedAt`\n\n### Output per school profile (mode=bySchool)\n\n- `schoolId`, `title`, `blurb`, `image`\n- `city`, `state`, `stateCode`, `url`\n- `inStateTuitionUndergrad`, `outOfStateTuitionUndergrad`, `inStateTuitionGrad`, `outOfStateTuitionGrad`\n- `totalEnrollmentUndergrad`, `totalEnrollmentGrad`, `percentAdmittedUndergrad`\n- `totalBachelorsPrograms`, `graduationRateTotalCohort`, `studentFacultyRatio`, `fulltimeRetentionRate`\n- `percentOnlineEnrollment`\n- `isPremium`, `isPrivate`, `notForProfit`, `isHbcu`, `militaryFriendly`\n- `religiousAffiliation`, `generalizedReligiousTerm`, `accreditorStatus`, `admissionTestScores`, `openAdmissionPolicy`, `hasHlf`\n- `sourceUrl`\n- `recordType`, `scrapedAt`\n\n### Output per program page (mode=bySubject)\n\n- `uri`, `title`, `sourceUrl`\n- `recordType`, `scrapedAt`\n\n## Input\n\n| Field | Type | Default | Description |\n|---|---|---|---|\n| `mode` | string | `byProgram` | `byProgram` / `bySchool` / `bySubject` |\n| `programUri` | string | `computer-science/bachelors` | Ranking page path (mode=byProgram) |\n| `schoolUri` | string | – | School profile path (mode=bySchool) |\n| `subjectUri` | string | – | Subject hub path (mode=bySubject) |\n| `rankMin` | int | – | Keep ranks ≥ this |\n| `rankMax` | int | – | Keep ranks ≤ this (top-N) |\n| `stateCodes` | array | – | US state codes, e.g. `[\"NY\",\"CA\"]` |\n| `schoolYear` | int | – | Ranking year, e.g. `2026` |\n| `maxItems` | int | `50` | Hard cap (1–1000) |\n\n### Example: top-20 online CS bachelor's programs\n\n```json\n{\n  \"mode\": \"byProgram\",\n  \"programUri\": \"computer-science/bachelors\",\n  \"rankMax\": 20\n}\n```\n\n### Example: all ranked nursing schools in NY and CA\n\n```json\n{\n  \"mode\": \"byProgram\",\n  \"programUri\": \"nursing/bachelors\",\n  \"stateCodes\": [\"NY\", \"CA\"]\n}\n```\n\n### Example: school profile\n\n```json\n{\n  \"mode\": \"bySchool\",\n  \"schoolUri\": \"university-of-colorado-boulder\"\n}\n```\n\n### Example: enumerate finance programs from a subject hub\n\n```json\n{\n  \"mode\": \"bySubject\",\n  \"subjectUri\": \"business/bachelors\"\n}\n```\n\n## Use cases\n\n- **Higher-ed research** — compare program rankings and school stats side by side\n- **Counseling / advising** — shortlist schools by cost, admission rate, and outcomes\n- **Market analysis** — track tuition and enrollment trends across ranking years\n- **Content pipelines** — feed ranking pages into guides and comparison tools\n- **Prospective students** — filter ranked schools by state and affordability\n\n## FAQ\n\n**What is BestColleges?** An independent publisher of US college rankings, program guides, and school profiles (bestcolleges.com).\n\n**Do I need an account or API key?** No. All modes read public page data.\n\n**Where does the data come from?** Each ranking page embeds its full ranking JSON (schools, ranks, stats) directly in the page; school profiles embed their stats the same way. The actor reads those embedded payloads.\n\n**How do I find ranking page paths?** Browse bestcolleges.com — e.g. `/computer-science/bachelors/`, `/nursing/masters/`, `/business/bachelors/finance/`. Use `bySubject` on a hub like `/business/bachelors/` to enumerate the program pages in that section.\n\n**Why are some tuition fields missing?** Schools that don't report a figure simply omit it; empty fields are always dropped.\n\n**What does `superlativeTitle` mean?** BestColleges' editors tag each ranked school with a reason it was chosen, e.g. \"Best for Working Adults\".\n\n**How fresh is the data?** BestColleges publishes annual rankings; each page carries its ranking year (`schoolYear`) so you can filter by edition.\n\n**Is this affiliated with BestColleges?** No, this is a third-party actor using the public website.\n\n## Limitations\n\n- Only pages that carry embedded rankings work with `byProgram` (program ranking pages). State resource pages and blog articles contain no ranking data.\n- `bySubject` enumerates links from the hub page's HTML; deep program pages under other sections may need their own hub paths.\n- The internal school-search API (`api.mobius.highereducation.com`) requires a session token from the site and is not used; school discovery happens through ranking pages and subject hubs instead.\n- `bySchool` currently returns 0 records for most school slugs: bestcolleges.com's `/schools/{slug}/` pages are served as a client-side-rendered shell (a site-side server error — the HTTP 200 page carries no profile data). The actor reports a status message in that case. School data remains fully available through `byProgram` (which carries tuition, admission rate, earnings, and accreditation per school).\n- Some program hubs (e.g. `business/bachelors`) intermittently serve the same empty shell from datacenter IPs; the actor retries those fetches automatically, and pages that stay broken produce a clean 0 with a status message.\n",
      "input": {
        "title": "BestColleges Scraper Input",
        "description": "Scrape ranked US college programs and school profiles from BestColleges. Fetch ranked schools from program ranking pages, school profiles, or enumerate program pages from subject hubs.",
        "type": "object",
        "schemaVersion": 1,
        "properties": {
          "mode": {
            "title": "Mode",
            "type": "string",
            "description": "What to fetch.",
            "editor": "select",
            "enum": [
              "byProgram",
              "bySchool",
              "bySubject"
            ],
            "enumTitles": [
              "Ranked schools from a program ranking page",
              "School profile by slug",
              "Program pages from a subject hub"
            ],
            "default": "byProgram",
            "prefill": "byProgram"
          },
          "programUri": {
            "title": "Program ranking page (mode=byProgram)",
            "type": "string",
            "description": "Ranking page path, e.g. `computer-science/bachelors`, `nursing/masters`, `business/bachelors/finance`, or a full URL.",
            "editor": "textfield",
            "default": "computer-science/bachelors",
            "prefill": "computer-science/bachelors"
          },
          "schoolUri": {
            "title": "School page (mode=bySchool)",
            "type": "string",
            "description": "School profile path, e.g. `university-of-colorado-boulder`, or a full URL.",
            "editor": "textfield"
          },
          "subjectUri": {
            "title": "Subject hub (mode=bySubject)",
            "type": "string",
            "description": "Subject hub path, e.g. `business/bachelors`, `healthcare`, `nursing`, or a full URL.",
            "editor": "textfield"
          },
          "rankMin": {
            "title": "Rank (min)",
            "type": "integer",
            "description": "Drop schools ranked worse than this (lower is better).",
            "minimum": 1,
            "maximum": 1000
          },
          "rankMax": {
            "title": "Rank (max)",
            "type": "integer",
            "description": "Drop schools ranked better than this (e.g. `10` keeps only the top 10).",
            "minimum": 1,
            "maximum": 1000
          },
          "stateCodes": {
            "title": "State codes",
            "type": "array",
            "description": "Only emit schools in these US states (e.g. `NY`, `CA`).",
            "editor": "stringList",
            "default": [],
            "prefill": []
          },
          "schoolYear": {
            "title": "Ranking school year",
            "type": "integer",
            "description": "Only emit schools from this ranking year (e.g. `2026`).",
            "minimum": 2015,
            "maximum": 2030
          },
          "maxItems": {
            "title": "Max items",
            "type": "integer",
            "description": "Hard cap on emitted records.",
            "minimum": 1,
            "maximum": 1000,
            "default": 50,
            "prefill": 50
          }
        },
        "required": [
          "mode"
        ]
      },
      "output": {
        "actorOutputSchemaVersion": 1,
        "title": "BestColleges Program Rankings & Tuition Scraper Output",
        "description": "Ranked US colleges and school profiles from BestColleges — rank, tuition, admission rate, retention, earnings, accreditation, and online enrollment.",
        "properties": {
          "schools": {
            "type": "string",
            "title": "BestColleges schools",
            "description": "Dataset containing all scraped BestColleges school records.",
            "template": "{{links.apiDefaultDatasetUrl}}/items"
          }
        }
      },
      "storages": {
        "dataset": {
          "actorSpecification": 1,
          "views": {
            "overview": {
              "title": "Schools",
              "transformation": {
                "fields": [
                  "schoolName",
                  "rank",
                  "stateCode",
                  "undergradTuitionInState",
                  "admissionRate",
                  "schoolYear",
                  "sourceUrl"
                ]
              },
              "display": {
                "component": "table",
                "properties": {}
              }
            }
          }
        }
      },
      "environmentVariables": {}
    },
    "buildNumber": "1.0.1",
    "imageDigest": "fef449eefa156c6994b0ad62704ddbcd4e5b4731adb8efb78c4ec54d937a3e2e",
    "actVersion": {
      "sourceType": "SOURCE_FILES",
      "buildTag": "latest",
      "versionNumber": "1.0"
    },
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0.010588888888888889
    }
  }
}